2014-06-13 19 views
0

我正在开发通过对OPC访问C#应用程序“OPC DA自动化包装2.02”Iconics公司模拟器OPC发球和C#

对于我的WIN8的机器我使用“Iconics公司模拟器OPC服务器3.12”上测试

我有4个布尔OPCItems在服务器上配置不同的名称。

连接,读取OPCItems工作正常。

但是: 如果我写入其中之一,监视器(OPC DataSpy 9.01)和其他工具显示所有操作系统都已更改。更改事件出现在所有OPCItem

要检查此行为,我用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); 
     } 
    } 
} 
+0

您应该试试其他服务器,例如[Prosys OPC仿真服务器](http://www.prosysopc.com/products/opc-ua-simulation-server/)。我他们都失败了,问题出在你的代码中。我无法从您的代码中发现任何问题。 –

+0

感谢您的参与。我已经尝试使用WinTech的WTOPCSvr - 没有问题。所以我认为必须有一些错误配置“Iconics Simulator”... – Oblomow

回答

0

简单的解决方法是无论何时添加需要被通知的事情发生标签独立它应该有它自己的组,因为不幸的是改变事件以组为单位,而不是一个标签的基础上发射。