| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package com.mes.util;
- import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
- import com.mes.ui.Oprno;
- public class S7PLCUtils {
- // 读取是否开始上料输出,参数为动态的几个Oprno对象,返回第一个上料状态为true的工位对象,否则返回null
- public static Oprno isStart(S7PLC s7PLC, Oprno... oprnos){
- // 遍历所有传入的Oprno对象
- for (Oprno oprno : oprnos) {
- // 检查当前工位的hgA_out和hgB_out点位
- if (s7PLC.readBoolean(oprno.getHgA_out()) || s7PLC.readBoolean(oprno.getHgB_out())) {
- // 如果当前工位的任一上料点位为true,返回该工位对象
- return oprno;
- }
- }
- // 所有工位的上料点位都为false,返回null
- return null;
- }
- // 读取是否加工完成输出,参数为动态的几个Oprno对象,返回第一个加工完成状态为true的工位对象,否则返回null
- public static Oprno isFinish(S7PLC s7PLC, Oprno... oprnos){
- // 遍历所有传入的Oprno对象
- for (Oprno oprno : oprnos) {
- // 检查当前工位的加工完成点位
- if (s7PLC.readBoolean(oprno.getProcess_ok())) {
- // 如果当前工位的加工完成点位为true,返回该工位对象
- return oprno;
- }
- }
- // 所有工位的加工完成点位都为false,返回null
- return null;
- }
- // 读取工件码
- public static String getSnInJXB(Oprno oprno, S7PLC s7PLC){
- if (s7PLC.readBoolean(oprno.getHgA_out())){
- return s7PLC.readString(oprno.getHgA_sn());
- }else if (s7PLC.readBoolean(oprno.getHgB_out())){
- return s7PLC.readString(oprno.getHgB_sn());
- }else {
- return "";
- }
- }
- //从工位上读取工件码
- public static String getSnInOprno(Oprno oprno, S7PLC s7PLC){
- return s7PLC.readString(oprno.getProduct_sn(),50);
- }
- //读取工位结果
- public static Boolean getResultInOprno(Oprno oprno, S7PLC s7PLC){
- Boolean resultOK = s7PLC.readBoolean(oprno.getProcess_result_ok());
- Boolean resultNG = s7PLC.readBoolean(oprno.getProcess_result_ng());
- // 只有当NG为true时返回false
- if (resultOK){
- return resultOK;
- }else return !resultOK && !resultNG;
- }
- }
|