JiuMuMesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
@@ -155,26 +155,32 @@ * @param plcValueArray PLC读取回来的byte类型数据集合 */ public void setPlcParameterList(byte[] plcValueArray) { if (plcParameterMap != null) { Collection<PlcParameterInfo> values= plcParameterMap.values(); for (PlcParameterInfo plcParameterInfo :values) { byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; if (plcValueArray==null||!(plcValueArray.length>0)){ log.info("plcValueArray is null or empty"); return ; } if (plcParameterMap==null){ log.info("plcParameterMap is null or empty"); return ; } Collection<PlcParameterInfo> values= plcParameterMap.values(); for (PlcParameterInfo plcParameterInfo :values) { byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; // System.out.println(plcParameterInfo.getAddressLength()); for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); } if (plcParameterInfo.getAddressLength() == 2) { plcParameterInfo.setValue(String.valueOf(ShortUtil.toUInt16(valueList))); } else if (plcParameterInfo.getAddressLength() == 4) { plcParameterInfo.setValue(String.valueOf(IntegerUtil.toUInt32(valueList))); }else if(plcParameterInfo.getAddressLength()==256){ StringConverter converter = new StringConverter(); String s=""; String extract1 = converter.extract(s.getClass(),valueList, 0, 0); plcParameterInfo.setValue(extract1); }else { plcParameterInfo.setValue((byteToHexString(valueList))); } for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); } if (plcParameterInfo.getAddressLength() == 2) { plcParameterInfo.setValue(String.valueOf(ShortUtil.toUInt16(valueList))); } else if (plcParameterInfo.getAddressLength() == 4) { plcParameterInfo.setValue(String.valueOf(IntegerUtil.toUInt32(valueList))); }else if(plcParameterInfo.getAddressLength()==256){ StringConverter converter = new StringConverter(); String s=""; String extract1 = converter.extract(s.getClass(),valueList, 0, 0); plcParameterInfo.setValue(extract1); }else { plcParameterInfo.setValue((byteToHexString(valueList))); } } } JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
@@ -53,24 +53,26 @@ } public void readData() { try { byte[] resultValues=new byte[PlcMesObject.getPlcAddressLength()]; int maxRead=1092; int size=PlcMesObject.getPlcAddressLength()%maxRead==0? (PlcMesObject.getPlcAddressLength()/maxRead): (PlcMesObject.getPlcAddressLength()/maxRead+1); for (int i = 0; i <size ; i++) { int begin=i*maxRead; int length=(i==size-1?PlcMesObject.getPlcAddressLength()-begin:maxRead); String beginAddress=PlcMesObject.getPlcAddressBegin().substring(0, PlcMesObject.getPlcAddressBegin().indexOf("."))+"."+begin; byte[] getplcvlues = plccontrol.readByte(beginAddress, length); System.arraycopy(getplcvlues,0,resultValues,begin,length); } if (resultValues != null) { byte[] resultValues=plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength()); // byte[] resultValues=new byte[PlcMesObject.getPlcAddressLength()]; // int maxRead=1092; // int size=PlcMesObject.getPlcAddressLength()%maxRead==0? // (PlcMesObject.getPlcAddressLength()/maxRead): // (PlcMesObject.getPlcAddressLength()/maxRead+1); // for (int i = 0; i <size ; i++) { // int begin=i*maxRead; // int length=(i==size-1?PlcMesObject.getPlcAddressLength()-begin:maxRead); // String beginAddress=PlcMesObject.getPlcAddressBegin().substring(0, PlcMesObject.getPlcAddressBegin().indexOf("."))+"."+begin; // byte[] getplcvlues = plccontrol.readByte(beginAddress, length); // System.arraycopy(getplcvlues,0,resultValues,begin,length); // } if (resultValues.length>0) { PlcMesObject.setPlcParameterList(resultValues); } } catch (Exception e) { PlcMesObject=null; log.info("异常:ip:{},port:{},错误{}",this.ip,this.port,e.getMessage()); log.info("异常:ip:{},port:{},错误{},{}",this.ip,this.port,e.getMessage(),e.toString()); } } } UI-Project/src/views/SilkScreen/SilkScreen.vue
@@ -51,24 +51,17 @@ // 假设后端返回的数据格式与 handleMessage 预期一致 const responseData = res.data || {}; findMachine.value =responseData; if (Object.keys(findMachine.value).length === 0){ if(findMachine.value.remark.toString()!=errorScanId&&findMachine.value.remark.toString()!=""&&findMachine.value.remark.toString()!=undefined){ //有数据就弹窗 if(errorOpen){ ElMessageBox.close(); } errorScanId=findMachine.value.remark.toString(); errorInfoFuntion(findMachine.value.remark.toString()); errorOpen=true; }else if(findMachine.value.remark.toString()==""&&errorOpen){ ElMessageBox.close(); errorOpen=false; } } } }); // 线下数据 // // 线下数据 // request.post("/deviceInteraction/tasking/selectGlassDownLine").then((res) => { // 替换为你的API端点 // if (res.code === 200) { // // 假设后端返回的数据格式与 handleMessage 预期一致 // const responseData = res.data || {}; // downLineTask.value =responseData; // } // }); } catch (err) { console.error('定时请求后端接口失败:', err); } @@ -265,7 +258,7 @@ <el-button :type="(findMachine['state']=='暂停'?'danger':'success')" id="ButtonMachineStatus" @click="machineStatus((findMachine['state']=='暂停'?'开工':'暂停'))"> {{findMachine['state']=='开工'?$t('functionState.start'):$t('functionState.stop')}}</el-button> <el-button type="primary" id="ButtonTopLine" @click="topLine">{{$t('functionState.topLine')}}</el-button> <!-- <el-button type="primary" id="ButtonTopLine" @click="topLine">{{$t('functionState.topLine')}}</el-button>--> </div> <div id="main-body" style=" min-height:240px;"> <!-- 表格内容 -->