實現Codesys2.3、Codesys3.5同時與C#上位機通過OPC通訊———Codesys開啟OPC服務器配置方法


測試使用的是codesys2.3和codesys3.5sp7,V2.3使用的是OPC DA ,V3.5使用了OPC UA,好像從codesys3.5SP12后,codesys中的OPC Ua需要一個數字簽名,OPC DA和OPCUA的區別參考一下兩個鏈接,https://www.cnblogs.com/qdwyj/p/9114898.html,

https://stackoverflow.com/questions/30642918/difference-between-opc-ua-and-opc-da,也就是說,OPC UA兼容OPC DA。

在安裝codesys是,勾選所有項,其中的codesys gateway v2.3對應 OPCConfig中的Gateway3,codesys gateway對應Gateway,codesys OPC sever3使用的是OPC UA。兩種網關的詳細區別在根目錄CODESYS OPC Server 3下CoDeSys_OPC_Server_V3_User_Guide.pdf中

                

 

 

 

 

要實現同時與支持codesys2.3的plc和支持codesys3.5的plc通訊,可以按照下面的思路,同時建立兩個opc線程,讀取兩個PLC中的數據,親測可行。

OPC接口定義在opcda20_auto.pdf中(https://wenku.baidu.com/view/64f0e59851e79b8968022682.html),通訊的過程大致如下:

1、確定OPC客戶端,例如PLC的地址,以及opc服務器的類型,是DA 還是UA;

2、按照服務類型和客服端IP地址,連接設備;

3、使用OPCgroups和OPCgroup兩個object,創建組,組中包含的是items;

4、設置通訊屬性;

5、ShowBranches()展開從接口中讀到的所items存入程序內存中;

6、監聽group組。

 

/// <summary>
/// OPCServer Object
/// </summary>
OPCServer KepServer;
OPCServer KepServer1;
/// <summary>
/// OPCGroups Object
/// </summary>
OPCGroups KepGroups;
OPCGroups KepGroups1;
/// <summary>
/// OPCGroup Object
/// </summary>
OPCGroup KepGroup;
OPCGroup KepGroup1;
/// <summary>
/// OPCItems Object
/// </summary>
OPCItems KepItems;
OPCItems KepItems1;
/// <summary>
/// OPCItem Object
/// </summary>
OPCItem KepItem;
OPCItem KepItem1;
/// <summary>
/// 主機IP
/// </summary>
string strHostIP = "";
string strHostIP1 = "";
/// <summary>
/// 主機名稱
/// </summary>
string strHostName = "";
string strHostName1 = "";
/// <summary>
/// 連接狀態
/// </summary>
bool opc_connected = false;
bool opc_connected1 = false;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM