using System;using System.Collections.Generic;using System.Linq;using System.Text;using OPCAutomation;namespace kepserverHelp{ class kepOpcHelp { private static OPCServer kepServer =null; //服务器 private static OPCGroups kepGroups = null; //组 private static OPCGroup KepGroup = null; //组 private static OPCItems KepItems = null; public static myOpcItem[] item; private static String serIp; //服务器IP private static String serverName; //服务器名字 public static bool OpcErr = false;//错误标志 /// <summary> /// 连接服务器,创建组,添加变量 /// </summary> public static string kepOpcConnect() { serIp = "localhost";//服务器在本机 serverName = "KEPware.KEPServerEx.V4"; try { //step1打开服务器 kepServer = new OPCServer(); kepServer.Connect(serverName, serIp); //step2添加组 kepGroups = kepServer.OPCGroups; KepGroup = kepGroups.Add("Group0"); KepGroup.UpdateRate = 100; //更新循环时间 KepGroup.IsActive = true; KepGroup.IsSubscribed = true; //step3添加组变量组 KepItems = KepGroup.OPCItems; //初始化自定义标签变量数组 init_itemName(); //在变量组中初始化标签变量数组 addItem(); return "OK"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// 初始化OPC标签的连接字符串 /// </summary> private static void init_itemName() { item =new myOpcItem[12]; for (int i = 0; i < item.Length; i ) { item[i] = new myOpcItem(); item[i].ClientHandles = i; } item[0].ConnectName = "Channel1.Device1.T100"; item[1].ConnectName = "Channel1.Device1.T101"; item[2].ConnectName = "Channel1.Device1.T102"; item[3].ConnectName = "Channel1.Device1.T103"; item[4].ConnectName = "Channel1.Device1.T104"; item[5].ConnectName = "Channel1.Device1.T105"; item[6].ConnectName = "Channel1.Device1.T106"; item[7].ConnectName = "Channel1.Device1.T107"; item[8].ConnectName = "Channel1.Device1.T108"; item[9].ConnectName = "Channel1.Device1.T109"; item[10].ConnectName = "Channel1.Device1.T110"; item[11].ConnectName = "Channel1.Device1.T111"; } /// <summary> /// 在服务器组中添加变量 /// </summary> /// <param name="theNum"></param> public static void addItem() { if (OpcErr) { throw new Exception("添加OPC标签异常,OpcErr==true"); } try { for (int i = 0; i < item.Length; i )//在OPC组中增加变量标签 { item[i].MyOpcItem = KepItems.AddItem(item[i].ConnectName, item[i].ClientHandles); item[i].ServerHandle = item[i].MyOpcItem.ServerHandle; } } catch (Exception ex) { OpcErr = true; throw new Exception("添加OPC标签异常," ex.Message); } } /// <summary> /// 销毁资源,引用赋值NULL /// </summary> public static void destory() { try { foreach (myOpcItem myitem in item) { if (myitem.MyOpcItem != null) { myitem.MyOpcItem = null; } } if (KepItems!= null) { KepItems = null; } if (KepGroup != null) { KepGroup = null; } if (kepGroups != null) { kepGroups = null; } if (kepServer != null) { kepServer.Disconnect(); kepServer = null; } } catch (Exception) { return; } } }}
下载kepOPC 通讯示例源码(c#)用户还喜欢
- 18480 文章数
- 500万+ 热度
作者专栏
编辑推荐
- 淡抹u2引擎,修复内容较多,物有所值
- 界域传说·经典巨作=传世单机(一键安装)
- 丸子版本(175个传世版本大集合)
- GS版本:神话公益服务端+客户端
- 图片放大工具(放大图片不模糊)
- 剪映无限制VIP版
- 传奇世界客户端下载器,史上最全传世客户端
- 传世GS20220920商业引擎注册+登录配置器 解压密码是1
- U2官方排行榜游戏网关 支持元神,支持传家宝
- GS开战传世客户端+服务端
- (淡漠夕阳)u2引擎合区工具
- 传世GS引擎消除“你的游戏客户端版本号过旧,请及时更新”提示
- 传世一机多区双线路配置器--免密码版本
- 传世凤凰登陆器劫持修复软件
- SQLite3 for Navicat
- 传奇世界npc对话框编辑工具
- 传世GS落霞铭文服务器端
- gs_20210409引擎包+注册机(无限制)
- 传奇世界NPC对话封包查看器[支持时长版和极速版]
- 彩虹引擎传世脚本编辑工具1.7版来了,支持函数脚本翻译
评论