终端一体化运控平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GlobalVariable.cs 28 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace FryPot_DosingSystem.Control
  7. {
  8. /// <summary>
  9. /// plc变量
  10. /// </summary>
  11. internal class GlobalVariable
  12. {
  13. /// <summary>
  14. /// 滚筒线心跳
  15. /// </summary>
  16. public ushort LineHeartBeat { get; set; } = 2;
  17. /// <summary>
  18. /// 滚筒线心跳异常次数
  19. /// </summary>
  20. public int LBeatStopTimes { get; set; }
  21. /// <summary>
  22. /// 根据滚筒线心跳判断是否允许下单
  23. /// </summary>
  24. public bool CanPlaceOrder { get; set; }
  25. /// <summary>
  26. /// 炒锅1心跳
  27. /// </summary>
  28. public ushort PotOneHeartBeat { get; set; } = 2;
  29. /// <summary>
  30. /// 炒锅1心跳异常次数
  31. /// </summary>
  32. public int POneBeatStopTimes { get; set; }
  33. /// <summary>
  34. /// 炒锅2心跳
  35. /// </summary>
  36. public ushort PotTwoHeartBeat { get; set; } = 2;
  37. /// <summary>
  38. /// 炒锅2心跳异常次数
  39. /// </summary>
  40. public int PTwoBeatStopTimes { get; set; }
  41. /// <summary>
  42. /// 炒锅3心跳
  43. /// </summary>
  44. public ushort PotThreeHeartBeat { get; set; } = 2;
  45. /// <summary>
  46. /// 炒锅3心跳异常次数
  47. /// </summary>
  48. public int PThreeBeatStopTimes { get; set; }
  49. /// <summary>
  50. /// 炒锅4心跳
  51. /// </summary>
  52. public ushort PotFourHeartBeat { get; set; } = 2;
  53. /// <summary>
  54. /// 炒锅4心跳异常次数
  55. /// </summary>
  56. public int PFourBeatStopTimes { get; set; }
  57. /// <summary>
  58. /// 炒锅5心跳
  59. /// </summary>
  60. public ushort PotFiveHeartBeat { get; set; } = 2;
  61. /// <summary>
  62. /// 炒锅5心跳异常次数
  63. /// </summary>
  64. public int PFiveBeatStopTimes { get; set; }
  65. /// <summary>
  66. /// 滚筒线1
  67. /// </summary>
  68. public RollerLineOne rollerLineOne = new RollerLineOne();
  69. /// <summary>
  70. /// 滚筒线2
  71. /// </summary>
  72. public RollerLineTwo rollerLineTwo = new RollerLineTwo();
  73. /// <summary>
  74. /// 滚筒线3
  75. /// </summary>
  76. public RollerLineThree rollerLineThree = new RollerLineThree();
  77. /// <summary>
  78. /// 炒锅1
  79. /// </summary>
  80. public FryPotOne fryPotOne= new FryPotOne();
  81. /// <summary>
  82. /// 炒锅2
  83. /// </summary>
  84. public FryPotTwo fryPotTwo= new FryPotTwo();
  85. /// <summary>
  86. /// 炒锅3
  87. /// </summary>
  88. public FryPotThree fryPotThree= new FryPotThree();
  89. /// <summary>
  90. /// 炒锅4
  91. /// </summary>
  92. public FryPotFour fryPotFour= new FryPotFour();
  93. /// <summary>
  94. /// 炒锅5
  95. /// </summary>
  96. public FryPotFive fryPotFive= new FryPotFive();
  97. /// <summary>
  98. /// 洗桶进桶滚筒运行信号
  99. /// </summary>
  100. public ushort CleadBarrelEnterSingle { get; set; }
  101. /// <summary>
  102. /// 洗桶出桶滚筒运行信号
  103. /// </summary>
  104. public ushort CleadBarrelExitSingle { get; set; }
  105. /// <summary>
  106. /// PLC初始化状态
  107. /// </summary>
  108. public ushort PlcInite { get; set; }
  109. /// <summary>
  110. /// 清洗台清洗完成信号/洗桶出桶AGV呼叫信号
  111. /// </summary>
  112. public ushort CleanComplete { get; set; }
  113. #region 上位机内部逻辑条件
  114. /// <summary>
  115. /// 退出线体1任务
  116. /// </summary>
  117. public bool ExitLineOneTask { get; set; }
  118. /// <summary>
  119. /// 退出线体2任务
  120. /// </summary>
  121. public bool ExitLineTwoTask { get; set; }
  122. /// <summary>
  123. /// 退出线体3任务
  124. /// </summary>
  125. public bool ExitLineThreeTask { get; set; }
  126. /// <summary>
  127. /// 允许AGV去线体1装桶条件
  128. /// </summary>
  129. public bool AllowAgvToLineLoadRoller { get; set; } = true;
  130. /// <summary>
  131. /// 允许AGV去线体2装桶条件
  132. /// </summary>
  133. public bool AllowAgvToLineTwoLoadRoller { get; set; } = true;
  134. /// <summary>
  135. /// 允许AGV去线体3装桶条件
  136. /// </summary>
  137. public bool AllowAgvToLineThreeLoadRoller { get; set; } = true;
  138. ///// <summary>
  139. ///// 配方唯一ID
  140. ///// </summary>
  141. //public string RecipeId { get; set; }
  142. /// <summary>
  143. /// 线体1对应的进桶出桶互锁
  144. /// </summary>
  145. public bool InOrOutputLock { get; set; }
  146. /// <summary>
  147. /// 线体2对应的进桶出桶互锁
  148. /// </summary>
  149. public bool LTwoInOrOutputLock { get; set; }
  150. /// <summary>
  151. /// 线体3对应的进桶出桶互锁
  152. /// </summary>
  153. public bool LThreeInOrOutputLock { get; set; }
  154. ///// <summary>
  155. ///// 线体1任务执行锁
  156. ///// </summary>
  157. //public bool LOneTaskLock { get; set; }
  158. ///// <summary>
  159. ///// 线体2任务执行锁
  160. ///// </summary>
  161. //public bool LTwoTaskLock { get; set; }
  162. ///// <summary>
  163. ///// 线体3任务执行锁
  164. ///// </summary>
  165. //public bool LThreeTaskLock { get; set; }
  166. /// <summary>
  167. /// 线体1当前正在制作的配方名称
  168. /// </summary>
  169. public string LOneCurrentRecipeName { get; set; } = string.Empty;
  170. /// <summary>
  171. /// 线体2当前正在制作的配方名称
  172. /// </summary>
  173. public string LTwoCurrentRecipeName { get; set; } = string.Empty;
  174. /// <summary>
  175. /// 线体3当前正在制作的配方名称
  176. /// </summary>
  177. public string LThreeCurrentRecipeName { get; set; } = string.Empty;
  178. #endregion
  179. #region 线体1流程互锁变量
  180. public bool LoadRoller { get; set; }
  181. public bool AgvToFryPot { get; set; }
  182. public bool PotOneInputMaterialArrive { get; set; }
  183. public bool PotOneOutputRollerArrive { get; set; }
  184. public bool AgvArrivePot { get; set; }
  185. #endregion
  186. #region 线体2流程互锁变量
  187. public bool LTwoLoadRoller { get; set; }
  188. public bool LTwoAgvToFryPot { get; set; }
  189. public bool LTwoPotInputMaterialArrive { get; set; }
  190. public bool LTwoPotOutputRollerArrive { get; set; }
  191. public bool LTwoAgvArrivePot { get; set; }
  192. #endregion
  193. #region 线体3流程互锁变量
  194. public bool LThreeLoadRoller { get; set; }
  195. public bool LThreeAgvToFryPot { get; set; }
  196. public bool LThreePotInputMaterialArrive { get; set; }
  197. public bool LThreePotOutputRollerArrive { get; set; }
  198. public bool LThreeAgvArrivePot { get; set; }
  199. #endregion
  200. #region AGV视图显示变量
  201. public int LOneMaterialNum { get; set; } = 0;
  202. public int LOneFryPotSerial { get; set; } = 0;
  203. public int LOneCurrentCookingStep { get; set; } = 0;
  204. public int LFourCurrentCookingStep { get; set; } = 0;
  205. public bool agvArriveUpLoad { get; set; }
  206. public bool agvArriveUnLoad { get; set; }
  207. public bool agvFryPotEmptyRollerArrive { get; set; }
  208. public bool EmptyRollerUnLoadcCom { get; set; }//AGV空桶4号线体下料完成
  209. public bool agvLineOneLoadCom { get; set; }//线体1满料桶上料完成
  210. //2022.11.1 新增
  211. public int LTwoMaterialNum { get; set; } = 0;
  212. public int LTwoFryPotSerial { get; set; } =0;
  213. public int LFiveCurrentCookingStep { get; set; } = 0;
  214. public int LTwoCurrentCookingStep { get; set; } = 0;
  215. public bool agvArriveLTwoUpLoad { get; set; }
  216. public bool LTwoagvArriveUnLoad { get; set; }
  217. public bool LTwoagvFryPotEmptyRollerArrive { get; set; }
  218. public bool agvLineTwoLoadCom { get; set; }//线体2上料完成
  219. public int LThreeMaterialNum { get; set; } = 0;
  220. public int LThreeFryPotSerial { get; set; } = 0;
  221. public int LThreeCurrentCookingStep { get; set; } = 0;
  222. public bool agvArriveLThreeUpLoad { get; set; }
  223. public bool LThreeagvArriveUnLoad { get; set; }
  224. public bool LThreeagvFryPotEmptyRollerArrive { get; set; }
  225. public bool agvLineThreeLoadCom { get; set; }//线体1上料完成
  226. public int LFourRollerNum { get; set; } = 0;//4号线体空桶数量
  227. //新增空桶清洗系列变量
  228. public bool agvArriveLineFour { get; set; }//agv从清洗台到达线体4下料位置
  229. //public bool agvArriveCleanUnLoad { get; set; }//agv到达清洗台下料位置
  230. public bool agvArriveCleanLoad { get; set; }//agv到达清洗台上料位置
  231. public bool agvArriveLineOneLoadEmptyRoller { get; set; }//agv到达线体1空桶上料位置
  232. public bool agvArriveLineTwoLoadEmptyRoller { get; set; }//agv到达线体2空桶上料位置
  233. public bool agvArriveLineThreeLoadEmptyRoller { get; set; }//agv到达线体3空桶上料位置
  234. public bool agvArriveLineOneLoadCom { get; set; } //agv线体1空桶上料完成
  235. public bool agvArriveLineTwoLoadCom { get; set; } //agv线体2空桶上料完成
  236. public bool agvArriveLineThreeLoadCom { get; set; }//agv线体3空桶上料完成
  237. /// <summary>
  238. /// 允许下一个空桶去洗桶
  239. /// </summary>
  240. public bool AllowNextEmptyRollerToClean { get; set; } = true;
  241. #endregion
  242. #region AGV任务号对应的AGV故障信号
  243. /// <summary>
  244. /// 线体1到炒锅1,4 AGV故障
  245. /// </summary>
  246. public bool LineOneRobotTaskError { get; set; }
  247. public bool LineTwoRobotTaskError { get; set; }
  248. public bool LineThreeRobotTaskError { get; set; }
  249. public bool LineFourRobotTaskError { get; set; }
  250. public bool LineFiveRobotTaskError { get; set; }
  251. public bool LineSixRobotTaskError { get; set; }
  252. public bool LineSevenRobotTaskError { get; set; }
  253. public bool LineEightRobotTaskError { get; set; }
  254. public bool LineNineRobotTaskError { get; set; }
  255. public bool LineTenRobotTaskError { get; set; }
  256. #endregion
  257. }
  258. /// <summary>
  259. /// 滚筒线1相关变量
  260. /// </summary>
  261. public class RollerLineOne
  262. {
  263. /// <summary>
  264. /// 工位号1
  265. /// </summary>
  266. public ushort StationOne { get; set; }
  267. /// <summary>
  268. /// 工位号2
  269. /// </summary>
  270. public ushort StationTwo { get; set; }
  271. /// <summary>
  272. /// 工位号3
  273. /// </summary>
  274. public ushort StationThree { get; set; }
  275. /// <summary>
  276. /// 工位号4
  277. /// </summary>
  278. public ushort StationFour { get; set; }
  279. /// <summary>
  280. /// 工位号5
  281. /// </summary>
  282. public ushort StationFive { get; set; }
  283. /// <summary>
  284. /// 工位号6
  285. /// </summary>
  286. public ushort StationSix { get; set; }
  287. /// <summary>
  288. /// 工位号7
  289. /// </summary>
  290. public ushort StationSeven { get; set; }
  291. /// <summary>
  292. /// 工位号8
  293. /// </summary>
  294. public ushort StationEight { get; set; }
  295. /// <summary>
  296. /// 输送出料滚筒运行信号
  297. /// </summary>
  298. public ushort OutMaterialingSingle { get; set; }
  299. /// <summary>
  300. /// 输送出料滚筒运行故障信号
  301. /// </summary>
  302. public ushort OutMaterialingTroubleSingle { get; set; }
  303. /// <summary>
  304. /// 当前线体配方完成信号
  305. /// </summary>
  306. public ushort RecipeCompleteSingle { get; set; }
  307. /// <summary>
  308. /// 当前配方完成的中转信号
  309. /// </summary>
  310. public ushort RecipeComMidSingle { get; set; } = 1;
  311. /// <summary>
  312. /// 线体1上空桶确认信号
  313. /// </summary>
  314. public ushort EmptyRollerConfirmSingle { get; set; }
  315. /// <summary>
  316. /// 线体1上单个空桶编号
  317. /// </summary>
  318. public ushort EmptyRollerNum { get; set; }
  319. /// <summary>
  320. /// 上一个桶是否是空桶,空桶上料结束后,配方料桶AGV才能去1号线装桶
  321. /// </summary>
  322. public bool IsEpmtyBefore { get; set; } //空桶上料结束后,配方料桶AGV才能去1号线装桶
  323. /// <summary>
  324. /// 配方料桶上料结束后,线体空桶AGV才能1号线装桶
  325. /// </summary>
  326. public bool CanRun { get; set; } = true; //配方料桶上料结束后,线体空桶AGV才能1号线装桶
  327. /// <summary>
  328. /// 线体1上所有空桶的编号集合
  329. /// </summary>
  330. public List<ushort> EmptyRollerNums { get; set; } = new List<ushort>();
  331. /// <summary>
  332. /// AGV从炒锅到达线体4空桶下料位置
  333. /// </summary>
  334. public bool agvArriveLineFour { get; set; }
  335. /// <summary>
  336. /// AGV从线体1到达清洗台
  337. /// </summary>
  338. public bool agvArriveCleanUnLoad { get; set; }
  339. /// <summary>
  340. /// 下位确认执行信号 true:执行 false:不执行
  341. /// </summary>
  342. public ushort ExcuteIsConfirm { get; set;} //默认为:0,确认执行:1,取消执行:2
  343. /// <summary>
  344. /// 线体1流程控制互锁信号
  345. /// </summary>
  346. public bool NextStart { get; set; }
  347. /// <summary>
  348. /// 下位信号判断
  349. /// </summary>
  350. public bool LowSignalJude { get; set; }
  351. /// <summary>
  352. /// 集中洗桶模式
  353. /// </summary>
  354. public ushort WashEmptyRollerModel { get; set; }
  355. /// <summary>
  356. /// 洗桶就位信号
  357. /// </summary>
  358. public ushort WashRollerArriveSignal { get; set; }
  359. }
  360. /// <summary>
  361. /// 滚筒线2相关变量
  362. /// </summary>
  363. public class RollerLineTwo
  364. {
  365. /// <summary>
  366. /// 工位号1
  367. /// </summary>
  368. public ushort StationOne { get; set; }
  369. /// <summary>
  370. /// 工位号2
  371. /// </summary>
  372. public ushort StationTwo { get; set; }
  373. /// <summary>
  374. /// 工位号3
  375. /// </summary>
  376. public ushort StationThree { get; set; }
  377. /// <summary>
  378. /// 工位号4
  379. /// </summary>
  380. public ushort StationFour { get; set; }
  381. /// <summary>
  382. /// 工位号5
  383. /// </summary>
  384. public ushort StationFive { get; set; }
  385. /// <summary>
  386. /// 工位号6
  387. /// </summary>
  388. public ushort StationSix { get; set; }
  389. /// <summary>
  390. /// 工位号7
  391. /// </summary>
  392. public ushort StationSeven { get; set; }
  393. /// <summary>
  394. /// 工位号8
  395. /// </summary>
  396. public ushort StationEight { get; set; }
  397. /// <summary>
  398. /// 输送出料滚筒运行信号
  399. /// </summary>
  400. public ushort OutMaterialingSingle { get; set; }
  401. /// <summary>
  402. /// 输送出料滚筒运行故障信号
  403. /// </summary>
  404. public ushort OutMaterialingTroubleSingle { get; set; }
  405. /// <summary>
  406. /// 当前线体配方完成信号
  407. /// </summary>
  408. public ushort RecipeCompleteSingle { get; set; }
  409. /// <summary>
  410. /// 当前配方完成的中转信号
  411. /// </summary>
  412. public ushort RecipeComMidSingle { get; set; } = 1;
  413. /// <summary>
  414. /// 线体1上空桶确认信号
  415. /// </summary>
  416. public ushort EmptyRollerConfirmSingle { get; set; }
  417. /// <summary>
  418. /// 线体1上单个空桶编号
  419. /// </summary>
  420. public ushort EmptyRollerNum { get; set; }
  421. /// <summary>
  422. /// 上一个同时否是空桶
  423. /// </summary>
  424. public bool IsEpmtyBefore { get; set; }
  425. public bool CanRun { get; set; } = true; //配方料桶上料结束后,线体空桶AGV才能1号线装桶
  426. /// <summary>
  427. /// 线体2上所有空桶的编号集合
  428. /// </summary>
  429. public List<ushort> EmptyRollerNums { get; set; } = new List<ushort>();
  430. /// <summary>
  431. /// AGV从炒锅到达线体4空桶下料位置
  432. /// </summary>
  433. public bool agvArriveLineFour { get; set; }
  434. /// <summary>
  435. /// AGV从线体2到达清洗台
  436. /// </summary>
  437. public bool agvArriveCleanUnLoad { get; set; }
  438. /// <summary>
  439. /// 下位确认执行信号 true:执行 false:不执行
  440. /// </summary>
  441. public ushort ExcuteIsConfirm { get; set; }
  442. /// <summary>
  443. /// 线体1流程控制互锁信号
  444. /// </summary>
  445. public bool NextStart { get; set; }
  446. /// <summary>
  447. /// 下位信号判断
  448. /// </summary>
  449. public bool LowSignalJude { get; set; }
  450. /// <summary>
  451. /// 集中洗桶模式
  452. /// </summary>
  453. public ushort WashEmptyRollerModel { get; set; }
  454. /// <summary>
  455. /// 洗桶就位信号
  456. /// </summary>
  457. public ushort WashRollerArriveSignal { get; set; }
  458. }
  459. /// <summary>
  460. /// 滚筒线3相关变量
  461. /// </summary>
  462. public class RollerLineThree
  463. {
  464. /// <summary>
  465. /// 工位号1
  466. /// </summary>
  467. public ushort StationOne { get; set; }
  468. /// <summary>
  469. /// 工位号2
  470. /// </summary>
  471. public ushort StationTwo { get; set; }
  472. /// <summary>
  473. /// 工位号3
  474. /// </summary>
  475. public ushort StationThree { get; set; }
  476. /// <summary>
  477. /// 工位号4
  478. /// </summary>
  479. public ushort StationFour { get; set; }
  480. /// <summary>
  481. /// 工位号5
  482. /// </summary>
  483. public ushort StationFive { get; set; }
  484. /// <summary>
  485. /// 工位号6
  486. /// </summary>
  487. public ushort StationSix { get; set; }
  488. /// <summary>
  489. /// 工位号7
  490. /// </summary>
  491. public ushort StationSeven { get; set; }
  492. /// <summary>
  493. /// 工位号8
  494. /// </summary>
  495. public ushort StationEight { get; set; }
  496. /// <summary>
  497. /// 输送出料滚筒运行信号
  498. /// </summary>
  499. public ushort OutMaterialingSingle { get; set; }
  500. /// <summary>
  501. /// 输送出料滚筒运行故障信号
  502. /// </summary>
  503. public ushort OutMaterialingTroubleSingle { get; set; }
  504. /// <summary>
  505. /// 当前线体配方完成信号
  506. /// </summary>
  507. public ushort RecipeCompleteSingle { get; set; }
  508. /// <summary>
  509. /// 当前配方完成的中转信号
  510. /// </summary>
  511. public ushort RecipeComMidSingle { get; set; } = 1;
  512. /// <summary>
  513. /// 线体1上空桶确认信号
  514. /// </summary>
  515. public ushort EmptyRollerConfirmSingle { get; set; }
  516. /// <summary>
  517. /// 线体1上单个空桶编号
  518. /// </summary>
  519. public ushort EmptyRollerNum { get; set; }
  520. /// <summary>
  521. /// 上一个同时否是空桶
  522. /// </summary>
  523. public bool IsEpmtyBefore { get; set; }
  524. public bool CanRun { get; set; } = true;//配方料桶上料结束后,线体空桶AGV才能1号线装桶
  525. /// <summary>
  526. /// 线体3上所有空桶的编号集合
  527. /// </summary>
  528. public List<ushort> EmptyRollerNums { get; set; } = new List<ushort>();
  529. /// <summary>
  530. /// AGV从炒锅到达线体4空桶下料位置
  531. /// </summary>
  532. public bool agvArriveLineFour { get; set; }
  533. /// <summary>
  534. /// AGV从线体3到达清洗台
  535. /// </summary>
  536. public bool agvArriveCleanUnLoad { get; set; }
  537. /// <summary>
  538. /// 下位确认执行信号 true:执行 false:不执行
  539. /// </summary>
  540. public ushort ExcuteIsConfirm { get; set; }
  541. /// <summary>
  542. /// 线体1流程控制互锁信号
  543. /// </summary>
  544. public bool NextStart { get; set; }
  545. /// <summary>
  546. /// 下位信号判断
  547. /// </summary>
  548. public bool LowSignalJude { get; set; }
  549. /// <summary>
  550. /// 集中洗桶模式
  551. /// </summary>
  552. public ushort WashEmptyRollerModel { get; set; }
  553. /// <summary>
  554. /// 洗桶就位信号
  555. /// </summary>
  556. public ushort WashRollerArriveSignal { get; set; }
  557. }
  558. /// <summary>
  559. /// 滚筒线4相关变量
  560. /// </summary>
  561. public class RollerLineFour
  562. {
  563. /// <summary>
  564. /// 工位号1
  565. /// </summary>
  566. public ushort StationOne { get; set; }
  567. /// <summary>
  568. /// 工位号2
  569. /// </summary>
  570. public ushort StationTwo { get; set; }
  571. /// <summary>
  572. /// 工位号3
  573. /// </summary>
  574. public ushort StationThree { get; set; }
  575. /// <summary>
  576. /// 工位号4
  577. /// </summary>
  578. public ushort StationFour { get; set; }
  579. /// <summary>
  580. /// 工位号5
  581. /// </summary>
  582. public ushort StationFive { get; set; }
  583. /// <summary>
  584. /// 工位号6
  585. /// </summary>
  586. public ushort StationSix { get; set; }
  587. /// <summary>
  588. /// 工位号7
  589. /// </summary>
  590. public ushort StationSeven { get; set; }
  591. /// <summary>
  592. /// 工位号8
  593. /// </summary>
  594. public ushort StationEight { get; set; }
  595. /// <summary>
  596. /// 输送出料滚筒运行信号
  597. /// </summary>
  598. public ushort OutMaterialingSingle { get; set; }
  599. /// <summary>
  600. /// 输送出料滚筒运行故障信号
  601. /// </summary>
  602. public ushort OutMaterialingTroubleSingle { get; set; }
  603. /// <summary>
  604. /// 当前线体配方完成信号
  605. /// </summary>
  606. public ushort RecipeCompleteSingle { get; set; }
  607. /// <summary>
  608. /// 当前配方完成的中转信号
  609. /// </summary>
  610. public ushort RecipeComMidSingle { get; set; } = 1;
  611. }
  612. /// <summary>
  613. /// 炒锅1相关变量
  614. /// </summary>
  615. public class FryPotOne
  616. {
  617. /// <summary>
  618. /// 进料滚筒运行信号
  619. /// </summary>
  620. public ushort InputMaterialRollerRunningSingle { get; set; }
  621. /// <summary>
  622. /// 进料到位信号
  623. /// </summary>
  624. public ushort InputMaterialArrivedSingle { get; set; }
  625. /// <summary>
  626. /// 空桶到位信号
  627. /// </summary>
  628. public ushort EmptyBarrelArrivedSingle { get; set; }
  629. /// <summary>
  630. /// 空桶滚筒运行信号
  631. /// </summary>
  632. public ushort EmptyBarrelRollerRunningSingle { get; set; }
  633. /// <summary>
  634. /// 滚筒故障信号
  635. /// </summary>
  636. public ushort RollerTroubleSingle { get; set; }
  637. /// <summary>
  638. /// 用油量确认信号
  639. /// </summary>
  640. public ushort OilConfirm { get; set; }
  641. /// <summary>
  642. /// 当前配方用油量
  643. /// </summary>
  644. public double OilCapacity { get; set; }
  645. /// <summary>
  646. /// 当前线体配方完成信号
  647. /// </summary>
  648. public ushort RecipeCompleteSingle { get; set; }
  649. /// <summary>
  650. /// 炒股当前步数
  651. /// </summary>
  652. public ushort ProcessStep { get; set; }
  653. }
  654. /// <summary>
  655. /// 炒锅2相关变量
  656. /// </summary>
  657. public class FryPotTwo
  658. {
  659. /// <summary>
  660. /// 进料滚筒运行信号
  661. /// </summary>
  662. public ushort InputMaterialRollerRunningSingle { get; set; }
  663. /// <summary>
  664. /// 进料到位信号
  665. /// </summary>
  666. public ushort InputMaterialArrivedSingle { get; set; }
  667. /// <summary>
  668. /// 空桶到位信号
  669. /// </summary>
  670. public ushort EmptyBarrelArrivedSingle { get; set; }
  671. /// <summary>
  672. /// 空桶滚筒运行信号
  673. /// </summary>
  674. public ushort EmptyBarrelRollerRunningSingle { get; set; }
  675. /// <summary>
  676. /// 滚筒故障信号
  677. /// </summary>
  678. public ushort RollerTroubleSingle { get; set; }
  679. /// <summary>
  680. /// 用油量确认信号
  681. /// </summary>
  682. public ushort OilConfirm { get; set; }
  683. /// <summary>
  684. /// 当前配方用油量
  685. /// </summary>
  686. public double OilCapacity { get; set; }
  687. /// <summary>
  688. /// 当前线体配方完成信号
  689. /// </summary>
  690. public ushort RecipeCompleteSingle { get; set; }
  691. /// <summary>
  692. /// 炒锅当前步数
  693. /// </summary>
  694. public ushort ProcessStep { get; set; }
  695. }
  696. /// <summary>
  697. /// 炒锅3相关变量
  698. /// </summary>
  699. public class FryPotThree
  700. {
  701. /// <summary>
  702. /// 进料滚筒运行信号
  703. /// </summary>
  704. public ushort InputMaterialRollerRunningSingle { get; set; }
  705. /// <summary>
  706. /// 进料到位信号
  707. /// </summary>
  708. public ushort InputMaterialArrivedSingle { get; set; }
  709. /// <summary>
  710. /// 空桶到位信号
  711. /// </summary>
  712. public ushort EmptyBarrelArrivedSingle { get; set; }
  713. /// <summary>
  714. /// 空桶滚筒运行信号
  715. /// </summary>
  716. public ushort EmptyBarrelRollerRunningSingle { get; set; }
  717. /// <summary>
  718. /// 滚筒故障信号
  719. /// </summary>
  720. public ushort RollerTroubleSingle { get; set; }
  721. /// <summary>
  722. /// 用油量确认信号
  723. /// </summary>
  724. public ushort OilConfirm { get; set; }
  725. /// <summary>
  726. /// 当前配方用油量
  727. /// </summary>
  728. public double OilCapacity { get; set; }
  729. /// <summary>
  730. /// 当前线体配方完成信号
  731. /// </summary>
  732. public ushort RecipeCompleteSingle { get; set; }
  733. /// <summary>
  734. /// 炒股当前步数
  735. /// </summary>
  736. public ushort ProcessStep { get; set; }
  737. }
  738. /// <summary>
  739. /// 炒锅4相关变量
  740. /// </summary>
  741. public class FryPotFour
  742. {
  743. /// <summary>
  744. /// 进料滚筒运行信号
  745. /// </summary>
  746. public ushort InputMaterialRollerRunningSingle { get; set; }
  747. /// <summary>
  748. /// 进料到位信号
  749. /// </summary>
  750. public ushort InputMaterialArrivedSingle { get; set; }
  751. /// <summary>
  752. /// 空桶到位信号
  753. /// </summary>
  754. public ushort EmptyBarrelArrivedSingle { get; set; }
  755. /// <summary>
  756. /// 空桶滚筒运行信号
  757. /// </summary>
  758. public ushort EmptyBarrelRollerRunningSingle { get; set; }
  759. /// <summary>
  760. /// 滚筒故障信号
  761. /// </summary>
  762. public ushort RollerTroubleSingle { get; set; }
  763. /// <summary>
  764. /// 用油量确认信号
  765. /// </summary>
  766. public ushort OilConfirm { get; set; }
  767. /// <summary>
  768. /// 当前配方用油量
  769. /// </summary>
  770. public double OilCapacity { get; set; }
  771. /// <summary>
  772. /// 当前线体配方完成信号
  773. /// </summary>
  774. public ushort RecipeCompleteSingle { get; set; }
  775. /// <summary>
  776. /// 炒股当前步数
  777. /// </summary>
  778. public ushort ProcessStep { get; set; }
  779. }
  780. /// <summary>
  781. /// 炒锅5相关变量
  782. /// </summary>
  783. public class FryPotFive
  784. {
  785. /// <summary>
  786. /// 进料滚筒运行信号
  787. /// </summary>
  788. public ushort InputMaterialRollerRunningSingle { get; set; }
  789. /// <summary>
  790. /// 进料到位信号
  791. /// </summary>
  792. public ushort InputMaterialArrivedSingle { get; set; }
  793. /// <summary>
  794. /// 空桶到位信号
  795. /// </summary>
  796. public ushort EmptyBarrelArrivedSingle { get; set; }
  797. /// <summary>
  798. /// 空桶滚筒运行信号
  799. /// </summary>
  800. public ushort EmptyBarrelRollerRunningSingle { get; set; }
  801. /// <summary>
  802. /// 滚筒故障信号
  803. /// </summary>
  804. public ushort RollerTroubleSingle { get; set; }
  805. /// <summary>
  806. /// 用油量确认信号
  807. /// </summary>
  808. public ushort OilConfirm { get; set; }
  809. /// <summary>
  810. /// 当前配方用油量
  811. /// </summary>
  812. public double OilCapacity { get; set; }
  813. /// <summary>
  814. /// 当前线体配方完成信号
  815. /// </summary>
  816. public ushort RecipeCompleteSingle { get; set; }
  817. /// <summary>
  818. /// 炒股当前步数
  819. /// </summary>
  820. public ushort ProcessStep { get; set; }
  821. }
  822. }