|
|
|
@ -1,16 +1,17 @@
|
|
|
|
|
using System;
|
|
|
|
|
using HighWayIot.Log4net;
|
|
|
|
|
using HslCommunication;
|
|
|
|
|
using HslCommunication.LogNet;
|
|
|
|
|
using HslCommunication.Profinet.AllenBradley;
|
|
|
|
|
using HslCommunication.Profinet.Melsec;
|
|
|
|
|
|
|
|
|
|
namespace HighWayIot.Plc
|
|
|
|
|
{ public class PlcConnect
|
|
|
|
|
{
|
|
|
|
|
private static LogHelper logNet = LogHelper.Instance;
|
|
|
|
|
private static readonly Lazy<MelsecMcNet> lazy = new Lazy<MelsecMcNet>(() => new PlcConnect().CreateAb());
|
|
|
|
|
public static MelsecMcNet Instance => lazy.Value;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 静态懒加载
|
|
|
|
|
/// </summary>
|
|
|
|
|
private static readonly MelsecMcNet Instance = new PlcConnect().CreateAb();
|
|
|
|
|
|
|
|
|
|
private PlcConnect()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
@ -29,7 +30,7 @@ namespace HighWayIot.Plc
|
|
|
|
|
string Ip = "";
|
|
|
|
|
MelsecMcNet plc = new MelsecMcNet();
|
|
|
|
|
|
|
|
|
|
plc.CommunicationPipe = new HslCommunication.Core.Pipe.PipeTcpNet(Ip, 44818)
|
|
|
|
|
plc.CommunicationPipe = new HslCommunication.Core.Pipe.PipeTcpNet(Ip, 0)
|
|
|
|
|
{
|
|
|
|
|
ConnectTimeOut = 1000, // 连接超时时间,单位毫秒
|
|
|
|
|
SleepTime = 0,
|
|
|
|
@ -66,14 +67,16 @@ namespace HighWayIot.Plc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 写入数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="address">地址</param>
|
|
|
|
|
/// <param name="value">值</param>
|
|
|
|
|
/// <param name="type">数据类型</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static OperateResult Write(string address, object value, DataTypeEnum type)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 写入数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="address">地址</param>
|
|
|
|
|
/// <param name="value">值</param>
|
|
|
|
|
/// <param name="type">数据类型</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static OperateResult Write(string address, object value, DataTypeEnum type)
|
|
|
|
|
{
|
|
|
|
|
var result = new OperateResult() { IsSuccess = false };
|
|
|
|
|
switch (type)
|
|
|
|
@ -111,7 +114,7 @@ namespace HighWayIot.Plc
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
logNet.Info($"write 地址[{address}] value:[{value.ToString()}] type:[{type.ToString()}] result:[{result.IsSuccess}]");
|
|
|
|
|
logNet.Info($"write 地址[{address}] value:[{value}] type:[{type.ToString()}] result:[{result.IsSuccess}]");
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|