使用 STEP7 V14,S7-1500 的 PROFINET 通信口可以做 S7 通信的服務器端或客戶端。S7-1500 支持 S7 單邊通信,僅需在客戶端單邊組態(tài)連接和編程,而服務器端只準備好通信的數(shù)據(jù)就行。
所以在編程組態(tài)和建立連接方面,S7-1500CPU 如果做為客戶端,只需在 S7-1500 這一側建立連接,并使用單邊編程方式 PUT,GET 指令進行通信,而 S7-300CPU 側不用做任何工作。
所需要條件:
① S7-1500 /S7-300 CP343-1 lean設備
② STEP7 V14
所完成的通信任務:
① S7-1500CPU 將本地 DB3 中的數(shù)據(jù)寫到 S7-300CPU 中 DB4 中。
② S7-300CPU 通過 CP 卡將本地 DB3 中的數(shù)據(jù)寫到S7-1500CPU 中 DB4 中。
在項目樹 “Project tree”>“Devices & Networks” >“Networks view” 視圖下,創(chuàng)建兩個設備的連接。用鼠標點中 PLC_1 PROFINET 通信口上,然后拖拽出一條線,到另外一個 CP343-1 lean 的 PROFINET 通信口的綠色小方框上,松開鼠標,連接就建立起來了。
打開 “Network View” 配置網(wǎng)絡,點中左上角的“連接”圖標,這時所有 CPU 變成亮藍色,然后選中S7-1500CPU,右鍵選擇添加新的連接, 在連接列表里建立新的連接并選擇連接對象和通信協(xié)議,如圖1. 所示。
圖1. 建立S7連接
圖2. 定義連接對方地址
圖3. 定義通信雙方 TSAP號
注意:S7-300預留給S7連接TSAP地址:03.02;如果通信伙伴是S7-400,則要根據(jù)CPU槽位來決定TSAP地址,例如: CPU400在3號槽,則TSAP地址為03.03。
配置完網(wǎng)絡連接,編譯存盤并下載。
在OB1中,從“Instruction”>“S7 Communication”>下,調用Get、Put通信指令。創(chuàng)建發(fā)送和接收數(shù)據(jù)塊 DB3和DB4,定義成100個字節(jié)的數(shù)組。程序見圖4
圖4. 程序調用功能
CALL “GET” | ,%DB2 | //調用 GET,使用背景DB塊:DB2 |
REQ | :=%M0.7 | //系統(tǒng)時鐘 2秒脈沖 |
ID | :=W#16#0100 | //連接號,要與連接配置中一致,創(chuàng)建連接時的連接號 |
NDR | :=%M4.0 | //為1時,接收到新數(shù)據(jù) |
ERROR | :=%M4.1 | //為1時,有故障發(fā)生 |
STATUS | :=%MW6 | //狀態(tài)代碼 |
ADDR_1 | :=P#DB3.DBX0.0 BYTE 100 | //從通信伙伴數(shù)據(jù)區(qū)讀取數(shù)據(jù)的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 100 | //本地接收數(shù)據(jù)地址 |
CALL “PUT” | , %DB5 | //調用 PUT,使用背景DB塊:DB5 |
REQ | :=%M0.7 | //系統(tǒng)時鐘 2秒脈沖 |
ID | :=W#16#0100 | //連接號,要與連接配置中一致,創(chuàng)建連接時的連接號 |
DONE | :=%M8.0 | // 為1時,發(fā)送完成 |
ERROR | :=%M8.1 | // 為1時,有故障發(fā)生 |
STATUS | :=%MW10 | // 狀態(tài)代碼 |
ADDR_1 | :=P#DB4.DBX0.0 BYTE 100 | // 發(fā)送到通信伙伴數(shù)據(jù)區(qū)的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 100 | // 本地發(fā)送數(shù)據(jù)區(qū) |
通過在S7-1500側編程進行S7通訊 ,實現(xiàn)兩個CPU之間數(shù)據(jù)交換,監(jiān)控結果如圖5.
圖5. 監(jiān)控結果
電話:15721373211
郵箱:15721373211@139.com
網(wǎng)址:http://youmiyou.cn/
地址:上海青浦區(qū)北青公路7171號111-112室