《S71200PLC應(yīng)用教程第2版》課件第6章_第1頁(yè)
《S71200PLC應(yīng)用教程第2版》課件第6章_第2頁(yè)
《S71200PLC應(yīng)用教程第2版》課件第6章_第3頁(yè)
《S71200PLC應(yīng)用教程第2版》課件第6章_第4頁(yè)
《S71200PLC應(yīng)用教程第2版》課件第6章_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(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.5 網(wǎng)絡(luò)通信基礎(chǔ)6.5.1 串行通信的基本概念 1串行通信與異步通信 串行數(shù)據(jù)通信是以二進(jìn)制的位為單位的數(shù)據(jù)傳輸方式,每次只傳送一位。串行通信最少只需要兩根線就可以連接多臺(tái)設(shè)備,組成控制網(wǎng)絡(luò),可用于距離較遠(yuǎn)的場(chǎng)合。 接收方和發(fā)送方的傳輸速率的微小差異產(chǎn)生的積累誤差,可能使發(fā)送和接收的數(shù)據(jù)錯(cuò)位。異步通信采用字符同步方式,通信雙方需要對(duì)采用的信息格式和數(shù)據(jù)的傳輸速率作相同的約定。接收方將停止位和起始位之間的下降沿作為接收的起始點(diǎn),在每一位的中點(diǎn)接收信息。 奇偶校驗(yàn)用硬件保證發(fā)送方發(fā)送的每一個(gè)字符的數(shù)據(jù)位和奇偶校驗(yàn)位中“1”的個(gè)數(shù)為偶數(shù)或奇數(shù)。接收方用硬件對(duì)接收到的每一個(gè)字符的奇偶性進(jìn)行校驗(yàn),可

2、以檢驗(yàn)出傳送過程中的錯(cuò)誤??梢栽O(shè)置為無奇偶校驗(yàn)。 傳輸速率單位為bit/s或bps,即每秒傳送的二進(jìn)制位數(shù)。第6章 S7-1200的通信與故障診斷6.5 網(wǎng)絡(luò)通信基礎(chǔ)第6章 S7-1200的通信與故障診 2串行通信的接口標(biāo)準(zhǔn) (1)RS-232 RS-232的最大通信距離為15m,最高傳輸速率為20kbit/s,只能進(jìn)行一對(duì)一的通信。 (2)RS-422 RS-422A采用平衡驅(qū)動(dòng)、差分接收電路,因?yàn)榻邮掌魇遣罘州斎?,兩根線上的共模干擾信號(hào)互相抵消。在最大傳輸速率10Mbit/s時(shí),最大通信距離為12m。傳輸速率為100kbit/s時(shí),通信距離為1200m,最多支持32個(gè)節(jié)點(diǎn)。RS-422是全

3、雙工,用4根導(dǎo)線傳送數(shù)據(jù),可以同時(shí)發(fā)送和接收。 (3)RS-485 RS-485是RS-422的變形,RS-485為半雙工,對(duì)外只有一對(duì)平衡差分信號(hào)線,通信的雙方在同一時(shí)刻只能發(fā)送數(shù)據(jù)或只能接收數(shù)據(jù)。使用RS-485通信接口和雙絞線可以組成串行通信網(wǎng)絡(luò)。 2串行通信的接口標(biāo)準(zhǔn)6.1.2 SIMATIC通信網(wǎng)絡(luò) 1. SIMATIC NET 西門子的工業(yè)自動(dòng)化通信網(wǎng)絡(luò)SIMATIC NET的頂層為工業(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ò)之間用鏈接器或有路由器

4、功能的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ù)器,PROFINET可以透明地集成現(xiàn)有的PROFIBUS設(shè)備。 PROFINET的實(shí)時(shí)(RT)通信功能典型的更新循環(huán)時(shí)間為110ms。同步實(shí)時(shí)(IRT)功能用于高性能的同步運(yùn)動(dòng)控制,響應(yīng)時(shí)間為0.251ms。IRT通信需要

5、特殊的交換機(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。6.1.2 SIMATIC通信網(wǎng)絡(luò) 3PROFIBUS PROFIBUS是開放式的現(xiàn)場(chǎng)總線,傳輸速率最高12Mbit/s,最多可以接127個(gè)從站。PROFIBUS提供了下列3種通信服務(wù): 1) PROFIBUS-DP (分布式外部設(shè)備)用于PLC與分布式I/O(例如ET 200)的通信。主站之間的通信為令牌方式,主站與從站之間為主從方式。 2)PROFIBUS-PA(過程自動(dòng)化)用于過程自

6、動(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。 3PROFIBUS 6.2 PROFINET IO系統(tǒng)組態(tài) PROFINET屬于主從通信,只需要組態(tài),就能實(shí)現(xiàn)IO控制器和IO設(shè)備之間的周期性通信。6.2.1 S7-1200做IO控制器 1PROFINET網(wǎng)絡(luò)的組態(tài) S7-1200最多可以帶16個(gè)IO設(shè)備,最多256個(gè)子模塊。在項(xiàng)目“1200做IO控制器”中

7、,打開網(wǎng)絡(luò)視圖,將ET 200S PN的接口模塊IM151-3 PN拖拽到網(wǎng)絡(luò)視圖,生成IO設(shè)備ET 200S PN。將電源模塊、DI、2DQ和和2AQ模塊插入14號(hào)槽。采用默認(rèn)的IP地址,設(shè)備編號(hào)為1。 IO控制器通過設(shè)備名稱對(duì)IO設(shè)備尋址。選中IM151-3 PN的以太網(wǎng)接口,再選中巡視窗口中的“以太網(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地址。用

8、這些地址直接讀、寫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.2 PROFINET IO系統(tǒng)組態(tài) 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)

9、的1號(hào)設(shè)備的名稱。選中IP地址為的可訪問節(jié)點(diǎn),單擊“分配名稱”按鈕,組態(tài)的設(shè)備名稱被分配和下載給1號(hào)設(shè)備。分配好后,IO設(shè)備和IO控制器上的ERROR LED熄滅。 為了驗(yàn)證通信是否正常,在OB1中編寫簡(jiǎn)單的程序,觀察是否能用IO設(shè)備的輸入點(diǎn)控制它的輸出點(diǎn)。 2分配設(shè)備名稱S7-1200-PLC應(yīng)用教程第2版課件第6章6.4.2 S7-1200做智能IO設(shè)備 1生成IO控制器和IO設(shè)備 項(xiàng)目“1200做1500的IO設(shè)備”的PLC_1(CPU 1511-1 PN)為IO控制器。CPU 1215C是智能IO設(shè)備。右鍵單擊網(wǎng)絡(luò)視圖中CPU 1511-1 PN的PN接口,執(zhí)行快捷菜單命令“添加IO系

10、統(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ò)視圖中PLC_2的PN接口,然后選中巡視窗口的“屬性 常規(guī) 操作模式 智能設(shè)備通信”,雙擊右邊窗

11、口“傳輸區(qū)”列表中的,在第一行生成“傳輸區(qū)_1”。6.4.2 S7-1200做智能IO設(shè)備 選中左邊窗口中的“傳輸區(qū)_1”,在右邊窗口定義IO控制器(伙伴)發(fā)送數(shù)據(jù)、智能設(shè)備(本地)接收數(shù)據(jù)的I、Q地址區(qū)。組態(tài)的傳輸區(qū)不能與硬件使用的地址區(qū)重疊。 用同樣的方法生成“傳輸區(qū)_2”,與傳輸區(qū)_1相比,只是交換了地址的I、Q類型,其他參數(shù)與圖6-9的相同。圖6-8 組態(tài)好的智能設(shè)備通信的傳輸區(qū) 選中左邊窗口中的“傳輸區(qū)_1”,在右邊窗口定義IO控 3編寫驗(yàn)證通信的程序與通信實(shí)驗(yàn) 在PLC_1的OB100中,給QW130和QW158設(shè)置初始值16#1511,將IW130和IW158清0。在PLC_1的

12、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,檢查通信是否正常。 3編寫驗(yàn)證通信的程序與通信實(shí)驗(yàn)6.3 基于以太網(wǎng)的開放式用戶通信 S7-1200/1500的CPU集成的PR

13、OFINET接口是10M/100Mbit/s的RJ45以太網(wǎng)口,可以使用標(biāo)準(zhǔn)的或交叉的以太網(wǎng)電纜。支持TCP、ISO-on-TCP、UDP和S7通信。 1開放式用戶通信 基于CPU集成的PN接口的開放式用戶通信用函數(shù)塊建立和斷開通信連接,發(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地址為和,子網(wǎng)掩碼為默認(rèn)的。啟用MB0做它們的時(shí)鐘存儲(chǔ)器字節(jié)。 3組態(tài)CPU之間的通信連接 打開網(wǎng)絡(luò)視圖,用“拖拽”的方法連接PLC_1和 PLC_2的以太網(wǎng)接口

14、,出現(xiàn)綠色的以太網(wǎng)線和名稱為“PN/IE_1”的連接。6.3 基于以太網(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的時(shí)鐘存儲(chǔ)器位M0.3的上升沿,將要發(fā)送的第一個(gè)字DB1.DBW0加1。圖6-11 數(shù)據(jù)塊SendData與OB100中的程序 4驗(yàn)證通信是

15、否實(shí)現(xiàn)的典型程序結(jié)構(gòu)圖6-11 數(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_2的接描述數(shù)據(jù)塊“PLC_2_Send_DB”(DB5)。 用單選框設(shè)置PLC_1主動(dòng)建立連接。采用默認(rèn)的傳輸服務(wù)訪問點(diǎn)TSAP 。雙方組

16、態(tài)“連接參數(shù)”的對(duì)話框的結(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ò),STATUS中是錯(cuò)誤的詳細(xì)信息。 指令TRCV_C的EN_R為1時(shí)準(zhǔn)備好接收數(shù)據(jù),CONT和EN_R均為1時(shí)連續(xù)接收數(shù)據(jù)。RCVD_LEN是實(shí)際接收的數(shù)

17、據(jù)的字節(jié)數(shù)。圖6-13 7TSEND_C和TRCV_C的參數(shù)圖6-13 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)動(dòng)態(tài)變化。 通信正常時(shí)令M10.1或M11.1為0,建立的連接被斷開,CPU將停止發(fā)送或接收數(shù)據(jù)。接收方的DB2.DBW0停止變化。 9仿真實(shí)驗(yàn) 選中PLC_1,單擊工具欄上的“開始仿真”按鈕 ,出現(xiàn)S7-1200的仿真軟件,

18、下載程序后仿真PLC進(jìn)入RUN模式。用同樣的方法將PLC_2的程序下載到另一臺(tái)仿真PLC。調(diào)試程序的方法與硬件PLC相同。 將項(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é)果相同。 10其他開放式用戶通信 S7-300/400/1200/1500可以使用TSEND/TRCV指令和TCP、ISO-on-TCP協(xié)議進(jìn)行通信,使用TUSEND和TURCV指令和UDP協(xié)議進(jìn)行通信,通信雙方在OB1中用指令TCON建立連接,用指令TDISCON斷開連接。S7-1200之間使用TSEND/TR

19、CV指令的通信可以仿真。 8硬件通信實(shí)驗(yàn)的典型方法 6.4 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 單向連接。 單向連接中的客戶機(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)目中,

20、PLC_1為客戶機(jī),PLC_2為服務(wù)器。采用默認(rèn)的IP地址和子網(wǎng)掩碼。組態(tài)時(shí)啟用MB0為時(shí)鐘存儲(chǔ)器字節(jié)。6.4 S7協(xié)議通信 打開網(wǎng)絡(luò)視圖,單擊按下“連接”按鈕,設(shè)置連接類型為S7連接。用“拖拽”的方法建立兩個(gè)CPU的PN接口之間的名為“S7_連接_1”的連接。 單擊網(wǎng)絡(luò)視圖右邊豎條上向左的小三角形按鈕,打開彈出的視圖中的“連接”選項(xiàng)卡,可以看到生成的S7連接的詳細(xì)信息。連接ID為16#100。 選中“S7_連接_1”,再選中巡視窗口的“特殊連接屬性”,勾選復(fù)選框“主動(dòng)建立連接”。選中“地址詳細(xì)信息”,可以看到通信雙方默認(rèn)的TSAP(傳輸服務(wù)訪問點(diǎn))。 使用固件版本為V4.0及以上的S7-12

21、00 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)化的塊訪問”功能。在時(shí)鐘脈沖M0.5的上升沿,GET指令每1s讀取PLC_2的DB3中的100個(gè)整數(shù),用本機(jī)的DB2保存。PUT指令每1s將本機(jī)的DB1中的100個(gè)整數(shù)寫入PLC_2的DB4。客戶機(jī)最多可以分別讀取和改寫服務(wù)器的4個(gè)數(shù)據(jù)區(qū)。 打開網(wǎng)絡(luò)視圖,單擊按下“連接”

22、按鈕,設(shè)置連接類型為S PLC_2在S7通信中作服務(wù)器,不用編寫調(diào)用指令GET和PUT的程序。 在雙方的OB100中,給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)目樹中的PLC_1,單擊工具欄上的“開始仿真”按鈕,將程序和組態(tài)數(shù)據(jù)下載到仿真PLC。選中PLC_2,單擊工具欄上的“開始仿真”按鈕 ,將程序和組態(tài)數(shù)據(jù)下載到仿真PLC,二者被切換到RUN模式后,用兩臺(tái)PLC的監(jiān)控表監(jiān)控接收到的數(shù)據(jù)。 S7-1200集成的以太網(wǎng)接口可以與S7-

23、300/400/1500和S7-200 SMART集成的以太網(wǎng)接口進(jìn)行單向S7通信,S7-1200在通信中可以做客戶機(jī)和服務(wù)器。圖6-17 客戶端讀寫服務(wù)器數(shù)據(jù)的程序 PLC_2在S7通信中作服務(wù)器,不用編寫調(diào)用指令GE6.5 Modbus RTU協(xié)議通信6.5.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通信

24、”的項(xiàng)目,主站PLC_1和從站PLC_2的CPU均為CPU 1214C。啟用它們默認(rèn)的時(shí)鐘存儲(chǔ)器字節(jié)MB0。 打開主站PLC_1的設(shè)備視圖,將CM 1241(RS485)模塊拖放到101號(hào)槽。選中它的RS-485接口,再選中巡視窗口的“屬性 常規(guī) IO-Link”,按圖6-19設(shè)置通信接口的參數(shù)。6.5 Modbus RTU協(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)位

25、)為0,不使用奇偶校驗(yàn)校驗(yàn)。響應(yīng)超時(shí)時(shí)間RESP_TO為1000ms,MB_DB的實(shí)參是函數(shù)塊Modbus_Master的背景數(shù)據(jù)塊中的靜態(tài)變量MB_DB,DONE為1表示指令執(zhí)行完且沒有出錯(cuò)。ERROR為1表示檢測(cè)到錯(cuò)誤,參數(shù)STATUS中是錯(cuò)誤代碼。圖6-20 主站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)用

26、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ù)寫入從站的Modbus地址從40011開始的10個(gè)字中。同一個(gè)Modbus端口的所有Modbus_Master指令必須使用同一個(gè)Modbus_Master背景數(shù)據(jù)塊。圖6-21 OB1中的Modbus_Master指令 生成DB1和DB2,在它們中間分別生成有10個(gè)字元素 5Modbus_Master指令的輸入、輸出參數(shù) 在輸入?yún)?shù)REQ的上升沿

27、,請(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)文中的功能代碼(見表6-1)。 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.5.2 Modbus

28、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,參數(shù)MB_DB的實(shí)參為“Modbus_Slave_DB”. MB_DB。生成DB1,不要激活“僅符號(hào)地址”屬性。在它中間生成有20個(gè)字元素的數(shù)組DATA。 在OB100中給數(shù)組DATA要發(fā)送的前10個(gè)元素賦初值16#2222,將保存接收到的數(shù)據(jù)的數(shù)組DATA的后10個(gè)元素清零。 5Modbus_Master指令的輸入、輸出參數(shù) 3Mod

29、bus_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指令來響應(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ù),ERR

30、OR為1狀態(tài)表示檢測(cè)到錯(cuò)誤,參數(shù)STATUS中的錯(cuò)誤代碼有效。在OB1中用周期為0.5s的時(shí)鐘存儲(chǔ)器位M0.3的上升沿,將要發(fā)送的第一個(gè)字“DATA1”的值加1。圖6-22 Modbus_Slave指令 3Modbus_Slave指令圖6-22 Mod 4Modbus通信實(shí)驗(yàn) 硬件接線圖見圖6-23。用監(jiān)控表監(jiān)控主站的DB2的DBW0、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)

31、,觀察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.6 故障診斷6.6.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ā)生故障,故障出現(xiàn)和故障消失時(shí),操作系統(tǒng)將分別調(diào)用一

32、次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.6 故障診斷 4CPU對(duì)故障的反應(yīng) 出現(xiàn)與OB82、OB83和OB86有關(guān)的故障時(shí),無論是否已對(duì)上述OB編程,CPU都將保持在RUN模式??梢栽谏鲜鼋M織塊中,編寫記錄、處理和顯示故障的程序。中斷組織塊的局部變量提供了故障信息。 在設(shè)備運(yùn)行過程中,如果出現(xiàn)CPU與分布式I/O之間的通信

33、短暫中斷(俗稱“閃斷”),網(wǎng)絡(luò)控制系統(tǒng)不會(huì)停機(jī)??梢栽趯?duì)應(yīng)的中斷組織塊中加入STP指令,使CPU進(jìn)入STOP模式。 6.6.2 S7-1200的故障診斷 1打開在線和診斷視圖 打開例程“電動(dòng)機(jī)控制”的設(shè)備視圖,組態(tài)一個(gè)并不存在的8DI模塊。生成診斷中斷組織塊OB82,在其中編寫將MW20加1的程序。將組態(tài)信息下載到CPU,切換到RUN模式,ERROR LED閃爍。 打開“在線和診斷”視圖,切換到在線模式。選中工作區(qū)左邊窗口的“診斷狀態(tài)”,右邊窗口顯示故障信息。 6.6.2 S7-1200的故障診斷 1打開在線和診斷視圖 4CPU對(duì)故障的反應(yīng) 打開例程“電動(dòng)機(jī)控制”的設(shè)備視圖,組態(tài)一個(gè)并不存在的

34、8DI模塊。生成診斷中斷組織塊OB82,在其中編寫將MW20加1的程序。將組態(tài)信息下載到CPU,切換到RUN模式,ERROR LED閃爍。 打開“在線和診斷”視圖,切換到在線模式。選中工作區(qū)左邊窗口的“診斷狀態(tài)”,右邊窗口顯示故障信息。 2用診斷緩沖區(qū)診斷故障 打開診斷緩沖區(qū),緩沖區(qū)中的條目按事件出現(xiàn)的順序排列,最上面的是最后發(fā)生的事件。啟動(dòng)時(shí)CPU找不到8DI模塊,因此出現(xiàn)事件“硬件組件已移除或缺失”和“過程映像更新過程中發(fā)生新的I/O訪問錯(cuò)誤”。 令CPU模擬量輸入通道0的輸入電壓大于上限10V,出現(xiàn)事件 “超出上限”,事件右邊的圖標(biāo)表示事件當(dāng)前的狀態(tài)為故障和“到達(dá)事件”。令通道0的輸入電

35、壓小于上限10V,出現(xiàn)事件“超出上限”。該事件右邊的圖標(biāo) 表示狀態(tài)正常和“離去事件”。選中某個(gè)事件,下面是它的詳細(xì)信息。由監(jiān)控表1可知,在事件“超出上限”出現(xiàn)和消失時(shí),分別調(diào)用了一次OB82,MW20分別加1。 單擊“在編輯器中打開”按鈕,將打開與選中的事件有關(guān)的模塊的設(shè)備視圖或引起錯(cuò)誤的指令所在的離線的塊。單擊“另存為”按鈕,診斷緩沖區(qū)各事件的詳細(xì)信息被保存為文本文件。 打開例程“電動(dòng)機(jī)控制”的設(shè)備視圖,組態(tài)一個(gè)并不存在的圖6-24 “在線和診斷”視圖圖6-24 “在線和診斷”視圖 3用設(shè)備視圖診斷故障 打開設(shè)備視圖,切換到在線模式。CPU上面綠色背景的圖標(biāo)表示CPU處于RUN模式,橘紅色背

36、景的圖標(biāo)表示CPU的下位模塊有故障。8DI模塊上的圖標(biāo)表示不能訪問該模塊。設(shè)備概覽中AI 2_1左邊的圖標(biāo)表示該組件有故障。 4在線和診斷的其他功能 “在線和診斷”視圖工作區(qū)右邊的任務(wù)卡顯示“在線工具”?!癈PU操作面板”顯示出CPU上3個(gè)LED的狀態(tài)。用該面板中的按鈕可以切換CPU的操作模式。 “MRES”是存儲(chǔ)器復(fù)位按鈕。 “周期時(shí)間”窗格顯示了CPU的掃描循環(huán)時(shí)間?!按鎯?chǔ)器”窗格顯示未使用的各種存儲(chǔ)器所占的百分比。 選中工作區(qū)左邊窗口的“設(shè)置時(shí)間”,可以在右邊窗口設(shè)置PLC的實(shí)時(shí)時(shí)鐘。6.6.3 網(wǎng)絡(luò)控制系統(tǒng)的故障診斷 1設(shè)置模塊的診斷功能 打開項(xiàng)目“1200作IO控制器”,啟用ET20

37、0S PN各模塊的診斷功能。出現(xiàn)診斷故障時(shí),CPU將會(huì)調(diào)用OB82。 3用設(shè)備視圖診斷故障 2程序設(shè)計(jì) 生成OB82、OB83和OB86。在上述OB中編程,用INC指令分別將MW20MW24加1。在監(jiān)控表中監(jiān)控MW20MW24。用以太網(wǎng)電纜和交換機(jī)(或路由器)連接計(jì)算機(jī)、CPU和兩臺(tái)IO設(shè)備的以太網(wǎng)接口。圖6-29圖6-34來源于TIA博途V13 SP1。 3用診斷緩沖區(qū)診斷故障 在OB1中編寫程序,用I2.0的常開觸點(diǎn)控制1號(hào)IO設(shè)備的DQ模塊的Q2.0。在Q2.0外部負(fù)載通電時(shí)用串接的開關(guān)將它斷路,出現(xiàn)診斷緩沖區(qū)中的到達(dá)事件“斷路”。監(jiān)控表中MW20的值加 1,表示調(diào)用了一次OB82。接通Q2.0的外部負(fù)載,出現(xiàn)診斷緩沖區(qū)中離去事件“斷路”,CPU又調(diào)用一次OB82。 事件列表中的6號(hào)和5號(hào)事件分別是移除和插入2號(hào)IO設(shè)備的DI模塊,這兩個(gè)事件出現(xiàn)時(shí)分別調(diào)用一次OB83。 用監(jiān)控表給地址為QW68的1號(hào)IO設(shè)備電壓輸出的AQ模塊的0號(hào)通道寫入一個(gè)數(shù)值,用該通道輸出端外接的開關(guān)將它短路,事件列表中的8號(hào)和7號(hào)事件分別是AQ模塊輸出對(duì)地短路和恢復(fù)正常,這兩個(gè)事件出現(xiàn)時(shí)分別調(diào)用一次OB82。 2程序設(shè)計(jì) 圖6-29 “在線和診斷”視圖圖6-29 “在線和診斷”視圖 拔掉1號(hào)IO設(shè)備的以太網(wǎng)電纜,圖6-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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)論