using HybirdFrameworkDriver.ModbusTcpMaster; using log4net; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using Service.Cloud.Msg.Cloud.Req; using Service.Init.Entity; using Service.Plc; using Service.Plc.Client; namespace Service.Execute.Api; public class PlcApi { private const int TimeSpan = 60; private static readonly ILog Log = LogManager.GetLogger(typeof(PlcApi)); /// /// PLC是否连接 /// public static bool con; /// /// 数据有效时间。单位秒 /// static int DataTimeSeconds = 2; /// /// 数据刷新时间 /// public static DateTime DataValidityTime = DateTime.Now; /// /// 是否远程模式 /// /// public static bool IsRemote() { return PlcMgr.IsRemote(); } public static bool IsAuto() { return PlcMgr.IsAuto(); } /// /// 入口雷达检测 /// /// public static bool EntranceRadar() { return PlcMgr.EntranceRadar(); } /// /// 出口雷达检测 /// /// public static bool ExitRadar() { return PlcMgr.ExitRadar(); } /// /// 写入口灯 /// 红灯:1020 /// 绿灯:1000 /// /// /// public static bool WriteEntranceLamp(int data) { return PlcMgr.WriteEntranceLamp((byte)data); } /// /// 写出口灯 /// 红灯:1020 /// 绿灯:1000 /// /// /// public static bool WriteExistLamp(int data) { return PlcMgr.WriteExistLamp(data); } /// /// 下发选包 /// /// 入仓位,仓位号 /// 出仓位,仓位号 /// public static bool DistributeSelectPack(string inBinNo, string outBinNo) { return PlcMgr.DistributeBinNo(inBinNo, outBinNo); } /// /// 下发启动换电 /// /// public static bool StartSwapping(string inBinNo, string outBinNo) { return PlcMgr.DistributeTask(ushort.Parse(inBinNo), ushort.Parse(outBinNo), 1); } /// /// 读取任务状态 /// /// public static bool ReadTaskStatus(ushort taskNo) { return PlcMgr.ReadTaskStatus(taskNo); } /// /// plc上使能 /// /// public static bool HoldOn() { return PlcMgr.HoldOn(); } /// /// 查看拍照状态 /// /// public static ushort ChannelStatus() { PlcMgr.ResetPlc(); var channelStatus = PlcMgr.ChannelStatus(); Log.Info($"plc ChannelStatus = {channelStatus}"); return channelStatus; } /// /// 读plc任务状态 /// /// 6未连接 public static int ReadPlcTaskStatus() { return PlcMgr.ReadPlcTaskStatus(); } }