simatic net opc服務(wù)器常作為simatic plc與第三方上位機(jī)通訊的中介。在tdc系統(tǒng)中調(diào)用相應(yīng)的功能塊,也可以實(shí)現(xiàn)simatic tdc 與 opc的通訊,為上位機(jī)提供更靈活的訪問tdc的方式。本文簡要的介紹了建立 tdc 與opc ethernet通訊的方法與步驟。
1. 建立tdc與opc的s7連接
1.1 tdc的軟硬件配置
建立基于以太網(wǎng)的s7通訊,需要為tdc系統(tǒng)配置以太網(wǎng)通訊模塊cp51m1(6dd1661-0ae1),并調(diào)用tcp/ip初始化功能塊。
圖1 組態(tài)tdc并配置cp51m1
cp51m1的ip地址通常與pc站網(wǎng)卡處于同一網(wǎng)段,如:
cp51m1:192.168.0.220;pc站網(wǎng)卡:192.168.0.24。
圖2 tcp/ip初始化
“@tcp/ip”用來建立tcp/ip通訊耦合,并且必須在大于等于32ms并小于等于256ms的循環(huán)周期中調(diào)用。
建立s7通訊之前必須調(diào)用“s7con”塊,初始化s7應(yīng)用層服務(wù)。
圖3 s7服務(wù)初始化
同樣“s7con”塊也必須在大于等于32ms并小于等于256ms的循環(huán)周期中調(diào)用。
其中主要參數(shù)的含義為:
“us”:格式為 最多6個字符的通道名稱. cpu槽號,如“yyu.01”。
“tnr”:s7 tsap號,默認(rèn)為3。
“nos”:通訊設(shè)備的個數(shù)(與tdc通訊的opc服務(wù)器的個數(shù))。
“tld”:通訊報文格式,默認(rèn)為0,最大通訊字節(jié)240。
tdc為opc服務(wù)器提供可供訪問的db塊,調(diào)用“s7db_p”建立db1,并為db1賦值
圖4 s7服務(wù)初始化
其中“s7db_p”主要參數(shù)的含義為:
“l(fā)en”:db塊長度。
“nbf”:db塊緩沖區(qū)個數(shù),一般設(shè)為1。
“bsl”:選擇緩沖區(qū),一般設(shè)為1。
“sav”:db是否存儲在sav區(qū)域。
“s7db_p”功能塊只是開辟了通訊的數(shù)據(jù)存儲區(qū),如果要對存儲區(qū)的數(shù)據(jù)進(jìn)行讀寫操作,就需要調(diào)用讀寫功能塊。本文中所示的例子程序使用“read int”讀取整數(shù)數(shù)據(jù),“write in”寫入整數(shù)數(shù)據(jù)。
其中“read int”及“write in”主要參數(shù)的含義為:
“off1”和“off2”:讀寫數(shù)據(jù)在數(shù)據(jù)存儲區(qū)內(nèi)的偏移量。如兩參數(shù)之和為零,存取存儲區(qū)內(nèi)的第一個整數(shù);兩參數(shù)之和為2,存取存儲區(qū)內(nèi)的的第二個整數(shù),以此類推。
“swp”:用來設(shè)定是否交換高低字節(jié),此處設(shè)為1。
讀取或?qū)懭肫渌愋蛿?shù)據(jù)的方法與本例相同,只是調(diào)用的讀寫功能塊稍有不同,本文不再詳述。
1.2 pc站及opc的組態(tài)
組態(tài)pc站,并建立與tdc的s7連接。
圖5 組態(tài)pc站
圖6 建立s7連接
圖中的“partner”的rack/slot指tdc的機(jī)架號與槽號,connection resource為連接資源號,“l(fā)ocal”為10,“partner”為3。具體含義見下表
表1 s7連接資源
然后就可以通過opc scout來測試opc服務(wù)器是否能正常通訊。
圖7 測試s7連接
由于opc scout不能直接瀏覽到tdc的db1,需要手動輸入存取地址。如果s7連接名稱是“s7_connection_1”,存取地址“s7:[ s7_connection_1]db1.int0代表db塊中的第1個16位整數(shù)。
2. 建立tdc與opc的tcp連接
2.1 在tdc中調(diào)用發(fā)送和接收功能塊
圖8 發(fā)送功能塊
其中“ctv_p”主要參數(shù)的含義為:
“at”:通道參數(shù),如“ct.t-02001”,其中“ct”為用戶定義的通道名稱,“2001”為tcp通訊的本地端口號。
“mod”:通訊模式,對于tcp通訊,一般設(shè)為“h”。
“en”:發(fā)送勢能,設(shè)為1。
“nby”:發(fā)送的字節(jié)長度。
圖9 接收功能塊
“crv_p”功能塊比“ctv_p”功能塊多一個參數(shù),設(shè)為1000ms,其它參數(shù)含義相同。
2.2 為pc站組態(tài)tcp連接
圖10 建立tcp連接并設(shè)置地址、端口
圖11 設(shè)置發(fā)送接收字節(jié)
“send buffer size”等于“crv_p”的“nby”參數(shù)值。“receive buffer size”等于“ctv_p”的“nby”參數(shù)值。
通過opc測試建立的tcp連接。
圖12 測試tcp連接