ppi的通信功能解讀課件_第1頁(yè)
ppi的通信功能解讀課件_第2頁(yè)
ppi的通信功能解讀課件_第3頁(yè)
ppi的通信功能解讀課件_第4頁(yè)
ppi的通信功能解讀課件_第5頁(yè)
已閱讀5頁(yè),還剩187頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4章S7-200PLC的通信功能第4章S7-200PLC的通信功能14.1PPI通訊4.1.1概述PPI協(xié)議是S7-200PLC中最基本的一種通信方式,通過(guò)S7-200CPU自身的端口(port0或Port1)即可完成,是S7-200CPU默認(rèn)的通信協(xié)議。PPI是一種主-從協(xié)議,協(xié)議定義了主站和從站,網(wǎng)絡(luò)中主站向網(wǎng)絡(luò)中的從站發(fā)出請(qǐng)求,從站只能對(duì)主站發(fā)出的請(qǐng)求做出響應(yīng),自己不能發(fā)出請(qǐng)求。主站也可以對(duì)網(wǎng)絡(luò)中其他主站的請(qǐng)求做出響應(yīng)。ppi的通信功能解讀課件2S7-200的通信口為RS-485接口,PC/PPI多主站電纜用于計(jì)算機(jī)與S7-200之間的通信,有RS-232C/PPI和USB/PPI兩種電纜。PPI網(wǎng)絡(luò)連接示意圖如圖10-1所示,要求如下:

(1)每個(gè)網(wǎng)段至多32個(gè)網(wǎng)絡(luò)節(jié)點(diǎn); (2)每個(gè)網(wǎng)段最長(zhǎng)50米(不用中繼器),可通過(guò)中繼器擴(kuò)展網(wǎng)絡(luò),最多9個(gè)中繼器; (3)網(wǎng)絡(luò)可包含127節(jié)點(diǎn); (4)網(wǎng)絡(luò)可包含32個(gè)主站; (5)網(wǎng)絡(luò)總長(zhǎng)9600米。一個(gè)網(wǎng)段一個(gè)網(wǎng)段一個(gè)網(wǎng)段50米最多1000米50米圖4-1PPI網(wǎng)絡(luò)連接示意圖S7-200的通信口為RS-485接口,PC/PPI多主站電3PROFIBUS連接器和電纜將CP通信卡和S7-200通信口連接。不同主/從站之間也可以通過(guò)PROFIBUS連接器和電纜進(jìn)行連接通信。PPI是主/從協(xié)議,默認(rèn)情況下網(wǎng)絡(luò)中的S7-200CPU均為從站,其他CPU、SIMATIC編程器或文本顯示器(例TD400C等)為主站。

PPI網(wǎng)絡(luò)包括單主站PPI網(wǎng)絡(luò)和多主站PPI網(wǎng)絡(luò)。PROFIBUS連接器和電纜將CP通信卡和S7-200通信口4圖4-2多主站PPI網(wǎng)絡(luò)結(jié)構(gòu)圖圖4-2多主站PPI網(wǎng)絡(luò)結(jié)構(gòu)圖54.1.2使用網(wǎng)絡(luò)讀寫(xiě)指令實(shí)現(xiàn)PPI通信如果在用戶(hù)程序中使用了PPI主站模式,一些S7-200CPU在RUN模式下可以做主站,它們可以用網(wǎng)絡(luò)讀(NETR,NetRead)和網(wǎng)絡(luò)寫(xiě)(NETW,NetWrite)指令讀寫(xiě)其他CPU中的數(shù)據(jù)。S7-200PLC之間的PPI通信可以使用PROFIBUS網(wǎng)線直接連接CPU上PORT0或PORT1,然后在CPU內(nèi)調(diào)用網(wǎng)絡(luò)讀寫(xiě)指令即可實(shí)現(xiàn)。4.1.2使用網(wǎng)絡(luò)讀寫(xiě)指令實(shí)現(xiàn)PPI通信61.網(wǎng)絡(luò)讀寫(xiě)指令NETR/NETW網(wǎng)絡(luò)讀?。∟ETR)指令開(kāi)始一項(xiàng)通訊操作,通過(guò)指定的端口(PORT)從遠(yuǎn)程設(shè)備收集數(shù)據(jù)。網(wǎng)絡(luò)寫(xiě)入(NETW)指令開(kāi)始一項(xiàng)通訊操作,通過(guò)指定的端口(PORT)向遠(yuǎn)程設(shè)備寫(xiě)入數(shù)據(jù)。每一個(gè)NETR/NETW指令可從/向遠(yuǎn)程站讀取/寫(xiě)入16個(gè)字節(jié)信息。網(wǎng)絡(luò)讀寫(xiě)指令是通過(guò)TBL參數(shù)表來(lái)指定報(bào)文頭,TBL參數(shù)表如表4-1所示。字節(jié)700DAE0錯(cuò)誤代碼1遠(yuǎn)程地址2遠(yuǎn)程站的數(shù)據(jù)區(qū)指針(I、Q、M、V)3456數(shù)據(jù)長(zhǎng)度7數(shù)據(jù)字節(jié)08數(shù)據(jù)字節(jié)1...22數(shù)據(jù)字節(jié)15表4-1網(wǎng)絡(luò)讀寫(xiě)指令TBL1.網(wǎng)絡(luò)讀寫(xiě)指令NETR/NETW字節(jié)77錯(cuò)誤代碼如表4-2所示:錯(cuò)誤代碼定義0無(wú)錯(cuò)誤1遠(yuǎn)程站響應(yīng)超時(shí)2接受錯(cuò)誤:奇偶校驗(yàn)錯(cuò),響應(yīng)時(shí)幀或校驗(yàn)出錯(cuò)3離線錯(cuò)誤:相同的站地址或無(wú)效的硬件引發(fā)沖突4隊(duì)列溢出錯(cuò)誤:激活超過(guò)8個(gè)的NETR/TREW指令5通信協(xié)議錯(cuò)誤:沒(méi)有使用PPI協(xié)議(SMB30)而調(diào)用NETR/NETW指令6非法參數(shù):NETR/NETW表中包含非法或無(wú)效的值7沒(méi)有資源:遠(yuǎn)程站點(diǎn)正在忙中(上裝或下載程序)8第7層錯(cuò)誤:違反應(yīng)用協(xié)議9信息錯(cuò)誤:錯(cuò)誤的數(shù)據(jù)地址或數(shù)據(jù)長(zhǎng)度10保留表4-2錯(cuò)誤代碼表錯(cuò)誤代碼如表4-2所示:錯(cuò)誤代碼定義0無(wú)錯(cuò)誤1遠(yuǎn)程站響應(yīng)82.設(shè)定通信協(xié)議在程序的開(kāi)始必須設(shè)定通信協(xié)議。SMB30用于配置通信端口0(Port0),SMB130用于配置通信端口1(Port1),此兩個(gè)特殊寄存器字節(jié)的含義如表10-3所示。表10-3中:pp(校驗(yàn)選擇)、d(每個(gè)字符的數(shù)據(jù)位)、bbb(自由口波特率)均為自由口通信時(shí)才需要設(shè)定的參數(shù),在PPI通信時(shí)都設(shè)置為0即可。mm協(xié)議選擇2.設(shè)定通信協(xié)議93.設(shè)定NETW和NETR的TBL參數(shù)表圖4-3網(wǎng)絡(luò)寫(xiě)指令NETW3.設(shè)定NETW和NETR的TBL參數(shù)表圖4-3網(wǎng)絡(luò)寫(xiě)指10圖4-4網(wǎng)絡(luò)讀指令NETR圖4-4網(wǎng)絡(luò)讀指令NETR114.通信參數(shù)設(shè)定CPU通信端口的設(shè)定可以通過(guò)STEP7Micro/WIN軟件的“系統(tǒng)塊(SystemBlock)”選項(xiàng)來(lái)進(jìn)行。最高地址(HighestAddress波特率地址間隔刷新系數(shù)(GapUpdateFactor)4.通信參數(shù)設(shè)定124.1.3使用向?qū)?shí)現(xiàn)PPI通信圖4-5“網(wǎng)絡(luò)讀/寫(xiě)操作”對(duì)話框4.1.3使用向?qū)?shí)現(xiàn)PPI通信圖4-5“網(wǎng)絡(luò)讀/寫(xiě)13單擊圖4-5“下一項(xiàng)操作”按鈕,進(jìn)入第二項(xiàng)“網(wǎng)絡(luò)讀/寫(xiě)操作”對(duì)話框單擊“下一步”,出現(xiàn)分配存儲(chǔ)區(qū)對(duì)話框接下來(lái),要調(diào)用向?qū)傻淖映绦騺?lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸,主站程序及注釋如圖10-6所示。圖4-6主站主程序單擊圖4-5“下一項(xiàng)操作”按鈕,進(jìn)入第二項(xiàng)“網(wǎng)絡(luò)讀/寫(xiě)操作”144.2自由口通信

S7-200CPU的串行通訊口可由用戶(hù)程序控制,這種操作模式稱(chēng)為自由口模式。自由口通信是一種基于RS485硬件基礎(chǔ)上,允許應(yīng)用程序控制S7-200CPU的通信端口,以實(shí)現(xiàn)一些自定義通信協(xié)議的通信方式。當(dāng)選擇了自由口模式,程序可以使用接收中斷、發(fā)送中斷、發(fā)送指令(XMT)和接收指令(RCV)來(lái)控制通訊操作。在自由口模式下,通訊協(xié)議完全由程序控制。SMB30(用于端口0)和SMB31(如果CPU有兩個(gè)端口,則用于端口1)用于選擇波特率和奇偶校驗(yàn)。S7-200CPU處于自由口通信模式時(shí),所有的通信任務(wù)和信息定義均需由用戶(hù)編程實(shí)現(xiàn)。只有CPU處于RUN模式時(shí),才能進(jìn)行自由端口通訊。4.2自由口通信

S7-200CPU的串行通訊口可由用154.2.1自由口模式下的發(fā)送和接收指令S7-200CPU的自由口通信的數(shù)據(jù)字節(jié)格式必須含有一個(gè)起始位、一個(gè)停止位,數(shù)據(jù)位長(zhǎng)度為7位或8位,校驗(yàn)位和校驗(yàn)類(lèi)型(奇、偶校驗(yàn))可選。S7-200CPU的自由口通信定義方法為將自由口通信操作數(shù)傳入特殊寄存器SMB30(端口0)和SMB130(端口1)進(jìn)行端口定義,自由口通信操作數(shù)定義如表4-4所示。4.2.1自由口模式下的發(fā)送和接收指令S7-200CP16自由口通信模式主要使用XMT(發(fā)送)和RCV(接收)兩條指令及相應(yīng)的特殊寄存器。XMT指令利用數(shù)據(jù)緩沖區(qū)指定要發(fā)送的字符,用于向指定通信口以字節(jié)為單位發(fā)送一串?dāng)?shù)據(jù)字符,一次最多發(fā)送255個(gè)字節(jié)。表4-5XMT指令的緩沖區(qū)格式自由口通信模式主要使用XMT(發(fā)送)和RCV(接收)兩條指令17RCV指令可以接收一個(gè)或多個(gè)字符,最多有255個(gè)字符,這些字符存儲(chǔ)在緩沖區(qū)中。RCV指令的緩沖區(qū)格式如表4-6所示。當(dāng)超界或奇偶校驗(yàn)錯(cuò)時(shí),接收信息功能自動(dòng)終止。必須為接收信息功能操作定義一個(gè)啟動(dòng)條件(x或z)和一個(gè)結(jié)束條件(y,t或最大字符數(shù))。協(xié)議支持使用字符中斷控制來(lái)接收數(shù)據(jù)。表4-6RCV指令的緩沖區(qū)格式RCV指令可以接收一個(gè)或多個(gè)字符,最多有255個(gè)字符,這些字184.2.2自由口通信舉例1.自由口發(fā)送實(shí)例要求:記錄定時(shí)中斷次數(shù),將計(jì)數(shù)值轉(zhuǎn)化為ASCII字符串,再通過(guò)CPU224XP的Port0發(fā)送到計(jì)算機(jī)串口,計(jì)算機(jī)接受并利用超級(jí)終端顯示與S7-200CPU通信的內(nèi)容。(1)PLC編程規(guī)定緩沖區(qū)為VB100到VB114,使用數(shù)據(jù)塊進(jìn)行緩沖區(qū)定義,如圖4-7所示,16#0D和16#0A用于計(jì)算機(jī)的超級(jí)終端顯示需要。圖4-7組態(tài)數(shù)據(jù)塊4.2.2自由口通信舉例1.自由口發(fā)送實(shí)例圖4-7組態(tài)19主程序如圖4-8所示,根據(jù)I0.3狀態(tài)初始化端口1為自由口通信。SBR_0程序如圖4-9所示,定義端口0為自由口,初始化定時(shí)中斷。圖4-8自由口通信主程序圖4-9SBR_0子程序主程序如圖4-8所示,根據(jù)I0.3狀態(tài)初始化端口1為自20SBR_1子程序如圖4-10所示,用于定義端口0為普通PPI從站通信口。 圖4-10SBR_1子程序 INT_0程序如圖4-11所示,對(duì)定時(shí)中斷計(jì)數(shù)并從端口0發(fā)送計(jì)數(shù)值圖4-11INT_0子程序 圖4-10SBR_1子程序圖4-11INT_0子程序SBR_1子程序如圖4-10所示,用于定義端口0為普通PP21(2)超級(jí)終端設(shè)置超級(jí)終端(HyperTerminal)是Windows操作系統(tǒng)提供的通信測(cè)試程序,本例用來(lái)監(jiān)測(cè)計(jì)算機(jī)和S7-200CPU之間的串口通信。超級(jí)終端組態(tài)步驟如下:1)執(zhí)行Windows菜單命令“開(kāi)始”>“附件”>“通信”>“超級(jí)終端”,為要新建的連接輸入連接名稱(chēng)。2)選擇連接時(shí)要使用的串口。3)設(shè)置串口通信參數(shù)并保存連接,注意此處設(shè)置要與PLC程序中對(duì)應(yīng)。4)使用超級(jí)終端接收S7-200CPU發(fā)送的信息。圖4-12超級(jí)終端接受顯示(2)超級(jí)終端設(shè)置圖4-12超級(jí)終端接受顯示222.自由口接收實(shí)例要求S7-200CPU從端口0接收計(jì)算機(jī)發(fā)送的字符串,并在信息接收中斷服務(wù)程序中把接收到的第一個(gè)字節(jié)傳送到CPU輸出字節(jié)QB0上顯示。(1)PLC編程主程序如圖4-13所示,根據(jù)I0.3狀態(tài)初始化端口1為自由口通信。圖4-13自由口通信主程序2.自由口接收實(shí)例圖4-13自由口通信主程序23SBR_0子程序如圖4-14所示,用于定義端口0為自由口,初始化接收指令。圖4-14SBR_0程序SBR_0子程序如圖4-14所示,用于定義端口0為自由口,初24SBR_1子程序如圖4-15所示,定義端口0為普通PPI從站通信口。INT_0中斷子程序如圖4-16所示,在QB0輸出接收到的第一個(gè)字節(jié)。(2)配置超級(jí)終端打開(kāi)前面建立的超級(jí)終端鏈接,進(jìn)入屬性窗口,點(diǎn)擊“ASCII碼設(shè)置”按鈕,在彈出的ASCII碼設(shè)置窗口中,勾選“以換行符作為發(fā)送行末尾”和“本地回顯鍵入的字符”兩項(xiàng)。SBR_1子程序如圖4-15所示,定義端口0為普通PPI254.3MODBUS通信Modbus通信協(xié)議是Modicon公司提出的一種報(bào)文傳輸協(xié)議,它廣泛應(yīng)用于工業(yè)控制領(lǐng)域,并已經(jīng)成為一種通用的行業(yè)標(biāo)準(zhǔn)。不同廠商提供的控制設(shè)備可通過(guò)Modbus協(xié)議連成通信網(wǎng)絡(luò),從而實(shí)現(xiàn)集中控制。4.3.1Modbus報(bào)文格式Modbus地址通常是包含數(shù)據(jù)類(lèi)型和偏移量的5個(gè)或6個(gè)字符值。第一個(gè)或前兩個(gè)字符決定數(shù)據(jù)類(lèi)型,最后的四個(gè)字符是符合數(shù)據(jù)類(lèi)型的一個(gè)適當(dāng)?shù)闹怠?/p>

(1)Modbus主站尋址

Modbus主設(shè)備指令支持下列Modbus地址:

00001至09999是離散輸出(線圈);

10001至19999是離散輸入(觸點(diǎn));

30001至39999是輸入寄存器(通常是模擬量輸入);

40001至49999是保持寄存器。4.3MODBUS通信26(2)Modbus從站尋址Modbus地址與S7-200地址對(duì)應(yīng)關(guān)系如表4-7所示。000001Q0.0000002Q0.1000003Q0.2……000127Q15.6000128Q15.7010001I0.0010002I0.1010003I0.2……010127I15.6010128I15.7030001AIW0030002AIW2030003AIW4……030032AIW62040001HoldStart040002HoldStart+2040003HoldStart+4……04xxxxHoldStart+2x(xxxx-1)(2)Modbus從站尋址000001Q0.000000227Modbus通信協(xié)議有ASCII和RTU(遠(yuǎn)程傳輸單元)兩種報(bào)文傳輸模式。(1)ASCII模式ASCII模式采用LRC(縱向冗余校驗(yàn))方式進(jìn)行校驗(yàn),其報(bào)文格式如表4-8所示。表4-8ASCII模式的報(bào)文格式Modbus通信協(xié)議有ASCII和RTU(遠(yuǎn)程傳輸單28(2)RTU模式RTU模式的報(bào)文格式如表4-9所示。 地址功能碼:Modbus功能代碼,1個(gè)字節(jié);Modbus協(xié)議支持的功能碼共16條(1~16),其中西門(mén)子ModbusRTU協(xié)議庫(kù)支持最常用的8條,如表4-10所示;信息數(shù)據(jù)CRC:循環(huán)冗余校驗(yàn),兩個(gè)字節(jié)。功能碼描述1讀取單個(gè)/多個(gè)線圈的實(shí)際輸出狀態(tài)。功能1返回任意數(shù)量輸出點(diǎn)的接通/斷開(kāi)狀態(tài)(Q)。2讀取單個(gè)/多個(gè)線圈的實(shí)際輸入狀態(tài)。功能2返回任意數(shù)量的輸入點(diǎn)的接通/斷開(kāi)狀態(tài)(I)。3多個(gè)保持寄存器。功能3返回V存儲(chǔ)器的內(nèi)容。保持寄存器在Modbus下是字類(lèi)型,在一個(gè)請(qǐng)求中最多可讀120個(gè)字。4讀單個(gè)/多個(gè)輸入寄存器,返回模擬輸入值。5寫(xiě)單個(gè)線圈(實(shí)際輸出)。功能5將實(shí)際輸出點(diǎn)設(shè)置為指定值。該輸出點(diǎn)不是被強(qiáng)制,用戶(hù)程序可以重寫(xiě)由Modbus的請(qǐng)求而寫(xiě)入的值。6寫(xiě)單個(gè)保持寄存器。功能6寫(xiě)一個(gè)單個(gè)保持寄存器的值到S7-200的V存儲(chǔ)區(qū)。15寫(xiě)多個(gè)線圈(實(shí)際輸出)。功能15寫(xiě)多個(gè)實(shí)際輸出值到S7-200的Q映像區(qū)。起始輸出點(diǎn)必須是一個(gè)字節(jié)的開(kāi)始(如Q0.0或Q2.0),并且要寫(xiě)得輸出的數(shù)量是8的倍數(shù)。這是Modbus從站協(xié)議指令的限定。這些點(diǎn)不是被強(qiáng)制,用戶(hù)程序可以重寫(xiě)由Modbus的請(qǐng)求而寫(xiě)入的值。16寫(xiě)多個(gè)保持寄存器。功能16寫(xiě)多個(gè)保持寄存器到S7-200的V區(qū)。在一個(gè)請(qǐng)求中最多可寫(xiě)120字。表4-10西門(mén)子ModbusRTU協(xié)議庫(kù)支持最常用的8條功能碼表4-9RTU模式的報(bào)文格式(2)RTU模式功能碼描述1讀取單個(gè)/多個(gè)線圈的實(shí)際輸出狀態(tài)29RTU模式下,報(bào)文中的每個(gè)8位字節(jié)被轉(zhuǎn)化為兩個(gè)16進(jìn)制字符,然后以字節(jié)為單位進(jìn)行傳輸,并采用CRC(循環(huán)冗余校驗(yàn))方式進(jìn)行校驗(yàn)。目前支持Modbus通信的DCS系統(tǒng)和過(guò)程儀表大都采用基于串行接口的ModbusRTU模式,西門(mén)子提供了針對(duì)西門(mén)子PLCModbusRTU通信的協(xié)議庫(kù)。如果要在西門(mén)子PLC上實(shí)現(xiàn)ModbusASCII模式通信,可根據(jù)相關(guān)協(xié)議規(guī)定利用自由口通信模式自主編程實(shí)現(xiàn)。RTU模式下,報(bào)文中的每個(gè)8位字節(jié)被轉(zhuǎn)化為兩個(gè)16進(jìn)制字符,304.3.2Modbus通訊協(xié)議指令西門(mén)子專(zhuān)門(mén)為ModbusRTU通信開(kāi)發(fā)了指令庫(kù),極大地簡(jiǎn)化了ModbusRTU通信的開(kāi)發(fā),以便于快速實(shí)現(xiàn)相關(guān)應(yīng)用。要使用Modbus指令庫(kù)必須注意以下四點(diǎn):(1)使用Modbus指令庫(kù)前,需要將其安裝到Step7-Micro/Win中,STEP7-Micro/WIN必須為V3.2或以上版本。(2)S7-200CPU必須是固化程序修訂版2.00或最好支持Modbus主設(shè)備協(xié)議庫(kù)(CPUMLFB21x-2xx23-0XB0)。(3)由于目前已經(jīng)推出了針對(duì)端口0和端口1的ModbusRTU主站指令庫(kù)ModbusMasterPort0和ModbusMasterPort1、以及針對(duì)端口0的ModbusRTU從站指令庫(kù),故可利用指令庫(kù)實(shí)現(xiàn)端口0的ModbusRTU主/從站通信。(4)一旦CPU端口被用于ModbusRTU主/從站協(xié)議通信時(shí),該端口就無(wú)法用于任何其它用途,包括與STEP7-Micro/WIN通訊。4.3.2Modbus通訊協(xié)議指令西門(mén)子專(zhuān)門(mén)為Modb311.Modbus主站協(xié)議指令西門(mén)子Modbus主站協(xié)議庫(kù)包括兩條主站協(xié)議指令:MBUS_CTRL指令和MBUS_MSG指令。MBUS_CTRL指令用于初始化主站通信,MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。1)MBUS_CTRL指令MBUS_CTRL指令如圖4-17所示。圖4-17MBUS_CTRL指令塊1.Modbus主站協(xié)議指令圖4-17MBUS_CTR322)MBUS_MSG指令MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。MBUS_MSG指令如圖4-18所示圖4-18MBUS_MSG指令2)MBUS_MSG指令圖4-18MBUS_MSG指33Count:“計(jì)數(shù)”參數(shù);“計(jì)數(shù)”參數(shù)指定在該請(qǐng)求中讀取或?qū)懭氲臄?shù)據(jù)元素的數(shù)目。根據(jù)Modbus協(xié)議,“計(jì)數(shù)”參數(shù)與Modbus地址存在表4-11對(duì)應(yīng)關(guān)系。地址計(jì)數(shù)0xxxx“計(jì)數(shù)”是要讀取或?qū)懭氲奈粩?shù)1xxxx“計(jì)數(shù)”是要讀取的位數(shù)3xxxx“計(jì)數(shù)”是要讀取的輸入寄存器的字?jǐn)?shù)4xxxx“計(jì)數(shù)”是要讀取或?qū)懭氲谋3旨拇嫫鞯淖謹(jǐn)?shù)表4-11“計(jì)數(shù)”參數(shù)與Modbus地址的對(duì)應(yīng)關(guān)系Count:“計(jì)數(shù)”參數(shù);地址計(jì)數(shù)0xxxx“計(jì)數(shù)”是要讀取34MBUS_MSG錯(cuò)誤代碼說(shuō)明0無(wú)錯(cuò)誤1應(yīng)答時(shí)奇偶校驗(yàn)錯(cuò)誤:僅當(dāng)使用偶校驗(yàn)或奇校驗(yàn)時(shí)才發(fā)生。傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或影響通訊的電噪聲)引起的。2保留位3接收超時(shí):在“超時(shí)”時(shí)間內(nèi),沒(méi)有來(lái)自從站的應(yīng)答??赡苡幸韵乱恍┰颍号c從站的電氣連接有問(wèn)題、主設(shè)備和從站設(shè)置為不同的波特率/奇偶校驗(yàn)設(shè)置以及錯(cuò)誤的從站地址4請(qǐng)求參數(shù)出錯(cuò):一個(gè)或多個(gè)輸入?yún)?shù)(從站、讀寫(xiě)、地址或計(jì)數(shù))被設(shè)置為非法值。檢查輸入?yún)?shù)的允許值。5Modbus主設(shè)備未啟用:在調(diào)用MBUS_MSG前,每次掃描時(shí)都調(diào)用MBUS_MSG。6Modbus忙于處理另一個(gè)請(qǐng)求:一次只能激活一條MBUS_MSG指令。7應(yīng)答時(shí)出錯(cuò):收到的應(yīng)答與請(qǐng)求不相關(guān)。這表示從站中出現(xiàn)了某些錯(cuò)誤或者錯(cuò)誤從站應(yīng)答了請(qǐng)求。8應(yīng)答時(shí)CRC錯(cuò)誤:傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或影響通訊的電噪聲)引起的。101從站不支持在該地址處所請(qǐng)求的功能。102從站不支持?jǐn)?shù)據(jù)地址:“地址”加上“計(jì)數(shù)”所要求的地址范圍超出了從站所允許的地址范圍。103從站不支持?jǐn)?shù)據(jù)類(lèi)型:該“地址”類(lèi)型不被從站支持。104從站故障。105從站已接收消息但應(yīng)答延遲:這是MBUS_MSG的錯(cuò)誤。用戶(hù)程序應(yīng)在稍后重新發(fā)送請(qǐng)求。106從站忙,因此拒絕消息:可以在此嘗試相同的請(qǐng)求,以獲得應(yīng)答。107從站因未知原因拒絕消息。108從站存儲(chǔ)器奇偶校驗(yàn)錯(cuò)誤:從站中有錯(cuò)誤。表4-12MBUS_MSG指令錯(cuò)誤代碼含義MBUS_MSG錯(cuò)誤代碼說(shuō)明0無(wú)錯(cuò)誤1應(yīng)答時(shí)奇偶校驗(yàn)錯(cuò)誤:僅352.Modbus從站協(xié)議指令西門(mén)子Modbus從站協(xié)議庫(kù)包括兩條從站指令:MBUS_INIT指令和MBUS_SLAVE指令。1)MBUS_INIT指令MBUS_INIT指令用于啟用和初始化或禁止Modbus從站通訊。在使用MBUS_SLAVE指令之前,必須正確執(zhí)行MBUS_INIT指令。指令完成后立即設(shè)定“完成”位,才能繼續(xù)執(zhí)行下一條指令。MBUS_INIT指令如圖4-19所示圖4-19MBUS_INIT指令2.Modbus從站協(xié)議指令圖4-19MBUS_INI36錯(cuò)誤代碼說(shuō)明0無(wú)錯(cuò)誤1內(nèi)存范圍錯(cuò)誤2非法波特率或奇偶校驗(yàn)3非法從站地址4非法Modbus參數(shù)值5保持寄存器與Modbus從站符號(hào)重疊6收到奇偶校驗(yàn)錯(cuò)誤7收到CRC錯(cuò)誤8非法功能請(qǐng)求/功能不受支持9請(qǐng)求中的非法內(nèi)存地址10從站功能未啟用表4-13MBUS_INIT指令錯(cuò)誤代碼的含義錯(cuò)誤代碼說(shuō)明0無(wú)錯(cuò)誤1內(nèi)存范圍錯(cuò)誤2非法波特率或奇偶校驗(yàn)3非372)MBUS_SLAVE指令MBUS_SLAVE指令被用于為Modbus主設(shè)備發(fā)出的請(qǐng)求服務(wù),并且必須在每次掃描時(shí)執(zhí)行,以便允許該指令檢查和回答Modbus請(qǐng)求。MBUS_SLAVE指令無(wú)輸入?yún)?shù),在每次掃描且EN輸入開(kāi)啟時(shí)執(zhí)行。錯(cuò)誤代碼說(shuō)明0無(wú)錯(cuò)誤1內(nèi)存范圍錯(cuò)誤2非法波特率或奇偶校驗(yàn)3非法從站地址4非法Modbus參數(shù)值5保持寄存器與Modbus從站符號(hào)重疊6收到奇偶校驗(yàn)錯(cuò)誤7收到CRC錯(cuò)誤8非法功能請(qǐng)求/功能不受支持9請(qǐng)求中的非法內(nèi)存地址10從站功能未啟用圖4-20MBUS_SLAVE指令表4-14MBUS_SLAVE指令錯(cuò)誤代碼的含義2)MBUS_SLAVE指令錯(cuò)誤代碼說(shuō)明0無(wú)錯(cuò)誤1內(nèi)存范圍38返回08項(xiàng)目ppt返回08項(xiàng)目ppt394.3.3編程實(shí)例兩臺(tái)S7-200CPU224XP進(jìn)行通信。利用指令庫(kù)編程前首先應(yīng)為其分配存儲(chǔ)區(qū),否則Step7-Micro/Win編譯時(shí)會(huì)報(bào)錯(cuò)。執(zhí)行Step7Micro/Win菜單命令“文件”>“庫(kù)存儲(chǔ)區(qū)”,打開(kāi)“庫(kù)存儲(chǔ)區(qū)分配”對(duì)話框,輸入庫(kù)存儲(chǔ)區(qū)的起始地址,注意避免該地址和程序中已經(jīng)采用或準(zhǔn)備采用的其它地址重合,點(diǎn)擊“建議地址”按鈕,系統(tǒng)將自動(dòng)計(jì)算存儲(chǔ)區(qū)的地址范圍。4.3.3編程實(shí)例兩臺(tái)S7-200CPU224XP進(jìn)行40(1)從站編程根據(jù)要求,從站要響應(yīng)主站報(bào)文,故只需編寫(xiě)主程序,如圖4-21所示。圖4-21從站主程序(1)從站編程圖4-21從站主程序41(2)主站編程Modbus主站也只需編寫(xiě)主程序,如圖4-22所示。運(yùn)行測(cè)試即可。圖4-22主站主程序(2)主站編程圖4-22主站主程序424.4MODEM通信

通過(guò)EM241擴(kuò)展模塊可以將S7-200連接到模擬電話線上,實(shí)現(xiàn)與遠(yuǎn)程設(shè)備的通訊。這里,我們給出一個(gè)例子,即通過(guò)小型交換機(jī)電話網(wǎng)實(shí)現(xiàn)對(duì)PLC的編程診斷及兩臺(tái)PLC之間的數(shù)據(jù)交換。4.4.1配置主叫貓和被叫貓啟動(dòng)STEP7Micro/Win軟件,選擇項(xiàng)目樹(shù)中的“向?qū)?gt;EM241調(diào)制解調(diào)器”進(jìn)入EM241配置向?qū)А?.4MODEM通信43單擊圖4-23所示的“電話號(hào)碼”標(biāo)簽,設(shè)置遠(yuǎn)程設(shè)備電話號(hào)碼,點(diǎn)擊“新電話號(hào)碼”按鈕進(jìn)入電話號(hào)碼屬性設(shè)置窗口,設(shè)置電話號(hào)碼為3,并將其添加到右邊的窗口,如圖4-24所示。圖4-23配置數(shù)據(jù)傳輸單擊圖4-23所示的“電話號(hào)碼”標(biāo)簽,設(shè)置遠(yuǎn)程設(shè)備電話號(hào)碼,44圖4-24遠(yuǎn)程設(shè)備電話號(hào)碼設(shè)置對(duì)話框圖4-24遠(yuǎn)程設(shè)備電話號(hào)碼設(shè)置對(duì)話框45圖4-25回?fù)芘渲么翱趫D4-25回?fù)芘渲么翱?64.4.2編程輸入/輸出數(shù)據(jù)類(lèi)型注釋ENBOOLEN位必須開(kāi)啟,才能啟用發(fā)至模塊的命令,并且EN位必須保持開(kāi)啟,直至“完成”位被設(shè)置,表示程序完成。當(dāng)START(開(kāi)始)輸入開(kāi)啟且模塊目前不繁忙時(shí),每次掃描均會(huì)向調(diào)制解調(diào)器模塊發(fā)送一則XFR命令STARTBOOLSTART(開(kāi)始)輸入可以通過(guò)一個(gè)邊緣檢測(cè)元素以脈沖方式開(kāi)啟,該程序僅允許發(fā)送一則命令PhoneBYTE遠(yuǎn)程EM241模塊的電話號(hào)碼,使用在向?qū)е信渲玫姆?hào)名DataBYTE"數(shù)據(jù)"指一個(gè)已經(jīng)定義的數(shù)據(jù)傳送,使用在向?qū)е卸x的符號(hào)名DoneBOOL"完成"是當(dāng)調(diào)制解調(diào)器模塊完成數(shù)據(jù)傳送時(shí)開(kāi)啟的位表4-15MODx_XFR指令含義4.4.2編程輸入/輸出數(shù)據(jù)類(lèi)型注釋ENBOOLEN47主叫“貓”對(duì)應(yīng)的PLC中的主程序及注釋如圖4-26所示。被叫“貓”對(duì)應(yīng)的PLC中的主程序及注釋如圖4-27所示。通過(guò)前面的設(shè)置,現(xiàn)在編程計(jì)算機(jī)和兩臺(tái)PLC共處于一個(gè)小型的電話網(wǎng)絡(luò)中,注意要實(shí)現(xiàn)遠(yuǎn)程的編程診斷必須保證兩臺(tái)PLC處于“STOP”運(yùn)行模式。圖4-26主叫“貓”對(duì)應(yīng)的主程序圖4-26主叫“貓”對(duì)應(yīng)的主程序主叫“貓”對(duì)應(yīng)的PLC中的主程序及注釋如圖4-26所示。被叫484.4.3遠(yuǎn)程診斷通過(guò)Modem模塊可以實(shí)現(xiàn)S7-200的遠(yuǎn)程編程與診斷圖4-28“選擇一個(gè)遠(yuǎn)程站連接”對(duì)話框4.4.3遠(yuǎn)程診斷圖4-28“選擇一個(gè)遠(yuǎn)程站連接”對(duì)494.5USS通信USS通信總是由主站發(fā)起,USS主站不斷循環(huán)輪詢(xún)各個(gè)從站,從站根據(jù)收到的指令,決定是否以及如何響應(yīng)。從站永遠(yuǎn)不會(huì)主動(dòng)發(fā)送數(shù)據(jù)。從站在以下條件滿足時(shí)應(yīng)答:(1)接收到的主站報(bào)文沒(méi)有錯(cuò)誤。(2)本從站在接收到主站報(bào)文中被尋址。USS協(xié)議的特點(diǎn)為:(1)支持多點(diǎn)通信(因而可以應(yīng)用在RS485等網(wǎng)絡(luò)上)。(2)采用單主站的“主—從”訪問(wèn)機(jī)制。(3)一個(gè)網(wǎng)絡(luò)上最多可以有32個(gè)節(jié)點(diǎn)(最多31個(gè)從站)。(4)簡(jiǎn)單可靠的報(bào)文格式,使數(shù)據(jù)傳輸靈活高效。(5)容易實(shí)現(xiàn),成本較低。4.5USS通信504.5.1USS通信報(bào)文格式(1)字符幀格式:USS的字符傳輸格式符合UART規(guī)范,即使用串行異步傳輸方式。USS在串行數(shù)據(jù)總線上的字符傳輸幀為11位長(zhǎng)度,如表10-16所示。連續(xù)的字符幀組成USS報(bào)文。在一條報(bào)文中,字符幀之間的間隔延時(shí)要小于兩個(gè)字符幀的傳輸時(shí)間(當(dāng)然這個(gè)時(shí)間取決于傳輸速率)。S7-200CPU的自由口通信模式正好能夠支持上述字符幀格式。表4-16字符幀格式4.5.1USS通信報(bào)文格式表4-16字符幀格式51(2)報(bào)文幀格式:協(xié)議的報(bào)文簡(jiǎn)潔可靠,高效靈活。報(bào)文由一連串的字符組成,協(xié)議中定義了它們的特定功能,如表4-17所示。 在ADR和BCC之間的數(shù)據(jù)字節(jié),稱(chēng)為USS的凈數(shù)據(jù)。主站和從站交換的數(shù)據(jù)都包括在每條報(bào)文的凈數(shù)據(jù)區(qū)域內(nèi)。凈數(shù)據(jù)區(qū)由PKW區(qū)和PZD區(qū)組成,如表4-18所示。(2)報(bào)文幀格式:協(xié)議的報(bào)文簡(jiǎn)潔可靠,高效靈活。報(bào)文由一連524.5.2USS指令STEP7-Micro/WINUSS指令庫(kù)提供14個(gè)子程序、3個(gè)中斷例行程序和8條指令,極大地簡(jiǎn)化了USS通信的開(kāi)發(fā)和實(shí)現(xiàn)。使用USS指令庫(kù)必須滿足以下需求:(1)將端口0指定用于USS通訊。(2)在使用USS協(xié)議通訊的程序開(kāi)發(fā)過(guò)程中,應(yīng)該使用帶兩個(gè)通訊端口的S7-200CPU(3)USS指令影響與端口0上自由接口通訊相關(guān)的所有SM位置。(4)USS指令的變量要求一個(gè)400個(gè)字節(jié)V內(nèi)存塊。(5)某些USS指令也要求有一個(gè)16個(gè)字節(jié)的通訊緩沖區(qū)。4.5.2USS指令531.USS_INIT指令使用USS庫(kù)指令前必須使用USS_INIT指令初始化USS通信參數(shù),如圖4-29所示。圖4-29初始化USS通信指令1.USS_INIT指令圖4-29初始化USS通信54表4-19Active參數(shù)設(shè)置表4-19Active參數(shù)設(shè)置552.USS_CTRL指令USS_CTRL指令用于對(duì)單個(gè)驅(qū)動(dòng)裝置進(jìn)行運(yùn)行控制,利用了USS協(xié)議中的PZD數(shù)據(jù)傳輸,控制和反饋信號(hào)更新較快,如圖4-30所示。圖4-30USS_CTRL指令塊2.USS_CTRL指令圖4-30563.USS讀/寫(xiě)參數(shù)指令USS指令庫(kù)中共有6種參數(shù)讀寫(xiě)功能塊,分別用于讀寫(xiě)驅(qū)動(dòng)裝置中不同規(guī)格的參數(shù),如表4-20所示。USS參數(shù)讀寫(xiě)指令采用與USS_CTRL功能塊不同的數(shù)據(jù)傳輸方式。表4-20USS讀/寫(xiě)功能塊3.USS讀/寫(xiě)參數(shù)指令表4-20USS讀/寫(xiě)功能塊57(1)讀參數(shù)指令圖4-31所示的程序段讀取實(shí)際的電動(dòng)機(jī)電流值(參數(shù)r0068)。由于此參數(shù)是一個(gè)實(shí)數(shù),因此選用實(shí)型參數(shù)讀功能塊。參數(shù)讀寫(xiě)指令必須與參數(shù)的類(lèi)型配合。圖4-31讀參數(shù)指令(1)讀參數(shù)指令圖4-31讀參數(shù)指令58(2)寫(xiě)參數(shù)指令寫(xiě)參數(shù)指令的用法與讀參數(shù)指令類(lèi)似,與讀參數(shù)指令的區(qū)別是參數(shù)是功能塊的輸入。(3)讀寫(xiě)多個(gè)參數(shù)在任一時(shí)刻USS主站內(nèi)只能有一個(gè)參數(shù)讀寫(xiě)功能塊有效,否則會(huì)出錯(cuò)。因此如果需要讀寫(xiě)多個(gè)參數(shù)(來(lái)自一個(gè)或多個(gè)驅(qū)動(dòng)裝置),必須在編程時(shí)進(jìn)行讀寫(xiě)指令之間的輪替處理。(2)寫(xiě)參數(shù)指令594.5.3MM440變頻器的參數(shù)設(shè)置以下只涉及與S7-200控制器連接相關(guān)的參數(shù)。MM440的參數(shù)分為幾個(gè)訪問(wèn)級(jí)別,以便于過(guò)濾不需要查看的部分。(1)控制源參數(shù)設(shè)置控制源由參數(shù)P0700設(shè)置,如表4-21所示:4.5.3MM440變頻器的參數(shù)設(shè)置60表4-21控制源參數(shù)設(shè)置表4-21控制源參數(shù)設(shè)置61(2)設(shè)定源控制參數(shù)設(shè)置設(shè)定值控制驅(qū)動(dòng)裝置的轉(zhuǎn)速/頻率等功能。設(shè)置源由參數(shù)P1000設(shè)置,如表4-22所示。

表4-22設(shè)定源控制參數(shù)設(shè)置(2)設(shè)定源控制參數(shù)設(shè)置表4-262(3)USS通信控制的參數(shù)設(shè)置控制源和設(shè)定源之間可以自由組合,根據(jù)工藝要求可以靈活選用。我們以控制源和設(shè)定源都來(lái)自COMLink上的USS通信為例,簡(jiǎn)介USS通信的參數(shù)設(shè)置。主要參數(shù)有:P0700P1000P2009P2010P2011P2012P2013P2014P0971(3)USS通信控制的參數(shù)設(shè)置P2011634.6S7-200PLC與S7-300PLC的MPI通信MPI(MultiPointInterface)通信是當(dāng)通信速率要求不高、通信數(shù)據(jù)量不大時(shí),可以采用的一種簡(jiǎn)單經(jīng)濟(jì)的通信方式。4.6S7-200PLC與S7-300PLC的MPI64MPISTEP7S7-22xPG/PC19.2或187.5KbS7-400M7-400S7-300M7-300S7-115U/H,S5-135US5-155U/H,SIMATIC505S5-95UOP圖4-32MPI網(wǎng)絡(luò)結(jié)構(gòu)配置MPISTEP7S7-22xPG/PC19.2或1865通過(guò)MPI實(shí)現(xiàn)PLC之間的通信有三種方式:(1)全局?jǐn)?shù)據(jù)包通信方式(2)組態(tài)連接通信方式(3)無(wú)組態(tài)連接通信方式

S7-300與S7-200的MPI通信,只能采用單邊編程方式,即S7-200作為服務(wù)器,無(wú)需任何編程。通過(guò)MPI實(shí)現(xiàn)PLC之間的通信有三種方式:66S7-200與S7-300的MPI通信的硬件包括:(1)S7-300PLC(2)S7-200PLC(3)PCAdapter或CP5611。(4)Profibus總線連接器及電纜。軟件要求包括:(1)STEP7V5.2或以上。(2)Step7-Micro/WinSP4或以上。S7-200與S7-300的MPI通信的硬件包括:67步驟如下:(1)在STEP7中新建S7-300項(xiàng)目,按硬件安裝順序和訂貨號(hào)依次插入機(jī)架、電源、CPU進(jìn)行硬件組態(tài)。(2)在Step7-Micro/Win的系統(tǒng)塊中,設(shè)定S7-200的站地址為4,通信波特率187.5kbps。(3)將組態(tài)設(shè)置下載到S7-200PLC中。(4)使用Profibus電纜連接CPU314-2DP的X1DP口和CPU224XP的DP0口。步驟如下:68為實(shí)現(xiàn)S7-300作為客戶(hù)機(jī),對(duì)服務(wù)器S7-200的數(shù)據(jù)讀寫(xiě),需要在STEP7中編寫(xiě)兩個(gè)網(wǎng)絡(luò)如圖4-33和圖4-34所示。圖4-33X_PUT網(wǎng)絡(luò)為實(shí)現(xiàn)S7-300作為客戶(hù)機(jī),對(duì)服務(wù)器S7-200的69圖4-34所示網(wǎng)絡(luò)2中,當(dāng)M1.5為1時(shí),S7-300會(huì)將S7-200的IB0的數(shù)值讀取到S7-300的MB7中。將S7-300項(xiàng)目下載,運(yùn)行測(cè)試即可。圖4-34X_GET網(wǎng)絡(luò)圖4-34所示網(wǎng)絡(luò)2中,當(dāng)M1.5為1時(shí),S7-300會(huì)將S704.7Profibus-DP通信

Profibus符合國(guó)際標(biāo)準(zhǔn)IEC61158,是目前國(guó)際上通用的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)之一,并憑借其領(lǐng)先的技術(shù)特點(diǎn)、嚴(yán)格的認(rèn)證規(guī)范、眾多廠商的支持,逐漸發(fā)展為業(yè)界優(yōu)良的現(xiàn)場(chǎng)級(jí)通信網(wǎng)絡(luò)解決方案。Profibus已成為機(jī)械制造行業(yè)的標(biāo)準(zhǔn)。PROFIBUS協(xié)議采用ISO/OSI模型的第一層、第二層和第七層。從用戶(hù)角度看,PROFIBUS提供了三種通信協(xié)議類(lèi)型:DP、FMS和PA。4.7Profibus-DP通信

71另外,對(duì)于西門(mén)子PLC系統(tǒng),PROFIBUS提供了兩種更為優(yōu)化的通信方式:S7通信和S5兼容通信。(1)PROFIBUS-S7(PG/OP通信)(2)PROFIBUS-FDL(與s5兼容通信)PROFIBUS是一個(gè)令牌網(wǎng)絡(luò)結(jié)構(gòu),采用主從協(xié)議,一個(gè)網(wǎng)絡(luò)中有若干個(gè)被動(dòng)節(jié)點(diǎn)(從站),而它的邏輯令牌只含有一個(gè)主動(dòng)節(jié)點(diǎn)(主站),這樣的網(wǎng)絡(luò)為純主一從系統(tǒng)。Profibus-DP網(wǎng)絡(luò)配置示意圖如圖10-35所示。另外,對(duì)于西門(mén)子PLC系統(tǒng),PROFIBUS提供了兩種72 圖4-35Profibus-DP網(wǎng)絡(luò)配置示意圖 圖4-35Profibus-DP網(wǎng)絡(luò)配置示意圖73圖4-36S7-200&S7-300PROFIBUS-DP通信網(wǎng)絡(luò)圖4-36S7-200&S7-300PROFIBU74S7-300與S7-200通過(guò)EM277進(jìn)行PROFIBUSDP通訊,只需在STEP7中組態(tài)S7-300和EM277,S7-200端只需對(duì)應(yīng)存放將要進(jìn)行通訊的數(shù)據(jù),無(wú)需組態(tài)和編程。圖4-37插入EM277從站S7-300與S7-200通過(guò)EM277進(jìn)行PROFIBUS754.8工業(yè)以太網(wǎng)通信4.8.1工業(yè)以太網(wǎng)概述1.OSI參考模型

圖4-38OSI參考模型4.8工業(yè)以太網(wǎng)通信圖4-38OSI參考模型76OSI參考模型的上三層通常稱(chēng)為應(yīng)用層,用來(lái)處理用戶(hù)接口、數(shù)據(jù)格式和應(yīng)用程序的訪問(wèn);下四層負(fù)責(zé)定義數(shù)據(jù)的物理傳輸介質(zhì)和網(wǎng)絡(luò)設(shè)備。如圖4-39和4-40所示。圖4-39對(duì)等層通信結(jié)圖4-39對(duì)等層通信結(jié)OSI參考模型的上三層通常稱(chēng)為應(yīng)用層,用來(lái)處理用戶(hù)接口、數(shù)據(jù)772.以太網(wǎng)技術(shù)底層網(wǎng)絡(luò)由物理層和MAC層(介質(zhì)訪問(wèn)子層)構(gòu)成。IEEE802.3以“以太網(wǎng)”為技術(shù)原形,在MAC層上采用CSMA/CD(帶沖突檢測(cè)的載波偵聽(tīng)多路存取控制協(xié)議)的介質(zhì)訪問(wèn)控制技術(shù)來(lái)處理通信中的沖突。在以太網(wǎng)模型的網(wǎng)絡(luò)層和傳輸層上常采用TCP/IP協(xié)議組。其中IP(InternetProtocol)稱(chēng)為網(wǎng)際通信協(xié)議,對(duì)應(yīng)網(wǎng)絡(luò)層;TCP(TransmissionControlProtocol)稱(chēng)為傳輸控制協(xié)議,對(duì)應(yīng)傳輸層,保證數(shù)據(jù)被可靠地傳送。2.以太網(wǎng)技術(shù)783.工業(yè)以太網(wǎng)將以太網(wǎng)高速傳輸技術(shù)引入到工業(yè)控制領(lǐng)域,使得企業(yè)內(nèi)部互聯(lián)網(wǎng)(如Intrunet),外部互聯(lián)網(wǎng)(Extrunet)和國(guó)際互聯(lián)網(wǎng)(Internet)提供的技術(shù)和廣泛應(yīng)用已經(jīng)進(jìn)入生產(chǎn)和過(guò)程自動(dòng)化。工業(yè)以大網(wǎng)和傳統(tǒng)以太網(wǎng)的比較如表4-23所示。功能工業(yè)以太網(wǎng)設(shè)備普通商用以太網(wǎng)設(shè)備元器件和設(shè)計(jì)工業(yè)級(jí)商用級(jí)工作電壓24VDC220VAC電源冗余雙電源一般沒(méi)有安裝方式DIN導(dǎo)軌安裝桌面,機(jī)架工作溫度0-60度5-40度冷卻方式無(wú)風(fēng)扇有風(fēng)扇電磁兼容性標(biāo)準(zhǔn)EN50081-2(EMC,工業(yè))EN50082-2(EMC,工業(yè))EN50081-1(EMC,辦公室)EN50082-1(EMC,辦公室)

冗余環(huán)網(wǎng)切換時(shí)間小于500ms30-90sMTFB(可靠性)至少10年3-5年要求備件供貨時(shí)間10年3-5年表4-23工業(yè)以大網(wǎng)和傳統(tǒng)以太網(wǎng)的比較3.工業(yè)以太網(wǎng)功能工業(yè)以太網(wǎng)設(shè)備普通商用以太網(wǎng)設(shè)備元器件和79工業(yè)以太網(wǎng)的技術(shù)優(yōu)勢(shì)如下:1.可以滿足控制系統(tǒng)各個(gè)層次的要求,使企業(yè)信息網(wǎng)絡(luò)與控制網(wǎng)絡(luò)得以統(tǒng)一;2.設(shè)備成本下降;3.用戶(hù)擁有成本下降;4.以太網(wǎng)易與Internet集成;5.軟硬件開(kāi)發(fā)方便;6.避免工業(yè)總線技術(shù)游離于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展主流之外,相互促進(jìn)。工業(yè)以太網(wǎng)中的關(guān)鍵問(wèn)題包括:1.通信實(shí)時(shí)性;2.對(duì)環(huán)境的適應(yīng)性和可靠性;3.總線供電;4.本質(zhì)安全性。工業(yè)以太網(wǎng)的技術(shù)優(yōu)勢(shì)如下:804.西門(mén)子工業(yè)以太網(wǎng)(SIMATICNET)西門(mén)子公司通過(guò)SIMATICNET提供了開(kāi)放的、適用于工業(yè)環(huán)境下各種控制級(jí)別的不同的通信系統(tǒng)。這些通信系統(tǒng)均基于國(guó)家和國(guó)際標(biāo)準(zhǔn),符合ISO/OSI模型。SIMATICNET包括以下內(nèi)容:組成通信網(wǎng)絡(luò)的媒介、媒介附件和傳輸組件以及相應(yīng)的傳輸技術(shù),數(shù)據(jù)傳輸?shù)膮f(xié)議和服務(wù),用于連接PLC或PC的通信模板(通信處理器“CP”)。通過(guò)以太網(wǎng)擴(kuò)展模塊(CP243-1)或互聯(lián)網(wǎng)擴(kuò)展模塊(CP243-1IT),S7-200將能支持TCP/IP以太網(wǎng)通訊。4.西門(mén)子工業(yè)以太網(wǎng)(SIMATICNET)814.8.2S7-200PLC之間的以太網(wǎng)通信要通過(guò)以太網(wǎng)與S7-200PLC通信,S7-200必須使用CP243-1(或CP243-1IT)以太網(wǎng)模塊,PC機(jī)上也要安裝以太網(wǎng)網(wǎng)卡。本例實(shí)現(xiàn)兩臺(tái)帶有CP243-1IT擴(kuò)展模塊的S7-200CPU的以太網(wǎng)連接以及通過(guò)以太網(wǎng)對(duì)PLC進(jìn)行編程和診斷。4.8.2S7-200PLC之間的以太網(wǎng)通信82圖4-42“配置連接”對(duì)話框圖4-42“配置連接”對(duì)話框83圖4-43客戶(hù)機(jī)配置連接對(duì)話框圖4-43客戶(hù)機(jī)配置連接對(duì)話框84圖4-44“配置CPU至CPU數(shù)據(jù)傳輸”對(duì)話框圖4-44“配置CPU至CPU數(shù)據(jù)傳輸”對(duì)話框85圖4-45服務(wù)器上的主程序圖4-45服務(wù)器上的主程序86圖4-46客戶(hù)機(jī)上的主程序圖4-46客戶(hù)機(jī)上的主程序87通過(guò)以太網(wǎng)模塊可以實(shí)現(xiàn)S7-200的遠(yuǎn)程編程與診斷,單擊“控制面板”中的“設(shè)置PG/PC接口”進(jìn)入PC/PC接口設(shè)置對(duì)話框,“已使用的接口參數(shù)分配”選擇同計(jì)算機(jī)以太網(wǎng)卡相一致的TCP/IP協(xié)議。啟動(dòng)STEP7Micro/Win軟件,打開(kāi)“通訊”對(duì)話框,打開(kāi)“IP地址瀏覽器”對(duì)話框,添加新地址“10.1.202.2”和“10.1.202.3”并保存。雙擊“通訊”對(duì)話框中的“雙擊刷新”,系統(tǒng)會(huì)自動(dòng)搜索已添加到IP瀏覽器內(nèi)的IP地址。若通訊正常則在右側(cè)列表中會(huì)顯示連接的CPU類(lèi)型,選擇希望的PLC進(jìn)行在線編程及診斷。通過(guò)以太網(wǎng)模塊可以實(shí)現(xiàn)S7-200的遠(yuǎn)程編程與診斷,單擊“控884.8.3S7-200PLC和S7-300PLC的以太網(wǎng)連接S7-200和S7-300PLC可分別通過(guò)以太網(wǎng)擴(kuò)展模塊CP243-1或CP243-1IT和CP343-1或CP343-1IT接入工業(yè)以太網(wǎng),再加上功能強(qiáng)大的STEP7和STEP-7Micro/WIN等組態(tài)軟件,使得S7-200和S7-300PLC之間的以太網(wǎng)通信的實(shí)現(xiàn)簡(jiǎn)單易行。4.8.3S7-200PLC和S7-300PLC的以89圖4-47連接設(shè)置圖4-47連接設(shè)置90其它步驟與前同。CP243-1IT組態(tài)完畢之后,系統(tǒng)將自動(dòng)生成相應(yīng)的子程序。S7-200作為客戶(hù)機(jī),只需編寫(xiě)主程序,調(diào)用子程序即可。程序清單及注釋如圖4-48所示。S7-300作為服務(wù)器與S7-200進(jìn)行以太網(wǎng)通信時(shí),不必編寫(xiě)PLC程序,只需做好硬件組態(tài),并設(shè)置CP343-1IT模塊的IP地址和子網(wǎng)掩碼與前面一致即可。其它步驟與前同。CP243-1IT組態(tài)完畢之后,系統(tǒng)將自91圖4-48S7-200客戶(hù)機(jī)的主程序圖4-48S7-200客戶(hù)機(jī)的主程序924.8.4PC-ACCESS通過(guò)以太網(wǎng)訪問(wèn)S7-200PLCPCAccess是西門(mén)子為S7-200PLC開(kāi)發(fā)的OPC服務(wù)器軟件。OPC是OLEforProcessControl的縮寫(xiě),即用于過(guò)程控制的OLE(ObjectLinkingandEmbedding對(duì)象鏈接與嵌入)PCAccess的主要技術(shù)特色如下:(1)兼容OPCDA(OPC數(shù)據(jù)訪問(wèn))V2.05標(biāo)準(zhǔn);(2)可與所有標(biāo)準(zhǔn)OPC客戶(hù)機(jī)配合使用;(3)可與Micro/WIN項(xiàng)目的符號(hào)(V3.x-V4.x)集成;(4)支持各類(lèi)S7-200通訊協(xié)議。4.8.4PC-ACCESS通過(guò)以太網(wǎng)訪問(wèn)S7-20093圖4-49設(shè)置CP243-1IT的工作模式和TSAP地址圖4-49設(shè)置CP243-1IT的工作模式和TSAP地94完成以太網(wǎng)模塊的配置后,在主程序中編寫(xiě)程序如圖4-50所示。圖4-50主程序完成以太網(wǎng)模塊的配置后,在主程序中編寫(xiě)程序如圖4-50所示。95圖4-51在NewPLC下添加OPC項(xiàng)目圖4-51在NewPLC下添加OPC項(xiàng)目96第4章S7-200PLC的通信功能第4章S7-200PLC的通信功能974.1PPI通訊4.1.1概述PPI協(xié)議是S7-200PLC中最基本的一種通信方式,通過(guò)S7-200CPU自身的端口(port0或Port1)即可完成,是S7-200CPU默認(rèn)的通信協(xié)議。PPI是一種主-從協(xié)議,協(xié)議定義了主站和從站,網(wǎng)絡(luò)中主站向網(wǎng)絡(luò)中的從站發(fā)出請(qǐng)求,從站只能對(duì)主站發(fā)出的請(qǐng)求做出響應(yīng),自己不能發(fā)出請(qǐng)求。主站也可以對(duì)網(wǎng)絡(luò)中其他主站的請(qǐng)求做出響應(yīng)。ppi的通信功能解讀課件98S7-200的通信口為RS-485接口,PC/PPI多主站電纜用于計(jì)算機(jī)與S7-200之間的通信,有RS-232C/PPI和USB/PPI兩種電纜。PPI網(wǎng)絡(luò)連接示意圖如圖10-1所示,要求如下:

(1)每個(gè)網(wǎng)段至多32個(gè)網(wǎng)絡(luò)節(jié)點(diǎn); (2)每個(gè)網(wǎng)段最長(zhǎng)50米(不用中繼器),可通過(guò)中繼器擴(kuò)展網(wǎng)絡(luò),最多9個(gè)中繼器; (3)網(wǎng)絡(luò)可包含127節(jié)點(diǎn); (4)網(wǎng)絡(luò)可包含32個(gè)主站; (5)網(wǎng)絡(luò)總長(zhǎng)9600米。一個(gè)網(wǎng)段一個(gè)網(wǎng)段一個(gè)網(wǎng)段50米最多1000米50米圖4-1PPI網(wǎng)絡(luò)連接示意圖S7-200的通信口為RS-485接口,PC/PPI多主站電99PROFIBUS連接器和電纜將CP通信卡和S7-200通信口連接。不同主/從站之間也可以通過(guò)PROFIBUS連接器和電纜進(jìn)行連接通信。PPI是主/從協(xié)議,默認(rèn)情況下網(wǎng)絡(luò)中的S7-200CPU均為從站,其他CPU、SIMATIC編程器或文本顯示器(例TD400C等)為主站。

PPI網(wǎng)絡(luò)包括單主站PPI網(wǎng)絡(luò)和多主站PPI網(wǎng)絡(luò)。PROFIBUS連接器和電纜將CP通信卡和S7-200通信口100圖4-2多主站PPI網(wǎng)絡(luò)結(jié)構(gòu)圖圖4-2多主站PPI網(wǎng)絡(luò)結(jié)構(gòu)圖1014.1.2使用網(wǎng)絡(luò)讀寫(xiě)指令實(shí)現(xiàn)PPI通信如果在用戶(hù)程序中使用了PPI主站模式,一些S7-200CPU在RUN模式下可以做主站,它們可以用網(wǎng)絡(luò)讀(NETR,NetRead)和網(wǎng)絡(luò)寫(xiě)(NETW,NetWrite)指令讀寫(xiě)其他CPU中的數(shù)據(jù)。S7-200PLC之間的PPI通信可以使用PROFIBUS網(wǎng)線直接連接CPU上PORT0或PORT1,然后在CPU內(nèi)調(diào)用網(wǎng)絡(luò)讀寫(xiě)指令即可實(shí)現(xiàn)。4.1.2使用網(wǎng)絡(luò)讀寫(xiě)指令實(shí)現(xiàn)PPI通信1021.網(wǎng)絡(luò)讀寫(xiě)指令NETR/NETW網(wǎng)絡(luò)讀取(NETR)指令開(kāi)始一項(xiàng)通訊操作,通過(guò)指定的端口(PORT)從遠(yuǎn)程設(shè)備收集數(shù)據(jù)。網(wǎng)絡(luò)寫(xiě)入(NETW)指令開(kāi)始一項(xiàng)通訊操作,通過(guò)指定的端口(PORT)向遠(yuǎn)程設(shè)備寫(xiě)入數(shù)據(jù)。每一個(gè)NETR/NETW指令可從/向遠(yuǎn)程站讀取/寫(xiě)入16個(gè)字節(jié)信息。網(wǎng)絡(luò)讀寫(xiě)指令是通過(guò)TBL參數(shù)表來(lái)指定報(bào)文頭,TBL參數(shù)表如表4-1所示。字節(jié)700DAE0錯(cuò)誤代碼1遠(yuǎn)程地址2遠(yuǎn)程站的數(shù)據(jù)區(qū)指針(I、Q、M、V)3456數(shù)據(jù)長(zhǎng)度7數(shù)據(jù)字節(jié)08數(shù)據(jù)字節(jié)1...22數(shù)據(jù)字節(jié)15表4-1網(wǎng)絡(luò)讀寫(xiě)指令TBL1.網(wǎng)絡(luò)讀寫(xiě)指令NETR/NETW字節(jié)7103錯(cuò)誤代碼如表4-2所示:錯(cuò)誤代碼定義0無(wú)錯(cuò)誤1遠(yuǎn)程站響應(yīng)超時(shí)2接受錯(cuò)誤:奇偶校驗(yàn)錯(cuò),響應(yīng)時(shí)幀或校驗(yàn)出錯(cuò)3離線錯(cuò)誤:相同的站地址或無(wú)效的硬件引發(fā)沖突4隊(duì)列溢出錯(cuò)誤:激活超過(guò)8個(gè)的NETR/TREW指令5通信協(xié)議錯(cuò)誤:沒(méi)有使用PPI協(xié)議(SMB30)而調(diào)用NETR/NETW指令6非法參數(shù):NETR/NETW表中包含非法或無(wú)效的值7沒(méi)有資源:遠(yuǎn)程站點(diǎn)正在忙中(上裝或下載程序)8第7層錯(cuò)誤:違反應(yīng)用協(xié)議9信息錯(cuò)誤:錯(cuò)誤的數(shù)據(jù)地址或數(shù)據(jù)長(zhǎng)度10保留表4-2錯(cuò)誤代碼表錯(cuò)誤代碼如表4-2所示:錯(cuò)誤代碼定義0無(wú)錯(cuò)誤1遠(yuǎn)程站響應(yīng)1042.設(shè)定通信協(xié)議在程序的開(kāi)始必須設(shè)定通信協(xié)議。SMB30用于配置通信端口0(Port0),SMB130用于配置通信端口1(Port1),此兩個(gè)特殊寄存器字節(jié)的含義如表10-3所示。表10-3中:pp(校驗(yàn)選擇)、d(每個(gè)字符的數(shù)據(jù)位)、bbb(自由口波特率)均為自由口通信時(shí)才需要設(shè)定的參數(shù),在PPI通信時(shí)都設(shè)置為0即可。mm協(xié)議選擇2.設(shè)定通信協(xié)議1053.設(shè)定NETW和NETR的TBL參數(shù)表圖4-3網(wǎng)絡(luò)寫(xiě)指令NETW3.設(shè)定NETW和NETR的TBL參數(shù)表圖4-3網(wǎng)絡(luò)寫(xiě)指106圖4-4網(wǎng)絡(luò)讀指令NETR圖4-4網(wǎng)絡(luò)讀指令NETR1074.通信參數(shù)設(shè)定CPU通信端口的設(shè)定可以通過(guò)STEP7Micro/WIN軟件的“系統(tǒng)塊(SystemBlock)”選項(xiàng)來(lái)進(jìn)行。最高地址(HighestAddress波特率地址間隔刷新系數(shù)(GapUpdateFactor)4.通信參數(shù)設(shè)定1084.1.3使用向?qū)?shí)現(xiàn)PPI通信圖4-5“網(wǎng)絡(luò)讀/寫(xiě)操作”對(duì)話框4.1.3使用向?qū)?shí)現(xiàn)PPI通信圖4-5“網(wǎng)絡(luò)讀/寫(xiě)109單擊圖4-5“下一項(xiàng)操作”按鈕,進(jìn)入第二項(xiàng)“網(wǎng)絡(luò)讀/寫(xiě)操作”對(duì)話框單擊“下一步”,出現(xiàn)分配存儲(chǔ)區(qū)對(duì)話框接下來(lái),要調(diào)用向?qū)傻淖映绦騺?lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸,主站程序及注釋如圖10-6所示。圖4-6主站主程序單擊圖4-5“下一項(xiàng)操作”按鈕,進(jìn)入第二項(xiàng)“網(wǎng)絡(luò)讀/寫(xiě)操作”1104.2自由口通信

S7-200CPU的串行通訊口可由用戶(hù)程序控制,這種操作模式稱(chēng)為自由口模式。自由口通信是一種基于RS485硬件基礎(chǔ)上,允許應(yīng)用程序控制S7-200CPU的通信端口,以實(shí)現(xiàn)一些自定義通信協(xié)議的通信方式。當(dāng)選擇了自由口模式,程序可以使用接收中斷、發(fā)送中斷、發(fā)送指令(XMT)和接收指令(RCV)來(lái)控制通訊操作。在自由口模式下,通訊協(xié)議完全由程序控制。SMB30(用于端口0)和SMB31(如果CPU有兩個(gè)端口,則用于端口1)用于選擇波特率和奇偶校驗(yàn)。S7-200CPU處于自由口通信模式時(shí),所有的通信任務(wù)和信息定義均需由用戶(hù)編程實(shí)現(xiàn)。只有CPU處于RUN模式時(shí),才能進(jìn)行自由端口通訊。4.2自由口通信

S7-200CPU的串行通訊口可由用1114.2.1自由口模式下的發(fā)送和接收指令S7-200CPU的自由口通信的數(shù)據(jù)字節(jié)格式必須含有一個(gè)起始位、一個(gè)停止位,數(shù)據(jù)位長(zhǎng)度為7位或8位,校驗(yàn)位和校驗(yàn)類(lèi)型(奇、偶校驗(yàn))可選。S7-200CPU的自由口通信定義方法為將自由口通信操作數(shù)傳入特殊寄存器SMB30(端口0)和SMB130(端口1)進(jìn)行端口定義,自由口通信操作數(shù)定義如表4-4所示。4.2.1自由口模式下的發(fā)送和接收指令S7-200CP112自由口通信模式主要使用XMT(發(fā)送)和RCV(接收)兩條指令及相應(yīng)的特殊寄存器。XMT指令利用數(shù)據(jù)緩沖區(qū)指定要發(fā)送的字符,用于向指定通信口以字節(jié)為單位發(fā)送一串?dāng)?shù)據(jù)字符,一次最多發(fā)送255個(gè)字節(jié)。表4-5XMT指令的緩沖區(qū)格式自由口通信模式主要使用XMT(發(fā)送)和RCV(接收)兩條指令113RCV指令可以接收一個(gè)或多個(gè)字符,最多有255個(gè)字符,這些字符存儲(chǔ)在緩沖區(qū)中。RCV指令的緩沖區(qū)格式如表4-6所示。當(dāng)超界或奇偶校驗(yàn)錯(cuò)時(shí),接收信息功能自動(dòng)終止。必須為接收信息功能操作定義一個(gè)啟動(dòng)條件(x或z)和一個(gè)結(jié)束條件(y,t或最大字符數(shù))。協(xié)議支持使用字符中斷控制來(lái)接收數(shù)據(jù)。表4-6RCV指令的緩沖區(qū)格式RCV指令可以接收一個(gè)或多個(gè)字符,最多有255個(gè)字符,這些字1144.2.2自由口通信舉例1.自由口發(fā)送實(shí)例要求:記錄定時(shí)中斷次數(shù),將計(jì)數(shù)值轉(zhuǎn)化為ASCII字符串,再通過(guò)CPU224XP的Port0發(fā)送到計(jì)算機(jī)串口,計(jì)算機(jī)接受并利用超級(jí)終端顯示與S7-200CPU通信的內(nèi)容。(1)PLC編程規(guī)定緩沖區(qū)為VB100到VB114,使用數(shù)據(jù)塊進(jìn)行緩沖區(qū)定義,如圖4-7所示,16#0D和16#0A用于計(jì)算機(jī)的超級(jí)終端顯示需要。圖4-7組態(tài)數(shù)據(jù)塊4.2.2自由口通信舉例1.自由口發(fā)送實(shí)例圖4-7組態(tài)115主程序如圖4-8所示,根據(jù)I0.3狀態(tài)初始化端口1為自由口通信。SBR_0程序如圖4-9所示,定義端口0為自由口,初始化定時(shí)中斷。圖4-8自由口通信主程序圖4-9SBR_0子程序主程序如圖4-8所示,根據(jù)I0.3狀態(tài)初始化端口1為自116SBR_1子程序如圖4-10所示,用于定義端口0為普通PPI從站通信口。 圖4-10SBR_1子程序 INT_0程序如圖4-11所示,對(duì)定時(shí)中斷計(jì)數(shù)并從端口0發(fā)送計(jì)數(shù)值圖4-11INT_0子程序 圖4-10SBR_1子程序圖4-11INT_0子程序SBR_1子程序如圖4-10所示,用于定義端口0為普通PP117(2)超級(jí)終端設(shè)置超級(jí)終端(HyperTerminal)是Windows操作系統(tǒng)提供的通信測(cè)試程序,本例用來(lái)監(jiān)測(cè)計(jì)算機(jī)和S7-200CPU之間的串口通信。超級(jí)終端組態(tài)步驟如下:1)執(zhí)行Windows菜單命令“開(kāi)始”>“附件”>“通信”>“超級(jí)終端”,為要新建的連接輸入連接名稱(chēng)。2)選擇連接時(shí)要使用的串口。3)設(shè)置串口通信參數(shù)并保存連接,注意此處設(shè)置要與PLC程序中對(duì)應(yīng)。4)使用超級(jí)終端接收S7-200CPU發(fā)送的信息。圖4-12超級(jí)終端接受顯示(2)超級(jí)終端設(shè)置圖4-12超級(jí)終端接受顯示1182.自由口接收實(shí)例要求S7-200CPU從端口0接收計(jì)算機(jī)發(fā)送的字符串,并在信息接收中斷服務(wù)程序中把接收到的第一個(gè)字節(jié)傳送到CPU輸出字節(jié)QB0上顯示。(1)PLC編程主程序如圖4-13所示,根據(jù)I0.3狀態(tài)初始化端口1為自由口通信。圖4-13自由口通信主程序2.自由口接收實(shí)例圖4-13自由口通信主程序119SBR_0子程序如圖4-14所示,用于定義端口0為自由口,初始化接收指令。圖4-14SBR_0程序SBR_0子程序如圖4-14所示,用于定義端口0為自由口,初120SBR_1子程序如圖4-15所示,定義端口0為普通PPI從站通信口。INT_0中斷子程序如圖4-16所示,在QB0輸出接收到的第一個(gè)字節(jié)。(2)配置超級(jí)終端打開(kāi)前面建立的超級(jí)終端鏈接,進(jìn)入屬性窗口,點(diǎn)擊“ASCII碼設(shè)置”按鈕,在彈出的ASCII碼設(shè)置窗口中,勾選“以換行符作為發(fā)送行末尾”和“本地回顯鍵入的字符”兩項(xiàng)。SBR_1子程序如圖4-15所示,定義端口0為普通PPI1214.3MODBUS通信Modbus通信協(xié)議是Modicon公司提出的一種報(bào)文傳輸協(xié)議,它廣泛應(yīng)用于工業(yè)控制領(lǐng)域,并已經(jīng)成為一種通用的行業(yè)標(biāo)準(zhǔn)。不同廠商提供的控制設(shè)備可通過(guò)Modbus協(xié)議連成通信網(wǎng)絡(luò),從而實(shí)現(xiàn)集中控制。4.3.1Modbus報(bào)文格式Modbus地址通常是包含數(shù)據(jù)類(lèi)型和偏移量的5個(gè)或6個(gè)字符值。第一個(gè)或前兩個(gè)字符決定數(shù)據(jù)類(lèi)型,最后的四個(gè)字符是符合數(shù)據(jù)類(lèi)型的一個(gè)適當(dāng)?shù)闹怠?/p>

(1)Modbus主站尋址

Modbus主設(shè)備指令支持下列Modbus地址:

00001至09999是離散輸出(線圈);

10001至19999是離散輸入(觸點(diǎn));

30001至39999是輸入寄存器(通常是模擬量輸入);

40001至49999是保持寄存器。4.3MODBUS通信122(2)Modbus從站尋址Modbus地址與S7-200地址對(duì)應(yīng)關(guān)系如表4-7所示。000001Q0.0000002Q0.1000003Q0.2……000127Q15.6000128Q15.7010001I0.0010002I0.1010003I0.2……010127I15.6010128I15.7030001AIW0030002AIW2030003AIW4……030032AIW62040001HoldStart040002HoldStart+2040003HoldStart+4……04xxxxHoldStart+2x(xxxx-1)(2)Modbus從站尋址000001Q0.0000002123Modbus通信協(xié)議有ASCII和RTU(遠(yuǎn)程傳輸單元)兩種報(bào)文傳輸模式。(1)ASCII模式ASCII模式采用LRC(縱向冗余校驗(yàn))方式進(jìn)行校驗(yàn),其報(bào)文格式如表4-8所示。表4-8ASCII模式的報(bào)文格式Modbus通信協(xié)議有ASCII和RTU(遠(yuǎn)程傳輸單124(2)RTU模式RTU模式的報(bào)文格式如表4-9所示。 地址功能碼:Modbus功能代碼,1個(gè)字節(jié);Modbus協(xié)議支持的功能碼共16條(1~16),其中西門(mén)子ModbusRTU協(xié)議庫(kù)支持最常用的8條,如表4-10所示;信息數(shù)據(jù)CRC:循環(huán)冗余校驗(yàn),兩個(gè)字節(jié)。功能碼描述1讀取單個(gè)/多個(gè)線圈的實(shí)際輸出狀態(tài)。功能1返回任意數(shù)量輸出點(diǎn)的接通/斷開(kāi)狀態(tài)(Q)。2讀取單個(gè)/多個(gè)線圈的實(shí)際輸入狀態(tài)。功能2返回任意數(shù)量的輸入點(diǎn)的接通/斷開(kāi)狀態(tài)(I)。3多個(gè)保持寄存器。功能3返回V存儲(chǔ)器的內(nèi)容。保持寄存器在Modbus下是字類(lèi)型,在一個(gè)請(qǐng)求中最多可讀120個(gè)字。4讀單個(gè)/多個(gè)輸入寄存器,返回模擬輸入值。5寫(xiě)單個(gè)線圈(實(shí)際輸出)。功能5將實(shí)際輸出點(diǎn)設(shè)置為指定值。該輸出點(diǎn)不是被強(qiáng)制,用戶(hù)程序可以重寫(xiě)由Modbus的請(qǐng)求而寫(xiě)入的值。6寫(xiě)單個(gè)保持寄存器。功能6寫(xiě)一個(gè)單個(gè)保持寄存器的值到S7-200的V存儲(chǔ)區(qū)。15寫(xiě)多個(gè)線圈(實(shí)際輸出)。功能15寫(xiě)多個(gè)實(shí)際輸出值到S7-200的Q映像區(qū)。起始輸出點(diǎn)必須是一個(gè)字節(jié)的開(kāi)始(如Q0.0或Q2.0),并且要寫(xiě)得輸出的數(shù)量是8的倍數(shù)。這是Modbus從站協(xié)議指令的限定。這些點(diǎn)不是被強(qiáng)制,用戶(hù)程序可以重寫(xiě)由Modbus的請(qǐng)求而寫(xiě)入的值。16寫(xiě)多個(gè)保持寄存器。功能16寫(xiě)多個(gè)保持寄存器到S7-200的V區(qū)。在一個(gè)請(qǐng)求中最多可寫(xiě)120字。表4-10西門(mén)子ModbusRTU協(xié)議庫(kù)支持最常用的8條功能碼表4-9RTU模式的報(bào)文格式(2)RTU模式功能碼描述1讀取單個(gè)/多個(gè)線圈的實(shí)際輸出狀態(tài)125RTU模式下,報(bào)文中的每個(gè)8位字節(jié)被轉(zhuǎn)化為兩個(gè)16進(jìn)制字符,然后以字節(jié)為單位進(jìn)行傳輸,并采用CRC(循環(huán)冗余校驗(yàn))方式進(jìn)行校驗(yàn)。目前支持Modbus通信的DCS系統(tǒng)和過(guò)程儀表大都采用基于串行接口的ModbusRTU模式,西門(mén)子提供了針對(duì)西門(mén)子PLCModbusRTU通信的協(xié)議庫(kù)。如果要在西門(mén)子PLC上實(shí)現(xiàn)ModbusASCII模式通信,可根據(jù)相關(guān)協(xié)議規(guī)定利用自由口通信模式自主編程實(shí)現(xiàn)。RTU模式下,報(bào)文中的每個(gè)8位字節(jié)被轉(zhuǎn)化為兩個(gè)16進(jìn)制字符,1264.3.2Modbus通訊協(xié)議指令西門(mén)子專(zhuān)門(mén)為ModbusRTU通信開(kāi)發(fā)了指令庫(kù),極大地簡(jiǎn)化了ModbusRTU通信的開(kāi)發(fā),以便于快速實(shí)現(xiàn)相關(guān)應(yīng)用。要使用Modbus指令庫(kù)必須注意以下四點(diǎn):(1)使用Modbus指令庫(kù)前,需要將其安裝到Step7-Micro/Win中,STEP7-Micro/WIN必須為V3.2或以上版本。(2)S7-200CPU必須是固化程序修訂版2.00或最好支持Modbus主設(shè)備協(xié)議庫(kù)(CPUMLFB21x-2xx23-0XB0)。(3)由于目前已經(jīng)推出了針對(duì)端口0和端口1的ModbusRTU主站指令庫(kù)ModbusMasterPort0和ModbusMasterPort1、以及針對(duì)端口0的ModbusRTU從站指令庫(kù),故可利用指令庫(kù)實(shí)現(xiàn)端口0的ModbusRTU主/從站通信。(4)一旦CPU端口被用于ModbusRTU主/從站協(xié)議通信時(shí),該端口就無(wú)法用于任何其它用途,包括與STEP7-Micro/WIN通訊。4.3.2Modbus通訊協(xié)議指令西門(mén)子專(zhuān)門(mén)為Modb1271.Modbus主站協(xié)議指令西門(mén)子Modbus主站協(xié)議庫(kù)包括兩條主站協(xié)議指令:MBUS_CTRL指令和MBUS_MSG指令。MBUS_CTRL指令用于初始化主站通信,MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。1)MBUS_CTRL指令MBUS_CTRL指令如圖4-17所示。圖4-17MBUS_CTRL指令塊1.Modbus主站協(xié)議指令圖4-17MBUS_CTR1282)MBUS_MSG指令MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。MBUS_MSG指令如圖4-18所示圖4-18MBUS_MSG指令2)MBUS_MSG指令圖

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論