ZengTao
2025-06-18 cfaa77861170237f07da3113c7d505c70bf371be
S7通讯部署版本代码提交
15个文件已修改
1个文件已添加
328 ■■■■ 已修改文件
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/config/S7Config.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/s7/entity/S7DataCC.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/logback-spring.xml 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/config/S7Config.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/config/ModbusConfig.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcHollowRemoveTask.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/logback-spring.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -102,6 +102,7 @@
    @Scheduled(fixedDelay = 1000)
    public void inBigStorageTask() throws Exception {
        S7DataDLPOne s7DataDLPOne = s7SerializerDLPOne.read(S7DataDLPOne.class);
        log.info("进片任务开始{}",s7DataDLPOne);
//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
        Boolean inkageEntity = s7DataDLPOne.getMesControl();
@@ -347,6 +348,7 @@
    public void outBigStorageTask() throws Exception {
        Date startDate = new Date();
        S7DataDLPTwo s7DataWLTwo = s7SerializerDLPTwo.read(S7DataDLPTwo.class);
        log.info("出片任务开始{}",s7DataWLTwo);
//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
        Boolean inkageEntity = s7DataWLTwo.getMesControl();
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
spring:
  profiles:
    active: dev
    active: yw
  application:
    name: cacheVerticalGlass
  liquibase:
@@ -15,8 +15,8 @@
      thread-name-prefix: task-cacheVertical
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mes:
  sequence:
    order: true
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/config/S7Config.java
@@ -16,22 +16,22 @@
    @Bean(name = "s7SerializerCC")
    public S7Serializer s7SerializerCC() {
//        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.80");
        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.80");
//        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        return S7Serializer.newInstance(s7PLC);
    }
    @Bean(name = "s7SerializerSPOne")
    public S7Serializer s7SerializerSPOne() {
//        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.15");
        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.15");
//        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        return S7Serializer.newInstance(s7PLC);
    }
    @Bean(name = "s7SerializerSPTwo")
    public S7Serializer s7SerializerSPTwo() {
//        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.21");
        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.21");
//        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        return S7Serializer.newInstance(s7PLC);
    }
}
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -89,6 +89,7 @@
    @Scheduled(fixedDelay = 1000)
    public void rawStorageTask() throws Exception {
        S7DataCC S7DataCCOne = s7SerializerCC.read(S7DataCC.class);
        log.info("仓储通讯读取{}",S7DataCCOne);
        String requestWord = S7DataCCOne.getRequest().toString();
        String confireWord = S7DataCCOne.getConfirmation().toString();
        String reportWord = S7DataCCOne.getReportWord().toString();
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/s7/entity/S7DataCC.java
@@ -12,43 +12,6 @@
@Data
public class S7DataCC {
//    @S7Variable(address = "DB1.0", type = EDataType.UINT16)
//    private Integer request;
//
//    @S7Variable(address = "DB1.2", type = EDataType.UINT16)
//    private Integer requestId;
//
//    @S7Variable(address = "DB1.4", type = EDataType.UINT16)
//    private Integer reportWord;
//
//    @S7Variable(address = "DB1.6", type = EDataType.UINT16)
//    private Integer reportId;
//
//    @S7Variable(address = "DB1.8", type = EDataType.UINT16)
//    private Integer inCar;
//
//    @S7Variable(address = "DB1.10", type = EDataType.UINT16)
//    private Integer taskWord;
//
//    @S7Variable(address = "DB1.12", type = EDataType.UINT16)
//    private Integer taskId;
//
//    @S7Variable(address = "DB1.14", type = EDataType.UINT16)
//    private Integer startSlot;
//
//    @S7Variable(address = "DB1.16", type = EDataType.UINT16)
//    private Integer endSlot;
//
//    @S7Variable(address = "DB1.18", type = EDataType.UINT16)
//    private Integer taskSending;
//
//    @S7Variable(address = "DB1.20", type = EDataType.UINT16)
//    private Integer confirmation;
//
//    @S7Variable(address = "DB1.22", type = EDataType.UINT16)
//    private Integer confirmationId;
    @S7Variable(address = "DB38.0", type = EDataType.UINT16)
    private Integer request;
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
spring:
  profiles:
    active: dev
    active: yw
  application:
    name: glassStorage
  liquibase:
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/logback-spring.xml
New file
@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
    <!-- logger上下文名称(根据业务修改) -->
    <contextName>glassStorage</contextName>
    <!-- 定义了一个名为serverName的属性,它的值来自于logging.file.name,如果没有找到该属性默认为MyServerName(根据业务修改) -->
    <springProperty name="serverName" source="logging.file.name" defaultValue="glassStorage"/>
    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
    <!-- 彩色日志依赖的渲染类 -->
    <!-- 定义了一个名为clr的转换规则,它使用org.springframework.boot.logging.logback.ColorConverter类进行转换,这个元素通常用于将日志输出中的文本着色,以便更容易地区分不同的日志级别或其他信息 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <!-- WhitespaceThrowableProxyConverter和ExtendedWhitespaceThrowableProxyConverter都是用于将异常信息转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示的类。它们之间的区别在于,ExtendedWhitespaceThrowableProxyConverter在输出异常信息时会包含更多的详细信息,例如异常的类名、方法名和行号等 -->
    <!-- 定义了一个名为wex的转换规则,它使用org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter类进行转换,这个元素通常用于将异常信息转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示 -->
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <!-- 定义了一个名为wEx的转换规则,它使用org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter类进行转换,这个元素通常用于将异常信息转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示 -->
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!-- 彩色日志格式 -->
    <!-- value值是日志输出模板, :-是属性名和其默认值之间的分隔符,作用与:相同 -->
    <!-- 定义日志输出格式的转换规则,%d{yyyy-MM-dd HH:mm:ss.SSS}表示日期和时间,%clr表示将输出文本着色,{faint}表示使用淡色 -->
    <!-- %5p表示日志级别输出右对齐,左边以空格填充 -->
    <!-- ${PID:- }表示进程ID,%clr表示将输出文本着色,{magenta}表示使用洋红色 -->
    <!-- -表示一个分隔符 -->
    <!-- %t:显示产生该日志的线程名;%15:若字符长度小于15,则左边用空格填充;%.15:若字符长度超过15,截去多余字符 -->
    <!-- %-40:若字符长度小于40,则右边用空格填充;%.40:若字符长度超过40,截去多余字符;logger{39}对应的是“logging.WARNING”级别。具体来说,Python的logging模块定义了以下几个级别(从低到高):NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL。因此,logger{39}表示的是WARNING级别,即日志记录器会记录所有WARNING级别及以上的日志信息 -->
    <!-- %m表示日志消息;%n表示换行符;${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}表示异常信息。如果日志输出中包含异常信息,这个规则将会将其转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <!--1. 输出到控制台-->
    <!-- 定义控制台日志输出的appender,class="ch.qos.logback.core.ConsoleAppender"表示使用Logback框架提供的ConsoleAppender类来输出日志到控制台 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <!-- 定义日志输出级别的过滤器,class="ch.qos.logback.classic.filter.ThresholdFilter"表示使用Logback框架提供的ThresholdFilter类来过滤日志输出,<level>debug</level>表示只输出debug级别及以上的日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
        <encoder>
            <!-- ${CONSOLE_LOG_PATTERN}表示控制台日志输出格式,UTF-8表示编码格式 -->
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!--2. 输出到文档-->
    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
    <!-- 定义文件日志输出的appender,class="ch.qos.logback.core.rolling.RollingFileAppender"表示使用Logback框架提供的RollingFileAppender类来输出日志到文件 -->
    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文档的路径及文档名 -->
        <file>${logging.path}/${serverName}/web_debug.log</file>
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset> <!-- 设置字符集 -->
        </encoder>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <!-- 定义日志文件滚动策略的标签,class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"表示使用Logback框架提供的TimeBasedRollingPolicy类来定义日志文件的滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志归档 -->
            <!-- 定义日志文件名的模式。在这个模式中,${logging.path}表示日志文件的路径,%d{yyyy-MM-dd}表示日期格式,%i表示文件索引 -->
            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 定义日志文件滚动策略的标签,class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"表示使用Logback框架提供的SizeAndTimeBasedFNATP类来定义日志文件的滚动策略,<maxFileSize>100MB</maxFileSize>表示日志文件的最大大小为100MB。这个滚动策略通常用于按照时间和文件大小滚动日志文件,以便更好地管理日志文件的大小和数量 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录debug级别的 -->
        <!-- 定义日志输出级别的过滤器。在这个过滤器中,class="ch.qos.logback.classic.filter.LevelFilter"表示使用Logback框架提供的LevelFilter类来过滤日志输出,<level>debug</level>表示只输出debug级别及以上的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>debug</level>
            <!-- <onMatch>ACCEPT</onMatch>表示如果日志事件与过滤器匹配,则接受该事件,<onMismatch>DENY</onMismatch>表示如果日志事件与过滤器不匹配,则拒绝该事件 -->
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文档的路径及文档名 -->
        <file>${logging.path}/${serverName}/web_info.log</file>
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 天天日志归档路径以及格式 -->
            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录info级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文档的路径及文档名 -->
        <file>${logging.path}/${serverName}/web_warn.log</file>
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录warn级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>warn</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文档的路径及文档名 -->
        <file>${logging.path}/${serverName}/web_error.log</file>
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录ERROR级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!--     4.1 开发环境:打印控制台-->
    <!-- 用于在Spring Boot应用程序中配置日志记录的标签。在这个标签中,name="dev"表示这个配置文件只在dev环境中生效,<logger name="com.myClass.controller" level="debug"/>表示为com.myClass.controller(根据业务修改)这个包下的类配置日志输出级别为debug -->
    <!--    <springProfile name="dev">-->
    <!--        <logger name="com.myClass.controller" level="debug"/>-->
    <!--    </springProfile>-->
    <!-- 用于配置日志输出的标签。在这个标签中,level="info"表示日志输出级别为info,<appender-ref ref="CONSOLE"/>、<appender-ref ref="DEBUG_FILE"/>、<appender-ref ref="INFO_FILE"/>、<appender-ref ref="WARN_FILE"/>、<appender-ref ref="ERROR_FILE"/>表示将日志输出到不同的appender中,分别为控制台、debug文件、info文件、warn文件和error文件 -->
    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="WARN_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    </root>
</configuration>
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/config/S7Config.java
@@ -15,15 +15,15 @@
public class S7Config {
    @Bean(name = "s7SerializerSPOne")
    public S7Serializer s7SerializerSPOne() {
//        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.15");
        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.15");
//        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        return S7Serializer.newInstance(s7PLC);
    }
    @Bean(name = "s7SerializerSPTwo")
    public S7Serializer s7SerializerSPTwo() {
//        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.21");
        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.21");
//        S7PLC s7PLC = new S7PLC(EPlcType.S1500, "10.153.19.191");
        return S7Serializer.newInstance(s7PLC);
    }
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -127,6 +127,7 @@
        } else {
            s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
        }
        log.info("{}上片线,当前上片位信息:{}", deviceId, s7DataSP);
        Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
                .eq(Engineering::getState, Const.ENGINEERING_RUNNING).eq(Engineering::getStationCell, deviceId));
        if (null == engineering) {
@@ -135,11 +136,11 @@
        }
        //任务暂停
        S7DataSP task = new S7DataSP();
        if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
            s7SerializerSPOne.read(S7DataSP.class);
        } else {
            s7SerializerSPTwo.read(S7DataSP.class);
        }
//        if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
//            s7SerializerSPOne.read(S7DataSP.class);
//        } else {
//            s7SerializerSPTwo.read(S7DataSP.class);
//        }
//        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
        ;
        if ("0".equals(s7DataSP.getInkageState().toString())) {
@@ -237,6 +238,7 @@
        } else {
            s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
        }
        log.info("{}上片线,当前上片位信息:{}", deviceId, s7DataSP);
//        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
        if (s7DataSP.getTaskRunning().toString().equals(Const.ENGINEERING_NEW)) {
//        if (task.getTaskRunning().equals(Const.ENGINEERING_NEW)) {
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -2,7 +2,7 @@
  port: 10015
spring:
  profiles:
    active: dev
    active: yw
  application:
    name: loadGlass
  liquibase:
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -2,7 +2,7 @@
  port: 10016
spring:
  profiles:
    active: dev
    active: yw
  application:
    name: temperingGlass
  liquibase:
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/config/ModbusConfig.java
@@ -14,14 +14,19 @@
    @Bean(name = "CMJ1ModbusTcp")
    public ModbusTcp CMJ1ModbusTcp() {
//        return new ModbusTcp("127.0.0.1");
        return new ModbusTcp("192.168.30.160");
//        ModbusTcp modbusTcp=new ModbusTcp("127.0.0.1");
        ModbusTcp modbusTcp=new ModbusTcp("192.168.30.160");
        modbusTcp.setConnectTimeout(3000);
        return modbusTcp;
    }
    @Bean(name = "CMJ2ModbusTcp")
    public ModbusTcp CMJ2ModbusTcp() {
//        return new ModbusTcp("127.0.0.1");
        return new ModbusTcp("192.168.30.162");
//        ModbusTcp modbusTcp=new ModbusTcp("127.0.0.1");
        ModbusTcp modbusTcp=new ModbusTcp("192.168.30.160");
        modbusTcp.setConnectTimeout(3000);
        return modbusTcp;
    }
}
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcHollowRemoveTask.java
@@ -41,6 +41,33 @@
    private Integer offset = 40001;
    /**
     * 除膜机联机状态
     *
     * @throws Exception
     */
    @Scheduled(fixedDelay = 3000)
    public void filmRemoveStateOne() throws Exception {
        ModbusTcp modbusTcp = CMJ1ModbusTcp;
        try {
            modbusTcp.readUInt16(42001 - offset);
            log.info("除膜机1联机状态正常");
        } catch (Exception e) {
            log.error("除膜机1联机状态异常", e);
        }
    }
    @Scheduled(fixedDelay = 3000)
    public void filmRemoveStateTwo() throws Exception {
        ModbusTcp modbusTcp = CMJ2ModbusTcp;
        try {
            modbusTcp.readUInt16(42001 - offset);
            log.info("除膜机2联机状态正常");
        } catch (Exception e) {
            log.error("除膜机2联机状态异常", e);
        }
    }
    /**
     * 收到除膜机请求及玻璃id
     *
     * @throws Exception
@@ -61,6 +88,10 @@
            modbusTcp = CMJ1ModbusTcp;
        } else {
            modbusTcp = CMJ2ModbusTcp;
        }
        if (!modbusTcp.checkConnected()) {
            log.info("除膜机{}未连接", cell);
            return;
        }
        Integer requestEntity = modbusTcp.readUInt16(42001 - offset);
//        ReadWriteEntity requestEntity = miloService.readFromOpcUa(cell + "mesControl");
@@ -158,6 +189,10 @@
        } else {
            modbusTcp = CMJ2ModbusTcp;
        }
        if (!modbusTcp.checkConnected()) {
            log.info("除膜机{}未连接", cell);
            return;
        }
        int requestEntity = modbusTcp.readUInt16(42001 - offset);
        int request = requestEntity;
        int flagRequest = request & 9;
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -387,7 +387,7 @@
    public void outBigStorageTask() throws Exception {
        Date startDate = new Date();
        S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
        log.info("进片任务读取s7DataZKDLPTwo:{}", s7DataZKDLPTwo);
        log.info("出片任务读取s7DataZKDLPTwo:{}", s7DataZKDLPTwo);
//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
        Boolean inkageEntity = s7DataZKDLPTwo.getMesControl();
@@ -415,14 +415,20 @@
        //获取空闲且领取任务的数据信息,没有任务直接走玻璃调度
        HashMap<Integer, Boolean> map = new HashMap<>();
        try {
            Boolean oneEntity = CMJ1ModbusTcp.readUInt16(42027 - 40001) != 0;
            map.put(930, oneEntity);
            if (CMJ1ModbusTcp.checkConnected()) {
                Boolean oneEntity = CMJ1ModbusTcp.readUInt16(42027 - 40001) != 0;
                map.put(930, oneEntity);
            } else {
                map.put(930, Boolean.FALSE);
            }
        } catch (Exception e) {
            //nothing
            log.info("一线空闲状态获取异常");
        }
        try {
            S7DataZKExtra s7DataZKExtra = s7SerializerZKQ2.read(S7DataZKExtra.class);
            log.info("中空额外读取{}", s7DataZKExtra);
            map.put(931, s7DataZKExtra.getIsFree());
            map.put(932, s7DataZKExtra.getIsFree03());
        } catch (Exception e) {
@@ -1051,9 +1057,9 @@
        int glassCount = baseInfoList.size();
        List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
        //生成出片任务条数不足6补全
//        for (T t : baseInfoList) {
//            bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
//        }
        for (T t : baseInfoList) {
            bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
        }
//        while (bigStorageCageTaskList.size() < 6) {
//            bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
//        }
@@ -1061,6 +1067,7 @@
        resetOutTask();
//        bigStorageCageTaskService.removeAll(tableName);
//        bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
        log.info("生成出片任务数据{}", bigStorageCageTaskList);
        S7DataZKDLPTwo s7DataZKDLPTwo = new S7DataZKDLPTwo();
        for (int i = 0; i < bigStorageCageTaskList.size() && i < 6; i++) {
            String glassId = bigStorageCageTaskList.get(i).getGlassId();
@@ -1102,6 +1109,9 @@
            }
        }
        s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
        log.info("出片任务写入数据{}", s7DataZKDLPTwo);
        S7DataZKDLPTwo s7DataZKDLPTwo1 = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
        log.info("写入出片任务后读取数据{}", s7DataZKDLPTwo1);
        List<HollowBigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
            HollowBigStorageCageHistoryTask history = new HollowBigStorageCageHistoryTask();
            BeanUtils.copyProperties(e, history);
@@ -1109,6 +1119,7 @@
            history.setTaskType(taskType);
            return history;
        }).collect(Collectors.toList());
        log.info("历史任务保存{}", historyList);
        hollowBigStorageCageHistoryTaskService.saveBatch(historyList);
        log.info("将出片玻璃{}玻璃状态改为出片中", glassIds);
        hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
spring:
  profiles:
    active: dev
    active: yw
  application:
    name: hollowGlass
  liquibase:
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/logback-spring.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
    <!-- logger上下文名称(根据业务修改) -->
    <contextName>cacheVerticalGlass</contextName>
    <contextName>hollowGlass</contextName>
    <!-- 定义了一个名为serverName的属性,它的值来自于logging.file.name,如果没有找到该属性默认为MyServerName(根据业务修改) -->
    <springProperty name="serverName" source="logging.file.name" defaultValue="hollowGlass"/>