全部評論(3條)
-
- pqj000 2010-08-09 00:00:00
- 你可以通過配置串口接收數據的超時時限來判斷
-
贊(1)
回復(0)
-
- 微笑著唱征服 2010-08-09 00:00:00
- 可以設置一個定時器中斷,在接收到一幀數據的開頭將其開啟。 若接受完這幀數據定時器仍未中斷,說明未超時;若定時器中斷,則超時,可以判定這是一串命令的結束。
-
贊(1)
回復(0)
-
- 巨蟹*慶為 2018-04-11 20:20:42
- 我亦將心向明月說得可以解決問題,但是需要根據不同命令設置超時時長,或者超時時間需要以Z長命令為準.故效率不高. 我覺得更好的做法是: 設置一個標志量用來表示是否超時; 再用一個定時器,定時時長為發(fā)送3.5個字符的時間(當然為了保險時間可以長一些); 在定時器中置超時標志; 在串口中斷中每收到一個字節(jié)時定時器清零; 主程序中根據超時標志做相應處理
-
贊(12)
回復(0)
熱門問答
- modbus rtu通訊協(xié)議 如何判斷超時
2010-08-08 03:08:06
658
3
- ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別
2012-03-21 05:57:00
535
5
- ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別
2018-11-29 12:35:26
358
0
- ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別
2017-12-15 04:24:24
477
1
- modbus通訊是用rtu協(xié)議還是ascii協(xié)議
2015-04-27 16:51:02
497
2
- modbus rtu協(xié)議
- 儀表的modbus rtu 協(xié)議的保持寄存器地址是從40001,但是OPC軟件上的modbus rtu 協(xié)議卻是400001開始,我不知道怎么獲取儀表上的數據,我軟件上我要怎么跟儀表地址對起來。
2011-12-24 07:10:01
637
4
- modbus rtu通訊協(xié)議的廣播是什么含義
2017-11-24 03:00:14
516
1
- MFC MODBUS RTU協(xié)議 從站異常響應 如何判斷異常
- 我知道根據異常形成響應信息。但是如何判斷異常 如: 非法數據值,從站設備失敗,設備忙,內存檢測錯等問題。我怎么才能判斷出這些異常發(fā)生了,代碼怎么寫
2018-11-26 00:54:16
284
0
- Modbus RTU通訊問題
- 物理連接結構:主設備ADAM5510,通訊端口【ADAM5090 (RS232)】 連接【RS232/RS485轉換】并聯(lián)從設備1、2。標準Modbus RTU協(xié)議。主設備發(fā)指令讀取從設備寄存器地址。只有1有響應,2無響應,斷開1則2有響應 用電腦替換主設備,分別發(fā)指令至1、2均有正確回應。何... 物理連接結構:主設備ADAM5510,通訊端口【ADAM5090 (RS232)】 連接【RS232/RS485轉換】并聯(lián)從設備1、2。標準Modbus RTU協(xié)議。主設備發(fā)指令讀取從設備寄存器地址。只有1有響應,2無響應,斷開1則2有響應 用電腦替換主設備,分別發(fā)指令至1、2均有正確回應。何解??? 如何實現主設備正常與多個從設備通訊? 展開
2011-09-05 09:04:46
524
2
- 人機 MODBUS Rtu通訊
- 人機為主站是怎樣從人機改變MODBUS地址的數據 人機為從站 怎樣發(fā)送頁面指令給主站以告知主站要顯示的地址數據
2012-12-23 07:13:58
438
1
- C語言如何編寫modbus RTU協(xié)議?
- 我用c語言編寫程序,通過USART收發(fā)數據,硬件電路為RS-485,我想實現modbus RTU協(xié)議的通信,如何配置和編寫?越詳細越好,多謝,若有資料提供,發(fā)到2041479809@qq.com郵箱,感激不盡!
2017-01-08 15:58:41
600
1
- 組態(tài)王 莫迪康 Modbus rtu 協(xié)議
- 我用虛擬串口加串口調試助手嘗試跟組態(tài)王通訊 收到的請求數據為02 04 00 08 00 01 B0 3B (02是設備地址 04是功能碼 功能是讀取一個輸入寄存器 00 08 是寄存器的地址 00 01 是寄存器數量 b0 3b 是crc 校驗位 ) 我響應是02 04 02 00 0a 7d 37 (02 是... 我用虛擬串口加串口調試助手嘗試跟組態(tài)王通訊 收到的請求數據為02 04 00 08 00 01 B0 3B (02是設備地址 04是功能碼 功能是讀取一個輸入寄存器 00 08 是寄存器的地址 00 01 是寄存器數量 b0 3b 是crc 校驗位 ) 我響應是02 04 02 00 0a 7d 37 (02 是設備地址 04 是功能碼 02 是字節(jié)數 00 0a 是數據 7d 37是校驗位 7d是低位 37 是高位) 我發(fā)送數據幀時 組態(tài)王的信息窗口一直提示通訊恢復 初始化失敗 如果我不發(fā)送數據時 就提示嘗試通訊失敗 求解決辦法 QQ754100974 展開
2013-03-24 21:58:36
592
2
- 求高人寫個modbus RTU的通訊協(xié)議 怎么收發(fā)數據
- 我手上有設置端口 波特率的代碼 DCB dcb; HANDLE hCom; hCom=CreateFile(_T("COM1"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if(hCom==INVALID_HANDLE_VALUE) { MessageBox(_T("createfile error,error")); ... 我手上有設置端口 波特率的代碼 DCB dcb; HANDLE hCom; hCom=CreateFile(_T("COM1"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if(hCom==INVALID_HANDLE_VALUE) { MessageBox(_T("createfile error,error")); } BOOL error=SetupComm(hCom,1024,1024); if(!error) MessageBox(_T("setupcomm error")); error=GetCommState(hCom,&dcb); if(!error) MessageBox(_T("getcommstate,error")); dcb.BaudRate=9600; dcb.ByteSize=8; dcb.Parity=EVENPARITY;//NOPARITY; dcb.StopBits=ONESTOPBIT; error=SetCommState(hCom,&dcb); 求高人告訴我收發(fā)數據怎么寫 語言用c++ 要詳細的 原創(chuàng)答案 不要百度上的 展開
2017-11-26 04:29:12
449
1
- Modbus TCP和Modbus Rtu協(xié)議的區(qū)別
2017-04-08 13:22:10
574
1
- Modbus TCP和Modbus Rtu協(xié)議的區(qū)別
2016-09-21 03:10:16
543
1
- Modbus TCP和Modbus Rtu協(xié)議的區(qū)別
2015-11-15 08:28:45
413
1
- RTU采集都用Modbus協(xié)議嗎?
2015-03-29 12:57:33
344
2
- Modbus RTU 幀接收完畢如何判斷
- Modbus RTU 判斷一幀數據接收完成,是不是就用定時器判斷接收到的兩字符時間間隔是否大于傳送3.5個字符時間呀?但這樣的話,接收完一幀數據還必須要花費大概1.45個毫秒(對波特率19200,28/19200)來判斷接收完畢了,才能去處理接收到的數據,會不會影響下一幀... Modbus RTU 判斷一幀數據接收完成,是不是就用定時器判斷接收到的兩字符時間間隔是否大于傳送3.5個字符時間呀?但這樣的話,接收完一幀數據還必須要花費大概1.45個毫秒(對波特率19200,28/19200)來判斷接收完畢了,才能去處理接收到的數據,會不會影響下一幀數據的接收呀?一般發(fā)送兩幀數據之間的時間間隔是多少呀?有沒有其他的判斷幀接收完畢的方法呀?謝謝 展開
2012-05-07 03:16:16
545
3
- PC 如何跟儀表通訊呢? 通過RS485 通訊協(xié)議modbus rtu VB6.0原代碼怎么寫呢?
2011-09-09 06:46:49
339
2
- 如何使用kepserver進行modbus的rtu通訊
2015-11-26 23:05:25
306
1
4月突出貢獻榜
推薦主頁
最新話題





參與評論
登錄后參與評論