vb.net连接opc vbnet odbc

西门子plc与vb通讯VB不能直接访问PLC的 。
西门子有专用的软件接口,是通过OPC实现的 。大致原理是架设好OPC Server(其实也是一个软件),通过OPC协议把PLC的所有需要的IO或者中间变量共享出来,然后用西门子的专用接口访问OPC上共享出来的这些内容(VB、VC、C#等) 。
另外如果你现在有WinCC和PLC通信且能监控或者控制PLC的IO点或者中间变量,那吗可以不用另外架设OPC Server,直接用WinCC 中的OPC就行了 。
请教:VB.NET编写程序与KepWare OPC通信,调用AddItems函数提示“指定的数组不属于需要的类型”ItemServerHandles()是个数组vb.net连接opc,要使用ItemServerHandles(1)这样使用
vb怎么读取或修改opc变量值首先申明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() as Long'客户端OPC Item的句柄
Dim ItemId(2) As String
Dim Errors() As Long
接下来,生成各个对象:
If ServerObj Is Nothing Then Set ServerObj = New OPCServer
'连接OPC服务器
If ServerObj.ServerState = OPCDisconnected Then
ServerObj.Connect ("OPC.SimaticNET") '假设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'设置组为活动状态
'假设有两个数据源,一个是8位开关量输入,一个是8位开关量输出
ItemId(1) = "S7:[S7 connection_1]IB0"
ItemId(2) = "S7:[S7 connection_1]QB0"
ClientHandles(1) = 1
ClientHandles(2) = 2
'添加组项目,ServerHandles数组的值为各个OPC Item的服务器句柄,
' ClientHandles数组的值为各个OPC Item的客户端句柄,由应用程序设定
Call ItemsObj.AddItems(2, ItemId, ClientHandles, ServerHandles, Errors)
vb.net如何建立OPC通讯读取WINCC中的变量值您好,我用过的是S7-200 PLC与WINCC通讯,两者通讯必须使用西门子提供的软件PC_ACCESS 。在PC_ACCESS中建立变量 , 地址要与PLC变量地址对应 。然后通过wincc的OPC服务器添加PC_ACCESS里面的变量即可 。这样WINCC就和PLC变量链接上了!
vb.net的数据库连接1·绑定数据源来进行连接
2.用代码连接
先到数据库建立一个数据库和相应vb.net连接opc的表
连接数据库的代码vb.net连接opc:
Dim str As String = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password="
dim conn As SqlClient.SqlConnection
try
conn = New SqlClient.SqlConnection
conn.ConnectionString = str
conn.Open()
Return True
Catch ex As Exception
MsgBox(ex.ToString)
Return False
End Try
登录代码vb.net连接opc:Dim str As String = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password="
dim conn As SqlClient.SqlConnection
conn = New SqlClient.SqlConnection
conn.ConnectionString = str
conn.Open()
sqlstr = "Select * From Amd Where AmdName='"TextBox1.Text"' And AmdPwd = '"TextBox2.Text"'"
Dim sqlcmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(sqlstr, conn)
Dim dr As SqlClient.SqlDataReader
dr = sqlcmd.ExecuteReader
If dr.Read = True Then'判断一条记录为真
kf.Show() '显示下个窗体
Me.Hide() ’隐藏当前窗体
Else
MessageBox.Show("输入信息有误vb.net连接opc!", "提示")
TextBox1.Text = ""
TextBox2.Text = ""
End If
VB.NET的OPC读取西门子PLC数值转换12601, 转换成16进制是3139 , 16进制 ASC吗31对应字符1,39对应9 。后面的用这个思路去转换就对上了 。
0001 2569这两个应该是和格式相关的字符 。0001一般就是开始的意思 。
一个变量包含两个字符,转换算法如下 。
1 。取高位字符,除以H100,H是VB中16进制表示法 。除以H100效果是右移8位 。位了保险起见 , 再和H00FF做与运算,保证取得的ASC码是合法的 。
2 。取低位字符 , 与H00FF做与运算,去掉高位数据,剩下的就是低位ASC码 。
3 。将ASC码转换为字符 , 用CHR函数即可,然后连接所有的字符即可得String
【vb.net连接opc vbnet odbc】vb.net连接opc的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于vbnet odbc、vb.net连接opc的信息别忘了在本站进行查找喔 。

    推荐阅读