| | |
| | | using NModbus; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Dynamic; |
| | |
| | | //如果是水检,可以提交了 |
| | | if (txt_gx.Text.Trim() == fGxShouJian) |
| | | { |
| | | if (txt_gongWei.Text.Trim().Length <= 0) |
| | | { |
| | | Toast vm = new Toast(-1, "~请扫工位码~"); |
| | | vm.Show(); |
| | | this.ActiveControl = this.txt_gongWei; |
| | | txt_gongWei.Focus(); |
| | | return; |
| | | } |
| | | addModel(goodTag); |
| | | } |
| | | } |
| | |
| | | { |
| | | Toast vm = new Toast(-1, "~请先扫追溯码~"); |
| | | vm.Show(); |
| | | this.ActiveControl = this.txt_barCode; |
| | | txt_barCode.Focus(); |
| | | return; |
| | | } |
| | | dynamic _obj = getObj(_barCode, _checkResult, _badDescription); |
| | |
| | | string SJJG = "";//水检查结果ok、ng |
| | | string GWZT = "";//工位状态 |
| | | string SJJGZ = "";//水检查结果1 |
| | | System.Text.StringBuilder sbSql1 = new StringBuilder(); |
| | | sbSql1.Append($"select MIG004,MIG005 from BASMIG(nolock) where MIG001='ShuiJianZhanWei01' and MIG003='{((BaseEdit)this.txt_gongWei).EditValue.ToString()}'"); |
| | | DataTable dataTable1 = this.GetDataTable(sbSql1.ToString(), "tmpBASMIG2"); |
| | | if (dataTable1 == null || dataTable1.Rows.Count <= 0) |
| | | bool blIp = true; |
| | | blIp = CheckPort(hostName, hostNamePoint); |
| | | if (blIp) |
| | | { |
| | | ((BaseEdit)this.txt_gongWei).EditValue = (object)""; |
| | | LogHelper.Debug(this.ToString(), txt_gongWei.Text + "该水检站位码不存在,请确认!"); |
| | | //Toast vm = new Toast(-1, "该水检站位码不存在,请确认!"); |
| | | //vm.Show(); |
| | | } |
| | | else |
| | | { |
| | | ModbusFactory modbusFactory = new ModbusFactory(); |
| | | byte num1 = byte.Parse("1"); |
| | | ushort num2 = ushort.Parse("1"); |
| | | System.Text.StringBuilder sbSql2 = new StringBuilder(); |
| | | sbSql2.Append(string.Format($"select case when MIG006='D' then MIG003+{dataTable1.Rows[0][0]} else MIG003+{dataTable1.Rows[0][1]} end MIG003,MIG004 from BASMIG(nolock) where MIG001 = 'ShuiJianAddress01' order by MIG005")); |
| | | DataTable dataTable2 = GetDataTable(sbSql2.ToString(), "tmpBASMIG3"); |
| | | if (dataTable2 == null || dataTable2.Rows.Count <= 0) |
| | | System.Text.StringBuilder sbSql1 = new StringBuilder(); |
| | | sbSql1.Append($"select MIG004,MIG005 from BASMIG(nolock) where MIG001='ShuiJianZhanWei01' and MIG003='{((BaseEdit)this.txt_gongWei).EditValue.ToString()}'"); |
| | | DataTable dataTable1 = this.GetDataTable(sbSql1.ToString(), "tmpBASMIG2"); |
| | | if (dataTable1 == null || dataTable1.Rows.Count <= 0) |
| | | { |
| | | ((BaseEdit)this.txt_gongWei).EditValue = (object)""; |
| | | LogHelper.Debug(this.ToString(), txt_gongWei.Text + "水检地址不存在,请确认!"); |
| | | //Toast vm = new Toast(-1, "水检地址不存在,请确认!"); |
| | | LogHelper.Debug(this.ToString(), txt_gongWei.Text + "该水检站位码不存在,请确认!"); |
| | | //Toast vm = new Toast(-1, "该水检站位码不存在,请确认!"); |
| | | //vm.Show(); |
| | | } |
| | | else |
| | | { |
| | | try |
| | | { |
| | | IModbusMaster master = modbusFactory.CreateMaster(new TcpClient(this.hostName, this.hostNamePoint)); |
| | | master.Transport.ReadTimeout = 10000; |
| | | master.Transport.Retries = 10000; |
| | | strCsl1 = master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[0]["MIG003"].ToString()), num2)[0].ToString(); |
| | | strSw1 = (float.Parse(master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[1]["MIG003"].ToString()), num2)[0].ToString()) / 10f).ToString(); |
| | | ushort[] numArray = master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[2]["MIG003"].ToString()), num2); |
| | | SJJGZ = numArray[0].ToString(); |
| | | SJJG = numArray[0].ToString(); |
| | | SJJG = (SJJG == "1" ? "OK" : (SJJG == "2" ? "NG" : SJJG)); |
| | | GWZT = master.ReadCoils(num1, ushort.Parse(dataTable2.Rows[3]["MIG003"].ToString()), num2)[0].ToString(); |
| | | } |
| | | catch (Exception ex) |
| | | ModbusFactory modbusFactory = new ModbusFactory(); |
| | | byte num1 = byte.Parse("1"); |
| | | ushort num2 = ushort.Parse("1"); |
| | | System.Text.StringBuilder sbSql2 = new StringBuilder(); |
| | | sbSql2.Append(string.Format($"select case when MIG006='D' then MIG003+{dataTable1.Rows[0][0]} else MIG003+{dataTable1.Rows[0][1]} end MIG003,MIG004 from BASMIG(nolock) where MIG001 = 'ShuiJianAddress01' order by MIG005")); |
| | | DataTable dataTable2 = GetDataTable(sbSql2.ToString(), "tmpBASMIG3"); |
| | | if (dataTable2 == null || dataTable2.Rows.Count <= 0) |
| | | { |
| | | ((BaseEdit)this.txt_gongWei).EditValue = (object)""; |
| | | LogHelper.Debug(this.ToString(), txt_gongWei.Text + ex.Message); |
| | | //Toast vm = new Toast(-1, ex.Message); |
| | | LogHelper.Debug(this.ToString(), txt_gongWei.Text + "水检地址不存在,请确认!"); |
| | | //Toast vm = new Toast(-1, "水检地址不存在,请确认!"); |
| | | //vm.Show(); |
| | | } |
| | | else |
| | | { |
| | | try |
| | | { |
| | | IModbusMaster master = modbusFactory.CreateMaster(new TcpClient(this.hostName, this.hostNamePoint)); |
| | | master.Transport.ReadTimeout = 10000; |
| | | master.Transport.Retries = 10000; |
| | | strCsl1 = master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[0]["MIG003"].ToString()), num2)[0].ToString(); |
| | | strSw1 = (float.Parse(master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[1]["MIG003"].ToString()), num2)[0].ToString()) / 10f).ToString(); |
| | | ushort[] numArray = master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[2]["MIG003"].ToString()), num2); |
| | | SJJGZ = numArray[0].ToString(); |
| | | SJJG = numArray[0].ToString(); |
| | | SJJG = (SJJG == "1" ? "OK" : (SJJG == "2" ? "NG" : SJJG)); |
| | | GWZT = master.ReadCoils(num1, ushort.Parse(dataTable2.Rows[3]["MIG003"].ToString()), num2)[0].ToString(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ((BaseEdit)this.txt_gongWei).EditValue = (object)""; |
| | | LogHelper.Debug(this.ToString(), txt_gongWei.Text + ex.Message); |
| | | //Toast vm = new Toast(-1, ex.Message); |
| | | //vm.Show(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | return ds.Tables[0]; |
| | | } |
| | | } |
| | | |
| | | private bool CheckPort(string host, int port) |
| | | { |
| | | int vanishingSeconds = 3; |
| | | string _vanishingSeconds = ConfigurationManager.AppSettings["AsyncSeconds"]; |
| | | if (!string.IsNullOrEmpty(_vanishingSeconds)) |
| | | vanishingSeconds = int.Parse(_vanishingSeconds); |
| | | bool isOpen = false; |
| | | try |
| | | { |
| | | using (var client = new TcpClient()) |
| | | { |
| | | var result = client.BeginConnect(host, port, null, null); |
| | | var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(vanishingSeconds)); // 等待5秒 |
| | | if (success) |
| | | { |
| | | isOpen = true; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(this.ToString(), "CheckPort:" + ex.Message); |
| | | } |
| | | return isOpen; |
| | | } |
| | | #endregion |
| | | |
| | | } |