# test **Repository Path**: Zyb0992/test ## Basic Information - **Project Name**: test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-21 - **Last Updated**: 2024-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据处理 ####按需保存 将数据持久保存下来(历史数据),不同于归档数据,这里更希望保存的数据是最原始的数据(区别于归档数据),尽可能的做最少的处理。目前的需求,这里的数据会定期或者其他条件下清除。每次关闭炉台之前,需要保存一次再执行归档任务。 + 时间间隔 > 设定一个时间间隔,将数据保存 + 设定条件 >设定一个触发的条件,目前的条件一般和标志炉台开启或关闭的信号有关 ####按需归档 将数据持久保存下来(归档数据),不同于历史数据,这里应当是将历史数据处理加工,然后数据与退火周期和炉台号绑定,一般不会清除 + 时间间隔 > 设定一个时间间隔,将数据归档保存 >>+ 电机振动值归档周期500ms >>+ 电机电流值归档周期2s >> 因为有了历史数据做“缓存”,实际上归档数据是不着急做的,不需要为了某一类(曲线数据)去单独设置归档任务,所以目前这种归档可能会取消。 + 设定条件 >设定一个触发的条件,目前的条件一般和标志炉台开启或关闭的信号有关,目前可能都会选择这个条件作为归档的信号。曲线数据会在这个时候做好处理(数据的间隔不小于2分钟,最后一次数据必须保存下来) + 每天归一次档 + 换班的时候归档 ####按需清除 按需清除的数据是历史数据,一般都是在归档完成之后执行 + 时间间隔 > 设定一个时间间隔,将数据清除 + 设定条件 > 这里一般 >> >> + 主动清除 #数据表的设计 数据表分为实时表、历史表和归档表。 * 实时表 实时表原本的设计是直接更新 #日志 日志通常用来排查程序运行阶段的报错等信息,日志记录的内容有时候会大大减少维护的难度。但是事无巨细也会造成磁盘的使用度过高,甚至占满。所以可以将日志分级别,这里借鉴Redis的策略 + debug:能设置的最高的日志级别,打印所有信息,包括debug信息 + verbose:打印除了debug日志之外的所有日志 + notice:打印除了debug和verbose级别的所有日志 + warning:仅打印非常重要的信息 > 产环境选择notice 或者warning。 #关于启动类 + 首先,我这边的启动诶一般都是单例的 + 用途: > 1. 用于读取配置文件 > 2. 用于开启任务 + 问题:读取配置文件的任务一般需要最先启动 + 解决:给每一个启动类添加一个标志,当这个标志为true的时候标志这个类加载完成 #写PLC的数据验证 当写入数据以后,期望验证数据是否写入正常。应用的场景: + 切换工艺的时候,写入完成以后需要在合适的时间读取一次工艺的数据,对比写入时的数据和读取的数据是否一致 + 切换工艺的时候是否可以读取一次工艺(这个主要取决于读取速度,如果读取的速度能控制在1s以内),如果写入的数据和读取的数据是一致的,则可以不写,只记录日志 + 生产工艺的时候需要验证生产的工艺的值是否是OK的 #Redis + close() > `jedis.close()`关闭之后,还是可以继续使用该会话操作Redis #程序使用建议 + 修改基础配置的时候,应当将配置关闭 # 关于/config/view配置说明 ####formItemsJson.json + name:数据库的名称 + order:数据的排序 > name 说明对哪一个字段排序 > type 说明排序的方式 0 降序 desc,1升序 asc #关于设备驱动号--唯一标识设备 目前这个驱动号是一个重要的标志号 > 主要用途有: + 和IMIX联系的编号,对应IMIX的设备编号。 + 二级归档的时候使用的编号 > 问题: + 这个字段会需要修改,修改之后,归档的数据会丢失(会找不到驱动号对应的数据了) #Websocket WebSocket每一个回话都是多例的,当建立一次连接之后,就会调用一次构造方法,执行顺序是 构造法法--->onopen #工艺 ####工艺历史 + 排序 > 1. 统计通过下发程序下发的次数 > 2. 最近使用的按照时间降序排序 #VUE拦截器 ####响应拦截器 作用:当用户失效的时候,返回登陆界面 ####路由拦截器 作用:检查用户是否登陆 ####Redeis # KEY VALUE实例 + 'plc:public:*' > plc:public:CONSUM-r {"field_1":"DB21.186","field_2":"DB21.188","field_3":"DB21.194","field_4":"DB21.200"} + `*:id:plc:public:*` > Dev_1:id:plc:public:CTRL-r:field_4 370004 + `idMap:*` > idMap:370004 100 #曲线 处理不连续的X轴 + connectNulls: true #Map> driveStatus + isOpen:记录炉台的开或者关 + time:记录炉台开或关的时间 + hot_num: 退火周期号 + aet_num:炉台号 + danqi: + ranqi: + qingqi: + dianneng: + nowTech:工艺 + duanhao段号 + zhouqitime:周期时间 + shengyvshijian:剩余时间 #ProductCoilbaseStatusWebsocket > 这个类里边有大量翻译的内容