欢迎来到天天文库
浏览记录
ID:35722496
大小:36.98 KB
页数:15页
时间:2019-04-14
《c#通过opc连接plc读写功能案例分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#通过OPC连接PLC读写功能案例最简单、最有效的PLC连接程序,里面包含了各种类型的读写功能,绝对是拷贝过去,直接把地址替换就可以使用。功能简介:本程序主要是针对PLC发送请求信号,收到信号执行调用,例如:由PLC发送请求信号1,程序自动去调用,当调用结束,信号恢复为0,直到下一次变为1,再次进行调用;1、手工下载一个Interop.OPCAutomation.dll2、手工创建一个类PublicOPC_PLC3、直接调用即可,调用方法:PublicOPC_PLCPlc=newPublicOPC_PLC();Plc.InitConnect();Plc.CH160CreateGroup("P
2、LC地址");//此处的PLC地址必须为PLC中DB块对应的BOOL型的地址例如:C1.[S7].DB35.DBX544.0usingSystem;usingSystem.Collections.Generic;资料usingSystem.Linq;usingSystem.Text;usingOPCAutomation;usingSystem.Net;usingSystem.Threading;namespaceOPCService{publicclassPublicOPC_PLC{#region私有变量//////OPCServerObject///pu
3、blicstaticOPCServerMyServer;//////OPCGroupsObject///publicstaticOPCGroupsMyGroups;//////OPCGroupObject///publicstaticOPCGroupMyGroupMA;publicstaticOPCGroupMyGroupMA2;//////OPCItemsObject///OPCItemsMyItemsMA;//////OPCItemObject///4、mary>OPCItem[]MyItemMA;//////主机IP///publicstaticstringstrHostIP="";//////主机名称///资料publicstaticstringstrHostName="";//////连接状态///publicstaticboolopc_connected=false;//////客户端句柄///intitmHandleClient=0;//////服务端句柄///5、summary>intitmHandleServer=0;publicOPCGroupGroupMA{get{returnMyGroupMA;}}#endregion//////初始化连接对应的状态,包括连接服务器,需要读取的初始值///publicvoidInitConnect(){//初始化OPC服务配置GetLocalServer();ConnectRemoteServer();//连接OPC服务器MyGroups=MyServer.OPCGroups;}//枚举本地OPC服务器publicvoidGetLocalServer(){//获取本地计算机6、IP,计算机名称strHostName=Dns.GetHostName();//或者通过局域网内计算机名称资料//获取本地计算机IP,计算机名称IPHostEntryIPHost=Dns.Resolve(Environment.MachineName);if(IPHost.AddressList.Length>0){IPHostEntryipHostEntry=Dns.GetHostByAddress(IPHost.AddressList[0].ToString());strHostName=ipHostEntry.HostName.ToString();}//获取本地计算机上的OPCServ7、erNametry{MyServer=newOPCServer();objectserverList=MyServer.GetOPCServers(strHostName);foreach(stringserverin(Array)serverList){//cmbServerName.Items.Add(turn);Console.WriteLine("本地OPC服务器:{0}",server)
4、mary>OPCItem[]MyItemMA;//////主机IP///publicstaticstringstrHostIP="";//////主机名称///资料publicstaticstringstrHostName="";//////连接状态///publicstaticboolopc_connected=false;//////客户端句柄///intitmHandleClient=0;//////服务端句柄///
5、summary>intitmHandleServer=0;publicOPCGroupGroupMA{get{returnMyGroupMA;}}#endregion//////初始化连接对应的状态,包括连接服务器,需要读取的初始值///publicvoidInitConnect(){//初始化OPC服务配置GetLocalServer();ConnectRemoteServer();//连接OPC服务器MyGroups=MyServer.OPCGroups;}//枚举本地OPC服务器publicvoidGetLocalServer(){//获取本地计算机
6、IP,计算机名称strHostName=Dns.GetHostName();//或者通过局域网内计算机名称资料//获取本地计算机IP,计算机名称IPHostEntryIPHost=Dns.Resolve(Environment.MachineName);if(IPHost.AddressList.Length>0){IPHostEntryipHostEntry=Dns.GetHostByAddress(IPHost.AddressList[0].ToString());strHostName=ipHostEntry.HostName.ToString();}//获取本地计算机上的OPCServ
7、erNametry{MyServer=newOPCServer();objectserverList=MyServer.GetOPCServers(strHostName);foreach(stringserverin(Array)serverList){//cmbServerName.Items.Add(turn);Console.WriteLine("本地OPC服务器:{0}",server)
此文档下载收益归作者所有