public void ConnectServer( ) { MelsecMcNet client = new MelsecMcNet( ); #region Connect1 // client为设备的连接对象,简单的启动连接 client.ConnectServer( ); #endregion #region Connect2 // client为设备的连接对象,如果想知道是否连接成功 OperateResult connect = client.ConnectServer( ); if (connect.IsSuccess) { Console.WriteLine("connect success"); } else { // do something Console.WriteLine("connect failed"); } #endregion }
public void ConnectServer2( ) { MelsecMcNet client = new MelsecMcNet( ); AlienSession session = new AlienSession( ); #region AlienConnect1 // session对象由 NetworkAlienClient 类创建 client.ConnectServer(session); #endregion #region AlienConnect2 // session对象由 NetworkAlienClient 类创建 OperateResult connect = client.ConnectServer(session); if (connect.IsSuccess) { Console.WriteLine("connect success"); } else { // do something Console.WriteLine("connect failed"); } #endregion }
/// <summary> /// 连接 /// </summary> /// <returns></returns> public bool Connect() { if (string.IsNullOrEmpty(_ip)) { return(false); } if (melseNet != null) { try { melseNet.ConnectClose(); melseNet.Dispose(); } catch (Exception err) { if (OnError != null) { OnError(this, new IOErrorEventArgs(this.ID, err.Message)); } } } melseNet = new MelsecMcNet(); melseNet.IpAddress = _ip; melseNet.Port = _port; melseNet.ReceiveTimeOut = _timeout; var result = melseNet.ConnectServer(); return(_connected = true); }
public void MelsecUnitTest( ) { MelsecMcNet plc = new MelsecMcNet("192.168.8.13", 6001); if (!plc.ConnectServer( ).IsSuccess) { Console.WriteLine("无法连接PLC,将跳过单元测试。等待网络正常时,再进行测试"); return; } // 开始单元测试 }
public void ConnectTimeOutExample( ) { MelsecMcNet client = new MelsecMcNet( ); #region ConnectTimeOutExample // 设置连接的超时时间,单位 毫秒 client.ConnectTimeOut = 1000; // 1秒没有连接上的时候就自动返回失败 client.ConnectServer( ); #endregion }
private void Connect() { // specify plc ip address and port melsec_net = new MelsecMcNet(txtIP.Text, Decimal.ToInt32(nudPort.Value)); OperateResult connect = melsec_net.ConnectServer(); if (connect.IsSuccess) { // success lblStatus.Text = "Connected"; } else { // failed lblStatus.Text = "DisConnected"; } }
private void button1_Click(object sender, EventArgs e) { for (int i = 0; i <= 9999; i++) { melsec_net = new MelsecMcNet(txtIP.Text, i); OperateResult connect = melsec_net.ConnectServer(); if (connect.IsSuccess) { // success lblStatus.Text = "Connected" + i.ToString(); } else { // failed lblStatus.Text = "Offline"; } } }
private void BtnConnect_Click(object sender, EventArgs e) { if (!System.Net.IPAddress.TryParse(TxtIPPLC.Text, out System.Net.IPAddress address)) { MessageBox.Show("Wrong IP Address"); return; } melsec_net.IpAddress = TxtIPPLC.Text; if (!int.TryParse(TxtPortPLC.Text, out int port)) { MessageBox.Show("Port PLC Wrong"); return; } melsec_net.Port = port; melsec_net.ReceiveTimeOut = 1000; melsec_net.ConnectTimeOut = 1000; melsec_net.ConnectClose(); try { OperateResult connect = melsec_net.ConnectServer(); if (connect.IsSuccess) { MessageBox.Show("ConnectedSuccess"); TxtIPPLC.Enabled = false; TxtPortPLC.Enabled = false; BtnConnect.Enabled = false; BtnDisconnect.Enabled = true; StartReading(); } else { MessageBox.Show("Connected Failed"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void Connect() { if (ConnectStatus) { return; } var rs = _deviceApi.ConnectServer(); if (rs.IsSuccess) { Logger.Main.Info($"[{_serviceName}]重新连接设备成功: {_ipAddress}:{_port}"); // ConnectStatus = true; } else { Logger.Main.Info($"[{_serviceName}]重新连接设备失败: {_ipAddress}:{_port}"); } }
private void button1_Click(object sender, EventArgs e) { // 连接 if (!System.Net.IPAddress.TryParse(textBox1.Text, out System.Net.IPAddress address)) { MessageBox.Show(DemoUtils.IpAddressInputWrong); return; } melsec_net.IpAddress = textBox1.Text; if (!int.TryParse(textBox2.Text, out int port)) { MessageBox.Show(DemoUtils.PortInputWrong); return; } melsec_net.Port = port; melsec_net.ConnectClose( ); try { OperateResult connect = melsec_net.ConnectServer( ); if (connect.IsSuccess) { MessageBox.Show(Communication.StringResources.Language.ConnectedSuccess); button2.Enabled = true; button1.Enabled = false; panel2.Enabled = true; userControlCurve1.ReadWriteNet = melsec_net; } else { MessageBox.Show(Communication.StringResources.Language.ConnectedFailed); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public static void Initialize() { FX5uOut = new bool[32]; FX5uIn = new bool[32]; melsec_net = new MelsecMcNet("192.168.3.250", 3000); //melsec_net = new MelsecMcNet("192.168.3.250", 3000); melsec_net.ConnectTimeOut = 2000; melsec_net.ReceiveTimeOut = 100; OperateResult connect = melsec_net.ConnectServer(); if (connect.IsSuccess) { Connect = true; Console.WriteLine("连接成功"); } else { Connect = false; Console.WriteLine("连接失败"); } }
public Fx5u(string ip, int port) { IP = ip; melsec_net = new MelsecMcNet(ip, port); melsec_net.ConnectTimeOut = 2000; melsec_net.ReceiveTimeOut = 200; OperateResult connect = melsec_net.ConnectServer(); FX5UOUT = new bool[64]; if (connect.IsSuccess) { _Connect = true; Console.WriteLine("连接成功"); } else { _Connect = false; Console.WriteLine("连接失败"); } }
private void button1_Click(object sender, EventArgs e) { // 连接 if (!System.Net.IPAddress.TryParse(textBox1.Text, out System.Net.IPAddress address)) { MessageBox.Show("Ip地址输入不正确!"); return; } melsec_net.IpAddress = textBox1.Text; if (!int.TryParse(textBox2.Text, out int port)) { MessageBox.Show("端口输入格式不正确!"); return; } melsec_net.Port = port; melsec_net.ConnectClose( ); try { OperateResult connect = melsec_net.ConnectServer( ); if (connect.IsSuccess) { MessageBox.Show("连接成功!"); button2.Enabled = true; button1.Enabled = false; panel2.Enabled = true; } else { MessageBox.Show("连接失败!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
//MelsecPLC初始化 void DoInitMelsecPlc(LD.Config.PlcTypeItem item) { MelsecMcNet MelsecPlc = new MelsecMcNet(item.IP, item.Port); MelsecPlc.ConnectTimeOut = item.ConnectOutTime; item.Tag = MelsecPlc; if (MelsecPlc != null) { MelsecPlc.ConnectClose(); } OperateResult connect = MelsecPlc.ConnectServer(); if (connect.IsSuccess) { item.IsConnected = true; } else { item.IsConnected = false; } }
protected override bool Connect() { try { var res = PLC.ConnectServer(); if (res.IsSuccess) { LOG.Info($"Connect to [{SourceName}] success."); } else { LOG.Warn($"Connect to [{SourceName}] failed."); } return(Connected); } catch (Exception ex) { LOG.Error($"Connect to [{SourceName}] failed. Message [{ex.Message}]"); return(false); } }
public void ClassTest2( ) { #region Usage2 // 实例化对象,指定PLC的ip地址和端口号 MelsecMcNet melsecMc = new MelsecMcNet("192.168.1.110", 6000); // 连接对象 OperateResult connect = melsecMc.ConnectServer( ); if (!connect.IsSuccess) { Console.WriteLine("connect failed:" + connect.Message); return; } // 举例读取D100的值 short D100 = melsecMc.ReadInt16("D100").Content; melsecMc.ConnectClose( ); #endregion }
/// <summary> /// 打开通信接口 /// </summary> /// <param name="error"></param> /// <returns></returns> public override bool OpenPLC(out string error) { error = ""; try { OperateResult connect = Melsec_net.ConnectServer(); Melsec_net.ConnectTimeOut = 600; // 网络连接的超时时间 Melsec_net.ReceiveTimeOut = 1000; if (connect.IsSuccess) { return(true); } error = connect.ErrorCode.ToString() + connect.Message; Log.L_I.WriteError(NameClass + "Error", connect.ErrorCode.ToString() + connect.Message); return(false); } catch (Exception ex) { error = ex.Message; Log.L_I.WriteError(NameClass, ex); return(false); } }
public void MelsecUnitTest( ) { MelsecMcNet plc = new MelsecMcNet("192.168.8.13", 6001); if (!plc.ConnectServer( ).IsSuccess) { Console.WriteLine("无法连接PLC,将跳过单元测试。等待网络正常时,再进行测试"); return; } // 开始单元测试,从bool类型开始测试 string address = "M200"; bool[] boolTmp = new bool[] { true, true, false, true, false, true, false }; Assert.IsTrue(plc.Write(address, true).IsSuccess); Assert.IsTrue(plc.ReadBool(address).Content == true); Assert.IsTrue(plc.Write(address, boolTmp).IsSuccess); bool[] readBool = plc.ReadBool(address, (ushort)boolTmp.Length).Content; for (int i = 0; i < boolTmp.Length; i++) { Assert.IsTrue(readBool[i] == boolTmp[i]); } address = "D300"; // short类型 Assert.IsTrue(plc.Write(address, (short)12345).IsSuccess); Assert.IsTrue(plc.ReadInt16(address).Content == 12345); short[] shortTmp = new short[] { 123, 423, -124, 5313, 2361 }; Assert.IsTrue(plc.Write(address, shortTmp).IsSuccess); short[] readShort = plc.ReadInt16(address, (ushort)shortTmp.Length).Content; for (int i = 0; i < readShort.Length; i++) { Assert.IsTrue(readShort[i] == shortTmp[i]); } // ushort类型 Assert.IsTrue(plc.Write(address, (ushort)51234).IsSuccess); Assert.IsTrue(plc.ReadUInt16(address).Content == 51234); ushort[] ushortTmp = new ushort[] { 5, 231, 12354, 5313, 12352 }; Assert.IsTrue(plc.Write(address, ushortTmp).IsSuccess); ushort[] readUShort = plc.ReadUInt16(address, (ushort)ushortTmp.Length).Content; for (int i = 0; i < ushortTmp.Length; i++) { Assert.IsTrue(readUShort[i] == ushortTmp[i]); } // int类型 Assert.IsTrue(plc.Write(address, 12342323).IsSuccess); Assert.IsTrue(plc.ReadInt32(address).Content == 12342323); int[] intTmp = new int[] { 123812512, 123534, 976124, -1286742 }; Assert.IsTrue(plc.Write(address, intTmp).IsSuccess); int[] readint = plc.ReadInt32(address, (ushort)intTmp.Length).Content; for (int i = 0; i < intTmp.Length; i++) { Assert.IsTrue(readint[i] == intTmp[i]); } // uint类型 Assert.IsTrue(plc.Write(address, (uint)416123237).IsSuccess); Assert.IsTrue(plc.ReadUInt32(address).Content == (uint)416123237); uint[] uintTmp = new uint[] { 81623123, 91712749, 91273123, 123, 21242, 5324 }; Assert.IsTrue(plc.Write(address, uintTmp).IsSuccess); uint[] readuint = plc.ReadUInt32(address, (ushort)uintTmp.Length).Content; for (int i = 0; i < uintTmp.Length; i++) { Assert.IsTrue(readuint[i] == uintTmp[i]); } // float类型 Assert.IsTrue(plc.Write(address, 123.45f).IsSuccess); Assert.IsTrue(plc.ReadFloat(address).Content == 123.45f); float[] floatTmp = new float[] { 123, 5343, 1.45f, 563.3f, 586.2f }; Assert.IsTrue(plc.Write(address, floatTmp).IsSuccess); float[] readFloat = plc.ReadFloat(address, (ushort)floatTmp.Length).Content; for (int i = 0; i < readFloat.Length; i++) { Assert.IsTrue(floatTmp[i] == readFloat[i]); } // double类型 Assert.IsTrue(plc.Write(address, 1234.5434d).IsSuccess); Assert.IsTrue(plc.ReadDouble(address).Content == 1234.5434d); double[] doubleTmp = new double[] { 1.4213d, 1223d, 452.5342d, 231.3443d }; Assert.IsTrue(plc.Write(address, doubleTmp).IsSuccess); double[] readDouble = plc.ReadDouble(address, (ushort)doubleTmp.Length).Content; for (int i = 0; i < doubleTmp.Length; i++) { Assert.IsTrue(readDouble[i] == doubleTmp[i]); } // long类型 Assert.IsTrue(plc.Write(address, 123617231235123L).IsSuccess); Assert.IsTrue(plc.ReadInt64(address).Content == 123617231235123L); long[] longTmp = new long[] { 12312313123L, 1234L, 412323812368L, 1237182361238123 }; Assert.IsTrue(plc.Write(address, longTmp).IsSuccess); long[] readLong = plc.ReadInt64(address, (ushort)longTmp.Length).Content; for (int i = 0; i < longTmp.Length; i++) { Assert.IsTrue(readLong[i] == longTmp[i]); } // ulong类型 Assert.IsTrue(plc.Write(address, 1283823681236123UL).IsSuccess); Assert.IsTrue(plc.ReadUInt64(address).Content == 1283823681236123UL); ulong[] ulongTmp = new ulong[] { 21316UL, 1231239127323UL, 1238612361283123UL }; Assert.IsTrue(plc.Write(address, ulongTmp).IsSuccess); ulong[] readULong = plc.ReadUInt64(address, (ushort)ulongTmp.Length).Content; for (int i = 0; i < readULong.Length; i++) { Assert.IsTrue(readULong[i] == ulongTmp[i]); } // string类型 Assert.IsTrue(plc.Write(address, "123123").IsSuccess); Assert.IsTrue(plc.ReadString(address, 3).Content == "123123"); // byte类型 byte[] byteTmp = new byte[] { 0x4F, 0x12, 0x72, 0xA7, 0x54, 0xB8 }; Assert.IsTrue(plc.Write(address, byteTmp).IsSuccess); Assert.IsTrue(SoftBasic.IsTwoBytesEquel(plc.Read(address, 3).Content, byteTmp)); plc.ConnectClose( ); }