用984LL语言实现32位数计算
点击数:7305 次 录入时间:03-04 12:01:58 整理:http://www.55dianzi.com PLC入门
由于在984LL中没有32位数的运算功能块直接使用,原来考虑使用的“EMTH”块只允许操作数为32位,而结果不能超出65536,所以无法直接应用。
在某项目中,编码器的数值变化范围为126000左右,超出65536,所以考虑分高低位来进行计算,即通过判断编码器实际值与初始值的高位是相等、不等分别进行计算,计算结果可以满足实际需要。
以左油缸行程为例说明计算过程,油缸全收回时,编码器数值为33232271(对应油缸行程为9403mm),全伸出时编码器数值为33106005(对应油缸行程为0mm),即每1mm行程对应13.428个编码器数值,假如计数器的寄存器为%300021(DINT),初始值存在寄存器%400323(DINT)中,那么油缸行程left可以由以下计算获得:
If %300022=%4000324 then
Left = (%300021-%400323)/13.428=(%300021-%400323)*1000/13428;
If %300022>%4000324 then
Left = [(%300021-%400323)+(%300022-%4000324)*65536]/13.428
=(%300021-%400323)*1000/13428+(%300022-%4000324)*4880.55
≈(%300022-%4000324)*4880+%300021*1000/13428-%400323*1000/13428
这样就可以通过984LL语言中的16位计算命令获得结果。
本文关键字:暂无联系方式PLC入门,plc技术 - PLC入门