資源描述:
《modbus rtu通訊協(xié)議在s7-200中的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、關(guān)鍵詞:?Modbus?RTU協(xié)議???指令庫(kù)???ModScan321?引言工業(yè)控制已從單機(jī)控制走向集中監(jiān)控、集散控制,如今已進(jìn)入網(wǎng)絡(luò)集約制造時(shí)代。工業(yè)控制器連網(wǎng)也為網(wǎng)絡(luò)管理提供了方便。Modbus就是工業(yè)控制器的網(wǎng)絡(luò)協(xié)議中的一種。Modbus協(xié)議是應(yīng)用于電子控制器上的一種通訊約規(guī)。通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為主流的工業(yè)標(biāo)準(zhǔn)之一。他為符合Modbus協(xié)議的不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。2?ModbusRTU協(xié)議在S7
2、-200中的應(yīng)用原理2.1?ModbusRTU協(xié)議與S7-200相互關(guān)系簡(jiǎn)介S7-200CPU上的通訊口Port0可以支持ModbusRTU協(xié)議,成為ModbusRTU從站。此功能是通過(guò)S7-200的自由口通訊模式實(shí)現(xiàn),因此可以通過(guò)無(wú)線數(shù)據(jù)電臺(tái)等慢速通訊設(shè)備傳輸。如果想在S7-200CPU與其他支持ModbusRTU的設(shè)備使用ModbusRTU協(xié)議通訊,需要由有S7-200CPU做Modbus主站。S7-200CPU做主站必須由用戶自己用自由口模式,按相關(guān)協(xié)議編程。在S7-200控制系統(tǒng)應(yīng)用中,Modb
3、usRTU從站指令庫(kù)只支持CPU上的通訊0口(Port0)。要實(shí)現(xiàn)ModbusRTU通訊,需要Step7-Micro/WIN32V3.2以上版本的編程軟件,而且須安裝Step7-Micro/WIN32V3.2InstructionLibrary(指令庫(kù))。ModbusRTU功能是通過(guò)指令庫(kù)中預(yù)先編好的程序功能塊實(shí)現(xiàn)的。2.2?ModbusRTU協(xié)議在S7-200中應(yīng)用的基本過(guò)程(1)首先檢查S7-200控制系統(tǒng)中所用Micro/WIN的軟件版本,應(yīng)當(dāng)是Step7-Micro/WINV3.2以上版本。(2
4、)檢查Micro/WIN的指令樹(shù)中是否存在ModbusRTU從站指令庫(kù)(圖1),庫(kù)中應(yīng)當(dāng)包括MBUS_INIT和MBUS_SLAVE兩個(gè)子程序。如果沒(méi)有,須安裝Micro/WIN32V3.2InstructionLibrary(指令庫(kù))軟件包,如圖1所示。圖1????指令樹(shù)中的庫(kù)指令(3)編程時(shí)使用SM0.1—調(diào)用子程序MBUS_INIT進(jìn)行初始化,使用SM0.0—調(diào)用研究MBUS_SLAVE,并指定相應(yīng)參數(shù)。關(guān)于參數(shù)的詳細(xì)說(shuō)明,可在子程序的局部變量表中找到。示例參見(jiàn)圖2:圖2????調(diào)用MODBUS通
5、訊指令庫(kù)圖2中參數(shù)意義如下:●模式選擇:啟動(dòng)/停止MODBUS,1=啟動(dòng);0=停止;●?從站地址:MODBUS從站地址,取值1~247;●?波特率:可選1200,2400,4800,9600,19200,38400,57600;●?奇偶校驗(yàn):0=無(wú)校驗(yàn);1=奇校驗(yàn);2=偶校驗(yàn);●?延時(shí):附加字符間延時(shí),缺省值為0;●最大I/Q位:參與通訊的最大I/O點(diǎn)數(shù),S7-200的I/O映像區(qū)為128/128,缺省值為128;●最大AI字?jǐn)?shù):參與通訊的最大AI通道數(shù),可為16或32;●最大保持寄存器區(qū):參與通訊的V
6、存儲(chǔ)區(qū)字(VW);●?保持寄存器區(qū)起始地址:以&VBx指定(間接尋址方式);●?初始化完成標(biāo)志:成功初始化后置1;●初始化錯(cuò)誤代碼;●?MODBUS執(zhí)行:通訊中時(shí)置1;●?錯(cuò)誤代碼:0=無(wú)錯(cuò)誤。(4)注意的問(wèn)題調(diào)用Step7-Mciro/WIN32V3.2InstructionLibrary(指令庫(kù))需要分配庫(kù)指令數(shù)據(jù)區(qū)(LibraryMemory)。庫(kù)指令數(shù)據(jù)區(qū)是相應(yīng)庫(kù)的子程序和中斷程序所要用到的變量存儲(chǔ)空間。如果在編程時(shí)不分配庫(kù)指令數(shù)據(jù)區(qū),編譯時(shí)會(huì)產(chǎn)生許多相同的錯(cuò)誤。由子程序參數(shù)HoldStart和
7、MaxHold指定的保持寄存器區(qū),是在S7-200CPU的V數(shù)據(jù)存儲(chǔ)區(qū)中分配,此數(shù)據(jù)區(qū)不能和庫(kù)指令數(shù)據(jù)區(qū)有任何重疊,否則在運(yùn)行時(shí)會(huì)產(chǎn)生錯(cuò)誤,不能正常通訊。注意Modbus中的保持寄存器區(qū)按“字”尋址,即MaxHold規(guī)定的是VW而不是VB的個(gè)數(shù)。3?ModbusRTU協(xié)議測(cè)試包含ModbusRTU從站指令庫(kù)的項(xiàng)目編譯、下載到CPU中后,在編程計(jì)算機(jī)(PG/PC)上運(yùn)行一些Modbus測(cè)試軟件可以檢驗(yàn)S7-200的ModbusRTU通訊是否正常,這對(duì)查找故障點(diǎn)很有用。測(cè)試軟件通過(guò)計(jì)算機(jī)串口(RS-232)
8、和PC/PPI電纜連接CPU。(以ModScan32測(cè)試軟件為例作以檢測(cè)說(shuō)明)3.1?測(cè)試軟件??測(cè)試軟件ModScan32如圖3所示。圖3????ModbusRTU測(cè)試軟件:ModScan32圖3中,ModScan32測(cè)試軟件的畫(huà)面中相關(guān)參數(shù)意義如下:Address:ModBus中存儲(chǔ)區(qū)的起始地址;DeviceId:PLCModBus的端口地址;Length:參與通訊的V存儲(chǔ)區(qū)字的長(zhǎng)度。3.2?參數(shù)設(shè)置對(duì)ModScan32測(cè)試軟件的通訊參