Files
sy_hx_pbl_backend/Infrastructure/PLC/PLCTool.cs

93 lines
2.2 KiB
C#

using HslCommunication;
using HslCommunication.Profinet.Inovance;
using HslCommunication.Profinet.Siemens;
using Infrastructure;
using JinianNet.JNTemplate;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DOAN.Infrastructure.PLC
{
public class PLCTool
{
// private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public SiemensS7Net siemensTcpNet = null;
public PLCTool()
{
this.siemensTcpNet = new SiemensS7Net(SiemensPLCS.S200Smart, "192.168.2.1")
{
ConnectTimeOut = 5000
};
}
public bool ConnectPLC()
{
try
{
OperateResult connect = siemensTcpNet.ConnectServer();
if (connect.IsSuccess)
{
// 连接成功
Console.WriteLine("PLC连接成功");
return true;
}
else
{
// 连接失败,输出原因
Console.WriteLine("PLC连接失败:" + connect.Message);
throw new CustomException("connect failed:" + connect.Message);
}
}
catch (Exception e)
{
Console.WriteLine("PLC连接失败:" + e.Message);
return false;
}
}
/// <summary>
/// 写入bit
/// </summary>
/// <param name="addr"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool WriteBit(string addr, bool value)
{
OperateResult write = siemensTcpNet.Write(addr, value);
return write.IsSuccess;
}
/// <summary>
/// 读取bit
/// </summary>
/// <param name="addr"></param>
/// <returns></returns>
public bool ReadBit(string addr)
{
bool M100_7 = siemensTcpNet.ReadBool(addr).Content;
return M100_7;
}
public void ConnectClose()
{
siemensTcpNet.ConnectClose();
}
}
}