VB实现PLC与上位机通信

谁有PLC与上位机通信的Visual Basic程序代码(PLC型号不定)?『满意的话追加50分』

美丽苗条龙龙 2021-09-19 09:18 177 次浏览 赞 95

最新问答

  • 水里漂浮的雨

    可利用OPC服务器来完成,比较方便。可适用于各类PLC。
      下面以西门子PLC为例说下实现方法:
      一、通过STEP7软件建立一个新项目OPC,在项目中SIMATIC 300站和一个PC 站,其中PLC站中第四个槽安装的CP343模块。PC站的第一个槽 为OPC SERVER ,第三个槽为 IE GENERAL,然后在NETPRO下配置PLC和PC站的网络连接:(注意:是在PC站上新建的网络连接,连接类型选的S7连接)
      二、通过station configurator软件 配置本机的PC站(要和STEP7中配置的相同),然后把PLC和PC站都下去(注意:PC站的时候要把S7ONLINE (STEP7)--->;PC internal(local))。
      三、打开OPC Scout,(Start>;SIMATIC>;SIMATICNet>;OPC Scout), 双击“OPC
      SimaticNet”在随之弹出的“ADD Group”对话框中输入组名,本例命名为“OPC”。
      点击OK 确认 ;
      ;双击已的连接组(OPC),即弹出“OPC Navigator”对话框,此窗口中显示
      所有的连接协议。双击“S7”,在PC Station 组态NetPro 中所建的连接名会被显示(S7
      connection_1)。双击此连接,即可出现有可能被访问的对象树(objects tree),在PLC
      CPU 中已存在的DB 块也会出现
      以上完成的OPC SERVER部分的配置。
      
      四、用VB编写了OPC客户端应用程序。主要程序代如下:
      在VB中引在VB中还要引用 siemens opc daautomation 2.0
      (1) 连接OPC服务器
      Dim WithEvents MyOPCServer As OPCServer ‘定义服务器对象变量MyOPCServer
      Dim WithEvents MyOPCGroup As OPCGroup ‘定义OPC组对象变量MyOPCGroup
      Set MyOPCServer = New OPCServer
      MyOPCServer.Connect " OPC.SimaticNET" ‘连接SIMATICNET 的OPC服务器
      (2) OPC组对象
      Set MyOPCGroup=MyOPCServer.OPCGroups.Add("Group1")
      ‘OPC组对象
      MyOPCGroup.IsSubscribed= True
      ‘设置该组为后台刷新
      MyOPCGroup.IsActive = True
      ‘设置该组为激活状态
      MyOPCGroup.UpdateRate=1000
      ‘设置刷新时间为1000
      (3) 项
      Dim abItemIDs() As String
      ‘项标识符
      Dim abClientHandles() As Long
      ‘客户端句柄
      Dim abServerHandles() As Long
      ‘服务器端句柄
      Dim abErrors() As Long
      Dim i As Long
      ItemCount=3
      abItemIDs(1) = " S7:【S7 connection_1】IB1"
      abItemIDs(2) = " S7:【S7 connection_1】MB1"
      abItemIDs(3) = " S7:【S7 connection_1】QB1"
      for i=1 to 3
      abClientHandles(i) = i
      ‘给客户端句柄赋值
      Next
      MyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles, abErrors
      ‘项作
      (4) 同步读写
      OPC存取有同步方式和异步方式两种。异步读写复杂,需要与结合使用,与同步相比速度慢但准确性高。同步读写简单,直接使用OPCItem的方法即可。
      Dim One As OPCItem
      Dim Index As Long
      ‘Index为标签顺序号
      Dim OneRead As String
      Dim Xie As String
      Set One = MyOPCGroup.OPCItems(Index)
      One.Read OPCCache
      OneRead = One.Value
      ‘读
      MyOPCGroup.SyncWrite ItemCount, ServerHandles, valuess, Errors
      ‘同步写
      MyOPCGroup.SyncRead OPCCache, ItemCount, ServerHandles, ReadValue, Errors
      ‘同步读
      One.Write (Xie)
      ‘写
      若只读取,可以使用DataChange,当控制器中所要访问的一旦发生改变时将会触发该,并将该自动读到TxtValue文本框。
      Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
      ‘自动刷新
      Dim i As Long
      For i = 1 To NumItems
      txtValue(ClientHandles(i)) = ItemValues(i)
      ‘获取项的值
      txtTime(ClientHandles(i)) = TimeStamps(i)
      ‘获取项的时间戳
      txtQuantity(ClientHandles(i))=GetQualityString(Qualities(i))
      ‘获取项的品质
      Next i
      End Sub
      (5) 断开OPC服务器
      MyOPCServer.OPCGroups.RemoveAll
      ‘移除所有OPC Group,空出
      Set MyOPCGroup = Nothing
      MyOPCServer.Disconnect
      ‘断开连接

    浏览 187赞 51时间 2024-01-01
  • 粉恋桃心

    用VISUALBASIC实现上位机和PLC的通讯

    论文摘要:本文以OMRON C200HS PLC为例,介绍了如何用VISUAL BASIC编程软件实现上位机和PLC的通讯,该方案具有硬件简单,使用灵活的特点.对串小型控制系统实现通讯有一定的参考价值.

    论文名称: 用VISUALBASIC实现上位机和PLC的通讯
    作 者: 余松 赵忠堂 甘川
    专业类别:
    论文来源: 转载
    刊载杂志: 电气传动

    地址:shejis.com/upload_file/upload_lw/2007-5-14lw-wy/200712492035.rar

    浏览 401赞 122时间 2023-12-19
  • 无敌炒米饭

    是232通信吗?你可以看串口调试工具的vb的源代。网上面很容易找到的。

    浏览 289赞 105时间 2021-12-07
  • 我想我是海啊

    skycn.com/soft/25414.html

    浏览 194赞 74时间 2021-09-20

VB实现PLC与上位机通信

谁有PLC与上位机通信的Visual Basic程序代码(PLC型号不定)?『满意的话追加50分』