詳細(xì)介紹
西門子 6ES75121DK010AB0系列PLC基于MPI、PROFIBUS,、ETHERNET網(wǎng)絡(luò)的一種優(yōu)化的通信協(xié)議,,主要用于S7-300/400PLC之間的通信,。
S7-300/400通過以太網(wǎng)接口與S7-200 SMART PLC 之間的S7通訊經(jīng)過測試是可以成功的,,但是需要S7-300/400側(cè)編程調(diào)用PUT/GET指令,,見表1所示。
表 1 PUT和GET :S7-400 S7-300 描述 簡要描述 SFB 14 FB 14 讀數(shù)據(jù) 單邊編程讀訪問,。 SFB 15 FB 15 寫數(shù)據(jù) 單邊編程寫訪問,。 S7-300/400根據(jù)使用通信接口(集成的PN口或CP343-1/CP443-1)不同,調(diào)用的功能塊來源也不同,。
通信接口為S7-300 集成PN接口時,,需要使用Standard Library中PUT/GET指令,如圖1所示,。
圖1 S7-300PN接口需采用Standard Library通信接口為S7-300 CP通信模塊時,,需要使用SIMATIC_NET_CP 庫中PUT/GET指令,如圖2所示,。
圖2 S7-300 CP模塊接口需采用SIMATIC_NET_CP庫S7-400 CPU不區(qū)分通信接口,,需要使用System Function Blocks 中的SFB14/SFB15指令塊,如圖3所示,。
西門子 6ES75121DK010AB0
圖3 S7-400 需采用SFB程序塊硬件及網(wǎng)絡(luò)組態(tài)
本文以采用1個315-2PN/DP,,1個S7-200 SMART PLC為例,介紹它們之間的S7通信,。
在STEP7中創(chuàng)建一個新項(xiàng)目,,項(xiàng)目名稱為S7-300-SMART。插入1個S7-300站,,在硬件組態(tài)中插入CPU 315-2 PN/DP,。如圖4所示。
圖4 STEP7 項(xiàng)目中插入S7-300站點(diǎn)
設(shè)置CPU 315-2PN/DP的IP地址:192.168.0.1,,如圖5所示,。硬件組態(tài)完成后,即可下載該組態(tài),。
圖5 設(shè)置CPU PN IP地址
打開“NetPro”設(shè)置網(wǎng)絡(luò)參數(shù),,選中CPU 315-2PN/DP,在連接列表中建立新的連接,。步驟如圖6所示,。
圖6 NetPro組態(tài)視圖中插入新連接選擇 Unspecified 站點(diǎn),選擇通訊協(xié)議 S7 connection,,點(diǎn)擊 Apply,,如圖7所示。
圖7 組態(tài)新連接在彈出的S7 connection屬性對話框中,,勾選 Establish an active connection,設(shè)置Partner address:192.168.0.2(S7-200 SMART PLC IP 地址),,如圖8所示,。
圖8 設(shè)置S7連接參數(shù)
點(diǎn)擊 "Address Details" ,再彈出來的對話框設(shè)置 Partner 的 Slot 為1,,如圖9所示,。點(diǎn)擊 OK即可關(guān)閉該對話框。
圖9 設(shè)置“address details”參數(shù)網(wǎng)絡(luò)組態(tài)創(chuàng)建完成后,,需要編譯,,如圖10所示。
圖10 保存并編譯連接
網(wǎng)絡(luò)組態(tài)編譯無錯,,鼠標(biāo)先點(diǎn)擊 CPU 315-2PN/DP ,然后點(diǎn)擊下載按鈕下載網(wǎng)絡(luò)組態(tài),,步驟如圖11所示。
圖 11 下載組態(tài)連接程序編程
可以通過SFB/FB 14 "GET",,從遠(yuǎn)程CPU中讀取數(shù)據(jù),。
S7-300:在REQ的上升沿處讀取數(shù)據(jù)。在REQ的每個上升沿處傳送參數(shù)ID,、ADDR_1和RD_1,。在每個作業(yè)結(jié)束之后,可以分配新數(shù)值給ID,、ADDR_1和RD_1參數(shù),。
S7-400:在控制輸入REQ的上升沿處啟動SFB。在此過程中,,將要讀取的區(qū)域的相關(guān)指針(ADDR_i)發(fā)送到伙伴CPU,。遠(yuǎn)程伙伴返回此數(shù)據(jù)。在下一個SFB/FB調(diào)用處,,已接收的數(shù)據(jù)被復(fù)制到組態(tài)的接收區(qū)(RD_i)中,。必須要確保通過參數(shù)ADDR_i和RD_i定義的區(qū)域在長度和數(shù)據(jù)類型方面要相互匹配。
通過狀態(tài)參數(shù)NDR數(shù)值為1來指示此作業(yè)已完成,。只有在前一個作業(yè)已經(jīng)完成之后,,才能重新激活讀作業(yè)。遠(yuǎn)程CPU可以處于RUN或STOP工作狀態(tài),。如果正在讀取數(shù)據(jù)時發(fā)生訪問故障,,或如果數(shù)據(jù)類型檢查過程中出錯,則出錯和警告信息將通過ERROR和STATUS輸出表示,。通過使用SFB/FB 15 "PUT",,可以將數(shù)據(jù)寫入到遠(yuǎn)程CPU。
S7-300:在REQ的上升沿處發(fā)送數(shù)據(jù),。在REQ的每個上升沿處傳送參數(shù)ID,、ADDR_1和SD_1。在每個作業(yè)結(jié)束之后,,可以給ID,、ADDR_1和SD_1參數(shù)分配新數(shù)值,。
S7-400:在控制輸入REQ的上升沿處啟動SFB。在此過程中,,將指向要寫入數(shù)據(jù)的區(qū)域(ADDR_i)的指針和數(shù)據(jù)(SD_i)發(fā)送到伙伴CPU,。 遠(yuǎn)程伙伴將所需要的數(shù)據(jù)保存在隨數(shù)據(jù)一起提供的地址下面,并返回一個執(zhí)行確認(rèn),。必須要確保通過參數(shù)ADDR_i和SD_i定義的區(qū)域在編號,、長度和數(shù)據(jù)類型方面相互匹配,。
如果沒有產(chǎn)生任何錯誤,,則在下一個SFB/FB調(diào)用時,通過狀態(tài)參數(shù)DONE來指示,,其數(shù)值為1,。只有在后一個作業(yè)完成之后,才能再次激活寫作業(yè),。遠(yuǎn)程CPU可以處于RUN或STOP模式,。如果正在寫入數(shù)據(jù)時發(fā)生訪問故障,或如果執(zhí)行檢查過程中出錯,,則出錯和警告信息將通過ERROR和STATUS輸出表示,。
打開SIMATIC 315 PN-1的OB1,在OB1中依次調(diào)用FB14,,F(xiàn)B15如圖12,、圖13所示:
圖12 FB14調(diào)用
表2.FB14參數(shù)說明 :參數(shù)
描述
數(shù)據(jù)類型
存儲區(qū)
描述
REQ
INPUT
BOOL
I、Q,、M,、D、L
上升沿觸發(fā)調(diào)用功能塊
ID
INPUT
WORD
M,、D,、常數(shù)
地址參數(shù)ID
NDR
OUTPUT
BOOL
I、Q,、M,、D、L
為1時,,接收數(shù)據(jù)成功
ERROR
OUTPUT
BOOL
I,、Q、M,、D,、L
接收到新數(shù)據(jù)
STATUS
OUTPUT
WORD
I、Q,、M,、D,、L
故障代碼
S7-300:
ADDR_1
S7-400:
ADDR_i
(1 ≤ i ≤ 4)IN_OUT
ANY
M、D
I,、Q,、M、D,、
T,、C從S7-200 SMART的數(shù)據(jù)地址中讀取數(shù)據(jù);V區(qū)數(shù)據(jù)對應(yīng)DB1。
S7-300:
RD_1
S7-400:
RD_i
(1 ≤ i ≤ 4)IN_OUT
ANY
S7-300:M,、D
S7-400 I,、Q、
M,、D,、T、C本站接收數(shù)據(jù)地址
圖13 FB15調(diào)用
表3.FB15參數(shù)說明 :參數(shù)
描述
數(shù)據(jù)類型
存儲區(qū)
描述
REQ
INPUT
BOOL
I,、Q,、M、D,、L
上升沿觸發(fā)調(diào)用功能塊
ID
INPUT
WORD
M,、D、常數(shù)
地址參數(shù)
DONE
OUTPUT
BOOL
I,、Q,、M、D,、L
為1時,,發(fā)送完成
ERROR
OUTPUT
BOOL
I、Q,、M,、D、L
為1時,,有故障發(fā)生
STATUS
OUTPUT
WORD
I,、Q、M,、D,、L
故障代碼
S7-300:
ADDR_1
S7-400:
ADDR_i
(1 ≤ i ≤ 4)IN_OUT
ANY
M、D
I,、Q,、M、D、
T,、C從S7-200 SMART的數(shù)據(jù)地址中讀取數(shù)據(jù);V區(qū)數(shù)據(jù)對應(yīng)DB1,。
S7-300:
SD_1
S7-400:
SD_i
(1 ≤ i ≤ 4)IN_OUT
ANY
S7-300:M、D
S7-400 I,、Q,、
M、D,、T,、C本站發(fā)送數(shù)據(jù)地址