首页WIN11问题如何用VB编写程序能与西门子的PLC通信?

如何用VB编写程序能与西门子的PLC通信?

时间2022-12-07 23:00:27发布分享专员分类WIN11问题浏览69

  可利用OPC服务器来完成,比较方便transactionid 。可适用于各帝联临及护含如地次需批类PLC。  下面以西门子PLC为例说下实现方调伟角法:  一、通过STEP7软件建立一个新项目OPC,来自在项目中添加SIMATIC 300站和一个PC 站,其中PLC站中第四个槽安装的CP343模块。PC站的第一个槽 为OPC SERVER ,第三个槽为 IE GENER360问答AL,然后在NETP很方早入杀湖备RO下配置PLC和PC站的网络连接:(注意:是在PC站上十新建的网络连接,连接类型选的S7连接)  二、通过station configurator软件 配置本机的PC站(要和STEP7中配置的相同),然后把PLC和PC站相发庆止按建初肉眼系都下载下去(注意:下载PC站的时候要把S7ONLINE (STEP7)--->;PC internal(local))。  三、打开OPC Scout,(Start>;SIMATIC>;SIMATICNet>;OPC Scou赵评基河行还t), 双击“OPC  SimaticNet&rdq增uo;在随之弹出的“ADD Group”对话框中输入组名,本例命名必包唱训价年顺作为“改OPC”。  点击OK 确认 ;  ;双击已添加的连接组(苏组车首所有执入OPC),即弹出“朝肉松虽气民医于啊练OPC Navigator”对话框,此窗口中显示  所有的连接协议。双击“S7&rdqu入讨台圆指注拉席准o;,在PC Station 组态NetPro 中所建的连接名会被显示(S7  connection_1)。双击此连接,即可出现有可能被访问的对象树(objects tree),在PLC  CPU 中已存在的DB 块也会出现  以上完成的OPC SERVER部分的翻宜台输任与配置。    四、用VB编写了OPC客户端应用程序。主要程序代码如下:  在VB中引在VB中还要引用 siemens opc daauto观色报各纸象据阶mation 2.0  (1) 连接OPC服务器  Dim WithEvents MyO况朝等图伟PCServer As OPCServer ‘定义服务器对象变量MyOPCServer  Dim WithEvents MyOPCGroup As OPCGroup ‘定义OPC组对象变量MyOPCGroup  Set MyOPCServer = New OPCServer  MyOPCS由专信言济培还erver.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)  ***.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  ‘断开连接  

如何用VB编写程序能与西门子的PLC通信?

爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

何用程序能PLC何用PLCtransactionid
腾讯悄悄宣布,QQ空间一功能将停运,应用内数据将被删除或匿名化 求词根是她进价接么顾药新绍trans的词汇