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
你说的不用OPC可以读写WinCC变量,能再具体点说说吗?是在VB6.0中直接写入你说的这几句语句就可以访问WinCC变量?我觉得可能适合我这儿。OPC太不稳定了,很容易出问题。
-----------你这没必要用OPC,示例是用的后期绑定,你也可以引用WinCC Runtime类型库。
--------能详细点介绍下吗?提供一个学习的网址或例子也行。
---------你直接按上面的示例使用即可,引用类型库后,可以直接定义HMIRuntime类型变量,不需要CreateObject来创建对象,我觉得你VB方面再多熟悉些。
-----应该是你重复引用了同类型的2个不同的库造成的。
欢迎光临 工控编程吧 (https://www.gkbc8.com/) | Powered by Discuz! X3.4 |