1.概述
1.1 s7-1200 的profinet 通信口
s7-1200 cpu 本體上集成了一個 profinet 通信口,支持以太網和基于 tcp/ip 的通信標準。使用這個通信口可以實現 s7-1200 cpu 與編程設備的通信,與的通信,以及與其它 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協議的第三方設備通信
· 具有路由兼容性
· 只可使用靜態數據長度
· 有確認機制
· 使用端口號進行應用尋址
· 大多數應用協議,如bbbnet、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添加到機架上,命名為_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 bbbbbb”>;“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所示。

圖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 //狀態代碼
2.3 監控通信結果
下載s7-1200和s7-300中的所有組態及程序,監控通信結果,如圖10、圖11所示。
在s7-1200 cpu中向db3中寫入數據:“11”、“22”、“33”,則在s7-300中的db2塊收到數據也為“11”、“22”、“33”。
在s7-300 cpu中,將“2#1111_1111”寫入ib0,則在s7-1200 cpu中qb0中收到的數據也為“2#1111_1111”。

圖10 s7-1200監控表

圖11 s7-300 變量表
3. tcp 通信
使用tcp 協議通信,除了連接參數的定義不同,通信雙方的其它組態及編程與前面的iso on tcp 協議通信完全相同。
s7-1200 cpu中,使用 tcp 協議與s7-300通信時,plc_1的連接參數,如圖12所示。通信伙伴 s7-300 的連接參數,如圖13所示。

圖12 s7-1200 的tcp連接參數的配置

圖13 s7-300 的tcp連接參數的配置










