下载 >  开发技术 >  C# > 对组态王OPC服务器值的读取c#版本

对组态王OPC服务器值的读取c#版本 评分:

下面这段代码是网上抄来的,相信有人也找到过这段,实际上真正运行的时候就会发现其实是有问题的,我把它修改了下,能正常读写了。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace kingview { public partial class Form1 : Form { /// <summary> /// 与组态王建立连接 /// 每次应用程序启动时,必须用该函数与组态王建立连接 /// </summary> /// <param name="node">node为节点(IP),如果是本机,其值为空</param> /// <returns>返回错误码,见附录。</returns> [DllImport("kingvewcliend.dll")] public static extern int StartCliend(string node); /// <summary> /// 得到组态王SDK中列出的项目(包括变量及其域)总数 /// </summary> [DllImport("kingvewcliend.dll")] public static extern int ReadItemNo(); /// <summary> /// 得到某个项目的名称 /// <param name="sName">将返回组态王的项目的名称</param> /// <param name="wItemId">为用户写入的其要取的变量的索引号,其为ReadItemNo返回的范围内的某个数</param> /// <returns>返回错误码,见附录</returns> /// </summary> [DllImport("kingvewcliend.dll")] //[SecurityPermission(SecurityAction.Assert, Unrestricted = true)] public static extern int GetItemNames(StringBuilder sName, int wItemId); /// <summary> /// 将某个项目添加到采集列中 /// <param name="sRegName">是要加入采集的项目名</param> /// <param name="TagId">TagId项目采集的标识号</param> /// <param name="TagDataType">项目的数据类型</param> /// <returns>返回错误码,见附录</returns> /// </summary> [DllImport("kingvewcliend.dll")] public static extern int AddTag(string sRegName, ref int TagId, ref int TagDataType); /// <summary> /// 向某个项目中有应用程序向组态王方向写数据 /// </summary> /// <param name="TagId">为要采集项目的标识号</param> /// <param name="bVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <param name="lVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <param name="fVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <param name="sVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <returns>返回错误码,见附录</returns> [DllImport("kingvewcliend.dll")] public static extern int WriteTag(ushort TagId, bool bVal, long lVal, float fVal, ref char sVal); /// <summary> /// 从组态王中读某个项目的数据 /// </summary> /// <param name="TagId">要采集的变量的表示号</param> /// <param name="bVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <param name="lVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <param name="fVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <param name="sVal">bVal、lVal、fVal、sVal为设定的数值,用户将根据变量的类型设定数值</param> /// <returns>返回错误码,见附录</returns> [DllImport("kingvewcliend.dll")] public static extern int ReadTag(int TagId, ref bool bVal, ref long lVal, ref Single fVal, StringBuilder sVal); /// <summary> /// 断开与组态王OPC的连接 /// </summary> /// <returns>返回错误码,见附录</returns> [DllImport("kingvewcliend.dll")] public static extern int StopCliend(); // 错误码含义 //0 //连接成功 //-1 //OPC SERVER已经被非法关闭 //-2 //找不到OPC SERVER的PROGID //-3 //连接OPC SERVER不成功 //-4 //枚举ITEMS错误 //-5 //OPC SERVER没有定义ITEMS //-6 //内存分配错误 //-7 //在向GROUP中加入ITEMS时出现错误 //-8 //未使用 //-9 //读ITEMS时出现错误 //-10 //不能识别的数据类型 //-11 //读ITEMS的质量戳时出现错误 //-12 //向ITEMS中写入数据时出现错误 //-13 //用户添加变量的变量名错误 //-14 //用户读取的变量序号越界 public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Console.WriteLine("连接到本地服务器···"); StartCliend(""); Console.WriteLine("得到项的个数"); int itemCount = ReadItemNo(); Console.WriteLine("得到项的个数为:"+itemCount.ToString()); StringBuilder regname = new StringBuilder(256); string[] name = new string[itemCount]; Console.WriteLine("得到所有的Item····"); for (int i = 0; i < itemCount - 1; i++) { GetItemNames(regname, i); name[i] = regname.ToString(); } Console.WriteLine("输出所有的Item····"); for (int i = 0; i < itemCount - 1; i++) { Console.WriteLine(name[i].ToString()); } int[] tagId =new int[itemCount]; int[] tagType =new int[itemCount]; Console.WriteLine("开始将要监控的Item添加····"); for (int i = 0; i < itemCount - 1; i++) { AddTag(name[i].ToString(), ref tagId[i], ref tagType[i]); } bool[] bVal = new bool[itemCount]; long[] lVal = new long[itemCount]; Single[] fVal = new Single[itemCount]; StringBuilder sVal =new StringBuilder(255); string[] sValString = new string[itemCount]; Console.WriteLine("开始读取数据····"); for (int x = 1; x <5; x++) { Console.WriteLine("第"+x.ToString()+"次读取数据:"); for (int i = 0; i < itemCount - 1; i++) { ReadTag(tagId[i], ref bVal[i], ref lVal[i], ref fVal[i], sVal); sValString[i] = sVal.ToString(); Console.WriteLine("item:" + name[i].ToString() + "值:" + sValString[i].ToString()); } } } } }
...展开详情收缩
2018-06-20 上传大小:23KB
分享
收藏 举报
OPC读取组态王例子程序,C#

例子简单实用,使用C#开发,调用Kingvewcliend.dll库开发。

立即下载
OPC配置工具(组态王

组态王OPC配置工具;配置组态王的opc服务端和客户端

立即下载
从Intouch组态软件中获取实时数据的OPC客户端,C#代码

本客户端是在实际项目中检验过的,十分稳定,采用的库文件是OpcNetApiChs.dll,数据库采用MySql,收到的数据存到数据库中,通用性强

立即下载
C#通过OPC服务器连接PLC读写数据

C#通过OPC服务器连接PLC读写数据,可以与所有PLC进行数据OPC通讯

立即下载
vb-组态王 一个VB开的调用组态王OPC SERVER

一个VB开的调用组态王OPC SERVER的客户端程序代码,包括说明书-an open call Kingview OPC Server client code, including brochures

立即下载
Kingvewcliend.dll

Kingvewcliend.dll ,组态王的OPC驱动,开发简单,直接加载即可读数

立即下载
c# OPCClient获取OpcServer数据

自动获取OpcServer的名称,查看OpcServer相应tag数据

立即下载
通过串口读取DLT-645电度表并以OPC SERVER方式为第三方工控软件提供数据

做工控的朋友使用DCS或组态软件时,会因为DCS或组态软件未提供多功能复费率电度表驱动而无法读取电表数据。 本软件可解决这一困扰:各位工程师可以启动本软件,由本软件实时读取电度表常用数据(包括三相电压、三相电流、总有功功率及三相有功功率、总无功功率及三相无功功率、总有功电度、总无功电度等),同时本软件又是一个OPC SERVER,可以为DCS或组态软件提供电表数据。本软件目前仅提供一台电度表的数据读取,如需读取更多电表,请QQ联系。 OPC SERVER 名称:DLT645_OPCServer.Ally2Win.1 Va1: A相电压 Vb1: B相电压 Vc1: C相电压 Ia1: A相电

立即下载
C#OPC读取数据

C#访问OPC读取数据 一般用于自动化编程

立即下载
Win7系统下的OPC运行配置

Win7系统下的OPC运行配置,教程详细

立即下载
C#调用opc程序例子和小工具和详细使用说明

C#使用OPCDAAuto.dll调用opc服务中的标签点详细例子,附带详细说明,还包括一个OPCClient可以测试是否可以连通opc服务器。

立即下载
C#开发 客户端与OPC进行读取通信

C#开发 客户端与OPC进行直接读取通信,非常好用,是初学C#开发OPC者的启蒙老师。

立即下载
opc 客户端c#编写(数据同时存入mysql数据库)

用c#编写的opc客户端(数据同时存入mysql数据库),实现了利用opc通讯协议将底层的数据存入数据库。

立即下载
西门子S1200 与C#以太网通信,利用OPC服务器

利用西门子SIMATIC NET与S1200通信,C#2015的代码(原范例代码改了一下),其中有组态说明。有不明白可以共同学习。

立即下载
基于opc的使用c#读取wincc数据的方法

本文详细介绍了如何使用c#读取wincc里的数据,希望对于大家有所帮助

立即下载
由2台上位机(组态王)控制一套S7-300PLC系统,通信协议为Profibus-DP,一台计算机作为服务器,一台计算机作为客户机!

由2台上位机(组态王)控制一套S7-300PLC系统,通信协议为Profibus-DP,一台计算机作为服务器,一台计算机作为客户机!

立即下载
OPCClient,读取opc服务器的数据

opc client 有问题,AddItems函数返回错误

立即下载
基于组态王与MATLAB的监控软件实现

提出了一种编写MATLAB 的S 函数的方法来实现组态王与MATLAB的DDE通信. 通在某型舰船主动力监控系统仿真研究中的应用,

立即下载
c#组态王6.52DDE数据交换

本人花了三天,看了很多网络资料,一直没有找到有关c#与组态王DDE的代码,也看见很多人在问,我自已做了一个dll,用c#调用之,可以实现,现将c#调用示例及dll奉上,但愿能帮有需要的朋友一些忙,有什么问题,可以qq我,我的qq是153028124

立即下载
C#与OPC 通讯

C# 读取OPC 数据。

立即下载

热点文章

img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

对组态王OPC服务器值的读取c#版本

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: