Iconics仿真器OPC与C#

Iconics仿真器OPC与C#,c#,simulator,opc,C#,Simulator,Opc,我正在通过“OPC DA Automation Wrapper 2.02”为OPC访问开发一个C#应用程序 为了在我的WIN8机器上进行测试,我使用“Iconics模拟器OPC服务器3.12” 我在服务器上配置了4个不同名称的布尔选项 连接、阅读选项效果良好 但是: 如果我对其中一个进行写入,监视器(OPC DataSpy 9.01)和其他工具将显示所有选项都已更改。所有选项都会出现更改事件 为了检查这种行为,我用VisualBasic 6编写了相同的应用程序-相同的结果 怎么了,我的代码还是模

我正在通过“OPC DA Automation Wrapper 2.02”为OPC访问开发一个C#应用程序

为了在我的WIN8机器上进行测试,我使用“Iconics模拟器OPC服务器3.12”

我在服务器上配置了4个不同名称的布尔选项

连接、阅读选项效果良好

但是: 如果我对其中一个进行写入,监视器(OPC DataSpy 9.01)和其他工具将显示所有选项都已更改。所有选项都会出现更改事件

为了检查这种行为,我用VisualBasic 6编写了相同的应用程序-相同的结果

怎么了,我的代码还是模拟器服务器

using System;
using System.Windows.Forms;
using OPCAutomation;

namespace opc {
public partial class Form1 : Form {

    OPCGroups opcGroups;
    OPCGroup opcGroup;

    bool aliveToggle;
    Timer aliveTimer;

    public Form1() {
        InitializeComponent();

        OPCServer opcServer = new OPCServer();
        opcServer.Connect("Iconics.SimulatorOPCDA.2");
        opcGroup = opcServer.OPCGroups.Add("Gruppe1");

        opcGroup.OPCItems.AddItem("BOOL_1", 1);
        opcGroup.OPCItems.AddItem("BOOL_2", 2);
        opcGroup.OPCItems.AddItem("BOOL_3", 3);
        opcGroup.OPCItems.AddItem("BOOL_4", 4);

        opcGroup.UpdateRate     = 10;
        opcGroup.IsActive       = true;
        opcGroup.IsSubscribed   = true;

        aliveTimer = new Timer();
        aliveTimer.Tick += new EventHandler(sendAlive);
        aliveTimer.Interval=1000;
        aliveTimer.Start();

        }

    private void sendAlive(object sender, EventArgs e) {
        aliveToggle=!aliveToggle;
        opcGroup.OPCItems.Item(2).Write(aliveToggle);
        }
    }
}

轻松修复是每当添加需要独立事件通知的标记时,它都应该有自己的组,因为不幸的是,更改事件是在组的基础上而不是在标记的基础上触发的。

例如,您应该在其他服务器上尝试这样做。如果它们都失败了,问题在于你的代码。我无法从您的代码中发现任何问题。感谢您的参与。我试过与WinTech的WTOPCSvr合作-没问题。所以我认为“Iconics模拟器”的配置一定有问题。。。