第10章-S7-200 PLC的通信功能_第1頁(yè)
第10章-S7-200 PLC的通信功能_第2頁(yè)
第10章-S7-200 PLC的通信功能_第3頁(yè)
第10章-S7-200 PLC的通信功能_第4頁(yè)
第10章-S7-200 PLC的通信功能_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第10章S7-200PLC的通信功能10.1PPI通訊10.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)。S7-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米圖10-1PPI網(wǎng)絡(luò)連接示意圖PROFIBUS連接器和電纜將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ò)。圖10-2多主站PPI網(wǎng)絡(luò)結(jié)構(gòu)圖10.1.2使用網(wǎng)絡(luò)讀寫指令實(shí)現(xiàn)PPI通信如果在用戶程序中使能了PPI主站模式,一些S7-200CPU在RUN模式下可以做主站,它們可以用網(wǎng)絡(luò)讀(NETR,NetRead)和網(wǎng)絡(luò)寫(NETW,NetWrite)指令讀寫其他CPU中的數(shù)據(jù)。S7-200PLC之間的PPI通信可以使用PROFIBUS網(wǎng)線直接連接CPU上PORT0或PORT1,然后在CPU內(nèi)調(diào)用網(wǎng)絡(luò)讀寫指令即可實(shí)現(xiàn)。1.網(wǎng)絡(luò)讀寫指令NETR/NETW網(wǎng)絡(luò)讀?。∟ETR)指令開始一項(xiàng)通訊操作,通過(guò)指定的端口(PORT)從遠(yuǎn)程設(shè)備收集數(shù)據(jù)。網(wǎng)絡(luò)寫入(NETW)指令開始一項(xiàng)通訊操作,通過(guò)指定的端口(PORT)向遠(yuǎn)程設(shè)備寫入數(shù)據(jù)。每一個(gè)NETR/NETW指令可從/向遠(yuǎn)程站讀取/寫入16個(gè)字節(jié)信息。網(wǎng)絡(luò)讀寫指令是通過(guò)TBL參數(shù)表來(lái)指定報(bào)文頭,TBL參數(shù)表如表10-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表10-1網(wǎng)絡(luò)讀寫指令TBL錯(cuò)誤代碼如表10-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保留表10-2錯(cuò)誤代碼表2.設(shè)定通信協(xié)議在程序的開始必須設(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é)議選擇3.設(shè)定NETW和NETR的TBL參數(shù)表圖10-3網(wǎng)絡(luò)寫指令NETW圖10-4網(wǎng)絡(luò)讀指令NETR4.通信參數(shù)設(shè)定CPU通信端口的設(shè)定可以通過(guò)STEP7Micro/WIN軟件的“系統(tǒng)塊(SystemBlock)”選項(xiàng)來(lái)進(jìn)行。最高地址(HighestAddress波特率地址間隔刷新系數(shù)(GapUpdateFactor)10.1.3使用向?qū)?shí)現(xiàn)PPI通信圖10-5“網(wǎng)絡(luò)讀/寫操作”對(duì)話框單擊圖10-5“下一項(xiàng)操作”按鈕,進(jìn)入第二項(xiàng)“網(wǎng)絡(luò)讀/寫操作”對(duì)話框單擊“下一步”,出現(xiàn)分配存儲(chǔ)區(qū)對(duì)話框接下來(lái),要調(diào)用向?qū)傻淖映绦騺?lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸,主站程序及注釋如圖10-6所示。圖10-6主站主程序10.2自由口通信

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

(1)Modbus主站尋址

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

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

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

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

40001至49999是保持寄存器。(2)Modbus從站尋址Modbus

地址與S7-200地址對(duì)應(yīng)關(guān)系如表10-7所示。000001Q0.0000002Q0.1000003Q0.2……000127Q15.6000128Q15.7010001I0.0010002I0.1010003I0.2……010127I15.6010128I15.7030001AIW0030002AIW2030003AIW4……030032AIW62040001HoldStart040002HoldStart+2040003HoldStart+4……04xxxxHoldStart+2x(xxxx-1)Modbus通信協(xié)議有ASCII和RTU(遠(yuǎn)程傳輸單元)兩種報(bào)文傳輸模式。(1)ASCII模式ASCII模式采用LRC(縱向冗余校驗(yàn))方式進(jìn)行校驗(yàn),其報(bào)文格式如表10-8所示。表10-8ASCII模式的報(bào)文格式(2)RTU模式RTU模式的報(bào)文格式如表10-9所示。 地址功能碼:Modbus功能代碼,1個(gè)字節(jié);Modbus協(xié)議支持的功能碼共16條(1~16),其中西門子ModbusRTU協(xié)議庫(kù)支持最常用的8條,如表10-10所示;信息數(shù)據(jù)CRC:循環(huán)冗余校驗(yàn),兩個(gè)字節(jié)。功能碼描述1讀取單個(gè)/多個(gè)線圈的實(shí)際輸出狀態(tài)。功能1返回任意數(shù)量輸出點(diǎn)的接通/斷開狀態(tài)(Q)。2讀取單個(gè)/多個(gè)線圈的實(shí)際輸入狀態(tài)。功能2返回任意數(shù)量的輸入點(diǎn)的接通/斷開狀態(tài)(I)。3多個(gè)保持寄存器。功能3返回V存儲(chǔ)器的內(nèi)容。保持寄存器在Modbus下是字類型,在一個(gè)請(qǐng)求中最多可讀120個(gè)字。4讀單個(gè)/多個(gè)輸入寄存器,返回模擬輸入值。5寫單個(gè)線圈(實(shí)際輸出)。功能5將實(shí)際輸出點(diǎn)設(shè)置為指定值。該輸出點(diǎn)不是被強(qiáng)制,用戶程序可以重寫由Modbus的請(qǐng)求而寫入的值。6寫單個(gè)保持寄存器。功能6寫一個(gè)單個(gè)保持寄存器的值到S7-200的V存儲(chǔ)區(qū)。15寫多個(gè)線圈(實(shí)際輸出)。功能15寫多個(gè)實(shí)際輸出值到S7-200的Q映像區(qū)。起始輸出點(diǎn)必須是一個(gè)字節(jié)的開始(如Q0.0或Q2.0),并且要寫得輸出的數(shù)量是8的倍數(shù)。這是Modbus從站協(xié)議指令的限定。這些點(diǎn)不是被強(qiáng)制,用戶程序可以重寫由Modbus的請(qǐng)求而寫入的值。16寫多個(gè)保持寄存器。功能16寫多個(gè)保持寄存器到S7-200的V區(qū)。在一個(gè)請(qǐng)求中最多可寫120字。表10-10西門子ModbusRTU協(xié)議庫(kù)支持最常用的8條功能碼表10-9RTU模式的報(bào)文格式RTU模式下,報(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模式,西門子提供了針對(duì)西門子PLCModbusRTU通信的協(xié)議庫(kù)。如果要在西門子PLC上實(shí)現(xiàn)ModbusASCII模式通信,可根據(jù)相關(guān)協(xié)議規(guī)定利用自由口通信模式自主編程實(shí)現(xiàn)。10.3.2Modbus通訊協(xié)議指令西門子專門為ModbusRTU通信開發(fā)了指令庫(kù),極大地簡(jiǎn)化了ModbusRTU通信的開發(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通訊。1.Modbus主站協(xié)議指令西門子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指令如圖10-17所示。圖10-17MBUS_CTRL指令塊2)MBUS_MSG指令MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。MBUS_MSG指令如圖10-18所示圖10-18MBUS_MSG指令Count:“計(jì)數(shù)”參數(shù);“計(jì)數(shù)”參數(shù)指定在該請(qǐng)求中讀取或?qū)懭氲臄?shù)據(jù)元素的數(shù)目。根據(jù)Modbus協(xié)議,“計(jì)數(shù)”參數(shù)與Modbus地址存在表10-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ù)表10-11“計(jì)數(shù)”參數(shù)與Modbus地址的對(duì)應(yīng)關(guān)系MBUS_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)答。可能有以下一些原因:與從站的電氣連接有問(wèn)題、主設(shè)備和從站設(shè)置為不同的波特率/奇偶校驗(yàn)設(shè)置以及錯(cuò)誤的從站地址4請(qǐng)求參數(shù)出錯(cuò):一個(gè)或多個(gè)輸入?yún)?shù)(從站、讀寫、地址或計(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ù)類型:該“地址”類型不被從站支持。104從站故障。105從站已接收消息但應(yīng)答延遲:這是MBUS_MSG的錯(cuò)誤。用戶程序應(yīng)在稍后重新發(fā)送請(qǐng)求。106從站忙,因此拒絕消息:可以在此嘗試相同的請(qǐng)求,以獲得應(yīng)答。107從站因未知原因拒絕消息。108從站存儲(chǔ)器奇偶校驗(yàn)錯(cuò)誤:從站中有錯(cuò)誤。表10-12MBUS_MSG指令錯(cuò)誤代碼含義2.Modbus從站協(xié)議指令西門子Modbus從站協(xié)議庫(kù)包括兩條從站指令:MBUS_INIT指令和MBUS_SLAVE指令。1)MBUS_INIT指令MBUS_INIT指令用于啟用和初始化或禁止Modbus從站通訊。在使用MBUS_SLAVE指令之前,必須正確執(zhí)行MBUS_INIT指令。指令完成后立即設(shè)定“完成”位,才能繼續(xù)執(zhí)行下一條指令。MBUS_INIT指令如圖10-19所示圖10-19MBUS_INIT指令錯(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從站功能未啟用表10-13MBUS_INIT指令錯(cuò)誤代碼的含義2)MBUS_SLAVE指令MBUS_SLAVE指令被用于為Modbus主設(shè)備發(fā)出的請(qǐng)求服務(wù),并且必須在每次掃描時(shí)執(zhí)行,以便允許該指令檢查和回答Modbus請(qǐng)求。MBUS_SLAVE指令無(wú)輸入?yún)?shù),在每次掃描且EN輸入開啟時(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從站功能未啟用圖10-20MBUS_SLAVE指令表10-14MBUS_SLAVE指令錯(cuò)誤代碼的含義10.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ù)存儲(chǔ)區(qū)分配”對(duì)話框,輸入庫(kù)存儲(chǔ)區(qū)的起始地址,注意避免該地址和程序中已經(jīng)采用或準(zhǔn)備采用的其它地址重合,點(diǎn)擊“建議地址”按鈕,系統(tǒng)將自動(dòng)計(jì)算存儲(chǔ)區(qū)的地址范圍。(1)從站編程根據(jù)要求,從站要響應(yīng)主站報(bào)文,故只需編寫主程序,如圖10-21所示。圖10-21從站主程序(2)主站編程Modbus主站也只需編寫主程序,如圖10-22所示。運(yùn)行測(cè)試即可。圖10-22主站主程序10.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ù)交換。10.4.1配置主叫貓和被叫貓啟動(dòng)STEP7Micro/Win軟件,選擇項(xiàng)目樹中的“向?qū)?gt;EM241調(diào)制解調(diào)器”進(jìn)入EM241配置向?qū)А螕魣D10-23所示的“電話號(hào)碼”標(biāo)簽,設(shè)置遠(yuǎn)程設(shè)備電話號(hào)碼,點(diǎn)擊“新電話號(hào)碼”按鈕進(jìn)入電話號(hào)碼屬性設(shè)置窗口,設(shè)置電話號(hào)碼為3,并將其添加到右邊的窗口,如圖10-24所示。圖10-23配置數(shù)據(jù)傳輸圖10-24遠(yuǎn)程設(shè)備電話號(hào)碼設(shè)置對(duì)話框圖10-25回?fù)芘渲么翱?0.4.2編程輸入/輸出數(shù)據(jù)類型注釋ENBOOLEN位必須開啟,才能啟用發(fā)至模塊的命令,并且EN位必須保持開啟,直至“完成”位被設(shè)置,表示程序完成。當(dāng)START(開始)輸入開啟且模塊目前不繁忙時(shí),每次掃描均會(huì)向調(diào)制解調(diào)器模塊發(fā)送一則XFR命令STARTBOOLSTART(開始)輸入可以通過(guò)一個(gè)邊緣檢測(cè)元素以脈沖方式開啟,該程序僅允許發(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í)開啟的位表10-15MODx_XFR指令含義主叫“貓”對(duì)應(yīng)的PLC中的主程序及注釋如圖10-26所示。被叫“貓”對(duì)應(yīng)的PLC中的主程序及注釋如圖10-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)行模式。圖10-26主叫“貓”對(duì)應(yīng)的主程序圖10-26主叫“貓”對(duì)應(yīng)的主程序10.4.3遠(yuǎn)程診斷通過(guò)Modem模塊可以實(shí)現(xiàn)S7-200的遠(yuǎn)程編程與診斷圖10-28“選擇一個(gè)遠(yuǎn)程站連接”對(duì)話框10.5USS通信USS

通信總是由主站發(fā)起,USS主站不斷循環(huá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),成本較低。10.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的自由口通信模式正好能夠支持上述字符幀格式。表10-16字符幀格式(2)報(bào)文幀格式:協(xié)議的報(bào)文簡(jiǎn)潔可靠,高效靈活。報(bào)文由一連串的字符組成,協(xié)議中定義了它們的特定功能,如表10-17所示。 在

ADR和BCC之間的數(shù)據(jù)字節(jié),稱為USS的凈數(shù)據(jù)。主站和從站交換的數(shù)據(jù)都包括在每條報(bào)文的凈數(shù)據(jù)區(qū)域內(nèi)。凈數(shù)據(jù)區(qū)由PKW區(qū)和PZD區(qū)組成,如表10-18所示。10.5.2USS指令STEP7-Micro/WINUSS指令庫(kù)提供14個(gè)子程序、3個(gè)中斷例行程序和8條指令,極大地簡(jiǎn)化了USS通信的開發(fā)和實(shí)現(xiàn)。使用USS指令庫(kù)必須滿足以下需求:(1)將端口0指定用于USS通訊。(2)在使用USS協(xié)議通訊的程序開發(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ū)。1.USS_INIT指令使用USS庫(kù)指令前必須使用USS_INIT指令初始化USS通信參數(shù),如圖10-29所示。圖10-29初始化USS通信指令表10-19Active參數(shù)設(shè)置2.USS_CTRL指令USS_CTRL指令用于對(duì)單個(gè)驅(qū)動(dòng)裝置進(jìn)行運(yùn)行控制,利用了USS協(xié)議中的PZD數(shù)據(jù)傳輸,控制和反饋信號(hào)更新較快,如圖10-30所示。

圖10-30USS_CTRL指令塊3.USS讀/寫參數(shù)指令USS指令庫(kù)中共有6種參數(shù)讀寫功能塊,分別用于讀寫驅(qū)動(dòng)裝置中不同規(guī)格的參數(shù),如表10-20所示。USS參數(shù)讀寫指令采用與USS_CTRL功能塊不同的數(shù)據(jù)傳輸方式。表10-20USS讀/寫功能塊(1)讀參數(shù)指令圖10-31所示的程序段讀取實(shí)際的電動(dòng)機(jī)電流值(參數(shù)r0068)。由于此參數(shù)是一個(gè)實(shí)數(shù),因此選用實(shí)型參數(shù)讀功能塊。參數(shù)讀寫指令必須與參數(shù)的類型配合。圖10-31讀參數(shù)指令(2)寫參數(shù)指令寫參數(shù)指令的用法與讀參數(shù)指令類似,與讀參數(shù)指令的區(qū)別是參數(shù)是功能塊的輸入。(3)讀寫多個(gè)參數(shù)在任一時(shí)刻USS主站內(nèi)只能有一個(gè)參數(shù)讀寫功能塊有效,否則會(huì)出錯(cuò)。因此如果需要讀寫多個(gè)參數(shù)(來(lái)自一個(gè)或多個(gè)驅(qū)動(dòng)裝置),必須在編程時(shí)進(jìn)行讀寫指令之間的輪替處理。10.5.3MM440變頻器的參數(shù)設(shè)置以下只涉及與S7-200控制器連接相關(guān)的參數(shù)。MM440的參數(shù)分為幾個(gè)訪問(wèn)級(jí)別,以便于過(guò)濾不需要查看的部分。(1)控制源參數(shù)設(shè)置控制源由參數(shù)P0700設(shè)置,如表10-21所示:表10-21控制源參數(shù)設(shè)置(2)設(shè)定源控制參數(shù)設(shè)置設(shè)定值控制驅(qū)動(dòng)裝置的轉(zhuǎn)速/頻率等功能。設(shè)置源由參數(shù)P1000設(shè)置,如表10-22所示。

表10-22設(shè)定源控制參數(shù)設(shè)置(3)USS通信控制的參數(shù)設(shè)置控制源和設(shè)定源之間可以自由組合,根據(jù)工藝要求可以靈活選用。我們以控制源和設(shè)定源都來(lái)自COMLink上的USS通信為例,簡(jiǎn)介USS通信的參數(shù)設(shè)置。主要參數(shù)有:P0700P1000P2009P2010P2011P2012P2013P2014P097110.6S7-200PLC與S7-300PLC的MPI通信MPI(MultiPointInterface)通信是當(dāng)通信速率要求不高、通信數(shù)據(jù)量不大時(shí),可以采用的一種簡(jiǎn)單經(jīng)濟(jì)的通信方式。MPISTEP7S7-22xPG/PC19.2或187.5KbS7-400M7-400S7-300M7-300S7-115U/H,S5-135US5-155U/H,SIMATIC505S5-95UOP圖10-32MPI網(wǎng)絡(luò)結(jié)構(gòu)配置通過(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ú)需任何編程。S7-200與S7-300的MPI通信的硬件包括:(1)S7-300PLC(2)S7-200PLC(3)PCAdapter或CP5611。(4)Profibus總線連接器及電纜。軟件要求包括:(1)STEP7V5.2或以上。(2)Step7-Micro/WinSP4或以上。步驟如下:(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口。為實(shí)現(xiàn)S7-300作為客戶機(jī),對(duì)服務(wù)器S7-200的數(shù)據(jù)讀寫,需要在STEP7中編寫兩個(gè)網(wǎng)絡(luò)如圖10-33和圖10-34所示。圖10-33X_PUT網(wǎng)絡(luò)圖10-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è)試即可。圖10-34X_GET網(wǎng)絡(luò)10.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模型的第一層、第二層和第七層。從用戶角度看,PROFIBUS提供了三種通信協(xié)議類型:DP、FMS和PA。另外,對(duì)于西門子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所示。 圖10-35Profibus-DP網(wǎng)絡(luò)配置示意圖圖10-36S7-200&S7-300PROFIBUS-DP通信網(wǎng)絡(luò)S7-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)和編程。圖10-37插入EM277從站10.8工業(yè)以太網(wǎng)通信10.8.1工業(yè)以太網(wǎng)概述1.OSI參考模型

圖10-38OSI參考模型OSI參考模型的上三層通常稱為應(yīng)用層,用來(lái)處理用戶接口、數(shù)據(jù)格式和應(yīng)用程序的訪問(wèn);下四層負(fù)責(zé)定義數(shù)據(jù)的物理傳輸介質(zhì)和網(wǎng)絡(luò)設(shè)備。如圖10-39和10-40所示。圖10-39對(duì)等層通信結(jié)圖10-39對(duì)等層通信結(jié)2.以太網(wǎng)技術(shù)底層網(wǎng)絡(luò)由物理層和MAC層(介質(zhì)訪問(wèn)子層)構(gòu)成。IEEE802.3以“以太網(wǎng)”為技術(shù)原形,在MAC層上采用CSMA/CD(帶沖突檢測(cè)的載波偵聽多路存取控制協(xié)議)的介質(zhì)訪問(wèn)控制技術(shù)來(lái)處理通信中的沖突。在以太網(wǎng)模型的網(wǎng)絡(luò)層和傳輸層上常采用TCP/IP協(xié)議組。其中IP(InternetProtocol)稱為網(wǎng)際通信協(xié)議,對(duì)應(yīng)網(wǎng)絡(luò)層;TCP(TransmissionControlProtocol)稱為傳輸控制協(xié)議,對(duì)應(yīng)傳輸層,保證數(shù)據(jù)被可靠地傳送。3.工業(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)的比較如表10-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年表10-23工業(yè)以大網(wǎng)和傳統(tǒng)以太網(wǎng)的比較工業(yè)以太網(wǎng)的技術(shù)優(yōu)勢(shì)如下:1.可以滿足控制系統(tǒng)各個(gè)層次的要求,使企業(yè)信息網(wǎng)絡(luò)與控制網(wǎng)絡(luò)得以統(tǒng)一;2.設(shè)備成本下降;3.用戶擁有成本下降;4.以太網(wǎng)易與Internet集成;5.軟硬件開發(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ì)安全性。4.西門子工業(yè)以太網(wǎng)(SIMATICNET)西門子公司通過(guò)SIMATICNET提供了開放的、適用于工業(yè)環(huán)境下各種控制級(jí)別的不同的通信

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論