置頂 2018年08月08日 19:24:48 閱讀數 14346
C#通過OPC服務器連接PLC讀寫數據
1. 什麼是OPC?
OPC是工業控制和生產自動化領域中使用的硬件和軟件的接口標準,以便有效地在應用和過程控制設備之間讀寫數據。O代表OLE(對象鏈接和嵌入),P (process過程),C (control控制)。
OPC標準採用C/S模式,OPC服務器負責向OPC客戶端不斷的提供數據。OPC服務器包括3類對象(Object):服務器對象(Server)、組對象(Group)和項對象(Item)。
(1)OPC服務器對象維護有關服務器信息,並作為OPC組對象的包容器,它提供了對數據源進行讀/寫和通信的接口方法,可以動態地創建或釋放組對象。
(2)OPC組對象由客戶端定義和維護,它維護有關其自身的信息,提供包容OPC項對象的機制,從邏輯上實現對OPC項的管理。
(3)OPC項對象包含在OPC組中,可由客戶端定義和維護。項代表了與數據源的連接,所有的OPC項的操作都是通過包容此項的OPC組對象完成的。
1. OPC服務器連接PLC
KEPServerEX提供的西門子SiemensTCP/IP驅動能夠為用戶提供一個OPC服務器接口,將西門子TCP/IP以太網設備連接到OPC客戶端應用程序中。
下面以西門子S7-300系列PLC為例,說明如何建立KEPServerEX和該系列PLC的連接。S7-300系列PLC可通過通訊模塊CP343實現通信。
2.1 設置KEPServerEX
※新建通道:New Channel
(1)打開"KEPServerEX V5.4"軟件,點擊軟件界面"File"->"New"或者工具欄上的"New Project",新建一個新工程:
(2)單擊軟件界面"Click to add a channel."或者工具欄上的"New Channel",新建一個通道:
(3)修改通道名"Channel name"或不作修改,單擊"下一步"。
(4)選擇你想分配給本通道的設備驅動"Device driver",在下圖的下拉列表中選擇"Siemens TCP/IP Ethernet",單擊"下一步":
注意:1、在上圖的下拉列表中選擇您要連接設備的設備驅動;
2、如果用戶在使用過程中沒有找到所要連接設備的驅動,則可能是沒有進行完全安裝,用戶應該對KEPServerEX進行修改(Modify)安裝。用戶在安裝KEPServerEX時可根據需要安裝所需要的設備驅動或者全部驅動。
(5)選擇設備所用的網絡適配器"Network Adapter"。這裡選擇"Default",單擊"下一步"。
(6)對通道進行優化設置"Write Optimizations",這裡保持默認值,單擊"下一步"。
(7)設置總結,單擊"完成"。
至此,通道新建完成。
(8)用戶可通過右鍵單擊或者雙擊通道名修改通道參數:General、Network Interface、Write Optimizations。
※新建設備:New Device
(1)單擊軟件界面"Click to add a device"或者工具欄上的"New Device",進行設備設置。
(2)修改設備名稱"Device1 ,單擊"下一步"。
(3)選擇設備模型"Device model", 這裡我們選擇"S7-300",單擊"下一步"。
(4)選擇設備ID"Device ID", 這裡指的是所要連接的PLC設備的IP地址。假如IP地址為:192.168.0.155,則設置如下:
(5)設置通信的時間參數"Timing",這裡我們保持默認設置不變,單擊"下一步"。
(6)自動降級"Auto-Demotion"設置,這裡我們保持默認設置不變,單擊"下一步"。
(7)通信參數"Communication Parameters"設置,這裡我們保持默認設置不變,單擊"下一步"。
(8)設置S7通信參數"S7 Comm. Parameters"等,這裡我們保持默認設置不變,單擊"下一步"。
其中:Link Type:連接類型,一般選擇默認值"PC";
Rack(0~7):實際機架的位置,應該與STEP7中的對應設置一致;
CPU Slot(1~31):實際連接的PLC的CPU所在的槽位,應該與STEP7中的對應設置一致;(實際上,我用的是3,這裡不重新截圖了)
注意:這些設置需要和實際連接的PLC的相應設置一致!
(9)設置字節順序"Byte Order",這裡我們保持默認設置不變,單擊"下一步"。
其中:Big Endian:大端模式,Little Endian:小端模式
(10)設置內容的顯示,單擊"完成"。
(11)用戶可通過右鍵單擊->Properties或者雙擊設備名稱修改設備參數:
到這裡,opc server的配置已經完成了。正常步驟應該是用C# 或C++ 或VB 寫自己 的opc client,連接上opc server去讀取數據了。不過可以先做連接測試,驗證是否連接上,方法:
1、可以用kepserver 自帶的 quick client來測試是否連接上。
※新建標籤:New Tag
(1)單擊軟件界面"Click to add a static tag",或者工具欄"New Tag"增加一個標籤。
(2)設置Tag屬性: 重點!!!! 在這裡,!!西門子的PLC 的address 要用 DB220DBW130 這種形式,不能是db1900,real220, ,後面這種格式的 用wonderware 公司的smc 做da server時候 讀取西門子PLC 用的。切記!
name 要有,隨便給,有意義就可以,其他默認,可以選擇client access 設置為只讀,如果需要。
注意:你填好之後,可以單擊"對號"按鈕進行測試或幫助。
上述只增加了1個點。
(3)查看數值,點擊quick client ,看到自己加的點的數據了。
(4)到這裡,就臉上了PLC,並且讀取了1 個點的值,其實實際應用中,增加點 item的過程是在自己寫的opc client程序中完成的,這裡是測試,就手動了。
另外,也可以用其他的opc client做測試,不用 quick client,我這裡主要說一下點 地址的格式。如用 takebishi opc client 網上可以下載到的。
配置如下:
1、連接 kep server .opc---connect 會顯示本地電腦上的各種opc server,因每個人電腦上安裝的不同有差異。
2、增加點 Opc--add item ,因為我剛在kep server 中增加了test 這個點,點擊Device1 可以看到那個點,選中test,add item 添加就可以了。看到連接成功,讀取到值。
3、如果kep server 中沒有想要的點,自己添加,格式為 Channel1.Device1.DB220DBW132,添加。
4、到這裡,用takebishi opc client 做測試也完成了。
閱讀更多 平原小龍 的文章