You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

214 lines
5.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using log4net;
using Service.Plc.Client;
namespace Service.Execute.Api;
public class PlcApi
{
private const int TimeSpan = 60;
private static readonly ILog Log = LogManager.GetLogger("PlcApi");
/// <summary>
/// 数据有效时间。单位秒
/// </summary>
static int DataTimeSeconds = 2;
/// <summary>
/// 是否远程模式
/// </summary>
/// <returns></returns>
public static bool IsRemote()
{
var isRemote = PlcMgr.IsRemote();
Log.Info($"PlcApi IsRemove resp={isRemote}");
return isRemote;
}
public static bool IsAuto()
{
var isAuto = PlcMgr.IsAuto();
Log.Info($"PlcApi IsRemove resp={isAuto}");
return isAuto;
}
/// <summary>
/// 入口雷达检测
/// </summary>
/// <returns></returns>
public static bool EntranceRadar()
{
var entranceRadar = PlcMgr.EntranceRadar();
Log.Info($"PlcApi EntranceRadar resp={entranceRadar}");
return entranceRadar;
}
/// <summary>
/// 出口雷达检测
/// </summary>
/// <returns></returns>
public static bool ExitRadar()
{
var exitRadar = PlcMgr.ExitRadar();
Log.Info($"PlcApi ExitRadar resp={exitRadar}");
return exitRadar;
}
/// <summary>
/// 写入口灯
/// 红灯1020
/// 绿灯1000
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static bool WriteEntranceLamp(ushort data)
{
Log.Info($"PlcApi writeEntranceLamp start data={data}");
var writeEntranceLamp = PlcMgr.WriteEntranceLamp(data);
Log.Info($"PlcApi writeEntranceLamp resp={writeEntranceLamp}");
return writeEntranceLamp;
}
/// <summary>
/// 写出口灯
/// 红灯1020
/// 绿灯1000
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static bool WriteExistLamp(ushort data)
{
Log.Info($"PlcApi WriteExistLamp start data={data}");
var writeExistLamp = PlcMgr.WriteExistLamp(data);
Log.Info($"PlcApi WriteExistLamp resp={writeExistLamp}");
return writeExistLamp;
}
/// <summary>
/// 下发选包
/// </summary>
/// <param name="inBinNo">入仓位,仓位号</param>
/// <param name="outBinNo">出仓位,仓位号</param>
/// <returns></returns>
public static bool DistributeSelectPack(string inBinNo, string outBinNo)
{
Log.Info($"PlcApi DistributeSelectPack start inBinNo={inBinNo} outBinNo={outBinNo}");
return PlcMgr.DistributeBinNo(inBinNo, outBinNo);
}
/// <summary>
/// 下发启动换电
/// </summary>
/// <returns></returns>
public static bool StartSwapping(string inBinNo, string outBinNo)
{
Log.Info($"PlcApi StartSwapping param= inBinNo={inBinNo}, outBinNo={outBinNo}");
var distributeTask = PlcMgr.DistributeTask(ushort.Parse(inBinNo), ushort.Parse(outBinNo), 1);
Log.Info($"PlcApi StartSwapping resp={distributeTask}");
return distributeTask;
}
/// <summary>
/// 读取任务状态
/// </summary>
/// <returns></returns>
public static bool ReadTaskStatus(ushort taskNo)
{
PlcMgr.ResetPlc();
Log.Info($"PlcApi ReadTaskStatus param= taskNo={taskNo}");
var readTaskStatus = PlcMgr.ReadTaskStatus(taskNo);
Log.Info($"PlcApi ReadTaskStatus resp={readTaskStatus}");
return readTaskStatus;
}
/// <summary>
/// plc上使能 1换电2移仓3消防
/// </summary>
/// <returns></returns>
public static bool HoldOn(int taskType)
{
Log.Info($"PlcApi start HoldOn ");
var holdOn = PlcMgr.HoldOn(taskType);
Log.Info($"PlcApi HoldOn resp={holdOn}");
return holdOn;
}
/// <summary>
/// 查看拍照状态
/// </summary>
/// <returns></returns>
public static ushort ChannelStatus()
{
Log.Info($"PlcApi start ChannelStatus ");
PlcMgr.ResetPlc();
var channelStatus = PlcMgr.ChannelStatus();
Log.Info($"PlcApi ChannelStatus resp= {channelStatus}");
return channelStatus;
}
/// <summary>
/// 换电过程状态
/// 0无效值
/// 1000准备中Not Ready
/// 1001待机中Ready
/// 1002电池拆卸中
/// 1003电池入库搬运中
/// 1004电池出库搬运中
/// 1005电池安装中
/// 1006电池安装完成
/// 1007航车回归至安全位置
/// 1008: 缓存-放仓位, 移仓状态
/// </summary>
public static int ReadSwapStatus()
{
PlcMgr.ResetPlc();
Log.Info($"PlcApi start ReadSwapStatus ");
var readPlcTaskStatus = PlcMgr.ReadSwapStatus();
Log.Info($"PlcApi ReadSwapStatus resp= {readPlcTaskStatus}");
return readPlcTaskStatus;
}
/// <summary>
/// 消防任务状态
/// 0等待消防任务
/// 1000消防任务 执行中
/// 1001消防任务 正常完成
/// 1009消防任务 出现异常
/// </summary>
public static int ReadFireStatus()
{
PlcMgr.ResetPlc();
Log.Info($"PlcApi start ReadFireStatus ");
var readPlcTaskStatus = PlcMgr.ReadFireStatus();
Log.Info($"PlcApi ReadFireStatus resp= {readPlcTaskStatus}");
return readPlcTaskStatus;
}
/// <summary>
/// 移仓状态
/// 0等待移仓任务
/// 1001移仓任务 执行中
/// 1002移仓任务 正常完成
/// 1009移仓任务 出现异常
/// </summary>
public static int ReadMoveStatus()
{
PlcMgr.ResetPlc();
Log.Info($"PlcApi start ReadMoveStatus ");
var readPlcTaskStatus = PlcMgr.ReadMoveStatus();
Log.Info($"PlcApi ReadMoveStatus resp= {readPlcTaskStatus}");
return readPlcTaskStatus;
}
}