Files
bj_power/bj_power_mes/doc/data.sql
T

137 lines
10 KiB
SQL
Raw 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. 接驳台-1 Dock-1 42位,工件入线/出线口(面向产线,从左到右编号)
-- 2. 接驳台-2 Dock-2 42位,工件入线/出线口
-- 3. 磨床 Grinder 1位,支持换料协议(exchange=true)
-- 4. 换向机构 TurnTable 1位,支持换料(方形件换向)
-- 5. 清洗 Wash 1位,复用AirBlow信号M2130-M2139
-- 6. 缓存台 Cache 1位,全检台满时暂存
-- 7. 全检台 FullCheck 2位,纯人工检测
-- 8. 机器人 Robot 搬运设备,slotCount=0,双夹持(dualGrip=true),串行互斥
-- ============================================================================
-- 注意:执行本文件前请先执行 signals.sql 初始化信号表
-- 清理旧数据(谨慎执行)
DELETE FROM manual_action;
DELETE FROM event_log;
DELETE FROM job_step_instance;
DELETE FROM task_log;
DELETE FROM task;
DELETE FROM job_step_decision;
DELETE FROM job_step_action;
DELETE FROM job_step_signal;
DELETE FROM job_step_resource;
DELETE FROM job_step;
DELETE FROM job;
DELETE FROM work_order;
DELETE FROM resource_lock;
DELETE FROM equipment_signal;
DELETE FROM equipment_slot;
DELETE FROM equipment;
DELETE FROM equipment_type;
DELETE FROM product_type;
DELETE FROM recipe_step_decision;
DELETE FROM recipe_step_action;
DELETE FROM recipe_step_signal;
DELETE FROM recipe_step_resource;
DELETE FROM recipe_step;
DELETE FROM recipe;
DELETE FROM inspection_image;
-- ========== 1. 设备类型 ==========
INSERT INTO equipment_type (id, code, name, movable, default_capacity) VALUES
(1, 'DOCK', '接驳台', false, 42),
(2, 'GRINDER', '磨床', false, 1),
(3, 'TURN_TABLE', '换向机构', false, 1),
(4, 'AIR_BLOW', '清洗', false, 1),
(5, 'CACHE', '缓存台', false, 1),
(6, 'FULL_CHECK', '全检台', false, 2),
(7, 'ROBOT', '搬运机器人', true, 0);
-- ========== 2. 设备实例 ==========
INSERT INTO equipment (id, name, equipment_type_id, status, slot_count, exchange, batch, dual_grip, ip_address, location, done_signal_name, ng_signal_name, remark) VALUES
(1, '接驳台-1', 1, 'IDLE', 42, false, false, false, '', '入线/出线口(左)', '', '', '接驳台1号,42位'),
(2, 'Grinder-01', 2, 'IDLE', 1, true, false, false, '', '磨削工位', 'GrinderMachiningDone', '', '单工位,支持换料'),
(3, 'TurnTable-01', 3, 'IDLE', 1, true, false, false, '', '换向工位', '', '', '单工位,方形件换向'),
(4, 'AirBlow-01', 4, 'IDLE', 1, false, false, false, '', '清洗工位', 'AirBlowCompleteDone', '', '复用AirBlow信号M2130-M2139'),
(5, 'Cache-01', 5, 'IDLE', 1, false, false, false, '', '缓存区', '', '', '1位缓存,全检台满时暂存'),
(6, 'FullCheck-01', 6, 'IDLE', 2, false, false, false, '', '全检工位', 'FullCheckInspectDone', '', '2位,纯人工检测'),
(7, 'Robot-01', 7, 'IDLE', 0, false, false, true, '', '搬运区', '', '', '搬运机器人,双夹持,串行互斥'),
(8, '接驳台-2', 1, 'IDLE', 42, false, false, false, '', '入线/出线口(右)', '', '', '接驳台2号,42位');
-- ========== 3. 设备槽位 ==========
-- 接驳台-1 (equipment_id=1): 槽位 1-42
-- 接驳台-2 (equipment_id=8): 槽位 1-42
INSERT INTO equipment_slot (id, equipment_id, slot_no, status)
SELECT s, 1, s, 'EMPTY' FROM generate_series(1, 42) AS s;
INSERT INTO equipment_slot (id, equipment_id, slot_no, status)
SELECT s + 42, 8, s, 'EMPTY' FROM generate_series(1, 42) AS s;
INSERT INTO equipment_slot (id, equipment_id, slot_no, status) VALUES
(85, 2, 1, 'EMPTY'), -- Grinder-01
(86, 3, 1, 'EMPTY'), -- TurnTable-01
(87, 4, 1, 'EMPTY'), -- AirBlow-01
(88, 5, 1, 'EMPTY'), -- Cache-01 槽位11位缓存)
(89, 6, 1, 'EMPTY'), (90, 6, 2, 'EMPTY'); -- FullCheck-01 槽位1-22位全检)
-- Robot-01 无槽位(slotCount=0,搬运设备)
-- ========== 4. 工艺路线 ==========
-- 缸体工艺:OP10接驳台上料 → OP20磨床磨削 → OP30清洗 → OP35全检台容量判断 → OP40全检检测 / OP50缓存暂存 → OP40回流 → OP60接驳台下料
-- 配油盘工艺:OP10接驳台上料 → OP20换向机构换向 → OP25磨床磨削 → OP30清洗 → OP35全检台容量判断 → OP40全检检测 / OP50缓存暂存 → OP40回流 → OP60接驳台下料
-- 全检台满时:OP35 → OP50缓存暂存 → OP35回流判断
INSERT INTO recipe (id, name, code, version, "desc", is_active) VALUES
(1, '缸体工艺', 'GRINDER-RND', 1, '缸体标准工艺流程:接驳台→磨床→清洗→全检台容量判断→全检/缓存→下料', true),
(2, '配油盘工艺', 'GRINDER-SQR', 1, '配油盘标准工艺流程:接驳台→换向机构→磨床→清洗→全检台容量判断→全检/缓存→下料', true);
-- === 缸体 Recipe (id=1) 工艺步骤 ===
-- OP10 接驳台上料(Dock取毛坯)
-- OP20 磨床磨削(直接放入磨床,无需换向机构换向)
-- OP30 工件清洗(放清洗工位→发AirBlowStartReq→等AirBlowCompleteDone→取回)
-- OP35 全检台容量判断(决策步骤:有空位→OP40 全检检测;已满→OP50 缓存暂存)
-- OP40 全检检测(放全检台,等待检测完成信号)
-- OP50 缓存暂存(全检台满时暂存到缓存台,等全检台有空位后回流OP35重新判断)
-- OP60 接驳台下料(成品放回接驳台)
INSERT INTO recipe_step (id, recipe_id, step_id, step_name, step_index, step_type, resource_type, next_step_default, "desc") VALUES
(1, 1, 'OP10', '接驳台上料', 10, 'LOAD_DOCK', 'DOCK', 'OP20', '从接驳台取毛坯'),
(2, 1, 'OP20', '磨床磨削', 20, 'OPERATION', 'GRINDER', 'OP30', '缸体直接放入磨床磨削;有料判断由系统槽位状态决定'),
(3, 1, 'OP30', '工件清洗', 30, 'AIR_BLOW', '', 'OP35', '机器人放料到清洗工位→发AirBlowStartReq→等AirBlowCompleteDone→取回'),
(4, 1, 'OP35', '全检台容量判断', 35, 'DECISION', '', 'OP40', '判断全检台是否有空位:有空位→OP40全检;已满→OP50缓存'),
(5, 1, 'OP40', '全检检测', 40, 'OPERATION', 'FULL_CHECK', 'OP60', '放全检台等待检测完成'),
(6, 1, 'OP50', '缓存暂存', 50, 'BUFFER_STAGE','CACHE', 'OP35', '全检台满时暂存到缓存台;处理完后回流OP35重新判断'),
(7, 1, 'OP60', '接驳台下料', 60, 'UNLOAD_DOCK', 'DOCK', '', '成品放回接驳台');
-- === 配油盘 Recipe (id=2) 工艺步骤 ===
-- 与缸体区别:OP20 换向机构换向后再 OP25 磨床磨削
INSERT INTO recipe_step (id, recipe_id, step_id, step_name, step_index, step_type, resource_type, next_step_default, "desc") VALUES
(8, 2, 'OP10', '接驳台上料', 10, 'LOAD_DOCK', 'DOCK', 'OP20', '从Dock接驳台取毛坯'),
(9, 2, 'OP20', '换向机构换向', 20, 'OPERATION', 'TURN_TABLE', 'OP25', '配油盘放换向机构,PLC自动旋转换向,完成后取回'),
(10, 2, 'OP25', '磨床磨削', 25, 'OPERATION', 'GRINDER', 'OP30', '换向后的配油盘放入磨床磨削;有料判断由系统槽位状态决定'),
(11, 2, 'OP30', '工件清洗', 30, 'AIR_BLOW', '', 'OP35', '机器人放料到清洗工位→发AirBlowStartReq→等AirBlowCompleteDone→取回'),
(12, 2, 'OP35', '全检台容量判断', 35, 'DECISION', '', 'OP40', '判断全检台是否有空位:有空位→OP40全检;已满→OP50缓存'),
(13, 2, 'OP40', '全检检测', 40, 'OPERATION', 'FULL_CHECK', 'OP60', '放全检台等待检测完成'),
(14, 2, 'OP50', '缓存暂存', 50, 'BUFFER_STAGE','CACHE', 'OP35', '全检台满时暂存到缓存台;处理完后回流OP35重新判断'),
(15, 2, 'OP60', '接驳台下料', 60, 'UNLOAD_DOCK', 'DOCK', '', '成品放回接驳台');
-- ========== 5. 产品类型(8种:4个型号 × 2种形状) ==========
-- 缸体(GENERAL):无需换向,关联圆形件工艺
INSERT INTO product_type (id, name, code, category, recipe_id, cnc_machine_ids, temp_slot_quota, is_active, remark) VALUES
(1, '缸体-HD-A6VM107', 'PART-RND-107', '缸体', 1, '[]', 3, true, '缸体 HD-A6VM107,直接磨削无需换向'),
(2, '缸体-HD-A6VM160', 'PART-RND-160', '缸体', 1, '[]', 3, true, '缸体 HD-A6VM160,直接磨削无需换向'),
(3, '缸体-HD-A6VM200', 'PART-RND-200', '缸体', 1, '[]', 3, true, '缸体 HD-A6VM200,直接磨削无需换向'),
(4, '缸体-HD-A6VM215', 'PART-RND-215', '缸体', 1, '[]', 3, true, '缸体 HD-A6VM215,直接磨削无需换向');
-- 配油盘(SQUARE):需换向,关联方形件工艺
INSERT INTO product_type (id, name, code, category, recipe_id, cnc_machine_ids, temp_slot_quota, is_active, remark) VALUES
(5, '配油盘-HD-A6VM107', 'PART-SQR-107', '配油盘', 2, '[]', 3, true, '配油盘 HD-A6VM107,需换向机构换向后再磨削'),
(6, '配油盘-HD-A6VM160', 'PART-SQR-160', '配油盘', 2, '[]', 3, true, '配油盘 HD-A6VM160,需换向机构换向后再磨削'),
(7, '配油盘-HD-A6VM200', 'PART-SQR-200', '配油盘', 2, '[]', 3, true, '配油盘 HD-A6VM200,需换向机构换向后再磨削'),
(8, '配油盘-HD-A6VM215', 'PART-SQR-215', '配油盘', 2, '[]', 3, true, '配油盘 HD-A6VM215,需换向机构换向后再磨削');
-- 重置序列
SELECT setval('equipment_type_id_seq', (SELECT MAX(id) FROM equipment_type));
SELECT setval('equipment_id_seq', (SELECT MAX(id) FROM equipment));
SELECT setval('equipment_slot_id_seq', (SELECT MAX(id) FROM equipment_slot));
SELECT setval('recipe_id_seq', (SELECT MAX(id) FROM recipe));
SELECT setval('recipe_step_id_seq', (SELECT MAX(id) FROM recipe_step));
SELECT setval('product_type_id_seq', (SELECT MAX(id) FROM product_type));