|
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Collections.Concurrent;
- using BPA.Message;
- using BPASmartClient.Device;
- using BPASmartClient.Model;
-
- namespace BPASmartClient.MorkM
- {
- /// <summary>
- /// MORKS 设备数据
- /// </summary>
- public class GVL_MORKM : IStatus
- {
- public GVL_MORKM()
- {
- for (int i = 0; i < 6; i++)
- {
- CookNodelId.Add(new CookNodleLocAndId() { CookNodelId = "", Loc = -1 });
- }
- }
-
- /// <summary>
- /// 机器人取面
- /// PLC -> M0.3
- /// ModbusTcp -> 323
- /// </summary>
- public bool RobotTakeNoodle { get; set; }
-
- /// <summary>
- /// 机器人出餐
- /// PLC -> M0.4
- /// ModbusTcp -> 324
- /// </summary>
- public bool RobotOutMeal { get; set; }
-
- /// <summary>
- /// 移动转台
- /// PLC -> M0.5
- /// ModbusTcp -> 325
- /// </summary>
- public bool MoveTurntable { get; set; }
-
-
- #region 临时变量
- /// <summary>
- /// 允许运行
- /// </summary>
- [VariableMonitor("允许运行")]
- public bool AllowRun { get; set; }
-
- /// <summary>
- /// //机器人任务互锁信号
- /// </summary>
- [VariableMonitor("机器人任务互锁信号")]
- public bool RobotTaskInterlock { get; set; }
-
- /// <summary>
- /// 取碗互锁信号
- /// </summary>
- [VariableMonitor("取碗互锁信号")]
- public bool TakeBowlInterlock { get; set; }
-
- /// <summary>
- /// 取面互锁信号
- /// </summary>
- [VariableMonitor("取面互锁信号")]
- public bool TakeNoodleInterlock { get; set; }
-
- /// <summary>
- /// 出面中
- /// </summary>
- [VariableMonitor("出面中")]
- public bool OutNoodleing { get; set; }
-
- /// <summary>
- /// 允许取面
- /// </summary>
- [VariableMonitor("允许取面")]
- public bool AllowTakeNoodle { get; set; }
-
- /// <summary>
- /// 转台互锁信号
- /// </summary>
- [VariableMonitor("转台互锁信号")]
- public bool TurntableInterlock { get; set; }
-
- /// <summary>
- /// 荤素出餐互锁
- /// </summary>
- [VariableMonitor("荤素出餐互锁")]
- public bool ERLoc { get; set; } = false;
-
- /// <summary>
- /// 当前取餐位置
- /// </summary>
- [VariableMonitor("当前取餐位置")]
- public int CurrentTakeMeakLoc { get; set; } = -1;
- #endregion
-
-
- /// <summary>
- /// 初始化完成
- /// PLC -> M100.0
- /// ModbusTcp -> 1120
- /// </summary>
- [VariableMonitor("初始化完成", "M100.0", "1120")]
- public bool InitComplete { get; set; }
-
- /// <summary>
- /// 取碗机构空闲,True:忙碌,false:空闲
- /// PLC -> M100.1
- /// ModbusTcp -> 1121
- /// </summary>
- [VariableMonitor("取碗机构空闲", "M100.1", "1121")]
- public bool TakeBowlIdle { get; set; }
-
- /// <summary>
- /// 温度到达,True:表示到达,false:未到达
- /// PLC -> M100.2
- /// ModbusTcp -> 1122
- /// </summary>
- [VariableMonitor("温度到达", "M100.2", "1122")]
- public bool TemperatureReached { get; set; }
-
- /// <summary>
- /// 允许到面,配料完成
- /// PLC -> M100.3
- /// ModbusTcp -> 1123
- /// </summary>
- [VariableMonitor("允许到面", "M100.3", "1123")]
- public bool AllowFallNoodle { get; set; }
-
- /// <summary>
- /// 机器人取面完成
- /// PLC -> M100.4
- /// ModbusTcp -> 1124
- /// </summary>
- [VariableMonitor("机器人取面完成", "M100.4", "1124")]
- public bool RbTakeNoodleComplete { get; set; }
-
- /// <summary>
- /// 机器人倒面完成
- /// PLC -> M100.5
- /// ModbusTcp -> 1125
- /// </summary>
- [VariableMonitor("机器人倒面完成", "M100.5", "1125")]
- public bool RbFallNoodleComplete { get; set; }
-
- /// <summary>
- /// 机器人出餐完成,上报取餐完成
- /// PLC -> M100.6
- /// ModbusTcp -> 1126
- /// </summary>
- [VariableMonitor("机器人出餐完成", "M100.6", "1126")]
- public bool RbOutMealComplete { get; set; }
-
- /// <summary>
- /// 机器人空闲
- /// PLC -> M100.7
- /// ModbusTcp -> 1127
- /// </summary>
- [VariableMonitor("机器人空闲", "M100.7", "1127")]
- public bool RobotIdle { get; set; }
-
- /// <summary>
- /// 取餐口检测
- /// PLC -> M101.0
- /// ModbusTcp -> 1128
- /// </summary>
- [VariableMonitor("取餐口检测", "M101.0", "1128")]
- public bool TakeMealDetect { get; set; }
-
- /// <summary>
- /// 缺碗信号,false:缺碗,true:有碗
- /// PLC -> M101.1
- /// ModbusTcp -> 1129
- /// </summary>
- [VariableMonitor("缺碗信号", "M101.1", "1129")]
- public bool MissingBowl { get; set; }
-
- /// <summary>
- /// 设备初始化中,执行中等于1,2秒后复位
- /// PLC -> M101.2
- /// ModbusTcp -> 1130
- /// </summary>
- [VariableMonitor("设备初始化中", "M101.2", "1130")]
- public bool DeviceIniting { get; set; }
-
- /// <summary>
- /// 转台下限检测
- /// PLC -> M101.3
- /// ModbusTcp -> 1131
- /// </summary>
- [VariableMonitor("转台下限检测", "M101.3", "1131")]
- public bool TurntableLowerLimit { get; set; }
-
- /// <summary>
- /// 缺碗信号 2
- /// PLC -> M101.4
- /// ModbusTcp -> 1132
- /// </summary>
- [VariableMonitor("缺碗信号 2", "M101.4", "1132")]
- public bool MissingBowlSignal2 { get; set; }
-
- /// <summary>
- /// 转台上限检测
- /// PLC -> M101.5
- /// ModbusTcp -> 1133
- /// </summary>
- [VariableMonitor("转台上限检测", "M101.5", "1133")]
- public bool TurntableUpLimit { get; set; }
-
- /// <summary>
- /// 补料完成
- /// PLC -> M101.6
- /// ModbusTcp -> 1134
- /// </summary>
- [VariableMonitor("补料完成", "M101.6", "1134")]
- public bool FeedComplete { get; set; }
-
- /// <summary>
- /// 转台移动到位
- /// PLC -> M101.7
- /// ModbusTcp -> 1135
- /// </summary>
- [VariableMonitor("转台移动到位", "M101.7", "1135")]
- public bool TurntableMoveInPlace { get; set; }
-
- /// <summary>
- /// 煮面炉状态,True:忙碌,false:空闲
- /// M102.0 - M102.5
- /// 1136 - 1141
- /// </summary>
- [VariableMonitor("煮面炉状态", "M102.0", "1136")]
- public bool[] NoodleCookerStatus { get; set; } = new bool[6] { false, false, false, false, false, false };
-
- /// <summary>
- /// 补料中
- /// M102.6
- /// 1142
- /// </summary>
- [VariableMonitor("补料中", "M102.6", "1142")]
- public bool Feeding { get; set; }
-
- /// <summary>
- /// 煮面完成,上升后给信号
- /// M103.0 - M103.5
- /// 1144 - 1149
- /// </summary>
- [VariableMonitor("煮面完成", "M103.0", "1144")]
- public bool[] CookNoodlesComplete { get; set; } = new bool[6] { false, false, false, false, false, false };
-
- /// <summary>
- /// 硬件设备异常
- /// PLC -> M235.0
- /// True:设备正常,False:设备异常
- /// </summary>
- [VariableMonitor("硬件设备异常", "M235.0", "")]
- public bool Error { get; set; } = false;
-
- /// <summary>
- /// 配方编号
- /// PLC -> VW0
- /// ModbusTcp -> 100
- /// </summary>
- [VariableMonitor("配方编号", "VW0", "100")]
- public ushort RecipeNumber { get; set; }
-
- /// <summary>
- /// 转台设置位置
- /// PLC -> VW2
- /// ModbusTcp -> 101
- /// </summary>
- [VariableMonitor("转台设置位置", "VW2", "101")]
- public ushort TurntableLoc { get; set; }
-
- /// <summary>
- /// 到面至煮面炉位置
- /// PLC -> VW4
- /// ModbusTcp -> 102
- /// </summary>
- [VariableMonitor("到面至煮面炉位置", "VW4", "102")]
- public ushort FallNoodleLoc { get; set; }
-
- /// <summary>
- /// 取面位置
- /// PLC -> VW6
- /// ModbusTcp -> 103
- /// </summary>
- [VariableMonitor("取面位置", "VW6", "103")]
- public ushort TakeNoodleLoc { get; set; }
-
- /// <summary>
- /// 转台反馈位置
- /// PLC -> VW372
- /// ModbusTcp -> 286
- /// </summary>
- [VariableMonitor("转台反馈位置", "VW372", "286")]
- public ushort TurntableFeedbackloc { get; set; }
-
- /// <summary>
- /// 机器人取面位置队列
- /// </summary>
- public ConcurrentQueue<OrderLocInfo> RBTakeNoodleTask { get; set; } = new ConcurrentQueue<OrderLocInfo>();
-
- /// <summary>
- /// 出碗队列
- /// </summary>
- public ConcurrentQueue<OrderLocInfo> TakeBowlTask { get; set; } = new ConcurrentQueue<OrderLocInfo>();
-
- /// <summary>
- /// 是否有面条
- /// </summary>
- public bool IsNoodles { get; set; } = true;
-
- public Dictionary<int, OrderLocInfo> ListOrder { get; set; } = new Dictionary<int, OrderLocInfo>(); //存放当前订单已做好素菜
-
- public Dictionary<int, OrderLocInfo> ListOrderMeat { get; set; } = new Dictionary<int, OrderLocInfo>(); //存放当前订单已做好荤菜
-
- public int DishNumber { set; get; } = 0; //当前订单中配菜的数量
-
- #region 订单ID记录
- /// <summary>
- /// 取碗订单ID
- /// </summary>
- public string TakeBowlId = string.Empty;
-
- /// <summary>
- /// 配料完成订单ID
- /// </summary>
- public string IngredientsCompleteId = string.Empty;
-
- /// <summary>
- /// 煮面口对应的订单ID
- /// </summary>
- //public string[] CookNodelId = new string[6] { string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, };
- public List<CookNodleLocAndId> CookNodelId { get; set; } = new List<CookNodleLocAndId>();
-
-
- //public string[] CookNodelId = new string[6] { string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, };
-
- public OrderLocInfo[] orderLocInfos = new OrderLocInfo[6] { null, null, null, null, null, null };
- /// <summary>
- /// 出餐订单ID
- /// </summary>
- public string OutMealId = string.Empty;
-
-
- /// <summary>
- /// 冒菜制作方式,true:加汤,false:不加汤
- /// </summary>
- public bool OutMealType { get; set; } = false;
-
- /// <summary>
- /// 转台位置轮询
- /// </summary>
- public List<ushort> TurntableLocLists = new List<ushort>();
-
- /// <summary>
- /// 转台当前启动位置
- /// </summary>
- [VariableMonitor("转台当前启动位置")]
- public ushort CurrentLoc { get; set; } = 0;
-
- public List<DoOrderEvent> doOrderEvents { get; set; } = new List<DoOrderEvent>();
-
-
-
- public int Num { get; set; } //记录同一个订单是否所有配菜均已出锅
-
- public int Count { get; set; } = 0; //用于素菜的计数
-
- public int CountMeat { get; set; } = 0;//用于荤菜计数
-
- public int Vnum { get; set; } = 0; //单次订单素菜的总数
- public int VegtabNum { get; set; } = 0;//记录一个订单中素菜的数量
-
- public int TotalNum { get; set; } = 0; //单次订单的配菜总数
-
- public ConcurrentQueue<Dictionary<string, OrderInformation>> Conqueue = new ConcurrentQueue<Dictionary<string, OrderInformation>>(); //记录订单的ID 以及素菜数量
- public bool relock { get; set; } = false; //单次订单互锁
-
- public bool HasVeg { get; set; } //是否有素菜判断
-
-
- public bool VegNoodlesLock { get; set; } = false; //取面和取餐互锁
-
- public int VegN { get; set; } = 0; //素菜出餐计数
- #endregion
- }
-
- public class CookNodleLocAndId
- {
- public string CookNodelId { get; set; }
-
- public int Loc { get; set; }
- }
- }
|