简单的OPC与C#通讯,别想复杂了
简单的OPC与C#通讯,别想复杂了
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OPCAutomation; namespace OPC { public partial class Form1 : Form { OPCServer ObjOPCServer; OPCGroups ObjOPCGroups; OPCGroup ObjOPCGroup; string OPCServerName; public Form1() { try { InitializeComponent(); OPCServerName = "{Here comes your OPC server’s name,(OPC服务器名称)}"; ObjOPCServer = new OPCServer(); ObjOPCServer.Connect(OPCServerName, "";); ObjOPCGroups = ObjOPCServer.OPCGroups; ObjOPCGroup = ObjOPCGroups.Add("OPCGroup1"); ObjOPCGroup.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(ObjOPCGroup_DataChange); ObjOPCGroup.OPCItems.AddItem("{tag name or address,(标签名称或地址名) (like {plc name on server}!%mw0)}", 1); ObjOPCGroup.UpdateRate = 10; ObjOPCGroup.IsActive = true; ObjOPCGroup.IsSubscribed = true; } catch (Exception e){ MessageBox.Show(e.ToString()); } } private void button1_Click(object sender, EventArgs e) { } private void ObjOPCGroup_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps) { for (int i = 1; i <= NumItems; i++) { if ((Convert.ToInt32(ClientHandles.GetValue(i)) == 1)) { textBox1.Text = ItemValues.GetValue(i).ToString(); } } } private void Form1_Load(object sender, EventArgs e) { OPCServerClass GlobalOPCServer = new OPCServerClass(); Array ServerList = (Array)GlobalOPCServer.GetOPCServers(""); for (int i = 1; i <= ServerList.Length; i++) { comboBox1.Items.Add(ServerList.GetValue(i).ToString()); } } } }
版权声明:本文为dzone原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。