0
나는 통해 OPC Access에 대한 C# 응용 프로그램 개발하고 있어요 "OPC DA 자동화 래퍼 2.02"Iconics 시뮬레이터 OPC 봉사와 C#
나는 "Iconics 시뮬레이터 OPC 서버 3.12"를 사용하고 내 WIN8 시스템에서 테스트를 위해서버에 다른 이름으로 구성된 4 개의 부울 OPCItem이 있습니다.
연결하면 OPC 항목을 잘 읽는 것이 좋습니다.
하지만 : 모니터 중 하나에 쓰면 모니터 (OPC DataSpy 9.01) 및 기타 도구에서 모든 OPC 항목이 변경되었음을 보여줍니다. 변경 이벤트가 모든 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);
}
}
}
다른 서버 (예 : [Prosys OPC Simulation Server] (http://www.prosysopc.com/products/opc-ua-simulation-server/))와 비교해보십시오. 나는 둘 다 실패한다. 문제는 당신의 코드에있다. 나는 당신의 코드에서 어떤 문제라도 발견 할 수 없다. –
참여해 주셔서 감사합니다. WinTech에서 WTOPCSvr로 작업 해 보았습니다 - 아니요 Prob. 그래서 "Iconics Simulator"로 잘못 구성된 것이 틀림 없다고 생각합니다. – Oblomow