资源简介
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# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论