using HighWayIot.Log4net; using HighWayIot.Plc; using HighWayIot.Plc.PlcHelper; using HighWayIot.Rfid; using HighWayIot.TouchSocket; using HighWayIot.Winform.Business; using HighWayIot.Winform.Properties; using HslCommunication; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Net; using System.Runtime.InteropServices; using System.Threading.Tasks; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace HighWayIot.Winform.UserControlPages { public partial class TestPage : UserControl { private static LogHelper logger = LogHelper.Instance; /// /// TCP客户端 /// private TouchSocketTcpClient _touchSocketTcpClient = TouchSocketTcpClient.Instance; /// /// RFID数据分析 /// private RfidDataAnalyse _RfidDataAnalyse = new RfidDataAnalyse(); XmlUtil xmlUtil = new XmlUtil(); public TestPage() { InitializeComponent(); Init(); } private void Init() { ArrayList list = new ArrayList(); foreach (var kv in GeneralUtils.GetEnumKeyValuePairs().ToDictionary(i => i.Key, i => i.Value)) { list.Add(kv); } PlcType.DataSource = list; PlcType.DisplayMember = "Key"; PlcType.ValueMember = "Value"; //PlcType.DataSource = //PlcType.DataSource = ; } /// /// 测试按钮1 /// /// /// private void button1_Click(object sender, EventArgs e) { OperateResult PlcResult = PlcConnect.MelsecInstance2.Read("B230", 2); if (PlcResult.IsSuccess) { byte[] bytes = PlcResult.Content; Console.WriteLine("长度" + bytes.Length.ToString()); } else { Console.WriteLine("读取失败"); } WorkStationHelper helper = new WorkStationHelper(); bool[] res = helper.ReadStationSingal(); foreach(var r in res) { Console.WriteLine(r.ToString()); } //var list = xmlUtil.ConfigReader(); //foreach (var item in list) //{ // Console.WriteLine(item.RoleIndex + item.PageName); //} } /// /// RFID测试 /// /// /// private async void button2_Click(object sender, EventArgs e) { var a = await _touchSocketTcpClient.Send($"10.20.48.{RFIDtext.Text}", _RfidDataAnalyse.Send02H(1000)); LogHelper.Instance.Info($"10.20.48.{RFIDtext.Text} 发送" + (a ? "成功" : "失败")); } /// /// 测试按钮3 /// /// /// private async void button3_Click(object sender, EventArgs e) { } /// /// PLC读取按钮 /// /// /// private void ReadButton_Click(object sender, EventArgs e) { DataTypeEnum en = (DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue); string res = string.Empty; switch (en) { case DataTypeEnum.Bool: res = PlcConnect.ReadBool1(PlcAddress.Text).ToString(); break; case DataTypeEnum.Int16: res = PlcConnect.ReadInt161(PlcAddress.Text).ToString(); break; case DataTypeEnum.UInt16: res = PlcConnect.ReadUInt161(PlcAddress.Text).ToString(); break; case DataTypeEnum.Int32: res = PlcConnect.ReadInt321(PlcAddress.Text).ToString(); break; case DataTypeEnum.UInt32: res = PlcConnect.ReadUInt321(PlcAddress.Text).ToString(); break; case DataTypeEnum.Int64: res = PlcConnect.ReadInt641(PlcAddress.Text).ToString(); break; case DataTypeEnum.UInt64: res = PlcConnect.ReadUInt641(PlcAddress.Text).ToString(); break; case DataTypeEnum.Float: res = PlcConnect.ReadFloat1(PlcAddress.Text).ToString(); break; case DataTypeEnum.Double: res = PlcConnect.ReadDouble1(PlcAddress.Text).ToString(); break; case DataTypeEnum.String: res = PlcConnect.ReadString1(PlcAddress.Text, (ushort)(GeneralUtils.StringNullOrToInt(LengthTextBox.Text) ?? 0)).ToString(); break; default: res = "不对劲儿奥"; break; } PlcShowValue.Text = res; } /// /// PLC写入按钮 /// /// /// private void WriteButton_Click(object sender, EventArgs e) { if ((DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue) != DataTypeEnum.String) { if (!decimal.TryParse(PlcValue.Text, out decimal value)) { MessageBox.Show("类型转换错误!"); } var result = PlcConnect.PlcWrite1(PlcAddress.Text, value, (DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue)); bool r = result.IsSuccess; PlcShowValue.Text = r.ToString(); } else { string value = PlcValue.Text; var result = PlcConnect.PlcWrite1(PlcAddress.Text, value, (DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue)); bool r = result.IsSuccess; PlcShowValue.Text = r.ToString(); } } } }