lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
樓主  發(fā)表于: 2023-03-11 08:43
我請教一個問題,我這邊需要把INT (有符號的整數(shù) -32768----32767)轉(zhuǎn)換成WORD(0-65535),編一個子程序也可以,如何操作?
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
1樓  發(fā)表于: 2023-03-11 10:28
引用
引用第1樓圓又圓于2023-03-11 09:01發(fā)表的  :
可以試試轉(zhuǎn)成ascii,再轉(zhuǎn)成十六進制

請具體指導(dǎo)一下,謝謝。
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
2樓  發(fā)表于: 2023-03-11 10:47
我其實是在做一個modbus RTU 通訊,寫入只能是一個16位的數(shù),我輸入是實數(shù),然后我轉(zhuǎn)換成整數(shù),當(dāng)我輸入超過32767是,它就變負(fù)了,(-32768---+32767),然后這個負(fù)數(shù)寫進去,設(shè)備就不認(rèn)識了,所以我想問問如何才能寫進去變成0-65535,而不是-32768-+32767  ,普通的整數(shù)VW  好像不能大于32767,大了就變負(fù)數(shù)。
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
3樓  發(fā)表于: 2023-03-11 11:06
這是通訊協(xié)議,我需要讀和寫
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
4樓  發(fā)表于: 2023-03-11 11:10
引用
引用第5樓lander于2023-03-11 11:06發(fā)表的  :
這是通訊協(xié)議,我需要讀和寫
附件: CS系列產(chǎn)品研華MODBUS協(xié)議1.1.pdf (235 K) 下載次數(shù):48
網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
5樓  發(fā)表于: 2023-03-11 11:28
引用
引用第8樓hstec2002于2023-03-11 11:23發(fā)表的  :
直接十六進制讀寫不香?

因為我要在觸摸屏上設(shè)置10進制數(shù),比如200ML,我不能直接設(shè)置一個16進制,那樣他們看不懂
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
6樓  發(fā)表于: 2023-03-13 21:52
還是沒搞出來,困惑了。
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
7樓  發(fā)表于: 2023-03-14 15:00
引用
引用第11樓bdmogui于2023-03-14 08:36發(fā)表的  :
可能不太明白你要表達(dá)的意思,VW既可以是INT也可是WORD,可以試試符號變量,不要用絕對地址

我剛剛?cè)ビ媚愕姆椒,用符號變量?00SMART 默認(rèn)就是有符號的,還是不行。
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
8樓  發(fā)表于: 2023-03-14 15:38
即使你手動輸入16進制的數(shù),是可以寫進去了,但是讀出瞬時流量是一個大于32767的數(shù)的時候,也不能參與運算,不能轉(zhuǎn)換成浮點,因為大于32767就報錯了,其實錯誤就是在于觸摸屏寫入一個大于32767的浮點數(shù),就無法進行公式換算,一旦轉(zhuǎn)換成整數(shù),就報錯。不知道還有沒有好的辦法,已經(jīng)問了很多人了。
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
9樓  發(fā)表于: 2023-03-16 10:13
引用
引用第15樓hstec2002于2023-03-16 08:55發(fā)表的  :
看是否你想要的。

感謝兄臺給的方案,已經(jīng)搞定,再次感謝。
lander
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 110 個
工控威望: 147 點
下載積分: 760 分
在線時間: 38(小時)
注冊時間: 2021-02-20
最后登錄: 2023-08-18
查看lander的 主題 / 回貼
10樓  發(fā)表于: 2023-03-18 08:11
引用
引用第17樓zyt888于2023-03-17 14:52發(fā)表的  :
你符號定義成Word數(shù)據(jù)類型就可以,如果想在程序中進行計算,就要轉(zhuǎn)成DINT后再使用
或者直接使用DINT數(shù)據(jù),多少范圍都滿足你用,然后用mov指令把高字轉(zhuǎn)到通訊寄存器里

感謝指點,謝謝。