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; using System.Xml.Linq; namespace HRT_Measure { public partial class FrmFirstWindow : Form { public FrmFirstWindow() { InitializeComponent(); } PLCResultHelp resultHelp = new PLCResultHelp(); private void FrmFirstWindow_Load(object sender, EventArgs e) { splitContainerMain.SplitterDistance = 367; uchmiM01M02.thMonitor.Start(); uchmiM03.thMonitor.Start(); uchmiM04M05.thMonitor.Start(); timer1.Enabled = true; } private void btn清料_Click(object sender, EventArgs e) { try { ProgramHelp.Instance.commPLC_M01M02.WriteCoin("DB20.496.0", !PLCResultHelp.isM01_清料, out string str); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void btn称重开始_Click(object sender, EventArgs e) { try { ProgramHelp.Instance.commPLC_M01M02.WriteCoin("DB136.502.4", !PLCResultHelp.isM01_称重开始, out string str); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void btnClearPressure_Click(object sender, EventArgs e) { try { ProgramHelp.Instance.comm压机.WriteShort(ReadPLCHelp.dictPressure["工件计数"].Address, 0, out string str); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void btnAllowLayOff_Click(object sender, EventArgs e) { try { ProgramHelp.Instance.commPLC_M04M05.WriteCoin(ReadPLCHelp.dictM04["允许下料"], !PLCResultHelp.isM04_允许下料, out string str); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void timer1_Tick(object sender, EventArgs e) { try { //M01 txt药A暂存当前盒数.Text = resultHelp.M01_药A暂存当前盒数.ToString(); txt药B暂存当前盒数.Text = resultHelp.M01_药B暂存当前盒数.ToString(); txt抛盖暂存槽当前数量.Text = resultHelp.M01_抛盖暂存槽当前数量.ToString(); txt空桶暂存槽当前数量.Text = resultHelp.M01_空桶暂存槽当前数量.ToString(); btn清料.FillColor = PLCResultHelp.isM01_清料 ? Color.Green : Color.Gray; btn称重开始.FillColor = PLCResultHelp.isM01_称重开始 ? Color.Green : Color.Gray; //M02 txt药A称重配比重量.Text = resultHelp.M02_药A称重配比重量.ToString(); txtA料仓1当前重量.Text = (Convert.ToSingle( resultHelp.M02_A料仓1当前重量) / 100).ToString("f3"); txtA料仓2当前重量.Text = (Convert.ToSingle(resultHelp.M02_A料仓2当前重量) / 100).ToString("f3"); txtA料仓3当前重量.Text = (Convert.ToSingle(resultHelp.M02_A料仓3当前重量) / 100).ToString("f3"); txtA料仓4当前重量.Text = (Convert.ToSingle(resultHelp.M02_A料仓4当前重量) / 100).ToString("f3"); txtA料仓5当前重量.Text = (Convert.ToSingle(resultHelp.M02_A料仓5当前重量) / 100).ToString("f3"); txt药B称重配比重量.Text = resultHelp.M02_药B称重配比重量.ToString(); txtB料仓1当前重量.Text = (Convert.ToSingle(resultHelp.M02_B料仓1当前重量) / 100).ToString("f3"); txtB料仓2当前重量.Text = (Convert.ToSingle(resultHelp.M02_B料仓2当前重量) / 100).ToString("f3"); txtB料仓3当前重量.Text = (Convert.ToSingle(resultHelp.M02_B料仓3当前重量) / 100).ToString("f3"); txtB料仓4当前重量.Text = (Convert.ToSingle(resultHelp.M02_B料仓4当前重量) / 100).ToString("f3"); txtB料仓5当前重量.Text = (Convert.ToSingle(resultHelp.M02_B料仓5当前重量) / 100).ToString("f3"); //M04 btnAllowLayOff.FillColor = PLCResultHelp.isM04_允许下料 ? Color.Green : Color.Gray; txtCurrentHeight.Text = PLCResultHelp.fM04_当前检测高度.ToString("f2"); txtCurrentWeight.Text = PLCResultHelp.fM04_当前重量.ToString("f2"); //M05 txt箱数.Text = resultHelp.M05_箱数.ToString(); //压机 foreach (var item in grbPressure.Controls) { if (item is UITextBox) { try { string name = (((UITextBox)item).Name).Remove(0,3); if (name == "当前动作") { switch (Convert.ToInt32(ReadPLCHelp.dictPressure[name].value)) { case 0: ((UITextBox)item).Text = "尚未进入自动流程"; break; case 1: ((UITextBox)item).Text = "快顶"; break; case 2: ((UITextBox)item).Text = "慢顶"; break; case 3: ((UITextBox)item).Text = "保压"; break; case 4: ((UITextBox)item).Text = "泄压"; break; case 5: ((UITextBox)item).Text = "下降"; break; } } else if (name == "操作提示") { switch (Convert.ToInt32(ReadPLCHelp.dictPressure[name].value)) { case 1: ((UITextBox)item).Text = "调整,请给出命令"; break; case 2: ((UITextBox)item).Text = "调整,油缸已经上升到位"; break; case 3: ((UITextBox)item).Text = "调整,油缸已经下降到位"; break; case 4: ((UITextBox)item).Text = "手动,请给出命令"; break; case 5: ((UITextBox)item).Text = "手动,油缸已经上升到位"; break; case 6: ((UITextBox)item).Text = "手动,油缸已经下降到位"; break; case 7: ((UITextBox)item).Text = "本地自动,步骤0,请把油缸退到下极限"; break; case 8: ((UITextBox)item).Text = "本地自动,步骤0,请按下双手启动按钮"; break; case 9: ((UITextBox)item).Text = "本地自动,步骤1,等待到达慢顶位置"; break; case 10: ((UITextBox)item).Text = "本地自动,步骤2,等待到达压力/位置上限"; break; case 11: ((UITextBox)item).Text = "本地自动,步骤3,等待保压计时完成"; break; case 12: ((UITextBox)item).Text = "本地自动,步骤4,等待泄压计时完成"; break; case 13: ((UITextBox)item).Text = "本地自动,步骤5,等待油缸到达下极限位置"; break; case 14: ((UITextBox)item).Text = "本地自动,已暂停"; break; case 20: ((UITextBox)item).Text = "联机自动,步骤0,请手动把油缸退到下极限"; break; case 21: ((UITextBox)item).Text = "联机自动,步骤0,等待PLC给出第1次顶出命令"; break; case 22: ((UITextBox)item).Text = "联机自动,步骤0,型号2,等待PLC给出第2次顶出命令"; break; case 23: ((UITextBox)item).Text = "联机自动,步骤0,等待PLC给出第2次顶出命令"; break; case 24: ((UITextBox)item).Text = "联机自动,步骤0,型号2,等待PLC给出第3次顶出命令"; break; case 25: ((UITextBox)item).Text = "联机自动,步骤1,等待到达慢顶位置"; break; case 26: ((UITextBox)item).Text = "联机自动,步骤2,等待到达压力/位置上限"; break; case 27: ((UITextBox)item).Text = "联机自动,步骤3,等待保压计时完成"; break; case 28: ((UITextBox)item).Text = "联机自动,步骤4,等待PLC给出下降命令"; break; case 29: ((UITextBox)item).Text = "联机自动,步骤4,等待泄压计时完成"; break; case 30: ((UITextBox)item).Text = "联机自动,步骤5,等待油缸到达下极限位置"; break; case 31: ((UITextBox)item).Text = "联机自动,已暂停"; break; case 40: ((UITextBox)item).Text = "联机自动,已暂停"; break; case 41: ((UITextBox)item).Text = "请选择合法的操作模式"; break; default: ((UITextBox)item).Text = ""; break; } } else if (name == "当前模式提示") { switch (Convert.ToInt32(ReadPLCHelp.dictPressure[name].value)) { case 0: ((UITextBox)item).Text = "无模式"; break; case 1: ((UITextBox)item).Text = "调整模式"; break; case 2: ((UITextBox)item).Text = "手动模式"; break; case 3: ((UITextBox)item).Text = "半自动模式"; break; case 4: ((UITextBox)item).Text = "联机模式"; break; default: ((UITextBox)item).Text = ""; break; } } else if (name == "当前产品型号") { int model = Convert.ToInt16(ReadPLCHelp.dictPressure[name].value); if ((model >= 1) && (model <= 6)) { ((UITextBox)item).Text = "产品型号" + model.ToString(); } else ((UITextBox)item).Text = "型号非法"; } else { ((UITextBox)item).Text = ReadPLCHelp.dictPressure[name].value; } } catch (Exception) { } } } } catch (Exception) { } } private void FrmFirstWindow_FormClosing(object sender, FormClosingEventArgs e) { try { uchmiM01M02.timer1.Enabled = false; uchmiM03.timer1.Enabled = false; uchmiM04M05.timer1.Enabled = false; try { uchmiM01M02.thMonitor.Abort(); } catch { } try { uchmiM03.thMonitor.Abort(); } catch { } try { uchmiM04M05.thMonitor.Abort(); } catch { } } catch (Exception) { } } private void cob产品型号选择_SelectedIndexChanged(object sender, EventArgs e) { string name = "当前产品型号"; int strValue = cob产品型号选择.SelectedIndex + 1; ProgramHelp.Instance.comm压机.WriteShort(ReadPLCHelp.dictPressure[name].Address, Convert.ToInt16(Convert.ToSingle(strValue) / ReadPLCHelp.dictPressure[name].Scale), out string str); } } }