最简单的访问OPC服务器方法

上传人:大米 文档编号:490744610 上传时间:2022-11-12 格式:DOC 页数:7 大小:547KB
返回 下载 相关 举报
最简单的访问OPC服务器方法_第1页
第1页 / 共7页
最简单的访问OPC服务器方法_第2页
第2页 / 共7页
最简单的访问OPC服务器方法_第3页
第3页 / 共7页
最简单的访问OPC服务器方法_第4页
第4页 / 共7页
最简单的访问OPC服务器方法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《最简单的访问OPC服务器方法》由会员分享,可在线阅读,更多相关《最简单的访问OPC服务器方法(7页珍藏版)》请在金锄头文库上搜索。

1、最简单的访问 OPC 服务器在网上搜了很多关于 VB.NET编写客户端访问 OPC服务器的资料,同时也根据 KEPWARE提供的案例源代码,同时进行研究,最后花了一个星期的时间进行研究,才粗略有了一点头绪,现共享出来,希望后来的初学者有所帮助。一要建一个 OPC服务器1)安装 OPC服务器软件, KEPware是大家比较常用的,我使用的是Kepware OPC V4.54。如图,添加 CHANNEL,添加 TAG.把 Plc 的点位添加进去,我建了 6 个变量( item )。具体添加的方法需要自行去学习。我添加的三菱 Q系列的 PLC,PLC采用以太网通讯的方式,在局部网就可以访问了。2 )

2、设置 DCOM,这个步骤很重要,具体的设置方法,网上很多资料,按步骤设置就可以。我原来按照组态王提供的方法,总是不成功,后来上了微软网站,按微软提供的方法设置肯定可以成功。完成了以上两步,你的电脑就变成OPC服务器了。二访问服务器1. 利用组态软件访问 OPC服务器。如果用组态王访问,那就太简单了,左边列表,选 opc 服务器,点击添加服务器,就会弹出一个窗口,把本机的 OPC服务器列成清单。在清单里面就可以发现 KEPSERVER的名称: KEPware.KEPserverEx.V4, 选择,然后按确定,就完成了添加服务器。在组态王的数据词典,新建变量, I/O 变量,连接设备选择 OPC服

3、务器,寄存器可以看到 KEPserver 的变量( item ),建立之后,就可以利用组网王,开发监控应用,组态软件的使用在此就不赘述了,总之,利用组态软件访问 OPC是最简单的。2. 用 VB.NET开发客户端访问访问 opc 服务器,必须使用OPC基金会提供的OPCdaauto.dll 。 学习过程,最好下载说明书,OPC_20_Automation_Interface ,网上可以下载。1) 注册 OPCdaauto.dll 。 这个动态连接库文件可以网上下载。拷贝到C:WINDOWSSYSTEM32目录,打开运行输入框,输入:regsvr32 C:WINDOWSSYSTEM32OPCDA

4、AUTO.DLL如果是64 位 windows,则拷贝在syswow64。输入:syswow64OPCDAAUTO.DLL。2) VS2015,新建一个项目。在项目 - 点击“添加引用”,使用浏览,在 COM,可以找到 opc da automation 的选项,点击确认,及完成添加。添加成功,则资源管理器,应用,可以看到OPCautomation 的项目。3)编写程序的过程最简单的一个案例,如下图,实现搜索服务器,连接服务器后,获取ITEM的实时值。A) 查找服务器点击“查找服务器”按钮,地址不填,则列出本机的 OPC服务器。如果填写另一台服务器地址,则列出另一台电脑的服务器清单如何知道计算

5、机名?看网络邻居,至少你应该知道那台电脑装了OPC服务器。PublicClassForm1InheritsSystem.Windows.Forms. FormDim WithEvents AnOPCServer As OPCAutomation. OPCServer 用于搜索服务器 , 连接服务器Dim WithEvents ConnectedGroupAs OPCAutomation. OPCGroup 对应后面添加组和项PrivateSub Form1_Load(senderAs Object , eAs EventArgs ) Handles MyBase.LoadEnd Sub 以下程

6、序:搜索 OPC服务器,显示在列表框上面Private Sub Button1_Click( ByVal sender As System. Object , ByVal e As System. EventArgs ) Handles CONNET.Click TryAnOPCServer =NewOPCAutomation. OPCServerListBox1.Items.Clear()Dim AllOPCServersAs ObjectAllOPCServers = AnOPCServer.GetOPCServers(TextBox1.Text) 以括号用文本框输入,确定OPC服务器的路

7、径,空白表示搜索本机,如果搜索内部网其他电脑,则写电脑的名称,例如:电脑名称Dim iAs ShortFor i = LBound(AllOPCServers)To UBound(AllOPCServers)ListBox1.Items.Add(AllOPCServers(i)Next iCatch exAs ExceptionMessageBox.Show( ListOPCserversfailedwith exception: + ex.Message, SimpleOPCInterfaceException ,MessageBoxButtons .OK) 用于显示执行结果,如果失败,则可

8、以显示失败的原因。End TryEnd SubB) 连接服务器、添加项和组代码如下:PrivateSub Button1_Click_1(senderAs Object , eAs EventArgs )Handles Button1.Click 以下程序连接服务器连接TryAnOPCServer.Connect(ListBox1.Text, TextBox1.Text) 第一个是参数是opc服务器名称,第二个是电脑名称。直接填写也可以,例如:AnOPCServer.Connect(“ KEPware.KEPserverEx.V4”,“ newPI” )Catch exAs Exception

9、MessageBox.Show( OPC server连接失败: + ex.Message,OPCSample,MessageBoxButtons .OK)End Try 以下程序添加group 和 itemTryAnOPCServer.OPCGroups.DefaultGroupIsActive =True 使其活动,照抄就行。AnOPCServer.OPCGroups.DefaultGroupDeadband = 0 照抄就行。ConnectedGroup = AnOPCServer.OPCGroups.Add(GROUP1) 添加 GROUP,名称自己随便填。ConnectedGroup

10、.UpdateRate = 100 更新速率,我实验过,值越小,获取ITEM值越灵敏。ConnectedGroup.IsSubscribed =True 采用订阅的方式,后面用 DATACHANGE的事件获取 item 值,与此对应。ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1绿.灯 , 1)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1产.量 , 2)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1黄.灯 , 3)ConnectedGroup.

11、OPCItems.AddItem(CHANNEL2.DEVICE1省.电 , 4)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1产.量 1 , 5)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE2产.量 , 6)ADDITEM和ADDITEMS,两种命令的格式不同,这里仅用最简单的additem 命令,用最土的办法添加了6个ITEM,两个参数,第一个是 item 名称,必须和 KEPSERVER建立的 ITEM完全一致,第二个参数是 CLIENTHANDLES,句柄。 6个ITEM, 我给的是 1

12、-6 ,随便数字都可以,不重复即可。这个跟后面获取值有直接关系!Catch exAs ExceptionMessageBox.Show( 添加组和项失败: + ex.Message,OPCSample,MessageBoxButtons .OK)End TryEnd SubC)获取前面提到的 订阅的方式,是 OPC服务器主动的方式,把有变化的ITEM,发送给客户端。需要使用 DataChange的事件来获取item 值, OPC_20_Automation_Interface58页。假设两个 OPC服务器有 2个item 发生改变( 绿灯,产量),那么会返回 2个ITEMS, 返回的, 其中 ITEMVALUES是返回的 ITEM实际值, ClientHandles 是返回的句柄值,句柄值和添加 ITEM时定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号