//从本地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 (txb_Recipe_NO.Text.Trim() == "") { UInt32 ReadBack = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 52, ref ReadBack); txb_Recipe_NO.Text = Convert.ToString(ReadBack); MessageBox.Show("输入无效,配方区间在1-20之间,请输入适当的配方编号"); } else { for (int i = 0; i < value.Length; i++) { //把中间转存的Default - code.ini内容路径找到然后读取出内容存储在txb_tiaoma.Text中 if (Convert.ToUInt32(txb_Recipe_NO.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 { } } } } }
//判定离开后开始执行写入指令 //配方参数输入,,,,,,对话框中参数输入 public void handleInputComplete(object sender) { System.Windows.Forms.TextBox _textbox = (System.Windows.Forms.TextBox)sender; switch (_textbox.Name) { //主输送线速度写入 case "txb_Control_Conveyor_Main": UInt32 Write_Conveyor_Main = 0; //定义读取变量 if (txb_Control_Conveyor_Main.Text.Trim() == "") { UInt32 ReadBack_Write_Conveyor_Main = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 0, ref ReadBack_Write_Conveyor_Main); txb_Control_Conveyor_Main.Text = Convert.ToString(Convert.ToDecimal(ReadBack_Write_Conveyor_Main) / 10); MessageBox.Show("参数区间在1-20之间,请输入适当的参数"); } else { Write_Conveyor_Main = Convert.ToUInt32(Convert.ToDecimal(txb_Control_Conveyor_Main.Text.ToString()) * 10); //转换成String格式然后显示在textbox里面 if (Convert.ToUInt32(Convert.ToDecimal(txb_Control_Conveyor_Main.Text) * 10) <= 200 && Convert.ToUInt32(Convert.ToDecimal(txb_Control_Conveyor_Main.Text) * 10) >= 0) { int resno = CS7TCP.WriteWord(Z通讯设置.plcHandle, 0x84, device.address, 0, Write_Conveyor_Main); //写入配方编号 if (resno == 0) { A0开机画面 parent = (A0开机画面)Parent.FindForm(); parent.showLog(" 输送线速度写入成功!"); } else { MessageBox.Show("输送线速度写入失败,请重新输入"); } } else { UInt32 ReadBack_Write_Conveyor_Main = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 0, ref ReadBack_Write_Conveyor_Main); txb_Control_Conveyor_Main.Text = Convert.ToString(Convert.ToDecimal(ReadBack_Write_Conveyor_Main) / 10); MessageBox.Show("参数区间在1-20之间,请输入适当的参数"); } } break; //第一组高度设定写入 case "txb_Control_Brush_Height": UInt32 Write_App1_Height = 0; //定义读取变量 if (txb_Control_Brush_Height.Text.Trim() == "") { UInt32 ReadBack_Write_App1_Height = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 2, ref ReadBack_Write_App1_Height); txb_Control_Brush_Height.Text = Convert.ToString(Convert.ToDecimal(ReadBack_Write_App1_Height) / 100); MessageBox.Show("参数区间在1-200之间,请输入适当的参数"); } else { Write_App1_Height = Convert.ToUInt32(Convert.ToDecimal(txb_Control_Brush_Height.Text.ToString()) * 100); //转换成String格式然后显示在textbox里面 if (Convert.ToUInt32(Convert.ToDecimal(txb_Control_Brush_Height.Text) * 100) <= 20000 && Convert.ToUInt32(Convert.ToDecimal(txb_Control_Brush_Height.Text) * 100) > 0) { int resno = CS7TCP.WriteWord(Z通讯设置.plcHandle, 0x84, device.address, 2, Write_App1_Height); //写入配方编号 if (resno == 0) { A0开机画面 parent = (A0开机画面)Parent.FindForm(); parent.showLog(" 第一组高度参数写入成功!"); } else { MessageBox.Show("第一组高度参数写入失败,请重新输入"); } } else { UInt32 ReadBack_Write_App1_Height = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 2, ref ReadBack_Write_App1_Height); txb_Control_Brush_Height.Text = Convert.ToString(Convert.ToDecimal(ReadBack_Write_App1_Height) / 100); MessageBox.Show("参数区间在1-200之间,请输入适当的参数"); } } break; //第一组高度误差补偿设定写入 case "txb_Control_Brush_buchang": UInt32 Write_App1_buchang = 0; //定义读取变量 if (txb_Control_Brush_buchang.Text.Trim() == "") { UInt32 ReadBack_Write_App1_buchang = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 4, ref ReadBack_Write_App1_buchang); txb_Control_Brush_buchang.Text = Convert.ToString(Convert.ToDecimal(ReadBack_Write_App1_buchang) / 100); MessageBox.Show("参数区间在1-20之间,请输入适当的参数"); } else { Write_App1_buchang = Convert.ToUInt32(Convert.ToDecimal(txb_Control_Brush_buchang.Text.ToString()) * 100); //转换成String格式然后显示在textbox里面 if (Convert.ToUInt32(Convert.ToDecimal(txb_Control_Brush_buchang.Text) * 100) <= 10000 && Convert.ToUInt32(Convert.ToDecimal(txb_Control_Brush_buchang.Text) * 100) >= 0) { int resno = CS7TCP.WriteWord(Z通讯设置.plcHandle, 0x84, device.address, 4, Write_App1_buchang); //写入配方编号 if (resno == 0) { A0开机画面 parent = (A0开机画面)Parent.FindForm(); parent.showLog(" 第一组高度误差补偿参数写入成功!"); } else { MessageBox.Show("第一组高度误差补偿写入失败,请重新输入"); } } else { UInt32 ReadBack_Write_App1_buchang = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 4, ref ReadBack_Write_App1_buchang); txb_Control_Brush_buchang.Text = Convert.ToString(Convert.ToDecimal(ReadBack_Write_App1_buchang) / 100); MessageBox.Show("参数区间在1-20之间,请输入适当的参数"); } } break; //配方编号写入 case "txb_Recipe_NO": UInt32 Write_Recipe_NO = 0; //定义读取变量 if (txb_Recipe_NO.Text.Trim() == "") { UInt32 ReadBack = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 52, ref ReadBack); txb_Recipe_NO.Text = Convert.ToString(ReadBack); MessageBox.Show("输入无效,配方区间在1-20之间,请输入适当的配方编号"); } else { Write_Recipe_NO = Convert.ToUInt32(txb_Recipe_NO.Text.ToString()); //转换成String格式然后显示在textbox里面 if (Convert.ToUInt32(txb_Recipe_NO.Text) <= 20 && Convert.ToUInt32(txb_Recipe_NO.Text) >= 0) { int resno = CS7TCP.WriteWord(Z通讯设置.plcHandle, 0x84, device.address, 52, Write_Recipe_NO); //写入配方编号 if (resno == 0) { A0开机画面 parent = (A0开机画面)Parent.FindForm(); parent.showLog(" 配方编号写入成功!"); } else { MessageBox.Show("配方编号写入失败,请重新输入"); } } else { UInt32 ReadBack = 0; CS7TCP.ReadWord(Z通讯设置.plcHandle, 0x84, device.address, 52, ref ReadBack); txb_Recipe_NO.Text = Convert.ToString(ReadBack); MessageBox.Show("输入无效,配方区间在1-20之间,请输入适当的配方编号"); } } break; } }