fix():设定匹配
This commit is contained in:
@@ -1,15 +1,22 @@
|
|||||||
package com.fizz.business.comm.OPC;
|
package com.fizz.business.comm.OPC;
|
||||||
|
|
||||||
|
import com.fizz.business.constants.enums.ExitCutTypeEnum;
|
||||||
|
import com.fizz.business.domain.msg.OpcMessage;
|
||||||
import com.fizz.business.domain.msg.PdiSetup;
|
import com.fizz.business.domain.msg.PdiSetup;
|
||||||
import com.kangaroohy.milo.model.ReadWriteEntity;
|
import com.kangaroohy.milo.model.ReadWriteEntity;
|
||||||
import com.kangaroohy.milo.service.MiloService;
|
import com.kangaroohy.milo.service.MiloService;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.apache.commons.beanutils.BeanUtils;
|
||||||
import org.apache.commons.compress.utils.Lists;
|
import org.apache.commons.compress.utils.Lists;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.fizz.business.service.manager.OpcMessageIdsManager.pdiSetupIds;
|
||||||
|
|
||||||
//@Service
|
//@Service
|
||||||
@Log4j2
|
@Log4j2
|
||||||
@@ -18,15 +25,40 @@ public class OpcMessageSend {
|
|||||||
@Resource
|
@Resource
|
||||||
private MiloService miloService;
|
private MiloService miloService;
|
||||||
|
|
||||||
private void sendPdiSetup(PdiSetup pdiSetup) throws Exception {
|
private void sendPdiSetup(PdiSetup pdiSetup) {
|
||||||
try {
|
try {
|
||||||
List<ReadWriteEntity> entities = new ArrayList<>();
|
List<ReadWriteEntity> entities = getWriteEntities(pdiSetup, pdiSetupIds);
|
||||||
miloService.writeToOpcUa(entities);
|
miloService.writeToOpcUa(entities);
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("发送设定失败:{0}",e.getMessage());
|
log.error("发送设定失败:{0}",e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<ReadWriteEntity> getWriteEntities(OpcMessage msg, Map<String,String> msgIds) {
|
||||||
|
List<ReadWriteEntity> entities = new ArrayList<>();
|
||||||
|
for (String key : msgIds.keySet()) {
|
||||||
|
String fieldName = msgIds.get(key);
|
||||||
|
Object value = null;
|
||||||
|
try {
|
||||||
|
// 获取OpcMessage类中对应字段的Field对象
|
||||||
|
Field field = msg.getClass().getDeclaredField(fieldName);
|
||||||
|
// 设置可访问以处理私有字段
|
||||||
|
field.setAccessible(true);
|
||||||
|
// 获取msg对象中该字段的值
|
||||||
|
value = field.get(msg);
|
||||||
|
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||||
|
// 处理字段不存在或访问异常,可记录日志或设置默认值
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
ReadWriteEntity entity = ReadWriteEntity.builder()
|
||||||
|
.identifier(key)
|
||||||
|
.value(value)
|
||||||
|
.build();
|
||||||
|
entities.add(entity);
|
||||||
|
}
|
||||||
|
return entities;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import java.math.BigDecimal;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Schema(description = "设定电文")
|
@Schema(description = "设定电文")
|
||||||
public class PdiSetup {
|
public class PdiSetup extends OpcMessage{
|
||||||
@Schema(description = "钢卷号")
|
@Schema(description = "钢卷号")
|
||||||
private String coilId;
|
private String coilId;
|
||||||
|
|
||||||
|
|||||||
@@ -145,8 +145,4 @@ public class ModSetupResultServiceImpl extends ServiceImpl<ModSetupResultMapper,
|
|||||||
return BeanUtil.copyToList(results, ModSetupResultVO.class);
|
return BeanUtil.copyToList(results, ModSetupResultVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -29,6 +29,8 @@ public class OpcMessageIdsManager {
|
|||||||
public static Map<String,String> exitMoveIds = Maps.newHashMap();
|
public static Map<String,String> exitMoveIds = Maps.newHashMap();
|
||||||
public static Map<String,String> exitMeasureIds = Maps.newHashMap();
|
public static Map<String,String> exitMeasureIds = Maps.newHashMap();
|
||||||
|
|
||||||
|
public static Map<String,String> pdiSetupIds = Maps.newHashMap();
|
||||||
|
|
||||||
public static String DEVICE_NAME = "ns=2;s=通道 1.";
|
public static String DEVICE_NAME = "ns=2;s=通道 1.";
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
@@ -45,6 +47,7 @@ public class OpcMessageIdsManager {
|
|||||||
loadProcLineMeasureIds();
|
loadProcLineMeasureIds();
|
||||||
loadFurLineMeasureIds();
|
loadFurLineMeasureIds();
|
||||||
loadExitLineMeasureIds();
|
loadExitLineMeasureIds();
|
||||||
|
loadPdiSetupIds();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -329,6 +332,61 @@ public class OpcMessageIdsManager {
|
|||||||
exitLineMeasureIds.put("ns=2;s=通道 1.PLCLine.ExitLineMeasure.coilLength", "coilLength");
|
exitLineMeasureIds.put("ns=2;s=通道 1.PLCLine.ExitLineMeasure.coilLength", "coilLength");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void loadPdiSetupIds(){
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.coilId", "coilId");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.PORFlag", "PORFlag");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.counter", "counter");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.entryCoilWeight", "entryCoilWeight");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.entryCoilLength", "entryCoilLength");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.entryCoilWidth", "entryCoilWidth");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.entryCoilThick", "entryCoilThick");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.entryCoilInnerDia", "entryCoilInnerDia");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.entryCoilOuterDia", "entryCoilOuterDia");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.alloyCode", "alloyCode");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.steelGrade", "steelGrade");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.splitNum", "splitNum");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.exitLength1", "exitLength1");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.exitLength2", "exitLength2");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.exitLength3", "exitLength3");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.exitLength4", "exitLength4");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.exitLength5", "exitLength5");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.exitLength6", "exitLength6");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionPorBR1", "tensionPorBR1");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR1BR2", "tensionBR1BR2");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR2BR3", "tensionBR2BR3");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR3", "tensionBR3");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionFur1", "tensionFur1");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionFur2", "tensionFur2");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR4BR5", "tensionBR4BR5");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.aimCoatingWeightTop", "aimCoatingWeightTop");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.aimCoatingWeightBottom", "aimCoatingWeightBottom");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TMFlag", "TMFlag");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TMType", "TMType");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TMMode", "TMMode");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR5BR6", "tensionBR5BR6");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR5TM", "tensionBR5TM");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionTMBR6", "tensionTMBR6");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TMElongation", "TMElongation");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TMRollforce", "TMRollforce");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TMBendforce", "TMBendforce");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.ACRMesh", "ACRMesh");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.BRMesh", "BRMesh");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TLFlag", "TLFlag");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.TLElongation", "TLElongation");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR6BR7", "tensionBR6BR7");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionTLBR7","tensionTLBR7");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.LevelingMesh1","LevelingMesh1");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.LevelingMesh2","LevelingMesh2");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.AntiCrossBowUnitMesh","AntiCrossBowUnitMesh");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR7BR8","tensionBR7BR8");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.chromatingFlag","chromatingFlag");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.chromatingCode","chromatingCode");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR8BR9","tensionBR8BR9");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.tensionBR9TR","tensionBR9TR");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.oilingFlag","oilingFlag");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.oilingAmountTop","oilingAmountTop");
|
||||||
|
pdiSetupIds.put("ns=2;s=通道 1.PLCLine.L2Setup.oilingAmountBottom","oilingAmountBottom");
|
||||||
|
}
|
||||||
|
|
||||||
public static void loadMsgTriggers(){
|
public static void loadMsgTriggers(){
|
||||||
msgTriggers.add(DEVICE_NAME+entryMoveIds.get("trigger"));
|
msgTriggers.add(DEVICE_NAME+entryMoveIds.get("trigger"));
|
||||||
|
|||||||
Reference in New Issue
Block a user