如有如图6-25所示的编码键盘,有0~E共15个键。但自身有硬件编码器。根据不同键按下(要做到,只能一键按下有效,多键按下无效),在其输出8421端,将有按二进制编码的不同的通路。如按下7键,则4、2、1三端都与COM端通,8端不通,代表二进制0111。其它1~9键,与此类似。0键按下,4端全通,即1111,用以代表输入0(内部程序可做处理,以实现的这个目的)。还有ABCDE键,分别用1010、1011、1100、1101及1110编码,可用作操作键,如清除、退格等。
有了以上硬件条件,4种PLC即可通过图6-26程序实现数据录入。它的算法也是先“移位”,后送数据(对三菱则先设数据,后移位及送数据)。只是,它送的数据已用硬件做了编码处理。
图6-25 编码键盘
图6-26a为欧姆龙PLC程序。它先取“数据输入通道”的最低数位存于200通道中(假设8421分别接此通道的03、02、01、00点,若不是应另做处理)。然后把200通道与常数0比较。如大,说明200通道有大于0的数据,则置“有数据输入”ON。
当“有数据输入”ON,先看此数是否为FFFF,如是,令其变成0。因为前已假设用FFFF替代0。如不是,不做处理。
最后,目标字的各数位各向其高1位移位及把输入的数送目标低字的最低位。此即完成了1个数位的录入。
图6-26b为西门子PLC程序。它先取“输入字”的最低数位存于MW0字中(假设8421分别接此通道的03、02、01、00点,若不是应另做处理)。然后把MW0字与常数0比较。如大,说明,MW0字大于0的数据,则置“有数据输入”ON。
图6-26 编码键盘录入数据程序
当“有数据输入”ON,先看此数是否为FFFF,如是令其变成0。因为,前已假设用FFFF替代0。如不是,不做处理。(www.xing528.com)
最后,目标双字VD0的各数位各向其高1数位移位,之后用逻辑或指令,把输入的数传送给目标双字的最低位。此即完成了1个数位的录入。
图6-26c为三菱PLC程序。它先取“输入字”的最低数位存于K4M0中(假设8421分别接此通道的03、02、01、00点,若不是应另做处理)。然后把K4M0与常数0比较。如大,说明,K4M0有大于0的数据,置“数据输入”ON。
当“数据输入”ON,先看此数是否为FFFF,如是令其变成0。因为,前已假设用FFFF替代0。如不是,不做处理。
最后,目标字M100~M131的各数位各左移位4位(bit),即向其高1数位位移位,同时,把M0~M3传送给M100~M103。接着,把K4M100传送给目标字D0。此即完成了1个数位的录入。
图6-26d所示为和利时LM机编码键盘录入数据程序。图中节1的“shuru”为编码键盘键入字。由于只用其中最低的4位。故先与15(16#F)做“与”运算。结果存于“Ru”中。接着进行两个比较,为以后的处理做好准备。节2、3、4、5为比较结果处理。节6为录入数据。
这样,如果“shuru”改变为7,则执行节1后,“pNE”及“p0”ON。到节2,则把“Ru”赋值给“Ru0”。到节3,判断“Ru”是否为16#F?显然这时不是,故“pGf”OFF。到节4,因为“pGf”OFF,所以不做任何处理。到节5,则把“Ru”赋值给“Ru1”。到节6,则先把输入对象“ww”向左移4位,接着做“或”运算,结果是把“Ru”赋值给“ww”的低数位。
即完成了把“shuru”的7值录入工作。
如果“shuru”改变为16#F,则执行节1后,“pNE”及“p0”ON。到节2,则把“Ru”赋值给“Ru0”。到节3,判断“Ru”是否为16#F?显然这时为是,故“pGf”ON。到节4,由于“pGf”ON,把0赋值给“Ru1”。到节5,则不做任何处理。到节6,则先把输入对象“ww”向左移4位,接着做“或”运算,结果是把0赋值给“ww”的低数位。也完成了把0录入的工作。
从以上4种PLC相关程序介绍可知,有了这个硬件编码键盘,用4个输入点,即可以进行15个数码的录入。是比较合算的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。