工控编程吧

标题: VB和WinCC采用OPC通讯,出现ActiveX部件不能创建错误 [打印本页]

作者: baikhgmv    时间: 2016-9-5 12:39
标题: VB和WinCC采用OPC通讯,出现ActiveX部件不能创建错误
VB和WinCC采用OPC通讯,出现ActiveX部件不能创建错误

VB6.0分别编写了一个串口通讯和一个和OPC通讯程序,目的是将串口读取的仪表参数发送到WinCC中去,这两个程序各自分别运行时都是正常的。但是将它们组合到一起,组合成一个VB程序时就出现了两个错误。


点击OPC的初始化连接服务器按钮时,出现ActiveX部件不能创建对象错误;

点击串口通讯读取仪表按钮时出现下标越界错误。


这是什么原因引起来的?VB6.0的引用都是一样的。

有没有其他更可靠的解决方法?将仪表参数通过串口读入到WinCC中去。其实就两三个参数,而且都是本地的慢速的读写。


----------下标越界可能是已经设定数组下标从1开始,但你又使用了0下标访问数组。

其实不用OPC也可以轻松访问WinCC变量,直接使用WinCC运行时对象HMIRuntime

Dim HMIRuntime As Object

Set HMIRuntime = CreateObject("CCHMIRuntime.HMIRuntime")

HMIRuntime.Tags("Tag1").Write 100  '100写入WinCC变量Tag1




-----------下标问题是在合并后才出现的,如果单独运行串口通讯的VB程序不会出现。奇怪的地方也就在这儿。

你说的不用OPC可以读写WinCC变量,能再具体点说说吗?是在VB6.0中直接写入你说的这几句语句就可以访问WinCC变量?我觉得可能适合我这儿。OPC太不稳定了,很容易出问题。


-----------你这没必要用OPC,示例是用的后期绑定,你也可以引用WinCC Runtime类型库。


--------能详细点介绍下吗?提供一个学习的网址或例子也行。


---------你直接按上面的示例使用即可,引用类型库后,可以直接定义HMIRuntime类型变量,不需要CreateObject来创建对象,我觉得你VB方面再多熟悉些。


-----应该是你重复引用了同类型的2个不同的库造成的。








欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4