cyh1986
级别: 家园常客
精华主题: 0
发帖数量: 353 个
工控威望: 714 点
下载积分: 674 分
在线时间: 292(小时)
注册时间: 2009-04-28
最后登录: 2024-05-01
查看cyh1986的 主题 / 回贴
楼主  发表于: 2020-12-17 17:58
编码器是18位,modbus输出的多圈绝对值编码器,编码器输出从0-2的18次方这个数值。加计数的时候,到了最大值又从0开始计数。减计数的时候,到了0之后又从2的18次方开始减计数。
在减计数的时候,我想得到负数,请问这个有什么办法能判断。上位机用的是触摸屏读取的,没有PLC,触摸屏有C语言的宏,请问C语言怎么判断数值从0变成2的18次方。
我的想法是宏程序里面做一个差值,如果上次的数值和这次的数值的差值超过一定值时认为是过圈了
还有其他好的办法吗?