S71200PLC編程及應(yīng)用第4版課件第6章_第1頁
S71200PLC編程及應(yīng)用第4版課件第6章_第2頁
S71200PLC編程及應(yīng)用第4版課件第6章_第3頁
S71200PLC編程及應(yīng)用第4版課件第6章_第4頁
S71200PLC編程及應(yīng)用第4版課件第6章_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 S7-1200的通信與故障診斷6.1 網(wǎng)絡(luò)通信基礎(chǔ)6.1.1 計(jì)算機(jī)通信的國(guó)際標(biāo)準(zhǔn) 1開放系統(tǒng)互連模型 開放系統(tǒng)互連模型詳細(xì)描述了通信功能的7個(gè)層次,某些現(xiàn)場(chǎng)總線只使用第1、2、7層。物理層的下面是物理媒體,例如雙絞線和光纖等。物理層定義了傳輸媒體端口的機(jī)械、電氣功能和規(guī)程的特性。 數(shù)據(jù)鏈路層的數(shù)據(jù)以幀為單位傳送,每一幀包含數(shù)據(jù)和同步信息、地址信息和流量控制信息等。通過校驗(yàn)、確認(rèn)和要求重發(fā)等方法實(shí)現(xiàn)差錯(cuò)控制。 應(yīng)用層為用戶的應(yīng)用服務(wù)提供信息交換,為應(yīng)用接口提供操作標(biāo)準(zhǔn)。第6章 S7-1200的通信與故障診斷6.1 網(wǎng)絡(luò)通信基 2. IEEE 802通信標(biāo)準(zhǔn) (1)CSMA/CD (帶沖

2、突檢測(cè)的載波偵聽多路訪問 )的基礎(chǔ)是以太網(wǎng)。 每個(gè)站都是平等的,為了防止沖突,采用“先聽后講”和“邊聽邊講”的發(fā)送方法。其控制策略是競(jìng)爭(zhēng)發(fā)送、廣播式傳送、載體監(jiān)聽、沖突檢測(cè)、沖突后退和再試發(fā)送。以太網(wǎng)越來越多地在底層網(wǎng)絡(luò)使用。 (2)令牌總線 令牌繞邏輯環(huán)周而復(fù)始地傳送。要發(fā)送報(bào)文的站等到令牌傳給自己,判斷為空令牌時(shí)才能發(fā)送報(bào)文。令牌沿環(huán)網(wǎng)循環(huán)一周后返回發(fā)送站時(shí),如果報(bào)文已被接收站復(fù)制,發(fā)送站將令牌置為“空”,送上環(huán)網(wǎng)繼續(xù)傳送,以供其他站使用。 (3)主從通信方式 主從通信網(wǎng)絡(luò)有一個(gè)主站和若干個(gè)從站。主站向某個(gè)從站發(fā)送請(qǐng)求幀,該從站接收到后才能向主站返回響應(yīng)幀。主站按事先設(shè)置好的輪詢表的排列順

3、序?qū)恼具M(jìn)行周期性的查詢。 3現(xiàn)場(chǎng)總線及其國(guó)際標(biāo)準(zhǔn) IEC對(duì)現(xiàn)場(chǎng)總線的定義是“安裝在制造和過程區(qū)域的現(xiàn)場(chǎng)裝置與控制室內(nèi)的自動(dòng)控制裝置之間的數(shù)字式、串行、多點(diǎn)通信的數(shù)據(jù)總線”。 2. IEEE 802通信標(biāo)準(zhǔn) IEC 61158第4版采納了經(jīng)過市場(chǎng)考驗(yàn)的20種現(xiàn)場(chǎng)總線。其中約一半是實(shí)時(shí)以太網(wǎng)。西門子公司支持類型3(PROFIBUS)和類型10(PROFINET)。 IEC 62026是供低壓開關(guān)設(shè)備與控制設(shè)備使用的控制器電氣接口標(biāo)準(zhǔn)。西門子公司支持執(zhí)行器傳感器接口(AS-i)。6.1.2 SIMATIC通信網(wǎng)絡(luò) 1SIMATIC NET 西門子的工業(yè)自動(dòng)化通信網(wǎng)絡(luò)SIMATIC NET的頂層為工

4、業(yè)以太網(wǎng),可以集成到互聯(lián)網(wǎng)。 PROFIBUS用于少量和中等數(shù)量數(shù)據(jù)的高速傳送。AS-i是底層的低成本網(wǎng)絡(luò)。 通用總線系統(tǒng)KNX用于樓宇自動(dòng)控制。IWLAN是工業(yè)無線局域網(wǎng)。各個(gè)網(wǎng)絡(luò)之間用鏈接器或有路由器功能的PLC連接。 MPI(多點(diǎn)接口)是SIMATIC產(chǎn)品使用的內(nèi)部通信協(xié)議,可以建立傳送少量數(shù)據(jù)的低成本網(wǎng)絡(luò)。PPI(點(diǎn)對(duì)點(diǎn)接口)是用于S7-200和S7-200 SMART的通信協(xié)議。點(diǎn)對(duì)點(diǎn)(PtP)通信用于特殊協(xié)議的串行通信。 2PROFINET PROFINET是基于工業(yè)以太網(wǎng)的開放的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)。使用PROFINET IO,現(xiàn)場(chǎng)設(shè)備可以直接連接到以太網(wǎng)。通過代理服務(wù)器,PROFINE

5、T可以透明地集成現(xiàn)有的PROFIBUS設(shè)備。 IEC 61158第4版采納了經(jīng)過市場(chǎng)考驗(yàn)的20種現(xiàn) PROFINET的實(shí)時(shí)(RT)通信功能典型的更新循環(huán)時(shí)間為110ms。同步實(shí)時(shí)(IRT)功能用于高性能的同步運(yùn)動(dòng)控制,響應(yīng)時(shí)間為0.251ms。IRT通信需要特殊的交換機(jī)的支持。PROFINET同時(shí)用一條工業(yè)以太網(wǎng)電纜實(shí)現(xiàn)IT集成化領(lǐng)域、實(shí)時(shí)自動(dòng)化領(lǐng)域和同步實(shí)時(shí)通信。 PROFINET支持故障安全通信的標(biāo)準(zhǔn)行規(guī)PROFIsafe和驅(qū)動(dòng)器配置行規(guī)PROFIdrive。 3PROFIBUS PROFIBUS是是基于RS-485的上一代的現(xiàn)場(chǎng)總線,傳輸速率最高12Mbit/s,最多可以接127個(gè)從站。

6、PROFIBUS提供了下列3種通信服務(wù): 1) PROFIBUS-DP (分布式外部設(shè)備)用于PLC與分布式I/O(例如ET 200)的通信。主站之間的通信為令牌方式,主站與從站之間為主從方式。 2)PROFIBUS-PA(過程自動(dòng)化)用于過程自動(dòng)化的現(xiàn)場(chǎng)傳感器和執(zhí)行器的低速數(shù)據(jù)傳輸,可以用于防爆區(qū)域的設(shè)備與PLC的通信。使用屏蔽雙絞線電纜,由總線提供電源。 3)PROFIBUS-FMS (現(xiàn)場(chǎng)總線報(bào)文規(guī)范) 已被以太網(wǎng)代替,用得很少。 此外還有用于運(yùn)動(dòng)控制的總線驅(qū)動(dòng)技術(shù)PROFIdrive和故障安全通信技術(shù)PROFIsafe。 PROFINET的實(shí)時(shí)(RT)通信功能典型的更新循環(huán)6.2 基于

7、以太網(wǎng)的開放式用戶通信 S7-1200/1500的CPU集成的PROFINET接口是10M/100Mbit/s的RJ45以太網(wǎng)口,可以使用標(biāo)準(zhǔn)的或交叉的以太網(wǎng)電纜。支持PROFINET、開放式用戶通信和S7通信。6.2.1 S7-1200之間的ISO-on-TCP和TCP協(xié)議通信 1開放式用戶通信 基于CPU集成的PN接口的開放式用戶通信用功能塊建立和斷開通信連接,發(fā)送和接收數(shù)據(jù)。TSEND_C和TRCV_C同時(shí)具有建立、斷開連接和發(fā)送、接收數(shù)據(jù)的功能。 2組態(tài)CPU的硬件 生成項(xiàng)目“1200_1200ISO_C”,兩臺(tái)PLC為CPU 1215C,PN接口的IP地址為默認(rèn)的和,子網(wǎng)掩碼為默認(rèn)的

8、。啟用MB0做它們的時(shí)鐘存儲(chǔ)器字節(jié)。 3組態(tài)CPU之間的通信連接 打開網(wǎng)絡(luò)視圖,用“拖拽”的方法連接PLC_1和 PLC_2的以太網(wǎng)接口,出現(xiàn)綠色的以太網(wǎng)線和名稱為“PN/IE_1”的連接。6.2 基于以太網(wǎng)的開放式用戶通信 4驗(yàn)證通信是否實(shí)現(xiàn)的典型程序結(jié)構(gòu) 雙方生成保存發(fā)送和接收數(shù)據(jù)的數(shù)據(jù)塊DB1(SendData)和DB2(RcvData),去掉“優(yōu)化的塊訪問”屬性。在數(shù)據(jù)塊中生成有100個(gè)整數(shù)元素的數(shù)組。 在OB100中用指令FILL_BLK將雙方DB1中要發(fā)送的100個(gè)整數(shù)初始化為16#1111和16#2222,將保存接收到的數(shù)據(jù)的DB2的100個(gè)整數(shù)清零。 在OB1中用周期為0.5s

9、的時(shí)鐘存儲(chǔ)器位M0.3的上升沿,將要發(fā)送的第一個(gè)字DB1.DBW0加1。圖6-3 數(shù)據(jù)塊SendData與OB100中的程序 4驗(yàn)證通信是否實(shí)現(xiàn)的典型程序結(jié)構(gòu)圖6-3 數(shù)據(jù)塊 5調(diào)用TSEND_C和TRCV_C 在OB1中調(diào)用TSEND_C指令發(fā)送數(shù)據(jù),調(diào)用TRCV_C指令接收數(shù)據(jù),自動(dòng)生成它們的背景數(shù)據(jù)塊。 6組態(tài)連接參數(shù) 選中指令TSEND_C,然后選中下面的巡視窗口的“屬性 組態(tài) 連接參數(shù)”,伙伴的“端點(diǎn)”設(shè)為PLC_2,連接類型為ISO-on-TCP。 單擊“本地”的“連接數(shù)據(jù)”下拉式列表中的“”,自動(dòng)生成連接描述數(shù)據(jù)塊“PLC_1_Send_DB”(DB5)。用同樣的方法生成PLC_

10、2的接描述數(shù)據(jù)塊“PLC_2_Send_DB”(DB5)。 用單選框設(shè)置PLC_1主動(dòng)建立連接。采用默認(rèn)的傳輸服務(wù)訪問點(diǎn)TSAP。PLC_2組態(tài)“連接參數(shù)”的對(duì)話框與圖6-6的結(jié)構(gòu)相同。 5調(diào)用TSEND_C和TRCV_C 7TSEND_C和TRCV_C的參數(shù) TSEND_C的參數(shù)的意義如下:在請(qǐng)求信號(hào)REQ的上升沿,根據(jù)DB5中的連接描述發(fā)送數(shù)據(jù)。發(fā)送成功后,DONE在一個(gè)掃描周期內(nèi)為1。CONT為1時(shí)建立和保持連接,為0時(shí)斷開連接。LEN為默認(rèn)值0時(shí),發(fā)送DATA定義的所有的數(shù)據(jù)。COM_RST為1時(shí),斷開現(xiàn)有的通信連接,新的連接被建立。BUSY為1時(shí)任務(wù)尚未完成。ERROR為1時(shí)出錯(cuò),S

11、TATUS中是錯(cuò)誤的詳細(xì)信息。 指令TRCV_C的EN_R為1時(shí)準(zhǔn)備好接收數(shù)據(jù),CONT和EN_R均為1時(shí)連續(xù)接收數(shù)據(jù)。RCVD_LEN是實(shí)際接收的數(shù)據(jù)的字節(jié)數(shù)。圖6-5 TSEND_C和TRCV_C指令 7TSEND_C和TRCV_C的參數(shù)圖6-5 T 8硬件通信實(shí)驗(yàn)的典型方法 通過交換機(jī)或路由器連接計(jì)算機(jī)和兩塊CPU的以太網(wǎng)接口,下載程序后令兩塊CPU為RUN模式。用監(jiān)控表監(jiān)視兩塊CPU的DB2中接收到的部分?jǐn)?shù)據(jù)。 將兩塊CPU的TSEND_C和TRCV_C的參數(shù)CONT(M10.1和M11.1)均置位為1,建立起通信連接。雙方的DB2.DBW0應(yīng)不斷增大。 通信正常時(shí)令M10.1或M11

12、.1為0,建立的連接被斷開,CPU將停止發(fā)送或接收數(shù)據(jù)。接收方的DB2.DBW0停止變化。 9仿真實(shí)驗(yàn) 選中PLC_1,單擊工具欄上的“開始仿真”按鈕 ,出現(xiàn)S7-1200的仿真軟件,下載程序后仿真PLC進(jìn)入RUN模式。用同樣的方法將PLC_2的程序下載到另一臺(tái)仿真PLC。調(diào)試程序的方法與硬件PLC相同。 使用TCP協(xié)議的通信: 將項(xiàng)目另存為名為“1200_1200TCP_C”的項(xiàng)目。將“連接類型”改為TCP,“伙伴端口”為默認(rèn)的2000,用戶程序和組態(tài)數(shù)據(jù)不變。兩個(gè)項(xiàng)目的實(shí)驗(yàn)方法和實(shí)驗(yàn)結(jié)果相同。 8硬件通信實(shí)驗(yàn)的典型方法 6.2.2 S7-1200之間的UDP通信 1組態(tài)連接參數(shù) 項(xiàng)目“12

13、00_1200UDP”的硬件結(jié)構(gòu)與上一節(jié)的相同。通信雙方在OB1中用指令TCON建立連接,用指令TDISCON斷開連接。 選中TCON,然后選中巡視窗口的“屬性 組態(tài) 連接參數(shù)”,設(shè)置通信伙伴為“未指定”,連接類型為UDP。不能設(shè)置“主動(dòng)建立連接”單選框。 單擊“連接數(shù)據(jù)”下拉式列表中的“”,自動(dòng)生成連接描述數(shù)據(jù)塊“PLC_1 _ Connection _DB”(DB4)。本地端口號(hào)采用默認(rèn)的2000。 雙方組態(tài)“連接參數(shù)”的對(duì)話框的結(jié)構(gòu)相同。6.2.2 S7-1200之間的UDP通信 2生成定義UDP連接參數(shù)的數(shù)據(jù)塊 在“添加新塊”對(duì)話框生成類型為TADDR_Param的全局?jǐn)?shù)據(jù)塊DB7,將

14、它的名稱修改為“接口參數(shù)”。UDP連接需要用DB7來設(shè)置遠(yuǎn)程通信伙伴的IP地址和端口號(hào),雙方的本地端口號(hào)應(yīng)相同。在程序運(yùn)行過程中修改DB7中通信伙伴的IP地址和端口號(hào),可以和不同的伙伴通信。 3編寫發(fā)送與接收數(shù)據(jù)的程序 在OB1中調(diào)用TUSEND和TURCV指令。在M0.3的上升沿,每0.5s TUSEND發(fā)送一次DB1中的數(shù)據(jù)。TURCV的接收使能輸入EN_R為TRUE,準(zhǔn)備好接收數(shù)據(jù),接收的數(shù)據(jù)用DB2保存。LEN為默認(rèn)值0時(shí),發(fā)送或接收用參數(shù)DATA定義的所有的數(shù)據(jù)。RCVD_LEN是實(shí)際接收的數(shù)據(jù)字節(jié)數(shù)。參數(shù)ADDR的實(shí)參為DB7。其他參數(shù)的意義與TSEND_C和TRCV_C的同名參數(shù)

15、相同。圖6-10 發(fā)送與接收數(shù)據(jù)的程序 2生成定義UDP連接參數(shù)的數(shù)據(jù)塊 圖6-10 發(fā) 4通信實(shí)驗(yàn) UDP通信不能仿真。用以太網(wǎng)電纜連接計(jì)算機(jī)和兩塊CPU的以太網(wǎng)接口,將用戶程序和組態(tài)信息分別下載到兩塊CPU,令它們處于運(yùn)行模式。 用雙方的監(jiān)控表分別監(jiān)控兩塊CPU的TCON和TDISCON指令的REQ輸入M10.0和M10.4,以及DB2中接收到的DBW0、DBW2和DBW198。 用DB7設(shè)置遠(yuǎn)程通信伙伴的IP地址和端口號(hào),運(yùn)行時(shí)用監(jiān)控表令雙方的TDISCON的REQ為0,在TCON的REQ(M10.0)的上升沿,建立起通信連接,開始傳輸數(shù)據(jù)??梢杂肨DISCON指令的請(qǐng)求信號(hào)M10.4的

16、上升沿?cái)嚅_連接,停止數(shù)據(jù)傳輸。 4通信實(shí)驗(yàn)6.2.3 S7-1200與S7-300/400之間的開放式用戶通信 1S7-1200與S7-300/400的以太網(wǎng)通信概述 S7-1200與S7-300/400集成的PN接口之間的開放式用戶通信可以使用ISO-on-TCP、TCP和UDP協(xié)議??梢杂肧TEP 7 V5.5對(duì)S7-300/400編程。本節(jié)主要介紹S7-300/400基于博途的開放式用戶通信。 2S7-300/400的組態(tài)與編程 項(xiàng)目“300_1200ISO_C”的PLC_1為CPU 314-2PN/DP,PLC_2為CPU 1215C。它們的IP地址分別為和。啟用雙方的MB0為時(shí)鐘存儲(chǔ)

17、器字節(jié)。為PLC_1生成DB1和DB2,在數(shù)據(jù)塊中分別生成有100個(gè)整數(shù)元素的數(shù)組。不啟用“優(yōu)化的塊訪問”屬性。在OB100中預(yù)置DB1中要發(fā)送的數(shù)據(jù)區(qū),將DB2中保存接收到的數(shù)據(jù)的數(shù)據(jù)區(qū)清0。6.2.3 S7-1200與S7-300/400之間的開放 在循環(huán)周期為0.5s的OB33中,用ADD指令將要發(fā)送的第一個(gè)字DB1.DBW0加1。在OB1中調(diào)用指令TCON建立連接,調(diào)用TDISCON斷開連接。DB3是組態(tài)連接時(shí)生成的連接描述數(shù)據(jù)塊。選中TCON,然后選中下面的巡視窗口的“屬性 組態(tài) 連接參數(shù)”。設(shè)置通信伙伴的“端點(diǎn)”為“未指定”,IP地址為。連接類型為TCP,由S7-300主動(dòng)建立連接

18、,本地端口號(hào)采用默認(rèn)的2000。 在OB1中調(diào)用TSEND,每0.5s發(fā)送一次DB1中的100個(gè)整數(shù);調(diào)用TRCV接收數(shù)據(jù),將接收到的100個(gè)整數(shù)保存到DB2。LEN是發(fā)送或接收的最大字節(jié)數(shù),RCVD_LEN是實(shí)際接收到的字節(jié)數(shù)。 3S7-1200的組態(tài)與編程 PLC_2的OB1中調(diào)用TSEND_C和TRCV_C的程序與圖6-5中的基本上相同。組態(tài)“連接參數(shù)”的對(duì)話框與圖6-12的結(jié)構(gòu)相同,只是“本地”與“伙伴”列的內(nèi)容相互交換,由伙伴主動(dòng)建立連接。 在循環(huán)周期為0.5s的OB33中,用ADD指令將要發(fā) 4通信實(shí)驗(yàn) 通信實(shí)驗(yàn)的方法和結(jié)果與項(xiàng)目“1200_1200 ISO_C”的基本上相同。用監(jiān)

19、控表監(jiān)控雙方數(shù)據(jù)的收、發(fā),和DB2中接收到的數(shù)據(jù)。 5使用TCP連接的通信 項(xiàng)目“300_1200ISO_C”與“300_1200TCP_C”基本上相同。將連接類型改為“TCP”,采用默認(rèn)的伙伴端口2000。 S7-1200和S7-300/400之間也可以使用UDP協(xié)議通信。 4通信實(shí)驗(yàn)6.3 S7協(xié)議通信6.3.1 S7-1200之間的單向S7協(xié)議通信 1S7協(xié)議 S7協(xié)議是專為西門子控制產(chǎn)品優(yōu)化設(shè)計(jì)的通信協(xié)議,它是面向連接的協(xié)議。連接是指兩個(gè)通信伙伴之間為了執(zhí)行通信服務(wù)建立的邏輯鏈路。S7連接是需要組態(tài)的靜態(tài)連接,靜態(tài)連接要占用CPU的連接資源。S7-1200 僅支持 S7 單向連接。 單

20、向連接中的客戶機(jī)(Client)是向服務(wù)器(Server)請(qǐng)求服務(wù)的設(shè)備,客戶機(jī)調(diào)用GET/PUT指令讀、寫服務(wù)器的存儲(chǔ)區(qū)。服務(wù)器是通信中的被動(dòng)方,用戶不用編寫服務(wù)器的S7通信程序,S7通信是由服務(wù)器的操作系統(tǒng)完成的。 2創(chuàng)建S7連接 在名為“1200_1200IE_S7”的項(xiàng)目中,PLC_1為客戶機(jī),PLC_2為服務(wù)器。采用默認(rèn)的IP地址和子網(wǎng)掩碼。組態(tài)時(shí)啟用MB0為時(shí)鐘存儲(chǔ)器字節(jié)。6.3 S7協(xié)議通信 打開網(wǎng)絡(luò)視圖,單擊按下“連接”按鈕,設(shè)置連接類型為S7連接。用“拖拽”的方法建立兩個(gè)CPU的PN接口之間的名為“S7_連接_1”的連接。 單擊網(wǎng)絡(luò)視圖右邊豎條上向左的小三角形按鈕,打開彈出的

21、視圖中的“連接”選項(xiàng)卡,可以看到生成的S7連接的詳細(xì)信息。連接ID為16#100。 選中“S7_連接_1”,再選中巡視窗口的“特殊連接屬性”,勾選復(fù)選框“主動(dòng)建立連接”。選中“地址詳細(xì)信息”,可以看到通信雙方默認(rèn)的TSAP(傳輸服務(wù)訪問點(diǎn))。 如果使用固件版本為V4.0及以上的CPU作為S7通信的服務(wù)器,需要選中服務(wù)器設(shè)備視圖中的CPU,再選中巡視窗口中的“屬性 常規(guī) 防護(hù)與安全 連接機(jī)制”,勾選“允許來自遠(yuǎn)程對(duì)象的PUT/GET通信訪問”復(fù)選框。 3編寫程序 為PLC_1生成DB1和DB2,為PLC_2生成DB3和DB4,在這些數(shù)據(jù)塊中生成由100個(gè)整數(shù)組成的數(shù)組。不要啟用數(shù)據(jù)塊屬性中的“優(yōu)

22、化的塊訪問”功能。 在時(shí)鐘脈沖M0.5的上升沿,GET指令每1s讀取PLC_2的DB3中的100個(gè)整數(shù),用本機(jī)的DB2保存。PUT指令每1s將本機(jī)的DB1中的100個(gè)整數(shù)寫入PLC_2的DB4??蛻魴C(jī)最多可以分別讀取和改寫服務(wù)器的4個(gè)數(shù)據(jù)區(qū)。 打開網(wǎng)絡(luò)視圖,單擊按下“連接”按鈕,設(shè)置連接類型為S PLC_2在S7通信中作服務(wù)器,不用為它編寫調(diào)用指令GET和PUT的程序。 在雙方的OB100中,預(yù)置DB1和DB3中要發(fā)送的100個(gè)字,將保存接收到的數(shù)據(jù)的DB2和DB4中的100個(gè)字清0。在雙方的OB1中,用周期為0.5s的時(shí)鐘脈沖M0.3的上升沿,將要發(fā)送的第1個(gè)字加1。 5仿真實(shí)驗(yàn) 選中項(xiàng)目樹

23、中的PLC_1,單擊工具欄上的“開始仿真”按鈕 ,將程序和組態(tài)數(shù)據(jù)下載到仿真PLC。選中PLC_2,單擊工具欄上的“開始仿真”按鈕,將程序和組態(tài)數(shù)據(jù)下載到仿真PLC,二者被切換到RUN模式后,用兩臺(tái)PLC的監(jiān)控表監(jiān)控接收到的數(shù)據(jù)。 PLC_2在S7通信中作服務(wù)器,不用為它編寫調(diào)用指令6.3.2 S7-1200與其他S7 PLC之間的S7通信 1S7-300作客戶機(jī)的S7通信 項(xiàng)目名稱為“300_1200IE_S7”,PLC_1為CPU 314-2PN/DP,PLC_2為CPU 1215C。啟用雙方的MB0為時(shí)鐘存儲(chǔ)器字節(jié)。 在網(wǎng)絡(luò)視圖中創(chuàng)建S7連接,PLC_1的通信伙伴為“未知”。選中S7連接

24、后選中巡視窗口中的“常規(guī)”,設(shè)置伙伴的IP地址為。連接的本地ID為1,為單向連接,由本地站點(diǎn)主動(dòng)建立連接。本地和伙伴的TSAP分別為10.02和03.00。 為PLC_1生成DB1和DB2,為PLC_2生成DB3和DB4,在這些數(shù)據(jù)塊中生成由100個(gè)整數(shù)組成的數(shù)組。不要啟用數(shù)據(jù)塊屬性中的“優(yōu)化的塊訪問”功能。PLC_1做S7通信的客戶機(jī)。在它的OB1中調(diào)用 GET和PUT指令。 通信的實(shí)驗(yàn)方法與例程“1200_1200IE_S7”相同。不能仿真。 6.3.2 S7-1200與其他S7 PLC之間的S7通信 2 S7-200 SMART作S7通信的服務(wù)器 例程“1200_SMART_S7”中,只

25、有做客戶機(jī)的CPU 1215C,啟用MB0為時(shí)鐘存儲(chǔ)器字節(jié)。 右鍵單擊網(wǎng)絡(luò)視圖中CPU的以太網(wǎng)接口,執(zhí)行“添加子網(wǎng)”命令,生成一個(gè)名為“PN/IE_1”的以太網(wǎng)。單擊工具欄上的“連接”,設(shè)置連接類型為S7連接。右鍵單擊CPU,執(zhí)行“添加新連接”命令。在“創(chuàng)建新連接”對(duì)話框中,采用默認(rèn)的連接類型“S7連接”,默認(rèn)的連接伙伴為左邊窗口的“未指定”。多選框“主動(dòng)建立連接”被自動(dòng)選中,由S7-1200建立連接。單擊“添加”和“關(guān)閉”按鈕,新連接被創(chuàng)建。連接的本地ID為16#100,將在編程中使用。 選中S7連接后選中巡視窗口中的“常規(guī)”,設(shè)置伙伴的IP地址為。連接的本地ID為1,為單向連接,由本地站點(diǎn)

26、主動(dòng)建立連接。本地和伙伴的TSAP分別為10.01和03.01。 為CPU 1215C生成DB3和DB4,在數(shù)據(jù)塊中生成由100個(gè)整數(shù)組成的數(shù)組。不要啟用“優(yōu)化的塊訪問”屬性。 2 S7-200 SMART作S7通信的服務(wù)器 在CPU 1215C的OB1中調(diào)用指令GET和PUT。S7-200 SMART的V區(qū)被映射為S7-1200的DB1,要讀取的S7-200 SMART的VB100VB299被映射為P#DB1.DBX100.0 INT 100,要寫入的S7-200 SMART的VB300VB499被映射為P#DB1.DBX300.0 INT 100。分別用DB3和DB4保存S7-1200要要

27、寫入服務(wù)器的數(shù)據(jù)和從服務(wù)器讀取到的數(shù)據(jù)。時(shí)鐘脈沖M0.5每秒鐘將發(fā)送的第一個(gè)字DB3.DBW0加1。在OB100中初始化DB3中的地址區(qū),將DB4中的各個(gè)字清0?!癝MART做服務(wù)器.smart”是S7-200 SMART的程序,以太網(wǎng)端口的IP地址為,在OB1中初始化V區(qū)中要發(fā)送的VB100VB299,將保存接收到的數(shù)據(jù)的VB300VB499清0,每秒鐘將要發(fā)送的第一個(gè)字VW100加1。用狀態(tài)圖表監(jiān)控接收到的數(shù)據(jù)。實(shí)驗(yàn)的方法與項(xiàng)目“1200_1200IE_S7”差不多。 在CPU 1215C的OB1中調(diào)用指令GET和PUT6.4 PROFIBUS-DP、PROFINET與AS-i網(wǎng)絡(luò)通信 P

28、ROFIBUS-DP與PROFINET屬于主從通信,只需要組態(tài),就能實(shí)現(xiàn)IO控制器和IO設(shè)備之間、DP主站和從站之間的周期性通信。6.4.1 S7-1200作IO控制器和DP主站 1PROFINET網(wǎng)絡(luò)的組態(tài) S7-1200最多可以帶16個(gè)IO設(shè)備,最多256個(gè)子模塊。新建項(xiàng)目“1200作IO控制器”中,打開網(wǎng)絡(luò)視圖,將ET 200S PN的接口模塊IM151-3 PN拖拽到網(wǎng)絡(luò)視圖,生成IO設(shè)備ET 200SP PN。將電源模塊、DI、2DQ和和2AQ模塊插入14號(hào)槽。采用默認(rèn)的IP地址,設(shè)備編號(hào)為1。 IO控制器通過設(shè)備名稱對(duì)IO設(shè)備尋址。選中IM151-3 PN的以太網(wǎng)接口,再選中巡視窗

29、口中的“以太網(wǎng)地址”,設(shè)置IO設(shè)備的名稱為et 200s pn 1。 右鍵單擊網(wǎng)絡(luò)視圖中CPU 的PN接口,執(zhí)行菜單命令“添加IO系統(tǒng)”。單擊ET 200S PN上藍(lán)色的“未分配”,將它分配給IO控制器。 在ET 200S PN的設(shè)備視圖中,打開它的設(shè)備概覽??梢钥吹椒峙浣o它的信號(hào)模塊的 I、Q地址。用這些地址直接讀、寫ET 200S的模塊。 用同樣的方法生成第二臺(tái)IO設(shè)備ET 200S PN,將它分配給IO控制器CPU 1215C。插入電源模塊和信號(hào)模塊。采用默認(rèn)的IP地址,設(shè)備編號(hào)為2。將它的設(shè)備名稱改為et 200s pn 2。6.4 PROFIBUS-DP、PROFINET與AS-i

30、2分配設(shè)備名稱 如果IO設(shè)備中的設(shè)備名稱與組態(tài)的設(shè)備名稱不一致,連接IO控制器和IO設(shè)備后,它們的故障LED亮。右鍵單擊網(wǎng)絡(luò)視圖中的1號(hào)設(shè)備,執(zhí)行快捷菜單命令“分配設(shè)備名稱”。單擊 “更新列表”按鈕,“網(wǎng)絡(luò)中的可訪問節(jié)點(diǎn)”列表中出現(xiàn)網(wǎng)絡(luò)上的兩臺(tái)ET 200S PN原有的設(shè)備名稱。用“PROFINET設(shè)備名稱”選擇框選中組態(tài)的1號(hào)設(shè)備的名稱。選中IP地址為的可訪問節(jié)點(diǎn),單擊“分配名稱”按鈕,組態(tài)的設(shè)備名稱被分配和下載給1號(hào)設(shè)備。分配好后,IO設(shè)備的狀態(tài)變?yōu)椤按_定”。兩臺(tái)IO設(shè)備的設(shè)備名稱都分配好以后, IO設(shè)備和IO控制器上的ERROR LED熄滅。 為了驗(yàn)證通信是否正常,在OB1中編寫簡(jiǎn)單的程

31、序,觀察是否能用IO設(shè)備的輸入點(diǎn)控制它的輸出點(diǎn)。 2分配設(shè)備名稱S7-1200-PLC編程及應(yīng)用-第4版課件第6章 3S7-1200做DP主站 S7-1200的DP主站模塊為CM 1243-5,傳輸速率960012Mbit/s。 新建項(xiàng)目“1200作DP主站”。PLC_1為CPU 1215C,打開它的設(shè)備視圖,將右邊的硬件目錄窗口的CM 1243-5主站模塊拖拽到CPU左側(cè)的101號(hào)槽。 DP主站地址為默認(rèn)值2。 打開網(wǎng)絡(luò)視圖,將右邊的硬件目錄窗口的ET 200S的IM151-1標(biāo)準(zhǔn)型接口模塊拖拽到網(wǎng)絡(luò)視圖。打開ET 200S的設(shè)備視圖,插入電源模塊和信號(hào)模塊。右鍵單擊DP主站模塊的DP接口,

32、執(zhí)行快捷菜單命令“添加主站系統(tǒng)”,生成DP主站系統(tǒng)。右鍵單擊ET 200S的DP接口,將它連接到DP主站系統(tǒng)。 用同樣的方法生另一個(gè)DP從站ET 200S,插入電源模塊和信號(hào)模塊。將該從站連接到DP主站系統(tǒng)。 選中主站和從站的DP接口,可用巡視窗口設(shè)置PROFIBUS地址。 打開ET 200S的設(shè)備視圖,在設(shè)備概覽中可以看到分配給它的模塊的S7-1200的I、Q地址。 3S7-1200做DP主站6.4.2 S7-1200作IO設(shè)備和DP智能從站 1生成IO控制器和IO設(shè)備 項(xiàng)目“1200做1500的IO設(shè)備”的PLC_1(CPU 1511-1 PN)為IO控制器。CPU 1215C是智能IO設(shè)

33、備。右鍵單擊網(wǎng)絡(luò)視圖中CPU 1511-1 PN的PN接口,執(zhí)行快捷菜單命令“添加IO系統(tǒng)”,生成PROFINET IO系統(tǒng)。 選中網(wǎng)絡(luò)視圖中PLC_2的PN接口,再選中巡視窗口中的的“屬性 常規(guī) 操作模式”,勾選復(fù)選框“IO設(shè)備”,CPU 1215C做智能IO設(shè)備。用“已分配的IO控制器”選擇框?qū)O設(shè)備分配給IO控制器PLC_1的PN接口。 2組態(tài)智能設(shè)備通信的傳輸區(qū) IO設(shè)備的傳輸區(qū)(I、Q地址區(qū))是IO控制器與智能IO設(shè)備的用戶程序之間的通信接口。IO控制器與智能IO設(shè)備之間通過傳輸區(qū)自動(dòng)地周期性地進(jìn)行數(shù)據(jù)交換。通信雙方用組態(tài)的Q區(qū)發(fā)送數(shù)據(jù),用組態(tài)的 I 區(qū)接收數(shù)據(jù)。 選中網(wǎng)絡(luò)視圖中P

34、LC_2的PN接口,然后選中巡視窗口的“屬性 常規(guī) 操作模式 智能設(shè)備通信”,雙擊右邊窗口“傳輸區(qū)”列表中的,在第一行生成“傳輸區(qū)_1”。6.4.2 S7-1200作IO設(shè)備和DP智能從站 選中左邊窗口中的“傳輸區(qū)_1”,在右邊窗口定義IO控制器(伙伴)發(fā)送數(shù)據(jù)的Q區(qū)和智能設(shè)備(本地)接收數(shù)據(jù)的 I 區(qū)。組態(tài)的傳輸區(qū)不能與硬件使用的地址區(qū)重疊。 用同樣的方法生成“傳輸區(qū)_2”,與傳輸區(qū)_1相比,只是交換了地址的I、Q類型,其他參數(shù)與圖6-29的相同。圖6-28 組態(tài)好的智能設(shè)備通信的傳輸區(qū) 選中左邊窗口中的“傳輸區(qū)_1”,在右邊窗口定義IO控 3編寫驗(yàn)證通信的程序與通信實(shí)驗(yàn) 在PLC_1的OB

35、100中,給QW130和QW158設(shè)置初始值16#1511,將IW130和IW158清0。在PLC_1的OB1中,用時(shí)鐘存儲(chǔ)器位M0.3的上升沿,每500ms將要發(fā)送的第一個(gè)字QW128加1。PLC_2與PLC_1的程序基本上相同,其區(qū)別在于給QW130和QW158設(shè)置的初始值為16#1215。 分別選中PLC_1和PLC_2,下載它們的組態(tài)信息和程序。做好在線操作的準(zhǔn)備工作后,右鍵單擊網(wǎng)絡(luò)視圖中的PN總線,執(zhí)行“分配設(shè)備名稱”命令,用出現(xiàn)的對(duì)話框分配IO設(shè)備的名稱。用以太網(wǎng)電纜連接主站和從站的PN接口,運(yùn)行時(shí)用監(jiān)控表監(jiān)控雙方接收到IW128、IW130和IW158,檢查通信是否正常。 4S7

36、-1200作DP智能從站 新建項(xiàng)目“1200做DP從站”,PLC_1是是配有DP主站模塊CM 1243-5的CPU 1214C,PLC_2是配有DP從站模塊CM 1242-5的CPU 1215C。在網(wǎng)絡(luò)視圖中用拖拽的方法連接主站和從站的DP接口,自動(dòng)生成DP主站系統(tǒng)。主站和從站的DP站地址分別為默認(rèn)的2和3。 選中從站模塊的DP接口,然后選中下面的巡視窗口的“屬性 常規(guī) 操作模式 智能從站通信”,生成主站和從站通信用的傳輸區(qū)的方法與生成IO設(shè)備的傳輸區(qū)基本上相同。驗(yàn)證通信的程序和通信實(shí)驗(yàn)也基本上相同。 AS-i是執(zhí)行器-傳感器接口的縮寫, AS-i通信用得很少。 3編寫驗(yàn)證通信的程序與通信實(shí)驗(yàn)

37、6.5 點(diǎn)對(duì)點(diǎn)通信 6.5.1 串行通信概述 1并行通信與串行通信 并行數(shù)據(jù)通信是以字節(jié)或字為單位的數(shù)據(jù)傳輸方式,需要多根數(shù)據(jù)線和控制線,在工業(yè)通信中很少使用。串行數(shù)據(jù)通信以二進(jìn)制的位為單位,每次只傳送一位。最少只需要兩根線就可以連接多臺(tái)設(shè)備,組成控制網(wǎng)絡(luò),可用于距離較遠(yuǎn)的場(chǎng)合。 2異步通信 接收方和發(fā)送方的傳輸速率的微小差異產(chǎn)生的積累誤差,可能使發(fā)送和接收的數(shù)據(jù)錯(cuò)位。異步通信采用字符同步方式,通信雙方需要對(duì)采用的信息格式和數(shù)據(jù)的傳輸速率作相同的約定。接收方將停止位和起始位之間的下降沿作為接收的起始點(diǎn),在每一位的中點(diǎn)接收信息。 奇偶校驗(yàn)用硬件保證發(fā)送方發(fā)送的每一個(gè)字符的數(shù)據(jù)位和奇偶校驗(yàn)位中“1

38、”的個(gè)數(shù)為偶數(shù)或奇數(shù)。接收方用硬件對(duì)接收到的每一個(gè)字符的奇偶性進(jìn)行校驗(yàn),可以檢驗(yàn)出傳送過程中的錯(cuò)誤??梢栽O(shè)置為無奇偶校驗(yàn)。 傳輸速率單位為bit/s或bps,即每秒傳送的二進(jìn)制位數(shù)。6.5 點(diǎn)對(duì)點(diǎn)通信 3單工與雙工通信 方式 單工通信只能沿單一方向傳輸數(shù)據(jù),雙工通信的每一個(gè)站既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。 全雙工方式通信的雙方都能在同一時(shí)刻接收和發(fā)送數(shù)據(jù)。 半雙工方式通信的雙方在同一時(shí)刻只能發(fā)送數(shù)據(jù)或只能接收數(shù)據(jù)。通信方向的切換過程需要一定的延遲時(shí)間。 4串行通信的接口標(biāo)準(zhǔn) (1)RS-232 RS-232的最大通信距離為15m,最高傳輸速率為20kbit/s,只能進(jìn)行一對(duì)一的通信。RS-2

39、32使用單端驅(qū)動(dòng)、單端接收電路,容易受到公共地線上的電位差和外部引入的干擾信號(hào)的影響。 3單工與雙工通信 方式 (2)RS-422 RS-422采用平衡驅(qū)動(dòng)、差分接收電路,因?yàn)榻邮掌魇遣罘州斎?,兩根線上的共模干擾信號(hào)互相抵消。在最大傳輸速率10Mbit/s時(shí),最大通信距離為12m。傳輸速率為100kbit/s時(shí),最大通信距離為1200m,一臺(tái)驅(qū)動(dòng)器可以連接10臺(tái)接收器。 (3)RS-485 RS-422是全雙工,用4根導(dǎo)線傳送數(shù)據(jù)。RS-485是RS-422的變形,為半雙工,使用雙絞線可以組成串行通信網(wǎng)絡(luò),構(gòu)成分布式系統(tǒng)。圖6-38 RS-422通信接線圖 圖6-39 RS-485網(wǎng)絡(luò) (2)

40、RS-422圖6-38 RS-422通信接線圖 6.5.2 點(diǎn)對(duì)點(diǎn)通信的組態(tài)與編程 1點(diǎn)對(duì)點(diǎn)通信模塊 S7-1200支持使用自由口協(xié)議的點(diǎn)對(duì)點(diǎn)通信。點(diǎn)對(duì)點(diǎn)通信使用RS-485 CM 1241模塊、RS-485 CB 1241通信板和RS-232 CM 1241模塊。它們支持ASCII、USS驅(qū)動(dòng)、Modbus RTU主站協(xié)議和Modbus RTU從站協(xié)議。 2組態(tài)通信模塊 生成一個(gè)名為“點(diǎn)對(duì)點(diǎn)通信”的新項(xiàng)目,PLC_1和PLC_2均為CPU 1214C。打開PLC_1的設(shè)備視圖,將RS-485模塊拖放到CPU左邊的101號(hào)槽。選中該模塊后,選中下面的巡視窗口的“屬性 常規(guī) RS-485接口 I

41、O-Link”,設(shè)置通信接口的參數(shù)。除了波特率其他參數(shù)均采用默認(rèn)值。 6.5.2 點(diǎn)對(duì)點(diǎn)通信的組態(tài)與編程 3設(shè)計(jì)用戶程序 PLC_1作主站,PLC_2作從站。在啟動(dòng)信號(hào)M2.0為1狀態(tài)時(shí),主站發(fā)送100個(gè)字的數(shù)據(jù),從站接收到后返回100個(gè)字的數(shù)據(jù)。以后重復(fù)上述過程。 輸入?yún)?shù)PORT為通信接口的標(biāo)識(shí)符,可以在通信接口的屬性對(duì)話框中找到它。BUFFER是發(fā)送緩沖區(qū)的起始地址,LENGTH是發(fā)送緩沖區(qū)的長(zhǎng)度。發(fā)送結(jié)束時(shí)輸出位DONE為1狀態(tài)。指令執(zhí)行出錯(cuò)時(shí)輸出位ERROR為1狀態(tài),錯(cuò)誤代碼在STATUS中。接收完成時(shí)Receive_P2P的輸出位NDR為1狀態(tài),LENGTH中是接收到的報(bào)文的字節(jié)數(shù)

42、。 在主站的DB1和DB2中分別生成有100個(gè)字元素的數(shù)組。在OB100中給要發(fā)送的數(shù)組元素賦初值,將保存接收到的數(shù)據(jù)的數(shù)組的所有元素清零。在OB1中用周期為0.5s的時(shí)鐘存儲(chǔ)器位M0.3的上升沿,將要發(fā)送的第一個(gè)字的值加1。 3設(shè)計(jì)用戶程序 下面是主站的輪詢順序: 1)在Send_P2P指令的REQ信號(hào)M2.0的上升沿,啟動(dòng)發(fā)送過程,發(fā)送DB1中的100個(gè)整數(shù)。在多個(gè)掃描周期內(nèi)繼續(xù)執(zhí)行該指令,完成報(bào)文的發(fā)送。 2)Send_P2P的輸出位DONE(M2.1)為1狀態(tài)時(shí),表示發(fā)送完成,將M2.4置位。用M2.4作為Receive_P2P的接收使能信號(hào)EN的實(shí)參,反復(fù)執(zhí)行Receive_P2P。

43、模塊接收到響應(yīng)報(bào)文后,Receive_P2P指令的輸出位NDR(M2.5)為1狀態(tài),表示已接收到新數(shù)據(jù)。 3)在M2.5的下降沿將M2.7置位,返回第1步,重新啟動(dòng)發(fā)送過程。同時(shí)將接收使能信號(hào)M2.4復(fù)位。在發(fā)送完成時(shí),將M2.7復(fù)位。 下面是主站的輪詢順序: 從站接收和發(fā)送數(shù)據(jù)的程序見圖6-42,其他程序與PLC_1的基本上相同。從站的輪詢順序如下: 1)在OB1中調(diào)用Receive_P2P指令,開始時(shí)它的使能信號(hào)EN為1狀態(tài)。 2)從站接收到請(qǐng)求報(bào)文后,Receive_P2P指令的輸出位NDR(M2.5)變?yōu)?狀態(tài)。在M2.5的下降沿將M2.4置位,啟動(dòng)Send_P2P指令,將DB1中的響

44、應(yīng)報(bào)文發(fā)送給主站。M2.4的常閉觸點(diǎn)斷開,Receive_P2P指令停止接收數(shù)據(jù)。 3)在響應(yīng)報(bào)文發(fā)送完成時(shí),Send_P2P的輸出位DONE(M2.1)變?yōu)?狀態(tài),將M2.4復(fù)位,停止發(fā)送報(bào)文。Receive_P2P的EN輸入變?yōu)?狀態(tài),又開始準(zhǔn)備接收主站發(fā)送的報(bào)文。圖6-42 從站的OB1中的程序 從站接收和發(fā)送數(shù)據(jù)的程序見圖6-42,其他程序與PL 4點(diǎn)對(duì)點(diǎn)通信的實(shí)驗(yàn) 用監(jiān)控表將M2.0置為1狀態(tài)后馬上置為0狀態(tài),啟動(dòng)主站向從站發(fā)送數(shù)據(jù)。觀察雙方接收到的第一個(gè)字DB2.DBW0的值是否不斷增大,DB2的DBW2和DBW198的值是否與對(duì)方在OB100中預(yù)置的值相同。 6.6 Modbus

45、 協(xié)議通信6.6.1 Modbus RTU主站的編程 1Modbus協(xié)議 Modbus串行鏈路協(xié)議是主-從協(xié)議,采用請(qǐng)求-響應(yīng)方式。有一個(gè)主站,1247個(gè)子站。RTU模式用循環(huán)冗余校驗(yàn)(CRC)進(jìn)行錯(cuò)誤檢查,報(bào)文最長(zhǎng)256B。使用通信模塊CM 1241(RS485)作主站時(shí),最多可以與32個(gè)從站通信。 2組態(tài)硬件 生成一個(gè)名為“Modbus RTU通信”的項(xiàng)目,主站PLC_1和從站PLC_2的CPU均為CPU 1214C。啟用它們默認(rèn)的時(shí)鐘存儲(chǔ)器字節(jié)MB0。 打開主站PLC_1的設(shè)備視圖,將CM 1241(RS485)模塊插入101號(hào)槽。選中該模塊以后,選中巡視窗口的“端口組態(tài)”,按圖6-40

46、設(shè)置通信接口的參數(shù)。 4點(diǎn)對(duì)點(diǎn)通信的實(shí)驗(yàn)6.6 Modbus 協(xié)議通信 3調(diào)用Modbus_Comm_Load指令 必須在OB100中,對(duì)每個(gè)通信模塊調(diào)用一次Modbus_Comm_Load指令,來組態(tài)它的通信接口。參數(shù)REQ為請(qǐng)求信號(hào), PORT是通信端口的硬件標(biāo)識(shí)符, BAUD(波特率)為38400bps,PARITY(奇偶校驗(yàn)位)為0,不使用奇偶校驗(yàn)校驗(yàn)。響應(yīng)超時(shí)時(shí)間RESP_TO為1000ms,MB_DB的實(shí)參是函數(shù)塊Modbus_Master的背景數(shù)據(jù)塊DB3中的靜態(tài)變量MB_DB,DONE為1表示指令執(zhí)行完且沒有出錯(cuò)。ERROR為1表示檢測(cè)到錯(cuò)誤,參數(shù)STATUS中是錯(cuò)誤代碼。圖6

47、-44 主站OB100中的程序 3調(diào)用Modbus_Comm_Load指令 圖6- 生成DB1和DB2,在它們中間分別生成有10個(gè)字元素的數(shù)組。在OB100中給要發(fā)送的DB1中的10個(gè)字賦初值16#1111,將保存接收到的數(shù)據(jù)的DB2中的10個(gè)字清零。在OB1中用周期為0.5s的時(shí)鐘存儲(chǔ)器位M0.3的上升沿,將要發(fā)送的第一個(gè)字加1。 4調(diào)用Modbus_Master指令 該指令用于Modbus主站與指定的從站進(jìn)行通信。主站可以訪問一個(gè)或多個(gè)從站。在OB1中兩次調(diào)用該指令,讀取1號(hào)從站中Modbus地址從40001開始的10個(gè)字中的數(shù)據(jù),保存到主站的DB2中;將主站DB1中的10個(gè)字的數(shù)據(jù)寫入從

48、站的Modbus地址從40011開始的10個(gè)字中。同一個(gè)Modbus端口的所有Modbus_Master指令必須使用同一個(gè)Modbus_Master背景數(shù)據(jù)塊。圖6-45 OB1中的Modbus_Master指令 生成DB1和DB2,在它們中間分別生成有10個(gè)字元素 5Modbus_Master指令的輸入、輸出參數(shù) 在輸入?yún)?shù)REQ的上升沿,請(qǐng)求向Modbus從站發(fā)送數(shù)據(jù)。MB_ADDR是從站地址(0247)。MODE用于選擇Modbus功能的類型(見表6-1)。DATA_ADDR是要訪問的從站中數(shù)據(jù)的Modbus起始地址。Modbus_Master指令根據(jù)這兩個(gè)參數(shù)確定Modbus報(bào)文中的功

49、能代碼。 DATA_LEN是要訪問的數(shù)據(jù)長(zhǎng)度(位數(shù)或字?jǐn)?shù))。DATA_PTR指針指向CPU的數(shù)據(jù)塊或位存儲(chǔ)器地址,從該位置讀取數(shù)據(jù)或向其寫入數(shù)據(jù)。DONE為1表示指令已完成對(duì)Modbus從站的操作。 BUSY為1表示正在處理任務(wù)。 ERROR為1狀態(tài)表示檢測(cè)到錯(cuò)誤,參數(shù)STATUS提供的錯(cuò)誤代碼有效。6.6.2 Modbus RTU從站的編程與通信實(shí)驗(yàn) 1組態(tài)從站的RS-485模塊 打開從站PLC_2的設(shè)備視圖,將RS-485模塊拖放到CPU左邊的101號(hào)槽。 2初始化程序 在OB100中調(diào)用Modbus_Comm_Load指令,來組態(tài)串行通信接口的參數(shù)。其輸入?yún)?shù)PORT的值為267,MB_

50、DB的實(shí)參為Modbus_Slave_DB.MB_DB。生成DB1,不能激活“僅符號(hào)地址”屬性。在它中間生成有20個(gè)字元素的數(shù)組DATA。在OB100中給數(shù)組DATA要發(fā)送的前10個(gè)元素賦初值16#1111,將保存接收到的數(shù)據(jù)的數(shù)組DATA的后10個(gè)元素清零。 5Modbus_Master指令的輸入、輸出參數(shù) 3調(diào)用Modbus_Slave指令 在OB1中調(diào)用Modbus_Slave指令,它用于為Modbus主站發(fā)出的請(qǐng)求服務(wù)。開機(jī)時(shí)執(zhí)行OB100中的Modbus_Comm_Load指令,通信接口被初始化。從站接收到Modbus RTU主站發(fā)送的請(qǐng)求時(shí),通過執(zhí)行Modbus_Slave指令來響

51、應(yīng)。 它的輸入/輸出參數(shù)的意義如下: MB_ADDR是從站地址(1247)。MB_HOLD_REG是指向Modbus保持寄存器數(shù)據(jù)塊的指針,其實(shí)參為DB1中的數(shù)組DATA,該數(shù)組用來保存供主站讀寫的數(shù)據(jù)值。DB1.DBW0對(duì)應(yīng)于Modbus地址40001。 NDR為1表示主站已寫入新數(shù)據(jù),DR為1表示主站已讀取數(shù)據(jù),ERROR為1狀態(tài)表示檢測(cè)到錯(cuò)誤,參數(shù)STATUS中的錯(cuò)誤代碼有效。在OB1中用周期為0.5s的時(shí)鐘存儲(chǔ)器位M0.3的上升沿,將要發(fā)送的第一個(gè)字“DATA1”的值加1。 3調(diào)用Modbus_Slave指令 4Modbus通信實(shí)驗(yàn) 硬件接線圖見下圖。用監(jiān)控表監(jiān)控主站的DB2的DBW0

52、、DBW2和DBW18,以及從站的DB1的DBW20、DBW22和DBW38。 用外接的小開關(guān)產(chǎn)生請(qǐng)求信號(hào)I0.0的脈沖,啟動(dòng)主站讀取從站的數(shù)據(jù)。用主站的監(jiān)控表觀察DB2中主站的DBW2和DBW18讀取到的數(shù)值是否與從站在OB100中預(yù)置的值相同。多次發(fā)出請(qǐng)求信號(hào),觀察DB2.DBW0的值是否增大。用外接的小開關(guān)產(chǎn)生請(qǐng)求信號(hào)I0.1的上升沿,啟動(dòng)主站改寫從站的數(shù)據(jù)。用從站的監(jiān)控表觀察DB1中改寫的結(jié)果。多次發(fā)出請(qǐng)求信號(hào),觀察DBW20的值是否增大。 4Modbus通信實(shí)驗(yàn)6.7 S7-1200與變頻器的USS協(xié)議通信 6.7.1 硬件接線與變頻器參數(shù)設(shè)置 1USS通信 本節(jié)介紹SINAMICS

53、 V20基本型變頻器與S7-1200的USS通信。 2硬件接線 S7-1200配備CM 1241 RS485通信模塊。每個(gè)CPU最多可以連接3個(gè)通信模塊,建立3個(gè)USS網(wǎng)絡(luò)。每個(gè)USS網(wǎng)絡(luò)最多支持16個(gè)變頻器。 接線時(shí)兩側(cè)的0V端子不能就近連接到保護(hù)接地網(wǎng)絡(luò),否則可能因?yàn)闊姾笩龤ㄐ旁O(shè)備。6.7 S7-1200與變頻器的USS協(xié)議通信 3設(shè)置電動(dòng)機(jī)參數(shù) 應(yīng)使用V20內(nèi)置的基本操作面板來設(shè)置變頻器有關(guān)的參數(shù)。 4設(shè)置連接宏、應(yīng)用宏和其他參數(shù) V20將變頻器常用的控制方式歸納為12種連接宏和5種應(yīng)用宏,連接宏類似于配方,給出了完整的解決方案。選中連接宏Cn010(USS控制),適當(dāng)修改Cn010

54、預(yù)設(shè)的USS通信的參數(shù)(見表6-2)。6.7.2 S7-1200的組態(tài)與編程 1硬件組態(tài) 生成一個(gè)名為“USS通信”的項(xiàng)目,打開設(shè)備視圖,將CM 1241(RS485)模塊拖放到CPU左邊的101號(hào)槽。選中該模塊,選中巡視窗口的“端口組態(tài)”,設(shè)置波特率為19.2kbit/s,偶校驗(yàn)。其余的參數(shù)采用默認(rèn)值。 2USS的程序結(jié)構(gòu) 每臺(tái)變頻器需要調(diào)用一條USS_Drive_Control指令,來監(jiān)控一臺(tái)變頻器。所有的USS_Drive_Control指令共同使用調(diào)用第一條USS_Drive_Control指令時(shí)生成的背景數(shù)據(jù)塊,每個(gè)USS網(wǎng)絡(luò)通過這個(gè)背景數(shù)據(jù)塊進(jìn)行管理。 每個(gè)RS-485通信端口使用

55、一條USS_Port_Scan指令,它通過RS-485通信端口控制CPU與所有變頻器的通信,它有自己的背景數(shù)據(jù)模塊。 3設(shè)置電動(dòng)機(jī)參數(shù) 3USS_Drive_Control指令 起動(dòng)位RUN為1時(shí),以設(shè)置的速度運(yùn)行。OFF2為0狀態(tài),電動(dòng)機(jī)自然停車。OFF3為0狀態(tài),通過制動(dòng)快速停車。F_ACK是故障確認(rèn)位。DIR是方向控制位,DRIVE是變頻器的USS地址(116)。PZD_LEN是過程數(shù)據(jù)PZD的字?jǐn)?shù)。SPEED_SP是百分?jǐn)?shù)表示的頻率設(shè)定值。NDR為1表示新的通信數(shù)據(jù)準(zhǔn)備好。ERROR為1表示發(fā)生錯(cuò)誤,參數(shù)STATUS有效,其它輸出在出錯(cuò)時(shí)均為零。STATUS是請(qǐng)求的狀態(tài)值。位變量RUN

56、_EN為1表示變頻器正在運(yùn)行。D_DIR用來指示變頻器旋轉(zhuǎn)的方向。 INHIBIT指示變頻器的禁止位的狀態(tài)。 FAULT為1表示變頻器有故障。 SPEED是百分?jǐn)?shù)表示的輸出頻率實(shí)際值。圖6-52 USS_Drive_Control指令 3USS_Drive_Control指令圖6-52 4USS_Port_Scan指令 為確保幀通信的響應(yīng)時(shí)間恒定,應(yīng)在循環(huán)中斷OB中調(diào)用該指令。在S7-1200的系統(tǒng)手冊(cè)13.4.2節(jié)“使用USS協(xié)議的要求”名為“計(jì)算時(shí)間要求”的表格中可以查到,波特率為19200 bit/s時(shí),調(diào)用USS_Port_Scan指令的時(shí)間間隔應(yīng)為68.2 205ms。所以在循環(huán)時(shí)間

57、為150ms的循環(huán)中斷組織塊OB33中調(diào)用該指令。 參數(shù)PORT為PtP通信端口的標(biāo)識(shí)符,雙字BAUD為波特率,單位為bit/s。USS_DB的實(shí)參為USS_Drive_Control的背景數(shù)據(jù)塊中的靜態(tài)變量USS_DB。指令執(zhí)行出錯(cuò)時(shí),ERROR為1狀態(tài),錯(cuò)誤代碼在STATUS中。6.7.3 S7-1200與變頻器通信的實(shí)驗(yàn) 1PLC監(jiān)控變頻器的實(shí)驗(yàn)圖6-53 USS_Port_Scan指令 4USS_Port_Scan指令圖6-53 US 按圖連接好變頻器與RS485模塊的接線。設(shè)置好變頻器的參數(shù),將程序下載到PLC,令PLC運(yùn)行在RUN模式,用以太網(wǎng)接口監(jiān)控PLC。接通變頻器的電源,用基

58、本操作面板顯示變頻器的頻率。 打開OB1,啟動(dòng)程序狀態(tài)監(jiān)控功能。用鼠標(biāo)右鍵菜單設(shè)置參數(shù)SPEED_SP的值。令OFF2和OFF3為1狀態(tài),接通I0.0對(duì)應(yīng)的小開關(guān),電動(dòng)機(jī)開始旋轉(zhuǎn)。頻率由0增大,輸出位RUN_EN為1。令I(lǐng)0.0為0狀態(tài),電動(dòng)機(jī)停車,RUN_EN變?yōu)?狀態(tài)。運(yùn)行時(shí)斷開I0.1對(duì)應(yīng)的小開關(guān),電動(dòng)機(jī)自然停車。運(yùn)行時(shí)斷開I0.2對(duì)應(yīng)的小開關(guān),電動(dòng)機(jī)快速停車。OFF2和OFF3發(fā)出的脈沖使電動(dòng)機(jī)停車后,需要將RUN由1變?yōu)?,然后再變?yōu)?狀態(tài),才能再次起動(dòng)電動(dòng)機(jī)運(yùn)行。 可以用方向控制位DIR改變電動(dòng)機(jī)旋轉(zhuǎn)的方向,輸出位D_DIR的值和輸出參數(shù)SPEED的符號(hào)隨之而變。改變MD10中速度

59、給定值的大小和符號(hào),也可以改變電動(dòng)機(jī)的速度值和方向。 2讀寫變頻器參數(shù)的指令 指令USS_Write_Param用于修改變頻器的參數(shù),USS_Read_Param用于從變頻器讀取數(shù)據(jù)。 按圖連接好變頻器與RS485模塊的接線。設(shè)置好變頻器6.8 控制系統(tǒng)的故障診斷6.8.1 與故障診斷有關(guān)的中斷組織塊和診斷指令 1診斷中斷組織塊OB82 具有診斷功能并啟用了診斷中斷的模塊,在故障出現(xiàn)或有組件要求維護(hù)(事件到達(dá)),故障消失或沒有組件需要維護(hù)(事件離去),操作系統(tǒng)將會(huì)分別調(diào)用一次OB82。 2機(jī)架故障組織塊OB86 如果檢測(cè)到DP主站系統(tǒng)或PROFINET IO系統(tǒng)發(fā)生故障、DP從站或IO設(shè)備發(fā)生

60、故障,故障出現(xiàn)和故障消失時(shí),操作系統(tǒng)將分別調(diào)用一次OB86。ROFINET智能設(shè)備的部分子模塊發(fā)生故障時(shí),操作系統(tǒng)也會(huì)調(diào)用OB86。 3拔出/插入組織塊OB83 如果拔出或插入已組態(tài)且未禁用的分布式I/O(PROFIBUS、PROFINET 和AS-i)模塊或子模塊,操作系統(tǒng)將調(diào)用拔出/插入中斷組織塊OB83。拔出或插入中央模塊將導(dǎo)致CPU進(jìn)入STOP模式。6.8 控制系統(tǒng)的故障診斷 4CPU對(duì)故障的反應(yīng) 出現(xiàn)與OB82、OB83和OB86有關(guān)的故障時(shí),無論是否已對(duì)上述OB編程,CPU都將保持在RUN模式??梢栽谏鲜鼋M織塊中,編寫記錄、處理和顯示故障的程序。中斷組織塊的局部變量提供了故障信息。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論