|
|
湖南 長沙 西門子 6ES7231-5PD32-0XB0 模塊 PLC
S7-1200 CPU 本體上集成了一個 PROFINET 通信口,支持以太網和基于 TCP/IP和UDP 的通信標準。這個PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持電纜交叉自適應,因此一個標準的或是交叉的以太網線都可以用于這個接口。使用這個通信口可以實現 S7-1200 CPU 與編程設備的通信,與HMI觸摸屏的通信,以及與其它 CPU 之間的通信。
S7-1200 CPU 的PROFINET 通信口支持以下通信協議及服務
分配給每個類別的預留連接資源數為固定值;您無法更改這些值。 但可組態 6個"可用自由連接"以按照應用要求增加任意類別的連接數。
● 示例1: 1 個 PG 具有 3 個可用連接資源。 根據當前使用的 PG 功能,該 PG 實際可能使用其可用連接資源的 1、2 或 3。 在 S7-1200 中,始終保證至少有 1 個 PG,但不允許超過 1 個 PG。
在CPU屬性>常規>連接資源顯示:
● 示例2:HMI 具有 12 個可用連接資源。 根據您擁有的 HMI 類型或型號以及使用的 HMI 功能,每個 HMI 實際可能使用其可用連接資源中的 1 個、2 個或 3 個。 考慮到正在使用的可用連接資源數,可以同時使用 4 個以上的 HMI。 HMI 可利用其可用連接資源(每個 1 個,共 3 個)實現下列功能:
HMI 1 | HMI 2 | HMI 3 | HMI 4 | HMI 5 | HMI | |
使用的連接資源 |
2 | 2 | 2 | 3 | 3 | 12 |
以上示例共有5個HMI設備訪問S7-1200,占用了S7-1200的12個HMI連接資源。
對于S7-1200 V4.1以上版本,有6個動態連接資源可以用于HMI連接。所以它們的最大HMI連接資源數可以達到18個。對于之前的版本只能用預留的HMI連接資源用于HMI訪問。
資源數(默認) | 簡單通訊 | 系統診斷 | 運行系統報警記錄 | |
基本面板 | 1 | 1 | 1 | - |
多功能面板 | 2 | 1 | - | - |
精智面板 | 2 | 1 | 2 | - |
WinCC RT Advanced | 2 | 1 | 2 | - |
WinCC RT Professional | 3 | 2 | 2 | 3 |
注:“資源數(默認)”是當HMI與S7-1200在一個項目中組態HMI連接時,會占用S7-1200的組態的HMI連接個數。
如圖:示例中HMI_2 為精智面板。
這個連接個數是這個HMI設備所能占用S7-1200的最大HMI連接個數,可以作為選型參考。
請參考:https://support.industry.siemens.com/cs/ww/en/view/109475049
連接數是固定不變的,不能自定義。
注意:建立被動的TCP 、ISO on TCP 和UDP的連接時,建議使用端口范圍: 2000~5000。一些端口號和TSAP 號是受到限制不能被使用的。 下列端口號和TSAP號不能使用:
S7-1200 CPU的PROFINET 口有兩種網絡連接方法:
直接連接:當一個S7-1200 CPU與一個編程設備,或是HMI ,或是另一個PLC通信時,也就是說只有兩個通信設備時,實現的是直接通信。直接連接不需要使用交換機,用網線直接連接兩個設備即可,如圖1. 所示。
網絡連接:當多個通信設備進行通信時,也就是說通信設備為兩個以上時,實現的是網絡連接,如圖2. 所示。
多個通信設備的網絡連接需要使用以太網交換機來實現。可以使用導軌安裝的西門子 CSM1277 的 4 口交換機連接其它 CPU 及 HMI 設備。CSM1277 交換機是即插即用的,使用前不用做任何設置。
圖2. 多個通信設備的網絡連接(圖:network connection)
① CSM1277 以太網交換機
S7-1200 與 S7-1200 之間的以太網通信可以通過 TCP 或 ISO on TCP 協議來實現,使用的通信指令是在雙方 CPU 調用 T-block (TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV) 指令來實現。通信方式為雙邊通信,因此 TSEND 和 TRCV 必須成對出現。
硬件:
① S7-1200 CPU
② PC (帶以太網卡)
③ TP電纜(以太網電纜)
軟件:
STEP7 V11 or Higher
所完成的通信任務:
① 將PLC_1 的通信數據區 DB3 塊中的 100 個字節的數據發送到 PLC_2 的接收數據區 DB4 塊中。
② 將PLC_2 的通信數據區 DB3 塊中的 100 個字節的數據發送到 PLC_1 的接收數據區 DB4 塊中。
1. 打開 STEP7 v11 軟件并新建項目
在 STEP7 v11的 “Portal View” 中選擇 “Create new project” 創建一個新項目
2. 添加硬件并命名PLC
然后進入 “Project view”,在“Project tree” 下雙擊 “Add new device”,在對話框中選擇所使用的S7-1200 CPU添加到機架上,命名為 PLC_1,如圖1.所示。
同樣方法再添加通信伙伴的S7-1200 CPU ,命名為 PLC_2。
圖1. 添加新設備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:
在 “Project tree” > “PLC_1” > “Device configuration” 中,選中 CPU ,然后在下面的屬性窗口中,“Properties” > “System and clock memory” 下,將系統位定義在MB1,時鐘位定義在MB0,如圖2.所示。
時鐘位我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個位,可以使用它去自動激活發送任務。
圖2. 系統位與時鐘位
3. 為 PROFINET 通信口分配以太網地址
在 “Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現PROFINET 接口的屬性,在 “Ethernet addresses” 下分配IP 地址為 192.168.0.1 ,子網掩碼為255.255.255.0,如圖3. 所示。
圖3. 分配IP 地址
同樣方法,在同一個項目里添加另一個新設備S7-1200 CPU 并為其分配 IP 地址為192.168.0.2
4. 創建 CPU之間的邏輯網絡連接
在項目樹 “Project tree”>“Devices & Networks” >“Networks view” 視圖下,創建兩個設備的連接。用鼠標點中 PLC_1 上的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個PLC_2 上的PROFINET通信口上,松開鼠標,連接就建立起來了,如圖4.所示。
圖4. 建立兩個 CPU的邏輯連接
1.在 PLC_1 的 OB1 中調用“TCON” 通信指令
① 在第一個 CPU 中調用發送通信指令,進入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,從右側窗口 “Instructions” > “Communications” > “OPEN User Communications”下調用 “TCON” 指令,創建連接,如圖1.所示。
圖1. 調用“TCON”通信指令
② 創建DB2 分配連接參數,見圖2所示
圖2. 創建連接數據塊 DB2(Con_DB)
③ 定義PLC_1的 “TCON”連接參數
PLC_1 的 TCON 指令的連接參數需要在指令下方的屬性窗口“Properties”> “Configuration”>“Connection parameter”中設置,如圖3.所示。
圖3. 定義 TCON 連接參數
連接參數說明:
End point | :可以通過點擊選擇按鈕選擇伙伴 CPU :PLC_2 |
Connection type | :選擇通信協議為 TCP(也可以選擇 ISO on TCP 或UDP協議) |
Connection ID | :連接的地址 ID 號,這個 ID 號在后面的編程里會用到 |
Connection data |
:創建連接時,生成的Con_DB塊。見圖2所示 |
Active connection setup | :選擇本地 PLC_1作為主動連接 |
Address details | :定義通信伙伴方的端口號為:2000;如果選用的是 ISO on TCP 協議,則需要設定的TSAP 地址(ASCII 形式),本地 PLC_1可以設置成“PLC1”,伙伴方 PLC_2 可以設置成“PLC2”。 |
2.定義 PLC_1 的“TSEND”發送通信塊接口參數
① 調用 “TSEND” 在OB1內調用 發送100個字節數據到PLC2中
進入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,從右側窗口 “Instructions” > “Communications” > “OPEN User Communications”下調用 “TSEND” 指令,,如圖4.所示。
圖4. 調用 TSEND
② 創建并定義PLC_1的發送數據區 DB 塊。
通過“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,選擇“Data block” 創建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發送數據區為 100個字節的數組,如圖4.及圖5.所示。
圖5. 創建發送數據區 DB 塊
注意:對于雙邊編程通信的 CPU ,如果通信數據區使用 DB 塊,既可以將 DB 塊定義成符號尋址,也可以定義成絕對尋址。使用指針尋址方式,必須創建絕對尋址的 DB 塊。
圖6. 定義發送數據區為字節類型的數組 圖 PLC1_TSENDC_DATA
③ 定義 PLC_1 的“TSEND”發送通信塊接口參數,如圖7.所示。
圖7. 定義 TSEND 接口參數
參數說明:
輸入接口參數:
REQ
|
:= M0.3
|
// 使用 2Hz 的時鐘脈沖,上升沿激活發送任務
|
ID | : = 1 | //創建連接ID |
LEN
|
:= 100
|
//發送數據長度
|
DATA
|
:= P#DB3.DBX0.0 BYTE 100
|
// 發送數據區的數據,使用指針尋址時,DB塊要選用絕對尋址
|
輸出接口參數:
DONE
|
:= M300.0
|
//任務執行完成并且沒有錯誤,該位置 1
|
BUSY
|
:= M300.1
|
// 該位為 1,代表任務未完成,不能激活新任務
|
ERROR
|
:= M300.2
|
//通信過程中有錯誤發生,該位置 1
|
STATUS
|
:= MW302
|
//有錯誤發生時,會顯示錯位信息號
|
3.在 PLC_1 的OB1中調用接收指令T_CV 并配置基本參數
為了實現 PLC_1 接收來自 PLC_2 的數據,則在 PLC_1 中調用接收指令T_RCV 并配置基本參數。
① 創建并定義PLC_1的接收數據區 DB 塊。
通過“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,選擇“Data block” 創建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發送數據區為 100個字節的數組,如圖7.及圖8.所示。
圖8. 創建接收數據區 DB 塊
注意:對于雙邊編程通信的 CPU ,如果通信數據區使用 DB 塊,既可以將 DB 塊定義成符號尋址,也可以定義成絕對尋址。使用指針尋址方式,必須創建絕對尋址的 DB 塊。
圖9. 定義接收數據區為字節類型的數組
② 調用 “TRCV” 在OB1內調用
進入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,從右側窗口 “Instructions” > “Communications” > “OPEN User Communications”下調用 “TRCV” 指令,配置接口參數,,如圖10.所示。
圖10. 調用 TRCV 指令并配置接口參數
參數說明:
輸入接口參數:
EN_R
|
:= TRUE
|
// 準備好接收數據
|
ID
|
:= 1
|
// 連接號,使用的是 TCON 的連接參數中 ID號
|
LEN
|
:= 100
|
// 接收數據長度為 100 個字節
|
DATA
|
:= P#DB4.DBX0.0 BYTE 100
|
// 接收數據區的地址
|
輸出接口參數:
NDR
|
:= M310.0
|
// 該位為 1,接收任務成功完成
|
BUSY
|
:= M310.1
|
// 該位為 1,代表任務未完成,不能激活新任務
|
ERROR
|
:= M310.2
|
// 通信過程中有錯誤發生,該位置 1
|
STATUS
|
:= MW312
|
// 有錯誤發生時,會顯示錯誤信息號
|
RCVD_LEN
|
:= MW314
|
// 實際接收數據的字節數
|
注意:LEN設置為 65535 可以接收變長數據。
使用TCP 協議通信,除了連接參數的定義不同,通信雙方的其它組態及編程與前面的ISO on TCP 協議通信完全相同。但注意:主動連接方強烈建議選擇S7-300 CP卡。
S7-1200 CPU中,使用 TCP 協議與S7-300通信時,PLC_1的連接參數,如圖1.所示。通信伙伴 S7-300 的連接參數,如圖2.所示。
圖1.S7-1200 的TCP連接參數的配置 TCP1200_Connection.BMP
圖2. S7-300 的S7-300 CP卡創建TCP連接參數的配置
圖3.S7-300 的S7-300 CP卡創建TCP連接參數的配置,設置連接伙伴
圖3. S7-300 CP卡創建TCP連接參數的配置,設置連接伙伴地址及端口
如果一定要創建S7-1200主動連接,那么在S7-300 CP卡,創建連接,一定不能填寫對方IP與端口如圖4
圖4. S7-300 CP卡創建TCP連接參數的配置,一定不能設置對方IP與端口
湖南 長沙 西門子 6ES7231-5PD32-0XB0