终端一体化运控平台
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

GlobalVariable.cs 28 KiB

2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
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. }