ConvSignal.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using SqlSugar;
  6. namespace WCS.PLC.Model.Equipment
  7. {
  8. [Flags]
  9. public enum MatureRoomFaultEnum : ushort
  10. {
  11. C001_总故障 = 1 << 8,
  12. C002_急停故障 = 1 << 9,
  13. C003_超时故障 = 1 << 10,
  14. C004_驱动故障 = 1 << 11,
  15. C005_空气开关故障 = 1 << 12,
  16. C006_传感器异常故障 = 1 << 13,
  17. C007_温度异常故障 = 1 << 14
  18. }
  19. [Flags]
  20. public enum ConvFaultEnum : ushort
  21. {
  22. C009_超时故障 = 1 << 0,
  23. C010_驱动故障 = 1 << 1,
  24. C011_空气开关故障 = 1 << 2,
  25. C012_前极限故障 = 1 << 3,
  26. C013_后极限故障 = 1 << 4,
  27. C014_无Ready信号_请检查柜内空开 = 1 << 5,
  28. C015_上极限故障 = 1 << 6,
  29. C016_下极限故障 = 1 << 7,
  30. C001_总故障 = 1 << 8,
  31. C002_急停故障 = 1 << 9,
  32. C003_超时故障 = 1 << 10,
  33. C004_驱动故障 = 1 << 11,
  34. C005_空气开关故障 = 1 << 12,
  35. C006_传感器异常故障 = 1 << 13,
  36. C007_超边故障 = 1 << 14,
  37. C008_无Ready信号_请检查柜内空开 = 1 << 15
  38. }
  39. [Flags]
  40. public enum Conv1044FaultEnum : ushort
  41. {
  42. C009_超时故障 = 1 << 0,
  43. C010_驱动故障 = 1 << 1,
  44. C011_空气开关故障 = 1 << 2,
  45. C012_前极限故障 = 1 << 3,
  46. C013_后极限故障 = 1 << 4,
  47. C014_无Ready信号_请检查柜内空开 = 1 << 5,
  48. C015_上极限故障 = 1 << 6,
  49. C016_下极限故障 = 1 << 7,
  50. C001_总故障 = 1 << 8,
  51. C002_急停故障 = 1 << 9,
  52. C003_超时故障 = 1 << 10,
  53. C004_驱动故障 = 1 << 11,
  54. C005_空气开关故障 = 1 << 12,
  55. C006_传感器异常故障 = 1 << 13,
  56. C007_超边故障 = 1 << 14,
  57. C008_无Ready信号_请检查柜内空开 = 1 << 15
  58. }
  59. /// <summary>
  60. /// 线体PLC读写
  61. /// </summary>
  62. public class ConvSignal : EquipmentSignal
  63. {
  64. #region variable
  65. #endregion;
  66. #region Properties
  67. #region DB520信号
  68. /// <summary>
  69. /// 任务号
  70. /// </summary>
  71. public int DB520_Tasknum
  72. {
  73. get
  74. {
  75. return Query_int_DB_WCS_ReadWrite(0);
  76. }
  77. }
  78. /// <summary>
  79. /// 货物条码
  80. /// </summary>
  81. public uint DB520_Goodscode
  82. {
  83. get
  84. {
  85. return Query_uint_DB_WCS_ReadWrite(4);
  86. }
  87. }
  88. /// <summary>
  89. /// 货物类型
  90. /// </summary>
  91. public ushort DB520_Goodstype
  92. {
  93. get
  94. {
  95. return Query_ushort_DB_WCS_ReadWrite(8);
  96. }
  97. }
  98. /// <summary>
  99. /// 货物尺寸
  100. /// </summary>
  101. public ushort DB520_Goodssize
  102. {
  103. get
  104. {
  105. return Query_ushort_DB_WCS_ReadWrite(10);
  106. }
  107. }
  108. /// <summary>
  109. /// 起始地址
  110. /// </summary>
  111. public ushort DB520_Goodsstart
  112. {
  113. get
  114. {
  115. return Query_ushort_DB_WCS_ReadWrite(12);
  116. }
  117. }
  118. /// <summary>
  119. /// 目标地址
  120. /// </summary>
  121. public ushort DB520_Goodsend
  122. {
  123. get
  124. {
  125. return Query_ushort_DB_WCS_ReadWrite(14);
  126. }
  127. }
  128. /// <summary>
  129. /// WCS确认信号
  130. /// </summary>
  131. public bool DB520_Confirm
  132. {
  133. get
  134. {
  135. return Query_bool_DB_WCS_ReadWrite(16, 1);
  136. }
  137. }
  138. /// <summary>
  139. /// 任务删除
  140. /// </summary>
  141. public bool DB520_TaskDelete
  142. {
  143. get
  144. {
  145. return Query_bool_DB_WCS_ReadWrite(16, 2);
  146. }
  147. }
  148. /// <summary>
  149. /// 上位未分配任务
  150. /// </summary>
  151. public bool DB520_Notask
  152. {
  153. get
  154. {
  155. return Query_bool_DB_WCS_ReadWrite(16, 3);
  156. }
  157. }
  158. /// <summary>
  159. /// 颜色1
  160. /// </summary>
  161. public bool DB520_TrayColor_One
  162. {
  163. get
  164. {
  165. return Query_bool_DB_WCS_ReadWrite(17, 0);
  166. }
  167. }
  168. /// <summary>
  169. /// 颜色2
  170. /// </summary>
  171. public bool DB520_TrayColor_Two
  172. {
  173. get
  174. {
  175. return Query_bool_DB_WCS_ReadWrite(17, 1);
  176. }
  177. }
  178. /// <summary>
  179. /// 颜色3
  180. /// </summary>
  181. public bool DB520_TrayColor_Three
  182. {
  183. get
  184. {
  185. return Query_bool_DB_WCS_ReadWrite(17, 2);
  186. }
  187. }
  188. /// <summary>
  189. /// 备用
  190. /// </summary>
  191. public bool DB520_RollerTurn
  192. {
  193. get
  194. {
  195. return Query_bool_DB_WCS_ReadWrite(17, 5);
  196. }
  197. }
  198. /// <summary>
  199. /// 备用
  200. /// </summary>
  201. public bool DB520_Res01
  202. {
  203. get
  204. {
  205. return Query_bool_DB_WCS_ReadWrite(17, 6);
  206. }
  207. }
  208. public bool DB520_Res02
  209. {
  210. get
  211. {
  212. return Query_bool_DB_WCS_ReadWrite(17, 7);
  213. }
  214. }
  215. public ushort DB520_Res03
  216. {
  217. get
  218. {
  219. return Query_ushort_DB_WCS_ReadWrite(18);
  220. }
  221. }
  222. public ushort DB520_Res04
  223. {
  224. get
  225. {
  226. return Query_ushort_DB_WCS_ReadWrite(20);
  227. }
  228. }
  229. #endregion;
  230. #region DB521信号
  231. /// <summary>
  232. /// 任务号
  233. /// </summary>
  234. public int DB521_Tasknum
  235. {
  236. get
  237. {
  238. return Query_int_DB_WCS_Read(0);
  239. }
  240. }
  241. /// <summary>
  242. /// 货物条码(电控唯一值,每次加1)
  243. /// </summary>
  244. public uint DB521_Goodscode
  245. {
  246. get
  247. {
  248. return Query_uint_DB_WCS_Read(4);
  249. }
  250. }
  251. ///// <summary>
  252. ///// 货物条码(电控唯一值,每次加1)
  253. ///// </summary>
  254. //public string DB521_Goodscode
  255. //{
  256. // get
  257. // {
  258. // return Query_string_DB_WCS_Read(4);
  259. // }
  260. //}
  261. /// <summary>
  262. /// 货物类型
  263. /// </summary>
  264. public ushort DB521_Goodstype
  265. {
  266. get
  267. {
  268. return Query_ushort_DB_WCS_Read(8);
  269. }
  270. }
  271. /// <summary>
  272. /// 货物尺寸
  273. /// </summary>
  274. public ushort DB521_Goodssize
  275. {
  276. get
  277. {
  278. return Query_ushort_DB_WCS_Read(10);
  279. }
  280. }
  281. /// <summary>
  282. /// 起始地址
  283. /// </summary>
  284. public ushort DB521_Goodsstart
  285. {
  286. get
  287. {
  288. return Query_ushort_DB_WCS_Read(12);
  289. }
  290. }
  291. /// <summary>
  292. /// 目标地址
  293. /// </summary>
  294. public ushort DB521_Goodsend
  295. {
  296. get
  297. {
  298. return Query_ushort_DB_WCS_Read(14);
  299. }
  300. }
  301. /// <summary>
  302. /// PLC请求信号
  303. /// </summary>
  304. public bool DB521_Request
  305. {
  306. get
  307. {
  308. return Query_bool_DB_WCS_Read(16, 0);
  309. }
  310. }
  311. /// <summary>
  312. /// WCS确认信号
  313. /// </summary>
  314. public bool DB521_Confirm
  315. {
  316. get
  317. {
  318. return Query_bool_DB_WCS_Read(16, 1);
  319. }
  320. }
  321. /// <summary>
  322. /// 任务删除
  323. /// </summary>
  324. public bool DB521_TaskDelete
  325. {
  326. get
  327. {
  328. return Query_bool_DB_WCS_Read(16, 2);
  329. }
  330. }
  331. /// <summary>
  332. /// 上位未分配任务
  333. /// </summary>
  334. public bool DB521_Notask
  335. {
  336. get
  337. {
  338. return Query_bool_DB_WCS_Read(16, 3);
  339. }
  340. }
  341. /// <summary>
  342. /// 光电有货状态位
  343. /// </summary>
  344. public bool CvDB51_PH_Status
  345. {
  346. get
  347. {
  348. return Query_bool_DB_WCS_Read(16, 4);
  349. }
  350. }
  351. /// <summary>
  352. /// 外形/条码等货物故障
  353. /// </summary>
  354. public bool DB521_Goods_Err
  355. {
  356. get
  357. {
  358. return Query_bool_DB_WCS_Read(16, 5);
  359. }
  360. }
  361. /// <summary>
  362. /// 前超长故障(允许放货)
  363. /// </summary>
  364. public bool DB521_F_Outside
  365. {
  366. get
  367. {
  368. return Query_bool_DB_WCS_Read(16, 6);
  369. }
  370. }
  371. /// <summary>
  372. /// 后超长故障(放货允许离开)
  373. /// </summary>
  374. public bool DB521_B_Outside
  375. {
  376. get
  377. {
  378. return Query_bool_DB_WCS_Read(16, 7);
  379. }
  380. }
  381. /// <summary>
  382. /// 左超宽故障(允许取货)
  383. /// </summary>
  384. public bool DB521_L_Outside
  385. {
  386. get
  387. {
  388. return Query_bool_DB_WCS_Read(17, 0);
  389. }
  390. }
  391. /// <summary>
  392. /// 右超宽故障(取货允许离开)
  393. /// </summary>
  394. public bool DB521_R_Outside
  395. {
  396. get
  397. {
  398. return Query_bool_DB_WCS_Read(17, 1);
  399. }
  400. }
  401. /// <summary>
  402. /// 超高故障
  403. /// </summary>
  404. public bool DB521_H_Outside
  405. {
  406. get
  407. {
  408. return Query_bool_DB_WCS_Read(17, 2);
  409. }
  410. }
  411. /// <summary>
  412. /// 条码未读出
  413. /// </summary>
  414. public bool DB521_BCR_Noread
  415. {
  416. get
  417. {
  418. return Query_bool_DB_WCS_Read(17, 3);
  419. }
  420. }
  421. /// <summary>
  422. /// 超重
  423. /// </summary>
  424. public bool DB521_Overload
  425. {
  426. get
  427. {
  428. return Query_bool_DB_WCS_Read(17, 4);
  429. }
  430. }
  431. public bool DB521_Res01
  432. {
  433. get
  434. {
  435. return Query_bool_DB_WCS_Read(17, 5);
  436. }
  437. }
  438. public bool DB521_Res02
  439. {
  440. get
  441. {
  442. return Query_bool_DB_WCS_Read(17, 6);
  443. }
  444. }
  445. public bool DB521_Res03
  446. {
  447. get
  448. {
  449. return Query_bool_DB_WCS_Read(17, 7);
  450. }
  451. }
  452. /// <summary>
  453. /// 1214代表重量
  454. /// </summary>
  455. public int DB521_Res04_1
  456. {
  457. get
  458. {
  459. return Query_ushort_DB_WCS_Read(18);
  460. }
  461. }
  462. public int DB521_Res04_2
  463. {
  464. get
  465. {
  466. return Query_ushort_DB_WCS_Read(20);
  467. }
  468. }
  469. /// <summary>
  470. /// 重量/温度
  471. /// </summary>
  472. public int DB521_Res04
  473. {
  474. get
  475. {
  476. return Query_int_DB_WCS_Read(18);
  477. }
  478. }
  479. #endregion;
  480. #region DB523 设备状态
  481. public MatureRoomFaultEnum MatureRoomFault
  482. {
  483. get
  484. {
  485. ushort num = Query_ushort_DB_Equ_Status(0);
  486. return (MatureRoomFaultEnum)num;
  487. }
  488. }
  489. public ConvFaultEnum ConvFault
  490. {
  491. get
  492. {
  493. ushort num = Query_ushort_DB_Equ_Status(0);
  494. return (ConvFaultEnum)num;
  495. }
  496. }
  497. public Conv1044FaultEnum Conv1044Fault
  498. {
  499. get
  500. {
  501. ushort num = Query_ushort_DB_Equ_Status(0);
  502. return (Conv1044FaultEnum)num;
  503. }
  504. }
  505. /// <summary>
  506. /// 总故障
  507. /// </summary>
  508. public bool DB523_Fault
  509. {
  510. get
  511. {
  512. return Query_bool_DB_Equ_Status(0, 0);
  513. }
  514. }
  515. /// <summary>
  516. /// 急停故障
  517. /// </summary>
  518. public bool DB523_ES_Fault
  519. {
  520. get
  521. {
  522. return Query_bool_DB_Equ_Status(0, 1);
  523. }
  524. }
  525. /// <summary>
  526. /// 超时故障
  527. /// </summary>
  528. public bool DB523_Timeout_Fault_1
  529. {
  530. get
  531. {
  532. return Query_bool_DB_Equ_Status(0, 2);
  533. }
  534. }
  535. /// <summary>
  536. /// 驱动故障
  537. /// </summary>
  538. public bool DB523_INV_Fault_1
  539. {
  540. get
  541. {
  542. return Query_bool_DB_Equ_Status(0, 3);
  543. }
  544. }
  545. /// <summary>
  546. /// 空气开关故障
  547. /// </summary>
  548. public bool DB523_QF_Fault_1
  549. {
  550. get
  551. {
  552. return Query_bool_DB_Equ_Status(0, 4);
  553. }
  554. }
  555. /// <summary>
  556. /// 传感器异常故障
  557. /// </summary>
  558. public bool DB523_Sensor_Fault_1
  559. {
  560. get
  561. {
  562. return Query_bool_DB_Equ_Status(0, 5);
  563. }
  564. }
  565. /// <summary>
  566. /// 超边故障
  567. /// </summary>
  568. public bool DB523_Outside_Fault_1
  569. {
  570. get
  571. {
  572. return Query_bool_DB_Equ_Status(0, 6);
  573. }
  574. }
  575. /// <summary>
  576. /// 无Ready信号,请检查柜内空开
  577. /// </summary>
  578. public bool DB523_NoReady_1
  579. {
  580. get
  581. {
  582. return Query_bool_DB_Equ_Status(0, 7);
  583. }
  584. }
  585. /// <summary>
  586. /// 超时故障2
  587. /// </summary>
  588. public bool DB523_Timeout_Fault_2
  589. {
  590. get
  591. {
  592. return Query_bool_DB_Equ_Status(1, 0);
  593. }
  594. }
  595. /// <summary>
  596. /// 驱动故障2
  597. /// </summary>
  598. public bool DB523_INV_Fault_2
  599. {
  600. get
  601. {
  602. return Query_bool_DB_Equ_Status(1, 1);
  603. }
  604. }
  605. /// <summary>
  606. /// 空气开关故障2
  607. /// </summary>
  608. public bool DB523_QF_Fault_2
  609. {
  610. get
  611. {
  612. return Query_bool_DB_Equ_Status(1, 2);
  613. }
  614. }
  615. /// <summary>
  616. /// 前极限故障
  617. /// </summary>
  618. public bool DB523_Front_Limited_Fault_2
  619. {
  620. get
  621. {
  622. return Query_bool_DB_Equ_Status(1, 3);
  623. }
  624. }
  625. /// <summary>
  626. /// 后极限故障
  627. /// </summary>
  628. public bool DB523_Back_Limited_Fault_2
  629. {
  630. get
  631. {
  632. return Query_bool_DB_Equ_Status(1, 4);
  633. }
  634. }
  635. /// <summary>
  636. /// 无Ready信号,请检查柜内空开2
  637. /// </summary>
  638. public bool DB523_NoReady_2
  639. {
  640. get
  641. {
  642. return Query_bool_DB_Equ_Status(1, 5);
  643. }
  644. }
  645. /// <summary>
  646. /// 上极限故障
  647. /// </summary>
  648. public bool DB523_UP_Limited_Fault_2
  649. {
  650. get
  651. {
  652. return Query_bool_DB_Equ_Status(1, 6);
  653. }
  654. }
  655. /// <summary>
  656. /// 下极限故障
  657. /// </summary>
  658. public bool DB523_DN_Limited_Fault_2
  659. {
  660. get
  661. {
  662. return Query_bool_DB_Equ_Status(1, 7);
  663. }
  664. }
  665. /// <summary>
  666. /// 自动位(1为自动)
  667. /// </summary>
  668. public bool DB523_Auto
  669. {
  670. get
  671. {
  672. return Query_bool_DB_Equ_Status(4, 0);
  673. }
  674. }
  675. /// <summary>
  676. /// 选中状态位
  677. /// </summary>
  678. public bool DB523_Choice_Bit
  679. {
  680. get
  681. {
  682. return Query_bool_DB_Equ_Status(4, 1);
  683. }
  684. }
  685. /// <summary>
  686. /// 任务有货状态位
  687. /// </summary>
  688. public bool DB523_OT_Status
  689. {
  690. get
  691. {
  692. return Query_bool_DB_Equ_Status(4, 2);
  693. }
  694. }
  695. /// <summary>
  696. /// 光电有货状态位
  697. /// </summary>
  698. public bool DB523_PH_Status
  699. {
  700. get
  701. {
  702. return Query_bool_DB_Equ_Status(4, 3);
  703. }
  704. }
  705. /// <summary>
  706. /// 运行状态位
  707. /// </summary>
  708. public bool DB523_Run
  709. {
  710. get
  711. {
  712. return Query_bool_DB_Equ_Status(4, 4);
  713. }
  714. }
  715. /// <summary>
  716. /// 正转
  717. /// </summary>
  718. public bool DB523_Fwd_1
  719. {
  720. get
  721. {
  722. return Query_bool_DB_Equ_Status(4, 5);
  723. }
  724. }
  725. /// <summary>
  726. /// 反转
  727. /// </summary>
  728. public bool DB523_Rev_1
  729. {
  730. get
  731. {
  732. return Query_bool_DB_Equ_Status(4, 6);
  733. }
  734. }
  735. /// <summary>
  736. /// 上升/右转/伸出(顶升移栽升降、拆码盘机升降、提升机升降、拆码盘机拨叉伸出)
  737. /// </summary>
  738. public bool DB523_Up_Right_Front_2
  739. {
  740. get
  741. {
  742. return Query_bool_DB_Equ_Status(4, 7);
  743. }
  744. }
  745. /// <summary>
  746. /// 下降/左转/缩回(顶升移栽升降、拆码盘机升降、提升机升降、拆码盘机拨叉缩回)
  747. /// </summary>
  748. public bool DB523_Down_Left_Back_2
  749. {
  750. get
  751. {
  752. return Query_bool_DB_Equ_Status(5, 0);
  753. }
  754. }
  755. /// <summary>
  756. /// 高位(顶升移栽升降、拆码盘机升降、提升机升降)
  757. /// </summary>
  758. public bool DB523_High_Station_2
  759. {
  760. get
  761. {
  762. return Query_bool_DB_Equ_Status(5, 1);
  763. }
  764. }
  765. /// <summary>
  766. /// 中位(拆码盘机升降)
  767. /// </summary>
  768. public bool DB523_Mid_Station_2
  769. {
  770. get
  771. {
  772. return Query_bool_DB_Equ_Status(5, 2);
  773. }
  774. }
  775. /// <summary>
  776. /// 低位(顶升移栽升降、拆码盘机升降、提升机升降)
  777. /// </summary>
  778. public bool DB523_Low_Station_2
  779. {
  780. get
  781. {
  782. return Query_bool_DB_Equ_Status(5, 3);
  783. }
  784. }
  785. /// <summary>
  786. /// 前位(拆码盘机拨叉伸出)
  787. /// </summary>
  788. public bool DB523_Front_Station_2
  789. {
  790. get
  791. {
  792. return Query_bool_DB_Equ_Status(5, 4);
  793. }
  794. }
  795. /// <summary>
  796. /// 后位(拆码盘机拨叉缩回)
  797. /// </summary>
  798. public bool DB523_Back_Station_2
  799. {
  800. get
  801. {
  802. return Query_bool_DB_Equ_Status(5, 5);
  803. }
  804. }
  805. /// <summary>
  806. /// 运行时间(Dint)单位小时(带小数)
  807. /// </summary>
  808. public float DB523_Runtime
  809. {
  810. get
  811. {
  812. return Query_float_DB_Equ_Status(6);
  813. }
  814. }
  815. #endregion;
  816. #region 条码信息
  817. public string BarCodeStr
  818. {
  819. get
  820. {
  821. return string.Join(";", Query_BarCode().ToArray()).Replace("\r", "").Replace("\0", "").Trim();
  822. }
  823. }
  824. public List<string> BarCodeSet
  825. {
  826. get
  827. {
  828. return Query_BarCode();
  829. }
  830. }
  831. #endregion
  832. #endregion;
  833. #region Constructor
  834. public ConvSignal(string plcname, List<ConvDbInfo> equDBInfoSet) : base(plcname, equDBInfoSet)
  835. {
  836. }
  837. #endregion;
  838. #region Method
  839. #endregion;
  840. }
  841. }