using Net462DllTest.Enums;
using Serein.Library;
using System;
namespace Net462DllTest.Model
{
///
/// PLC变量
///
[AutoRegister]
public class PlcVarModel
{
///
/// 车位号
///
[BindValue(PlcVarName.SpaceNum)]
public Int16 SpaceNum { get; set; }
///
/// 上位机指令
///
[BindValue(PlcVarName.CmdForPLC)]
public Int16 CmdForPLC { get; set; }
///
/// PLC当前存取车位号
///
[BindValue(PlcVarName.DoingSpaceNum)]
public Int16 DoingSpaceNum { get; set; }
///
/// 下位机状态
///
[BindValue(PlcVarName.PLCState)]
public Int16 PLCState { get; set; }
///
/// 门1正常待机车位号,存车完成地面车位0
///
[BindValue(PlcVarName.Door1CurSpaceNum)]
public Int16 Door1CurSpaceNum { get; set; }
///
/// 门2正常待机车位号,存车完成地面车位0
///
[BindValue(PlcVarName.Door2CurSpaceNum)]
public Int16 Door2CurSpaceNum { get; set; }
///
/// 下位机运行模式
///
[BindValue(PlcVarName.PLCRunMode)]
public Int16 PLCRunMode { get; set; }
///
/// 执行的门号
///
[BindValue(PlcVarName.DoorVar)]
public Int16 DoorVar { get; set; }
///
/// 门1是否开到位
///
[BindValue(PlcVarName.IsDoor1OpenDone)]
public bool IsDoor1OpenDone { get; set; }
///
/// 门1是否关到位
///
[BindValue(PlcVarName.IsDoor1ClosedDone)]
public bool IsDoor1ClosedDone { get; set; }
///
/// 门2是否开到位
///
[BindValue(PlcVarName.IsDoor2OpenDone)]
public bool IsDoor2OpenDone { get; set; }
///
/// 门2是否关到位
///
[BindValue(PlcVarName.IsDoor2ClosedDone)]
public bool IsDoor2ClosedDone { get; set; }
///
/// 通道1是否有车
///
[BindValue(PlcVarName.HasCarInTone1)]
public bool HasCarInTone1 { get; set; }
///
/// 通道2是否有车
///
[BindValue(PlcVarName.HasCarInTone2)]
public bool HasCarInTone2 { get; set; }
///
/// 下位机异常代码
///
[BindValue(PlcVarName.ErrorCode)]
public Int16 ErrorCode { get; set; }
///
/// 2层以上的空板是否在待机
///
[BindValue(PlcVarName.IsOver2FlowStanded)]
public bool IsOver2FlowStanded { get; set; }
///
/// 1号门指示灯
///
[BindValue(PlcVarName.Gate1Light)]
public bool Gate1Light { get; set; }
///
/// 2号门指示灯
///
[BindValue(PlcVarName.Gate2Light)]
public bool Gate2Light { get; set; }
}
///
/// 数据代理,防止View修改
///
[AutoRegister]
public class PlcVarModelDataProxy
{
private readonly PlcVarModel plcVarModel;
public PlcVarModelDataProxy(PlcVarModel plcVarModel)
{
this.plcVarModel = plcVarModel;
}
///
/// 车位号
///
public Int16 SpaceNum { get => plcVarModel.SpaceNum; }
///
/// 上位机指令
///
public Int16 CmdForPLC { get => plcVarModel.CmdForPLC; }
///
/// PLC当前存取车位号
///
public Int16 DoingSpaceNum { get => plcVarModel.DoingSpaceNum; }
///
/// 下位机状态
///
public Int16 PLCState { get => plcVarModel.PLCState; }
///
/// 门1正常待机车位号,存车完成地面车位0
///
public Int16 Door1CurSpaceNum { get => plcVarModel.Door1CurSpaceNum; }
///
/// 门2正常待机车位号,存车完成地面车位0
///
public Int16 Door2CurSpaceNum { get => plcVarModel.Door2CurSpaceNum; }
///
/// 下位机运行模式
///
public Int16 PLCRunMode { get => plcVarModel.PLCRunMode; }
///
/// 执行的门号
///
public Int16 DoorVar { get => plcVarModel.DoorVar; }
///
/// 门1是否开到位
///
public bool IsDoor1OpenDone { get => plcVarModel.IsDoor1OpenDone; }
///
/// 门1是否关到位
///
public bool IsDoor1ClosedDone { get => plcVarModel.IsDoor1ClosedDone; }
///
/// 门2是否开到位
///
public bool IsDoor2OpenDone { get => plcVarModel.IsDoor2OpenDone; }
///
/// 门2是否关到位
///
public bool IsDoor2ClosedDone { get => plcVarModel.IsDoor2ClosedDone; }
///
/// 通道1是否有车
///
public bool HasCarInTone1 { get => plcVarModel.HasCarInTone1; }
///
/// 通道2是否有车
///
public bool HasCarInTone2 { get => plcVarModel.HasCarInTone2; }
///
/// 下位机异常代码
///
public Int16 ErrorCode { get => plcVarModel.ErrorCode; }
///
/// 2层以上的空板是否在待机
///
public bool IsOver2FlowStanded { get => plcVarModel.IsOver2FlowStanded; }
///
/// 1号门指示灯
///
public bool Gate1Light { get => plcVarModel.Gate1Light; }
///
/// 2号门指示灯
///
public bool Gate2Light { get => plcVarModel.Gate2Light; }
}
}