using HighWayIot.Log4net;
using HighWayIot.Plc.PlcEntity;
using HslCommunication;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Plc.PlcHelper
{
///
/// PLC工位识别工位读取
///
public class WorkStationHelper
{
///
/// RFID10小车工位识别点位写入
///
///
///
public bool WriteStationSingal(int rgvStationNo, int deviceNo)
{
int point = 0x600;
//选择是哪个小车
point += (deviceNo - 1) * 32;
//选择是小车的哪个点位
point += rgvStationNo - 1;
//Stopwatch sw = new Stopwatch();
//sw.Start();
bool result = PlcConnect.PlcWrite2($"B{point.ToString("X")}", true, DataTypeEnum.Bool).IsSuccess;
//sw.Stop();
//if (result)
//{
// LogHelper.Instance.Info($"B{point.ToString("X")} 点置True 点写入耗时[{sw.ElapsedMilliseconds}]");
//}
return result;
}
///
/// RFID固定工位识别点位读取
///
public bool[] ReadStationSingal()
{
bool[] result = new bool[17];
//Stopwatch sw = new Stopwatch();
//sw.Start();
OperateResult PlcResult = PlcConnect.ReadByte2("B230", 2);
//sw.Stop();
//LogHelper.Instance.Info($"工位识别 字段读取耗时[{sw.ElapsedMilliseconds}]");
byte[] data = PlcResult.Content;
if (PlcResult.IsSuccess == true)
{
for (int i = 0; i < 17; i++)
{
int dataCount = i / 8;
int indexCount = i % 8;
result[i] = data[dataCount].GetBoolByIndex(indexCount);
}
}
return result;
}
}
}