西門子NCU開機(jī)面板燈不停的閃維修
S7基本通信服務(wù)通過調(diào)用系統(tǒng)功能(SFC)和不需組態(tài)的S7連接進(jìn)行數(shù)據(jù)交換,只能用于同一個(gè)MPI子網(wǎng)內(nèi)的通信,多可以發(fā)送76B的數(shù)據(jù)。S7基本通信的SFC集成在操作系統(tǒng)中。
不用在組態(tài)時(shí)為S7基本通信建立連接,在用戶程序調(diào)用SFC 65~SFC 68時(shí)連接被自動(dòng)建立??梢栽谡{(diào)用SFC時(shí)通過設(shè)置參數(shù)來決定完成數(shù)據(jù)傳輸后該連接是繼續(xù)保持或終止。在同一時(shí)刻,多可與通信伙伴建立一個(gè)這樣的連接??梢韵群笤L問的通信伙伴的數(shù)量不受可用連接資源的限制。每次塊調(diào)用只能傳輸1個(gè)變量(一個(gè)地址區(qū))。
初始化了數(shù)據(jù)傳輸?shù)?/span>CPU進(jìn)入STOP模式時(shí),所有已建立的連接被終止。
I_GET( SFC 72)與I_PUT( SFC 73)用于CPU與同一個(gè)S7站的其他有通信功能的模塊之間交換數(shù)據(jù)。SFC名稱前面的“I”表示內(nèi)部。
X_SEND( SFC 65)、XRCV( SFC 66)、X_GET( SFC 67)與X_PUT( SFC 68)用于CPU和同一個(gè)MPI子網(wǎng)絡(luò)中的其他有通信功能的模塊之間交換數(shù)據(jù)。SFC名稱前面的“X”表示外部。
所有的S7-300/400 CPU都可以執(zhí)行這些SFC,以進(jìn)行S7基本通信。S7-300/400 CPU還可以用X_GET和X_PUT訪問S7- 200 CPU中的數(shù)據(jù)。S7-200在S7基本通信中只能用作服務(wù)器,因此不用編寫S7-200的通信程序。
1.全局?jǐn)?shù)據(jù)通信
通過全局?jǐn)?shù)據(jù)( Global data,GD)通信,同一個(gè)MPI子網(wǎng)中多15臺(tái)S7-300/400和C7之間可以周期性地相互交換少量的數(shù)據(jù)。每個(gè)CPU都可以訪問其他CPU的過程輸入、過程輸出、標(biāo)志位(M)、定時(shí)器、計(jì)數(shù)器和數(shù)據(jù)塊中的數(shù)據(jù)。
全局?jǐn)?shù)據(jù)通信使用CPU的MPI接口,不需要增加通信硬件,對(duì)CPU也沒有特殊的要求,因此這是一種經(jīng)濟(jì)而有效的通信方式,但是只能傳送少量的數(shù)據(jù)。
全局?jǐn)?shù)據(jù)通信采用廣播方式來傳輸數(shù)據(jù),數(shù)據(jù)的接收沒有確認(rèn)信息。全局?jǐn)?shù)據(jù)通信不能保證通信數(shù)據(jù)的完整性和準(zhǔn)確性。

只需要在STEP 7的網(wǎng)絡(luò)組態(tài)工具NetPro中用全局?jǐn)?shù)據(jù)表對(duì)全局?jǐn)?shù)據(jù)通信組態(tài),設(shè)置各CPU之間需要交換的數(shù)據(jù)存放的地址區(qū)和通信的速率等參數(shù),運(yùn)行時(shí)CPU的操作系統(tǒng)就可以實(shí)現(xiàn)周期性的全局?jǐn)?shù)據(jù)交換,不需要用戶對(duì)全局?jǐn)?shù)據(jù)通信編程。
2.全局?jǐn)?shù)據(jù)的結(jié)構(gòu)
(1)全局?jǐn)?shù)據(jù)環(huán)
參與收發(fā)全局?jǐn)?shù)據(jù)包的CPU組成了全局?jǐn)?shù)據(jù)環(huán)(GD Circle)。CPU可以向同一個(gè)環(huán)中的其他CPU發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。在一個(gè)MPI網(wǎng)絡(luò)中,多可以建立16個(gè)GD環(huán)。每個(gè)GD環(huán)多允許15個(gè)CPU參與全局?jǐn)?shù)據(jù)交換。
(2)全局?jǐn)?shù)據(jù)包
同一個(gè)全局?jǐn)?shù)據(jù)環(huán)中具有相同的發(fā)送者和接收者的全局?jǐn)?shù)據(jù)組成一個(gè)全局?jǐn)?shù)據(jù)包( GD Packet)。GD包和GD包中的數(shù)據(jù)均有編號(hào),例如GD1.2.3是1號(hào)GD環(huán)的2號(hào)GD包中的3號(hào)數(shù)據(jù)。每個(gè)全局?jǐn)?shù)據(jù)占全局?jǐn)?shù)據(jù)表中的一行。
(3) CPU的全局?jǐn)?shù)據(jù)功能
S7-300 CPU可以發(fā)送和接收的GD包的個(gè)數(shù)(4個(gè)或8個(gè))與CPU的型號(hào)有關(guān),每個(gè)GD包多22B數(shù)據(jù)。
S7-400 CPU可以發(fā)送和接收的GD包的個(gè)數(shù)與CPU的型號(hào)有關(guān),可以發(fā)送8個(gè)或16個(gè)GD包,接收16個(gè)或32個(gè)GD包,S7- 400之間每個(gè)GD包多54B數(shù)據(jù)。S7-400 CPU具有對(duì)全局?jǐn)?shù)據(jù)交換的控制功能,支持事件驅(qū)動(dòng)的數(shù)據(jù)傳送方式。
3.生成和填寫GD表
用鼠標(biāo)右鍵點(diǎn)擊NetPro中的MPI網(wǎng)絡(luò)線,執(zhí)行彈出的快捷菜單中的“定義全局?jǐn)?shù)據(jù)”命令。在出現(xiàn)的GD表對(duì)話框(見圖7-14)中對(duì)全局?jǐn)?shù)據(jù)通信進(jìn)行組態(tài)。
雙擊“GD ID”(GD標(biāo)識(shí)符)所在單元右邊的灰色單元,在出現(xiàn)的“選擇CPU”對(duì)話框中,雙擊CPU 413-1的圖標(biāo),CPU 413-1便出現(xiàn)在全局?jǐn)?shù)據(jù)表上面一行的方格中(見圖7-14),同時(shí)自動(dòng)退出“選擇CPU”對(duì)話框。用同樣的方法將另外兩個(gè)CPU放置在上面一行。
在CPU下面一行生成1號(hào)GD環(huán)1號(hào)GD包中的1號(hào)數(shù)據(jù),將CPU 413-1的IW0發(fā)送到CPU 313C的QW0。
首先用鼠標(biāo)右鍵點(diǎn)擊CPU 413-1下面的單元(方格),執(zhí)行出現(xiàn)的快捷菜單中的“發(fā)送器”命令,該方格變?yōu)樯钌?,同時(shí)在單元的左端出現(xiàn)符號(hào)“>”,表示在該行中CPU 413-1為發(fā)送站,在該單元中輸入要發(fā)送的全局?jǐn)?shù)據(jù)的地址IW0。只能輸入地址,不能輸入符號(hào)地址。包含定時(shí)器和計(jì)數(shù)器地址的單元只能作為發(fā)送方。在每一行中應(yīng)定義一個(gè)并且只能有一個(gè)CPU作為數(shù)據(jù)的發(fā)送方。同一行中各個(gè)單元接收或發(fā)送的字節(jié)數(shù)應(yīng)相同。
用鼠標(biāo)左鍵選中CPU 313C下面的單元,直接輸入QW0,該單元的背景為白色,表示在該行中CPU 313C是接收站。
變量的復(fù)制因子用來定義連續(xù)的數(shù)據(jù)區(qū)的長度,例如MB20:10表示從MB20開始的10B。S7-300的數(shù)據(jù)包大22B,MB0:22表示從MB0開始的22B,MW0:11表示從MW0開始的11個(gè)字。如果數(shù)據(jù)包由若干個(gè)連續(xù)的數(shù)據(jù)區(qū)組成,一個(gè)連續(xù)的數(shù)據(jù)區(qū)占用的空間為數(shù)據(jù)區(qū)內(nèi)的字節(jié)數(shù)加上兩個(gè)頭部說明字節(jié)。一個(gè)單獨(dú)的雙字占6B,一個(gè)單獨(dú)的字占4B,一個(gè)單獨(dú)的字節(jié)占3B,一個(gè)單獨(dú)的位也占3B。值得注意的是*個(gè)連續(xù)數(shù)據(jù)區(qū)的兩個(gè)頭部說明字節(jié)不包括在22B之內(nèi)。例如DB2. DBB0:10和QW0:5一共占用22B。
在圖7-14的第1行和第2行中,CPU 413-1和CPU 313C組成1號(hào)GD環(huán),兩個(gè)CPU分別向?qū)Ψ桨l(fā)送GD包,同時(shí)接收對(duì)方的GD包,相當(dāng)于全雙工點(diǎn)對(duì)點(diǎn)通信方式。
圖7-14中的第3行是CPU 413-1向CPU 313C和CPU 312C發(fā)送GD包,相當(dāng)于1:N的廣播通信方式。
圖7-14中的第4行和第5行都是CPU 312C向CPU 413-1發(fā)送數(shù)據(jù),它們是3號(hào)GD環(huán)1號(hào)GD包中的兩個(gè)全局?jǐn)?shù)據(jù)。

發(fā)送方CPU自動(dòng)地周期性地將地址中的數(shù)據(jù)發(fā)送到接收方的地址區(qū)中。例如圖7-14中的第5行意味著CPU 312C定時(shí)地將QW0~QW4中的數(shù)據(jù)發(fā)送到CPU 413-1的MB30~MB39。CPU 413-1對(duì)它自己的MB30~ MB39的訪問,就好像在訪問CPU 312C的QW0~QW4一樣。
完成全局?jǐn)?shù)據(jù)表的輸入后,應(yīng)點(diǎn)擊工具條中的
按鈕,對(duì)它進(jìn)行*次編譯,將各單元中的變量組合為GD包,同時(shí)生成GD環(huán)。圖7-14中的“GD ID”列中的GD標(biāo)識(shí)符是在編譯時(shí)自動(dòng)生成的。
4.設(shè)置掃描速率和狀態(tài)雙字的地址
掃描速率用來定義CPU刷新全局?jǐn)?shù)據(jù)的時(shí)間間隔。在*次編譯后,執(zhí)行菜單命令“查看”→“掃描速率”,每個(gè)數(shù)據(jù)包將增加標(biāo)有“SR”的行(見圖7-15),用來設(shè)置該數(shù)據(jù)包的掃描速率(1~ 255),掃描速率的單位是CPU的循環(huán)掃描周期,S7-300默認(rèn)的掃描速率為8,S7-400的為22,用戶可以修改默認(rèn)的掃描速率。如果選擇S7- 400的掃描速率為0,表示是事件驅(qū)動(dòng)的GD數(shù)據(jù)傳輸。掃描速率如果過快,可能造成通信中斷。
可以用GD數(shù)據(jù)傳輸?shù)臓顟B(tài)雙字來檢查數(shù)據(jù)是否被正確地傳送,*次編譯后執(zhí)行菜單命令“查看”→“GD狀態(tài)”,在出現(xiàn)的GDS行中可以給每個(gè)數(shù)據(jù)包一個(gè)用于狀態(tài)雙字的地址。上面一行的全局狀態(tài)雙字GST是各GDS行中的狀態(tài)雙字相“或”的結(jié)果。狀態(tài)雙字中使用的各位的意義可查閱有關(guān)的手冊,被置位的位將保持其狀態(tài)不變,直到它被用戶程序復(fù)位。
狀態(tài)雙字使用戶程序能及時(shí)了解通信的有效性和實(shí)時(shí)性,增強(qiáng)了系統(tǒng)的故障診斷能力。
設(shè)置好掃描速率和狀態(tài)雙字的地址后,應(yīng)對(duì)全局?jǐn)?shù)據(jù)表進(jìn)行第二次編譯,使掃描速率和狀態(tài)雙字地址包含在組態(tài)數(shù)據(jù)中。
5.下載與運(yùn)行
第二次編譯完成后,需要將組態(tài)好的信息下載到各CPU。比較方便的是使用計(jì)算機(jī)上安裝的網(wǎng)卡(例如CP 5611或CP 5613),通過MPI網(wǎng)絡(luò)下載和監(jiān)控通信過程。
首先分別單獨(dú)下載各CPU的MPI地址。然后用MPI電纜連接編程用的計(jì)算機(jī)和3臺(tái)PLC的MPI接口,令各臺(tái)PLC均處于STOP模式。點(diǎn)擊
按鈕,可以在下載對(duì)話框中選擇下載到所有CPU,或只下載到選中的CPU。
下載完成后將各CPU切換到RUN模式,各CPU之間將開始自動(dòng)地交換全局?jǐn)?shù)據(jù)。由圖7-14可知,CPU 413-1和CPU 313C的IW0分別控制對(duì)方的QW0,運(yùn)行時(shí)改變某臺(tái)PLC輸入點(diǎn)的狀態(tài),觀察對(duì)方對(duì)應(yīng)的輸出點(diǎn)是否隨之而變。
在運(yùn)行時(shí)同時(shí)打開各個(gè)站的變量表,調(diào)節(jié)它們的大小后,可以在屏幕上同時(shí)顯示各變量表中的動(dòng)態(tài)數(shù)據(jù)。用變量表改變發(fā)送站發(fā)送的變量的值,觀察接收站對(duì)應(yīng)的地址區(qū)中的變量的值是否隨之而變。也可以在OB35中編寫簡單的程序,使發(fā)送的數(shù)據(jù)不斷地動(dòng)態(tài)變化,觀察數(shù)據(jù)傳輸?shù)膭?dòng)態(tài)效果。

6.通信錯(cuò)誤組織塊OB87
在使用通信功能塊或全局?jǐn)?shù)據(jù)( GD)通信進(jìn)行數(shù)據(jù)交換時(shí),如果出現(xiàn)下列通信錯(cuò)誤,操作系統(tǒng)將調(diào)用OB87:
1)接收全局?jǐn)?shù)據(jù)時(shí),檢測到錯(cuò)誤的幀標(biāo)識(shí)符(ID)。
2)全局?jǐn)?shù)據(jù)通信的狀態(tài)信息數(shù)據(jù)塊不存在或太短。
3)接收到非法的全局?jǐn)?shù)據(jù)包編號(hào)。
如果沒有生成和下載OB87,CPLT將切換到STOP狀態(tài)。
7.事件驅(qū)動(dòng)的全局?jǐn)?shù)據(jù)通信
使用SFC 60“GD_SEND”和SFC 61“GD_RCV”,S7-400之間可以用事件驅(qū)動(dòng)的方式發(fā)送和接收GD包,實(shí)現(xiàn)全局通信。在全局?jǐn)?shù)據(jù)表中,必須對(duì)要傳送的GD包組態(tài),并將GD列的掃描速率設(shè)置為0。
為了保證全局?jǐn)?shù)據(jù)交換的連續(xù)性,在調(diào)用SFC 60之前應(yīng)調(diào)用SFC 39“DIS_IRT”或SFC 41“DIS_AIRT”來禁止或延遲更高級(jí)的中斷和異步錯(cuò)誤。SFC 60執(zhí)行完后調(diào)用SFC 40“EN_IRT”或SFC 42“EN_AIRT”,允許處理高優(yōu)先級(jí)的中斷和異步錯(cuò)誤。下面是用SFC 60發(fā)送數(shù)據(jù)包GD3.1的程序。
程序段1:延遲處理高中斷優(yōu)先級(jí)的中斷和異步錯(cuò)誤
CALL“DIS_AIRT” //調(diào)用SFC 41,延遲處理高中斷優(yōu)先級(jí)的中斷和異步錯(cuò)誤
RET_VAL := MW100 11返回的錯(cuò)誤信息
程序段2:發(fā)送全局?jǐn)?shù)據(jù)包GD 3. 1
A I 0.0
FP M 1.0
JNB _001 //不是I0.0的上升沿則跳轉(zhuǎn)
CALL “GD_SND” //調(diào)用SFC 60
CIRCLE_ID :=B#16#3 //GD環(huán)編號(hào),允許值為1~16
BLOCK_ID :=B#16#1 //GD包編號(hào),允許值為1~4
RET_VAL :=MW102 //返回的錯(cuò)誤信息
_001:NOP 0
程序段3:允許處理高中斷優(yōu)先級(jí)的中斷和異步錯(cuò)誤
CALL“EN_AIRT" //調(diào)用SFC 42,允許處理高中斷優(yōu)先級(jí)的中斷和異步錯(cuò)誤
RET_VAL := MW104 //返回的錯(cuò)誤信息
CIRCLE_ID和BLOCK_ID分別是要發(fā)送的全局?jǐn)?shù)據(jù)包的GD環(huán)和GD包的編號(hào),允許的取值范圍可以查閱CPU的技術(shù)數(shù)據(jù)。上述編號(hào)是用STEP 7組態(tài)GD數(shù)據(jù)表時(shí)設(shè)置的。
RET_VAL是返回的錯(cuò)誤信息,錯(cuò)誤信息代碼可以查閱有關(guān)的手冊。

西門子NCU開機(jī)面板燈不停的閃維修