/// <summary> /// 刷新配方数据 /// </summary> public void refreshPeifang() { ////循环读取刷新所有参数 ////dryDevice.analyseDatasRecyle(); //if (device != null && device is DryDevice) //{ //实例化干燥机设备 DryDevice dryDevice = (DryDevice)device; txbRecipeNO.Text = Convert.ToString(dryDevice.bianhao); //加载窗体时显示当前plc内部的输送线的速度 //把运算值以字符串的格式写入到输送线速度监视的textbox内 txbControlConveyor.Text = Convert.ToString(Convert.ToDecimal(dryDevice.ControlConveyorSpeed) / 100); //加载窗体时显示当前plc内部的UV1-UV8的开度 //把运算值以字符串的格式写入到UV1功率监视的textbox内 txbControlUV1.Text = Convert.ToString((dryDevice.UV1Percent) / 1); //把运算值以字符串的格式写入到UV2功率监视的textbox内 txbControlUV2.Text = Convert.ToString((dryDevice.UV2Percent) / 1); //把运算值以字符串的格式写入到UV3功率监视的textbox内 txbControlUV3.Text = Convert.ToString((dryDevice.UV3Percent) / 1); //把运算值以字符串的格式写入到UV4功率监视的textbox内 txbControlUV4.Text = Convert.ToString((dryDevice.UV4Percent) / 1); //把运算值以字符串的格式写入到UV5功率监视的textbox内 txbControlUV5.Text = Convert.ToString((dryDevice.UV5Percent) / 1); //把运算值以字符串的格式写入到UV6功率监视的textbox内 txbControlUV6.Text = Convert.ToString((dryDevice.UV6Percent) / 1); //把运算值以字符串的格式写入到UV7功率监视的textbox内 txbControlUV7.Text = Convert.ToString((dryDevice.UV7Percent) / 1); //把运算值以字符串的格式写入到UV8功率监视的textbox内 txbControlUV8.Text = Convert.ToString((dryDevice.UV8Percent) / 1); // } }
/// <summary> /// 刷新显示报警信息 /// </summary> private void AlarmMessage() { DryDevice drydevice = (DryDevice)device; UInt32[] alarm_value = new UInt32[] { 16, 17, 19, 32, 33, 34, 35, 48, 49, 50, 64, 66, 97, 98, 160, 179, 192 }; string[] alarm_Msg = new string[] { alarm_Msg1, alarm_Msg2, alarm_Msg3, alarm_Msg4, alarm_Msg5, alarm_Msg6, alarm_Msg7, alarm_Msg8, alarm_Msg9, alarm_Msg10, alarm_Msg11, alarm_Msg12, alarm_Msg13, alarm_Msg14, alarm_Msg15, alarm_Msg16, alarm_Msg17 }; for (int i = 0; i < alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.shuSongDaiStatusCode) //==则表示报警 { if (!lsbAlarmMsg.Items.Contains(alarm_Msg[i])) //判定当前没有显示,则插入一行显示 { lsbAlarmMsg.Items.Insert(0, alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(alarm_Msg[i]); } } }
//从本地ini文件读取物料编码和配方编号 public void RecipeNO_Input() { Int32[] value = new Int32[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, }; string[] way = new string[] { @"\Default-product1.ini", @"\Default-product2.ini", @"\Default-product3.ini", @"\Default-product4.ini", @"\Default-product5.ini", @"\Default-product6.ini", @"\Default-product7.ini", @"\Default-product8.ini", @"\Default-product9.ini", @"\Default-product10.ini", @"\Default-product11.ini", @"\Default-product12.ini", @"\Default-product13.ini", @"\Default-product14.ini", @"\Default-product15.ini", @"\Default-product16.ini", @"\Default-product17.ini", @"\Default-product18.ini", @"\Default-product19.ini", @"\Default-product20.ini" }; //如果输入为空时自动返回之前的值 if (txbRecipeNO.Text.Trim() == "") { //实例化涂布机设备 DryDevice dry = (DryDevice)device; txbRecipeNO.Text = Convert.ToString(dry.bianhao); MessageBox.Show("输入无效,配方区间在1-20之间,请输入适当的配方编号"); } else { for (int i = 0; i < value.Length; i++) { //把中间转存的Default - code.ini内容路径找到然后读取出内容存储在txb_tiaoma.Text中 if (Convert.ToUInt32(txbRecipeNO.Text) == value[i]) { string thispath = Application.StartupPath + way[i]; //定义变量thisPath,获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称+路径 if (!System.IO.File.Exists(thispath)) { return; //确定指定的文件是否存在(文件的路径);如果不存在则执行return } try { lab_Prt_NO.Text = System.IO.File.ReadAllText(thispath); //打开一个文本文件,读取文件的所有行,然后关闭该文件 } catch { } } } } }
/// <summary> /// UV报警监控 /// </summary> public void UV_byte_Alarm_Monitor() { DryDevice drydevice = (DryDevice)device; UInt32[] alarm_value = new UInt32[] { 1, 2, 4, 5, 6, 9, 14, 15, 103, 7, 255 }; string[] UV1alarm_Msg = new string[] { UV1alarm_Msg1, UV1alarm_Msg2, UV1alarm_Msg3, UV1alarm_Msg4, UV1alarm_Msg5, UV1alarm_Msg6, UV1alarm_Msg7, UV1alarm_Msg8, UV1alarm_Msg9, UV1alarm_Msg10, UV1alarm_Msg11 }; string[] UV2alarm_Msg = new string[] { UV2alarm_Msg1, UV2alarm_Msg2, UV2alarm_Msg3, UV2alarm_Msg4, UV2alarm_Msg5, UV2alarm_Msg6, UV2alarm_Msg7, UV2alarm_Msg8, UV2alarm_Msg9, UV2alarm_Msg10, UV2alarm_Msg11 }; string[] UV3alarm_Msg = new string[] { UV3alarm_Msg1, UV3alarm_Msg2, UV3alarm_Msg3, UV3alarm_Msg4, UV3alarm_Msg5, UV3alarm_Msg6, UV3alarm_Msg7, UV3alarm_Msg8, UV3alarm_Msg9, UV3alarm_Msg10, UV3alarm_Msg11 }; string[] UV4alarm_Msg = new string[] { UV4alarm_Msg1, UV4alarm_Msg2, UV4alarm_Msg3, UV4alarm_Msg4, UV4alarm_Msg5, UV4alarm_Msg6, UV4alarm_Msg7, UV4alarm_Msg8, UV4alarm_Msg9, UV4alarm_Msg10, UV4alarm_Msg11 }; string[] UV5alarm_Msg = new string[] { UV5alarm_Msg1, UV5alarm_Msg2, UV5alarm_Msg3, UV5alarm_Msg4, UV5alarm_Msg5, UV5alarm_Msg6, UV5alarm_Msg7, UV5alarm_Msg8, UV5alarm_Msg9, UV5alarm_Msg10, UV5alarm_Msg11 }; string[] UV6alarm_Msg = new string[] { UV6alarm_Msg1, UV6alarm_Msg2, UV6alarm_Msg3, UV6alarm_Msg4, UV6alarm_Msg5, UV6alarm_Msg6, UV6alarm_Msg7, UV6alarm_Msg8, UV6alarm_Msg9, UV6alarm_Msg10, UV6alarm_Msg11 }; string[] UV7alarm_Msg = new string[] { UV7alarm_Msg1, UV7alarm_Msg2, UV7alarm_Msg3, UV7alarm_Msg4, UV7alarm_Msg5, UV7alarm_Msg6, UV7alarm_Msg7, UV7alarm_Msg8, UV7alarm_Msg9, UV7alarm_Msg10, UV7alarm_Msg11 }; string[] UV8alarm_Msg = new string[] { UV8alarm_Msg1, UV8alarm_Msg2, UV8alarm_Msg3, UV8alarm_Msg4, UV8alarm_Msg5, UV8alarm_Msg6, UV8alarm_Msg7, UV8alarm_Msg8, UV8alarm_Msg9, UV8alarm_Msg10, UV8alarm_Msg11 }; //UV1字节报警输出 for (int i = 0; i < UV1alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV1StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV1alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV1alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV1alarm_Msg[i]); } } //UV2字节报警输出 for (int i = 0; i < UV2alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV2StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV2alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV2alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV2alarm_Msg[i]); } } //UV3字节报警输出 for (int i = 0; i < UV3alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV3StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV3alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV3alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV3alarm_Msg[i]); } } //UV4字节报警输出 for (int i = 0; i < UV4alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV4StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV4alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV4alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV4alarm_Msg[i]); } } //UV5字节报警输出 for (int i = 0; i < UV5alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV5StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV5alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV5alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV5alarm_Msg[i]); } } //UV6字节报警输出 for (int i = 0; i < UV6alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV6StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV6alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV6alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV6alarm_Msg[i]); } } //UV7字节报警输出 for (int i = 0; i < UV7alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV7StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV7alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV7alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV7alarm_Msg[i]); } } //UV8字节报警输出 for (int i = 0; i < UV8alarm_Msg.Length; i++) { if (alarm_value[i] == drydevice.UV8StatusCode) { if (!this.lsbAlarmMsg.Items.Contains(UV8alarm_Msg[i]) == true) //判定当前有没有显示 { lsbAlarmMsg.Items.Insert(0, UV8alarm_Msg[i]); //如果当前没有显示则插入语句 } } else { lsbAlarmMsg.Items.Remove(UV8alarm_Msg[i]); } } }
/// <summary> /// 集中读取BYTE用于显示状态等信息,ReadBlockAsByte /// </summary> /// public void Monitor_ReadBack() { A0开机画面 parent = (A0开机画面)Parent.FindForm(); DryDevice drydevice = (DryDevice)device; //把运算值以字符串的格式写入到输送线速度监视的Label内 lab_Monitor_Conveyor_Speed.Text = Convert.ToString(Convert.ToDecimal(drydevice.shuSongDaiSpeed) / 100) + " Hz"; // LineSpeed = Convert.ToDecimal(drydevice.shuSongDaiSpeed) /100; //把运算值以字符串的格式写入到UV1功率监视的Label内 lab_Monitor_UV1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV1Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV2功率监视的Label内 lab_Monitor_UV2.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV2Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV3功率监视的Label内 lab_Monitor_UV3.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV3Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV4功率监视的Label内 lab_Monitor_UV4.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV4Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV5功率监视的Label内 lab_Monitor_UV5.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV5Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV6功率监视的Label内 lab_Monitor_UV6.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV6Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV7功率监视的Label内 lab_Monitor_UV7.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV7Power) / 10) + " Kw"; //把运算值以字符串的格式写入到UV8功率监视的Label内 lab_Monitor_UV8.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV8Power) / 10) + " Kw"; //把运算值以字符串的格式写入到输送线运行时间的Label内 lab_Monitor_Conveyor_Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.shuSongDaiRunTime)) + " H"; //把运算值以字符串的格式写入到UV1运行时间的Label内 lab_Monitor_UV1Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV1RunTime)) + " H"; //把运算值以字符串的格式写入到UV2运行时间的Label内 lab_Monitor_UV2Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV2RunTime)) + " H"; //把运算值以字符串的格式写入到UV3运行时间的Label内 lab_Monitor_UV3Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV3RunTime)) + " H"; //把运算值以字符串的格式写入到UV4运行时间的Label内 lab_Monitor_UV4Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV4RunTime)) + " H"; //把运算值以字符串的格式写入到UV5运行时间的Label内 lab_Monitor_UV5Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV5RunTime)) + " H"; //把运算值以字符串的格式写入到UV6运行时间的Label内 lab_Monitor_UV6Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV6RunTime)) + " H"; //把运算值以字符串的格式写入到UV7运行时间的Label内 lab_Monitor_UV7Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV7RunTime)) + " H"; //把运算值以字符串的格式写入到UV8运行时间的Label内 lab_Monitor_UV8Hour.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV8RunTime)) + " H"; //把运算值以字符串的格式写入到UV1剩余运行时间的Label内 lab_Monitor_UV1Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV1LeftTime)) + " H"; //把运算值以字符串的格式写入到UV2剩余运行时间的Label内 lab_Monitor_UV2Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV2LeftTime)) + " H"; //把运算值以字符串的格式写入到UV3剩余运行时间的Label内 lab_Monitor_UV3Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV3LeftTime)) + " H"; //把运算值以字符串的格式写入到UV4剩余运行时间的Label内 lab_Monitor_UV4Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV4LeftTime)) + " H"; //把运算值以字符串的格式写入到UV5剩余运行时间的Label内 lab_Monitor_UV5Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV5LeftTime)) + " H"; //把运算值以字符串的格式写入到UV6剩余运行时间的Label内 lab_Monitor_UV6Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV6LeftTime)) + " H"; //把运算值以字符串的格式写入到UV7剩余运行时间的Label内 lab_Monitor_UV7Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV7LeftTime)) + " H"; //把运算值以字符串的格式写入到UV8剩余运行时间的Label内 lab_Monitor_UV8Hour1.Text = Convert.ToString(Convert.ToDecimal(drydevice.UV8LeftTime)) + " H"; //判断寿命到期 string status = device.BaseProtocol.ConnectState.ToString(); if (status == "Connected") { if (drydevice.UV1LeftTime == 0 && device.childType == 1) { MessageBox.Show("1#UV灯管使用寿命到期,请更换配件!"); parent.showLog("1#UV灯管使用寿命到期,请更换配件!"); } if (drydevice.UV2LeftTime == 0 && device.childType == 1 && device.childType == 2) { MessageBox.Show("2#UV灯管使用寿命到期,请更换配件!"); parent.showLog("2#UV灯管使用寿命到期,请更换配件!"); } if (drydevice.UV3LeftTime == 0 && device.childType == 1 && device.childType == 2 && device.childType == 3) { MessageBox.Show("3#UV灯管使用寿命到期,请更换配件!"); parent.showLog("3#UV灯管使用寿命到期,请更换配件!"); } if (drydevice.UV4LeftTime == 0 && device.childType == 1 && device.childType == 2 && device.childType == 3 && device.childType == 4) { MessageBox.Show("4#UV灯管使用寿命到期,请更换配件!"); parent.showLog("4#UV灯管使用寿命到期,请更换配件!"); } } }