RGVSignal.cs 20 KB

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