vb.net如何建立OPC通讯读取WINCC中的变量值您好 , 我用过的是S7-200 PLC与WINCC通讯 , 两者通讯必须使用西门子提供的软件PC_ACCESS 。在PC_ACCESS中建立变量,地址要与PLC变量地址对应 。然后通过wincc的OPC服务器添加PC_ACCESS里面的变量即可 。这样WINCC就和PLC变量链接上了!
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 的AddressOf 问题你好 , EnableDisconnectNotification、 EnableWriteNotification这两个是外部函数吧,是委托吗?
建议使用委托可以看看下面的例子
此示例演示如何使用委托将过程传递给另一个过程 。
委托是一种类型,与任何其他类型一样可在 Visual Basic 中使用 。AddressOf 运算符如果应用到一个过程名 , 则返回一个委托对象 。
此示例有一个具有委托参数的过程,该委托参数可接受对另一个过程的引用,而引用则是通过 AddressOf 运算符获得的 。
创建委托和匹配过程
创建一个名为 MathOperator 的委托 。
Visual Basic
复制代码
Delegate Function MathOperator( _
ByVal x As Double, _
ByVal y As Double _
) As Double
创建一个名为 AddNumbers 的过程 , 其参数和返回值与 MathOperator 的参数和返回值匹配,以使签名匹配 。
Visual Basic
复制代码
Function AddNumbers( _
ByVal x As Double, _
ByVal y As Double _
) As Double
Return x + y
End Function
创建名为 SubtractNumbers 的过程,其签名与 MathOperator 匹配 。
Visual Basic
复制代码
Function SubtractNumbers( _
ByVal x As Double, _
ByVal y As Double _
) As Double
Return x - y
End Function
创建一个名为 DelegateTest 的过程,它接受一个委托作为参数 。
此过程可接受对 AddNumbers 或 SubtactNumbers 的引用,这是因为它们的签名与 MathOperator 签名匹配 。
Visual Basic
复制代码
Sub DelegateTest( _
ByVal x As Double, _
ByVal op As MathOperator, _
ByVal y As Double _
)
Dim ret As Double
ret = op.Invoke(x, y) ' Call the method.
MsgBox(ret)
End Sub
【vb.net设置opc vbnet console】创建一个名为 Test 的过程 , 它使用 AddNumbers 的委托作为参数调用 DelegateTest 一次 , 然后使用 SubtractNumbers 的委托作为参数再次调用 。
Visual Basic
复制代码
Protected Sub Test()
DelegateTest(5, AddressOf AddNumbers, 3)
DelegateTest(9, AddressOf SubtractNumbers, 3)
End Sub
调用 Test 时,它首先显示 AddNumbers 对 5 和 3 的操作结果,也就是 8 。然后显示 SubtractNumbers 对 9 和 3 的操作结果,也就是 6 。
创建一个名为 MySubDelegate 的委托 。
Delegate Sub MySubDelegate(ByVal x As Integer)
声明一个类,该类包含与该委托具有相同签名的方法 。
Class class1Sub Sub1(ByVal x As Integer)MsgBox("The value of x is: "CStr(x))End SubEnd Class
定义一个方法,该方法创建该委托的实例并通过调用内置的 Invoke 方法调用与该委托关联的方法 。
推荐阅读
- 微信小程序仿jquery插件,微信小程序可以使用jquery吗
- 手机网站如何推广,手机端网站推广
- erp系统结转,erp怎么结转损益
- 什么网络游戏最热门,什么网络游戏最火
- php怎么实现数据排序 php 排序函数
- oracle游标数据改变,oracle游标更新数据
- 酒营销如何引流,怎样营销酒,需要掌握哪些要点
- 花生直播话术大全,花生直播好还是育苗移栽好
- c语言变量数组调用函数 c语言函数调用数组格式