项目要求一工作转台上安装了绝对值编码器,实时计算当前的转台角度(0~359.9度), 假设我的编码器分辨率为3600PPR.
假设电气原点的采样值为X1,当前采样值为X2,那么实际的角度应该是
Angel := (X2-X1) MOD 3600
又假设X1=1000, 当X2=100时,按道理计算出来的角度为-900 MOD 3600 = 2700 (270.0度) ,可是结果却是-900(-90.0度) , 这才发现原来西门子PLC内的MOD指令实际是高级语言里的REM指令。
在高级语言里MOD翻译成求模,REM翻译成求余,这两者是有区别的:
设 n1= X MOD Y , 或者 n2= X REM Y
当X,Y符号相同时,n1与XY符号相同, n2也与XY符号相同
当X,Y符号不同时,n1与Y符号相同,n2与X符号相同
-------------谢谢伊默大侠的分享,确实有时只有用到时才会发现。
欢迎光临 工控编程吧 (https://www.gkbc8.com/) | Powered by Discuz! X3.4 |