| | |
| | | import java.util.List; |
| | | |
| | | @Component |
| | | public class OP170Callback implements SubscriptionCallback { |
| | | public class OP170Callback { |
| | | |
| | | public MiloService miloService; |
| | | |
| | |
| | | this.productionOrderBatchInfoService = productionOrderBatchInfoService; |
| | | } |
| | | |
| | | @Override |
| | | public void onSubscribe(String identifier, Object value) { |
| | | String ecpStr = "";//异常记录标记 |
| | | try { |
| | | //心跳 |
| | | if(null != value && identifier.equals(OPCElement.OP170_F_HEART_BEAT)){ |
| | | if( "false".equals(value.toString())) |
| | | { |
| | | ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP170_F_HEART_BEAT,true); |
| | | miloService.writeToOpcUa(entity); |
| | | } |
| | | } |
| | | //PLC进站 |
| | | else if(null != value && identifier.equals(OPCElement.OP170_J_PLC_START)){ |
| | | if("true".equals(value.toString())){ |
| | | handleOrder(); |
| | | } |
| | | } |
| | | //PLC出站 |
| | | else if(null != value && identifier.equals(OPCElement.OP170_J_PLC_FINISH)){ |
| | | if("true".equals(value.toString())){ |
| | | handleFinsh(); |
| | | handleInfo(); |
| | | handleMaterial(); |
| | | } |
| | | }else{ |
| | | System.out.println("值没有变"); |
| | | } |
| | | } catch (Exception e) { |
| | | ecpStr ="出现异常:" + logUtil.getTrace(e); |
| | | }finally { |
| | | if(!"".equals(ecpStr)){ |
| | | logger.info(ecpStr+"\r\n"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //PC读工单 |
| | | public void handleOrder() throws Exception { |
| | |
| | | String S_PRODUCT_STATE_CODE = miloService. |
| | | readFromOpcUa(OPCElement.OP170_S_PRODUCT_STATE_CODE) |
| | | .getValue().toString(); |
| | | |
| | | ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP170_J_PC_FINISH,true); |
| | | miloService.writeToOpcUa(entity);//写PC完成 |
| | | //修改报工记录 |
| | | ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam(); |
| | | productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE); |
| | |
| | | } |
| | | } |
| | | |
| | | ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP170_J_PC_FINISH,true); |
| | | miloService.writeToOpcUa(entity);//写PC完成 |
| | | |
| | | logger.info("OP170工位,handleFinsh PC处理完成!"); |
| | | } |
| | | public void handleMaterial() { |
| | |
| | | if(null != list && !list.isEmpty()) { |
| | | for (int i = 0; i < list.size(); i++) { |
| | | CollectionParamConfResult result = (CollectionParamConfResult) list.get(i); |
| | | String value = miloService. |
| | | Object value = miloService. |
| | | readFromOpcUa(result.getGatherAddress()) |
| | | .getValue().toString();//读参数值 |
| | | ParamCollectionParam paramCollectionParam = new ParamCollectionParam(); |
| | | paramCollectionParam.setParamCode(result.getParamCode()); |
| | | paramCollectionParam.setParamName(result.getParamName()); |
| | | paramCollectionParam.setWorkOrderNo(S_ORDER_CODE); |
| | | paramCollectionParam.setSfcCode(S_SFC_CODE); |
| | | paramCollectionParam.setProductCode(S_PRODUCT_CODE); |
| | | paramCollectionParam.setProductionLine(result.getProductionLine()); |
| | | paramCollectionParam.setLocationCode(result.getLocationCode()); |
| | | paramCollectionParam.setParamValue(value); |
| | | paramCollectionParam.setParamLower(result.getParamLower()); |
| | | paramCollectionParam.setParamUpper(result.getParamUpper()); |
| | | paramCollectionParam.setParamStandard(result.getParamCentral()); |
| | | paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate()); |
| | | paramCollectionParam.setUnit(result.getUnit()); |
| | | paramCollectionService.add(paramCollectionParam); |
| | | .getValue();//读参数值 |
| | | if(null != value) { |
| | | ParamCollectionParam paramCollectionParam = new ParamCollectionParam(); |
| | | paramCollectionParam.setParamCode(result.getParamCode()); |
| | | paramCollectionParam.setParamName(result.getParamName()); |
| | | paramCollectionParam.setWorkOrderNo(S_ORDER_CODE); |
| | | paramCollectionParam.setSfcCode(S_SFC_CODE); |
| | | paramCollectionParam.setProductCode(S_PRODUCT_CODE); |
| | | paramCollectionParam.setProductionLine(result.getProductionLine()); |
| | | paramCollectionParam.setLocationCode(result.getLocationCode()); |
| | | paramCollectionParam.setParamValue(value.toString()); |
| | | paramCollectionParam.setParamLower(result.getParamLower()); |
| | | paramCollectionParam.setParamUpper(result.getParamUpper()); |
| | | paramCollectionParam.setParamStandard(result.getParamCentral()); |
| | | paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate()); |
| | | paramCollectionParam.setUnit(result.getUnit()); |
| | | paramCollectionService.add(paramCollectionParam); |
| | | } |
| | | } |
| | | } |
| | | |