RGVSignal.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace WCS.PLC.Model.Equipment
  5. {
  6. public enum RgvStatus
  7. {
  8. 未知 = 0,
  9. 空闲 = 1,
  10. 取货中 = 2,
  11. 送货中 = 3,
  12. 小车移动中 = 4,
  13. 故障2 = 5,
  14. 故障 = 99
  15. }
  16. public enum RgvMode
  17. {
  18. 未知 = 0,
  19. 自动 = 1,
  20. 半自动 = 2,
  21. 手动 = 3,
  22. 维护 = 4
  23. }
  24. [Flags]
  25. public enum RgvFault1Enum : ushort
  26. {
  27. RGVF001_RGV前后防撞条故障 = 1 << 0,
  28. RGVF002_RGV载货极限光电故障 = 1 << 1,
  29. RGVF003_RGV输送线变频器故障 = 1 << 2,
  30. RGVF004_RGV行走变频器故障 = 1 << 3,
  31. RGVF005_RGV扫码器故障 = 1 << 4,
  32. RGVF006_RGV位置值故障 = 1 << 5,
  33. RGVF007_RGV定位失败 = 1 << 6,
  34. RGVF008_RGV取放货时位置偏差过大 = 1 << 7,
  35. RGVF009_RGV急停按下 = 1 << 8,
  36. RGVF010_主柜急停按下 = 1 << 9,
  37. RGVF011_站台货物超出 = 1 << 10,
  38. RGVF012_RGV输送线超时 = 1 << 11,
  39. RGVF013_RGV输送线光电异常 = 1 << 12,
  40. RGVF014_RGV任务号与站台任务号不匹配 = 1 << 13,
  41. RGVF015_RGV不支持此任务类型 = 1 << 14,
  42. RGVF016_RGV目标站台与交互站台号不一致 = 1 << 15,
  43. }
  44. [Flags]
  45. public enum RgvFault2Enum : ushort
  46. {
  47. RGVF025_RGV硬极限故障 = 1 << 0,
  48. RGVF026_RGV软极限故障 = 1 << 1,
  49. RGVF027_RGV货物超出故障 = 1 << 2,
  50. RGVF028_RGV行走测距信号丢失 = 1 << 3,
  51. RGVF029_RGV行走变频器故障 = 1 << 4,
  52. RGVF030_RGV = 1 << 5,
  53. RGVF031_RGV = 1 << 6,
  54. RGVF032_RGV急停按下 = 1 << 7,
  55. RGVF017_RGV站台号错误 = 1 << 8,
  56. RGVF018_RGV任务类型错误 = 1 << 9,
  57. RGVF019_RGV任务号错误 = 1 << 10,
  58. RGVF020_RGV货物超出故障 = 1 << 11,
  59. RGVF021_RGV输送线变频器故障 = 1 << 12,
  60. RGVF022_RGV输送线传感器异常 = 1 << 13,
  61. RGVF023_RGV输送线运行超时 = 1 << 14,
  62. RGVF024_RGV输送线总故障 = 1 << 15,
  63. }
  64. [Flags]
  65. public enum RgvFault3Enum : ushort
  66. {
  67. RGVF041_RGV硬极限故障 = 1 << 0,
  68. RGVF042_RGV软极限故障 = 1 << 1,
  69. RGVF043_RGV货物超出故障 = 1 << 2,
  70. RGVF044_RGV行走测距信号丢失 = 1 << 3,
  71. RGVF045_RGV行走变频器故障 = 1 << 4,
  72. RGVF046_RGV = 1 << 5,
  73. RGVF047_RGV = 1 << 6,
  74. RGVF048_RGV急停按下 = 1 << 7,
  75. RGVF033_RGV站台号错误 = 1 << 8,
  76. RGVF034_RGV任务类型错误 = 1 << 9,
  77. RGVF035_RGV任务号错误 = 1 << 10,
  78. RGVF036_RGV货物超出故障 = 1 << 11,
  79. RGVF037_RGV输送线变频器故障 = 1 << 12,
  80. RGVF038_RGV输送线传感器异常 = 1 << 13,
  81. RGVF039_RGV输送线运行超时 = 1 << 14,
  82. RGVF040_RGV输送线总故障 = 1 << 15,
  83. }
  84. [Flags]
  85. public enum RgvStatus1Enum : ushort
  86. {
  87. RGVS001_RGV与站台交互完成 = 1 << 0,
  88. RGVS002_RGV前方有障暂停运行 = 1 << 1,
  89. RGVS003_RGV = 1 << 2,
  90. RGVS004_RGV = 1 << 3,
  91. RGVS005_RGV = 1 << 4,
  92. RGVS006_RGV = 1 << 5,
  93. RGVS007_RGV = 1 << 6,
  94. RGVS008_RGV = 1 << 7,
  95. RGVS009_RGV运行 = 1 << 8,
  96. RGVS010_RGV移动中 = 1 << 9,
  97. RGVS011_RGV取货中 = 1 << 10,
  98. RGVS012_RGV放货中 = 1 << 11,
  99. RGVS013_RGV变址运行 = 1 << 12,
  100. RGVS014_RGV定位完成 = 1 << 13,
  101. RGVS015_RGV有货光电 = 1 << 14,
  102. RGVS016_RGV与站台交互中 = 1 << 15,
  103. }
  104. [Flags]
  105. public enum RgvStatus2Enum : ushort
  106. {
  107. RGVS017_RGV任务挂起 = 1 << 0,
  108. RGVS018_RGV移动中 = 1 << 1,
  109. RGVS019_RGV取货中 = 1 << 2,
  110. RGVS020_RGV放货中 = 1 << 3,
  111. RGVS021_RGV定位完全 = 1 << 4,
  112. RGVS022_RGV有货光电 = 1 << 5,
  113. RGVS023_RGV与站台交互中 = 1 << 6,
  114. RGVS024_RGV与站台交互完 = 1 << 7,
  115. RGVS025_RGV = 1 << 8,
  116. RGVS026_RGV = 1 << 9,
  117. RGVS027_RGV = 1 << 10,
  118. RGVS028_RGV = 1 << 11,
  119. RGVS029_RGV = 1 << 12,
  120. RGVS030_RGV = 1 << 13,
  121. RGVS031_RGV = 1 << 14,
  122. RGVS032_RGV = 1 << 15,
  123. }
  124. [Flags]
  125. public enum RgvStatus3Enum : ushort
  126. {
  127. RGVS033_RGV任务挂起 = 1 << 0,
  128. RGVS034_RGV移动中 = 1 << 1,
  129. RGVS035_RGV取货中 = 1 << 2,
  130. RGVS036_RGV放货中 = 1 << 3,
  131. RGVS037_RGV定位完全 = 1 << 4,
  132. RGVS038_RGV有货光电 = 1 << 5,
  133. RGVS039_RGV与站台交互中 = 1 << 6,
  134. RGVS040_RGV与站台交互完 = 1 << 7,
  135. RGVS041_RGV = 1 << 8,
  136. RGVS042_RGV = 1 << 9,
  137. RGVS043_RGV = 1 << 10,
  138. RGVS044_RGV = 1 << 11,
  139. RGVS045_RGV = 1 << 12,
  140. RGVS046_RGV = 1 << 13,
  141. RGVS047_RGV = 1 << 14,
  142. RGVS048_RGV = 1 << 15,
  143. }
  144. public class RGVSignal : EquipmentSignal
  145. {
  146. #region variable
  147. #endregion;
  148. #region Properties
  149. #region DB520
  150. /// <summary>
  151. /// 任务号
  152. /// </summary>
  153. public uint DB520_TaskID_1
  154. {
  155. get
  156. {
  157. return Query_uint_DB_WCS_ReadWrite(0);
  158. }
  159. }
  160. /// <summary>
  161. /// 任务类型
  162. /// </summary>
  163. public ushort DB520_TaskType_1
  164. {
  165. get
  166. {
  167. return Query_ushort_DB_WCS_ReadWrite(4);
  168. }
  169. }
  170. /// <summary>
  171. /// 起始地址
  172. /// </summary>
  173. public ushort DB520_StartPosition_1
  174. {
  175. get
  176. {
  177. return Query_ushort_DB_WCS_ReadWrite(6);
  178. }
  179. }
  180. /// <summary>
  181. /// 目标地址
  182. /// </summary>
  183. public ushort DB520_DestPosition_1
  184. {
  185. get
  186. {
  187. return Query_ushort_DB_WCS_ReadWrite(8);
  188. }
  189. }
  190. /// <summary>
  191. /// 优先级
  192. /// </summary>
  193. public ushort DB520_Priority_1
  194. {
  195. get
  196. {
  197. return Query_ushort_DB_WCS_ReadWrite(10);
  198. }
  199. }
  200. /// <summary>
  201. /// 备注 是否称重(1.称重;0.不称重)
  202. /// </summary>
  203. public ushort DB520_Res1_1
  204. {
  205. get
  206. {
  207. return Query_ushort_DB_WCS_ReadWrite(12);
  208. }
  209. }
  210. /// <summary>
  211. /// 备注
  212. /// </summary>
  213. public ushort DB520_Res2_1
  214. {
  215. get
  216. {
  217. return Query_ushort_DB_WCS_ReadWrite(14);
  218. }
  219. }
  220. /// <summary>
  221. /// 触发信号
  222. /// </summary>
  223. public ushort DB520_Trigger_1
  224. {
  225. get
  226. {
  227. return Query_ushort_DB_WCS_ReadWrite(16);
  228. }
  229. }
  230. /// <summary>
  231. /// 任务号
  232. /// </summary>
  233. public uint DB520_TaskID_2
  234. {
  235. get
  236. {
  237. return Query_uint_DB_WCS_ReadWrite(18);
  238. }
  239. }
  240. /// <summary>
  241. /// 任务类型
  242. /// </summary>
  243. public ushort DB520_TaskType_2
  244. {
  245. get
  246. {
  247. return Query_ushort_DB_WCS_ReadWrite(22);
  248. }
  249. }
  250. /// <summary>
  251. /// 起始地址
  252. /// </summary>
  253. public ushort DB520_StartPosition_2
  254. {
  255. get
  256. {
  257. return Query_ushort_DB_WCS_ReadWrite(24);
  258. }
  259. }
  260. /// <summary>
  261. /// 目标地址
  262. /// </summary>
  263. public ushort DB520_DestPosition_2
  264. {
  265. get
  266. {
  267. return Query_ushort_DB_WCS_ReadWrite(26);
  268. }
  269. }
  270. /// <summary>
  271. /// 优先级
  272. /// </summary>
  273. public ushort DB520_Priority_2
  274. {
  275. get
  276. {
  277. return Query_ushort_DB_WCS_ReadWrite(28);
  278. }
  279. }
  280. /// <summary>
  281. /// 备注
  282. /// </summary>
  283. public ushort DB520_Res1_2
  284. {
  285. get
  286. {
  287. return Query_ushort_DB_WCS_ReadWrite(30);
  288. }
  289. }
  290. /// <summary>
  291. /// 备注
  292. /// </summary>
  293. public ushort DB520_Res2_2
  294. {
  295. get
  296. {
  297. return Query_ushort_DB_WCS_ReadWrite(32);
  298. }
  299. }
  300. /// <summary>
  301. /// 触发信号
  302. /// </summary>
  303. public ushort DB520_Trigger_2
  304. {
  305. get
  306. {
  307. return Query_ushort_DB_WCS_ReadWrite(34);
  308. }
  309. }
  310. #endregion;
  311. #region DB521
  312. /// <summary>
  313. /// 任务号
  314. /// </summary>
  315. public uint DB521_TaskID_1
  316. {
  317. get
  318. {
  319. return Query_uint_DB_WCS_Read(0);
  320. }
  321. }
  322. /// <summary>
  323. /// 任务类型
  324. /// </summary>
  325. public ushort DB521_TaskType_1
  326. {
  327. get
  328. {
  329. return Query_ushort_DB_WCS_Read(4);
  330. }
  331. }
  332. /// <summary>
  333. /// 起始地址
  334. /// </summary>
  335. public ushort DB521_StartPosition_1
  336. {
  337. get
  338. {
  339. return Query_ushort_DB_WCS_Read(6);
  340. }
  341. }
  342. /// <summary>
  343. /// 目标地址
  344. /// </summary>
  345. public ushort DB521_DestPosition_1
  346. {
  347. get
  348. {
  349. return Query_ushort_DB_WCS_Read(8);
  350. }
  351. }
  352. /// <summary>
  353. /// 优先级
  354. /// </summary>
  355. public ushort DB521_Priority_1
  356. {
  357. get
  358. {
  359. return Query_ushort_DB_WCS_Read(10);
  360. }
  361. }
  362. /// <summary>
  363. /// 备注
  364. /// </summary>
  365. public ushort DB521_Res1_1
  366. {
  367. get
  368. {
  369. return Query_ushort_DB_WCS_Read(12);
  370. }
  371. }
  372. /// <summary>
  373. /// 备注
  374. /// </summary>
  375. public ushort DB521_Res2_1
  376. {
  377. get
  378. {
  379. return Query_ushort_DB_WCS_Read(14);
  380. }
  381. }
  382. /// <summary>
  383. /// 光电有货状态
  384. /// </summary>
  385. public bool DB521_PH_Status_1
  386. {
  387. get
  388. {
  389. return Query_bool_DB_WCS_Read(16, 0);
  390. }
  391. }
  392. /// <summary>
  393. /// RGV到站
  394. /// </summary>
  395. public bool DB521_ToSition_1
  396. {
  397. get
  398. {
  399. return Query_bool_DB_WCS_Read(16, 1);
  400. }
  401. }
  402. /// <summary>
  403. /// 任务完成
  404. /// </summary>
  405. public bool DB521_Finish_1
  406. {
  407. get
  408. {
  409. return Query_bool_DB_WCS_Read(16, 2);
  410. }
  411. }
  412. /// <summary>
  413. /// 任务号
  414. /// </summary>
  415. public uint DB521_TaskID_2
  416. {
  417. get
  418. {
  419. return Query_uint_DB_WCS_Read(18);
  420. }
  421. }
  422. /// <summary>
  423. /// 任务类型
  424. /// </summary>
  425. public ushort DB521_TaskType_2
  426. {
  427. get
  428. {
  429. return Query_ushort_DB_WCS_Read(22);
  430. }
  431. }
  432. /// <summary>
  433. /// 起始地址
  434. /// </summary>
  435. public ushort DB521_StartPosition_2
  436. {
  437. get
  438. {
  439. return Query_ushort_DB_WCS_Read(24);
  440. }
  441. }
  442. /// <summary>
  443. /// 目标地址
  444. /// </summary>
  445. public ushort DB521_DestPosition_2
  446. {
  447. get
  448. {
  449. return Query_ushort_DB_WCS_Read(26);
  450. }
  451. }
  452. /// <summary>
  453. /// 优先级
  454. /// </summary>
  455. public ushort DB521_Priority_2
  456. {
  457. get
  458. {
  459. return Query_ushort_DB_WCS_Read(28);
  460. }
  461. }
  462. /// <summary>
  463. /// 备注
  464. /// </summary>
  465. public ushort DB521_Res1_2
  466. {
  467. get
  468. {
  469. return Query_ushort_DB_WCS_Read(30);
  470. }
  471. }
  472. /// <summary>
  473. /// 备注
  474. /// </summary>
  475. public ushort DB521_Res2_2
  476. {
  477. get
  478. {
  479. return Query_ushort_DB_WCS_Read(32);
  480. }
  481. }
  482. /// <summary>
  483. /// 光电有货状态
  484. /// </summary>
  485. public bool DB521_PH_Status_2
  486. {
  487. get
  488. {
  489. return Query_bool_DB_WCS_Read(34, 0);
  490. }
  491. }
  492. /// <summary>
  493. /// RGV到站
  494. /// </summary>
  495. public bool DB521_ToSition_2
  496. {
  497. get
  498. {
  499. return Query_bool_DB_WCS_Read(34, 1);
  500. }
  501. }
  502. /// <summary>
  503. /// 任务完成
  504. /// </summary>
  505. public bool DB521_Finish_2
  506. {
  507. get
  508. {
  509. return Query_bool_DB_WCS_Read(34, 2);
  510. }
  511. }
  512. /// <summary>
  513. /// 系统状态(1空闲、2取货中、3送货中、4小车移动中、5 故障)
  514. /// </summary>
  515. public ushort DB521_SystemStatus
  516. {
  517. get
  518. {
  519. return Query_ushort_DB_WCS_Read(36);
  520. }
  521. }
  522. /// <summary>
  523. /// WorkMode:1自动、2半自动、3手动、4 维护
  524. /// </summary>
  525. public ushort DB521_WorkMode
  526. {
  527. get
  528. {
  529. return Query_ushort_DB_WCS_Read(38);
  530. }
  531. }
  532. /// <summary>
  533. /// 备注
  534. /// </summary>
  535. public ushort DB521_Res
  536. {
  537. get
  538. {
  539. return Query_ushort_DB_WCS_Read(40);
  540. }
  541. }
  542. /// <summary>
  543. /// 位置值
  544. /// </summary>
  545. public ushort DB521_Position
  546. {
  547. get
  548. {
  549. return Query_ushort_DB_WCS_Read(42);
  550. }
  551. }
  552. /// <summary>
  553. /// 运行公里数
  554. /// </summary>
  555. public uint DB521_Mileage
  556. {
  557. get
  558. {
  559. return Query_uint_DB_WCS_Read(46);
  560. }
  561. }
  562. /// <summary>
  563. /// 运行时间(单位:小时,带小数)
  564. /// </summary>
  565. public uint DB521_Runtime
  566. {
  567. get
  568. {
  569. return Query_uint_DB_WCS_Read(50);
  570. }
  571. }
  572. #endregion;
  573. #region DB523
  574. public string AlarmFault
  575. {
  576. get
  577. {
  578. StringBuilder sb = new StringBuilder();
  579. if (AlarmFault1 != 0)
  580. {
  581. sb.Append(AlarmFault1.ToString());
  582. }
  583. if (AlarmFault2 != 0)
  584. {
  585. sb.Append(AlarmFault2.ToString());
  586. }
  587. if (AlarmFault3 != 0)
  588. {
  589. sb.Append(AlarmFault3.ToString());
  590. }
  591. return sb.ToString();
  592. }
  593. }
  594. /// <summary>
  595. /// 环穿
  596. /// </summary>
  597. public RgvFault1Enum AlarmFault1
  598. {
  599. get
  600. {
  601. ushort num = Query_ushort_DB_Equ_Status(0);
  602. return (RgvFault1Enum)num;
  603. }
  604. }
  605. /// <summary>
  606. /// 工位1
  607. /// </summary>
  608. public RgvFault2Enum AlarmFault2
  609. {
  610. get
  611. {
  612. ushort num = Query_ushort_DB_Equ_Status(2);
  613. return (RgvFault2Enum)num;
  614. }
  615. }
  616. /// <summary>
  617. /// 工位2
  618. /// </summary>
  619. public RgvFault3Enum AlarmFault3
  620. {
  621. get
  622. {
  623. ushort num = Query_ushort_DB_Equ_Status(4);
  624. return (RgvFault3Enum)num;
  625. }
  626. }
  627. /// <summary>
  628. /// 环穿
  629. /// </summary>
  630. public RgvStatus1Enum Status1
  631. {
  632. get
  633. {
  634. ushort num = Query_ushort_DB_Equ_Status(6);
  635. return (RgvStatus1Enum)num;
  636. }
  637. }
  638. /// <summary>
  639. /// 工位1
  640. /// </summary>
  641. public RgvStatus2Enum Status2
  642. {
  643. get
  644. {
  645. ushort num = Query_ushort_DB_Equ_Status(8);
  646. return (RgvStatus2Enum)num;
  647. }
  648. }
  649. /// <summary>
  650. /// 工位2
  651. /// </summary>
  652. public RgvStatus3Enum Status3
  653. {
  654. get
  655. {
  656. ushort num = Query_ushort_DB_Equ_Status(8);
  657. return (RgvStatus3Enum)num;
  658. }
  659. }
  660. #endregion;
  661. #endregion;
  662. #region Constructor
  663. public RGVSignal(string plcname, List<ConvDbInfo> equDBInfoSet) : base(plcname, equDBInfoSet)
  664. {
  665. }
  666. #endregion;
  667. #region Method
  668. #endregion;
  669. }
  670. }