Files
MES/yawei-mes/.sql/2025-11-29_v1.0.30_周启威_8multi接入优化.sql
2026-04-02 10:39:03 +08:00

96 lines
5.4 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 1. device_data表新增8Multi字段逐条执行已存在会报错可忽略
ALTER TABLE `device_data` ADD COLUMN `f1` DECIMAL(10,2) DEFAULT NULL COMMENT '测频1(Hz)';
ALTER TABLE `device_data` ADD COLUMN `f2` DECIMAL(10,2) DEFAULT NULL COMMENT '测频2(Hz)';
ALTER TABLE `device_data` ADD COLUMN `cn_reg` INT DEFAULT NULL COMMENT '屏幕状态';
ALTER TABLE `device_data` ADD COLUMN `do_reg` VARCHAR(16) DEFAULT NULL COMMENT '状态输出';
ALTER TABLE `device_data` ADD COLUMN `reg1` DECIMAL(12,3) DEFAULT NULL COMMENT '从机数据1';
ALTER TABLE `device_data` ADD COLUMN `reg2` DECIMAL(12,3) DEFAULT NULL COMMENT '从机数据2';
ALTER TABLE `device_data` ADD COLUMN `tv` INT DEFAULT NULL COMMENT '显示';
ALTER TABLE `device_data` ADD COLUMN `save_flag` INT DEFAULT NULL COMMENT '边缘存储';
ALTER TABLE `device_data` ADD COLUMN `oee` INT DEFAULT NULL COMMENT 'OEE计算值';
ALTER TABLE `device_data` ADD COLUMN `dt` INT DEFAULT NULL COMMENT '采样间隔(秒)';
ALTER TABLE `device_data` ADD COLUMN `power1` DECIMAL(12,3) DEFAULT NULL COMMENT '功率1';
ALTER TABLE `device_data` ADD COLUMN `power2` DECIMAL(12,3) DEFAULT NULL COMMENT '功率2';
-- 2. 触发器8AdPro计数器累计
DROP TRIGGER IF EXISTS `update_counter_totals_on_insert`;
DELIMITER $$
CREATE TRIGGER `update_counter_totals_on_insert`
BEFORE INSERT ON `device_data`
FOR EACH ROW
BEGIN
DECLARE last_c1 BIGINT UNSIGNED DEFAULT 0;
DECLARE last_c2 BIGINT UNSIGNED DEFAULT 0;
DECLARE proto VARCHAR(16) DEFAULT '8ADPRO';
SELECT IFNULL(protocol_type, '8ADPRO') INTO proto FROM device WHERE id = NEW.device_id LIMIT 1;
IF proto = '8ADPRO' OR proto IS NULL THEN
SELECT IFNULL(counter1_total, 0), IFNULL(counter2_total, 0) INTO last_c1, last_c2
FROM device_data WHERE device_id = NEW.device_id ORDER BY collected_at DESC LIMIT 1;
SET NEW.counter1_total = IF(NEW.counter1 > 0, last_c1 + NEW.counter1, last_c1);
SET NEW.counter2_total = IF(NEW.counter2 > 0, last_c2 + NEW.counter2, last_c2);
END IF;
END$$
DELIMITER ;
-- =====================================================
-- 3. cn_reg 屏幕状态值说明(下位机已处理,直接使用)
-- =====================================================
-- cn_reg状态值定义
-- 0 = 计划停机
-- 1 = 正常工作
-- 2 = 待机
-- 3 = 故障
-- 4 = 在修
-- 5 = 缺人
-- 6 = 缺料
-- 7 = 清零
-- 注8Multi协议使用cn_reg替代status_work/status_stop/status_fault等字段
-- =====================================================
-- 4. 更新cn_reg字段注释可选
-- =====================================================
ALTER TABLE `device_data` MODIFY COLUMN `cn_reg` INT DEFAULT NULL COMMENT '屏幕状态(0计划停机/1正常工作/2待机/3故障/4在修/5缺人/6缺料/7清零)';
-- =====================================================
-- 5. 8Multi V2.8 废弃字段说明(保留兼容,不删除)
-- =====================================================
-- 以下字段在8Multi V2.8协议中不再使用但保留以兼容8ADPRO和旧版本
--
-- | 废弃字段 | 替代方案 | 说明 |
-- |-----------------------------|--------------------|-----------------------|
-- | current1_raw, current2_raw | current1_value | 下位机已换算,直接传实际值 |
-- | quality1_raw, quality2_raw | quality1_value | 下位机已换算,直接传实际值 |
-- | status_work/stop/fault/reset| cn_reg (0-7) | 统一用屏幕状态 |
-- | frequency1, frequency2 | f1, f2 | 使用新测频字段 |
-- | counter1_current/delta | counter1 | 直接使用计数增量 |
-- | counter2_current/delta | counter2 | 直接使用计数增量 |
-- | counter1_total_8multi | counter1_total | 统一用counter1_total |
-- | counter2_total_8multi | counter2_total | 统一用counter2_total |
-- | relay_power/alarm | do_reg | 统一用状态输出 |
-- | do_soft_start, do_stop | do_reg | 统一用状态输出 |
-- | slave_data1, slave_data2 | reg1, reg2 | 使用新从机数据字段 |
-- | touchscreen_data | tv | 使用新显示字段 |
-- =====================================================
-- 6. 8Multi卡号ID格式说明
-- =====================================================
-- 卡号ID共12位: 品牌1位 + 年份1位 + 月日4位 + 用户号2位 + 序号4位
-- 示例: 101126010002
-- 1 - 品牌前缀
-- 0 - 年份(0=2025, 1=2026, 2=2027...)
-- 1126 - 月日(11月26日)
-- 01 - 用户号
-- 0002 - 设备序号后端使用后4位作为设备号
-- =====================================================
-- 7. 设备扩展字段(设备位置、品牌、型号、车间、工段)
-- =====================================================
ALTER TABLE `device` ADD COLUMN `location` VARCHAR(255) DEFAULT NULL COMMENT '设备位置';
ALTER TABLE `device` ADD COLUMN `brand` VARCHAR(128) DEFAULT NULL COMMENT '设备品牌';
ALTER TABLE `device` ADD COLUMN `model` VARCHAR(128) DEFAULT NULL COMMENT '设备型号';
ALTER TABLE `device` ADD COLUMN `workshop_id` BIGINT DEFAULT NULL COMMENT '车间ID(关联md_workshop)';
ALTER TABLE `device` ADD COLUMN `section` VARCHAR(64) DEFAULT NULL COMMENT '工段(关联pro_process)';