|
lander
級別: 探索解密
|
我請教一個問題,我這邊需要把INT (有符號的整數 -32768----32767)轉換成WORD(0-65535),編一個子程序也可以,如何操作? |
|---|---|
|
|
|
lander
級別: 探索解密
|
請具體指導一下,謝謝。 |
|---|---|
|
|
|
lander
級別: 探索解密
|
我其實是在做一個modbus RTU 通訊,寫入只能是一個16位的數,我輸入是實數,然后我轉換成整數,當我輸入超過32767是,它就變負了,(-32768---+32767),然后這個負數寫進去,設備就不認識了,所以我想問問如何才能寫進去變成0-65535,而不是-32768-+32767 ,普通的整數VW 好像不能大于32767,大了就變負數。 |
|---|---|
|
|
|
lander
級別: 探索解密
|
|
|---|---|
|
附件:
CS系列產品研華MODBUS協議1.1.pdf (235 K) 下載次數:56
|
|
lander
級別: 探索解密
|
因為我要在觸摸屏上設置10進制數,比如200ML,我不能直接設置一個16進制,那樣他們看不懂 |
|---|---|
|
|
|
lander
級別: 探索解密
|
我剛剛去用你的方法,用符號變量,200SMART 默認就是有符號的,還是不行。 |
|---|---|
|
|
|
lander
級別: 探索解密
|
即使你手動輸入16進制的數,是可以寫進去了,但是讀出瞬時流量是一個大于32767的數的時候,也不能參與運算,不能轉換成浮點,因為大于32767就報錯了,其實錯誤就是在于觸摸屏寫入一個大于32767的浮點數,就無法進行公式換算,一旦轉換成整數,就報錯。不知道還有沒有好的辦法,已經問了很多人了。 |
|---|---|
|
|
|
lander
級別: 探索解密
|
感謝兄臺給的方案,已經搞定,再次感謝。 |
|---|---|
|
|