|
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using HBLConsole.Interface;
- using System.Collections.Concurrent;
- using HBLConsole.Attributes;
- using HBLConsole.Model;
-
- namespace HBLConsole.MORKS
- {
- /// <summary>
- /// MORKS 设备数据
- /// </summary>
- public class GVL_MORKS : IGvl
- {
- /// <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>
- [Circuit(new string[] { "机器人取面", "取碗控制" }, "允许运行")]
- public bool AllowRun { get; set; }
-
- /// <summary>
- /// //机器人任务互锁信号
- /// </summary>
- [Circuit(new string[] { "机器人取面", "出面控制" }, "机器人互锁", new bool[] { true, false })]
- public bool RobotTaskInterlock { get; set; }
-
- /// <summary>
- /// 取碗互锁信号
- /// </summary>
- [Circuit("取碗控制", "取碗互锁", true)]
- public bool TakeBowlInterlock { get; set; }
-
- /// <summary>
- /// 取面互锁信号
- /// </summary>
- [Circuit(new string[] { "机器人取面", "出面控制" }, "取面互锁信号", new bool[] { true, true })]
- public bool TakeNoodleInterlock { get; set; }
-
- /// <summary>
- /// 出面中
- /// </summary>
- [Circuit("机器人取面", "出面中", true)]
- public bool OutNoodleing { get; set; }
-
- /// <summary>
- /// 允许取面
- /// </summary>
- [Circuit(new string[] { "转台控制", "机器人取面" }, "允许取面", new bool[] { true, false })]
- public bool AllowTakeNoodle { get; set; }
-
- /// <summary>
- /// 转台互锁信号
- /// </summary>
- public bool TurntableInterlock { get; set; }
- #endregion
-
-
- /// <summary>
- /// 初始化完成
- /// PLC -> M100.0
- /// ModbusTcp -> 1120
- /// </summary>
- [Circuit(new string[] { "允许运行", "转台控制", "转台控制" }, "初始化完成")]
- public bool InitComplete { get; set; }
-
- /// <summary>
- /// 取碗机构空闲,True:忙碌,false:空闲
- /// PLC -> M100.1
- /// ModbusTcp -> 1121
- /// </summary>
- [Circuit("取碗控制", "取碗机构空闲", true)]
- public bool TakeBowlIdle { get; set; }
-
- /// <summary>
- /// 温度到达,True:表示到达,false:未到达
- /// PLC -> M100.2
- /// ModbusTcp -> 1122
- /// </summary>
- [Circuit("允许运行", "温度到达")]
- public bool TemperatureReached { get; set; }
-
- /// <summary>
- /// 允许到面,配料完成
- /// PLC -> M100.3
- /// ModbusTcp -> 1123
- /// </summary>
- [Circuit("出面控制", "允许到面")]
- public bool AllowFallNoodle { get; set; }
-
- /// <summary>
- /// 机器人取面完成
- /// PLC -> M100.4
- /// ModbusTcp -> 1124
- /// </summary>
- public bool RbTakeNoodleComplete { get; set; }
-
- /// <summary>
- /// 机器人倒面完成
- /// PLC -> M100.5
- /// ModbusTcp -> 1125
- /// </summary>
- public bool RbFallNoodleComplete { get; set; }
-
- /// <summary>
- /// 机器人出餐完成,上报取餐完成
- /// PLC -> M100.6
- /// ModbusTcp -> 1126
- /// </summary>
- public bool RbOutMealComplete { get; set; }
-
- /// <summary>
- /// 机器人空闲
- /// PLC -> M100.7
- /// ModbusTcp -> 1127
- /// </summary>
- [Circuit(new string[] { "机器人取面", "出面控制" }, "机器人空闲")]
- public bool RobotIdle { get; set; }
-
- /// <summary>
- /// 取餐口检测
- /// PLC -> M101.0
- /// ModbusTcp -> 1128
- /// </summary>
- [Circuit("出面控制", "取餐口检测", true)]
- public bool TakeMealDetect { get; set; }
-
- /// <summary>
- /// 缺碗信号,false:缺碗,true:有碗
- /// PLC -> M101.1
- /// ModbusTcp -> 1129
- /// </summary>
- public bool MissingBowl { get; set; }
-
- /// <summary>
- /// 设备初始化中,执行中等于1,2秒后复位
- /// PLC -> M101.2
- /// ModbusTcp -> 1130
- /// </summary>
- public bool DeviceIniting { get; set; }
-
- /// <summary>
- /// 转台下限检测
- /// PLC -> M101.3
- /// ModbusTcp -> 1131
- /// </summary>
- [Circuit("转台控制", "转台下限检测有物料")]
- public bool TurntableLowerLimit { get; set; }
-
- /// <summary>
- /// 缺碗信号 2
- /// PLC -> M101.4
- /// ModbusTcp -> 1132
- /// </summary>
- public bool MissingBowlSignal2 { get; set; }
-
- /// <summary>
- /// 转台上限检测
- /// PLC -> M101.5
- /// ModbusTcp -> 1133
- /// </summary>
- public bool TurntableUpLimit { get; set; }
-
- /// <summary>
- /// 转台移动到位
- /// PLC -> M101.7
- /// ModbusTcp -> 1135
- /// </summary>
- [Circuit(new string[] { "转台控制", "机器人取面" }, "转台移动到位")]
- public bool TurntableMoveInPlace { get; set; }
-
- /// <summary>
- /// 煮面炉状态,True:忙碌,false:空闲
- /// M102.0 - M102.5
- /// 1136 - 1141
- /// </summary>
- public bool[] NoodleCookerStatus { get; set; } = new bool[6] { false, false, false, false, false, false };
-
- /// <summary>
- /// 煮面完成,上升后给信号
- /// M103.0 - M103.5
- /// 1144 - 1149
- /// </summary>
- public bool[] CookNoodlesComplete { get; set; } = new bool[6] { false, false, false, false, false, false };
-
- /// <summary>
- /// 配方编号
- /// PLC -> VW0
- /// ModbusTcp -> 100
- /// </summary>
- public ushort RecipeNumber { get; set; }
-
- /// <summary>
- /// 转台位置
- /// PLC -> VW2
- /// ModbusTcp -> 101
- /// </summary>
- public ushort TurntableLoc { get; set; }
-
- /// <summary>
- /// 到面至煮面炉位置
- /// PLC -> VW4
- /// ModbusTcp -> 102
- /// </summary>
- public ushort FallNoodleLoc { get; set; }
-
- /// <summary>
- /// 取面位置
- /// PLC -> VW6
- /// ModbusTcp -> 103
- /// </summary>
- public ushort TakeNoodleLoc { get; set; }
-
- /// <summary>
- /// 转台位置
- /// PLC -> VW372
- /// ModbusTcp -> 286
- /// </summary>
- public ushort TurntableFeedbackloc { get; set; }
-
- /// <summary>
- /// 机器人取面位置队列
- /// </summary>
- [Circuit(new string[] { "转台控制", "机器人取面" }, "有机器人取面队列")]
- public ConcurrentQueue<OrderLocInfo> RBTakeNoodleTask { get; set; } = new ConcurrentQueue<OrderLocInfo>();
-
- /// <summary>
- /// 出碗队列
- /// </summary>
- [Circuit("取碗控制", "有取碗队列数量")]
- public ConcurrentQueue<OrderLocInfo> TakeBowlTask { get; set; } = new ConcurrentQueue<OrderLocInfo>();
-
- /// <summary>
- /// 是否有面条
- /// </summary>
- public bool IsNoodles { get; set; } = true;
- }
- }
|