📄 opc.cs
字号:
//splash.ProgressBar.Value = i;
} while (i < RI65);
}
private void InitRItemLbl66()
{
int i = 0;
int DBXH = 0;
int DBXL = 0;
do
{
ClientHandles66[i] = i;
i = i + 1;
ReadItemLbl66[i] = OPCWay + "DB66," + DBXH + "." + DBXL;
DBXL = DBXL + 1;
if (DBXL > 7)
{
DBXL = 0;
DBXH = DBXH + 1;
}
// splash.ProgressBar.Value = i;
} while (i < RI66);
}
private void InitRItemLbl90()
{
int i = 0;
int DBXH = 0;
int DBXL = 0;
do
{
ClientHandles90[i] = i;
i = i + 1;
ReadItemLbl90[i] = OPCWay + "DB90," + DBXH + "." + DBXL;
DBXL = DBXL + 1;
if (DBXL > 7)
{
DBXL = 0;
DBXH = DBXH + 1;
}
//splash.ProgressBar.Value = i;
} while (i < RI90);
}
#endregion
#region method
public void ReadOPC()
{
//int ItemNum;
//long TarnscationID;
//long CanceID;
//检测一段代码运行时间间隔用的
long Btime;
long Etime;
//TarnscationID = 1;
//初始化所有
//Formsplash splash = new Formsplash();
// splash.timer1.Enabled = true;
// splash.ProgressBar.Minimum = 1;
// splash.ProgressBar.Maximum = 400;
// splash.ProgressBar.Value = 2;
InitRItemLbl50();
InitRItemLbl51();
InitRItemLbl52();
InitRItemLbl53();
InitRItemLbl54();
InitRItemLbl55();
InitRItemLbl56();
InitRItemLbl57();
InitRItemLbl58();
InitRItemLbl59();
InitRItemLbl61();
// InitRItemLbl63
InitRItemLbl65();
InitRItemLbl66();
InitRItemLbl90();
//生成OPC对象,
OPCServer MyOPCServer;
OPCGroups MyOPCGroups;
long serverstate;
MyOPCServer = new OPCServer();
MyOPCServer.Connect(ServerName, null);
serverstate = MyOPCServer.ServerState;
MessageBox.Show("the server state is " + serverstate);
MyOPCGroups = MyOPCServer.OPCGroups;
//MyOPCGroups = (OPCGroups)tmpg;
//OPCGroups MyOPCGroups = (OPCGroups)Marshal.CreateWrapperOfType(tmpg, typeof(OPCGroups));
//tmpg = null;
// MyOPCGroups=MyOPCServer.OPCGroups;
// MyOPCGroups = new OPCGroups();
MyOPCServer.OPCGroups.DefaultGroupIsActive = true;
OPCGroup50 = MyOPCGroups.Add("OPCGroup50");
OPCGroup51 = MyOPCGroups.Add("OPCGroup51");
OPCGroup52 = MyOPCGroups.Add("OPCGroup52");
OPCGroup53 = MyOPCGroups.Add("OPCGroup53");
OPCGroup54 = MyOPCGroups.Add("OPCGroup54");
OPCGroup55 = MyOPCGroups.Add("OPCGroup55");
OPCGroup56 = MyOPCGroups.Add("OPCGroup56");
OPCGroup57 = MyOPCGroups.Add("OPCGroup57");
OPCGroup58 = MyOPCGroups.Add("OPCGroup58");
OPCGroup59 = MyOPCGroups.Add("OPCGroup59");
OPCGroup61 = MyOPCGroups.Add("OPCGroup61");
OPCGroup63 = MyOPCGroups.Add("OPCGroup63");
OPCGroup65 = MyOPCGroups.Add("OPCGroup65");
OPCGroup66 = MyOPCGroups.Add("OPCGroup66");
OPCGroup90 = MyOPCGroups.Add("OPCGroup90");
OPCItemColl50 = OPCGroup50.OPCItems;
OPCItemColl51 = OPCGroup51.OPCItems;
OPCItemColl52 = OPCGroup52.OPCItems;
OPCItemColl53 = OPCGroup53.OPCItems;
OPCItemColl54 = OPCGroup54.OPCItems;
OPCItemColl55 = OPCGroup55.OPCItems;
OPCItemColl56 = OPCGroup56.OPCItems;
OPCItemColl57 = OPCGroup57.OPCItems;
OPCItemColl58 = OPCGroup58.OPCItems;
OPCItemColl59 = OPCGroup59.OPCItems;
OPCItemColl61 = OPCGroup61.OPCItems;
OPCItemColl63 = OPCGroup63.OPCItems;
OPCItemColl65 = OPCGroup65.OPCItems;
OPCItemColl66 = OPCGroup66.OPCItems;
OPCItemColl90 = OPCGroup90.OPCItems;
//byte[] myBytes = Array.CreateInstance(typeof(byte), new int[]{32}, new int[]{1});
Btime = GetTickCount();
// OPCGroup50.IsSubscribed = true;
//OPCGroup50.IsActive = true;
// OPCItemColl50.AddItems(RI50, ref ReadItemLbl50, ref ClientHandles50, out ServerHandlesOut, out ErrorsOut,"VT_EMPTY","");
/* OPCItemColl51.AddItems(RI51, ref ReadItemLbl51, ref ClientHandles51, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup51.IsSubscribed = true;
OPCItemColl52.AddItems(RI52, ref ReadItemLbl52, ref ClientHandles52, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup52.IsSubscribed = true;
OPCItemColl53.AddItems(RI53, ref ReadItemLbl53, ref ClientHandles53, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup53.IsSubscribed = true;
OPCItemColl54.AddItems(RI54, ref ReadItemLbl54, ref ClientHandles54, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup54.IsSubscribed = true;
OPCItemColl55.AddItems(RI55, ref ReadItemLbl55, ref ClientHandles55, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup55.IsSubscribed = true;
OPCItemColl56.AddItems(RI56, ref ReadItemLbl56, ref ClientHandles56, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup56.IsSubscribed = true;
OPCItemColl57.AddItems(RI57, ref ReadItemLbl57, ref ClientHandles57, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup57.IsSubscribed = true;
OPCItemColl58.AddItems(RI58, ref ReadItemLbl58, ref ClientHandles58, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup58.IsSubscribed = true;
OPCItemColl59.AddItems(RI59, ref ReadItemLbl59, ref ClientHandles59, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup59.IsSubscribed = true;
OPCItemColl61.AddItems(RI61, ref ReadItemLbl61, ref ClientHandles61, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup61.IsSubscribed = true;
OPCItemColl63.AddItems(RI63, ref ReadItemLbl63, ref ClientHandles63, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup63.IsSubscribed = true;
OPCItemColl65.AddItems(RI65, ref ReadItemLbl65, ref ClientHandles65, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup65.IsSubscribed = true;
OPCItemColl66.AddItems(RI66, ref ReadItemLbl66, ref ClientHandles66, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup66.IsSubscribed = true;
OPCItemColl90.AddItems(RI90, ref ReadItemLbl90, ref ClientHandles90, out ServerHandlesOut, out ErrorsOut, "VT_EMPTY", "");
OPCGroup90.IsSubscribed = true;
*///激活组
OPCGroup50.IsSubscribed = true;
OPCGroup50.IsActive = true;
OPCGroup51.IsSubscribed = true;
OPCGroup51.IsActive = true;
OPCGroup52.IsActive = true;
OPCGroup52.IsSubscribed = true;
OPCGroup53.IsActive = true;
OPCGroup53.IsSubscribed = true;
OPCGroup54.IsSubscribed = true;
OPCGroup54.IsSubscribed = true;
OPCGroup55.IsActive = true;
OPCGroup55.IsSubscribed = true;
OPCGroup56.IsActive = true;
OPCGroup56.IsSubscribed = true;
OPCGroup57.IsActive = true;
OPCGroup57.IsSubscribed = true;
OPCGroup58.IsActive = true;
OPCGroup58.IsSubscribed = true;
OPCGroup59.IsActive = true;
OPCGroup59.IsSubscribed = true;
OPCGroup61.IsActive = true;
OPCGroup61.IsSubscribed = true;
OPCGroup63.IsActive = true;
OPCGroup63.IsSubscribed = true;
OPCGroup65.IsActive = true;
OPCGroup65.IsSubscribed = true;
OPCGroup66.IsActive = true;
OPCGroup66.IsSubscribed = true;
OPCGroup90.IsActive = true;
OPCGroup90.IsSubscribed = true;
for (int i = 1; i < RI50; i++)
{
OPCItemColl50.AddItem(ReadItemLbl50[i], ClientHandles50[i]);
}
//初始化OCP连接
for (int i = 1; i < RI51; i++)
{
OPCItemColl51.AddItem(ReadItemLbl51[i], ClientHandles51[i]);
}
Etime = GetTickCount();
if (Etime - Btime > 5000)
{
goto HANDLEeRROR;
}
for (int i = 1; i < RI52; i++)
{
OPCItemColl52.AddItem(ReadItemLbl52[i], ClientHandles52[i]);
}
for (int i = 1; i < RI53; i++)
{
OPCItemColl53.AddItem(ReadItemLbl53[i], ClientHandles53[i]);
}
for (int i = 1; i < RI54; i++)
{
OPCItemColl54.AddItem(ReadItemLbl54[i], ClientHandles54[i]);
}
for (int i = 1; i < RI55; i++)
{
OPCItemColl55.AddItem(ReadItemLbl55[i], ClientHandles55[i]);
}
for (i = 1; i > RI56; i++)
{
OPCItemColl56.AddItem(ReadItemLbl56[i], ClientHandles56[i]);
}
for (int i = 1; i < RI57; i++)
{
OPCItemColl57.AddItem(ReadItemLbl57[i], ClientHandles57[i]);
}
for (i = 1; i > RI58; i++)
{
OPCItemColl58.AddItem(ReadItemLbl58[i], ClientHandles58[i]);
}
for (int i = 1; i < RI59; i++)
{
OPCItemColl59.AddItem(ReadItemLbl59[i], ClientHandles59[i]);
}
for (int i = 1; i > RI61; i++)
{
OPCItemColl61.AddItem(ReadItemLbl61[i], ClientHandles61[i]);
}
for (i = 1; i > RI63; i++)
{
OPCItemColl63.AddItem(ReadItemLbl63[i], ClientHandles63[i]);
}
for (int i = 1; i < RI65; i++)
{
OPCItemColl65.AddItem(ReadItemLbl65[i], ClientHandles65[i]);
}
for (int i = 1; i < RI66; i++)
{
OPCItemColl66.AddItem(ReadItemLbl66[i], ClientHandles66[i]);
}
for (int i = 1; i < RI90; i++)
{
OPCItemColl90.AddItem(ReadItemLbl90[i], ClientHandles90[i]);
}
MessageBox.Show("complete OK!");
return;
//splash.ProgressBar.Maximum = 400;
HANDLEeRROR:
{
//splash.ProgressBar.Maximum = 400;
return;
}
}
public void QuanlitiConnection()
{
if (GetQualityText(OPCItemColl51.Item(15).Quality) != "GOOD") //取的转盘变频器运行点的质量
{
//FormMain main = new FormMain();
// main.AniLineConnection.Visible = true;
}
else
{
//F//ormMain main = new FormMain();
// main.AniLineConnection.Visible = false;
}
// if (1 != 1)
{
// FormMain main = new FormMain();
// main.AniLineConnection.Visible =true;
// return;
// }
}
}
public string GetQualityText(int Quality)
{
string quality;
switch (Quality)
{
case 0: quality = "BAD! Check You Connection"; break;
case 64: quality = "UNCERTAIN"; break;
case 192: quality = "GOOD"; break;
case 8: quality = "NOT_CONNECTED"; break;
case 13: quality = "DEVICE_FAILURE"; break;
case 16: quality = "SENSOR_FAILURE"; break;
case 20: quality = "LAST_KNOWN"; break;
case 24: quality = "COMM_FAILURE"; break;
case 28: quality = "OUT_OF_SERVICE"; break;
case 132: quality = "LAST_USABLE"; break;
case 144: quality = "SENSOR_CAL"; break;
case 148: quality = "EGU_EXCEEDED"; break;
case 152: quality = "SUB_NORMAL"; break;
case 216: quality = "LOCAL_OVERRIDE"; break;
default: quality = "UNKNOWN ERROR"; break;
}
return quality;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -