|
公司基本資料信息
|
西門子CPU312
6ES7312-1AE14-0AB0SIMATIC S7-300,CPU 312 帶 MPI 的中央處理器, 集成電源 24V DC, 內存 32 KByte, 需要微型存儲卡 |
1.概述
1.1 S7-1200 的PROFINET 通信口
S7-1200 CPU 本體上集成了一個 PROFINET 通信口,支持以太網和基于 TCP/IP 的通信標準。使用這個通信口可以實現 S7-1200 CPU 與編程設備的通信,與HMI觸摸屏的通信,以及與其它 CPU 之間的通信。這個PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持電纜交叉自適應,因此一個標準的或是交叉的以太網線都可以用于這個接口。
1.2 S7-1200支持的協議和最大的連接資源
S7-1200 CPU 的PROFINET 通信口支持以下通信協議及服務
? TCP
? ISO on TCP ( RCF 1006 )
? S7 通信 (服務器端)通信口所支持的最大通信連接數
S7-1200 CPU PROFINET 通信口所支持的最大通信連接數如下:
? 3個連接用于HMI (觸摸屏) 與 CPU 的通信
? 1個連接用于編程設備(PG)與 CPU 的通信
? 8個連接用于Open IE ( TCP, ISO on TCP) 的編程通信,使用T-block 指令來實現
? 3個連接用于S7 通信的服務器端連接,可以實現與S7-200,S7-300以及 S7-400 的以太網S7 通信
S7-1200 CPU可以同時支持以上15個通信連接,這些連接數是固定不變的,不能自定義。
TCP(Transport Connection Protocol)
TCP是由 RFC 793描述的標準協議,可以在通信對象間建立穩定、安全的服務連接。如果數據用TCP協議來傳輸,傳輸的形式是數據流,沒有傳輸長度及信息幀的起始、結束信息。在以數據流的方式傳輸時接收方不知道一 條信息的結束和下一條信息的開始。因此,發送方必須確定信息的結構讓接收方能夠識別 。在多數情況下TCP應用了IP (Internet protocol) ,也就是“TCP/IP 協議”, 它位于 ISO-OSI 參考模型的第四層。
協議的特點:
? 與硬件綁定的高效通信協議
? 適合傳輸中等到大量的數據 (<=8192 bytes)
? 為大多數設備應用提供
– 錯誤恢復
– 流控制
– 可靠性
? 一個基于連接的協議
? 可以靈活的與支持TCP協議的第三方設備通信
? 具有路由兼容性
? 只可使用靜態數據長度
? 有確認機制
? 使用端口號進行應用尋址
? 大多數應用協議,如TELNET、FTP都使用TCP
? 使用 SEND/RECEIVE 編程接口進行數據管理需要編程來實現
1.3 硬件需求和軟件需求
硬件:
① S7-1200 CPU
② S7-300 CPU + CP343-1(支持S7 Client)
③ PC(帶以太網卡)
④ TP以太網電纜
軟件:
① STEP 7 Basic V10.5
② STEP 7 V5.4
2. ISO on TCP 通信
S7-1200 CPU 與S7-300/400 之間通過ISO on TCP 通信,需要在雙方都建立連接,連接對象選擇“Unspecified”。
所完成的通信任務為:
① S7-1200將DB3里的100個字節發送到S7-300的DB2中
② S7-300將輸入數據IB0發送給S7-1200的輸出數據區QB0。
2.1 S7-1200 CPU 的組態編程
組態編程過程與 S7-1200 CPU 之間的通信基本相似 (見 6.3 ),這里簡單描述一下步驟:
① 使用STEP 7 Basic V10.5 軟件新建一個項目
在STEP 7 Basic 的“Portal View”中選擇 “Create new project”創建一個新項目
② 添加新設備
然后進入“Project view”,在“Project tree”下雙擊“Add new device”,在對話框中選擇所使用的S7-1200 CPU添加到機架上,命名為 PLC_1。
③ 為 PROFINET 通信口分配以太網地址
在“Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.1 ,子網掩碼為255.255.255.0。
④ 在 S7-1200 CPU 中調用“TSEND_C”通信指令并配置連接參數和塊參數
在主程序中調用發送通信指令,進入“Project tree” > “ PLC_1”>“Program blocks”>“Main”主程序中,從右側窗口“Instructions”> “Extended Instructions”>“Communications”下調用“TSEND_C”指令,并選擇“Single Instance”生成背景 DB塊。然后單擊指令塊下方的“下箭頭”,使指令展開顯示所有接口參數。
然后,創建并定義發送數據區 DB 塊。通過“Project tree”>“ PLC_1”> “Program blocks” >“Add new block” ,選擇 “Data block”創建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發送數據區為 100個字節的數組。
根據所使用的參數創建符號表,如圖1所示。
配置連接參數,如圖2所示。
配置塊接口參數,如圖3所示。
圖1 創建所使用參數的符號表圖PLC tag
圖2 配置連接參數
圖3 配置 TSEND_C 塊參數
⑤ 調用“TRCV”通信指令并配置塊參數如圖6 47所示。
因為與發送使用的是同一連接,所以使用的是不帶連接的發送指令“TRCV”,連接“ID”使用的也是“TSEND_C”中的“Connection ID”號,如圖4所示。
圖4 配置 T_RCV 塊參數
2.2 S7-300 CPU 的ISO on TCP通信的組態編程
① 使用STEP 7 軟件新建一個項目并進行硬件組態
創建完新項目,在項目的窗口下,右鍵菜單里,選擇“Insert New Object”>“SIMATIC 300 Station” ,插入一個S7-300 站。
為了編程方便,我們使用時鐘脈沖激活通信任務,在CPU的“Properties”>“Cycle/Clock Memory”中設置,如圖5所示。
圖5 設置時鐘脈沖
每一個時鐘位都按照不同的周期/頻率在0和1之間切換變化,見表1。
表1:時鐘位頻率
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
周期(S) | 2 | 01. Jun | 1 | 0.8 | 0.5 | 0.4 | 0.2 | 0.1 |
頻率(Hz) | 0.5 | 0.625 | 1 | Jan 25 | 2 | 02. Mai | 5 | 10 |
② 配置以太網模塊
進入“HW Config”中,組態所使用的 CPU 及“CP343-1”模板。并新建以態網 Ethernet (1) ,配置“CP343-1”模板IP 地址為:192.168.0.2,子網掩碼為: 255.255.255.0 。如圖6所示。配置完硬件組態及屬性,編譯存盤并下載所有硬件組態。
圖6 S7-300 硬件配置
③ 網絡組態
打開 “NetPro” 配置網絡,選中 CPU,在連接列表里建立新的連接并選擇連接對象和通信協議,如圖7所示。
西門子CPU312圖7 創建新的連接并選擇 ISO-on-TCP 協議
這時會跳出通用信息,如圖8所示。
圖8 通用信息
然后,進入“Addresses”配置通信雙方的IP 地址及TSAP 地址,如圖9所示。
圖9 配置通信的IP 地址及TSAP 地址
配置完連接并編譯存盤后,將網絡組態下載到CPU300中。
④ 軟件編程
在OB1中,從“Libraries”>“SIMATIC_NET_CP”>“CP300”下,調用FC5(AG_SEND)、FC6(AG_RECV)通信指令。創建接收數據區為 DB2,定義成100個字節的數組。
CALL “ AG_RECV” //調用FC6
ID :=1 // 連接號,要與連接配置列表中一致,見圖8
LADDR :=W#16#100 //CP的地址,要與配置中一致,見圖8
RECV :=P#DB2.DBX 0.0 BYTE 100 //接收數據區
NDR :=M10.0 //為1時,接收到新數據
ERROR :=M10.1 //為1時,有故障發生
STATUS :=MW12 //狀態代碼
LEN :=MW14 //接收到的實際數據長度
CALL “AG_SEND” //調用FC5
ACT :=M0.2 //為1時,激活發送任務
ID :=1 // 連接號,要與連接配置中一致
LADDR :=W#16#100 //CP的地址,要與配置中一致
SEND :=IB0 //發送數據區
LEN :=1 //發送數據的長度
DONE :=M10.2 //為1時,發送完成
ERROR :=M10.3 //為1時,有故障發生
STATUS :=MW16 //狀態代碼