资源简介
C#使用OpcNetApi_dll和OpcNetApi_Com_dll操作OPCServer,支持所有的OPCSERVER

代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using Opc;
using Opc.Da;
using OpcCom;
namespace OPCAPITest
{
class Tester
{
private Opc.Da.Server m_server = null;//定义数据存取服务器
private Opc.Da.Subscription subscription = null;//定义组对象(订阅者)
private Opc.Da.SubscriptionState state = null;//定义组(订阅者)状态,相当于OPC规范中组的参数
private Opc.IDiscovery m_discovery = new OpcCom.ServerEnumerator();//定义枚举基于COM服务器的接口,用来搜索所有的此类服务器。
public void Work()
{
//查询服务器
Opc.Server[] servers = m_discovery.GetAvailableServers(Specification.COM_DA_20““ null);
//daver表示数据存取规范版本,Specification.COMDA_20等于2.0版本。
//host为计算机名,null表示不需要任何网络安全认证。
if (servers != null)
{
foreach (Opc.Da.Server server in servers)
{
//server即为需要连接的OPC数据存取服务器。
if (String.Compare(server.Name “OPC.SimaticNET“ true) == 0)//为true忽略大小写
{
m_server = server;//建立连接。
break;
}
}
}
//连接服务器
if (m_server != null)//非空连接服务器
m_server.Connect();
//设定组状态
state = new Opc.Da.SubscriptionState();//组(订阅者)状态,相当于OPC规范中组的参数
state.Name = “测试“;//组名
state.ServerHandle = null;//服务器给该组分配的句柄。
state.ClientHandle = Guid.NewGuid().ToString();//客户端给该组分配的句柄。
state.Active = true;//激活该组。
state.UpdateRate = 100;//刷新频率为1秒。
state.Deadband = 0;// 死区值,设为0时,服务器端该组内任何数据变化都通知组。
state.Locale = null;//不设置地区值。
//添加组
subscription = (Opc.Da.Subscription)m_server.CreateSubscription(state);//创建组
//定义Item列表
//对应类型为:{ByteByteCharShortStringWordBoolean}
string[] itemName = { “BPJ.DB1.dbb0“ “BPJ.DB1.dbb1“ “BPJ.DB1.dbc2“ “BPJ.DB1.dbi3“
“BPJ.DB1.dbs4“ “BPJ.DB1.dbw5“ “BPJ.DB1.dbx6“ };
//定义item列表
Item[] items = new Item[7];//定义数据项,即item
int i;
for (i = 0; i < items.Length; i++)//item初始化赋值
{
items[i] = new Item();//创建一个项Item对象。
items[i].ClientHandle = Guid.NewGuid().ToString();//客户端给该数据项分配的句柄。
items[i].ItemPath = null; //该数据项在服务器中的路径。
items[i].ItemName = itemName[i]; //该数据项在服务器中的名字。
}
//添加Item
subscription.AddItems(items);
//注册回调事件
subscription.DataChanged += new Opc.Da.DataChangedEventHandler(this.OnDataChange);
//以下测试同步读
//以下读整个组
ItemValueResult[] values = subscription.Read(subscription.Items);
//以下检验item的quality
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 144 2011-03-07 15:54 OPCAPITest\app.config
文件 4690 2011-03-07 15:54 OPCAPITest\OPCAPITest.csproj
文件 452 2011-03-07 15:54 OPCAPITest\OPCAPITest.csproj.user
文件 200704 2005-11-25 17:07 OPCAPITest\OpcNetApi.Com.dll
文件 225280 2005-11-25 17:07 OPCAPITest\OpcNetApi.dll
文件 8392 2009-03-25 16:21 OPCAPITest\Program.cs
目录 0 2011-08-31 15:10 OPCAPITest
----------- --------- ---------- ----- ----
439662 7
相关资源
- C#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
评论
共有 条评论