yoyo2001426
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 225 個(gè)
工控威望: 461 點(diǎn)
下載積分: 3504 分
在線時(shí)間: 166(小時(shí))
注冊(cè)時(shí)間: 2017-04-23
最后登錄: 2024-08-16
查看yoyo2001426的 主題 / 回貼
樓主  發(fā)表于: 2023-09-07 14:25
上位機(jī) 將收到的浮點(diǎn)數(shù)值分成兩個(gè)D值丟進(jìn)來PLC
那怎么將兩個(gè)D值合并恢復(fù)成原本的數(shù)值
夢(mèng)雨天涯
微信hui530527   &
級(jí)別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 4077 個(gè)
工控威望: 7439 點(diǎn)
下載積分: 14081 分
在線時(shí)間: 2742(小時(shí))
注冊(cè)時(shí)間: 2016-10-31
最后登錄: 2024-09-20
查看夢(mèng)雨天涯的 主題 / 回貼
1樓  發(fā)表于: 2023-09-07 14:49
不需要結(jié)合啊,你認(rèn)為他是浮點(diǎn),那么他就自動(dòng)默認(rèn)占用兩個(gè)字
微信hui530527      b站賬號(hào),非標(biāo)自動(dòng)化譚工
請(qǐng)不要隨意加我,不會(huì)隨便通過。QQ群942493953
yoyo2001426
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 225 個(gè)
工控威望: 461 點(diǎn)
下載積分: 3504 分
在線時(shí)間: 166(小時(shí))
注冊(cè)時(shí)間: 2017-04-23
最后登錄: 2024-08-16
查看yoyo2001426的 主題 / 回貼
2樓  發(fā)表于: 2023-09-07 15:16
上位機(jī)的輸出為 1Byte 所以他將浮點(diǎn)數(shù)分成4 Byte
以PLC 這端來看的話就是兩個(gè)D值
假設(shè) 上位機(jī)的數(shù)值為 45.725
PLC收到為 26342 和 13890 要把這個(gè)兩個(gè)數(shù)值合起來 就是45.725
現(xiàn)在就是不知道怎么合并
wmw186
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 56 個(gè)
工控威望: 314 點(diǎn)
下載積分: 121 分
在線時(shí)間: 54(小時(shí))
注冊(cè)時(shí)間: 2021-11-09
最后登錄: 2024-09-14
查看wmw186的 主題 / 回貼
3樓  發(fā)表于: 2023-09-07 15:39
單精度的浮點(diǎn)數(shù)本來就占用兩個(gè)字呀,你處理使用這個(gè)數(shù)據(jù)用浮點(diǎn)數(shù)相關(guān)的指令直接操作就行了
陳0928
陳0928
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 58 個(gè)
工控威望: 161 點(diǎn)
下載積分: 7168 分
在線時(shí)間: 232(小時(shí))
注冊(cè)時(shí)間: 2021-11-19
最后登錄: 2024-09-20
查看陳0928的 主題 / 回貼
4樓  發(fā)表于: 2023-09-07 15:59
引用
引用第2樓yoyo2001426于2023-09-07 15:16發(fā)表的  :
上位機(jī)的輸出為 1Byte 所以他將浮點(diǎn)數(shù)分成4 Byte
以PLC 這端來看的話就是兩個(gè)D值
假設(shè) 上位機(jī)的數(shù)值為 45.725
PLC收到為 26342 和 13890 要把這個(gè)兩個(gè)數(shù)值合起來 就是45.725
現(xiàn)在就是不知道怎么合并

這牽扯到通信格式的問題,不同的PLC、通信模式都有些差異,而PLC會(huì)有通信上的特殊寄存器,通常只要用那個(gè)就能解決了。如果那寄存器格式不符合,就要自己解碼了
yoyo2001426
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 225 個(gè)
工控威望: 461 點(diǎn)
下載積分: 3504 分
在線時(shí)間: 166(小時(shí))
注冊(cè)時(shí)間: 2017-04-23
最后登錄: 2024-08-16
查看yoyo2001426的 主題 / 回貼
5樓  發(fā)表于: 2023-09-08 14:46
上位機(jī) 數(shù)值為 100.723 從Float 轉(zhuǎn)成 Log
分成兩個(gè) 16Bit 的通道給PLC 數(shù)值分別為 11634 和 51522
如何在PLC程式里還原成100.723
陳0928
陳0928
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 58 個(gè)
工控威望: 161 點(diǎn)
下載積分: 7168 分
在線時(shí)間: 232(小時(shí))
注冊(cè)時(shí)間: 2021-11-19
最后登錄: 2024-09-20
查看陳0928的 主題 / 回貼
6樓  發(fā)表于: 2023-09-08 16:43
不是你的問題不夠詳細(xì),是你沒理解別人在提什么  
你的通訊如果是走M(jìn)ODBUS的話,會(huì)有ABCD、BADC、CDAB、DCBA這些接收方式
最后看要不要重新排列,如果接收的寄存器剛好符合指令的格式,就能直接用指令DEBCD之類的指令去轉(zhuǎn)
如果你的資訊只有給這樣,別人當(dāng)然只能給你這樣的答案
工控小c
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 273 個(gè)
工控威望: 1082 點(diǎn)
下載積分: 8850 分
在線時(shí)間: 289(小時(shí))
注冊(cè)時(shí)間: 2022-10-14
最后登錄: 2024-09-20
查看工控小c的 主題 / 回貼
7樓  發(fā)表于: 2023-09-08 17:12
PLC收到的D0=K26342=H66 E6 ,D1=K13890=H36 42,H42 36 E6 66=IEEE754浮點(diǎn)數(shù)45.724998474121094,先D0D1高低字節(jié)交換后面自己想吧。
引用
引用第2樓yoyo2001426于2023-09-07 15:16發(fā)表的  :
上位機(jī)的輸出為 1Byte 所以他將浮點(diǎn)數(shù)分成4 Byte
以PLC 這端來看的話就是兩個(gè)D值
假設(shè) 上位機(jī)的數(shù)值為 45.725
PLC收到為 26342 和 13890 要把這個(gè)兩個(gè)數(shù)值合起來 就是45.725
現(xiàn)在就是不知道怎么合并
wmw186
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 56 個(gè)
工控威望: 314 點(diǎn)
下載積分: 121 分
在線時(shí)間: 54(小時(shí))
注冊(cè)時(shí)間: 2021-11-09
最后登錄: 2024-09-14
查看wmw186的 主題 / 回貼
8樓  發(fā)表于: 2023-09-10 07:45
就是常見的通訊過來的數(shù)據(jù)高低字節(jié)順序顛倒問題,swap指令調(diào)換下高低字節(jié)順序就好了。
卓發(fā)智能
相互學(xué)習(xí),共同進(jìn)步。
級(jí)別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 2410 個(gè)
工控威望: 2996 點(diǎn)
下載積分: 9430 分
在線時(shí)間: 641(小時(shí))
注冊(cè)時(shí)間: 2008-08-03
最后登錄: 2024-09-19
查看卓發(fā)智能的 主題 / 回貼
9樓  發(fā)表于: 2023-09-10 08:52
高低字節(jié)互換再合并,果然是高手。
相信自我!
雪山飛狐
級(jí)別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 11237 個(gè)
工控威望: 13592 點(diǎn)
下載積分: 32544 分
在線時(shí)間: 876(小時(shí))
注冊(cè)時(shí)間: 2019-06-05
最后登錄: 2024-09-19
查看雪山飛狐的 主題 / 回貼
10樓  發(fā)表于: 2023-09-10 15:53
思考研究。