PLC需要从触摸屏读取一千位数(1234),个位数,十位数,百位数,千位数分别对应一输出口,各位数是几,对应的输出口就脉冲输出几次。比如1234,输出口1对应千位数,脉冲输出1次;输出口2对应百位数,脉冲输出2次;输出口3对应十位数,脉冲输出3次;输出口4对应个位数,脉冲输出4次;请教程序怎么写?
最佳答案
1、
利用整数除法 DIV_I 指令:
第一行,原数除1000,可取千位;
第二行,先将取出来的千位乘以1000存在 AC0,然后用原四位整数减去AC0,得到一个3位整数,存在临时变量 TEMP,最后用这个变量除以100,可取百位;
第三行,先将取出来的百位乘以100存在 AC0,然后用前面一行的3整数减去AC0,得到一个2位整数,存在临时变量 TEMP,最后用这个变量除以10,可取十位;
第四行,先将取出来的十位乘以10存在 AC0,然后用前面一行的2整数减去AC0,得到一个1位整数,这个就是个位数。
如图:
2、发脉冲,频率是多少,占空比是多少,是用定时器发出去?
还是用高速脉冲输出,高速脉冲输出的的 Q 点数是不够用的(最多只有3个,而且高速脉冲输出不可扩展)
这部分内容参考
定时器常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/030.html
高速脉冲输出
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/034.html
图片说明:
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc284109.html