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