詳細介紹
西門子6ES75101DJ010AB0提供了PUT/GET 指令,用于S7-200 SMART CPU之間的以太網(wǎng)通信(PUT/GET 指令格式見 表 1)。PUT/GET 指令只需要在主動建立連接的 CPU 中調用執(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 | 預留 |
通信資源數(shù)量
S7-200 SMART CPU 以太網(wǎng)端口含有 8 個PUT/GET 主動連接資源和 8 個PUT/GET 被動連接資源。例如:CPU1 調用 PUT/GET 指令與 CPU2 ~ CPU9 建立8主動連接的同時,可以與 CPU10 ~ CPU17 建立8被動連接(CPU10 ~ CPU17 調用 PUT/GET 指令),這樣的話 CPU1 可以同時與16臺 CPU(CPU2 ~ CPU17)建立連接。關于主動連接資源和被動連接資源的詳細解釋如下:
1、主動連接資源和被動連接資源
- 調用 PUT/GET 指令的CPU 占用主動連接資源數(shù);相應的遠程 CPU 占用被動連接資源。
2、8 個PUT/GET 主動連接資源
- S7-200 SMART CPU 程序中可以包含遠多于 8個PUT/GET 指令的調用,但是在同一時刻多只能激活 8 個 PUT/GET 連接資源。
- 同一時刻對同一個遠程 CPU 的多個 PUT/GET 指令的調用,只會占用本地 CPU的一個主動連接資源和遠程 CPU的一個被動連接資源。本地 CPU 與遠程 CPU之間只會建立一條連接通道,同一時刻觸發(fā)的多個 PUT/GET 指令將會在這條連接通道上順序執(zhí)行。
- 同一時刻多能對8個不同 IP 地址的遠程 CPU 進行 PUT/GET 指令的調用,第9個 遠程CPU的PUT/GET 指令調用將報錯,無可用連接資源。已經(jīng)成功建立的連接將被保持,直到遠程 CPU斷電或者物理斷開。
3、8 個PUT/GET 被動連接資源
- S7-200 SMART CPU 調用 PU西門子6ES75101DJ010AB0T/GET 指令,執(zhí)行主動連接的同時也可以被動地被其他遠程 CPU 進行通信讀寫。
- S7-200 SMART多可以與被8個不同 IP 地址的遠程 CPU 進行 建立被動連接。已經(jīng)成功建立的連接將被保持,直到遠程 CPU斷電或者物理斷開。
指令編程舉例
在下面的例子中,CPU1 為主動端,其 IP 地址為192.168.2.100,調用 PUT/GET 指令;CPU2 為被動端,其 IP 地址為192.168.2.101,不需調用 PUT/GET 指令,網(wǎng)絡配置見圖 1 。通信任務是把 CPU1 的實時時鐘信息寫入 CPU2 中,把CPU2 中的實時時鐘信息讀寫到 CPU1 中。
圖 1 CPU通信網(wǎng)絡配置圖
1、CPU1 主動端編程
CPU1 主程序中包含讀取 CPU 實時時鐘、初始化 PUT/ GET 指令的 TABLE 參數(shù)表、調用 PUT 指令和 GET 指令等。
網(wǎng)絡1:讀取 CPU1 實時時鐘,存儲到 VB100 ~ VB107 。
圖 2 讀取 CPU1 實時時鐘
注:READ_RTC 指令用于讀取 CPU 實時時鐘指令,并將其存儲到從字節(jié)地址 T 開始的 8 字節(jié)時間緩沖區(qū)中,數(shù)據(jù)格式為 BCD 碼。
網(wǎng)絡2:定義 PUT 指令 TABLE 參數(shù)表,用于將 CPU1 的VB100 ~ VB107 傳輸?shù)竭h程 CPU2 的VB0 ~ VB7。
圖 3 定義 PUT 指令 TABLE 參數(shù)表
- a.定義通信狀態(tài)字節(jié)
- b.定義 CPU2 IP 地址
- c.定義 CPU2 的通信區(qū)域 ,從 VB0 地址開始
- d.定義通信數(shù)據(jù)長度
- e.定義 CPU1 的通信區(qū)域,從 VB100 地址開始
網(wǎng)絡3:定義 GET 指令 TABLE 參數(shù)表,用于將遠程 CPU2 的VB100 ~ VB107 讀取到 CPU1 的 VB0 ~ VB7。