VB实现PLC与上位机通信

谁有PLC与上位机通信的VisualBasic程序代码(PLC型号不定)?『满意的话追加50分』... 谁有PLC与上位机通信的Visual Basic程序代码(PLC型号不定)?『满意的话追加50分』 展开
 我来答
laom75
高粉答主

推荐于2018-05-17 · 关注我不会让你失望
知道大有可为答主
回答量:4.6万
采纳率:84%
帮助的人:5145万
展开全部
  可利用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
  ‘断开连接
  
小福女
2008-03-20 · TA获得超过104个赞
知道答主
回答量:152
采纳率:0%
帮助的人:0
展开全部
用VISUALBASIC实现上位机和PLC的通讯

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

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

下载地址:http://www.download.shejis.com/upload_file/upload_lw/2007-5-14lw-wy/200712492035.rar

参考资料: http://www.dq.shejis.com/new_lw/html/139655.shtml

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daoye741
2008-03-20 · 贡献了超过211个回答
知道答主
回答量:211
采纳率:0%
帮助的人:57.9万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwchang
2008-03-15 · TA获得超过419个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:220万
展开全部
是232通信吗?你可以看串口调试工具的vb的源代码。网上面很容易找到的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式