西門子S7-200 SMART CPU之間的以太網(wǎng)通信
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可實現(xiàn)CPU、編程設備和HMI(觸摸屏)之間的多種通信:
— CPU與編程設備之間的數(shù)據(jù)交換。
— CPU與HMI之間的數(shù)據(jù)交換。
— CPU與其他S7-200 SMART CPU之間的PUT/GET通信。
S7-200 SMART CPU 以太網(wǎng)連接資源如下:
— 1個連接用于與STEP7 Micro/Win SMART軟件的通信。
— 8個連接用于CPU與HMI之間的通信。
— 8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET主動連接
— 8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET被動連接
S7-200 SMART CPU提供了PUT/GET 指令,用于S7-200 SMART CPU之間的以太網(wǎng)通信(PUT/GET 指令格式見 表 1)。PUT/GET 指令只需要在主動建立連接的 CPU 中調(diào)用執(zhí)行,被動建立連接的 CPU不需要進行通信編程。PUT/GET 指令中TABLE 參數(shù)用于定義遠程CPU的 IP地址、本地CPU和遠程 CPU的數(shù)據(jù)區(qū)域以及通信長度(TABLE 參數(shù)定義見 表 2)。
表 1 PUT和GET 指令:
LAD/FBD
|
STL |
描述 |
|
PUT TABLE |
PUT 指令啟動以太網(wǎng)端口上的通信操作,將數(shù)據(jù)寫入遠程設備。PUT 指令可向遠程設備寫入最多 212 個字節(jié)的數(shù)據(jù)。 |
|
GET TABLE |
GET 指令啟動以太網(wǎng)端口上的通信操作,從遠程設備獲取數(shù)據(jù)。GET 指令可從遠程設備讀取最多 222 個字節(jié)的數(shù)據(jù)。 |
表 2 PUT和GET 指令的TABLE參數(shù)定義:
字節(jié)偏移量
|
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
0 |
D1 |
A2 |
E3 |
0 |
錯誤代碼4 |
|||
1 |
遠程 CPU的 IP地址 |
|||||||
2 |
||||||||
3 |
||||||||
4 |
||||||||
5 |
預留(必須設置為0) |
|||||||
6 |
預留(必須設置為0) |
|||||||
7 |
指向遠程 CPU 通信數(shù)據(jù)區(qū)域的地址指針 |
|||||||
8 |
||||||||
9 |
||||||||
10 |
||||||||
11 |
通信數(shù)據(jù)長度5 |
|||||||
12 |
指向本地 CPU 通信數(shù)據(jù)區(qū)域的地址指針 |
|||||||
13 |
||||||||
14 |
||||||||
15 |
1 D :通信完成標志位,通信已經(jīng)成功完成或者通信發(fā)生錯誤。
2 A :通信已經(jīng)激活標志位。
3 E :通信發(fā)生錯誤,錯誤原因需要查詢 錯誤代碼4。
4 錯誤代碼 :見表 3 PUT 和 GET 指令TABLE 參數(shù)的錯誤代碼。
5 通信數(shù)據(jù)長度 :需要訪問遠程 CPU通信數(shù)據(jù)的字節(jié)個數(shù),PUT 指令可向遠程設備寫入最多 212 個字節(jié)的數(shù)據(jù),GET 指令可從遠程設備讀取最多 222 個字節(jié)的數(shù)據(jù)。
表 3 PUT 和 GET 指令TABLE 參數(shù)的錯誤代碼:
錯誤代碼
|
描述 |
0 |
通信無錯誤 |
1 |
PUT/GET TABLE參數(shù)表中存在非法參數(shù):
|
2 |
同一時刻處于激活狀態(tài)的 PUT/GET 指令過多(僅允許 16 個) |
3 |
無可以連接資源,當前所有的連接都在處理未完成的數(shù)據(jù)請求(S7-200 SAMRT CPU主動連接資源數(shù)為 8 個)。 |
4 |
從遠程 CPU 返回的錯誤:
|
5 |
與遠程 CPU 之間無可用連接:
|
6-9 |
預留 |
S7-200 SMART CPU 以太網(wǎng)端口含有 8 個PUT/GET 主動連接資源和 8 個PUT/GET 被動連接資源。例如:CPU1 調(diào)用 PUT/GET 指令與 CPU2 ~ CPU9 建立8主動連接的同時,可以與 CPU10 ~ CPU17 建立8被動連接(CPU10 ~ CPU17 調(diào)用 PUT/GET 指令),這樣的話 CPU1 可以同時與16臺 CPU(CPU2 ~ CPU17)建立連接。關于主動連接資源和被動連接資源的詳細解釋如下:
1、主動連接資源和被動連接資源在下面的例子中,CPU1 為主動端,其 IP 地址為192.168.2.100,調(diào)用 PUT/GET 指令;CPU2 為被動端,其 IP 地址為192.168.2.101,不需調(diào)用 PUT/GET 指令,網(wǎng)絡配置見圖 1 。通信任務是把 CPU1 的實時時鐘信息寫入 CPU2 中,把CPU2 中的實時時鐘信息讀寫到 CPU1 中。
圖 1 CPU通信網(wǎng)絡配置圖
CPU1 主程序中包含讀取 CPU 實時時鐘、初始化 PUT/ GET 指令的 TABLE 參數(shù)表、調(diào)用 PUT 指令和 GET 指令等。
圖 2 讀取 CPU1 實時時鐘
注:READ_RTC 指令用于讀取 CPU 實時時鐘指令,并將其存儲到從字節(jié)地址 T 開始的 8 字節(jié)時間緩沖區(qū)中,數(shù)據(jù)格式為 BCD 碼。
圖 3 定義 PUT 指令 TABLE 參數(shù)表
圖 4 定義 GET 指令 TABLE 參數(shù)表
圖 5 調(diào)用 PUT 指令和 GET 指令
CPU2 的主程序只需包含一條語句用于讀取 CPU2 的實時時鐘,并存儲到 VB100 ~ VB107,如圖 6 所示。
圖 6 讀取 CPU2 實時時鐘
為了更好地理解 PUT/GET指令的使用,可參考下面的例程。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術支持與服務部門。
電話:15721373211
郵箱:15721373211@139.com
網(wǎng)址:http://youmiyou.cn/
地址:上海青浦區(qū)北青公路7171號111-112室