使用 STEP7 V14,S7-1500 的 PROFINET 通信口可以做 S7 通信的服務(wù)器端或客戶端。S7-1500 支持 S7 單邊通信,僅需在客戶端單邊組態(tài)連接和編程,而服務(wù)器端只準(zhǔn)備好通信的數(shù)據(jù)就行。
所以在編程組態(tài)和建立連接方面,S7-1500CPU 如何做為服務(wù)器端,將不用做任何編程工作,只需在 S7-300CPU 一側(cè)建立單邊連接,使用單邊編程方式PUT,GET指令進(jìn)行通信。
注意:如果在S7-1500一側(cè)使用 DB 塊作為通信數(shù)據(jù)區(qū),必須將DB 塊定義成絕對尋址,否則會造成通信失敗。
所需要條件:
① S7-1500 /S7-300 設(shè)備
② STEP7 V14
所完成的通信任務(wù):
① S7-1500 CPU 將本地DB3中的數(shù)據(jù)寫到S7-300 CPU中DB4中。
② S7-300 CPU 通過CP卡將本地DB3中的數(shù)據(jù)寫到S7-1500 CPU中DB4中。
在項(xiàng)目樹 “Project tree”>“Devices & Networks” >“Networks view” 視圖下,創(chuàng)建兩個(gè)設(shè)備的連接。用鼠標(biāo)點(diǎn)中 PLC_2 上 CP343-1的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個(gè)PLC_1 上的PROFINET通信口上,松開鼠標(biāo),連接就建立起來了,
打開 “Network View” 配置網(wǎng)絡(luò),選中 CPU,然后右鍵選擇添加新的連接, 在連接列表里建立新的連接并選擇連接對象和通信協(xié)議,如圖1. 所示。注意:不要直接使用軟件拖拽功能創(chuàng)建S7通訊,如果這樣做了,在S7-300側(cè)將不會出現(xiàn)One-Way選項(xiàng),不能實(shí)現(xiàn)數(shù)據(jù)通訊。
圖1. 建立S7連接
圖2. 定義連接對方地址
圖3. 定義通信雙方 TSAP號
注意:S7-1500預(yù)留給S7連接TSAP地址:03.01
配置完網(wǎng)絡(luò)連接,編譯存盤并下載。
在OB1中,在OB1中,從“Instruction”>“S7 Communication”>“Others”下,調(diào)用Get、Put通信指令。創(chuàng)建發(fā)送和接收數(shù)據(jù)塊 DB3和DB4,定義成100個(gè)字節(jié)的數(shù)組。程序見圖4。
注意:如果是 S7-300 本體上的PN口作為S7通信的客戶端,則選用“Instruction”>“S7 Communication”下的PUT,GET指令。
圖4. 程序調(diào)用功能
CALL “GET” | ,%DB1 | //調(diào)用 GET,使用背景DB塊:DB1 |
REQ | :=%M0.7 | //系統(tǒng)時(shí)鐘 2秒脈沖 |
ID | :=W#16#0001 | //連接號,要與連接配置中一致 |
NDR | :=%M4.0 | //為1時(shí),接收到新數(shù)據(jù) |
ERROR | :=%M4.1 | //為1時(shí),有故障發(fā)生 |
STATUS | :=%MW6 | //狀態(tài)代碼 |
ADDR_1 | :=P#DB3.DBX 0.0 BYTE 100 | //從通信伙伴數(shù)據(jù)區(qū)讀取數(shù)據(jù)的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 100 | //本地接收數(shù)據(jù)地址 |
CALL “PUT” | , %DB2 | //調(diào)用 PUT_S,使用背景DB塊:DB2 |
REQ | :=%M0.7 | //系統(tǒng)時(shí)鐘 2秒脈沖 |
ID | :=W#16#0001 | //連接號,要與連接配置中一致 |
DONE | :=%M10.0 | //為1時(shí),發(fā)送完成 |
ERROR | :=%M10.1 | //為1時(shí),有故障發(fā)生 |
STATUS | :=%MW12 | //狀態(tài)代碼 |
ADDR_1 | :=P#DB4.DBX 0.0 BYTE 100 | //發(fā)送到通信伙伴數(shù)據(jù)區(qū)的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 100 | //本地發(fā)送數(shù)據(jù)區(qū) |
通過在S7-300側(cè)編程進(jìn)行S7通訊 ,實(shí)現(xiàn) 兩個(gè)CPU之間數(shù)據(jù)交換,監(jiān)控結(jié)果如圖5
圖5. 監(jiān)控結(jié)果
請注意,以上例子中使用1500的作為服務(wù)器的PLC,需要如下額外設(shè)置,才能保證S7通信正常。
請點(diǎn)開作為S7服務(wù)器(sever)的 CPU 的設(shè)備組態(tài),“屬性->常規(guī)->保護(hù)”里“連接機(jī)制”一項(xiàng)需要勾選“允許從遠(yuǎn)程伙伴(PLC\HMI\OPC\...)使用 PUT/GET 通信訪問”,如下圖所示:
電話:15721373211
郵箱:15721373211@139.com
網(wǎng)址:http://openxml.net/
地址:上海青浦區(qū)北青公路7171號111-112室