詳細(xì)介紹
西門子6ES75101DJ010AB0提供了PUT/GET 指令,,用于S7-200 SMART CPU之間的以太網(wǎng)通信(PUT/GET 指令格式見(jiàn) 表 1)。PUT/GET 指令只需要在主動(dòng)建立連接的 CPU 中調(diào)用執(zhí)行,,被動(dòng)建立連接的 CPU不需要進(jìn)行通信編程,。PUT/GET 指令中TABLE 參數(shù)用于定義遠(yuǎn)程CPU的 IP地址、本地CPU和遠(yuǎn)程 CPU的數(shù)據(jù)區(qū)域以及通信長(zhǎng)度(TABLE 參數(shù)定義見(jiàn) 表 2),。
表 1 PUT和GET 指令:
LAD/FBD | STL | 描述 |
PUT TABLE | PUT 指令啟動(dòng)以太網(wǎng)端口上的通信操作,,將數(shù)據(jù)寫(xiě)入遠(yuǎn)程設(shè)備。PUT 指令可向遠(yuǎn)程設(shè)備寫(xiě)入多 212 個(gè)字節(jié)的數(shù)據(jù),。 | |
GET TABLE | GET 指令啟動(dòng)以太網(wǎng)端口上的通信操作,,從遠(yuǎn)程設(shè)備獲取數(shù)據(jù)。GET 指令可從遠(yuǎn)程設(shè)備讀取多 222 個(gè)字節(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 | 錯(cuò)誤代碼4 | |||
1 |
遠(yuǎn)程 CPU的 IP地址 | |||||||
2 | ||||||||
3 | ||||||||
4 | ||||||||
5 | 預(yù)留(必須設(shè)置為0) | |||||||
6 | 預(yù)留(必須設(shè)置為0) | |||||||
7 |
指向遠(yuǎn)程 CPU 通信數(shù)據(jù)區(qū)域的地址指針 | |||||||
8 | ||||||||
9 | ||||||||
10 | ||||||||
11 | 通信數(shù)據(jù)長(zhǎng)度5 | |||||||
12 |
指向本地 CPU 通信數(shù)據(jù)區(qū)域的地址指針 | |||||||
13 | ||||||||
14 | ||||||||
15 |
1 D :通信完成標(biāo)志位,,通信已經(jīng)成功完成或者通信發(fā)生錯(cuò)誤。
2 A :通信已經(jīng)激活標(biāo)志位,。
3 E :通信發(fā)生錯(cuò)誤,,錯(cuò)誤原因需要查詢 錯(cuò)誤代碼4。
4 錯(cuò)誤代碼 :見(jiàn)表 3 PUT 和 GET 指令TABLE 參數(shù)的錯(cuò)誤代碼,。
5 通信數(shù)據(jù)長(zhǎng)度 :需要訪問(wèn)遠(yuǎn)程 CPU通信數(shù)據(jù)的字節(jié)個(gè)數(shù),,PUT 指令可向遠(yuǎn)程設(shè)備寫(xiě)入多 212 個(gè)字節(jié)的數(shù)據(jù),,GET 指令可從遠(yuǎn)程設(shè)備讀取多 222 個(gè)字節(jié)的數(shù)據(jù)。
表 3 PUT 和 GET 指令TABLE 參數(shù)的錯(cuò)誤代碼:
錯(cuò)誤代碼 | 描述 |
0 | 通信無(wú)錯(cuò)誤 |
1 | PUT/GET TABLE參數(shù)表中存在非法參數(shù):
|
2 | 同一時(shí)刻處于激活狀態(tài)的 PUT/GET 指令過(guò)多(僅允許 16 個(gè)) |
3 | 無(wú)可以連接資源,,當(dāng)前所有的連接都在處理未完成的數(shù)據(jù)請(qǐng)求(S7-200 SAMRT CPU主動(dòng)連接資源數(shù)為 8 個(gè)),。 |
4 | 從遠(yuǎn)程 CPU 返回的錯(cuò)誤:
|
5 | 與遠(yuǎn)程 CPU 之間無(wú)可用連接:
|
6-9 | 預(yù)留 |
通信資源數(shù)量
S7-200 SMART CPU 以太網(wǎng)端口含有 8 個(gè)PUT/GET 主動(dòng)連接資源和 8 個(gè)PUT/GET 被動(dòng)連接資源,。例如:CPU1 調(diào)用 PUT/GET 指令與 CPU2 ~ CPU9 建立8主動(dòng)連接的同時(shí),,可以與 CPU10 ~ CPU17 建立8被動(dòng)連接(CPU10 ~ CPU17 調(diào)用 PUT/GET 指令),這樣的話 CPU1 可以同時(shí)與16臺(tái) CPU(CPU2 ~ CPU17)建立連接,。關(guān)于主動(dòng)連接資源和被動(dòng)連接資源的詳細(xì)解釋如下:
1,、主動(dòng)連接資源和被動(dòng)連接資源
- 調(diào)用 PUT/GET 指令的CPU 占用主動(dòng)連接資源數(shù);相應(yīng)的遠(yuǎn)程 CPU 占用被動(dòng)連接資源,。
2,、8 個(gè)PUT/GET 主動(dòng)連接資源
- S7-200 SMART CPU 程序中可以包含遠(yuǎn)多于 8個(gè)PUT/GET 指令的調(diào)用,但是在同一時(shí)刻多只能激活 8 個(gè) PUT/GET 連接資源,。
- 同一時(shí)刻對(duì)同一個(gè)遠(yuǎn)程 CPU 的多個(gè) PUT/GET 指令的調(diào)用,只會(huì)占用本地 CPU的一個(gè)主動(dòng)連接資源和遠(yuǎn)程 CPU的一個(gè)被動(dòng)連接資源,。本地 CPU 與遠(yuǎn)程 CPU之間只會(huì)建立一條連接通道,,同一時(shí)刻觸發(fā)的多個(gè) PUT/GET 指令將會(huì)在這條連接通道上順序執(zhí)行。
- 同一時(shí)刻多能對(duì)8個(gè)不同 IP 地址的遠(yuǎn)程 CPU 進(jìn)行 PUT/GET 指令的調(diào)用,,第9個(gè) 遠(yuǎn)程CPU的PUT/GET 指令調(diào)用將報(bào)錯(cuò),,無(wú)可用連接資源。已經(jīng)成功建立的連接將被保持,,直到遠(yuǎn)程 CPU斷電或者物理斷開(kāi),。
3,、8 個(gè)PUT/GET 被動(dòng)連接資源
- S7-200 SMART CPU 調(diào)用 PU西門子6ES75101DJ010AB0T/GET 指令,執(zhí)行主動(dòng)連接的同時(shí)也可以被動(dòng)地被其他遠(yuǎn)程 CPU 進(jìn)行通信讀寫(xiě),。
- S7-200 SMART多可以與被8個(gè)不同 IP 地址的遠(yuǎn)程 CPU 進(jìn)行 建立被動(dòng)連接,。已經(jīng)成功建立的連接將被保持,直到遠(yuǎn)程 CPU斷電或者物理斷開(kāi),。
指令編程舉例
在下面的例子中,,CPU1 為主動(dòng)端,其 IP 地址為192.168.2.100,,調(diào)用 PUT/GET 指令,;CPU2 為被動(dòng)端,其 IP 地址為192.168.2.101,,不需調(diào)用 PUT/GET 指令,,網(wǎng)絡(luò)配置見(jiàn)圖 1 。通信任務(wù)是把 CPU1 的實(shí)時(shí)時(shí)鐘信息寫(xiě)入 CPU2 中,,把CPU2 中的實(shí)時(shí)時(shí)鐘信息讀寫(xiě)到 CPU1 中,。
圖 1 CPU通信網(wǎng)絡(luò)配置圖
1、CPU1 主動(dòng)端編程
CPU1 主程序中包含讀取 CPU 實(shí)時(shí)時(shí)鐘,、初始化 PUT/ GET 指令的 TABLE 參數(shù)表,、調(diào)用 PUT 指令和 GET 指令等。
網(wǎng)絡(luò)1:讀取 CPU1 實(shí)時(shí)時(shí)鐘,,存儲(chǔ)到 VB100 ~ VB107 ,。
圖 2 讀取 CPU1 實(shí)時(shí)時(shí)鐘
注:READ_RTC 指令用于讀取 CPU 實(shí)時(shí)時(shí)鐘指令,并將其存儲(chǔ)到從字節(jié)地址 T 開(kāi)始的 8 字節(jié)時(shí)間緩沖區(qū)中,,數(shù)據(jù)格式為 BCD 碼,。
網(wǎng)絡(luò)2:定義 PUT 指令 TABLE 參數(shù)表,用于將 CPU1 的VB100 ~ VB107 傳輸?shù)竭h(yuǎn)程 CPU2 的VB0 ~ VB7,。
圖 3 定義 PUT 指令 TABLE 參數(shù)表
- a.定義通信狀態(tài)字節(jié)
- b.定義 CPU2 IP 地址
- c.定義 CPU2 的通信區(qū)域 ,,從 VB0 地址開(kāi)始
- d.定義通信數(shù)據(jù)長(zhǎng)度
- e.定義 CPU1 的通信區(qū)域,從 VB100 地址開(kāi)始
網(wǎng)絡(luò)3:定義 GET 指令 TABLE 參數(shù)表,,用于將遠(yuǎn)程 CPU2 的VB100 ~ VB107 讀取到 CPU1 的 VB0 ~ VB7,。