紫外工控论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索

用VB编写OPC客户端通过RSLINX访问SLC

2012-6-23 13:08| 发布者: 冰糖| 查看: 3651| 评论: 0

摘要: OPC是一个工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司和Microsoft(微软)紧密合作而建立的。O代表OLE(对象链接和嵌入),P (process过程),C (control控制)。OLE已从面向对象重新定义为基于对象并更名 ...

Dim ItemNum As Integer '标签个数
Dim ClientHandles1(100) As Long '先配置名柄索引,这将在读取OPC标签的值时可要用到

On Error GoTo HANDLEERROR
'生成OPC对象
Set MyOPCServer = New OPCServer
MyOPCServer.Connect ServerName, NodeName
Set MyOPCGroups = MyOPCServer.OPCGroups
MyOPCGroups.DefaultGroupIsActive = True
Set MyOPCGroup = MyOPCGroups.Add("MYGROUP")
Set MyOPCItems = MyOPCGroup.OPCItems

ItemNum = 5 'OPC标签个数,如果标签数量很多,可以考虑采用数据库方式
DataItem(1) = "[NEW_TOPIC]B3:1"
DataItem(2) = "[NEW_TOPIC]B3:2"
DataItem(3) = "[NEW_TOPIC]T4:3.ACC"
DataItem(4) = "[NEW_TOPIC]T4:3.EN"
DataItem(5) = "[NEW_TOPIC]T4:3.DN"

'进行OPC标签连接
'对OPC的写可以有同步与异步之分,对于大量的数据传输,异步是更佳的选择,但对少量的数据传输,同步表现得更好。
If ItemNum > 0 Then
MyOPCItems.AddItems ItemNum, DataItem, ClientHandles1, ServerHandles, Errors
MyOPCGroup.IsSubscribed = True
End If

'至此:OPC连接就成功了,我们可以对OPC进行读与写的操作了。
Timer1.Enabled = True '连接成功后,定时交换数据
Exit Sub

HANDLEERROR:
MsgBox Err.Description

End Sub

Private Sub Check1_Click(Index As Integer)
Dim B3bit(15) As Integer 'B3的16个位这里只要用到了0、1、4
Select Case Index
Case 0:
If Check1(0).Value = Checked Then Image1.Visible = True Else Image1.Visible = False
Case 1:
If Check1(1).Value = Checked Then Image4.Visible = True Else Image4.Visible = False
Case 2:
If Check1(2).Value = Checked Then Image3.Visible = True Else Image3.Visible = False
End Select
If Check1(0).Value = Checked Then B3bit(0) = 1 Else B3bit(0) = 0
If Check1(1).Value = Checked Then B3bit(1) = 2 Else B3bit(1) = 0
If Check1(2).Value = Checked Then B3bit(4) = 16 Else B3bit(4) = 0
DataValue(1) = B3bit(0) + B3bit(1) + B3bit(4)
MyOPCItems(1).Write DataValue(1)
End Sub

Private Sub Command1_Click()
Command1.Enabled = False
StartClient
End Sub

Private Sub Command3_Click()
StopClient
Unload Me
End Sub


鲜花

握手

雷人

路过

鸡蛋

--------------------------------------------------------------------------------------------------------------------
本站是工控技术交流站点,论坛内容均为网络收集或会员所发表,并不代表本站立场,会员拥有该内容的所有权力及责任!
本站内容如有侵犯您的版权,请按下面方式联系本站管理员,我们将及时删除处理
管理员:冰糖 QQ:5483695(请直击主题), Mail:admin#ziwai.net(#改成@) 其它非本人.
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

QQ|Archiver|手机版|小黑屋|紫外工控论坛. ( 苏ICP备11032118号-1 )

GMT+8, 2024-5-18 20:38 , Processed in 0.546879 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

返回顶部