1
Administrator
1 天以前 c003a346617235b50463fad3e9f9f95298a167c5
1
15个文件已修改
115 ■■■■■ 已修改文件
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/CtuController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/vo/SiteTableVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/StaProtocol.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/scheduler/JobLogScheduler.java 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/service/impl/CtuMainServiceImpl.java 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/service/impl/JobServiceImpl.java 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/webapp/views/pipeline.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/CtuController.java
@@ -56,8 +56,8 @@
            stationResponseParam = new StationResponseParam();
            stationResponseParam.setStaNo(staNo);
            stationResponseParam.setOccupied(staProtocol.isLoading());
            stationResponseParam.setInEnable((staProtocol.getAllowPut()));
            stationResponseParam.setOutEnable((staProtocol.getAllowTake()));
            stationResponseParam.setInEnable(staProtocol.getAllowPut());
            stationResponseParam.setOutEnable(staProtocol.getAllowTake());
            stationResponseParam.setOnline(staProtocol.isAutoing());
            list.add(stationResponseParam);
        }
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
@@ -72,6 +72,7 @@
            vo.setWeight(staProtocol.getWeight() == null ? 0D : staProtocol.getWeight());
            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() ? (staProtocol.isLow() ? "低" : "高") : "-");     //高低库位
            vo.setAllow((staProtocol.getAllowPut() ? "可放" : "不可放") + "/" + (staProtocol.getAllowTake() ? "可取" : "不可取"));
            vo.setBarcode(staProtocol.getBarcode());
        }
        return R.ok().add(list);
@@ -114,6 +115,7 @@
                    vo.setWeight(staProtocol.getWeight() == null ? 0D : staProtocol.getWeight());
                    vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() ? (staProtocol.isLow() ? "低" : "高") : "-");     //高低库位
                    vo.setAllow((staProtocol.getAllowPut() ? "可放" : "不可放") + "/" + (staProtocol.getAllowTake() ? "可取" : "不可取"));
                    vo.setBarcode(staProtocol.getBarcode());
                    return R.ok().add(vo);
                }
            }
@@ -185,7 +187,7 @@
                    if (i == -1) {
                        return R.error("此站点无需安全信号");
                    }
                    staProtocol.setSafeSignal(new SafeSignal(i, (short) 0, flag));
                    staProtocol.setSafeSignal(new SafeSignal(i, true, flag));
                    redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, staProtocol);
                    return R.ok();
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/vo/SiteTableVo.java
@@ -42,4 +42,7 @@
    //可取
    private String allow = "-";
    private String barcode = "-";
}
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java
@@ -9,12 +9,12 @@
    //是数组所在位置,就是第几个出库口或者第几个入库口
    private Integer index;
    //是写0还是1
    private short value;
    private Boolean value;
    //代表写在交互1还是2
    private Boolean flag;
    public SafeSignal(Integer index, Short value, Boolean flag) {
    public SafeSignal(Integer index, Boolean value, Boolean flag) {
        this.index = index;
        this.value = value;
        this.flag = flag;
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/StaProtocol.java
@@ -12,6 +12,8 @@
@Data
public class StaProtocol implements Cloneable, Serializable {
    private boolean startUpFlag = true;
    private Integer plcId;
    // 站点编号
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java
@@ -92,7 +92,7 @@
                            continue;
                        }
                        if (ctuMainService.checkComplete(job.getTaskNo())) {
                            staProtocol.setSafeSignal(new SafeSignal(devp.getPutSta().indexOf(takeSta), (short) 1, false));
                            staProtocol.setSafeSignal(new SafeSignal(devp.getPutSta().indexOf(takeSta), true, false));
                            redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, staProtocol);
                            job.setUpdateTime(new Date());
                            job.setJobSts(ConveyorStateType.CLEARSIGNAL.getStatus());
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java
@@ -80,14 +80,17 @@
                    if (staProtocol.getWorkNo() == 0 && staProtocol.isLoading()) {
                        String seqNum = ctuMainService.checkStationStatus(putSta.getStaNo());
                        if (seqNum != null) {
                            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) {
                                News.error("{}:站点:{},存在任务,{}", config.getMark(), staProtocol.getSiteId(), JSON.toJSON(job));
                                continue;
                            }
                            staProtocol.setSafeSignal(new SafeSignal(devp.getPutSta().indexOf(putSta), true, true));
                            redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, staProtocol);
                            int workNo = wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type);
                            staProtocol.setWorkNo(workNo);
                            staProtocol.setStaNo(putSta.getTargetSta());
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
@@ -12,7 +12,9 @@
import com.zy.acs.conveyor.core.properties.SlaveProperties;
import com.zy.acs.conveyor.core.service.StationService;
import com.zy.acs.conveyor.entity.Job;
import com.zy.acs.conveyor.enums.WorkNoTypeType;
import com.zy.acs.conveyor.service.JobService;
import com.zy.acs.conveyor.service.WrkLastnoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -38,6 +40,10 @@
    @Autowired
    private StationService stationService;
    @Autowired
    private WrkLastnoService wrkLastnoService;
    private final RedisSupport redis = RedisSupport.defaultRedisSupport;
@@ -79,25 +85,29 @@
                        }
                    }
                    Job jobByJobNo = jobService.getJobByJobNo(staProtocol.getWorkNo());
                    if (jobByJobNo == null) {
                        News.error("{}:站点:{},找不到任务", config.getMark(), staProtocol.getSiteId());
                        continue;
                    }
                    if (jobByJobNo.getJobSts() != ConveyorStateType.OUTBOUND.getStatus()) {
                        if (jobByJobNo.getJobSts() == ConveyorStateType.STARTUP.getStatus()) {
                            continue;
                        }
                        News.error("{}:站点:{},任务状态不对,{}", config.getMark(), staProtocol.getSiteId(), JSON.toJSON(jobByJobNo));
                        continue;
                    }
//                    Job jobByJobNo = jobService.getJobByJobNo(staProtocol.getWorkNo());
//                    if (jobByJobNo == null) {
//                        News.error("{}:站点:{},找不到任务", config.getMark(), staProtocol.getSiteId());
//                        continue;
//                    }
//                    if (jobByJobNo.getJobSts() != ConveyorStateType.OUTBOUND.getStatus()) {
//                        if (jobByJobNo.getJobSts() == ConveyorStateType.STARTUP.getStatus()) {
//                            continue;
//                        }
//                        News.error("{}:站点:{},任务状态不对,{}", config.getMark(), staProtocol.getSiteId(), JSON.toJSON(jobByJobNo));
//                        continue;
//                    }
                    if (staProtocol.getWorkNo() == 0) {
                        Job job = initJob(getWorkNo(), staProtocol.getSiteId() + "");
                        staProtocol.setWorkNo(job.getJobNo());
                    staProtocol.setStaNo(inSta.getStaNo());
                        staProtocol.setStartUpFlag(false);
                    redis.push(RedisConveyorConstant.CONVEYOR_TASK_FLAG, staProtocol);
                    jobByJobNo.setStartTime(new Date());
                    jobByJobNo.setJobSts(ConveyorStateType.STARTUP.getStatus());
                    if (!jobService.updateById(jobByJobNo)) {
                        if (!jobService.insert(job)) {
                        News.info("{},启动入库:{},{}", config.getMark(), staProtocol.getWorkNo(), staProtocol.getStaNo());
                    }
                    }
                }
            }
        } catch (Exception e) {
@@ -105,4 +115,17 @@
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
    private Job initJob(Integer workNo, String staNo) {
        Job job = new Job();
        job.setStaNo(staNo);
        job.setJobNo(workNo);
        job.setJobSts(ConveyorStateType.STARTUP.getStatus());
        job.setStartTime(new Date());
        return job;
    }
    private Integer getWorkNo() {
        return wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type);
    }
}
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
@@ -66,18 +66,18 @@
        SafeSignal safeSignal = staProtocol.getSafeSignal();
        int baseOffset = 0;
        short[] array = new short[6];
        array[0] = (short) 1;
        array[1] = (short) 0;
        array[2] = (short) 0;
        array[5] = (short) 0;
        boolean[] array = new boolean[6];
        array[0] = true;
        array[1] = false;
        array[2] = false;
        array[5] = false;
        if (safeSignal.getFlag()) {
            array[3] = (short) 0;
            array[3] = false;
            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;
            array[4] = false;
            baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + 2 + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
        }
        String flagAddr = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
@@ -169,6 +169,10 @@
        staProtocol.setSegApply(status2[2]);
        staProtocol.setApplyErr(status2[3]);
        if (!status2[1] && !status[0]) {
            staProtocol.setStartUpFlag(true);
        }
        for (int i = 0; i < 8; i++){
            if (status0[i+8]!=status2[i]){
                log.info("状态码不一致 [id:{}] [i:{}] [status0:{}] [status2:{}]", slave.getId(), i, status0[i], status2[i]);
@@ -200,16 +204,16 @@
                    content, seg[0] + i * DeviceField.BARCODE.getByteLength());
            String barcode = siemensS7Net.getByteTransform().TransString(
                    content, seg[1] + i * DeviceField.BARCODE.getByteLength(),
                    DeviceField.BARCODE.getByteLength() - seg[1], "UTF-8");
                    DeviceField.BARCODE.getByteLength()-seg[1] , "UTF-8").trim();
            if (!Cools.isEmpty(barcode) && staNo != 0) {
            if (!Cools.isEmpty(barcode) && !barcode.contains("Default") && staNo != 0) {
                StaProtocol staProtocol = station.get(staNo);
                if (staProtocol == null) {
                    log.warn("扫码站点不存在 [id:{}] [staNo:{}]", slave.getId(), staNo);
                    continue;
                }
                staProtocol.setBarcode(barcode);
                News.info("料箱码:{}", barcode);
                //News.info("料箱码:{}", barcode);
            }
        }
    }
@@ -240,7 +244,7 @@
            if (!Cools.isEmpty(weight) && staNo != 0) {
                StaProtocol staProtocol = station.get(staNo);
                if (staProtocol == null) {
                    log.warn("称重站点不存在 [id:{}] [staNo:{}]", slave.getId(), staNo);
                    log.warn(" [id:{}] [staNo:{}]", slave.getId(), staNo);
                    continue;
                }
                staProtocol.setWeight(BigDecimal.valueOf(weight).setScale(4, RoundingMode.HALF_UP).doubleValue());
@@ -379,12 +383,12 @@
            staProtocolTake.setOutComplete(status2[4]);
            //
            if (status[3]) {
                staProtocolPut.setSafeSignal( new SafeSignal(i, (short) 0, true));
                staProtocolPut.setSafeSignal(new SafeSignal(i, false, true));
                redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG,staProtocolPut);
                News.info("安全交互信号复位 [id:{}] [staNo:{}]", slave.getId(), staProtocolPut.getSiteId());
            }
            if (status2[4]) {
                staProtocolTake.setSafeSignal(new SafeSignal(i, (short) 0, false));
                staProtocolTake.setSafeSignal(new SafeSignal(i, false, false));
                redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, staProtocolTake);
                News.info("安全交互信号复位 [id:{}] [staNo:{}]", slave.getId(), staProtocolPut.getSiteId());
            }
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/scheduler/JobLogScheduler.java
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/service/impl/CtuMainServiceImpl.java
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/service/impl/JobServiceImpl.java
zy-asc-conveyor/src/main/resources/application.yml
@@ -30,7 +30,7 @@
    path: /stock/out/cv/logs
wms:
  url: 127.0.0.1:8081
  url: 127.0.0.1:8082
  apply: /rsf-open-api/rcs/api/open/location/allocate
ctu:
  url: 127.0.0.1:8088
zy-asc-conveyor/src/main/webapp/views/pipeline.html
@@ -786,7 +786,8 @@
                            <th>重量信号</th>
                            <th>空满信号</th>
                            <th>目标站</th>
                            <th>可放/可取</th>
                            <th>条码</th>
                            <th>安全信号</th>
<!--                            <th>高低信号</th>-->
                        </tr>
                        </thead>
@@ -992,6 +993,7 @@
                    <td>${site.weight || '--'}</td>
                    <td>${site.emptyMk || '--'}</td>
                    <td>${site.staNo || '--'}</td>
                    <td>${site.barcode || '--'}</td>
                    <td>${site.allow || '--'}</td>
                </tr>
            `;