主題:[求助]EM9160 ModBus Master通信問題 共有42989人關(guān)注過本帖 |
---|
匿名 |
1樓 |
[求助]EM9160 ModBus Master通信問題 Post By:2013-7-17 14:38:00 [只看該作者]
我正在調(diào)試EM9160 的ModBus Master,能否發(fā)份MODBUS的RTU例子程序作為參考?,郵箱 :gxshun @ sina.com
目前出現(xiàn)以下問題: 1:設(shè)置ModBus通訊的超時(shí)時(shí)間:
int timeout;
timeout=mbusMaster_SetTimeout(hPort,100);
這里設(shè)置的為100ms,但不管我設(shè)置超時(shí)時(shí)間為多少timeout都為1000 2:EM9160 定義的ModBus錯(cuò)誤代碼是否和標(biāo)準(zhǔn)的一致?我在讀取ModBus從機(jī)設(shè)備多個(gè)寄存器值時(shí)返回0x84 [此貼子已經(jīng)被作者于2013-7-19 11:23:47編輯過]
|
|
單帖管理 | 引用 | 回復(fù) |
x10 |
2樓 |
Post By:2013-7-18 15:53:00 [只看該作者]
請(qǐng)問是Linux版本還是CE版本?
|
|
單帖管理 | 引用 | 回復(fù) |
zhl |
3樓 |
Post By:2013-7-18 17:06:00 [只看該作者]
1、我們所提供的庫(kù)的確有這個(gè)問題,需要更新mbus_Master.lib文件,已經(jīng)發(fā)到你的郵箱,請(qǐng)查收!
2、 所返回的錯(cuò)誤代碼遵循Modbus協(xié)議,0x84 表示Reply time-out錯(cuò)誤。
|
|
單帖管理 | 引用 | 回復(fù) |
客人 |
4樓 |
Post By:2013-7-19 11:21:00 [只看該作者]
你好,郵件已收到,是CE版本,設(shè)置ModBus通訊的超時(shí)時(shí)間已解決,謝謝! 現(xiàn)另一個(gè)問題是,若讀取1號(hào)從機(jī),從第5個(gè)開始的3個(gè)寄存器,發(fā)送如下命令: UINT16 regArr[20]; mbusMaster_ReadMultipleRegisters( hPort, 1, 5, regArr, 3 ); 串口接收為:01 03 00 04 00 03 05 CB 其中串口接收的第4個(gè)字節(jié)為4(被5減了1),是否應(yīng)該是5?而后面的CRC16是以01 03 00 04 00 03計(jì)算的。
|
|
單帖管理 | 引用 | 回復(fù) |
zhl |
5樓 |
Post By:2013-7-19 12:08:00 [只看該作者]
的確是這樣,函數(shù)mbusMaster_ReadMultipleRegisters( ... ) 中的參數(shù)
startRef: 需要讀取寄存器的起始值,其范圍為: 1~0x10000,是從1開始。內(nèi)部在處理為:startRef--。你可將函數(shù)改為:
mbusMaster_ReadMultipleRegisters( hPort, 1, 6, regArr, 3 );
|
|
單帖管理 | 引用 | 回復(fù) |