using Newtonsoft.Json.Linq; using NModbus; using System; using System.Data; using System.IO; using System.Net.Sockets; using System.Text; namespace Gs.DevApp { public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm { public XtraForm1() { InitializeComponent(); } /// /// 是否第一次投入,0为第一次投入,1为维修过来要报废的2为已经报废过了的,3返工过来重投的4清尾工单的报废 /// private string flagFirst = "0"; //是否第一次投入 private void simpleButton1_Click_1(object sender, EventArgs e) { AddDianJian(); } //添加电检数据 private string AddDianJian() { string TM = ""; string JD = ""; string JY = ""; string JN = ""; string XL = ""; string GV = ""; string JDV = ""; string JYV = ""; string JNV = ""; string XLV = ""; string GVV = ""; //if (imaQAB009.EditValue.ToString() != VSLoginInfo.SystemParam["DianJianNo"].ToString()) //{ // return ""; //} //string sql = string.Format(@" select MIG006 from BASMIG(nolock) where MIG001='DianJianQuShu' and MIG003='{0}' and MIG005='Y'", txtDAA042.EditValue.ToString()); //DataTable dt = manager.GetDataTable(sql, "tmpBASMIG"); //if (dt == null || dt.Rows.Count <= 0) //{ // return ""; //} try { //FileStream fs = new FileStream(dt.Rows[0][0].ToString(), FileMode.Open, FileAccess.Read, FileShare.ReadWrite); //int fsLen = (int)fs.Length; //byte[] heByte = new byte[fsLen]; //fs.Read(heByte, 0, heByte.Length); //string myStr = System.Text.Encoding.Default.GetString(heByte); //fs.Close(); string strPath = @"D:\uploadData.txt"; string myStr = File.ReadAllText(strPath, Encoding.Default); if (myStr == "") { return "NULL"; } File.WriteAllText(strPath, ""); JArray dsTemp = JArray.Parse(myStr); foreach (var ss in dsTemp) //查找某个字段与值 { TM = (((JObject)ss)["TiaoMa"] == null) ? "" : ((JObject)ss)["TiaoMa"].ToString(); JD = (((JObject)ss)["JieDi"] == null) ? "" : ((JObject)ss)["JieDi"]["state"].ToString(); JY = (((JObject)ss)["JueYuan"] == null) ? "" : ((JObject)ss)["JueYuan"]["state"].ToString(); JN = (((JObject)ss)["JiaoNai"] == null) ? "" : ((JObject)ss)["JiaoNai"]["state"].ToString(); XL = (((JObject)ss)["XieLou"] == null) ? "" : ((JObject)ss)["XieLou"]["state"].ToString(); GV = (((JObject)ss)["GongLv"] == null) ? "" : ((JObject)ss)["GongLv"]["state"].ToString(); JDV = (((JObject)ss)["JieDi"] == null) ? "" : ((JObject)ss)["JieDi"]["value"].ToString().Replace(" ", ", "); JYV = (((JObject)ss)["JueYuan"] == null) ? "" : ((JObject)ss)["JueYuan"]["value"].ToString().Replace(" ", ", "); JNV = (((JObject)ss)["JiaoNai"] == null) ? "" : ((JObject)ss)["JiaoNai"]["value"].ToString().Replace(" ", ", "); XLV = (((JObject)ss)["XieLou"] == null) ? "" : ((JObject)ss)["XieLou"]["value"].ToString().Replace(" ", ", "); GVV = (((JObject)ss)["GongLv"] == null) ? "" : ((JObject)ss)["GongLv"]["value"].ToString().Replace(" ", ", "); Gs.DevApp.ToolBox.LogHelper.Debug("TM", TM); Gs.DevApp.ToolBox.LogHelper.Debug("JD", JD); Gs.DevApp.ToolBox.LogHelper.Debug("JY", JY); Gs.DevApp.ToolBox.LogHelper.Debug("XL", XL); Gs.DevApp.ToolBox.LogHelper.Debug("XLV", XLV); Gs.DevApp.ToolBox.LogHelper.Debug("GVV", GVV); } return "已采集"; } catch (Exception e) { return "文件打开失败," + e.Message; } } private void simpleButton2_Click(object sender, EventArgs e) { string strCsl1 = ""; string strSw1 = ""; string strCsl2 = ""; string strSw2 = ""; string strCsl3 = ""; string strSw3 = ""; string strCsl4 = ""; string strSw4 = ""; string strCsl5 = ""; string strSw5 = ""; string SJJG = ""; try//水检取数,后面补充 { System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); string hostname = "192.168.60.52"; ModbusFactory modbusFactory = new ModbusFactory(); IModbusMaster master = modbusFactory.CreateMaster(new TcpClient(hostname, 502)); master.Transport.ReadTimeout = 10000; master.Transport.Retries = 10000; DataTable dt = new DataTable(); //参数(分别为从站地址,起始地址,长度) byte slaveAddress = byte.Parse(1.ToString()); ushort numberOfPoints = ushort.Parse("1"); float fsw = 0; DataTable dt1 = new DataTable(); ushort[] csl1 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(32.ToString()), numberOfPoints); strCsl1 = csl1[0].ToString(); ushort[] sw1 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(31.ToString()), numberOfPoints); strSw1 = (float.Parse(sw1[0].ToString()) / 10).ToString(); ushort[] csl2 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(34.ToString()), numberOfPoints); strCsl2 = csl2[0].ToString(); ushort[] sw2 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(33.ToString()), numberOfPoints); strSw2 = (float.Parse(sw2[0].ToString()) / 10).ToString(); ushort[] csl3 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(36.ToString()), numberOfPoints); strCsl3 = csl3[0].ToString(); ushort[] sw3 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(35.ToString()), numberOfPoints); strSw3 = (float.Parse(sw3[0].ToString()) / 10).ToString(); ushort[] csl4 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(38.ToString()), numberOfPoints); strCsl4 = csl4[0].ToString(); ushort[] sw4 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(37.ToString()), numberOfPoints); strSw4 = (float.Parse(sw4[0].ToString()) / 10).ToString(); ushort[] csl5 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(40.ToString()), numberOfPoints); strCsl5 = csl5[0].ToString(); ushort[] sw5 = master.ReadHoldingRegisters(slaveAddress, ushort.Parse(39.ToString()), numberOfPoints); strSw5 = (float.Parse(sw5[0].ToString()) / 10).ToString(); bool[] sjjg = master.ReadCoils(slaveAddress, ushort.Parse(77.ToString()), numberOfPoints); SJJG = sjjg[0].ToString(); /////////////////// /// // 3. 读取从站设备的寄存器 ushort startAddress = 0; // 寄存器起始地址 ushort numRegisters = 10; // 读取 10 个寄存器 try { // 读取保持寄存器(从站地址为 1) ushort[] registers = master.ReadHoldingRegisters(1, startAddress, numRegisters); // 输出结果 Console.WriteLine("读取到的寄存器值:"); foreach (var register in registers) { Console.WriteLine(register); stringBuilder.Append(register); } richTextBox1.Text = stringBuilder.ToString(); } catch (Exception ex) { Console.WriteLine($"读取错误: {ex.Message}"); } } catch (Exception ex) { //VisiblePanel(txtDQBarCode.EditValue.ToString(), ex.Message, "NG", Color.Yellow); //txtGWM.EditValue = ""; return; } } } }