二手工控電器
且行且珍惜
級別: 工控俠客
|
PLC通訊讀取到的數據格式如下: 當前數據如下: D10=3E2B D11=312E D12=3530 D13=3837 需要轉換為: D10=2B31 D11=2E35 D12=3038 D13=37 也就是說需要將D10里面的高位數據“3E”移除,然后D10里面的數據由2B和D11里面的高位數據“31”組成2B31. D11里面的數據由2E和D12里面的高位組成2E35. D12里面的數據由30和D13里面的高位組成3038.最后將D13的底位屏蔽。 最終目標是需要在觸摸屏上顯示為:+1.5087。因為將:2B312E35303837轉換后的結果就是帶符號的:+1.5087。 |
|
---|---|---|
|
gzcjx555
QQ 296686949
級別: 工控俠客
|
不知道是你發錯了報文還是什么,我感覺如果是接收報文,如果一般都是第一位,也就是D10寄存器低位是無效的,不知道你的為什么是高位,還有貌似數據位都有點錯亂。所有的數據啊ASKII碼,按照正常翻譯為字符串,應該是從低位數到高位。也就是你的結果排序是312B352E383037,也就是順序都是錯誤的。 |
|
---|---|---|
本帖最近評分記錄:
|
yiwei125
級別: 略有小成
|
有的PLC 直接可以分離高8位和低8位以及合并 例如松下的PLC 如果沒有相關字位操作指令 可以把字地址轉成位地址 再重新組合傳送 PS:通訊可以使用8位傳送模式和16位模式,實在搞不明白換個模式 你會有新發現 |
---|---|
|
yfcc923
級別: 略有小成
|
三菱的話,可以試試 WTOB 和 BTOW 這兩條指令聯合來用. (輔助記憶,Word TO Byte / Byte TO Word) 1,先用WTOB 把上面源地址的4個字打散成 8個字節,存儲于8個連續地址內. 2,再用BTOW,起始地址定在第二個地址,合并成4個字. |
---|---|
|