关于OPC

已锁定

江汉之珠

  • 帖子

    1023
  • 精华

    15
  • 被关注

    47

论坛等级:奇侠

注册时间:2006-12-21

普通 普通 如何晋级?

关于OPC

843

2

2015-09-19 13:57:14

关于SMART200的OPC界面,我发一个完整的、经过测试的程序。下面我把代码贴出来。

Option Base 1

 Dim WithEvents ServerObj As OPCServer  ''OPC Server对象,连接OPC服务器

 Dim GroupsObj As OPCGroups          ''OPC Groups对象,添加OPC组

 Dim WithEvents GroupObj As OPCGroup  ''OPC Group对象

 Dim ItemsObj As OPCItems             ''OPC Item集合

 Dim ServerHandles() As Long           ''服务器端OPC Item的句柄

 Dim ClientHandles(2) As Long            ''客户端OPC Item的句柄

 Dim ItemId(2) As String

 Dim Errors() As Long

 

Private Sub Command1_Click()

 If ServerObj Is Nothing Then Set ServerObj = New OPCServer

  If ServerObj.ServerState = OPCDisconnected Then

  ServerObj.Connect ("S7200SMART.OPCServer") ''假设OPC服务器运行在本机

   End If

 If GroupsObj Is Nothing Then Set GroupsObj = ServerObj.OPCGroups

 If GroupObj Is Nothing Then Set GroupObj = GroupsObj.Add

 If ItemsObj Is Nothing Then Set ItemsObj = GroupObj.OPCItems

 GroupObj.IsActive = True     ''设置组为活动状态

 GroupObj.IsSubscribed = True

 GroupObj.UpdateRate = 1000

  ItemId(1) = "2:192.168.2.1:0201:0201,M0.0,BOOL,RW"

  ItemId(2) = "2:192.168.2.1:0201:0201,VD50,REAL,RW"

 ClientHandles(1) = 1

 ClientHandles(2) = 2

 Call ItemsObj.AddItems(2, ItemId, ClientHandles, ServerHandles, Errors)

End Sub

 

Private Sub Command2_Click()

 GroupsObj.RemoveAll

 ServerObj.Disconnect

 Set ItemsObj = Nothing

 Set GroupObj = Nothing

 Set GroupsObj = Nothing

End Sub

 

Private Sub Command3_Click()

  Dim TempServerHandles(1) As Long

 Dim VValue(1) As Variant

 Dim ErrorNr() As Long

 TempServerHandles(1) = ServerHandles(1)

 VValue(1) = 1 ''假设要将"1"写入ClientHandle为1的OPC Item

 GroupObj.SyncWrite 1, TempServerHandles, VValue, ErrorNr

End Sub

 

Private Sub Command4_Click()

  Dim TempServerHandles(1) As Long

 Dim VValue(1) As Variant

 Dim ErrorNr() As Long

 TempServerHandles(1) = ServerHandles(1)

 VValue(1) = 0 ''假设要将"1"写入ClientHandle为2的OPC Item

 GroupObj.SyncWrite 1, TempServerHandles, VValue, ErrorNr

End Sub

 

Private Sub GroupObj_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)

Text1.Text = ItemValues(1)

End Sub


关于OPC 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9019条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。