大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.设置OPC SERVER,手册可以去西门子(中国)下载,配置IE模块,设置连接到该PLC的IP地址,这些手册都有的,文档名叫A030.PDF
创新互联主营浑源网站建设的网络公司,主营网站建设方案,成都app软件开发公司,浑源h5小程序制作搭建,浑源网站营销推广欢迎浑源等地区企业咨询
2.在VB工程中引用sopcdaauto.dll或者通用的opcdaauto.dll,这些可以安装组态软件或者西门子系列软件得到
3.完成2后,就可以直接声明OPC SERVER以及OPC GROUP还有OPC ITEMS了
Public WithEvents ServerObj As OPCServer
Public WithEvents GroupObj As OPCGroup
Dim ItemObj1 As OPCItem
添加该标签
Set ItemObj1 = GroupObj.OPCItems.AddItem("S7:[S7 connection_1]Q0.0", 1)
4.设置读取数据,添加按钮,在其中输入代码
Dim OutText As String
Dim myValue As Variant
Dim myQuality As Variant
Dim myTimeStamp As Variant
Dim ClientID As Long
Dim ServerID As Long
Dim ErrorNr() As Long
Dim ErrorString As String
On Error GoTo ErrorHandler
OutText = "Reading Value of Item"
ClientID = READASYNC_ID
GroupObj.AsyncRead 1, Serverhandle, ErrorNr, ClientID, ServerID
If ErrorNr(1) 0 Then
ErrorString = ServerObj.GetErrorString(ErrorNr(1))
MsgBox ErrorString, vbCritical, "Error AsyncRead()"
End If
Erase ErrorNr
Exit Sub
ErrorHandler:
MsgBox Err.Description + Chr(13) + _
OutText, vbCritical, "ERROR"
这样就可以取数了
还是不明白的话,去我QQ空间,有篇文章写的很详细QQ:56229986
声明.dll中的函数时,要注意变量类型在VB6与VB.NET下有所不同,比如在VB6下声明为long长整的,在VB.NET下有可能要声明为integer整型,原因是变量类型的长度在VB.NET下已经发生了变量,所以不能照搬了。其它的自己测试吧,也可以上网找一下这方面的资料。
VB不能直接访问PLC的。
西门子有专用的软件接口,是通过OPC实现的。大致原理是架设好OPC Server(其实也是一个软件),通过OPC协议把PLC的所有需要的IO或者中间变量共享出来,然后用西门子的专用接口访问OPC上共享出来的这些内容(VB、VC、C#等)。
另外如果你现在有WinCC和PLC通信且能监控或者控制PLC的IO点或者中间变量,那吗可以不用另外架设OPC Server,直接用WinCC 中的OPC就行了。
用VB与S7-300的通讯方式有很多种:
1、使用Prodave实现PPI MPI通讯
2、使用OPC,利用OPC提供的通用接口,实现OPC方式通讯
3、有CP341,可以进行自由口通讯,上位和PLC之间需要考虑协同
在百度上搜索一个叫做 WinTcpS7.DLL 的文件,是官方认证的VS与S7 PLC通讯的.NET程序集,很方便的,