c#kepserver连接操作方法代码

c#连接kepServer操作kepware源码.rar-C#文档类资源-CSDN下载解压密码:blog.csdn.net/txwtech更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/txwtech/33508026

解压密码:blog.csdn.net/txwtech

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace c_sharp_kepServer_demo
{public partial class Form1 : Form{public Form1(){InitializeComponent();}List<Wms_OpcTagListModel> wms_s = new List<Wms_OpcTagListModel>();private void button_connect_Click(object sender, EventArgs e){OpcUtil opcUtil = new OpcUtil();Wms_OpcTagListModel wms_OpcTagListModel = new Wms_OpcTagListModel();wms_OpcTagListModel.TagName = "Device1.Allow";wms_s.Add(wms_OpcTagListModel);OpcUtil.initOPC(wms_s);}private void button_read_Click(object sender, EventArgs e){if(OpcUtil.InitOK==false){MessageBox.Show("OPC kepserver连接失败,请确保kepware服务已经启动,点击连接OPC按钮");return;}textBox_tagContent.Text=OpcUtil.OpcRead(textBox_tagname.Text);}private void button1_Click(object sender, EventArgs e){if (OpcUtil.InitOK == false){MessageBox.Show("OPC kepserver连接失败,请确保kepware服务已经启动,点击连接OPC按钮");return;}OpcUtil.OpcWrite(textBox_tagname.Text,textBox_tagContent.Text);}}
}

OpcUtil.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UcAsp.Opc.Da;
using System.Threading;
using UcAsp.Opc;
using c_sharp_kepServer_demo.PO;
using System.Windows.Forms;
//using MechineOper.CommUnication.Utils;
namespace c_sharp_kepServer_demo
{class OpcUtil{public static DaClient OpcLink;public static bool InitOK = false;public static void initOPC(List<Wms_OpcTagListModel> taglist){InitOK = false;if (OpcLink != null){OpcLink.Dispose();}OpcLink = new DaClient(new Uri("opcda://127.0.0.1/KEPware.KEPServerEx.V6"));//  Opc.Server[] servers = m_discovery.GetAvailableServers(Specification.COM_DA_20,“OPC服务器IP地址”,null);//opcda://127.0.0.1/Matrikon.OPC.Simulation.1OpcLink.Options.DefaultMonitorInterval = 1000;OpcLink.Options.MaxPublishRequestCount = int.MaxValue;OpcLink.Options.MaxNotificationQueueSize = int.MaxValue;//OpcLink.Options.SessionTimeout = uint.MaxValue;OpcLink.Options.MaxMessageQueueSize = int.MaxValue;OpcLink.Options.MaxSubscriptionCount = int.MaxValue;//OpcLink.Options.SubscriptionLifetimeCount = uint.MaxValue;//OpcLink.Options.SubscriptionKeepAliveCount= int.MaxValue;try{OpcLink.Connect();}catch(Opc.ConnectFailedException e){MessageBox.Show(e.Data.ToString()+e.Message,"连接失败,确保kepware服务已经启动哦。。。",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}while (OpcLink.Status != OpcStatus.Connected){Thread.Sleep(5);Console.WriteLine("连接失败");}if (OpcLink.Status == OpcStatus.Connected){Thread.Sleep(5);Console.WriteLine("连接成功");}// OpcGroup group = OpcLink.AddGroup("opc");// OpcLink.AddItems("opc", new string[] {"PLC.Device1.Start", "PLC.Device1.Allow" });//  group.DataChange += new OpcObeser().Group_DataChange;InitOK = true;string get_data = OpcLink.Read<string>("通道1.设备1.Tag1");Console.WriteLine("PLC tag1 data: "+get_data);OpcLink.Write<string>("通道1.设备1.Tag1", "22");Console.WriteLine("PLC write tag1 data");Thread.Sleep(2000);string get_data2 = OpcLink.Read<string>("通道1.设备1.Tag1");Console.WriteLine("changed PLC tag1 data: " + get_data2);}public static string OpcRead(string read_tag_name){string get_data = OpcLink.Read<string>(read_tag_name);Console.WriteLine("PLC tag1 data: " + get_data);return get_data;}public static void OpcWrite(string write_tag_name,string write_content){OpcLink.Write<string>(write_tag_name, write_content);Console.WriteLine("PLC write tag1 data");}public static void  Init(){//items[2] = new Opc.Da.Item();//items[2].ItemName = "PLC1.dyn_I4[1]";}public static void InitMap(string tagname){OpcItemValue value = new OpcItemValue();object curValue = (short)0;value.Value = curValue;value.Quality = "bad";CONFConst.TAG_MAP[tagname] = value;//  Console.WriteLine(value);//侧移机对象TAG属性映射String[] Code = tagname.Split('.');if (Code[1] == "Allow"){CONFConst.CT_MAP.AddOrUpdate(Code[1], new PLC() { MM = new Tag<short>() { Value = (short)curValue, TagPath = tagname, Qunity = "" == "good" ? true : false } }, (S, T) => { T.MM.Value = (short)curValue; T.MM.TagPath = tagname; T.MM.Qunity = "" == "good" ? true : false; return T; });Console.WriteLine("dddddddddddd");}}}
}

c#kepserver连接操作方法代码相关推荐

  1. mysql左连接代码,mysql多表子查询与左连接的代码

    摘要 腾兴网为您分享:mysql多表子查询与左连接的代码,字体配置,邮币在线,英语字典,携程抢票等软件知识,以及cad弱电,adobe全套2018,万能格式转换器,360dns优选,音频制作app,上 ...

  2. KepServer连接西门子PLC

    1.KepServer和PLC建立连接用的都是配置程序 2.打开软件后,点击添加通道,然后在添加通道向导中选择你要使用的驱动(也就是你连接的PLC支持的通讯协议),也可以单击"编辑" ...

  3. java连接sqlserver代码附带JAR包和SQLServer安装包

    在我写这篇文章前,想要把JAVA连接数据库从MySql转到SQLServer费了一两天的时间找方法排错.这里我给出了省去找JAR包和sqlserver安装包的时间和没有完整代码而报错的问题. 1.首先 ...

  4. 使用pycharm连接远程代码编程

    因为工作中使用的代码是部署在统一的服务器(linux环境中),所以工作中需要使用windows的环境进行远程连接进行代码编写.(ps:主要是因为对于应用linux的VIM编程不习惯) 这里进行介绍如何 ...

  5. WFD连接过程代码分析(Sink端)

    WFD连接过程代码分析(Sink端) WFD建立连接首先必需建立P2P连接,随后WFD使用P2P连接的IP和端口号建立RTSP连接.本文着重分析P2P连接建立后的RTSP连接建立过程,且为一个Sour ...

  6. NB驱动建立MQTT连接和断开MQTT连接的代码实现

    文章目录 1 SIM7020建立MQTT连接和断开MQTT连接的AT指令 2 SIM7020连接阿里云的流程 3 代码实现 1 SIM7020建立MQTT连接和断开MQTT连接的AT指令 首先看下相关 ...

  7. python连接服务器代码_python服务器端收发请求的实现代码

    最近学习了python的一些服务器端编程,记录在此. 发送get/post请求 # coding:utf-8 import httplib,urllib #加载模块 #urllib可以打开网站去拿 # ...

  8. node-mysql中的连接池代码学习

    node-mysql是一个node.js下的mysql驱动,前段时间在处理连接池的问题上遇到了连接不释放的疑难杂症,虽已解决,但仍需总结经验避免下次重蹈覆辙.下面是node-mysql中的连接池的部分 ...

  9. java代码连接redis_java代码连接redis

    需要的maven依赖 redis.clients jedis 2.9.0 代码: package yofc; import redis.clients.jedis.Jedis; import redi ...

最新文章

  1. Java Spring @Scheduled 定时任务crontab表达式设置
  2. The total number of locks exceeds the lock table s
  3. SQL函数类的操作,增加,查询
  4. js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
  5. chmod 命令详解
  6. 题解 LGOJ P4168 【[Violet]蒲公英】
  7. 如何防止盗号 使用windows自带的 屏幕键盘 OSK
  8. ImportError: No module named ‘keras_contrib‘
  9. 腾讯与新浪微博开放平台之比较
  10. qt界面布局之如何修改qt5版本以上的左上角的图标
  11. java jsp ssm210KTV点歌系统毕设成品源码项目介绍
  12. 装了冰点还原如何修改计算机ip,冰点还原软件如何使用
  13. erlang ets写入mysql_ets:i/0 – 在输出端上打印显示所有 ETS 表的信息 - Erlang 中文手册...
  14. c4d怎么导入fbx_c4d怎么导入模型?品索教你Maya模型文件如何导入到C4d
  15. 个人资源小仓库之【工具】!
  16. python人工智能入门纳米学位_学习笔记(一) - 机器学习纳米学位
  17. SQL Server T-SQL语言
  18. react+ts+echarts5.x按需导入实现世界地图
  19. 读后感《孤独的张小龙,在商业中走出孤独》
  20. 【张朝阳的物理课笔记】 2. 能量守恒,动量守恒,第二宇宙速度

热门文章

  1. (转)C#开源资源大汇总之二
  2. 华展云1.0.2版本更新通告
  3. 【网络篇】如何给虚拟机添加网卡,设置固定ip
  4. C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件。 ”的解决
  5. 组装高性能服务器电脑,自制高性能NAS教程 淘汰老电脑配件制作
  6. 20.0、C语言数据结构——图的存储结构
  7. 【前端圭臬】一:写给入坑前端的你
  8. 初夏小谈:反转单链表(头插法、三指针法)
  9. 高通/海思/小米围攻:联发科的2017,四面楚歌!
  10. MapReduce数据倾斜解决方案——将key打散