cl
2024-01-19 e0fac38b26845f25de479783e0c76cf12a5311e0
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/OPCComm.java
@@ -8,7 +8,10 @@
import cn.stylefeng.guns.modular.dq.materialTraceability.service.MaterialTraceabilityService;
import cn.stylefeng.guns.modular.em.equipmentAlarm.service.EquipmentAlarmService;
import cn.stylefeng.guns.modular.em.equipmentStatus.service.EquipmentStatusService;
import cn.stylefeng.guns.modular.gm.greaseManage.service.GreaseManageService;
import cn.stylefeng.guns.modular.om.productionOrdeInfo.service.ProductionOrdeInfoService;
import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.service.ProductionOrderBatchInfoService;
import cn.stylefeng.guns.modular.om.productionOrderRecords.service.ProductionOrderRecordsService;
import cn.stylefeng.guns.modular.sc.repairManageInfo.service.RepairManageInfoService;
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.server.BOP010.callback.*;
@@ -103,6 +106,14 @@
    @Autowired
    public LocationInfoService locationInfoService;
    @Autowired
    public GreaseManageService greaseManageService;
    @Autowired
    public ProductionOrderRecordsService productionOrderRecordsService;
    @Autowired
    public ProductionOrderBatchInfoService productionOrderBatchInfoService;
    //OP010
    private Item OP010_F_HEART_BEAT;//心跳
@@ -181,7 +192,7 @@
    private Item OP050_S_PRODUCT_STATE_CODE;//产品状态编码
    private Item OP050_OIL_STATE;//油脂状态
    //OP070
    private Item OP070_F_HEART_BEAT;//心跳
    private Item OP070_J_PLC_START;//PLC开始
@@ -461,6 +472,7 @@
    private Item BOP030_S_PRODUCT_STATE_CODE;//产品状态编码
    private Item BOP030_OIL_STATE;//油脂状态
    //BOP030B
    private Item BOP030B_F_HEART_BEAT;//心跳
    private Item BOP030B_J_PLC_START;//PLC开始
@@ -698,6 +710,7 @@
    private Item DOP020_S_PRODUCT_STATE_CODE;//产品状态编码
    private Item DOP020_OIL_STATE;//油脂状态
    /**
     * 单例模式
@@ -721,7 +734,10 @@
                     MaterialTraceabilityService materialTraceabilityService,
                     EquipmentInfoService equipmentInfoService,
                     RepairManageInfoService repairManageInfoService,
                     LocationInfoService locationInfoService
                     LocationInfoService locationInfoService,
                     GreaseManageService greaseManageService,
                     ProductionOrderRecordsService productionOrderRecordsService,
                     ProductionOrderBatchInfoService productionOrderBatchInfoService
                    ) throws Exception {
        this.productionOrdeInfoService = productionOrdeInfoService;
        this.passingStationCollectionService = passingStationCollectionService;
@@ -734,6 +750,9 @@
        this.equipmentInfoService = equipmentInfoService;
        this.repairManageInfoService = repairManageInfoService;
        this.locationInfoService = locationInfoService;
        this.greaseManageService = greaseManageService;
        this.productionOrderRecordsService = productionOrderRecordsService;
        this.productionOrderBatchInfoService = productionOrderBatchInfoService;
        // 加载配置文件
        final ConnectionInformation ci = getCLSIDConnectionInfomation();
@@ -746,13 +765,11 @@
            logger.info("This is {} message.", "OPCserver connect success");
            this.server = server;
            // 同步读取,500ms一次
            final AccessBase access = new SyncAccess(server, 1000);
            //final AccessBase access = new Async20Access(server, 1000,false);
            final AccessBase access = new SyncAccess(server, 500);
            //OP010回调
            access.addItem(OPCElement.OP010_F_HEART_BEAT, new DataCallBack_OP010_F_HEART_BEAT());//心跳
           /* access.addItem(OPCElement.OP010_E_STATE, new DataCallBack_OP010_E_STATE());//设备状态*/
            /* access.addItem(OPCElement.OP010_E_STATE, new DataCallBack_OP010_E_STATE());//设备状态*/
            //OP020回调
            access.addItem(OPCElement.OP020_F_HEART_BEAT, new DataCallBack_OP020_F_HEART_BEAT());//心跳
@@ -784,13 +801,11 @@
            access.addItem(OPCElement.OP110_F_HEART_BEAT, new DataCallBack_OP110_F_HEART_BEAT());//心跳
/*
            //OP120回调
            access.addItem(OPCElement.OP120_F_HEART_BEAT, new DataCallBack_OP120_F_HEART_BEAT());//心跳
            //OP120B回调
            access.addItem(OPCElement.OP120B_F_HEART_BEAT, new DataCallBack_OP120B_F_HEART_BEAT());//心跳
      */
            //OP130回调
@@ -803,7 +818,9 @@
            access.addItem(OPCElement.OP140_F_HEART_BEAT, new DataCallBack_OP140_F_HEART_BEAT());//心跳
            //OP150回调
/*
            access.addItem(OPCElement.OP150_F_HEART_BEAT, new DataCallBack_OP150_F_HEART_BEAT());//心跳
*/
            //OP160回调
            access.addItem(OPCElement.OP160_F_HEART_BEAT, new DataCallBack_OP160_F_HEART_BEAT());//心跳
@@ -843,7 +860,7 @@
            access.addItem(OPCElement.DOP010_F_HEART_BEAT, new DataCallBack_DOP010_F_HEART_BEAT());//心跳
            //DOP020回调
            access.addItem(OPCElement.DOP020_F_HEART_BEAT, new DataCallBack_DOP020_F_HEART_BEAT());//心跳
            /* access.addItem(OPCElement.DOP020_F_HEART_BEAT, new DataCallBack_DOP020_F_HEART_BEAT());//心跳*/
            //EOP010回调
            access.addItem(OPCElement.EOP010_F_HEART_BEAT, new DataCallBack_EOP010_F_HEART_BEAT());//心跳
@@ -854,7 +871,7 @@
            //EOP030回调
            access.addItem(OPCElement.EOP030_F_HEART_BEAT, new DataCallBack_EOP030_F_HEART_BEAT());//心跳
             //EOP040回调
            //EOP040回调
            access.addItem(OPCElement.EOP040_F_HEART_BEAT, new DataCallBack_EOP040_F_HEART_BEAT());//心跳
            //EOP050回调
@@ -961,7 +978,7 @@
            OP050_S_PRODUCT_STATE_CODE = OP050_GROUP.addItem((OPCElement.OP050_S_PRODUCT_STATE_CODE));//产品状态编码
            OP050_OIL_STATE = OP050_GROUP.addItem((OPCElement.OP050_OIL_STATE));//油脂状态
            //OP070组
            final Group OP070_GROUP = server.addGroup("OP070");
@@ -1038,7 +1055,7 @@
            OP110_S_PRODUCT_STATE_CODE = OP110_GROUP.addItem((OPCElement.OP110_S_PRODUCT_STATE_CODE));//产品状态编码
            //OP120组
         /*   final Group OP120_GROUP = server.addGroup("OP120");
            final Group OP120_GROUP = server.addGroup("OP120");
            OP120_F_HEART_BEAT = OP120_GROUP.addItem((OPCElement.OP120_F_HEART_BEAT));//心跳
            OP120_J_PLC_START = OP120_GROUP.addItem((OPCElement.OP120_J_PLC_START));//PLC开始
            OP120_J_PC_WRITE_ORDER = OP120_GROUP.addItem((OPCElement.OP120_J_PC_WRITE_ORDER));//PC读数据完成
@@ -1063,7 +1080,7 @@
            OP120B_S_PRODUCT_CODE = OP120B_GROUP.addItem((OPCElement.OP120B_S_PRODUCT_CODE));//产品编号
            OP120B_S_SFC_CODE = OP120B_GROUP.addItem((OPCElement.OP120B_S_SFC_CODE));//总成编码
            OP120B_S_PRODUCT_STATE_CODE = OP120B_GROUP.addItem((OPCElement.OP120B_S_PRODUCT_STATE_CODE));//产品状态编码*/
            OP120B_S_PRODUCT_STATE_CODE = OP120B_GROUP.addItem((OPCElement.OP120B_S_PRODUCT_STATE_CODE));//产品状态编码
            //OP130组
            final Group OP130_GROUP = server.addGroup("OP130");
@@ -1109,7 +1126,7 @@
            OP140_S_PRODUCT_STATE_CODE = OP140_GROUP.addItem((OPCElement.OP140_S_PRODUCT_STATE_CODE));//产品状态编码
            //OP150组
            final Group OP150_GROUP = server.addGroup("OP150");
         /*   final Group OP150_GROUP = server.addGroup("OP150");
            OP150_F_HEART_BEAT = OP150_GROUP.addItem((OPCElement.OP150_F_HEART_BEAT));//心跳
            OP150_J_PLC_START = OP150_GROUP.addItem((OPCElement.OP150_J_PLC_START));//PLC开始
            OP150_J_PC_WRITE_ORDER = OP150_GROUP.addItem((OPCElement.OP150_J_PC_WRITE_ORDER));//PC下发工单
@@ -1120,7 +1137,7 @@
            OP150_S_PRODUCT_CODE = OP150_GROUP.addItem((OPCElement.OP150_S_PRODUCT_CODE));//产品编号
            OP150_S_SFC_CODE = OP150_GROUP.addItem((OPCElement.OP150_S_SFC_CODE));//总成编码
            OP150_S_PRODUCT_STATE_CODE = OP150_GROUP.addItem((OPCElement.OP150_S_PRODUCT_STATE_CODE));//产品状态编码
            OP150_S_PRODUCT_STATE_CODE = OP150_GROUP.addItem((OPCElement.OP150_S_PRODUCT_STATE_CODE));//产品状态编码*/
            //OP160组
            final Group OP160_GROUP = server.addGroup("OP160");
@@ -1242,6 +1259,10 @@
            BOP030_S_SFC_CODE = BOP030_GROUP.addItem((OPCElement.BOP030_S_SFC_CODE));//总成编码
            BOP030_S_PRODUCT_STATE_CODE = BOP030_GROUP.addItem((OPCElement.BOP030_S_PRODUCT_STATE_CODE));//产品状态编码
            BOP030_OIL_STATE = BOP030_GROUP.addItem((OPCElement.BOP030_OIL_STATE));//油脂状态
            //BOP030B组
            final Group BOP030B_GROUP = server.addGroup("BOP030B");
@@ -1465,7 +1486,7 @@
            DOP010_P_REPAIR_LOCATION = DOP010_GROUP.addItem((OPCElement.DOP010_P_REPAIR_LOCATION));//返修工位
            //DOP020组
            final Group DOP020_GROUP = server.addGroup("DOP020");
            /*final Group DOP020_GROUP = server.addGroup("DOP020");
            DOP020_F_HEART_BEAT = DOP020_GROUP.addItem((OPCElement.DOP020_F_HEART_BEAT));//心跳
            DOP020_J_PLC_START = DOP020_GROUP.addItem((OPCElement.DOP020_J_PLC_START));//PLC开始
            DOP020_J_PC_WRITE_ORDER = DOP020_GROUP.addItem((OPCElement.DOP020_J_PC_WRITE_ORDER));//PC下发工单
@@ -1477,6 +1498,10 @@
            DOP020_S_SFC_CODE = DOP020_GROUP.addItem((OPCElement.DOP020_S_SFC_CODE));//总成编码
            DOP020_S_PRODUCT_STATE_CODE = DOP020_GROUP.addItem((OPCElement.DOP020_S_PRODUCT_STATE_CODE));//产品状态编码
            DOP020_OIL_STATE = DOP020_GROUP.addItem((OPCElement.DOP020_OIL_STATE));//油脂状态*/
            // start reading
            access.bind();
        } catch (final JIException e) {
@@ -3175,4 +3200,20 @@
    public Item getDOP010_P_REPAIR_LOCATION() {
        return DOP010_P_REPAIR_LOCATION;
    }
    public GreaseManageService getGreaseManageService() {
        return greaseManageService;
    }
    public Item getOP050_OIL_STATE() {
        return OP050_OIL_STATE;
    }
    public Item getBOP030_OIL_STATE() {
        return BOP030_OIL_STATE;
    }
    public Item getDOP020_OIL_STATE() {
        return DOP020_OIL_STATE;
    }
}