西門(mén)子plc 1200和300之間通信分享
發(fā)布日期:
2023-07-17

1、S7-1200 的PROFINET 通信口

S7-1200 CPU 本體上集成了一個(gè) PROFINET 通信口,支持以太網(wǎng)和基于 TCP/IP 的通信標準。使用這個(gè)通信口可以實(shí)現 S7-1200 CPU 與編程設備的通信,與hmi觸摸屏的通信,以及與其它 CPU 之間的通信。這個(gè)PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持電纜交叉自適應,因此一個(gè)標準的或是交叉的以太網(wǎng)線(xiàn)都可以用于這個(gè)接口。

2、S7-1200支持的協(xié)議和最大的連接資源

S7-1200 CPU 的PROFINET 通信口支持以下通信協(xié)議及服務(wù)

TCP

ISO on TCP ( RCF 1006 )

S7 通信 (服務(wù)器端)

通信口所支持的最大通信連接數

S7-1200 CPU PROFINET 通信口所支持的最大通信連接數如下:

3個(gè)連接用于HMI (觸摸屏) 與 CPU 的通信

1個(gè)連接用于編程設備(PG)與 CPU 的通信

8個(gè)連接用于Open IE ( TCP, ISO on TCP) 的編程通信,使用T-block指令來(lái)實(shí)現

3個(gè)連接用于S7 通信的服務(wù)器端連接,可以實(shí)現與S7-200,S7-300以及S7-400的以太網(wǎng)S7通信

S7-1200 CPU可以同時(shí)支持以上15個(gè)通信連接,這些連接數是固定不變的,不能自定義。

TCP(Transport Connection Protocol)

TCP是由 RFC 793描述的標準協(xié)議,可以在通信對象間建立穩定、安全的服務(wù)連接。如果數據用TCP協(xié)議來(lái)傳輸,傳輸的形式是數據流,沒(méi)有傳輸長(cháng)度及信息幀的起始、結束信息。在以數據流的方式傳輸時(shí)接收方不知道一 條信息的結束和下一條信息的開(kāi)始。因此,發(fā)送方必須確定信息的結構讓接收方能夠識別 。在多數情況下TCP應用了IP (Internet protocol) ,也就是“TCP/IP 協(xié)議”, 它位于 ISO-OSI 參考模型的第四層。

協(xié)議的特點(diǎn):

與硬件綁定的高效通信協(xié)議

適合傳輸中等到大量的數據 (<=8192 bytes)

為大多數設備應用提供

– 錯誤恢復

– 流控制

– 可靠性

一個(gè)基于連接的協(xié)議

可以靈活的與支持TCP協(xié)議的第三方設備通信

具有路由兼容性

只可使用靜態(tài)數據長(cháng)度

有確認機制

使用端口號進(jìn)行應用尋址

大多數應用協(xié)議,如TELNET、FTP都使用TCP

使用 SEND/RECEIVE 編程接口進(jìn)行數據管理需要編程來(lái)實(shí)現

3、硬件需求和軟件需求

硬件:

① S7-1200 CPU

② S7-300 CPU + CP343-1(支持S7 Client)

③ PC(帶以太網(wǎng)卡)

④ TP以太網(wǎng)電纜

軟件:

① STEP 7 Basic V10.5

② STEP 7 V5.4

一、ISO on TCP 通信

S7-1200 CPU 與S7-300/400 之間通過(guò)ISO on TCP 通信,需要在雙方都建立連接,連接對象選擇“Unspecified”。

所完成的通信任務(wù)為:

① S7-1200將DB3里的100個(gè)字節發(fā)送到S7-300的DB2中

② S7-300將輸入數據IB0發(fā)送給S7-1200的輸出數據區QB0。

1、S7-1200 CPU 的組態(tài)編程

組態(tài)編程過(guò)程與 S7-1200 CPU 之間的通信基本相似,這里簡(jiǎn)單描述一下步驟:

① 使用STEP 7 Basic V10.5 軟件新建一個(gè)項目

在STEP 7 Basic 的“Portal View”中選擇 “Create new project”創(chuàng )建一個(gè)新項目

② 添加新設備

然后進(jìn)入“Project view”,在“Project tree”下雙擊“Add new device”,在對話(huà)框中選擇所使用的S7-1200 CPU添加到機架上,命名為 plc_1。

③ 為 PROFINET 通信口分配以太網(wǎng)地址

在“Device View”中點(diǎn)擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會(huì )出現PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0。

④ 在 S7-1200 CPU 中調用“TSEND_C”通信指令并配置連接參數和塊參數

在主程序中調用發(fā)送通信指令,進(jìn)入“Project tree” > “ PLC_1”>“Program blocks”>“Main”主程序中,從右側窗口“Instructions”> “Extended Instructions”>“Communications”下調用“TSEND_C”指令,并選擇“Single Instance”生成背景 DB塊。然后單擊指令塊下方的“下箭頭”,使指令展開(kāi)顯示所有接口參數。

然后,創(chuàng )建并定義發(fā)送數據區 DB 塊。通過(guò)“Project tree”>“ PLC_1”> “Program blocks” >“Add new block” ,選擇 “Data block”創(chuàng )建 DB 塊,選擇絕對尋址,點(diǎn)擊“OK”鍵,定義發(fā)送數據區為 100個(gè)字節的數組。

根據所使用的參數創(chuàng )建符號表。

配置連接參數。

配置塊接口參數。

⑤ 調用“TRCV”通信指令并配置塊參數。

因為與發(fā)送使用的是同一連接,所以使用的是不帶連接的發(fā)送指令“TRCV”,連接“ID”使用的也是“TSEND_C”中的“Connection ID”號。

2、S7-300 CPU 的ISO on TCP通信的組態(tài)編程

① 使用STEP 7 軟件新建一個(gè)項目并進(jìn)行硬件組態(tài)

創(chuàng )建完新項目,在項目的窗口下,右鍵菜單里,選擇“Insert New Object”>“SIMATIC 300 Station” ,插入一個(gè)S7-300站。

為了編程方便,我們使用時(shí)鐘脈沖激活通信任務(wù),在CPU的“Properties”>“Cycle/Clock Memory”中設置。

每一個(gè)時(shí)鐘位都按照不同的周期/頻率在0和1之間切換變化。

② 配置以太網(wǎng)模塊

進(jìn)入“HW Config”中,組態(tài)所使用的 CPU 及“CP343-1”模板。并新建以態(tài)網(wǎng) Ethernet (1) ,配置“CP343-1”模板IP 地址為:192.168.0.2,子網(wǎng)掩碼為: 255.255.255.0 。配置完硬件組態(tài)及屬性,編譯存盤(pán)并下載所有硬件組態(tài)。

③ 網(wǎng)絡(luò )組態(tài)

打開(kāi) “NetPro” 配置網(wǎng)絡(luò ),選中 CPU,在連接列表里建立新的連接并選擇連接對象和通信協(xié)議。這時(shí)會(huì )跳出通用信息。

然后,進(jìn)入“Addresses”配置通信雙方的IP 地址及TSAP 地址。

配置完連接并編譯存盤(pán)后,將網(wǎng)絡(luò )組態(tài)下載到CPU300中。

④ 軟件編程

在OB1中,從“Libraries”>“SIMATIC_NET_CP”>“CP300”下,調用FC5(AG_SEND)、FC6(AG_RECV)通信指令。創(chuàng )建接收數據區為 DB2,定義成100個(gè)字節的數組。

CALL “ AG_RECV” //調用FC6

ID :=1 // 連接號,要與連接配置列表中一致,見(jiàn)圖8

LADDR :=W#16#100 //CP的地址,要與配置中一致,見(jiàn)圖8

RECV :=P#DB2.DBX 0.0 BYTE 100 //接收數據區

NDR :=M10.0 //為1時(shí),接收到新數據

ERROR :=M10.1 //為1時(shí),有故障發(fā)生

STATUS :=MW12 //狀態(tài)代碼

LEN :=MW14 //接收到的實(shí)際數據長(cháng)度

CALL “AG_SEND” //調用FC5

ACT :=M0.2 //為1時(shí),激活發(fā)送任務(wù)

ID :=1 // 連接號,要與連接配置中一致

LADDR :=W#16#100 //CP的地址,要與配置中一致

SEND :=IB0 //發(fā)送數據區

LEN :=1 //發(fā)送數據的長(cháng)度

DONE :=M10.2 //為1時(shí),發(fā)送完成

ERROR :=M10.3 //為1時(shí),有故障發(fā)生

STATUS :=MW16 //狀態(tài)代碼

3、監控通信結果

下載S7-1200和S7-300中的所有組態(tài)及程序,監控通信結果。

在S7-1200 CPU中向DB3中寫(xiě)入數據:“11”、“22”、“33”,則在S7-300中的DB2塊收到數據也為“11”、“22”、“33”。

在S7-300 CPU中,將“2#1111_1111”寫(xiě)入IB0,則在S7-1200 CPU中QB0中收到的數據也為“2#1111_1111”。

二、TCP 通信

使用TCP 協(xié)議通信,除了連接參數的定義不同,通信雙方的其它組態(tài)及編程與前面的ISO on TCP 協(xié)議通信完全相同。

S7-1200 CPU中,使用 TCP 協(xié)議與S7-300通信時(shí),PLC_1的連接參數,如圖12所示。通信伙伴 S7-300 的連接參數。

聲明:部分內容來(lái)源于網(wǎng)絡(luò ),如侵權請后臺留言聯(lián)系刪除。