3.第3部分:SIMATIC PLC之間以及PLC與從站通訊任務(wù)_第1頁
3.第3部分:SIMATIC PLC之間以及PLC與從站通訊任務(wù)_第2頁
3.第3部分:SIMATIC PLC之間以及PLC與從站通訊任務(wù)_第3頁
3.第3部分:SIMATIC PLC之間以及PLC與從站通訊任務(wù)_第4頁
3.第3部分:SIMATIC PLC之間以及PLC與從站通訊任務(wù)_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、date: 2021-5-13 第第3部分部分: simatic plc之間以及之間以及plc與從站通訊任務(wù)與從站通訊任務(wù) 學(xué)習(xí)第學(xué)習(xí)第3部分之后,學(xué)員將部分之后,學(xué)員將 . . 了解simatic 通訊網(wǎng)絡(luò)與服務(wù) . 熟悉plc 與plc之間mpi的全局?jǐn)?shù)據(jù)通訊 . 掌握使用 sfc 進(jìn)行 s7 基本通信 . 掌握使用 sfb 進(jìn)行 s7 擴(kuò)展通信 . 了解主站系統(tǒng)的fdl通訊組態(tài) . 掌握profibus-dp主從通訊 . 了解西門子驅(qū)動通訊ppo的概念 . 掌握通過profibus與驅(qū)動裝置的通訊 date: 2021-5-13 自動化系統(tǒng)網(wǎng)絡(luò)體系自動化系統(tǒng)網(wǎng)絡(luò)體系 執(zhí)行器執(zhí)行器-傳感傳

2、感 器級器級 設(shè)備級設(shè)備級 車間級車間級 工廠級工廠級 as-i date: 2021-5-13 程序控制 使用mpi、 k-bus、 profibus 或工業(yè)以太網(wǎng) 程序控制 使用mpi 或 k-bus 面向面向 s7-300/400 的的 s7 通信服務(wù)通信服務(wù) 全局?jǐn)?shù)據(jù)全局?jǐn)?shù)據(jù) 無需組態(tài)連接的基本通信無需組態(tài)連接的基本通信使用組態(tài)連接的擴(kuò)展通信使用組態(tài)連接的擴(kuò)展通信 cpu 的的 操作系統(tǒng)操作系統(tǒng) cpu 的的 操作系統(tǒng)操作系統(tǒng) 循環(huán)和/或程序控制 使用 mpi 或者 k-bus sfcsfcsfbsfb pg 和和 hmi 的功能的功能 cpu 的的 操作系統(tǒng)操作系統(tǒng) 由操作系統(tǒng)控制

3、使用 mpi、k-bus、profibus 和 工業(yè)以太網(wǎng) p g 720 date: 2021-5-13 使用以太網(wǎng)的使用以太網(wǎng)的 s7 連接連接 p g 720 使用使用 mpi 的的 pg 連接連接 s7-400 s7-300 使用使用 profibus 的的 op 連接連接 通信各方之間的連接通信各方之間的連接 cp cpu 1 cp profibus industrial ethernet 工業(yè)以太網(wǎng) mpi profibus 工業(yè)以太網(wǎng)工業(yè)以太網(wǎng) cp cpu 2 使用使用 mpi 的的 s7 連接連接 使用使用 profibus 的的 s7 連接連接 date: 2021-5-1

4、3 全局?jǐn)?shù)據(jù):概述全局?jǐn)?shù)據(jù):概述 全局?jǐn)?shù)據(jù)全局?jǐn)?shù)據(jù) cpu 1 mw 10 cpu 2 mw 20 cpu 3 mw 30 硬件成本低; 使用簡單,不需要編程; s7-400可以實(shí)現(xiàn)事件驅(qū)動的全局?jǐn)?shù)據(jù)通訊; 傳輸數(shù)據(jù)量少,22b/54b; 廣播方式傳輸數(shù)據(jù)。 date: 2021-5-13 2 全局?jǐn)?shù)據(jù)循環(huán)全局?jǐn)?shù)據(jù)循環(huán) cpu1cpu2cpu3cpu4cpu5 全局?jǐn)?shù)據(jù)循環(huán)全局?jǐn)?shù)據(jù)循環(huán) 1 3 4 5 6 s=發(fā)送方;r=接收方;gd x.y=全局?jǐn)?shù)據(jù)循環(huán) x 中的全局?jǐn)?shù)據(jù)包 y s gd 1.1 r gd 1.2 r gd 1.1 s gd 1.2 r gd 2.1s gd 2.1r gd

5、2.1r gd 2.1r gd 2.1 s gd 3.1 r gd 3.2 r gd 3.1 s gd 3.2 r gd 4.1 s gd 4.1 r gd 4.1 s gd 5.1r gd 5.1r gd 5.1 r gd 6.1s gd 6.1r gd 6.1 date: 2021-5-13 全局?jǐn)?shù)據(jù):組態(tài)過程全局?jǐn)?shù)據(jù):組態(tài)過程 q在項(xiàng)目內(nèi)創(chuàng)建硬件站點(diǎn) 使用simatic manager q創(chuàng)建和下載每個 cpu 的組態(tài)數(shù)據(jù) (mpi 地址) 使用“hw config” 工具 q組態(tài)全局?jǐn)?shù)據(jù)表 使用“defining global data” 工具 date: 2021-5-13 全局?jǐn)?shù)據(jù)

6、:配置硬件全局?jǐn)?shù)據(jù):配置硬件 設(shè)置設(shè)置 mpi 地址地址 cpu 的邏輯網(wǎng)絡(luò)的邏輯網(wǎng)絡(luò) 創(chuàng)建站點(diǎn)創(chuàng)建站點(diǎn) 可訪問節(jié)點(diǎn)可訪問節(jié)點(diǎn) date: 2021-5-13 編輯全局?jǐn)?shù)據(jù)表編輯全局?jǐn)?shù)據(jù)表 打開全局?jǐn)?shù)據(jù)表打開全局?jǐn)?shù)據(jù)表 選擇選擇 cpu 復(fù)制因子復(fù)制因子 定義全局?jǐn)?shù)據(jù)定義全局?jǐn)?shù)據(jù) date: 2021-5-13 設(shè)置掃描速率設(shè)置掃描速率 掃描速率的單位是掃描速率的單位是cpu的掃描周期,的掃描周期,s7-300默認(rèn)為默認(rèn)為8,s7-400默認(rèn)為默認(rèn)為22,可以修改,可以修改1-255;如果;如果s7- 400掃描速率為掃描速率為0,表示事件驅(qū)動的,表示事件驅(qū)動的gd數(shù)據(jù)傳輸。數(shù)據(jù)傳輸。 發(fā)送器

7、的掃描速率發(fā)送器的掃描速率22,表示每,表示每22個掃描周期發(fā)送一次個掃描周期發(fā)送一次gd包,接收器的掃描速率包,接收器的掃描速率8,表示每,表示每8個掃描個掃描 周期接收一次周期接收一次gd包。包。 一般采用默認(rèn)速率,以免網(wǎng)絡(luò)通訊超載。一般采用默認(rèn)速率,以免網(wǎng)絡(luò)通訊超載。 date: 2021-5-13 gd狀態(tài)雙字狀態(tài)雙字 給每個數(shù)據(jù)包指定一個用于狀態(tài)雙字的地址。給每個數(shù)據(jù)包指定一個用于狀態(tài)雙字的地址。 狀態(tài)雙字使用戶程序能及時了解通訊的有效性狀態(tài)雙字使用戶程序能及時了解通訊的有效性 和及時性,增強(qiáng)了系統(tǒng)的故障診斷能力。和及時性,增強(qiáng)了系統(tǒng)的故障診斷能力。 狀態(tài)字位 對應(yīng)的錯誤狀態(tài) 狀態(tài)字

8、位 對應(yīng)的錯誤狀態(tài) 第1位發(fā)送區(qū)長度錯誤 第7位發(fā)送區(qū)與接收區(qū)數(shù)據(jù)對象長度不一致 第2位發(fā)送區(qū)數(shù)據(jù)塊不存在 第8位 接收區(qū)長度錯誤 第4位全局?jǐn)?shù)據(jù)塊丟失 第9位接收區(qū)數(shù)據(jù)塊不存在 第5位全局?jǐn)?shù)據(jù)塊語法錯誤 第12位發(fā)送方重新啟動 第6位全局?jǐn)?shù)據(jù)塊數(shù)據(jù)對象丟失 第32位接收區(qū)接收到新數(shù)據(jù) date: 2021-5-13 編譯全局?jǐn)?shù)據(jù)表(編譯全局?jǐn)?shù)據(jù)表(1) 參與收發(fā)全局?jǐn)?shù)據(jù)的cpu組成了全局?jǐn)?shù)據(jù)環(huán)(gd circle),cpu可以向同一個環(huán)內(nèi)的其他cpu發(fā)送或 接收數(shù)據(jù),在一個mpi網(wǎng)絡(luò)中,可以建立16個全局?jǐn)?shù)據(jù)環(huán)(gd circle),每個環(huán)最多15個cpu參與。 具有相同發(fā)送站和接收站的全局

9、數(shù)據(jù)字節(jié)數(shù)值和稱之為一個全局?jǐn)?shù)據(jù)包。 gd 1.1.1: 1號gd環(huán)的1號gd包中的1號數(shù)據(jù)。 date: 2021-5-13 編譯全局?jǐn)?shù)據(jù)表(編譯全局?jǐn)?shù)據(jù)表(2) date: 2021-5-13 下載下載 gd 組態(tài)數(shù)據(jù)組態(tài)數(shù)據(jù) 下載下載 gd 組態(tài)數(shù)據(jù)組態(tài)數(shù)據(jù) gd_mpi_1 例程例程 date: 2021-5-13 事件驅(qū)動的事件驅(qū)動的gd數(shù)據(jù)通訊數(shù)據(jù)通訊 事件觸發(fā)的數(shù)據(jù)傳送:如果需要控制數(shù)據(jù)的發(fā)送與接收,比如在某一事件或某一時刻,接收和發(fā)送所需 要的數(shù)據(jù),這時將用到事件觸發(fā)的數(shù)據(jù)傳送方式。 這種通信方式是通過調(diào)用cpu的系統(tǒng)功能sfc60(gd_snd)和sfc61(gd_rcv)來

10、完成的,而且 只支持s7-400的cpu,并且相應(yīng)設(shè)置cpu的sr(掃描頻率)為0。 系統(tǒng)功能sfc60(gd_snd)和 sfc61(gd_rcv)可以在用戶程序 中任何一點(diǎn)被調(diào)用,在gd數(shù)據(jù)表中的 掃描速率不受系統(tǒng)功能sfc60( gd_snd)和sfc61(gd_rcv)的 影響。系統(tǒng)功能sfc60(gd_snd) 和sfc61(gd_rcv)可能被更高優(yōu) 先級的程序塊中斷,為了保持gd數(shù)據(jù) 的連續(xù)性,在調(diào)用sfc60之前,調(diào)用 sfc39 “dis_irt”或sfc41 “dis_airt”來禁止或延遲更高優(yōu)先級的 中斷和異步錯誤。執(zhí)行完sfc60后,調(diào) 用sfc 40 “en_irt

11、”或sfc 42 “en_airt”允許更高優(yōu)先級的中斷和異 步錯誤。 date: 2021-5-13 事件驅(qū)動的事件驅(qū)動的gd數(shù)據(jù)通訊的編程數(shù)據(jù)通訊的編程 站點(diǎn)站點(diǎn)3 站點(diǎn)站點(diǎn)2 gd環(huán)編號環(huán)編號 1 gd包編號包編號 1 i 0.0上升沿才發(fā)送接收數(shù)據(jù)。上升沿才發(fā)送接收數(shù)據(jù)。 mpi_gd_b例程例程 date: 2021-5-13 全局?jǐn)?shù)據(jù)通訊的練習(xí)全局?jǐn)?shù)據(jù)通訊的練習(xí) 組態(tài)組態(tài)3個站之間的全局?jǐn)?shù)據(jù)通訊:個站之間的全局?jǐn)?shù)據(jù)通訊:cpu400/ cpu300/cpu300 (2/3/4) 要求:站點(diǎn)要求:站點(diǎn)3的的id0,傳輸給站點(diǎn),傳輸給站點(diǎn)4的的qd4;站點(diǎn);站點(diǎn)2的的qd0傳給站點(diǎn)傳給

12、站點(diǎn)4的的id0;站點(diǎn);站點(diǎn)3的的db2.dbb0開始的開始的10 個字節(jié)傳給站點(diǎn)個字節(jié)傳給站點(diǎn)4的的db1,從,從dbb0開始存放數(shù)據(jù);站點(diǎn)開始存放數(shù)據(jù);站點(diǎn)3的的mb10開始的開始的10個字節(jié)傳給站點(diǎn)個字節(jié)傳給站點(diǎn)4的的db1,從,從 dbb10開始存放數(shù)據(jù);站點(diǎn)開始存放數(shù)據(jù);站點(diǎn)3的數(shù)據(jù)的數(shù)據(jù)db1.dbb0開始開始22個字節(jié),傳送給站點(diǎn)個字節(jié),傳送給站點(diǎn)2,和站點(diǎn),和站點(diǎn)4的的db2,從,從 dbb0開始存放數(shù)據(jù)。開始存放數(shù)據(jù)。 建立硬件組態(tài),建立硬件組態(tài),gd組態(tài)表。組態(tài)表。 date: 2021-5-13 使用使用 sfc 進(jìn)行進(jìn)行 s7 基本通信:概述基本通信:概述 l使用使用

13、mpi 子網(wǎng)內(nèi)進(jìn)行數(shù)據(jù)交換子網(wǎng)內(nèi)進(jìn)行數(shù)據(jù)交換 l與與 sfb 通信相比,無需組態(tài)連接通信相比,無需組態(tài)連接 l動態(tài)建立和斷開與對方的連接動態(tài)建立和斷開與對方的連接 l可傳輸多達(dá)可傳輸多達(dá) 76 個數(shù)據(jù)字節(jié)個數(shù)據(jù)字節(jié) l可以用于所有的可以用于所有的 s7-300/400 cpu l在在 s7-200 中可通過中可通過 mpi 接口讀寫變量接口讀寫變量 (x_get、x_put) l也可在另一個也可在另一個 s7 項(xiàng)目中找到通信伙伴項(xiàng)目中找到通信伙伴 date: 2021-5-13 使用使用 sfc 進(jìn)行進(jìn)行 s7 基本通信:塊概述基本通信:塊概述 sfc sfc 65 名稱名稱 x_send s

14、fc 66x_rcv x_getsfc 67 x_putsfc 68 x_abortsfc 69 i_getsfc 72 i_putsfc 73 i_abortsfc 74 簡介簡介 發(fā)送塊,向發(fā)送塊,向 x_rcv (客戶端客戶端) 塊發(fā)送數(shù)據(jù)塊發(fā)送數(shù)據(jù) 接收塊,接收接收塊,接收 x_send 塊的數(shù)據(jù)塊的數(shù)據(jù) 從伙伴從伙伴 plc 讀數(shù)據(jù)讀數(shù)據(jù) 向伙伴向伙伴 plc 寫數(shù)據(jù)寫數(shù)據(jù) 中止現(xiàn)有連接中止現(xiàn)有連接 從伙伴從伙伴 cpu 讀數(shù)據(jù)讀數(shù)據(jù) 向伙伴向伙伴 cpu 寫數(shù)據(jù)寫數(shù)據(jù) 中止與伙伴中止與伙伴 cpu 的連接的連接 date: 2021-5-13 使用使用 sfc 進(jìn)行進(jìn)行 s7 基本

15、通信:基本通信:x_send (sfc 65) 塊塊 帶參數(shù)賦值示例 call sfc 65 req:= m4.0/觸發(fā)器,通過req=1來觸發(fā)數(shù)據(jù)傳送作業(yè) cont:= false/數(shù)據(jù)傳送作業(yè)傳送結(jié)束之后是否保持與通訊伙伴的連接 dest_id:= w#16#4/接收數(shù)據(jù)站點(diǎn)的mpi_addr req_id:= dw#16#1/用于標(biāo)識數(shù)據(jù)作業(yè)的標(biāo)識符,用于識別通訊伙伴的數(shù)據(jù) sd:= p#m20.0 byte 10 /變量,指向發(fā)送區(qū)域的一個指針 ret_val:= mw40/出錯碼 busy:= m 4.1/=1sfc 激活,=0發(fā)送作業(yè)已經(jīng)結(jié)束或者不存在激活的發(fā)送作業(yè) 說明說明使用

16、sfc 65 (x_send),可以向不在同一個本地 s7 站內(nèi)的通信伙伴發(fā)送數(shù)據(jù)。通信伙 伴方的數(shù)據(jù)接收通過 sfc 66 (x_rcv) 實(shí)現(xiàn)。 可以用輸入?yún)?shù) req_id 標(biāo)識要發(fā)送的數(shù)據(jù)。該作業(yè)標(biāo)識符也將被傳遞,可以在通信伙 伴方檢測該標(biāo)識,以便確定數(shù)據(jù)的起始位置。 通過 req=1 調(diào)用 sfc 之后,開始發(fā)送操作。 必須確保通過參數(shù) sd 定義的發(fā)送區(qū)域 (位于發(fā)送 cpu 上) 小于或等于由 rd 參數(shù)定義的 接收區(qū)域 (位于通信伙伴方)。 date: 2021-5-13 使用使用 sfc 進(jìn)行進(jìn)行 s7 基本通信:基本通信:x_rcv (sfc 66) 塊塊 帶參數(shù)賦值示例

17、call sfc 66 en_dt:= true/觸發(fā)數(shù)據(jù)傳輸,=1,復(fù)制隊(duì)列中最早的數(shù)據(jù)塊到rd指定的工作存儲 區(qū)域。 ret_val:= mw 50/出錯碼 req_id:= md52/作業(yè) id,接收到的數(shù)據(jù)包的標(biāo)識符 nda:= m40.0/數(shù)據(jù)存在,指示是否有新的數(shù)據(jù)到達(dá) rd:= p#m20.0 byte 10 /變量,指向接收區(qū)域的指針 通過sfc66 “x_rcv”,接收本地s7站以外的一個或多個通訊伙伴通過sfc65 “x_send”發(fā)送的數(shù)據(jù)。 說明說明 通過 sfc 66 (x_rcv) 可以接收一個或者多個通信伙伴使 用 sfc 65 (x_send) 發(fā)送的數(shù)據(jù)。該

18、(這些) 通信伙伴不在當(dāng)前 s7 站內(nèi)。使用 sfc 66 (x_rcv) 可以: 確定此時發(fā)送數(shù)據(jù)是否可用。必要的話,操作系統(tǒng)可以將這些 數(shù)據(jù)放到一個內(nèi)部隊(duì)列中。 從隊(duì)列中將最早的數(shù)據(jù)塊復(fù)制到一個指定的輸入?yún)^(qū)域中。通過 輸入?yún)?shù) en_dt (使能數(shù)據(jù)傳輸) 進(jìn)行選擇。 date: 2021-5-13 發(fā)送接收數(shù)據(jù)程序發(fā)送接收數(shù)據(jù)程序 call x_send /調(diào)用調(diào)用sfc 65 req :=m1.0 /發(fā)送請求,該參數(shù)為發(fā)送請求,該參數(shù)為1時候發(fā)送時候發(fā)送 cont :=true /發(fā)送完成后保持連接發(fā)送完成后保持連接 dest_id:=w#16#3 /接收方的接收方的mpi地址地址 r

19、eq_id :=dw#16#1 /數(shù)據(jù)包標(biāo)識符數(shù)據(jù)包標(biāo)識符 sd :=p#db1.dbx0.0 byte 76 /存放要發(fā)送的數(shù)據(jù)的地址區(qū)域存放要發(fā)送的數(shù)據(jù)的地址區(qū)域 ret_val:=mw12 /通訊狀態(tài)字,返回的故障信息通訊狀態(tài)字,返回的故障信息 busy :=m1.1 /為為1時正在發(fā)送,為時正在發(fā)送,為0時完成發(fā)送時完成發(fā)送 call “x_rcv” /調(diào)用調(diào)用sfc 66 en_dt :=m0.0 /接收使能位接收使能位 ret_val:=mw2 /接收狀態(tài)字,返回狀態(tài)信息接收狀態(tài)字,返回狀態(tài)信息 req_id :=md4 /接收到的數(shù)據(jù)包的標(biāo)識符接收到的數(shù)據(jù)包的標(biāo)識符 nda :=

20、m0.1 /為為1時表示有新的數(shù)據(jù)包時表示有新的數(shù)據(jù)包 rd :=p#db3.dbx0.0 byte 76 /存放接收的數(shù)據(jù)的地址區(qū)域存放接收的數(shù)據(jù)的地址區(qū)域 mpi_uc_1例程例程 date: 2021-5-13 雙邊通訊數(shù)據(jù)流通訊的雙邊通訊數(shù)據(jù)流通訊的s7編程練習(xí)編程練習(xí) 組態(tài)組態(tài)2個站之間的全局?jǐn)?shù)據(jù)通訊:個站之間的全局?jǐn)?shù)據(jù)通訊:cpu400/ cpu300 (2/3) 要求:站點(diǎn)要求:站點(diǎn)3的的id0,控制站點(diǎn),控制站點(diǎn)2的的qd4; 站點(diǎn)站點(diǎn)3的的db2.dbb0開始的開始的76個字節(jié)傳給站點(diǎn)個字節(jié)傳給站點(diǎn)2的的db1,從,從dbb0開始存放數(shù)據(jù)。開始存放數(shù)據(jù)。 date: 2021

21、-5-13 s7-300之間通過之間通過sfc67_68實(shí)現(xiàn)實(shí)現(xiàn)mpi通訊通訊 s7-300與s7-300之間采用mpi通訊方式時,其中一臺cpu不需要編寫任何與通訊有關(guān)的程 序,只需將交換的數(shù)據(jù)整理到一個連續(xù)的db塊中存儲即可;而另外一臺s7-300中需要在 ob1(也可以在ob35循環(huán)中斷組織快)中調(diào)用sfc67 x_get和sfc68 x_put,實(shí)現(xiàn)兩臺 cpu之間的通訊。 調(diào)用sfc67 x_get和sfc68 x_put時,var_addr參數(shù)填寫通訊伙伴的數(shù)據(jù)地址區(qū),這 里需要填寫:p#db1.xxx byte n對應(yīng)的就是對方cpu的db存儲區(qū)域中的數(shù)據(jù)區(qū)。 通過sfc67 “

22、x_get”,可以從本地s7站以外的通訊伙伴中讀取數(shù)據(jù)。在通訊伙伴上沒有相 應(yīng)sfc。 在通過req=1調(diào)用sfc之后,讀作業(yè)被激活。此后,可以繼續(xù)調(diào)用sfc,直到busy=0指 示數(shù)據(jù)接收為止。然后,ret_val便包含了以字節(jié)為單位的、已接收的數(shù)據(jù)塊的長度。 必須要確保由rd參數(shù)定義的接收區(qū)(在接收cpu上)至少和由var_addr參數(shù)定義的要讀取 的區(qū)域(在通訊伙伴上)一樣大。rd的數(shù)據(jù)類型還必須和var_addr的數(shù)據(jù)類型相匹配。 date: 2021-5-13 單邊通訊的編程組態(tài)(單邊通訊的編程組態(tài)(1) date: 2021-5-13 單邊通訊的編程組態(tài)(單邊通訊的編程組態(tài)(2)

23、active 客戶機(jī)客戶機(jī)/服務(wù)器服務(wù)器 mpi_uc_2 例程例程 date: 2021-5-13 sfc67/sfc68編程調(diào)用編程調(diào)用 用用sfc 68寫對方的數(shù)據(jù)區(qū)寫對方的數(shù)據(jù)區(qū) call x_put /sfc 68 req :=m0.0 /寫數(shù)據(jù)使能信號寫數(shù)據(jù)使能信號 cont :=true /發(fā)送完成后保持連接發(fā)送完成后保持連接 dest_id :=w#16#3 /對方的對方的mpi地址地址 var_addr:=p#db2.dbx0.0 byte 76 /通信伙伴要寫入數(shù)據(jù)的地址區(qū)域通信伙伴要寫入數(shù)據(jù)的地址區(qū)域 sd :=p#db1.dbx0.0 byte 76 /存放本站要發(fā)送的

24、數(shù)據(jù)的地址區(qū)域存放本站要發(fā)送的數(shù)據(jù)的地址區(qū)域 ret_val :=mw2 /通訊狀態(tài)字,返回錯誤信息通訊狀態(tài)字,返回錯誤信息 busy :=m0.1 /為為1時寫數(shù)據(jù)未完成時寫數(shù)據(jù)未完成 用用sfc 67讀對方的數(shù)據(jù)區(qū)讀對方的數(shù)據(jù)區(qū) call x_get /sfc 67 req :=m0.2 /讀數(shù)據(jù)使能信號讀數(shù)據(jù)使能信號 cont :=true /讀數(shù)據(jù)完成后保持連接讀數(shù)據(jù)完成后保持連接 dest_id :=w#16#3 /對方的對方的mpi站地址站地址 var_addr:=p#db1.dbx0.0 byte 76 / 要讀取的通訊伙伴的地址區(qū)域要讀取的通訊伙伴的地址區(qū)域 ret_val :

25、=mw4 /通訊狀態(tài)字,返回錯誤信息通訊狀態(tài)字,返回錯誤信息 busy :=m0.3 / 為為1時寫數(shù)據(jù)未完成時寫數(shù)據(jù)未完成 rd :=p#db2.dbx0.0 byte 76 / 本站存放讀取的數(shù)據(jù)的地址區(qū)域本站存放讀取的數(shù)據(jù)的地址區(qū)域 l db2.dbd 2 t qd 0 date: 2021-5-13 sfc67/sfc68單邊編程的練習(xí)單邊編程的練習(xí) 任務(wù):組態(tài)任務(wù):組態(tài)2號站和號站和3號站,號站,m4.0為為1則則2號站點(diǎn)的號站點(diǎn)的db10.dbd10的數(shù)據(jù)傳送的數(shù)據(jù)傳送 給給3號站點(diǎn)的號站點(diǎn)的md50; 如果如果m5.0為為1,讀取,讀取3號站點(diǎn)的號站點(diǎn)的mw40內(nèi)的數(shù)據(jù),并存放在

26、內(nèi)的數(shù)據(jù),并存放在2號站點(diǎn)的號站點(diǎn)的 db20.dbw10內(nèi)。內(nèi)。 date: 2021-5-13 擴(kuò)展擴(kuò)展 s7 通信:概述通信:概述 l使用使用 mpi、k-bus、profibus 或工業(yè)以太網(wǎng)進(jìn)行數(shù)據(jù)交換或工業(yè)以太網(wǎng)進(jìn)行數(shù)據(jù)交換 l通過連接表組態(tài)連接通過連接表組態(tài)連接 l連接在暖啟動時建立組態(tài)并永久存在連接在暖啟動時建立組態(tài)并永久存在 (即使是即使是 stop 模式模式) l用戶數(shù)據(jù)大小高達(dá)用戶數(shù)據(jù)大小高達(dá) 64 k 字節(jié)字節(jié) l通信服務(wù)也可用于控制通信服務(wù)也可用于控制 (停止、啟動停止、啟動) 通信伙伴通信伙伴 lsfb只存在于只存在于s7-400-cpu ,s7-300-cpu可使

27、用庫中的同號碼的可使用庫中的同號碼的fb(僅支持(僅支持 profibus 或工業(yè)以太網(wǎng))或工業(yè)以太網(wǎng)) l可使用可使用get/put 對對s7-300進(jìn)行數(shù)據(jù)的讀和寫進(jìn)行數(shù)據(jù)的讀和寫 l通過一個連接可以處理不同的任務(wù)通過一個連接可以處理不同的任務(wù) 用戶數(shù)據(jù)用戶數(shù)據(jù)用戶數(shù)據(jù)的大小取決于使用的塊 和通信伙伴: put/get:160 字節(jié) (與 s7-31x 通信); 180 字節(jié) (與 s7-31xc 通信); 400 字節(jié) (與 s7-400/m7 通信)。 usend/urec:最多 440 字節(jié) bsend/brcv:最多 64k 字節(jié) date: 2021-5-13 sfb 通信:塊概

28、況通信:塊概況 sfb/sfc sfb 8 名稱名稱 usend sfb 9urcv bsendsfb 12 brcvsfb 13 getsfb 14 通信類型通信類型 雙向雙向 雙向雙向 雙向雙向 雙向雙向 單向單向 putsfb 15單向單向 printsfb 16單向單向 startsfb 19單向單向 stopsfb 20單向單向 resumesfb 21單向單向 statussfb 22單向單向 ustatussfb 23單向單向 controlsfc 62- 簡述簡述 發(fā)送塊,用于向發(fā)送塊,用于向 urcv (客戶端客戶端) 塊發(fā)送數(shù)據(jù)塊發(fā)送數(shù)據(jù) 接收塊,接收接收塊,接收 usen

29、d 的數(shù)據(jù)的數(shù)據(jù) 發(fā)送塊,用于向發(fā)送塊,用于向 brcv 塊發(fā)送較大數(shù)據(jù)塊塊發(fā)送較大數(shù)據(jù)塊 (最多最多 64k 字節(jié)字節(jié)) 接收塊,用于接收較大數(shù)據(jù)塊接收塊,用于接收較大數(shù)據(jù)塊 (最多最多 64k 字節(jié)字節(jié)) 從伙伴從伙伴 plc 讀數(shù)據(jù)讀數(shù)據(jù) 向伙伴向伙伴 plc 寫數(shù)據(jù)寫數(shù)據(jù) 向遠(yuǎn)程打印機(jī)發(fā)送數(shù)據(jù)向遠(yuǎn)程打印機(jī)發(fā)送數(shù)據(jù) 在通信伙伴上執(zhí)行完全重啟動在通信伙伴上執(zhí)行完全重啟動 將通信伙伴置為將通信伙伴置為 stop 狀態(tài)狀態(tài) 在通信伙伴上執(zhí)行重啟動在通信伙伴上執(zhí)行重啟動 通信伙伴的狀態(tài)掃描通信伙伴的狀態(tài)掃描 (run、stop、start-up、hold) 接收通信伙伴的狀態(tài)信息接收通信伙伴的狀

30、態(tài)信息 掃描掃描 s7 連接連接 + sfb 的內(nèi)部狀態(tài)的內(nèi)部狀態(tài) date: 2021-5-13 用于用于s7通訊數(shù)據(jù)交換的通訊數(shù)據(jù)交換的sfb/fb以及支持通訊的功能以及支持通訊的功能 編號助記符號可傳輸字節(jié)描述 s7-400s7-300s7-400s7-300 sfb8fb8u_send440b160b與接收方通信功能u_rcv執(zhí)行序列無關(guān)的快速的無需要 確認(rèn)的數(shù)據(jù)交換,對方接收到的數(shù)據(jù)可能被新的數(shù)據(jù)覆 蓋。 sfb9fb9u_rcv sfb12fb12b_send64kb32kb將數(shù)據(jù)塊安全的傳輸?shù)酵ㄓ嵒锇椋钡酵ㄐ呕锇榈慕邮?功能b_rcv接收完數(shù)據(jù),數(shù)據(jù)傳輸才結(jié)束。 sfb13fb

31、13b_rcv sfb14fb14get400b400b程序控制讀取遠(yuǎn)方cpu的變量,通訊伙伴不需要編寫通 訊程序。 sfb15fb15put程序控制把變量寫到遠(yuǎn)方的cpu,通訊伙伴不需要編寫 通訊程序。 不同dp口之間允許的s7通訊功能 s7-300集成 dp口 s7-400集 成dp口 cp-342-5 的dp口 cp-443-5 ext的dp口 s7-300集成dp口不支持單向通訊單向通訊單向通訊 s7-400集成dp口單/雙向通 訊 單/雙向通 訊 單/雙向通訊 cp-342-5的dp口單/雙向通 訊 單/雙向通訊 cp-443-5 ext的dp口單/雙向通訊 date: 2021-5

32、-13 使用使用 netpro 組態(tài)網(wǎng)絡(luò)組態(tài)網(wǎng)絡(luò) 雙擊雙擊 插入硬件站點(diǎn)插入硬件站點(diǎn) 雙擊雙擊 雙擊雙擊 date: 2021-5-13 組態(tài)組態(tài) s7 連接連接 插入連接插入連接 遠(yuǎn)程站點(diǎn)遠(yuǎn)程站點(diǎn) 遠(yuǎn)程遠(yuǎn)程 cpu 選擇選擇 date: 2021-5-13 建立連接屬性建立連接屬性 date: 2021-5-13 編譯和下載組態(tài)數(shù)據(jù)編譯和下載組態(tài)數(shù)據(jù) 下載下載 保存并編譯保存并編譯 date: 2021-5-13 測試連接狀態(tài)測試連接狀態(tài) 連接狀態(tài)連接狀態(tài) date: 2021-5-13 使用使用 s7 連接進(jìn)行單向通信服務(wù)連接進(jìn)行單向通信服務(wù) s7-400 mpi=3 s7-300/400

33、 邏輯邏輯 s7 連接連接 (單向或雙向單向或雙向) mpi=2 cpu mpi=2 cpu mpi=2 1 本地本地 id 物理連接,如物理連接,如 mpi sfb: - get - put - stop - start - status cpu 的的 操作系統(tǒng)操作系統(tǒng) 1 單向單向 s7 通信通信 從 s7-400 到 s7-300 的單向 s7 連接可通過組態(tài)工具自動地設(shè)置。對于單向連接,只需 在 s7-400 上分配一個本地連接 id 來標(biāo)識該連接,即通信伙伴和傳輸介質(zhì)。不需要在 s7-300 上分配連 接 id,因?yàn)橛糜趯ぶ吠ㄐ胚B接的 sfb 不在 s7-300 cpu 的操作系統(tǒng)中

34、。 date: 2021-5-13 s7單向通訊的組態(tài)(單向通訊的組態(tài)(1) date: 2021-5-13 s7單向通訊的組態(tài)(單向通訊的組態(tài)(2) 默認(rèn)連接為單向,默認(rèn)連接為單向, 在調(diào)用在調(diào)用sfc時候,會使用時候,會使用“塊參數(shù)塊參數(shù)”中的中的“本地本地id”的值。的值。 s7-300/s7-400集成的集成的dp口只能建立單向的連接,所以沒有通訊伙伴的口只能建立單向的連接,所以沒有通訊伙伴的id。 date: 2021-5-13 s7單向通訊的編程(單向通訊的編程(1) 單向通訊只需要通訊的一方編寫通訊程序,編寫程序的一方的單向通訊只需要通訊的一方編寫通訊程序,編寫程序的一方的cpu

35、為客戶機(jī),不需要編寫程序的一方的為客戶機(jī),不需要編寫程序的一方的 cpu為服務(wù)器,客戶機(jī)是向服務(wù)器請求服務(wù)的設(shè)備,是主動的,需要調(diào)用通訊塊對服務(wù)器的數(shù)據(jù)進(jìn)行讀為服務(wù)器,客戶機(jī)是向服務(wù)器請求服務(wù)的設(shè)備,是主動的,需要調(diào)用通訊塊對服務(wù)器的數(shù)據(jù)進(jìn)行讀 寫操作。服務(wù)器是提供特定服務(wù)的設(shè)備,是被動的。寫操作。服務(wù)器是提供特定服務(wù)的設(shè)備,是被動的。 s7-400作為客戶機(jī),調(diào)用作為客戶機(jī),調(diào)用get, put程序塊讀寫服務(wù)器的存儲區(qū)。程序塊讀寫服務(wù)器的存儲區(qū)。 s7-400的的s7通訊塊通訊塊 s7-300的的s7通訊塊通訊塊 date: 2021-5-13 s7單向通訊的編程(單向通訊的編程(2) ca

36、ll get , db14 /sfb14 req :=m8.1 / 上升沿時激活數(shù)據(jù)傳輸,每200ms讀取一次 id :=w#16#1 /s7的連接id號 ndr :=m0.1 /每次讀取完,產(chǎn)生一個脈沖 error :=m0.2 /錯誤標(biāo)志,出錯時為1 status:=mw2 /狀態(tài)字,0為沒有錯誤和警告 addr_1:=p#db1.dbx0.0 byte 20 /要讀取的通訊伙伴的1號地址區(qū)域 addr_2:=p#db3.dbx0.0 byte 20 /要讀取的通訊伙伴的2號地址區(qū)域 addr_3:=id0 /要讀取的通訊伙伴的id0雙字 addr_4:=p#m 40.0 byte 20

37、/要讀取的通訊伙伴的4號地址區(qū)域 rd_1 :=p#db2.dbx0.0 byte 20 /本站存放讀取的數(shù)據(jù)的1號地址區(qū)域 rd_2 :=p#db4.dbx0.0 byte 20 /本站存放讀取的數(shù)據(jù)的2號地址區(qū)域 rd_3 :=qd0 /通訊伙伴的id0控制本站的qd0 rd_4 :=p#m 20.0 byte 20 /本站存放讀取的數(shù)據(jù)的4號地址區(qū)域 call put , db15 /sfb15 req :=m10.0 / 上升沿時激活數(shù)據(jù)傳輸,每200ms讀取一次 id :=w#16#1 /s7的連接id號 done :=m10.1 /每次讀取完,產(chǎn)生一個脈沖 error :=m10.

38、2 /錯誤標(biāo)志,出錯時為1 status:=mw12 /狀態(tài)字,0為沒有錯誤和警告 addr_1:=p#db2.dbx0.0 byte 20 /要寫入數(shù)據(jù)的通訊伙伴的1號地址區(qū)域 addr_2:=p#db4.dbx0.0 byte 20 /要寫入數(shù)據(jù)的通訊伙伴的2號地址區(qū)域 addr_3:=qd4 /要控制通訊伙伴的qd4雙字 addr_4:=p#m 20.0 byte 20 /要寫入數(shù)據(jù)的通訊伙伴的4號地址區(qū)域 sd_1 :=p#db1.dbx0.0 byte 20 /存放本站要發(fā)送的數(shù)據(jù)的1號地址區(qū)域 sd_2 :=p#db3.dbx0.0 byte 20 /存放本站要發(fā)送的數(shù)據(jù)的1號地址

39、區(qū)域 sd_3 :=id0 /用本站的id0控制通訊伙伴的qd4 sd_4 :=p#m 40.0 byte 20 /存放本站要發(fā)送的數(shù)據(jù)的1號地址區(qū)域 pb_s7_a例程例程 date: 2021-5-13 s7編程單向連接練習(xí)編程單向連接練習(xí) 任務(wù):組態(tài)實(shí)現(xiàn)任務(wù):組態(tài)實(shí)現(xiàn)cpu413-2dp(2號站)與號站)與cpu315-2dp(3號站)號站)cp342-5(4號站)的單向號站)的單向s7通訊。通訊。 要求:要求:2號站點(diǎn)讀取通訊伙伴的地址區(qū)域號站點(diǎn)讀取通訊伙伴的地址區(qū)域db1.dbx0.0 開始開始20個字節(jié),存放到個字節(jié),存放到mb0開始的開始的20個字節(jié)中;個字節(jié)中; 2號站把號站把

40、db1.dbx0.0開始開始20個字節(jié)寫入數(shù)據(jù)到通訊伙伴的地址區(qū)域個字節(jié)寫入數(shù)據(jù)到通訊伙伴的地址區(qū)域db2.dbx0.0開始的開始的20個字節(jié)。個字節(jié)。 在程序中必須初始化數(shù)據(jù)塊。在程序中必須初始化數(shù)據(jù)塊。 date: 2021-5-13 使用使用 s7 連接進(jìn)行雙向通信服務(wù)連接進(jìn)行雙向通信服務(wù) s7-400 mpi=3 s7-400 邏輯邏輯 s7 連接連接 (雙向雙向) mpi=2 cpu mpi=2 cpu mpi=2 2 本地本地 id 物理連接,如物理連接,如 mpi 1 sfb: - usend - urcv - bsend - brcv sfb: - urcv - usend -

41、 brcv - bsend 2 1 在兩個 s7-400 cpu 之間組態(tài) s7 連接時,自動建立雙向 s7 連接,雙向連接中的連接雙方都分配有一個 連接 id,因而雙方都可以使用這個 id 來指向這個連接?;锇殡p方的任何一方都可以作為通信服務(wù)的發(fā)起 者 (客戶機(jī))。 date: 2021-5-13 usend/urcv雙向通訊組態(tài)雙向通訊組態(tài) 使用使用usend/urcv,可以進(jìn)行快速、不可靠的數(shù)據(jù)傳輸,比如事件消息或報警消息的傳送,通訊雙方,可以進(jìn)行快速、不可靠的數(shù)據(jù)傳輸,比如事件消息或報警消息的傳送,通訊雙方 都需要調(diào)用通訊功能。都需要調(diào)用通訊功能。 pb_s7_b例程例程 在進(jìn)行實(shí)際數(shù)

42、據(jù)傳送 之前,必須通過兩個 伙伴中的一個建立(初 始化)連接。 始終為本地方激活建 立激活連接復(fù)選框, 并自動在伙伴方取消 激活該復(fù)選框。 date: 2021-5-13 usend/urcv雙向通訊編程雙向通訊編程 call usend , db8 /sfb 8 req :=m8.0 /100ms時鐘脈沖上升沿時發(fā)送時鐘脈沖上升沿時發(fā)送 id :=w#16#1 /s7連接連接id號號 r_id :=dw#16#1 /發(fā)送與接收請求號,用于區(qū)分同一連接中不同的發(fā)送與接收請求號,用于區(qū)分同一連接中不同的sfb/fb調(diào)用,發(fā)送方調(diào)用,發(fā)送方 與接收方的與接收方的r_id應(yīng)相同。應(yīng)相同。 done

43、:=m10.1 /任務(wù)被正確執(zhí)行為任務(wù)被正確執(zhí)行為1 error :=m10.2 /錯誤標(biāo)記位,錯誤標(biāo)記位,1為出錯為出錯 status:=mw12 /狀態(tài)字狀態(tài)字 sd_1 :=p#db1.dbx0.0 byte 20 /存放要發(fā)送的數(shù)據(jù)的存放要發(fā)送的數(shù)據(jù)的1號地址區(qū)域號地址區(qū)域 sd_2 :=p#m 40.0 byte 20 /存放要發(fā)送的數(shù)據(jù)的存放要發(fā)送的數(shù)據(jù)的2號地址區(qū)域號地址區(qū)域 sd_3 :=id0 /用本站的用本站的id0字節(jié)控制通訊伙伴的字節(jié)控制通訊伙伴的qd0 sd_4 := call urcv , db9 /sfb9 en_r :=m0.0 /為為1時接收時接收 id :=

44、w#16#1 /s7連接連接id號號 r_id :=dw#16#2 /發(fā)送與接收請求號,用于區(qū)分同一連接中不同的發(fā)送與接收請求號,用于區(qū)分同一連接中不同的sfb/fb調(diào)用,發(fā)送調(diào)用,發(fā)送 方方 與接收方的與接收方的r_id應(yīng)相同。應(yīng)相同。 ndr :=m0.1 /任務(wù)被正確執(zhí)行為任務(wù)被正確執(zhí)行為1 error :=m0.2 /錯誤標(biāo)記位,錯誤標(biāo)記位,1為出錯為出錯 status:=mw2 /狀態(tài)字狀態(tài)字 rd_1 :=p#db2.dbx0.0 byte 20 /存放接收的數(shù)據(jù)的存放接收的數(shù)據(jù)的1號地址區(qū)域號地址區(qū)域 rd_2 :=p#m 20.0 byte 20 /存放接收的數(shù)據(jù)的存放接收的數(shù)

45、據(jù)的1號地址區(qū)域號地址區(qū)域 rd_3 :=qd0 /用通訊伙伴的用通訊伙伴的id0控制本站的控制本站的qd0 rd_4 := 站點(diǎn)站點(diǎn)3的程序基的程序基 本相同本相同 date: 2021-5-13 bsend/brcv的的s7通訊通訊 使用使用bsend/brcv,可以進(jìn)行快速的、可靠的數(shù)據(jù)傳送。,可以進(jìn)行快速的、可靠的數(shù)據(jù)傳送。 l id 0 t db1.dbd 2 /用本站的用本站的id0控制通訊伙伴的控制通訊伙伴的qd0 call bsend , db12 /sfb12 req :=m8.0 /100ms時鐘脈沖上升沿時發(fā)送時鐘脈沖上升沿時發(fā)送 r :=m10.1 /上升沿時中斷正在進(jìn)

46、行的數(shù)據(jù)交換上升沿時中斷正在進(jìn)行的數(shù)據(jù)交換 id :=w#16#1 /s7連接連接id號號 r_id :=dw#16#1 /發(fā)送與請求號發(fā)送與請求號 done :=m10.2 /任務(wù)正確執(zhí)行為任務(wù)正確執(zhí)行為1 error :=m10.3 /錯誤標(biāo)記位錯誤標(biāo)記位 status:=mw12 /狀態(tài)字狀態(tài)字 sd_1 :=p#db1.dbx0.0 byte 200 /存放要發(fā)送的數(shù)據(jù)的地址區(qū)域存放要發(fā)送的數(shù)據(jù)的地址區(qū)域 len :=mw14 /要發(fā)送的數(shù)據(jù)字節(jié)數(shù)要發(fā)送的數(shù)據(jù)字節(jié)數(shù)200 call brcv , db13 /sfb13 en_r :=m0.0 /為為1時接收時接收 id :=w#16#

47、1 /s7連接連接id號號 r_id :=dw#16#2 /發(fā)送與請求號發(fā)送與請求號 ndr :=m0.1 /任務(wù)正確執(zhí)行為任務(wù)正確執(zhí)行為1 error :=m0.2 /錯誤標(biāo)記位錯誤標(biāo)記位 status:=mw2 /狀態(tài)字狀態(tài)字 rd_1 :=p#db2.dbx0.0 byte 200 /存放接收的數(shù)據(jù)的地址區(qū)域存放接收的數(shù)據(jù)的地址區(qū)域 len :=mw4 /已經(jīng)接收的數(shù)據(jù)字節(jié)數(shù)已經(jīng)接收的數(shù)據(jù)字節(jié)數(shù) l db2.dbd 2 t qd 0 /用對方的用對方的id0控制本站的控制本站的qd0 站點(diǎn)站點(diǎn)3的程序基的程序基 本相同本相同 pb_s7_c例程例程 date: 2021-5-13 s7通

48、訊雙向編程的練習(xí)通訊雙向編程的練習(xí) 要求進(jìn)行快速、可靠的數(shù)據(jù)傳輸,站點(diǎn)要求進(jìn)行快速、可靠的數(shù)據(jù)傳輸,站點(diǎn)cpu413-2dp分別為分別為2號站點(diǎn)和號站點(diǎn)和3號站點(diǎn)。號站點(diǎn)。 任務(wù):建立組態(tài),通過調(diào)用程序塊實(shí)現(xiàn)通訊。任務(wù):建立組態(tài),通過調(diào)用程序塊實(shí)現(xiàn)通訊。 2號站點(diǎn)的數(shù)據(jù)號站點(diǎn)的數(shù)據(jù)db1.dbx0.0開始的開始的10個字節(jié),發(fā)送到個字節(jié),發(fā)送到3號站點(diǎn)的數(shù)據(jù)塊號站點(diǎn)的數(shù)據(jù)塊db2,從,從dbb0開始存儲。開始存儲。 date: 2021-5-13 通過通過s7連接控制和監(jiān)視遠(yuǎn)程連接控制和監(jiān)視遠(yuǎn)程plc的運(yùn)行模式的運(yùn)行模式 調(diào)用sfb19 “start”使遠(yuǎn)程設(shè)備熱啟動或冷啟動,如果在sfb 1

49、9start的控制輸入req上有上升 沿,則這將激活由id尋址的遠(yuǎn)程設(shè)備上的暖啟動或冷啟動。 遠(yuǎn)程plc必須滿足條件:cpu必須處于stop模式;cpu的鑰匙開關(guān)必須設(shè)置為“run”或“run-p”。 一旦完成暖啟動或冷啟動,設(shè)備切換到run模式,并發(fā)送一個肯定執(zhí)行應(yīng)答。接收到肯定應(yīng)答之后, 狀態(tài)參數(shù)done置位為1,如果發(fā)生任何錯誤,則通過狀態(tài)參數(shù)error和status來指示這些出錯。 調(diào)用sfb20”stop”將遠(yuǎn)程設(shè)備切換到stop模式 如果在sfb 20“stop”的控制輸入req上有上升沿,則將由id尋址的遠(yuǎn)程設(shè)備切換到stop模式。當(dāng)設(shè) 備處于run、hold或startup模式

50、時,可以進(jìn)行模式切換。 pi_name 參數(shù)指向存儲要啟動的程序的名稱(ascii代碼)的存儲區(qū)域。此名稱所包含的字符不能超過 32個。 對于s7 plc,名稱必須是p_program。 io_state參數(shù),如果通訊伙伴是s7可編程控制器,則不給這個參數(shù)分配任何數(shù)值。 sfb19-sfb23可以用于mpi、profibus-dp、工業(yè)以太網(wǎng)的遠(yuǎn)程站點(diǎn)監(jiān)控。 pb_ctrl例程例程 date: 2021-5-13 遠(yuǎn)程將設(shè)備切換到遠(yuǎn)程將設(shè)備切換到run/stop 將遠(yuǎn)程設(shè)備切換到將遠(yuǎn)程設(shè)備切換到run模式模式 call “start” , db19 /調(diào)用調(diào)用sfb19 req :=m20.6

51、 /請求通訊,上升沿時激活請求通訊,上升沿時激活sfb id :=w#16#1 /s7連接號連接號 done :=db1.dbx10.1 /操作正確完成后為操作正確完成后為1 error :=db1.dbx10.2 /錯誤標(biāo)志錯誤標(biāo)志 status :=db1.dbw14 /狀態(tài)字狀態(tài)字 pi_name :=data.pi_name /字符串字符串p_program arg := /未設(shè)置該參數(shù)為熱啟動,分配未設(shè)置該參數(shù)為熱啟動,分配c為冷啟動為冷啟動 io_state:= /s7 plc未使用此參數(shù)未使用此參數(shù) 將遠(yuǎn)程設(shè)備切換到將遠(yuǎn)程設(shè)備切換到stop模式模式 call stop , db2

52、0 /調(diào)用調(diào)用sfb20 req :=m20.7 /請求通訊,上升沿時激活請求通訊,上升沿時激活sfb id :=w#16#1 /s7連接號連接號 done :=db1.dbx17.1 /操作正確完成后為操作正確完成后為1 error :=db1.dbx17.2 /錯誤標(biāo)志錯誤標(biāo)志 status :=db1.dbw20 /狀態(tài)字狀態(tài)字 pi_name :=data.pi_name /字符串字符串p_program io_state:= /s7 plc未使用此參數(shù)未使用此參數(shù) ob100 l p_ t data.pi_name1 l pr t data.pi_name2 l og t data.

53、pi_name3 l ra t data.pi_name4 l m t data.pi_name5 date: 2021-5-13 查詢遠(yuǎn)程伙伴的狀態(tài)查詢遠(yuǎn)程伙伴的狀態(tài)/接收操作模式變換信息接收操作模式變換信息 查詢遠(yuǎn)程伙伴的狀態(tài)查詢遠(yuǎn)程伙伴的狀態(tài) call “status” , db22 /調(diào)用調(diào)用sfb22 req :=m21.1 /通訊請求,上升沿激活通訊請求,上升沿激活sfb id :=w#16#1 /s7連接號連接號 ndr :=db1.dbx30.1 /操作正確完成后為操作正確完成后為1 error :=db1.dbx30.2 /錯誤標(biāo)志錯誤標(biāo)志 status:=db1.dbw32

54、 /狀態(tài)字狀態(tài)字 phys :=db1.dbb34 /物理狀態(tài),物理狀態(tài),10h為正在執(zhí)行功能,為正在執(zhí)行功能,13h為服務(wù)請求為服務(wù)請求 log :=db1.dbb36 /邏輯狀態(tài),邏輯狀態(tài),00h為允許狀態(tài)改變?yōu)樵试S狀態(tài)改變 local :=db1.dbw38 /第一個字節(jié)是通訊伙伴的當(dāng)前狀態(tài)第一個字節(jié)是通訊伙伴的當(dāng)前狀態(tài) 接收遠(yuǎn)程設(shè)備的狀態(tài)變化接收遠(yuǎn)程設(shè)備的狀態(tài)變化 call ustatus , db23 /調(diào)用調(diào)用sfb23 en_r :=m21.2 /為為1時,準(zhǔn)備接收控制參數(shù)時,準(zhǔn)備接收控制參數(shù) id :=w#16#1 /s7連接號連接號 ndr :=db1.dbx40.1 /操作

55、正確完成后為操作正確完成后為1 error :=db1.dbx40.2 /錯誤標(biāo)志錯誤標(biāo)志 status:=db1.dbw42 /狀態(tài)字狀態(tài)字 phys :=db1.dbb44 /物理狀態(tài),物理狀態(tài),10h為正在執(zhí)行功能,為正在執(zhí)行功能,13h為服務(wù)請求為服務(wù)請求 log :=db1.dbb46 /邏輯狀態(tài),邏輯狀態(tài),00h為允許狀態(tài)改變?yōu)樵试S狀態(tài)改變 local :=db1.dbw48 /第一個字節(jié)是通訊伙伴的當(dāng)前狀態(tài)第一個字節(jié)是通訊伙伴的當(dāng)前狀態(tài) local 工作模式工作模式相應(yīng)標(biāo)識符相應(yīng)標(biāo)識符 stop00h 熱啟動熱啟動01h run02h 熱啟動熱啟動03h 工作模式工作模式相應(yīng)標(biāo)識

56、符相應(yīng)標(biāo)識符 hold04h 冷啟動冷啟動06h run_r09h link-up0bh update0ch date: 2021-5-13 同一同一dp主站系統(tǒng)的主站系統(tǒng)的fdl通訊組態(tài)通訊組態(tài) fdl是profibus的第2層現(xiàn)場總線數(shù)據(jù)鏈路層,用于實(shí)現(xiàn)profibus主站之間的通訊,是由硬件 發(fā)起、安全系數(shù)非常高的發(fā)送/接收雙向通訊。只有profibus通訊處理器cp(cp342-5, cp343-5, cp443-5)才支持fdl的數(shù)據(jù)通訊。fdl通訊傳輸速度快,數(shù)據(jù)量小(240b)。 cp可以同時與多個主站建立通訊連接,大多數(shù)通信處理器cp的fdl連接個數(shù)最多16個。 laddr地址

57、與地址與cp342-5槽號有關(guān)槽號有關(guān) date: 2021-5-13 同一同一dp主站系統(tǒng)的主站系統(tǒng)的fdl通訊的編程(通訊的編程(1) s5兼容通訊的雙方通過調(diào)用標(biāo)準(zhǔn)庫:simatic_net_cp中的fc5 ag_send, fc6 ag_recv來實(shí)現(xiàn) fdl服務(wù),s7-300,s7-400分別使用cp300和cp400中的fc,不能混用。 fc5 ag_send用于將用戶數(shù)據(jù)區(qū)域的數(shù)據(jù)傳送給profibus cp,再發(fā)送出去, fc6 ag_recv用于 將profibus cp接收的數(shù)據(jù)存放到用戶區(qū)域中。 call ag_send /fc 5 act :=true /發(fā)送使能位 i

58、d :=1 /連接id號 laddr :=w#16#7f8 /cp443-5 ext的起始地址 send :=p#db1.dbx0.0 byte 240 /存放要發(fā)送的數(shù)據(jù)的地址區(qū)域 len :=240 /發(fā)送數(shù)據(jù)的字節(jié)數(shù) done :=m10.2 /每次發(fā)送成功產(chǎn)生一個脈沖 error :=m10.3 /錯誤標(biāo)志位 status:=mw12 /狀態(tài)字 act參數(shù)狀態(tài)為1時發(fā)送數(shù)據(jù),為了實(shí)現(xiàn)周期性的數(shù)據(jù)發(fā)送,act為true,若在ob1中調(diào)用fc5,則每 個掃描周期發(fā)送一次數(shù)據(jù),這過于頻繁,因此在ob35中調(diào)用,每100ms發(fā)送一次數(shù)據(jù)。 ob35中調(diào)用fc5 date: 2021-5-13

59、同一同一dp主站系統(tǒng)的主站系統(tǒng)的fdl通訊的編程(通訊的編程(2) call ag_recv /fc 6 id :=1 /連接連接id號號 laddr :=w#16#7f8 /cp443-5 ext的起始地址 recv :=p#db2.dbx0.0 byte 240 /存放接收的數(shù)據(jù)的地址區(qū)域存放接收的數(shù)據(jù)的地址區(qū)域 ndr :=m0.1 /每次發(fā)送成功產(chǎn)生一個脈沖 error :=m0.2 /錯誤標(biāo)記位錯誤標(biāo)記位 status:=mw2 /狀態(tài)字狀態(tài)字 len :=mw4 /接收的字節(jié)數(shù)接收的字節(jié)數(shù) cpu300的程序大體相同的程序大體相同 fdl_1例程例程 fdl通訊 的ag_send

60、(fc5)通訊功能塊出現(xiàn)狀態(tài) 0 x8302 ;意味著接收端的通訊進(jìn)程沒有收到任何接 收信息。如果s7-300 或者s7-400的循環(huán)周期不同(比如,發(fā)送端的掃描周期比接收端短),ag_send (fc5)就可能發(fā)生上述狀態(tài),因?yàn)閒dl通訊不包括流量控制器,這是fdl通訊的正常運(yùn)行模式。 基于這一點(diǎn),程序中通訊模塊(ag_send或者ag_recv)的輸出參數(shù)并不報告錯誤狀態(tài)。因此也不會 有相應(yīng)的響應(yīng),例如,甚至在觸發(fā)動作沒有終止或者忙于處理錯誤的時候,它將都不斷的被發(fā)送。 這個動作在fc5 ag_send將顯示為status=0 x8302。因此這個動作肯定會在程序中重復(fù),要使這個 狀態(tài)盡量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論