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