cyh1986
級(jí)別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 367 個(gè)
工控威望: 738 點(diǎn)
下載積分: 722 分
在線時(shí)間: 298(小時(shí))
注冊(cè)時(shí)間: 2009-04-28
最后登錄: 2024-10-30
查看cyh1986的 主題 / 回貼
樓主  發(fā)表于: 2020-12-17 17:58
編碼器是18位,modbus輸出的多圈絕對(duì)值編碼器,編碼器輸出從0-2的18次方這個(gè)數(shù)值。加計(jì)數(shù)的時(shí)候,到了最大值又從0開始計(jì)數(shù)。減計(jì)數(shù)的時(shí)候,到了0之后又從2的18次方開始減計(jì)數(shù)。
在減計(jì)數(shù)的時(shí)候,我想得到負(fù)數(shù),請(qǐng)問這個(gè)有什么辦法能判斷。上位機(jī)用的是觸摸屏讀取的,沒有PLC,觸摸屏有C語言的宏,請(qǐng)問C語言怎么判斷數(shù)值從0變成2的18次方。
我的想法是宏程序里面做一個(gè)差值,如果上次的數(shù)值和這次的數(shù)值的差值超過一定值時(shí)認(rèn)為是過圈了
還有其他好的辦法嗎?