chore: 初始化合力驱动桥MES采集程序
This commit is contained in:
139
Common/11MonitorForm/PlcSignalDynamicCreate.cs
Normal file
139
Common/11MonitorForm/PlcSignalDynamicCreate.cs
Normal file
@@ -0,0 +1,139 @@
|
||||
using MesControl;
|
||||
using MesServerWork;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Linq;
|
||||
//using SystemFramework;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
public delegate void ControlConnectPLC();
|
||||
public partial class SecondForm
|
||||
{
|
||||
ControlConnectPLC PlcConnectTimer;
|
||||
|
||||
void InitFormDynamicControls()
|
||||
{
|
||||
try
|
||||
{
|
||||
// DataTable dt_OpName=(DataTable) FunctionForm_HashiTable.OpName_Hash_Read("OpNameList");
|
||||
|
||||
List<MesBoolSignal> signalItems = InitWorkStationSignal();
|
||||
RecordWorkStationSignal(signalItems);
|
||||
|
||||
int RowsWidth = SignalPanel.Width-20;
|
||||
int RowsNum = RowsWidth / 133;
|
||||
int i = 0;
|
||||
var opNameList = MIS_BASE.Get_opNameList();
|
||||
foreach (var opName in opNameList)
|
||||
{
|
||||
PlcWorkStationSignal plcWorkStationSignal = new PlcWorkStationSignal();
|
||||
|
||||
plcWorkStationSignal.BackColor = System.Drawing.Color.Transparent;
|
||||
plcWorkStationSignal.Location = new System.Drawing.Point(3 + ((i % RowsNum) * 133), (i / RowsNum) * ((signalItems.Count * 25) + 60));
|
||||
plcWorkStationSignal.MaximumSize = new System.Drawing.Size(0, 0);
|
||||
plcWorkStationSignal.MinimumSize = new System.Drawing.Size(0, 0);
|
||||
plcWorkStationSignal.Name = "plcWorkStationSignal_" + opName;
|
||||
plcWorkStationSignal.Size = new System.Drawing.Size(136, 60);
|
||||
plcWorkStationSignal.TabIndex = i;
|
||||
plcWorkStationSignal.SignalItems = signalItems;
|
||||
plcWorkStationSignal.WorkStationNameText = opName;
|
||||
plcWorkStationSignal.WS_PlcLabelText = "PLC连接";
|
||||
plcWorkStationSignal.TestPLC_Interval = 10000;
|
||||
|
||||
plcWorkStationSignal.TestPLC_Enable = true;
|
||||
PlcConnectTimer += plcWorkStationSignal.ExternalTimerExcute;
|
||||
|
||||
this.SignalPanel.Controls.Add(plcWorkStationSignal);
|
||||
i++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
//ApplicationLog.WriteLog(err, err.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<MesBoolSignal> InitWorkStationSignal()
|
||||
{
|
||||
try
|
||||
{
|
||||
List<MesBoolSignal> signalItems = new List<MesBoolSignal>();
|
||||
MesBoolSignal MBS;
|
||||
signalItems.Clear();
|
||||
XDocument SystemConfig = XDocument.Load("SystemConfig.xml");
|
||||
IEnumerable<XElement> plc = SystemConfig.Descendants ("PLC");
|
||||
IEnumerable<XElement> plcSignal = plc.Elements();
|
||||
foreach (XElement PlcSignal in plcSignal)
|
||||
{
|
||||
XElement Name = PlcSignal.Element("Name");
|
||||
XElement TagType = PlcSignal.Element("TagType");
|
||||
XElement Text = PlcSignal.Element("Text");
|
||||
XElement Index = PlcSignal.Element("Index");
|
||||
XElement Enabled = PlcSignal.Element("Enabled");
|
||||
|
||||
MBS = new MesBoolSignal();
|
||||
MBS.Name = "TagType_" + TagType.Value ;
|
||||
MBS.SignalText = Text.Value ;
|
||||
MBS.SignalImage = MesBoolSignal.SignalImage_Enum.none;
|
||||
|
||||
if (Convert.ToBoolean(Enabled.Value))
|
||||
{
|
||||
signalItems.Add(MBS);
|
||||
}
|
||||
}
|
||||
IEnumerable<XElement> mes = SystemConfig.Descendants("MES");
|
||||
IEnumerable<XElement> mesSignal = mes.Elements();
|
||||
foreach (XElement MesSignal in mesSignal)
|
||||
{
|
||||
XElement Name = MesSignal.Element("Name");
|
||||
XElement TagType = MesSignal.Element("TagType");
|
||||
XElement Text = MesSignal.Element("Text");
|
||||
XElement Index = MesSignal.Element("Index");
|
||||
XElement Enabled = MesSignal.Element("Enabled");
|
||||
|
||||
MBS = new MesBoolSignal();
|
||||
MBS.Name = "TagType_" + TagType.Value;
|
||||
MBS.SignalText = Text.Value;
|
||||
MBS.SignalImage = MesBoolSignal.SignalImage_Enum.none;
|
||||
|
||||
if (Convert .ToBoolean ( Enabled .Value))
|
||||
{
|
||||
signalItems.Add(MBS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return signalItems;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
//ApplicationLog.WriteLog(err, err.Message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
string[] SignalNames;
|
||||
|
||||
void RecordWorkStationSignal(List<MesBoolSignal> items)
|
||||
{
|
||||
SignalNames = new string[items.Count];
|
||||
for (int i=0;i< items.Count;i++)
|
||||
{
|
||||
SignalNames[i] = items[i].Name;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user