S7PLCUtils.java 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.mes.util;
  2. import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
  3. import com.mes.ui.Oprno;
  4. public class S7PLCUtils {
  5. /** 返回第一个上料完成信号为 true 的工位 */
  6. public static Oprno isStart(S7PLC s7PLC, Oprno... oprnos) {
  7. for (Oprno oprno : oprnos) {
  8. if (s7PLC.readBoolean(oprno.getLoad_complete())) {
  9. return oprno;
  10. }
  11. }
  12. return null;
  13. }
  14. /** 返回第一个下料完成信号为 true 的工位 */
  15. public static Oprno isFinish(S7PLC s7PLC, Oprno... oprnos) {
  16. for (Oprno oprno : oprnos) {
  17. if (s7PLC.readBoolean(oprno.getUnload_complete())) {
  18. return oprno;
  19. }
  20. }
  21. return null;
  22. }
  23. /** 读取工位二维码 */
  24. public static String getSnInOprno(Oprno oprno, S7PLC s7PLC) {
  25. return s7PLC.readString(oprno.getProduct_sn(), 50);
  26. }
  27. /** 读取工位结果:OK=true,NG=false;都未置位返回 null 语义用 Boolean 包装时此处 NG 优先 */
  28. public static Boolean getResultInOprno(Oprno oprno, S7PLC s7PLC) {
  29. Boolean resultOK = s7PLC.readBoolean(oprno.getProcess_result_ok());
  30. Boolean resultNG = s7PLC.readBoolean(oprno.getProcess_result_ng());
  31. if (resultNG) {
  32. return false;
  33. }
  34. if (resultOK) {
  35. return true;
  36. }
  37. return null;
  38. }
  39. }