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