using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataBlockHelper.Entity.DB2105Entity { public class PlanEntity { public PlanEntity(byte[] content) { RecipeCode = PlcConnect.Instance.ByteTransform.TransInt16(content, 0); PlanCode = PlcConnect.Instance.ByteTransform.TransInt16(content, 2); Batch = PlcConnect.Instance.ByteTransform.TransInt16(content, 4); Start = PlcConnect.Instance.ByteTransform.TransInt16(content, 6); Pause = PlcConnect.Instance.ByteTransform.TransInt16(content, 8); Stop = PlcConnect.Instance.ByteTransform.TransInt16(content, 10); } public int RecipeCode { get; private set; } public int PlanCode { get; private set; } public int Batch { get; private set; } public int Start { get; private set; } public int Pause { get; private set; } public int Stop { get; private set; } } public class PlanArrayManager { private int Length; private int StartSet; private int SLength; public PlanArrayManager(ushort length, int startSet, int sLength) { Length = length; StartSet = startSet; SLength = sLength; } public List GetList() { List ListE = new List(Length); var getListE = PlcConnect.Instance.Read("DB2105." + StartSet + ".0", Convert.ToUInt16(Length * SLength)); var content = getListE.Content; for (int i = 0; i < Length; i++) { var singleBlock = content.Skip(SLength * i).Take(SLength).ToArray(); ListE.Add(new PlanEntity(singleBlock)); } return ListE; } } }