📄 opcgroupreadform.cs
字号:
//
this.bOpcServerConnect.Location = new System.Drawing.Point(260, 56);
this.bOpcServerConnect.Name = "bOpcServerConnect";
this.bOpcServerConnect.Size = new System.Drawing.Size(216, 32);
this.bOpcServerConnect.TabIndex = 111;
this.bOpcServerConnect.Text = "Opc Server Connect";
this.bOpcServerConnect.Click += new System.EventHandler(this.bOpcServerConnect_Click);
//
// OpcGroupReadForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(1016, 741);
this.Controls.Add(this.OpcItemLength);
this.Controls.Add(this.textWriteOpcItem);
this.Controls.Add(this.OpcItemWriteValue);
this.Controls.Add(this.WriteOpcItem);
this.Controls.Add(this.ReadOpcItem);
this.Controls.Add(this.OpcItemValue5);
this.Controls.Add(this.OpcItemValue4);
this.Controls.Add(this.OpcItemValue3);
this.Controls.Add(this.OpcItemValue2);
this.Controls.Add(this.OpcItemValue1);
this.Controls.Add(this.OpcRemoveItemName);
this.Controls.Add(this.RemoveOpcItem);
this.Controls.Add(this.OpcItemName);
this.Controls.Add(this.AddOpcItem);
this.Controls.Add(this.OpcRemoveGroupName);
this.Controls.Add(this.RemoveOpcGroup);
this.Controls.Add(this.OpcGroupName);
this.Controls.Add(this.AddOpcGroup);
this.Controls.Add(this.OpcServerDisConnect);
this.Controls.Add(this.OpcServerRemove);
this.Controls.Add(this.bOpcServerName);
this.Controls.Add(this.bOpcServerConnect);
this.Name = "OpcGroupReadForm";
this.Text = "OpcGroupRead";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.OpcGroupReadForm_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new OpcGroupReadForm());
}
private void OpcGroupReadForm_Load(object sender, System.EventArgs e)
{
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Opc Connect Server @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void bOpcServerConnect_Click(object sender, System.EventArgs e)
{
OpcServerConnect() ;
}
private string tMachineString = "" ;
private string tKEPServerExUrlString = "KEPware.KEPServerEx.V4" ;
OpcServer tOpcServer = new OpcServer() ;
private void OpcServerConnect()
{
tOpcServer.Connect( tMachineString, tKEPServerExUrlString );
bOpcServerName.Text = tOpcServer.ServerName.ToString() ;
OpcServerRemove.Text = tOpcServer.HostInfo.ToString() ;
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Opc DisConnect Server @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void OpcServerDisConnect_Click(object sender, System.EventArgs e)
{
tOpcServer.Disconnect() ;
OpcServerRemove.Text = "Opc Server Disconnect" ;
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Add Opc Group @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void AddOpcGroup_Click(object sender, System.EventArgs e)
{
OpcAddGroup() ;
}
private OpcGroup tOpcGroup ;
private string tGroupName = "thisGroup" ;
private bool tActive = true ;
private int tEquestedUpdateRate = 1000;
private float tDeadBand = 0.0F ;
private string tReturnGroupName ;
private void OpcAddGroup()
{
tOpcGroup = tOpcServer.AddGroup(tGroupName, tActive, tEquestedUpdateRate, ref tDeadBand, 0, 0);
tReturnGroupName = tOpcGroup.Name.ToString() ;
OpcGroupName.Text = tReturnGroupName ;
tOpcGroup.DataChanged += new DataChangeEventHandler( DataChangedHandler );
tOpcGroup.ReadCompleted += new ReadCompleteEventHandler( ReadCompleteHandler );
tOpcGroup.WriteCompleted += new WriteCompleteEventHandler( WriteCompleteHandler );
tOpcGroup.AdviseIOPCDataCallback();
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Remove Opc Group @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void RemoveOpcGroup_Click(object sender, System.EventArgs e)
{
tOpcGroup.Remove(true) ;
OpcGroupName.Text = "Opc Group already Remove" ;
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Add Opc Item @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void AddOpcItem_Click(object sender, System.EventArgs e)
{
OpcAddItem() ;
}
private System.Array tOPCItemsValueReturn = Array.CreateInstance( typeof(String), 5 ) ;
private OPCItemDef[] tOPCItems ;
private string tOPCItemsPath0 = "WaterMotorControl.Group02" ;
private string tOPCItemsName0 = "WaterMotorpictureBox1" ;
private string tOPCItemsPath1 = "WaterMotorControl.Group02" ;
private string tOPCItemsName1 = "WaterMotorpictureBox2" ;
private string tOPCItemsPath2 = "WaterMotorControl.Group02" ;
private string tOPCItemsName2 = "WaterMotorpictureBox3" ;
private string tOPCItemsPath3 = "WaterMotorControl.Group02" ;
private string tOPCItemsName3 = "WaterMotorpictureBox4" ;
private string tOPCItemsPath4 = "WaterMotorControl.Group02" ;
private string tOPCItemsName4 = "WaterMotorpictureBox5" ;
private System.Int32 tOpcAddItems ;
private OPCItemResult[] tOPCItemResult ;
private void OpcAddItem()
{
tOPCItems = new OPCItemDef[5];
tOPCItems[0] = new OPCItemDef();
tOPCItems[0].HandleClient = 1001;
tOPCItems[0].AccessPath = tOPCItemsPath0 ;
tOPCItems[0].ItemID = tOPCItemsName0;
tOPCItems[0].Active = true ;
tOPCItems[0].RequestedDataType = VarEnum.VT_R8 ;
tOPCItems[1] = new OPCItemDef();
tOPCItems[1].HandleClient = 1002;
tOPCItems[1].AccessPath = tOPCItemsPath1 ;
tOPCItems[1].ItemID = tOPCItemsName1;
tOPCItems[1].Active = true ;
tOPCItems[1].RequestedDataType = VarEnum.VT_R8 ;
tOPCItems[2] = new OPCItemDef();
tOPCItems[2].HandleClient = 1003;
tOPCItems[2].AccessPath = tOPCItemsPath2 ;
tOPCItems[2].ItemID = tOPCItemsName2;
tOPCItems[2].Active = true ;
tOPCItems[2].RequestedDataType = VarEnum.VT_R8 ;
tOPCItems[3] = new OPCItemDef();
tOPCItems[3].HandleClient = 1004;
tOPCItems[3].AccessPath = tOPCItemsPath3 ;
tOPCItems[3].ItemID = tOPCItemsName3;
tOPCItems[3].Active = true ;
tOPCItems[3].RequestedDataType = VarEnum.VT_R8 ;
tOPCItems[4] = new OPCItemDef();
tOPCItems[4].HandleClient = 1005;
tOPCItems[4].AccessPath = tOPCItemsPath4 ;
tOPCItems[4].ItemID = tOPCItemsName4;
tOPCItems[4].Active = true ;
tOPCItems[4].RequestedDataType = VarEnum.VT_R8 ;
tOPCItemResult = new OPCItemResult[1];
tOPCItemResult[0] = new OPCItemResult();
tOpcAddItems = tOpcGroup.AddItems(tOPCItems,out tOPCItemResult) ;
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Remove Opc Item @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private int[] tArrayHandleServer ;
private int[] tArrayRemoveOpcItemError ;
private System.Int32 tArrayRemoveOpcItemReturn ;
private void RemoveOpcItem_Click(object sender, System.EventArgs e)
{
tArrayHandleServer = new int[5];
tArrayHandleServer[0] = tOPCItemResult[0].HandleServer;
tArrayHandleServer[1] = tOPCItemResult[1].HandleServer;
tArrayHandleServer[2] = tOPCItemResult[2].HandleServer;
tArrayHandleServer[3] = tOPCItemResult[3].HandleServer;
tArrayHandleServer[4] = tOPCItemResult[4].HandleServer;
tArrayRemoveOpcItemReturn = tOpcGroup.RemoveItems(tArrayHandleServer,out tArrayRemoveOpcItemError) ;
OpcRemoveItemName.Text = tArrayRemoveOpcItemReturn.ToString() ;
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Read Opc Item @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void ReadOpcItem_Click(object sender, System.EventArgs e)
{
OpcReadOpcItem() ;
}
private int tCancelID ;
private int[] tArrayError ;
private int tRtc ;
private int[] tItemSrvHnd = new int[5];
private void OpcReadOpcItem()
{
tItemSrvHnd[0] = tOPCItemResult[0].HandleServer;
tItemSrvHnd[1] = tOPCItemResult[1].HandleServer;
tItemSrvHnd[2] = tOPCItemResult[2].HandleServer;
tItemSrvHnd[3] = tOPCItemResult[3].HandleServer;
tItemSrvHnd[4] = tOPCItemResult[4].HandleServer;
tRtc = tOpcGroup.Read(tItemSrvHnd, 1, out tCancelID, out tArrayError ) ; // async read
}
private void ReadCompleteHandler( object sender, ReadCompleteEventArgs e )
{
OpcItemValue1.Text = e.sts[0].DataValue.ToString();
OpcItemValue2.Text = e.sts[1].DataValue.ToString();
OpcItemValue3.Text = e.sts[2].DataValue.ToString();
OpcItemValue4.Text = e.sts[3].DataValue.ToString();
OpcItemValue5.Text = e.sts[4].DataValue.ToString();
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Write Opc Item @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private int[] tWriteItemSrvHnd = new int[1];
private object[] tWriteArrayValue = new object[1];
private int tWtc ;
private void WriteOpcItem_Click(object sender, System.EventArgs e)
{
OpcWriteOpcItem() ;
}
private void OpcWriteOpcItem()
{
tWriteArrayValue = new object[1];
tWriteArrayValue[0] = new object();
tWriteArrayValue[0] = textWriteOpcItem.Text ;
tWriteItemSrvHnd[0] = tOPCItemResult[0].HandleServer;
tWtc = tOpcGroup.Write(tWriteItemSrvHnd,tWriteArrayValue, 1, out tCancelID, out tArrayError ) ; // async read
}
private void WriteCompleteHandler( object sender, WriteCompleteEventArgs e )
{
OpcItemWriteValue.Text = e.res[0].Error.ToString() ;
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@ Item Data Change @@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private void DataChangedHandler( object sender, DataChangeEventArgs e )
{
OpcItemLength.Text = e.sts.Length.ToString() ;
for( int i = 0 ; i < e.sts.Length ; i++ )
{
switch(e.sts[i].HandleClient)
{
case 1001:
OpcItemValue1.Text = e.sts[i].DataValue.ToString();
break;
case 1002:
OpcItemValue2.Text = e.sts[i].DataValue.ToString();
break;
case 1003:
OpcItemValue3.Text = e.sts[i].DataValue.ToString();
break;
case 1004:
OpcItemValue4.Text = e.sts[i].DataValue.ToString();
break;
case 1005:
OpcItemValue5.Text = e.sts[i].DataValue.ToString();
break;
default:
break;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -