using HslCommunication; using System.Linq; namespace DataBlockHelper.Entity.DB2107Entity { public class PressureEntity { byte[] bytes; public PressureEntity(byte[] bytes) { this.bytes = bytes; } public Pressure_HMI MainPress_V1 => new Pressure_HMI(12, bytes); public Pressure_HMI TopPressure_V1 => new Pressure_HMI(26, bytes); public Pressure_HMI LinePressure_V1 => new Pressure_HMI(40, bytes); public Pressure_HMI MainPress_V2 => new Pressure_HMI(54, bytes); public Pressure_HMI TopPressure_V2 => new Pressure_HMI(68, bytes); public Pressure_HMI LinePressure_V2 => new Pressure_HMI(82, bytes); public Pressure_HMI MainPress_V3 => new Pressure_HMI(96, bytes); public Pressure_HMI TopPressure_V3 => new Pressure_HMI(110, bytes); public Pressure_HMI LinePressure_V3 => new Pressure_HMI(124, bytes); public Pressure_HMI MainPress_V4 => new Pressure_HMI(138, bytes); public Pressure_HMI TopPressure_V4 => new Pressure_HMI(152, bytes); public Pressure_HMI LinePressure_V4 => new Pressure_HMI(166, bytes); public Pressure_HMI MainPress_V5 => new Pressure_HMI(180, bytes); public Pressure_HMI TopPressure_V5 => new Pressure_HMI(194, bytes); public Pressure_HMI LinePressure_V5 => new Pressure_HMI(208, bytes); public Pressure_HMI PressDaybin_B1 => new Pressure_HMI(222, bytes); public Pressure_HMI PressDaybin_B2 => new Pressure_HMI(236, bytes); public Pressure_HMI PressDaybin_B3 => new Pressure_HMI(250, bytes); public Pressure_HMI PressDaybin_B4 => new Pressure_HMI(264, bytes); public Pressure_HMI PressDaybin_B5 => new Pressure_HMI(278, bytes); public Pressure_HMI PressDaybin_B6 => new Pressure_HMI(292, bytes); public Pressure_HMI PressDaybin_B7 => new Pressure_HMI(306, bytes); public Pressure_HMI PressDaybin_B8 => new Pressure_HMI(320, bytes); public Pressure_HMI PressDaybin_B9 => new Pressure_HMI(334, bytes); public Pressure_HMI PressDaybin_B10 => new Pressure_HMI(348, bytes); public Pressure_HMI PressDaybin_B11 => new Pressure_HMI(362, bytes); public Pressure_HMI PressDaybin_B12 => new Pressure_HMI(376, bytes); public Pressure_HMI PR2PCP01 => new Pressure_HMI(390, bytes); public Pressure_HMI PR2PCP02 => new Pressure_HMI(404, bytes); public Pressure_HMI PR2PCP03 => new Pressure_HMI(418, bytes); } public class Pressure_HMI { public Pressure_HMI(ushort startSet, byte[] bytes) { //OperateResult read = PlcConnect.Instance.Read("DB2107." + startSet + ".0", 14); var content = bytes.Skip(startSet).Take(14).ToArray(); ActualValue = PlcConnect.Instance.ByteTransform.TransSingle(content, 0); LowLimit = PlcConnect.Instance.ByteTransform.TransSingle(content, 4); HighLimit = PlcConnect.Instance.ByteTransform.TransSingle(content, 8); var operateResult = PlcConnect.Instance.ReadFloat("Db2107.20.0"); byte byt = content[12]; Alarm = byt.GetBit(0); } public void Pressure_HMINew(ushort startSet, byte[] bytes) { //OperateResult read = PlcConnect.Instance.Read("DB2107." + startSet + ".0", 14); var content = bytes.Skip(startSet).Take(14).ToArray(); ActualValue = PlcConnect.Instance.ByteTransform.TransSingle(content, 0); LowLimit = PlcConnect.Instance.ByteTransform.TransSingle(content, 4); HighLimit = PlcConnect.Instance.ByteTransform.TransSingle(content, 8); } public float ActualValue { get; private set; } public float LowLimit { get; private set; } public float HighLimit { get; private set; } public bool Alarm { get; private set; } } }