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_M01M02 : Sunny.UI.UIForm { public FrmPLC_M01M02() { InitializeComponent(); } private void FrmPLC_Load(object sender, EventArgs e) { uiSplitContainer1.SplitterDistance = this.Width / 2; LoadPLCValue(); LoadAxisPos(); LoadAxis(); tabControlAxis.SelectedIndex = 0; } public List listCylinder = new List(); public List listAxisPos_取料X轴Pos = new List(); public List listAxisPos_取料Y轴Pos = new List(); public List listAxisPos_取料Z轴Pos = new List(); public List listAxisPos_取料R轴Pos = new List(); public List listAxisPos_上料站X轴Pos = new List(); public List listAxisPos_上料站Y轴Pos = new List(); public List listAxisPos_上料站Z轴Pos = new List(); public List listAxis = new List(); private void LoadPLCValue() { listCylinder.Clear(); for (int i = 0; i < PLCCylinder.listM01M02_上料工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M01M02", PLCCylinder.listM01M02_上料工位[i],PLCCylinder.dictM01M02_上料工位); 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.listM01M02_取出工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M01M02", PLCCylinder.listM01M02_取出工位[i], PLCCylinder.dictM01M02_取出工位); 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.listM01M02_提升机工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M01M02", PLCCylinder.listM01M02_提升机工位[i], PLCCylinder.dictM01M02_提升机工位); 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.listM01M02_称重工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M01M02", PLCCylinder.listM01M02_称重工位[i], PLCCylinder.dictM01M02_称重工位); 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.listM01M02_出口工位.Count; i++) { UCCylinder uCCylinder = new UCCylinder("M01M02", PLCCylinder.listM01M02_出口工位[i], PLCCylinder.dictM01M02_出口工位); 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(); } } private void LoadAxisPos() { listAxisPos_取料X轴Pos.Clear(); listAxisPos_取料Y轴Pos.Clear(); listAxisPos_取料Z轴Pos.Clear(); listAxisPos_取料R轴Pos.Clear(); listAxisPos_上料站X轴Pos.Clear(); listAxisPos_上料站Y轴Pos.Clear(); listAxisPos_上料站Z轴Pos.Clear(); uiTableLayoutPanel取料X轴Pos.Controls.Clear(); uiTableLayoutPanel1取料Y轴Pos.Controls.Clear(); uiTableLayoutPanel取料Z轴Pos.Controls.Clear(); uiTableLayoutPanel取料R轴Pos.Controls.Clear(); uiTableLayoutPanel上料站X轴Pos.Controls.Clear(); uiTableLayoutPanel上料站Y轴Pos.Controls.Clear(); uiTableLayoutPanel上料站Z轴Pos.Controls.Clear(); for (int i = 0; i < PLCAxisPos.dictM01M02_取料X轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos( PLCAxisPos.listM01M02_取料X轴[i], PLCAxisPos.dictM01M02_取料X轴); if (i < 9) uiTableLayoutPanel取料X轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel取料X轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_取料X轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } for (int i = 0; i < PLCAxisPos.dictM01M02_取料Y轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM01M02_取料Y轴[i], PLCAxisPos.dictM01M02_取料Y轴); if (i < 9) uiTableLayoutPanel1取料Y轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel1取料Y轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_取料Y轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } for (int i = 0; i < PLCAxisPos.dictM01M02_取料Z轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM01M02_取料Z轴[i], PLCAxisPos.dictM01M02_取料Z轴); if (i < 9) uiTableLayoutPanel取料Z轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel取料Z轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_取料Z轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } for (int i = 0; i < PLCAxisPos.dictM01M02_取料R轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM01M02_取料R轴[i], PLCAxisPos.dictM01M02_取料R轴); if (i < 9) uiTableLayoutPanel取料R轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel取料R轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_取料R轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } for (int i = 0; i < PLCAxisPos.dictM01M02_上料站X轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM01M02_上料站X轴[i], PLCAxisPos.dictM01M02_上料站X轴); if (i < 9) uiTableLayoutPanel上料站X轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel上料站X轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_上料站X轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } for (int i = 0; i < PLCAxisPos.dictM01M02_上料站Y轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM01M02_上料站Y轴[i], PLCAxisPos.dictM01M02_上料站Y轴); if (i < 9) uiTableLayoutPanel上料站Y轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel上料站Y轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_上料站Y轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } for (int i = 0; i < PLCAxisPos.dictM01M02_上料站Z轴.Count; i++) { UCAxisPos uCAxisPos = new UCAxisPos(PLCAxisPos.listM01M02_上料站Z轴[i], PLCAxisPos.dictM01M02_上料站Z轴); if (i < 9) uiTableLayoutPanel上料站Z轴Pos.Controls.Add(uCAxisPos, 0, i); else uiTableLayoutPanel上料站Z轴Pos.Controls.Add(uCAxisPos, 1, i - 9); listAxisPos_上料站Z轴Pos.Add(uCAxisPos); //uCAxisPos.timer1.Enabled = true; uCAxisPos.thMonitor.Start(); } } private void LoadAxis() { listAxis.Clear(); UCAxis uCAxis取料X轴 = new UCAxis("M01M02", "取料X轴", PLCAxis.listM01M02_轴[0], PLCAxis.dictM01M02_轴); panel取料X轴.Controls.Clear(); panel取料X轴.Controls.Add(uCAxis取料X轴); //uCAxisPos.timer1.Enabled = true; uCAxis取料X轴.thMonitor.Start(); listAxis.Add(uCAxis取料X轴); UCAxis uCAxis取料Y轴 = new UCAxis("M01M02", "取料Y轴", PLCAxis.listM01M02_轴[1], PLCAxis.dictM01M02_轴); panel取料Y轴.Controls.Clear(); panel取料Y轴.Controls.Add(uCAxis取料Y轴); //uCAxis取料Y轴.timer1.Enabled = true; uCAxis取料Y轴.thMonitor.Start(); listAxis.Add(uCAxis取料Y轴); UCAxis uCAxis取料Z轴 = new UCAxis("M01M02", "取料Z轴", PLCAxis.listM01M02_轴[2], PLCAxis.dictM01M02_轴); panel取料Z轴.Controls.Clear(); panel取料Z轴.Controls.Add(uCAxis取料Z轴); //uCAxis取料Z轴.timer1.Enabled = true; uCAxis取料Z轴.thMonitor.Start(); listAxis.Add(uCAxis取料Z轴); UCAxis uCAxis取料R轴 = new UCAxis("M01M02", "取料R轴", PLCAxis.listM01M02_轴[3], PLCAxis.dictM01M02_轴); panel取料R轴.Controls.Clear(); panel取料R轴.Controls.Add(uCAxis取料R轴); //uCAxis取料R轴.timer1.Enabled = true; uCAxis取料R轴.thMonitor.Start(); listAxis.Add(uCAxis取料R轴); UCAxis uCAxis上料站X轴 = new UCAxis("M01M02", "上料站X轴", PLCAxis.listM01M02_轴[4], PLCAxis.dictM01M02_轴); panel上料站X轴.Controls.Clear(); panel上料站X轴.Controls.Add(uCAxis上料站X轴); //uCAxis上料站X轴.timer1.Enabled = true; uCAxis上料站X轴.thMonitor.Start(); listAxis.Add(uCAxis上料站X轴); UCAxis uCAxis上料站Y轴 = new UCAxis("M01M02", "上料站Y轴", PLCAxis.listM01M02_轴[5], PLCAxis.dictM01M02_轴); panel上料站Y轴.Controls.Clear(); panel上料站Y轴.Controls.Add(uCAxis上料站Y轴); uCAxis上料站Y轴.thMonitor.Start(); listAxis.Add(uCAxis上料站Y轴); UCAxis uCAxis上料站Z轴 = new UCAxis("M01M02", "上料站Z轴", PLCAxis.listM01M02_轴[6], PLCAxis.dictM01M02_轴); panel上料站Z轴.Controls.Clear(); panel上料站Z轴.Controls.Add(uCAxis上料站Z轴); uCAxis上料站Z轴.thMonitor.Start(); listAxis.Add(uCAxis上料站Z轴); } int count = 0; private void Timer1_Tick(object sender, EventArgs e) { count = listAxis.Count; count = PLCAxis.dictM01M02_轴.Count; } 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 listAxis) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_取料X轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_取料Y轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_取料Z轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_取料R轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_上料站X轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_上料站Y轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } foreach (var item in listAxisPos_上料站Z轴Pos) { try { item.timer1.Enabled = false; item.thMonitor.Abort(); } catch (Exception) { } } } private void tabControlM01M02_SelectedIndexChanged(object sender, EventArgs e) { ReadPLCHelp.iM01M02IOStation = tabControlM01M02.SelectedIndex; } private void tabControlAxis_SelectedIndexChanged(object sender, EventArgs e) { ReadPLCHelp.iM01M02AxisStation = tabControlAxis.SelectedIndex; //switch (tabControlAxis.SelectedIndex) //{ // case 0: // foreach (var item in listAxisPos_取料X轴Pos) // { // //item.timer1.Enabled = true; // item.thMonitor.Start(); // } // break; // case 1: // foreach (var item in listAxisPos_取料Y轴Pos) // { // item.thMonitor.Start(); // } // break; // case 2: // foreach (var item in listAxisPos_取料Z轴Pos) // { // item.thMonitor.Start(); // } // break; // case 3: // foreach (var item in listAxisPos_取料R轴Pos) // { // item.thMonitor.Start(); // } // break; // case 4: // foreach (var item in listAxisPos_上料站X轴Pos) // { // item.thMonitor.Start(); // } // break; // case 5: // foreach (var item in listAxisPos_上料站Y轴Pos) // { // item.thMonitor.Start(); // } // break; // case 6: // foreach (var item in listAxisPos_上料站Z轴Pos) // { // item.thMonitor.Start(); // } // break; //} } } }