yoyo2001426
級別: 略有小成
|
上位機 將收到的浮點數值分成兩個D值丟進來PLC 那怎么將兩個D值合并恢復成原本的數值 |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網絡英雄
|
不需要結合啊,你認為他是浮點,那么他就自動默認占用兩個字 |
|
---|---|---|
|
yoyo2001426
級別: 略有小成
|
上位機的輸出為 1Byte 所以他將浮點數分成4 Byte 以PLC 這端來看的話就是兩個D值 假設 上位機的數值為 45.725 PLC收到為 26342 和 13890 要把這個兩個數值合起來 就是45.725 現在就是不知道怎么合并 |
---|---|
|
陳0928
陳0928
級別: 探索解密
|
這牽扯到通信格式的問題,不同的PLC、通信模式都有些差異,而PLC會有通信上的特殊寄存器,通常只要用那個就能解決了。如果那寄存器格式不符合,就要自己解碼了 |
---|---|
|
yoyo2001426
級別: 略有小成
|
上位機 數值為 100.723 從Float 轉成 Log 分成兩個 16Bit 的通道給PLC 數值分別為 11634 和 51522 如何在PLC程式里還原成100.723 |
---|---|
|
陳0928
陳0928
級別: 探索解密
|
不是你的問題不夠詳細,是你沒理解別人在提什么 你的通訊如果是走MODBUS的話,會有ABCD、BADC、CDAB、DCBA這些接收方式 最后看要不要重新排列,如果接收的寄存器剛好符合指令的格式,就能直接用指令DEBCD之類的指令去轉 如果你的資訊只有給這樣,別人當然只能給你這樣的答案 |
---|---|
|
工控小c
級別: 工控俠客
|
PLC收到的D0=K26342=H66 E6 ,D1=K13890=H36 42,H42 36 E6 66=IEEE754浮點數45.724998474121094,先D0D1高低字節交換后面自己想吧。
|
---|---|
|