




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、低壓電器(20034)基于Modbus/TCP協(xié)議的儀表驅(qū)動(dòng)程序開(kāi)發(fā)基于Modbus/TCP協(xié)議的儀表驅(qū)動(dòng)程序開(kāi)發(fā)梁元其其格郭科成都理工大學(xué)信息管理學(xué)院(610059)陳志文成都太力信息產(chǎn)業(yè)有限公司(610001)摘要Modbus通信協(xié)議已經(jīng)成為一種工業(yè)標(biāo)準(zhǔn),在電力自動(dòng)化和過(guò)程控制中廣泛應(yīng)用,但這種Modbus信息不能在TCP/IP協(xié)議的Internet或Intranet環(huán)境中應(yīng)用。為此,采用Modbus與TCP協(xié)議相結(jié)合的方法,開(kāi)發(fā)出了基于Modbus/TCP協(xié)議的儀表驅(qū)動(dòng)程序,實(shí)現(xiàn)Modbus的全部通信功能,并在施耐德儀表組網(wǎng)中得到了具體應(yīng)用,驗(yàn)證了本方法的可靠性和可行性。敘詞:Modbu
2、s協(xié)議TCP協(xié)議Modicon控制器可編程序控制器中圖分類(lèi)號(hào):TP393.02TP930.9第一作者:梁元,男,1976年生,2001年畢業(yè)于成都理工大學(xué),碩士研究生。研究方向:最優(yōu)化及其自動(dòng)化監(jiān)控。InstrumentDriversExploitationBasedonModbus/TCPLIANGYuanQI121.CollegeofTechnology(610059)Co.,Ltd.(610001)Abstract:communicationprotocolhasbeenwidelyappliedinelectricpowerautomationandprocessKeywords:Mo
3、dbusprotocolTCPprotocolModiconcontrollerPLC1引言目前,Modbus/TCP協(xié)議正逐漸成為一種自動(dòng)化控制的通信協(xié)議的標(biāo)準(zhǔn)。而TCP/IP協(xié)議是在基于PLC的以太網(wǎng)中、I/O模式、或?qū)τ谑褂脛e的數(shù)據(jù)總線(xiàn)或I/O網(wǎng)絡(luò)的網(wǎng)關(guān)用的最多的一種通信協(xié)議。由此,筆者嘗試將Modbus協(xié)議與TCP協(xié)議相結(jié)合,在通用自動(dòng)化設(shè)備的交互應(yīng)用中大大促進(jìn)了工業(yè)中Modbus協(xié)議的使用,具有里程碑的意義。2Modbus協(xié)議Modbus在可編程控制器之間可相互通信,也網(wǎng)絡(luò)信息存取可由控制器內(nèi)置的端口、網(wǎng)絡(luò)適配器以及Modicon提供的模塊選件和網(wǎng)關(guān)等設(shè)備實(shí)現(xiàn),對(duì)OEM(機(jī)械設(shè)備制造
4、商)來(lái)說(shuō),Modicon可為合作伙伴提供現(xiàn)有的程序,可使Modbus+網(wǎng)絡(luò)緊密地集成到他們的產(chǎn)品設(shè)計(jì)中去。Modicon的各種控制器使用的公共語(yǔ)言被稱(chēng)為Modbus協(xié)議,該協(xié)議定義了控制器能識(shí)別和使用的信息結(jié)構(gòu)。當(dāng)在Modbus網(wǎng)絡(luò)上進(jìn)行通信時(shí),協(xié)議能使每一臺(tái)控制器知道它本身的設(shè)備地址,并識(shí)別對(duì)它尋址的數(shù)據(jù),決定應(yīng)起作用的類(lèi)型,取出包含在信息中的數(shù)據(jù)和資料等,控制器也可組織回答信息,并使用Modbus協(xié)議將此信息傳送出去??膳c不同網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行通信,支撐網(wǎng)絡(luò)有Modicon的Modbus和Modbus+工業(yè)網(wǎng)絡(luò)。403TCP協(xié)議TCP/IP協(xié)議族分為鏈路層、網(wǎng)絡(luò)層、傳輸層基于Modbus
5、/TCP協(xié)議的儀表驅(qū)動(dòng)程序開(kāi)發(fā)低壓電器(20034)和應(yīng)用層4層,每一層各有不同的任務(wù)。在TCP/IP中,網(wǎng)絡(luò)層和傳輸層之間的區(qū)別是最為關(guān)鍵的,網(wǎng)絡(luò)層(IP)提供點(diǎn)到點(diǎn)的服務(wù),而運(yùn)輸層(TCP和UDP)提供端到端的服務(wù)。(1)鏈路層。有時(shí)也稱(chēng)作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)斷為止。通過(guò)Modbus/TCP句柄,一個(gè)連接能在協(xié)議層很易被認(rèn)證通過(guò),一個(gè)簡(jiǎn)單的連接能執(zhí)行多個(gè)獨(dú)立的傳輸。另外,TCP允許巨大數(shù)目的并行連接。所以,在很大程度上無(wú)論是被要求重新連接或者重新使用一個(gè)新的連接,它都應(yīng)該是第一選擇。所有Modbus中的請(qǐng)求和應(yīng)答都是通過(guò)這樣一種方法設(shè)計(jì)的,即要求接受方能夠證實(shí)所傳輸?shù)男畔⑹峭暾摹U?qǐng)求和應(yīng)答的
6、功能碼的長(zhǎng)度是固定的,而且僅有一個(gè)功能碼就足夠了。因?yàn)楣δ艽a在請(qǐng)求和應(yīng)答中執(zhí)行的是變化的數(shù)據(jù),這部分?jǐn)?shù)據(jù)將被一個(gè)字節(jié)數(shù)來(lái)表示。當(dāng)Modbus和TCP集成使用時(shí),額外長(zhǎng)度的信息要打上標(biāo)記,允許接收方驗(yàn)證信息的邊界,即使這信息不得不分成很多個(gè)數(shù)據(jù)包來(lái)傳輸。這種CRC232錯(cuò)誤檢查與TCP/IP協(xié)議相結(jié)合的使用大大方便了工業(yè)中尤其是自動(dòng)化控制中數(shù)據(jù)采集、傳輸、應(yīng)用,使得互聯(lián)網(wǎng)與工業(yè)網(wǎng)絡(luò)特別是電力網(wǎng)絡(luò)的互通性得到加強(qiáng)。結(jié)合TelePower軟件,筆者成功地使Modbus/TCP協(xié)議得到了充分的應(yīng)用。TelePower系統(tǒng)是一個(gè)全開(kāi)放的電力自動(dòng)化系統(tǒng)開(kāi)發(fā)平臺(tái),它是太力公司與國(guó)內(nèi)主要電力產(chǎn)品供應(yīng)商深入合作
7、的結(jié)晶。太力公司通過(guò)與主要電力設(shè)備生產(chǎn)商及電力系統(tǒng)集成商的合作,根據(jù)電力系統(tǒng)對(duì)相關(guān)軟件產(chǎn)品的需求,并利用筆者在自動(dòng)化領(lǐng)域多年積累的經(jīng)驗(yàn),將工業(yè)自動(dòng)化軟件的一些先進(jìn)思想滲透到TelePower的產(chǎn)品研發(fā)中。接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們共同處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。(2)網(wǎng)絡(luò)層,有時(shí)也稱(chēng)作互聯(lián)網(wǎng)層。處理分組在網(wǎng)絡(luò)中的活動(dòng),例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及IGMP協(xié)議(Internet組管理協(xié)議)。(3)傳輸層主要為兩臺(tái)主機(jī)上的應(yīng)用程序
8、提供端到端的通信。在TCP/IP協(xié)議族中,有2個(gè)互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶(hù)數(shù)據(jù)協(xié)議)。TCP為兩臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信,它所做的工作包括把應(yīng)用程層,超時(shí)時(shí)鐘等。端的通信,。而UDP則為應(yīng)用層提供一種非常簡(jiǎn)單的服務(wù),它只是把稱(chēng)作數(shù)據(jù)報(bào)的分組從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端,任何必需的可靠性必須由應(yīng)用層來(lái)提供。這兩種傳輸層協(xié)議分別在不同的應(yīng)用程序中有不同的用途,這一點(diǎn)將在后面看到。(4)應(yīng)用層負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的TCP/IP實(shí)現(xiàn)都會(huì)提供下面這些通用的應(yīng)用程序:Telnet遠(yuǎn)程登錄;FTP文件傳輸協(xié)議;SMTP簡(jiǎn)單郵
9、件傳送協(xié)議;SNMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。5基于Modbus/TCP協(xié)議的編程主機(jī)可對(duì)各從機(jī)尋址,發(fā)出廣播信息,從機(jī)返回信息作為對(duì)查詢(xún)的響應(yīng)。從機(jī)對(duì)于主機(jī)的廣播查詢(xún),無(wú)響應(yīng)返回Modbus/TCP協(xié)議。根據(jù)設(shè)備地址、請(qǐng)求功能代碼、發(fā)送數(shù)據(jù)、錯(cuò)誤校驗(yàn)碼,建立主機(jī)查詢(xún)格式,從機(jī)的響應(yīng)信息也用Modbus/TCP協(xié)議組織,它包括確認(rèn)動(dòng)作的代碼,返回?cái)?shù)據(jù)和錯(cuò)誤校驗(yàn)碼。若在接收信息時(shí)出現(xiàn)一個(gè)錯(cuò)誤或從機(jī)不能執(zhí)行要求的動(dòng)作時(shí),從機(jī)會(huì)組織一個(gè)錯(cuò)誤信息,并向主機(jī)發(fā)送作為響應(yīng)(見(jiàn)圖1)。414Modbus/TCP協(xié)議在Modbus/TCP中,數(shù)據(jù)的傳輸不是傳統(tǒng)的固定格式,故它能在很大程度上抵制信號(hào)的干擾,另外維持它傳
10、送到另一端的恢復(fù)信息也是最少的。另一方面,程序的執(zhí)行也希望一個(gè)面向連接的通路。這可以通過(guò)一個(gè)簡(jiǎn)單的而且唯一的登陸標(biāo)志獲得,在Modbus中,打上標(biāo)記的變量通過(guò)外在程序通道維持雙方的聯(lián)系直到該程序通道被中低壓電器(20034)基于Modbus/TCP協(xié)議的儀表驅(qū)動(dòng)程序開(kāi)發(fā)回與原始代碼相等效的一個(gè)碼,并把最高有效位設(shè)定為“1”。如主機(jī)要求從機(jī)讀1組保持寄存器時(shí),則發(fā)送信息的功能碼為:00000011(16進(jìn)制03);若從機(jī)正確接收請(qǐng)求的動(dòng)作信息后,則返回相同的代碼值作為正常響應(yīng)。發(fā)現(xiàn)錯(cuò)時(shí),則返回一個(gè)不正常響應(yīng)信息:10000011(16進(jìn)制83)。從機(jī)對(duì)功能代碼作了修改,此外,還把一個(gè)特殊碼放入響
11、應(yīng)信息的數(shù)據(jù)區(qū)中,告訴主機(jī)出現(xiàn)的錯(cuò)誤類(lèi)型和不正常響應(yīng)的原因。主機(jī)設(shè)備的應(yīng)用程序圖1主、從響應(yīng)周期負(fù)責(zé)處理不正常響應(yīng),典型處理過(guò)程是主機(jī)把對(duì)信息的測(cè)試和診斷送給從機(jī),并通知操作者。在信息級(jí),盡管網(wǎng)絡(luò)通信方法是對(duì)等的,但Modbus/TCP協(xié)議仍采用主從方式,若1臺(tái)控制6Modbus/TCP協(xié)議的驅(qū)動(dòng)程序開(kāi)發(fā)/CModbus/TCP類(lèi)型的驅(qū)動(dòng)程序的基類(lèi)classCModbusProBaseObj:publicCExternProObjpublic:=CString(-T(”);”器作為主機(jī)設(shè)備發(fā)送1個(gè)信息,則可從1臺(tái)從機(jī)設(shè)備返回1個(gè)響應(yīng);同樣,當(dāng)1臺(tái)控制器接受信息時(shí),它就組織1個(gè)從機(jī)設(shè)備的響應(yīng)信息
12、,并返回至原發(fā)送信息的控制器。(1)查詢(xún)。查詢(xún)中的功能代碼為被尋址的從機(jī)設(shè)備應(yīng)執(zhí)行的動(dòng)作類(lèi)型。,從機(jī),址及數(shù)量、錯(cuò)誤校驗(yàn)區(qū)的一些信息,為從機(jī)提供一種校驗(yàn)方法,以保證信息內(nèi)容的完整性。(2)響應(yīng)。從機(jī)正常響應(yīng)時(shí),響應(yīng)功能碼是查詢(xún)功能碼的應(yīng)答,數(shù)據(jù)字節(jié)包含從機(jī)采集的數(shù)據(jù),如寄存器值或狀態(tài)。如出現(xiàn)錯(cuò)誤,則修改功能碼,指明為錯(cuò)誤響應(yīng),并在數(shù)據(jù)字節(jié)中含有一個(gè)代碼來(lái)說(shuō)明錯(cuò)誤,錯(cuò)誤檢查區(qū)允許主機(jī)確認(rèn)有效的信息內(nèi)容。(3)地址設(shè)置。主機(jī)把從機(jī)地址放入信息幀的地址區(qū),并向從機(jī)尋址。從機(jī)響應(yīng)時(shí),把自己的地址放入響應(yīng)信息的地址區(qū),讓主機(jī)識(shí)別已作出響應(yīng)的從機(jī)地址。(4)功能碼設(shè)置。當(dāng)主機(jī)向從機(jī)發(fā)送信息時(shí),功能代碼向從
13、機(jī)說(shuō)明應(yīng)執(zhí)行的動(dòng)作。如讀1組離散式線(xiàn)圈或輸入信號(hào)的ON/OFF狀態(tài),讀1組寄存器的數(shù)據(jù),讀從機(jī)的診斷狀態(tài),寫(xiě)線(xiàn)圈(或寄存器),允許下載、記錄、確認(rèn)從機(jī)內(nèi)的程序等。當(dāng)從機(jī)響應(yīng)主機(jī)時(shí),功能代碼可說(shuō)明從機(jī)正常響應(yīng)或出現(xiàn)錯(cuò)誤(即不正常響應(yīng))。正常響應(yīng)時(shí),從機(jī)簡(jiǎn)單返回原始功能代碼;不正常響應(yīng)時(shí),從機(jī)返42();public:BYTEm-pBuffer;/接受RTU設(shè)備返回信息的緩沖區(qū)intm-nBufferLen;/緩沖區(qū)長(zhǎng)度CPollingThreadm-pWorkThread;/查詢(xún)工作線(xiàn)程ling元素表CModbusNodeListm-1stNode;/按地址分類(lèi)的Pol2CEventCodeTa
14、bleListm-1stSOEEventCode;BOOLm-bWaitExit;public:virtualvoidInitializeBuffer(intnMaxBufferLen=1024);/1.初始化接收信息virtualvoidCheckCRC(BYTE3pInfo,int&nLen);/2.CRCorLRC校驗(yàn)/功能:返回長(zhǎng)度為nLen的字節(jié)流的校驗(yàn)碼/參數(shù):pInfo-字節(jié)流緩沖區(qū)/nLen-字節(jié)流的長(zhǎng)度/nType校驗(yàn)類(lèi)型:/3.從字節(jié)流中取得一個(gè)完整幀,系統(tǒng)缺省的方式是:在給定的超時(shí)范圍內(nèi),通過(guò)對(duì)接收到的/響應(yīng)字節(jié)流作校驗(yàn),將滿(mǎn)足校驗(yàn)的幀取作為響應(yīng)boolCheck
15、Response(BYTE3response-content,int&response-content-len);基于Modbus/TCP協(xié)議的儀表驅(qū)動(dòng)程序開(kāi)發(fā)低壓電器(20034)boolGetAFrame-new(BYTEnSourceAddr,BYTEszRes,intnLen,BYTE33/doublem-nCtrlValue;-控制命令的值/DWORDm-nTimeOut;-控制命令的超時(shí)(ms)/BYTEm-nType;-操作類(lèi)型:0-選擇,1-執(zhí)&pInfo,int&nFrameLen);/3.等待一個(gè)完整響應(yīng)幀的返回virturlbookWaitResp
16、ondFrame(BYTEnSourceAddr,BYTE3行,2-取消/BYTEm-nRCType;-命令類(lèi)型:/0-遙控,1-遙調(diào),2-遙設(shè),3-復(fù)歸/4-召喚定值,5-設(shè)置保護(hù)定值,6-備用,/7-寫(xiě)設(shè)備號(hào),8-保護(hù)投,9-保護(hù)切/BYTEm-nRetStatus;操作返回值0-失敗,1-成功/BYTEmnReason;操作失敗的原因:1-參數(shù)不對(duì),/2-廠站通信失敗,3-超時(shí),4-遙信變位,&pInfo,int&nLen,DWORDnTimeOut=2000);Frame分配內(nèi)存,調(diào)用者釋放/參數(shù):pInfo-接收緩沖區(qū),由動(dòng)態(tài)WaitRespond2/nLen-為接收
17、到的幀的長(zhǎng)度/nTimeOut-超時(shí)/返回:true-接收應(yīng)答幀成功/false-接收應(yīng)答幀失敗/上層規(guī)約實(shí)現(xiàn)/規(guī)約接口實(shí)現(xiàn)/1.初始化RTU,EpSynall/TelePower啟動(dòng)驅(qū)動(dòng)程/BYTEm-nDirectFlag;是否返校,1-直接發(fā)送命令,無(wú)需返校/0-需要返校/BYTEmnExtroData;/操作需要其他參數(shù),由驅(qū)動(dòng)序時(shí)調(diào)用一次virtualERR-CODERTUStart();/2.結(jié)束RTU運(yùn)行,EpSynall/TelePower在結(jié)束RTU/FTU運(yùn)行時(shí)調(diào)用virtualERR-CODERTUClose();/3.初始化處理virtualBOOLCStringszO
18、wner,/廠站名稱(chēng)longnID,/廠站標(biāo)號(hào)CChannelEntry33程序開(kāi)發(fā)者決定;/5.校時(shí)命令下發(fā)入口virtualvoidAdjusticRTUTime();/6.2Table33(CMod23pDeviceProfile);FileName);GetSOEEventTable(CStringsz2pDic),/廠站變量變量字典voidAddSOEEventTable(CEventCodeTable3pTable);BOOLIsExitWaited()returnm-bWaitExit;pChannel,/占用的通道3CRawFrameBufferpRawMsg,/原始報(bào)文數(shù)組7結(jié)語(yǔ)目前,Modbus/TCP協(xié)議的驅(qū)動(dòng)程序開(kāi)發(fā)主要面向的是施耐德公司的PM600、DC150、MT開(kāi)關(guān),ABB公司PMC2915和西門(mén)子公司等。本產(chǎn)品已廣泛使用于電力和自動(dòng)化行業(yè),使用狀況滿(mǎn)意。參考文獻(xiàn)CCommuicInfoOfFactory3pCommInfo,/通信記錄反饋BOOLbSetupComm);/是否配置通信參數(shù)/4.下傳命令入口函數(shù)virtualERR-CODERemoteCtrlCmd(CRemoteCtrlInf
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高端住宅裝修包工包料合同范本
- 精裝房臺(tái)面改造方案
- 網(wǎng)絡(luò)抽簽面試題及答案
- 母嬰護(hù)理考試題及答案
- 水彩臨摹考試題及答案
- 夜市火災(zāi)處置預(yù)案方案
- 2026版《全品高考》選考復(fù)習(xí)方案生物806 第25講 體液調(diào)節(jié)與神經(jīng)調(diào)節(jié)的關(guān)含答案
- 學(xué)校周邊攤點(diǎn)飲食健康現(xiàn)狀與對(duì)策分析
- 營(yíng)銷(xiāo)策劃方案執(zhí)行
- 市區(qū)廢棄廠房拆除方案
- 企業(yè)海關(guān)AEO認(rèn)證流程優(yōu)化與通關(guān)效率提升策略
- 燃?xì)夤疚kU(xiǎn)源辨識(shí)、風(fēng)險(xiǎn)評(píng)價(jià)與控制管理
- 邏輯學(xué)試題與答案
- 人教版九年級(jí)化學(xué)上冊(cè)單元基礎(chǔ)訓(xùn)練試題-全套
- 醫(yī)療美容診所管理規(guī)章制度
- 外貿(mào)安全培訓(xùn)課件
- 賬號(hào)歸屬公司合同協(xié)議
- 粉筆字培訓(xùn)課件
- 孩子棄養(yǎng)權(quán)協(xié)議書(shū)模板
- 中專(zhuān)入學(xué)面試題庫(kù)及答案
- 2025至2030年中國(guó)電子設(shè)計(jì)自動(dòng)化(EDA)軟件產(chǎn)業(yè)發(fā)展預(yù)測(cè)及投資策略分析報(bào)告
評(píng)論
0/150
提交評(píng)論