C#编写OPC客户端(1)

    因课题研究的是监控系统,需要与PLC通讯读取数据,在比较了一些通讯方式之后,决定选用OPC客户端来获取PLC的数据。OPC客户端的编写有很多种方式,其中较容易入门的是自动化的写法,即引用OPCAutomation.dll库,利用该库中的函数来连接和获取PLC中的数据。

   网上关于这方面的资料有限,而且很多帖子都很雷同,以VB居多。在研究和练习了许久之后,终于有了一些心得。由于本人的监控系统是使用C#编写的,所以就使用C#编写了客户端。希望能给其他人一些帮助。(毕竟自己在这方面花了很多时间和经历)希望大家在转发我的文章时注意写明转发来源!

   我主要这次主要连接的PLC是西门子的PLC,所以dll库就直接使用了西门子的SiemensOPCDAAutomation,安装上西门子的SimaticNET后,就会出现。在引用上直接添加引用

2010062515500280.jpg

添加上dll库后,在你的主程序的最上方加上

using SimensOPCDAAutomation;

就可在程序中引用有关OPC中的所有函数了。

1、连接

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
1 定义opc有关变量
2 OPCServer myServer;
3 OPCGroups myGroups;
4 OPCGroup[] myGroup;
5 OPCItem WriteItem;
6 服务器连接
7 myServer = new OPCServer();
8 HostName = Dns.GetHostName();
9 myServer.Connect( " OPC.SimaticNet " , HostName);
10 if ( ! (myServer.ServerState == ( int )OPCServerState.OPCRunning))
11 {
12 MessageBox.Show( " 连接失败! " , " 注意 " );
13 return ;
14 }

 

OPC协议时三层结构,Server→(Groups→Group)→(Items→Item)

要添加数据项必须通过组和组集,所以必须定义Groups和Group。而且Group也会影响到后面异步读取的DataChang事件,所以是必须的。接下来定义组和添加组

2、组

 

 
  
// 添加组
myGroups = myServer.OPCGroups;
myGroup
= myGroups.Add( " test " );

 

 

其中的组名“test”是任意取的。

今天就写到这吧,呵呵!

 

转载于:https://www.cnblogs.com/xiehuihui/archive/2010/06/25/1765270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值