1
Administrator
1 天以前 b0a96a43d99eb5baf708c4fa0d0482696d7b0823
1
10个文件已修改
93 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java
@@ -34,7 +34,7 @@
        List<FuncSta> list = funcStaService.list(new LambdaQueryWrapper<FuncSta>()
                .eq(FuncSta::getType, FuncStaType.CHARGE.toString()));
        for (FuncSta funcSta : list) {
            if (Cools.isEmpty(funcSta.getProtocol()) && funcSta.getProtocol().equalsIgnoreCase(ProtocolType.MODBUS.toString())) {
            if (!Cools.isEmpty(funcSta.getProtocol()) && funcSta.getProtocol().equalsIgnoreCase(ProtocolType.MODBUS.toString())) {
                if (!Cools.isEmpty(funcSta.getIp()) && !Cools.isEmpty(funcSta.getPort()))
                    add(funcSta);
            }
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
@@ -126,8 +126,7 @@
    @ManagerAuth(memo = "修改站点数据")
    public R siteDetlUpdate(@RequestParam Integer siteId,
                            @RequestParam Integer workNo,
                            @RequestParam Integer staNo,
                            @RequestParam String pakMk) {
                            @RequestParam Integer staNo) {
        for (DevpSlave devp : slaveProperties.getDevp()) {
            Map<Integer, StaProtocol> station = stationService.getStationMap(devp.getId());
            for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java
@@ -9,10 +9,14 @@
    private Integer index;
    private short value;
    private Boolean flag;
    public SafeSignal(Integer index, Boolean flag) {
    public SafeSignal(Integer index,Short value, Boolean flag) {
        this.index = index;
        this.value =value;
        this.flag = flag;
    }
}
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java
@@ -78,7 +78,7 @@
                        staProtocol = staProtocol.clone();
                    }
                    // 判断是否满足条件
                    if (staProtocol.isInEnable()) {
                    if (staProtocol.getWorkNo() == 0) {
                        continue;
                    }
                    if (!staProtocol.isLoading()) {
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java
@@ -5,6 +5,7 @@
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.conveyor.core.constant.RedisConveyorConstant;
import com.zy.acs.conveyor.core.enums.ConveyorStateType;
import com.zy.acs.conveyor.core.model.SafeSignal;
import com.zy.acs.conveyor.core.model.StaProtocol;
import com.zy.acs.conveyor.core.operation.OperationHandler;
import com.zy.acs.conveyor.core.properties.CtuOperationConfig;
@@ -71,7 +72,7 @@
                        News.error("{}:站点:{},非自动", config.getMark(), staProtocol.getSiteId());
                        continue;
                    }
                    if (staProtocol.getWorkNo() > 0) {
                    if (staProtocol.getWorkNo() > 0 && !staProtocol.isLoading()) {
                        Job job = jobService.getJobByJobNo(staProtocol.getWorkNo());
                        if (job == null) {
                            News.error("{}:站点:{},找不到任务", config.getMark(), staProtocol.getSiteId());
@@ -85,9 +86,8 @@
                            continue;
                        }
                        //String s = ctuMainService.checkStationStatus(takeSta.getStaNo());
                        staProtocol.setWorkNo(0);
                        staProtocol.setStaNo(0);
                        redis.push(RedisConveyorConstant.CONVEYOR_TASK_FLAG, staProtocol);
                        staProtocol.setSafeSignal(new SafeSignal( devp.getPutSta().indexOf(takeSta) ,(short)1,false));
                        job.setJobSts(ConveyorStateType.CLEARSIGNAL.getStatus());
                        if (!jobService.updateById(job)){
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java
@@ -79,8 +79,8 @@
                    if (staProtocol.getWorkNo() == 0 && staProtocol.isLoading()) {
                        String seqNum = ctuMainService.checkStationStatus(putSta.getStaNo());
                        if (seqNum != null) {
                            staProtocol.setSafeSignal(new SafeSignal( devp.getPutSta().indexOf(putSta) ,true));
                            redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG,staProtocol );
                            staProtocol.setSafeSignal(new SafeSignal( devp.getPutSta().indexOf(putSta) ,(short)1,true));
                            //redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG,staProtocol );
                            Job job = jobService.getJobByTaskNo(seqNum);
                            if (job != null) {
@@ -102,8 +102,6 @@
                        } else {
                            News.error("{},站点信息不符合入库条件!!!" + " 调用RCS检验未通过,站点:{}", config.getMark(), staProtocol.getSiteId());
                        }
                    } else {
                        News.error("{},站点:{},异常状态,请补充", config.getMark(), staProtocol.getSiteId());
                    }
                }
            }
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java
@@ -85,8 +85,8 @@
                        News.error("{}:站点:{},非自动", config.getMark(), staProtocol.getSiteId());
                        continue;
                    }
                    if (staProtocol.isInEnable()) {
                        News.error("{},站点:{},没有可入信号", config.getMark(), staProtocol.getSiteId());
                    if (!staProtocol.isInEnable()) {
                        //News.error("{},站点:{},没有可入信号", config.getMark(), staProtocol.getSiteId());
                        continue;
                    }
                    Job jobByJobNo = jobService.getJobByJobNo(staProtocol.getWorkNo());
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
@@ -65,7 +65,7 @@
                    // 判断是否满足条件
                    if (!staProtocol.isStartup() || !staProtocol.isAutoing() || !staProtocol.isLoading()) {
                        if (!staProtocol.isStartup()) {
                            News.error("{}:站点:{},未启动入库", config.getMark(), staProtocol.getSiteId());
                            //News.error("{}:站点:{},未启动入库", config.getMark(), staProtocol.getSiteId());
                            continue;
                        }
                        if (!staProtocol.isAutoing()) {
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
@@ -63,36 +63,45 @@
        }
        SafeSignal safeSignal = staProtocol.getSafeSignal();
        int baseOffset = SafeSignalField.SAFE_SIGNAL_FROM_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_FROM_CONVEYOR.getByteLength();
        String workNoAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
                + (baseOffset + TaskField.TASK_NUMBER.getOffset());
        String destStaAddr = TaskField.DEST_STATION.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
                + (baseOffset + TaskField.DEST_STATION.getOffset());
        int baseOffset =  0;
        short[] array = new short[6];
        array[0] = (short) 1;
        array[1] = (short) 0;
        array[2] = (short) 0;
        array[5] = (short) 0;
        if (safeSignal.getFlag()){
            array[3] = (short) 0;
            array[4] =safeSignal.getValue();
             baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
        }else {
            array[3] = safeSignal.getValue();
            array[4] = (short) 0;
            baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() +2 + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
        }
        String flagAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
                + baseOffset;
        // 任务下发重试机制
        int writeCount = 0;
        boolean success = false;
        while (writeCount < WRITE_RETRY_MAX) {
            OperateResult writeResult = siemensS7Net.Write(workNoAddr, staProtocol.getWorkNo());
            Thread.sleep(WRITE_RETRY_INTERVAL_MS);
            OperateResult writeResult = siemensS7Net.Write(flagAddr, array);
            OperateResult writeResult1 = siemensS7Net.Write(destStaAddr, staProtocol.getStaNo().shortValue());
            if (writeResult.IsSuccess && writeResult1.IsSuccess) {
                log.info("写入输送线命令成功 [id:{}] [siteId:{}] [workNo:{}] [destSta:{}] [retry:{}]",
            if (writeResult.IsSuccess) {
                log.info("写入安全信号输送线命令成功 [id:{}] [siteId:{}] [workNo:{}] [destSta:{}] [retry:{}]",
                        staProtocol.getPlcId(), staProtocol.getSiteId(), staProtocol.getWorkNo(),
                        staProtocol.getStaNo(), writeCount);
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线命令成功。输送线plc编号={1},站点数据={2}",
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入安全信号输送线命令成功。输送线plc编号={1},站点数据={2}",
                        staProtocol.getPlcId(), JSON.toJSON(staProtocol)));
                success = true;
                break;
            }
            writeCount++;
            log.error("写入输送线命令失败 [id:{}] [siteId:{}] [retry:{}] [workErr:{}] [destErr:{}]",
            log.error("写入安全信号输送线命令失败 [id:{}] [siteId:{}] [retry:{}] [workErr:{}] ",
                    staProtocol.getPlcId(), staProtocol.getSiteId(), writeCount,
                    writeResult.Message, writeResult1.Message);
                    writeResult.Message);
            if (writeCount < WRITE_RETRY_MAX) {
                Thread.sleep(WRITE_RETRY_INTERVAL_MS);
@@ -100,10 +109,10 @@
        }
        if (!success) {
            String errorMsg = MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}",
            String errorMsg = MessageFormat.format("【{0}】写入安全信号输送线站点数据失败。输送线plc编号={1},站点数据={2}",
                    staProtocol.getPlcId(), JSON.toJSON(staProtocol));
            OutputQueue.DEVP.offer(errorMsg);
            News.error("SiemensDevp - 4 - 写入输送线站点数据失败。输送线plc编号={},站点数据={}",
            News.error("SiemensDevp - 4 - 写入安全信号输送线站点数据失败。输送线plc编号={},站点数据={}",
                    staProtocol.getPlcId(), JSON.toJSON(staProtocol));
            log.error(errorMsg);
        }
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
@@ -3,10 +3,9 @@
import HslCommunication.Core.Types.OperateResultExOne;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.zy.acs.common.utils.News;
import com.zy.acs.conveyor.core.constant.DeviceField;
import com.zy.acs.conveyor.core.constant.PlcAlarmDefinition;
import com.zy.acs.conveyor.core.constant.SafeSignalField;
import com.zy.acs.conveyor.core.constant.StationStatusField;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.conveyor.core.constant.*;
import com.zy.acs.conveyor.core.model.SafeSignal;
import com.zy.acs.conveyor.core.model.StaProtocol;
import com.zy.acs.conveyor.core.properties.DevpSlave;
import com.zy.acs.conveyor.core.service.DevpS7Service;
@@ -37,6 +36,9 @@
    private SiemensS7Net siemensS7Net;
    private Map<Integer, StaProtocol> station;
    private final RedisSupport redis = RedisSupport.defaultRedisSupport;
    private static final int WRITE_RETRY_MAX = 5;
@@ -369,6 +371,15 @@
            staProtocolTake.setAllowPut(status2[2]);
            staProtocolTake.setInComplete(status2[3]);
            staProtocolTake.setOutComplete(status2[4]);
            //
            if (status[3]){
                redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, new SafeSignal(i,(short)0,true));
            }
            if (status2[4]){
                redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG,  new SafeSignal(i, (short) 0,false));
            }
        }
    }