編碼器是18位,modbus輸出的多圈絕對值編碼器,編碼器輸出從0-2的18次方這個數(shù)值。加計數(shù)的時候,到了最大值又從0開始計數(shù)。減計數(shù)的時候,到了0之后又從2的18次方開始減計數(shù)。
在減計數(shù)的時候,我想得到負數(shù),請問這個有什么辦法能判斷。上位機用的是觸摸屏讀取的,沒有PLC,觸摸屏有C語言的宏,請問C語言怎么判斷數(shù)值從0變成2的18次方。
我的想法是宏程序里面做一個差值,如果上次的數(shù)值和這次的數(shù)值的差值超過一定值時認為是過圈了
還有其他好的辦法嗎?