如何實現400H與S7-1500 之間的S7通訊

1、400H 與 S7-1500 通訊方案

西門子 400H 高可用性冗餘控制器,自推出以來,在市場中得到了廣泛的應用。S7-400H可滿足對現代自動化系統在可用性、智能化和分散化方面提出的高要求。該系統還提供了採集和準備過程數據所需的所有功能,其中包括對裝配和設備進行的開環控制、閉環控制和監視的功能。通訊帶有集成 PN 口以及 PROFIBUS DP 接口,靈活應用於多種通訊協議,並且可以通過通訊模塊擴展多個接口,可用性高。

S7-1500 是西門子近年推出的新 PLC 產品系列,在各行各業都得到了極為廣泛的應用。以CPU1516 為例,控制器本身集成了三個接口,一個帶兩個物理接口、支持 IRT 的 Profinet接口X1,一個以太網接口 X2,一個 Profibus DP 接口 X3。

如何實現400H與S7-1500 之間的S7通訊


在實際工程項目中,經常會遇到 400H 和 S7-1500 通訊的問題,基於兩類控制器所支持的接口而言,有三種可能的通訊方式:Profibus DP、以太網。考慮到 S7-1500 和 400H 集成的DP 接口均只能用作 DP 主站,所以兩者之間不能採用 Profibus DP 的主從通訊方式。

本文主要介紹通過以太網以及 PCS7 工業庫實現 400H 和 S7-1500 之間的通訊。

要實現 H 系統集成 PN 口與 S7-1500 的通訊,可以採用基於 S7 連接的方式,配合“H_Status”功能塊來確定激活哪一個 CPU 的連接完成數據交換。

本文采用的網絡結構如下所示:


如何實現400H與S7-1500 之間的S7通訊


400H 與 1500 通訊網絡結構圖

2、400H 與 S7-1500 通訊組態

2.1 S7-1500 通訊組態

系統採用 TIAPortal V14 Update1 軟件,控制器採用 1516-3PN/DP 控制器,組態控制器如下圖所示。

如何實現400H與S7-1500 之間的S7通訊


在設備視圖中選擇相應的 PS 電源: 6ES7 507-0BA00-0AB0 , 1516-3PN/DP CPU : 6ES7516-3AN00-0AB0 ,選擇對應用於通訊的網口配置以太網地址(本文配置的地址為192.168.1.16),本文中 1516-3PN/DP 有三個用於以太網通訊的網口,選擇和 400H 冗餘通訊的網口,本文選擇以太網口 2,具體配置如下圖。

如何實現400H與S7-1500 之間的S7通訊


注意需要設置 CPU 的連接機制屬性:允許來自遠程對象的 PUT/GET 訪問

如何實現400H與S7-1500 之間的S7通訊


定義用於通訊的數據塊,本文定義用於接收的數據塊為 DB30,用於發送的數據塊為 DB40,數據類型為 int 型,Array[0..15],如下圖所示。

如何實現400H與S7-1500 之間的S7通訊


定義用於接收和發送的數據塊

如何實現400H與S7-1500 之間的S7通訊


定義用於接收和發送的數據類型

此處需要注意設置 DB 塊的屬性,取消“優化的塊訪問”,如下圖所示:

如何實現400H與S7-1500 之間的S7通訊


DB 塊的屬性設置

點擊菜單欄中的下載按鈕,把程序下載到對應的 CPU 中,如下圖所示:

如何實現400H與S7-1500 之間的S7通訊


程序下載

S7-1500 方面的組態完成,接下來是對 400H 方面的組態。

2.2 400H 通訊組態

系統採用 PCS7 V9.0 軟件,控制器採用 412-5H 控制器,組態控制器如下圖所示,拖入UR2-H機架,選擇 CPU412-5H:6ES7412-5HK06-0AB0 並配置以太網地址 192.168.1.133以及192.168.1.144(雙擊 PN-IO 設置 IP 地址)

如何實現400H與S7-1500 之間的S7通訊


400H 硬件組態

打開 NetPro 網絡組態,配置 400H 與 S7-1500 的 S7 連接,具體如下圖所示,輸入 Local ID以及對應的 S7-1500 控制器的 IP 地址,選擇“S7 未指定的連接”

如何實現400H與S7-1500 之間的S7通訊


建立未指定的 S7 連接

在屬性中設置 Local ID=1,填寫 1516-3PN/DP 設置的以太網 IP 地址,主從 CPU 均需配置“S7 未指定的連接”,本文從 CPU 的 Local ID=2。

如何實現400H與S7-1500 之間的S7通訊


設置連接參數

點擊 Address Details,設置連接資源屬性,此處 400H CPU 選擇 connection resource=10,連接夥伴 connection resource=3,連接夥伴需要設置機架號和槽號,參考 1500 之前的硬件組態,rack=0,slot=1,400H 從 CPU 選擇 connection resource=11,400H CPU 的機架號和槽號為默認設置即可。

如何實現400H與S7-1500 之間的S7通訊


設置 TSAP 號

網絡組態設置完成之後,對通訊的 DB 塊以及 CFC 程序進行編寫,本文設置的用於發送的數據塊為 DB30,用於接收的數據塊為 DB40,對應的數據類型和 1500 保持一致,程序編寫調用“H_Status”對 CPU 的狀態進行監視,調用 PCS7 V9.0 Industry Lib S7 V90 中用於通訊的S7Get(FB1198),S7Put(FB1199)功能塊,具體見下圖:

如何實現400H與S7-1500 之間的S7通訊


DB 塊的建立

如何實現400H與S7-1500 之間的S7通訊


讀寫程序的編寫

“H_Status”用於讀取 CPU 的 master 狀態,如圖所示“R0_MSTR”為 RACK0 機架的CPU 處於主 CPU 的狀態,“R1_MSTR”為 RACK1 機架的 CPU 處於主 CPU 的運行狀態,通過切換來調用 S7Put,S7Get 塊來進行數據交換;

S7Put 需要設置的管腳為:

START:為 1 時開始執行讀寫操作;

KOM_ID:對應“S7 未指定連接”的 Local ID;

DBNO_SRC:400 側用於發送的數據塊地址,本文為 DB30;

ADDR_SRC;400 側用於發送的數據塊的起始地址,本文從 0 地址開始;

DBNO_DST:1500 側用於接收的數據塊地址,本文為 DB30;

ADDR_DST;1500 側用於發送的數據塊的起始地址,本文從 0 地址開始;

LENGTH:設置用於通訊的地址區域的長度,本文設置為 4;

S7Get 需要設置的管腳為:

START:為 1 時開始執行讀寫操作;

KOM_ID:對應“S7 未指定連接”的 Local ID;

DBNO_SRC:400 側用於發送的數據塊地址,本文為 DB40;

ADDR_SRC;400 側用於發送的數據塊的起始地址,本文從 0 地址開始;

DBNO_DST:1500 側用於接收的數據塊地址,本文為 DB40;

ADDR_DST;1500 側用於發送的數據塊的起始地址,本文從 0 地址開始;

LENGTH:設置用於通訊的地址區域的長度,本文設置為 12;

建立完成之後,把硬件組態,網絡組態以及程序下載到 400H CPU 中。

3、400H 與 S7-1500 通訊測試

首先查看網絡組態中建立的 S7 未指定的連接是否建立,如下圖所示,主從 CPU 的連接狀態都是 set up 的狀態,證明網絡已經建立正常。

如何實現400H與S7-1500 之間的S7通訊

400H 主從 CPU 網絡連接狀態

在線監視程序是否成功讀寫數據

如何實現400H與S7-1500 之間的S7通訊

RACK0 機架 CPU 讀寫數據

RACK0 機架 CPU 與 RACK1 機架 CPU 進行主備切換時,通過“H_Status”進行切換,讀取數據,如下圖所示:

如何實現400H與S7-1500 之間的S7通訊

RACK1 機架 CPU 讀寫數據

程序數據讀取狀態,下圖所示:

如何實現400H與S7-1500 之間的S7通訊


DB 塊數據讀寫


分享到:


相關文章: