山東西門(mén)子S7-1500PLC模塊代理(歡迎您)

西門(mén)子S7基本通信SFC的公用參數(shù)的說(shuō)明
(1)輸入?yún)?shù)REQ
REQ(請(qǐng)求激活)是電平觸發(fā)的控制參數(shù),REQ為1時(shí)觸發(fā)任務(wù)。
(2)輸入?yún)?shù)REQ_ID
僅SFC 65和SFC 66使用REQ_ID來(lái)識(shí)別發(fā)送的數(shù)據(jù)。下列情況下,需要在接收端使用參數(shù)REQ_ID:
1)發(fā)送端的CPU用不同的REQ_ID調(diào)用幾次SFC 65,將數(shù)據(jù)發(fā)送到同一個(gè)通信伙伴。
2)不同的CPU調(diào)用SFC 65,將數(shù)據(jù)發(fā)送到同一個(gè)通信伙伴。
根據(jù)REQ_ID可以將接收到的數(shù)據(jù)保存到不同的存儲(chǔ)區(qū)。
(3)輸入?yún)?shù)CONT
輸入?yún)?shù)CONT(Continue,繼續(xù))的值如果為1(TRUE),表示任務(wù)完成后繼續(xù)保持與通信伙伴的連接。如果要在兩個(gè)站之間周期性地交換數(shù)據(jù),可以令CONT為1。建立的連接可以用SFC 69“X_ABORT”來(lái)終止。
如果在調(diào)用SFC時(shí)令CONT=0,連接在數(shù)據(jù)傳輸完成后被終止,又可以使用該連接來(lái)與一個(gè)新的通信伙伴交換數(shù)據(jù)。這種方式可以確保只是在實(shí)際使用時(shí)才占用連接資源。
S7基本通信的系統(tǒng)功能(SFC)分為兩類(lèi):
1) I_GET與I_PUT(見(jiàn)表9-2)用于CPU與同一個(gè)S7站的其他有通信功能的模塊之間交換數(shù)據(jù)。SFC名稱(chēng)中的“I”表示內(nèi)部。
2) X_SEND、X_RCV、X_GET與X_PUT用于S7 CPU與其他具有通信功能的模塊之間交換數(shù)據(jù),通信伙伴在同一個(gè)MPI子網(wǎng)內(nèi),但不是在同一個(gè)站內(nèi)。塊的名稱(chēng)中的“X”表示外部。用于S7基本通信的SFC可以在所有的S7 - 300/400 CPU上運(yùn)行。
表9-2 用于S7基本通信的SFC
S7基本通信服務(wù)通過(guò)調(diào)用系統(tǒng)功能(SFC)和不需組態(tài)的S7連接進(jìn)行數(shù)據(jù)交換,只能用于MPI網(wǎng)絡(luò)。這些SFC可以訪問(wèn)所有S7和C7 PLC中的數(shù)據(jù),發(fā)送多76 B的數(shù)據(jù)給MPI網(wǎng)絡(luò)中的S7 PLC、HMI或PC。S7基本通信的SFC集成在CPU的操作系統(tǒng)中,并用SFC提供用戶程序的軟件接口。S7基本通信不能與其他子網(wǎng)中的站進(jìn)行通信。
PG(編程器)通信和S7基本通信不需要對(duì)連接組態(tài),這種連接也稱(chēng)為動(dòng)態(tài)連接。通過(guò)通信塊SFC 65~SFC 68的參數(shù),通信伙伴的地址和觸發(fā)通信的信號(hào),并確定完成數(shù)據(jù)傳輸后該連接是繼續(xù)保持或終止。
在同一時(shí)刻,一個(gè)不需要組態(tài)的連接只能用于一個(gè)通信伙伴,與不同的通信伙伴的連接可以一個(gè)接一個(gè)地建立和終止。完成與某一通信伙伴的數(shù)據(jù)傳輸后,可以連接其他通信伙伴,因此可以相繼訪問(wèn)的通信伙伴的數(shù)量不受連接資源的限制。但是CPU同時(shí)建立的連接總數(shù)不能超過(guò)可以同時(shí)使用的大連接個(gè)數(shù)的限制。由于在通信過(guò)程中必須考慮連接的建立和斷開(kāi),因此降低了網(wǎng)絡(luò)的數(shù)據(jù)傳輸能力。CPU進(jìn)入STOP模式時(shí),所有已建立的連接被終止。
使用SFC 60“GD_SEND”和SFC 61“GD_RCV”,S7 - 400之間可以用事件驅(qū)動(dòng)的方式發(fā)送和接收GD包,實(shí)現(xiàn)全局?jǐn)?shù)據(jù)通信。應(yīng)在全局?jǐn)?shù)據(jù)表中組態(tài)用事件驅(qū)動(dòng)方式發(fā)送的GD包,并將該GD包的掃描速率設(shè)置為0。
在SIMATIC管理器中新建一個(gè)項(xiàng)目,項(xiàng)目名稱(chēng)為“MPI_GD_B”。首先在SIMATIC管理器中生成兩個(gè)站,它們的CPU均為CPU 413 -2DP,MPI站地址分別為2和3,將它們連接到MPI網(wǎng)絡(luò)上。為兩個(gè)站點(diǎn)生成數(shù)據(jù)塊DB 1、DB 2和組織塊OB100、OB35、OB87,在各數(shù)據(jù)塊中生成一個(gè)數(shù)組。
打開(kāi)網(wǎng)絡(luò)組態(tài)工具NetPro,用鼠標(biāo)右鍵點(diǎn)擊MPI網(wǎng)絡(luò)線,執(zhí)行彈出的快捷菜單中的“定義全局?jǐn)?shù)據(jù)”命令。用出現(xiàn)的GD表(見(jiàn)圖9-8)對(duì)全局?jǐn)?shù)據(jù)通信組態(tài),將雙方的ID0發(fā)送到對(duì)方的QD0。將雙方的DB 1中的54B數(shù)據(jù)發(fā)送到對(duì)方的DB 2。
為了實(shí)現(xiàn)事件驅(qū)動(dòng)的全局?jǐn)?shù)據(jù)通信,將全局?jǐn)?shù)據(jù)包GD2.1的掃描速率(SR2.1)設(shè)置為0。
SFC 60和SFC 61可以在用戶程序中的任何一點(diǎn)被調(diào)用,全局?jǐn)?shù)據(jù)表中設(shè)置的掃描速率不受調(diào)用SFC 60和SFC 61的影響。
SFC 60和SFC 61可能被更高優(yōu)先級(jí)的塊中斷。為了保證全局?jǐn)?shù)據(jù)交換的連續(xù)性,在調(diào)用SFC 60之前,調(diào)用SFC 41“DIS_AIRT”,來(lái)延遲處理更高優(yōu)先級(jí)的中斷和異步錯(cuò)誤。執(zhí)行完SFC 60后,調(diào)用SFC 42“EN_AIRT”,允許處理高優(yōu)先級(jí)的中斷和異步錯(cuò)誤。
下面是2號(hào)站的CPU 413 -2DP的081中的程序,調(diào)用SFC 60發(fā)送數(shù)據(jù)包GD2.1。
程序段1:延遲處理高中斷優(yōu)先級(jí)的中斷和異步錯(cuò)誤
CALL”DIS_AIRT” //調(diào)用SFC 41
RET_VAL :=MW100 //返回的錯(cuò)誤信息
程序段2:發(fā)送全局?jǐn)?shù)據(jù)包GD 2.1
A I 0.0
FP M 1.0
JCN _001 //不是I0.0的上升沿則跳轉(zhuǎn)
CALL “GD_SND” //調(diào)用SFC 60
CIRCLE_ID:=B#16#2 //組態(tài)時(shí)設(shè)置的GD環(huán)編號(hào)
BLOCK_ID :=B#16#1 //組態(tài)時(shí)設(shè)置的GD包編號(hào)
RET_VAL :=MW102 //返回的錯(cuò)誤信息
-001: NOP 0
程序段3:允許處理高中斷優(yōu)先級(jí)的中斷和異步錯(cuò)誤
CALL “EN_AIRT” //調(diào)用SFC 42
RET_VAL :=MW104 //返回的錯(cuò)誤信息
下面是3號(hào)站的081調(diào)用SFC 61接收數(shù)據(jù)包GD2.1的程序:
CALL“GD_RCV” //調(diào)用SFC 61
CIRCLE_ID :=B#16#2 //組態(tài)時(shí)設(shè)置的GD環(huán)編號(hào)
BLOCK_ID :=B#16#1 //組態(tài)時(shí)設(shè)置的GD包編號(hào)
RET_VAL :=MW106 //返回的錯(cuò)誤信息
各CPU的OB100中,分別將DB 1中的發(fā)送區(qū)預(yù)置為16#4131和16#4132,將DB 2中的數(shù)據(jù)接收區(qū)清零。在OB35中,每100 ms將要發(fā)送的*個(gè)字DB1. DBW0加1。
將組態(tài)信息和程序分別下載到各CPU,然后用PROFIBUS電纜連接編程用的計(jì)算機(jī)和兩臺(tái)PLC的MPI接口。將兩臺(tái)CPU切換到RUN模式,CPU之間開(kāi)始自動(dòng)地交換全局?jǐn)?shù)據(jù)。
圖9-9~圖9-11是系統(tǒng)運(yùn)行時(shí)復(fù)制的各站點(diǎn)的變量表。進(jìn)入RUN模式后,通信雙方開(kāi)始周期性地將ID0傳送給對(duì)方的QD0,3號(hào)站周期性地將DB 1中的數(shù)據(jù)傳送到2號(hào)站的DB 2。
圖9-9 2號(hào)站的變量表
圖9-10 剛開(kāi)始進(jìn)入RUN模式的3號(hào)站變量表
圖9-11 事件觸發(fā)數(shù)據(jù)發(fā)送后的3號(hào)站變量表
3號(hào)站的DB 2的前54 B數(shù)據(jù)被OB100初始化為0。在2號(hào)站的I0.0的上升沿調(diào)用SFC 60,將2號(hào)站的DB 1中的數(shù)據(jù)傳送到3號(hào)站的DB 2。
圖9-10和圖9-11是I0.0*個(gè)上升沿觸發(fā)數(shù)據(jù)發(fā)送之前和觸發(fā)發(fā)送之后的3號(hào)站的變量表。2號(hào)站的DB 1的前54B的數(shù)據(jù)字被OB100初始化為16#4131,OB35將DB1.DBW0不斷加1。在每次I0.0的上升沿,2號(hào)站的DB 1中的數(shù)據(jù)被發(fā)送給3號(hào)站的DB 2,3號(hào)站的DB2.DBW0的值才會(huì)變化。
山東西門(mén)子S7-1500PLC模塊代理(歡迎您)