using Sunny.UI; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HRT_Measure { public partial class FrmPLC_M03 : Sunny.UI.UIForm { public FrmPLC_M03() { InitializeComponent(); } public List listCylinder = new List(); public List listAxisPos = new List(); public List listAxis = new List(); private void FrmPLC_Load(object sender, EventArgs e) { uiSplitContainer1.SplitterDistance = this.Width / 2; LoadPLCValue(); //LoadAxisPos(); LoadAxis(); tabControlAxis.SelectedIndex = 0; } private void LoadPLCValue() { listCylinder.Clear(); for (int i = 0; i < PLCCylinder.listM03_整平工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M03", PLCCylinder.listM03_整平工位[i], PLCCylinder.dictM03_整平工位); if(i < 11) uiTableLayoutPanel整平工位.Controls.Add(uCCylinder, 0, i); else uiTableLayoutPanel整平工位.Controls.Add(uCCylinder, 1, i - 11); listCylinder.Add(uCCylinder); //uCCylinder.timer1.Enabled = true; uCCylinder.thMonitor.Start(); } for (int i = 0; i < PLCCylinder.listM03_装冲工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M03", PLCCylinder.listM03_装冲工位[i], PLCCylinder.dictM03_装冲工位); if (i < 11) uiTableLayoutPanel装冲工位.Controls.Add(uCCylinder, 0, i); else uiTableLayoutPanel装冲工位.Controls.Add(uCCylinder, 1, i - 11); listCylinder.Add(uCCylinder); uCCylinder.thMonitor.Start(); } for (int i = 0; i < PLCCylinder.listM03_压合工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M03", PLCCylinder.listM03_压合工位[i], PLCCylinder.dictM03_压合工位); if (i < 11) uiTableLayoutPanel压合工位.Controls.Add(uCCylinder, 0, i); else uiTableLayoutPanel压合工位.Controls.Add(uCCylinder, 1, i - 11); listCylinder.Add(uCCylinder); uCCylinder.thMonitor.Start(); } for (int i = 0; i < PLCCylinder.listM03_清洗工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M03", PLCCylinder.listM03_清洗工位[i], PLCCylinder.dictM03_清洗工位); if (i < 11) uiTableLayoutPanel清洗工位.Controls.Add(uCCylinder, 0, i); else uiTableLayoutPanel清洗工位.Controls.Add(uCCylinder, 1, i - 11); listCylinder.Add(uCCylinder); uCCylinder.thMonitor.Start(); } for (int i = 0; i < PLCCylinder.listM03_下流线工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M03", PLCCylinder.listM03_下流线工位[i], PLCCylinder.dictM03_下流线工位); if (i < 11) uiTableLayoutPanel下流线工位.Controls.Add(uCCylinder, 0, i); else uiTableLayoutPanel下流线工位.Controls.Add(uCCylinder, 1, i - 11); listCylinder.Add(uCCylinder); uCCylinder.thMonitor.Start(); } for (int i = 0; i < PLCCylinder.listM03_出料口工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M03", PLCCylinder.listM03_出料口工位[i], PLCCylinder.dictM03_出料口工位); if (i < 11) uiTableLayoutPanel出料口工位.Controls.Add(uCCylinder, 0, i); else uiTableLayoutPanel出料口工位.Controls.Add(uCCylinder, 1, i - 11); listCylinder.Add(uCCylinder); uCCylinder.thMonitor.Start(); } } private void LoadAxis() { listAxis.Clear(); UCAxis uCAxis压机流线伺服 = new UCAxis("M03", "压机流线伺服", PLCAxis.listM03_轴[0], PLCAxis.dictM03_轴); panel取料X轴.Controls.Clear(); panel取料X轴.Controls.Add(uCAxis压机流线伺服); //uCAxis压机流线伺服.timer1.Enabled = true; uCAxis压机流线伺服.thMonitor.Start(); listAxis.Add(uCAxis压机流线伺服); UCAxis uCAxis压机前流线伺服 = new UCAxis("M03", "压机前流线伺服", PLCAxis.listM03_轴[1], PLCAxis.dictM03_轴); panel取料Y轴.Controls.Clear(); panel取料Y轴.Controls.Add(uCAxis压机前流线伺服); //uCAxis压机前流线伺服.timer1.Enabled = true; uCAxis压机前流线伺服.thMonitor.Start(); listAxis.Add(uCAxis压机前流线伺服); //UCAxis uCAxis取料X轴 = new UCAxis("M03", "取料X轴", PLCAxis.listM03_轴[0], PLCAxis.dictM03_轴); //panel取料X轴.Controls.Clear(); //panel取料X轴.Controls.Add(uCAxis取料X轴); //uCAxis取料X轴.timer1.Enabled = true; //listAxis.Add(uCAxis取料X轴); //UCAxis uCAxis取料Y轴 = new UCAxis("M03", "取料Y轴", PLCAxis.listM03_轴[1], PLCAxis.dictM03_轴); //panel取料Y轴.Controls.Clear(); //panel取料Y轴.Controls.Add(uCAxis取料Y轴); //uCAxis取料Y轴.timer1.Enabled = true; //listAxis.Add(uCAxis取料Y轴); //UCAxis uCAxis取料Z轴 = new UCAxis("M03", "取料Z轴", PLCAxis.listM03_轴[2], PLCAxis.dictM03_轴); //panel取料Z轴.Controls.Clear(); //panel取料Z轴.Controls.Add(uCAxis取料Z轴); //uCAxis取料Z轴.timer1.Enabled = true; //listAxis.Add(uCAxis取料Z轴); //UCAxis uCAxis取料R轴 = new UCAxis("M03", "取料R轴", PLCAxis.listM03_轴[3], PLCAxis.dictM03_轴); //panel取料R轴.Controls.Clear(); //panel取料R轴.Controls.Add(uCAxis取料R轴); //uCAxis取料R轴.timer1.Enabled = true; //listAxis.Add(uCAxis取料R轴); } private void Timer1_Tick(object sender, EventArgs e) { } private void FrmPLC_FormClosing(object sender, FormClosingEventArgs e) { timer1.Enabled = false; foreach (var item in listCylinder) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxis) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } } private void tabControlM03_SelectedIndexChanged(object sender, EventArgs e) { ReadPLCHelp.iM03IOStation = tabControlM03.SelectedIndex; } private void tabControlAxis_SelectedIndexChanged(object sender, EventArgs e) { ReadPLCHelp.iM03AxisStation = tabControlAxis.SelectedIndex; //for (int i = 0; i < listAxis.Count; i++) //{ // if (i == tabControlAxis.SelectedIndex) listAxis[tabControlAxis.SelectedIndex].Enabled = true; // else listAxis[tabControlAxis.SelectedIndex].Enabled = false; //} } private void LoadAxisPos() { //listAxisPos.Clear(); //for (int i = 0; i < PLCAxisPos.dictM03_取料X轴.Count; i++) //{ // UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM03_取料X轴[i], PLCAxisPos.dictM03_取料X轴); // if (i < 9) uiTableLayoutPanel取料X轴Pos.Controls.Add(uCAxisPos, 0, i); // else uiTableLayoutPanel取料X轴Pos.Controls.Add(uCAxisPos, 1, i - 9); // listAxisPos.Add(uCAxisPos); // uCAxisPos.timer1.Enabled = true; //} //for (int i = 0; i < PLCAxisPos.dictM03_取料Y轴.Count; i++) //{ // UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM03_取料Y轴[i], PLCAxisPos.dictM03_取料Y轴); // if (i < 9) uiTableLayoutPanel1取料Y轴Pos.Controls.Add(uCAxisPos, 0, i); // else uiTableLayoutPanel1取料Y轴Pos.Controls.Add(uCAxisPos, 1, i - 9); // listAxisPos.Add(uCAxisPos); // uCAxisPos.timer1.Enabled = true; //} //for (int i = 0; i < PLCAxisPos.dictM03_取料Z轴.Count; i++) //{ // UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM03_取料Z轴[i], PLCAxisPos.dictM03_取料Z轴); // if (i < 9) uiTableLayoutPanel取料Z轴Pos.Controls.Add(uCAxisPos, 0, i); // else uiTableLayoutPanel取料Z轴Pos.Controls.Add(uCAxisPos, 1, i - 9); // listAxisPos.Add(uCAxisPos); // uCAxisPos.timer1.Enabled = true; //} //for (int i = 0; i < PLCAxisPos.dictM03_取料R轴.Count; i++) //{ // UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM03_取料R轴[i], PLCAxisPos.dictM03_取料R轴); // if (i < 9) uiTableLayoutPanel取料R轴Pos.Controls.Add(uCAxisPos, 0, i); // else uiTableLayoutPanel取料R轴Pos.Controls.Add(uCAxisPos, 1, i - 9); // listAxisPos.Add(uCAxisPos); // uCAxisPos.timer1.Enabled = true; //} } } }