对网友求助问题的几个回帖展示之十二
本文6例都是在网上回答网友的求助帖,现整理汇编展示给大家,如有不对之处,请给于指正,谢谢!
一、求助帖:集电极开路NPN输出型的编码器信号如何接入正逻辑的PLC?
通过上拉电阻吗?
回复:1、集电极开路NPN输出型的编码器信号,适用于+24V电源正极共地的PLC(欧姆龙PLC),具体接法为:编码器的24V正极接PLC24V正极,编码器的输出端接PLC的输入端即可。见下图一:
2、对于24V的负极接PLC输入侧的COM)的 PLC(如西门子PLC),用集电极开路NPN输出型的编码器,只加上拉电阻是不行的,原因为:
编码器输出为1时(即编码器内的晶体管截止),虽然能提供+24V电源电压给PLC的输入端,但集电极的负载电阻(R1)串在其中,使注入PLC输入点的电流变小,不能产生正常的计数脉冲,最好采用下图电路,PLC就可正常工作。其原理为:当编码器输出为1(编码器内的晶体管截止)时,使G1管截止无输出(相当输入开关断开),当编码器输出为0(编码器内的晶体管导通)时,R2给G1管提供基极电流。使G1导通,此时的G1(相当输入开关闭合)将+24V电压加给PLC输入端。见下图二:
注:(图中的R1 即为外接给编码器内的NPN型晶体管的上拉电阻)
你也可以在网上擦看《“再出几道电路知识题,望大家参与”之三》一文,此文中的第6题回答的内容,就是你所要问的问题。
二、求助:求高手指点,S7-200输入与显示不一致问题
制水系统的PLC控制,S7-200PLC,带三个EM235CN模块,控制纯化水和注射用水系统,前段时间发现压力不准确,更换压力变送器后,现场显示0.4MPa,触摸屏上显示0.9MPa,变送器是好的,输出信号也没问题。求高手指点如何处理。需要修改程序吗?程序我有,就是看不懂。
回复:可以这样进行检测校验:
压力变送器在规定压力范围内(如0~1.0MPa)的输出信号都为4~20ma,而EM235CN模块在输入20ma时对应的转换的数字量为32000,如输入1ma对应的数字量为1600,输入4ma对应的数字量为6400,即数字量与电流值成正比:AIWx=1600×I。
1、你可将第一块第一路的变送器线摘除,换上能输出4~20ma的装置(可自制),调节电流输出为4ma,接通PLC且工作在监视状态,观察AIW0变量,如AIW0=6400(左右),触摸屏的显示值应为P=0MPa,再改变I=8ma时,AIW0应=12800,P=0.4MPa 。如果是这样测试结果,说明PLC与EM235CN模块是没有问题,毛病出在压力传感器或变送器上。
2、在此过程中,如AIW0值是对的而显示值不对,说明EM235CN模块的输出是正常的,PLC的转换公式可能不对,正确的转换公式应为:
三、 当一个工件经过检测台检测后,有NG或者OK,进入下一输送带,进行排队等待分离归类。请教各位大侠怎样实现用PLC实现这一功能啊,小弟先谢过大家了!
回复:如只进行“分离归类”用左移寄存器的方法最为简单可靠:如检测点到“分离归类”点之间工件数量<8,可用字节存储器(如MB8),如<16个,可用字存储器(如MW8).....,。开始时先将存储器清0,每检测一个工件,如为好的,存储器不变,如为坏的,存储器加1,随后将存储器左移一位。如“分离归类”处是已检测完的第7个工件,当工件移到“分离归类”处且使到位开关动作时,用M8.7与状态进行分离归类:如M8.7=0,拨入合格区,如M8.7=1,拨入不合格区
四、对于两个字来说,如果对其内容执行逻辑或指令或者将两个字相加,按理说得出的结果应该相同,但是在实际的执行过程中结果却是不同的,为什么呢?(原因:本来我想将第一个字中的低八位左移8位后与第二个字的低八位组成一个新字,结果用或指令得不到想要的结果,无奈只好将第一个字左移八位后与第二个字相加才实现)
回复:对:本来我想将第一个字中的低八位左移8位后与第二个字的低八位组成一个新字,结果用或指令得不到想要的结果,无奈只好将第一个字左移八位后与第二个字相加才实现的回复:
你的思路是对的,可能在编程中由于对二个字处理的不对造成结果错误,编程时应这样处理:
1、对第一个字中的低八位左移8位应选用左移指令,不能用循环左移指令,这样左移8位后,原字的低字节内容移到高字节里,而低字节内容=0,
2、对第二个字的低八位在进行与第一个字相或之前,应对第二个字先进行与指令处理,即先用立即数 16#FF 与第二个字相与,与运算的结果,使第二个字的原高8位数=0,
3、经过上面的二步处理后,再将这二个字相或,就可得到正确值。
五、 信号输入转换成七段码管显示
公司改进一台下料机使用三菱FX1NPLC控制, 当一个产品进过行程开关检测到是X00信号接通一下 ,在PLC程序内部转换成二进制使外部七段数码管显示实际产品数量,最大数只要显示到99 ,只能使用外部一个X00当输入信号,我做了许多天还是写不成这个程序。万分火急,请那位高手帮我写段看看。拜托 拜托
回复:我不熟悉三菱PLC,也没有它的编程手册,故不能给你用三菱编程,但可以告诉你编程方法:用一字节存储器做加1计数器,即每输入一个信号使该计数器加1,再将此计数值转换为BCD码,BCD码的个、十 2 位分别输出给显示口就行了,不需转换7段译码。因为2位显示如用7段译码输出至少得占据14个输出口,而且需用14个电阻,也得做一块电路板。我提供的显示电路只占用一个输出通道的6个输出口,其低4位传BCD码数,高2位为个、十 2位数的片选位,显示电路见下图:
图中的J1插座的1--4脚接PLC的4位BCD码,5脚为个位数片选线,6脚为十位数片选线。
4511集成块为7段译码器,输入为BCD,输出为7段译码,接数码管的对应脚,由于数字输入要求BCD码,显示又是时时显示,故程序处理是时时都在进行将计数值转换为BCD码。
由于COS电路电源电压最高18V,而PLC输出为24V,故选用光电耦合器件TLP620进行电位变换。具体怎样编程还不清楚,如需要我可用S7-200编程供你参考。
六:求助:整数转换BCD码
常常在看PLC的资料时,有关于转换指令,就是整数转换BCD码是如何转换的,相对应的计算公式是什么?同行指点一下吧,谢
回复: BCD码又称
整数通常是以16进制(即2进制)数的形式存放在存储器内,将整数转换为BCD码计算思路是这样:将原整数存放在M1区,M2为BCD码存放区,将M2清0,如最大整数<10000,则M2选用一个字存储器就够,计算过程是:先判断M1是否大于10进数8000(转算16进制数为
下面是使用S7-200编写的整数转换为BCD码的梯形图,供你参考。
楼主最近还看过