專利名稱:Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置與檢測(cè)顯示的技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)場(chǎng)總線技術(shù)已經(jīng)越來(lái)越多地應(yīng)用于工業(yè)現(xiàn)場(chǎng)。Modbus總線更是以其協(xié)議簡(jiǎn)單、實(shí)施容易、性價(jià)比高、可靠性高等優(yōu)點(diǎn)而獲得了越來(lái)越廣泛的應(yīng)用。幀內(nèi)與幀間字符間隔時(shí)間的設(shè)定是Modbus RTU協(xié)議關(guān)鍵技術(shù)之一,Modbus RTU協(xié)議通過(guò)對(duì)報(bào)文幀內(nèi)與幀間字符間隔時(shí)間的檢測(cè)區(qū)分一幀報(bào)文的起始與結(jié)束,對(duì)字符間隔時(shí)間處理不正確將導(dǎo)致不同Modbus產(chǎn)品之間不兼容。Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)定與檢測(cè),對(duì)于理解Modbus關(guān)鍵技術(shù)、設(shè)計(jì)Modbus相關(guān)產(chǎn)品是很有意義的。而如何針對(duì)ModbusRTU幀內(nèi)與幀間字符間隔時(shí)間的設(shè)置和顯示的技術(shù)問(wèn)題還沒(méi)有解決。
發(fā)明內(nèi)容
本發(fā)明是為了克服現(xiàn)有技術(shù)存在不能實(shí)現(xiàn)Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間的設(shè)置與檢測(cè)顯示的技術(shù)問(wèn)題,進(jìn)而提供一種Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示系統(tǒng)及方法。
本發(fā)明的系統(tǒng)由主節(jié)點(diǎn)1、從節(jié)點(diǎn)2、Modbus總線3組成;所述主節(jié)點(diǎn)1由第一鍵盤1-1、第一微處理器單元1-2、第一顯示單元1-3、第一通信單元1-4、啟動(dòng)發(fā)送按鈕1-5組成;第一鍵盤1-1的控制數(shù)據(jù)輸出總線端、啟動(dòng)發(fā)送按鈕1-5的控制數(shù)據(jù)輸出總線端分別連接第一微處理器單元1-2的一個(gè)控制數(shù)據(jù)輸入總線端,第一通信單元1-4的通信數(shù)據(jù)輸出輸入總線端連接第一微處理器單元1-2的通信數(shù)據(jù)輸出輸入總線端,第一微處理器單元1-2的顯示數(shù)據(jù)輸出總線端連接第一顯示單元1-3的數(shù)據(jù)輸入總線端;從節(jié)點(diǎn)2由第二鍵盤2-1、第二微處理器單元2-2、第二顯示單元2-3、第二通信單元2-4組成;第二鍵盤2-1的控制數(shù)據(jù)輸出總線端連接第二微處理器單元2-2的控制數(shù)據(jù)輸入總線端,第二通信單元2-4的通信數(shù)據(jù)輸出輸入總線端連接第二微處理器單元2-2的通信數(shù)據(jù)輸出輸入總線端,第二微處理器單元2-2的顯示數(shù)據(jù)輸出總線端連接第二顯示單元2-3的數(shù)據(jù)輸入總線端;主節(jié)點(diǎn)1的第一通信單元1-4的Modbus總線接口、從節(jié)點(diǎn)2的第二通信單元2-4的Modbus總線接口都依次連接在Modbus總線3上。
它的Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示的方法步驟為步驟一、啟動(dòng)系統(tǒng),初始化主節(jié)點(diǎn)1、從節(jié)點(diǎn)2,初始化內(nèi)容包括設(shè)置各處理器單元的定時(shí)器和串口工作模式、初始化各顯示單元,并設(shè)置從節(jié)點(diǎn)2的地址為01h、定義計(jì)數(shù)器變量TCOUNT并將其初值設(shè)置為0;步驟二、通過(guò)主節(jié)點(diǎn)1的第一鍵盤1-1對(duì)第一微處理器單元1-2的字符間隔時(shí)間進(jìn)行設(shè)置,設(shè)置的3個(gè)字符間隔時(shí)間分別為t1≤1.5倍字符時(shí)間,1.5倍字符時(shí)間<t2<3.5倍字符時(shí)間,t3≥3.5倍字符時(shí)間;步驟三、通過(guò)主節(jié)點(diǎn)1中的第一鍵盤1-1輸入兩幀請(qǐng)求報(bào)文,分別為報(bào)文1為01h,08h,00h,00h,AAh,55h,CRCL1,CRCH1;報(bào)文2為01h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;步驟四、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文為正確的報(bào)文,即幀內(nèi)與幀間字符間隔時(shí)間符合Modbus協(xié)議;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t1立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟五、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型1,即將一幀報(bào)文拆分成兩幀;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t3立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t3立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟六、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型2,即將兩幀報(bào)文合并成一幀;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t1立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t1立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟七、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型3,即因發(fā)送報(bào)文的相鄰字符的間隔時(shí)間不符合Modbus協(xié)議而導(dǎo)致產(chǎn)生錯(cuò)誤字符;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t2立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t2立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;
步驟八、從節(jié)點(diǎn)2通過(guò)串口接收中斷和定時(shí)器溢出中斷來(lái)檢測(cè)相鄰兩個(gè)字符之間的間隔時(shí)間;定時(shí)器工作在自動(dòng)重載入模式,當(dāng)定時(shí)時(shí)間達(dá)到0.5倍字符時(shí)間時(shí),產(chǎn)生溢出中斷;從節(jié)點(diǎn)2每接收到一個(gè)字符,即產(chǎn)生一個(gè)串口中斷,在串口接收中斷服務(wù)程序中對(duì)定時(shí)器和TCOUNT清零,定時(shí)器和TCOUNT立即重新開(kāi)始計(jì)數(shù);定時(shí)器每溢出一次,即對(duì)計(jì)數(shù)器變量TCOUNT做加1運(yùn)算;根據(jù)TCOUNT的值解析報(bào)文當(dāng)TCOUNT≤5時(shí),認(rèn)為一幀報(bào)文尚未結(jié)束;當(dāng)5≤TCOUNT<9時(shí),認(rèn)為上次接收到的字符為一幀報(bào)文的最末字符,而若在下次定時(shí)器中斷之前接收到新的字符,則認(rèn)為該字符為錯(cuò)誤字符;當(dāng)TCOUNT≥9時(shí),認(rèn)為其后接收到的字符為新一幀報(bào)文的首字符;步驟九、從節(jié)點(diǎn)2根據(jù)接收到的字符和檢測(cè)到的相鄰字符之間的間隔時(shí)間,按照所解析的報(bào)文幀的組成來(lái),通過(guò)第二顯示單元2-3顯示報(bào)文,依次為“報(bào)文101h,08h,00h,00h,AAh,55h,CRCL1,CRCH1;“報(bào)文201h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;“報(bào)文301h,08h,00h,00h;“報(bào)文4AAh,55h,CRCL1,CRCH1;“報(bào)文501h,06h,11h,22h;“報(bào)文6CCh,33h,CRCL2,CRCH2;“報(bào)文701h,08h,00h,00h,AAh,55h,CRCL1,CRCH1,01h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;“報(bào)文801h,08h,00h,00h;“報(bào)文9錯(cuò)誤字符AAh,55h,CRCL1,CRCH1;“報(bào)文1001h,06h,11h,22h;“報(bào)文11錯(cuò)誤字符CCh,33h,CRCL2,CRCH2”。
本發(fā)明能設(shè)置正確或錯(cuò)誤的Modbus RTU報(bào)文字符間隔時(shí)間,并能對(duì)相鄰字符間隔時(shí)間進(jìn)行檢測(cè)與顯示,其得出的結(jié)果直觀,其報(bào)文內(nèi)容能夠體現(xiàn)正確的和三種錯(cuò)誤的情況,有助于掌握Modbus RTU字符間隔時(shí)間對(duì)報(bào)文起止的界定機(jī)制,有助于Modbus總線教學(xué)實(shí)驗(yàn)和培訓(xùn)的開(kāi)展。它的系統(tǒng)還具有結(jié)構(gòu)簡(jiǎn)單的優(yōu)點(diǎn)。
圖1是本發(fā)明系統(tǒng)的電路結(jié)構(gòu)示意圖。
具體實(shí)施例方式
具體實(shí)施方式
一結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式的系統(tǒng)由主節(jié)點(diǎn)1、從節(jié)點(diǎn)2、Modbus總線3組成;所述主節(jié)點(diǎn)1由第一鍵盤1-1、第一微處理器單元1-2、第一顯示單元1-3、第一通信單元1-4、啟動(dòng)發(fā)送按鈕1-5組成;第一鍵盤1-1的控制數(shù)據(jù)輸出總線端、啟動(dòng)發(fā)送按鈕1-5的控制數(shù)據(jù)輸出總線端分別連接第一微處理器單元1-2的一個(gè)控制數(shù)據(jù)輸入總線端,第一通信單元1-4的通信數(shù)據(jù)輸出輸入總線端連接第一微處理器單元1-2的通信數(shù)據(jù)輸出輸入總線端,第一微處理器單元1-2的顯示數(shù)據(jù)輸出總線端連接第一顯示單元1-3的數(shù)據(jù)輸入總線端;從節(jié)點(diǎn)2由第二鍵盤2-1、第二微處理器單元2-2、第二顯示單元2-3、第二通信單元2-4組成;第二鍵盤2-1的控制數(shù)據(jù)輸出總線端連接第二微處理器單元2-2的控制數(shù)據(jù)輸入總線端,第二通信單元2-4的通信數(shù)據(jù)輸出輸入總線端連接第二微處理器單元2-2的通信數(shù)據(jù)輸出輸入總線端,第二微處理器單元2-2的顯示數(shù)據(jù)輸出總線端連接第二顯示單元2-3的數(shù)據(jù)輸入總線端;主節(jié)點(diǎn)1的第一通信單元1-4的Modbus總線接口、從節(jié)點(diǎn)2的第二通信單元2-4的Modbus總線接口都依次連接在Modbus總線3上。
所述第一微處理器單元1-2、第二微處理器單元2-2中的微處理器都選用的是C8051F021;第一顯示單元1-3、第二顯示單元2-3都選用的是MS12864J型號(hào)液晶;第一鍵盤1-1、第二鍵盤2-1都選用的是歐姆龍鍵盤;啟動(dòng)發(fā)送按鈕1-5選用的是歐姆龍按鍵;第一通信單元1-4、第二通信單元2-4都選用的是MAX485。
它的Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示的方法步驟為步驟一、啟動(dòng)系統(tǒng),初始化主節(jié)點(diǎn)1、從節(jié)點(diǎn)2,初始化內(nèi)容包括設(shè)置各處理器單元的定時(shí)器和串口工作模式、初始化各顯示單元,并設(shè)置從節(jié)點(diǎn)2的地址為01h、定義計(jì)數(shù)器變量TCOUNT并將其初值設(shè)置為0;步驟二、通過(guò)主節(jié)點(diǎn)1的第一鍵盤1-1對(duì)第一微處理器單元1-2的字符間隔時(shí)間進(jìn)行設(shè)置,設(shè)置的3個(gè)字符間隔時(shí)間分別為t1≤1.5倍字符時(shí)間,1.5倍字符時(shí)間<t2<3.5倍字符時(shí)間,t3≥3.5倍字符時(shí)間;步驟三、通過(guò)主節(jié)點(diǎn)1中的第一鍵盤1-1輸入兩幀請(qǐng)求報(bào)文,分別為報(bào)文1為01h,08h,00h,00h,AAh,55h,CRCL1,CRCH1;報(bào)文2為01h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;步驟四、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文為正確的報(bào)文,即幀內(nèi)與幀間字符間隔時(shí)間符合Modbus協(xié)議;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t1立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟五、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型1,即將一幀報(bào)文拆分成兩幀;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t3立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t3立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟六、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型2,即將兩幀報(bào)文合并成一幀;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t1立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t1立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟七、設(shè)置主節(jié)點(diǎn)1的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型3,即因發(fā)送報(bào)文的相鄰字符的間隔時(shí)間不符合Modbus協(xié)議而導(dǎo)致產(chǎn)生錯(cuò)誤字符;按下主節(jié)點(diǎn)1中的啟動(dòng)發(fā)送按鈕1-5,主節(jié)點(diǎn)1發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t2立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t2立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟八、從節(jié)點(diǎn)2通過(guò)串口接收中斷和定時(shí)器溢出中斷來(lái)檢測(cè)相鄰兩個(gè)字符之間的間隔時(shí)間;定時(shí)器工作在自動(dòng)重載入模式,當(dāng)定時(shí)時(shí)間達(dá)到0.5倍字符時(shí)間時(shí),產(chǎn)生溢出中斷;從節(jié)點(diǎn)2每接收到一個(gè)字符,即產(chǎn)生一個(gè)串口中斷,在串口接收中斷服務(wù)程序中對(duì)定時(shí)器和TCOUNT清零,定時(shí)器和TCOUNT立即重新開(kāi)始計(jì)數(shù);定時(shí)器每溢出一次,即對(duì)計(jì)數(shù)器變量TCOUNT做加1運(yùn)算;根據(jù)TCOUNT的值解析報(bào)文當(dāng)TCOUNT≤5時(shí),認(rèn)為一幀報(bào)文尚未結(jié)束;當(dāng)5≤TCOUNT<9時(shí),認(rèn)為上次接收到的字符為一幀報(bào)文的最末字符,而若在下次定時(shí)器中斷之前接收到新的字符,則認(rèn)為該字符為錯(cuò)誤字符;當(dāng)TCOUNT≥9時(shí),認(rèn)為其后接收到的字符為新一幀報(bào)文的首字符;步驟九、從節(jié)點(diǎn)2根據(jù)接收到的字符和檢測(cè)到的相鄰字符之間的間隔時(shí)間,按照所解析的報(bào)文幀的組成來(lái),通過(guò)第二顯示單元2-3顯示報(bào)文,依次為“報(bào)文101h,08h,00h,00h,AAh,55h,CRCL1,CRCH1;“報(bào)文201h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;“報(bào)文301h,08h,00h,00h;“報(bào)文4AAh,55h,CRCL1,CRCH1;“報(bào)文501h,06h,11h,22h;“報(bào)文6CCh,33h,CRCL2,CRCH2;“報(bào)文701h,08h,00h,00h,AAh,55h,CRCL1,CRCH1,01h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;“報(bào)文801h,08h,00h,00h;“報(bào)文9錯(cuò)誤字符AAh,55h,CRCL1,CRCH1;“報(bào)文1001h,06h,11h,22h;“報(bào)文11錯(cuò)誤字符CCh,33h,CRCL2,CRCH2”。
權(quán)利要求
1.Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示系統(tǒng),其特征在于它由主節(jié)點(diǎn)(1)、從節(jié)點(diǎn)(2)、Modbus總線(3)組成;所述主節(jié)點(diǎn)(1)由第一鍵盤(1-1)、第一微處理器單元(1-2)、第一顯示單元(1-3)、第一通信單元(1-4)、啟動(dòng)發(fā)送按鈕(1-5)組成;第一鍵盤(1-1)的控制數(shù)據(jù)輸出總線端、啟動(dòng)發(fā)送按鈕(1-5)的控制數(shù)據(jù)輸出總線端分別連接第一微處理器單元(1-2)的一個(gè)控制數(shù)據(jù)輸入總線端,第一通信單元(1-4)的通信數(shù)據(jù)輸出輸入總線端連接第一微處理器單元(1-2)的通信數(shù)據(jù)輸出輸入總線端,第一微處理器單元(1-2)的顯示數(shù)據(jù)輸出總線端連接第一顯示單元(1-3)的數(shù)據(jù)輸入總線端;從節(jié)點(diǎn)(2)由第二鍵盤(2-1)、第二微處理器單元(2-2)、第二顯示單元(2-3)、第二通信單元(2-4)組成;第二鍵盤(2-1)的控制數(shù)據(jù)輸出總線端連接第二微處理器單元(2-2)的控制數(shù)據(jù)輸入總線端,第二通信單元(2-4)的通信數(shù)據(jù)輸出輸入總線端連接第二微處理器單元(2-2)的通信數(shù)據(jù)輸出輸入總線端,第二微處理器單元(2-2)的顯示數(shù)據(jù)輸出總線端連接第二顯示單元(2-3)的數(shù)據(jù)輸入總線端;主節(jié)點(diǎn)(1)的第一通信單元(1-4)的Modbus總線接口、從節(jié)點(diǎn)(2)的第二通信單元(2-4)的Modbus總線接口都依次連接在Modbus總線(3)上。
2.Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示方法,其特征在于它的方法步驟為步驟一、啟動(dòng)系統(tǒng),初始化主節(jié)點(diǎn)(1)、從節(jié)點(diǎn)(2),初始化內(nèi)容包括設(shè)置各處理器單元的定時(shí)器和串口工作模式、初始化各顯示單元,并設(shè)置從節(jié)點(diǎn)(2)的地址為01h、定義計(jì)數(shù)器變量TCOUNT并將其初值設(shè)置為0;步驟二、通過(guò)主節(jié)點(diǎn)(1)的第一鍵盤(1-1)對(duì)第一微處理器單元(1-2)的字符間隔時(shí)間進(jìn)行設(shè)置,設(shè)置的3個(gè)字符間隔時(shí)間分別為t1≤1.5倍字符時(shí)間,1.5倍字符時(shí)間<t2<3.5倍字符時(shí)間,t3≥3.5倍字符時(shí)間;步驟三、通過(guò)主節(jié)點(diǎn)(1)中的第一鍵盤(1-1)輸入兩幀請(qǐng)求報(bào)文,分別為報(bào)文1為01h,08h,00h,00h,AAh,55h,CRCL1,CRCH1;報(bào)文2為01h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;步驟四、設(shè)置主節(jié)點(diǎn)(1)的發(fā)送報(bào)文為正確的報(bào)文,即幀內(nèi)與幀間字符間隔時(shí)間符合Modbus協(xié)議;按下主節(jié)點(diǎn)(1)中的啟動(dòng)發(fā)送按鈕(1-5),主節(jié)點(diǎn)(1)發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t1立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟五、設(shè)置主節(jié)點(diǎn)(1)的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型1,即將一幀報(bào)文拆分成兩幀;按下主節(jié)點(diǎn)(1)中的啟動(dòng)發(fā)送按鈕(1-5),主節(jié)點(diǎn)(1)發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t3立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t3立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟六、設(shè)置主節(jié)點(diǎn)(1)的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型2,即將兩幀報(bào)文合并成一幀;按下主節(jié)點(diǎn)(1)中的啟動(dòng)發(fā)送按鈕(1-5),主節(jié)點(diǎn)(1)發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t1立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t1立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟七、設(shè)置主節(jié)點(diǎn)(1)的發(fā)送報(bào)文的字符間隔時(shí)間為錯(cuò)誤類型3,即因發(fā)送報(bào)文的相鄰字符的間隔時(shí)間不符合Modbus協(xié)議而導(dǎo)致產(chǎn)生錯(cuò)誤字符;按下主節(jié)點(diǎn)(1)中的啟動(dòng)發(fā)送按鈕(1-5),主節(jié)點(diǎn)(1)發(fā)送報(bào)文中字符的發(fā)送順序及時(shí)間間隔為發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送08h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t1立即發(fā)送00h,發(fā)送完成后延遲t2立即發(fā)送AAh,發(fā)送完成后延遲t1立即發(fā)送55h,發(fā)送完成后延遲t1立即發(fā)送CRCL1,發(fā)送完成后延遲t1立即發(fā)送CRCH1,發(fā)送完成后延遲t3立即發(fā)送01h,發(fā)送完成后延遲t1立即發(fā)送06h,發(fā)送完成后延遲t1立即發(fā)送11h,發(fā)送完成后延遲t1立即發(fā)送22h,發(fā)送完成后延遲t2立即發(fā)送CCh,發(fā)送完成后延遲t1立即發(fā)送33h,發(fā)送完成后延遲t1立即發(fā)送CRCL2,發(fā)送完成后延遲t1立即發(fā)送CRCH2;步驟八、從節(jié)點(diǎn)(2)通過(guò)串口接收中斷和定時(shí)器溢出中斷來(lái)檢測(cè)相鄰兩個(gè)字符之間的間隔時(shí)間;定時(shí)器工作在自動(dòng)重載入模式,當(dāng)定時(shí)時(shí)間達(dá)到0.5倍字符時(shí)間時(shí),產(chǎn)生溢出中斷;從節(jié)點(diǎn)(2)每接收到一個(gè)字符,即產(chǎn)生一個(gè)串口中斷,在串口接收中斷服務(wù)程序中對(duì)定時(shí)器和TCOUNT清零,定時(shí)器和TCOUNT立即重新開(kāi)始計(jì)數(shù);定時(shí)器每溢出一次,即對(duì)計(jì)數(shù)器變量TCOUNT做加1運(yùn)算;根據(jù)TCOUNT的值解析報(bào)文當(dāng)TCOUNT≤5時(shí),認(rèn)為一幀報(bào)文尚未結(jié)束;當(dāng)5≤TCOUNT<9時(shí),認(rèn)為上次接收到的字符為一幀報(bào)文的最末字符,而若在下次定時(shí)器中斷之前接收到新的字符,則認(rèn)為該字符為錯(cuò)誤字符;當(dāng)TCOUNT≥9時(shí),認(rèn)為其后接收到的字符為新一幀報(bào)文的首字符;步驟九、從節(jié)點(diǎn)(2)根據(jù)接收到的字符和檢測(cè)到的相鄰字符之間的間隔時(shí)間,按照所解析的報(bào)文幀的組成來(lái),通過(guò)第二顯示單元(2-3)顯示報(bào)文,依次為“報(bào)文101h,08h,00h,00h,AAh,55h,CRCL1,CRCH1;“報(bào)文201h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;“報(bào)文301h,08h,00h,00h;“報(bào)文4AAh,55h,CRCL1,CRCH1;“報(bào)文501h,06h,11h,22h;“報(bào)文6CCh,33h,CRCL2,CRCH2;“報(bào)文701h,08h,00h,00h,AAh,55h,CRCL1,CRCH1,01h,06h,11h,22h,CCh,33h,CRCL2,CRCH2;“報(bào)文801h,08h,00h,00h;“報(bào)文9錯(cuò)誤字符 AAh,55h,CRCL1,CRCH1;“報(bào)文1001h,06h,11h,22h;“報(bào)文11錯(cuò)誤字符CCh,33h,CRCL2,CRCH2”。
全文摘要
Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間設(shè)置和檢測(cè)顯示系統(tǒng)及方法,它涉及的是Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間的設(shè)置與檢測(cè)顯示的技術(shù)領(lǐng)域。它是為解決現(xiàn)有技術(shù)存在不能實(shí)現(xiàn)Modbus RTU幀內(nèi)與幀間字符間隔時(shí)間的設(shè)置與檢測(cè)顯示的技術(shù)問(wèn)題。它的主節(jié)點(diǎn)(1)的第一通信單元(1-4)的Modbus總線接口、從節(jié)點(diǎn)(2)的第二通信單元(2-4)的Modbus總線接口都依次連接在Modbus總線(3)上。它的方法步驟為在主節(jié)點(diǎn)(1)中設(shè)置3個(gè)字符間隔時(shí)間并輸入兩幀的發(fā)送報(bào)文;設(shè)置主節(jié)點(diǎn)(1)的發(fā)送報(bào)文類型為正確、錯(cuò)誤類型1、錯(cuò)誤類型2或錯(cuò)誤類型3并發(fā)送;從節(jié)點(diǎn)(2)按照檢測(cè)到的間隔時(shí)間劃分接收到的報(bào)文并顯示接收?qǐng)?bào)文。本發(fā)明能設(shè)置RTU報(bào)文字符間隔時(shí)間,并對(duì)其進(jìn)行檢測(cè)與顯示,其得出的結(jié)果直觀。
文檔編號(hào)H04L12/24GK101094110SQ20071007252
公開(kāi)日2007年12月26日 申請(qǐng)日期2007年7月18日 優(yōu)先權(quán)日2007年7月18日
發(fā)明者佟為明, 趙志衡, 陳培友, 劉勇, 潘悅, 李中偉 申請(qǐng)人:哈爾濱工業(yè)大學(xué)