steel_rolling.sql 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. CREATE DATABASE IF NOT EXISTS industrial_data;
  2. USE industrial_data;
  3. -- 创建数据点表
  4. CREATE TABLE data_points (
  5. id INT AUTO_INCREMENT PRIMARY KEY,
  6. name VARCHAR(100) NOT NULL COMMENT '数据点名称',
  7. type VARCHAR(20) NOT NULL COMMENT '数据类型(bool/int/dint/real)',
  8. db_number INT NOT NULL COMMENT 'DB块号',
  9. start_offset INT NOT NULL COMMENT '起始偏移量',
  10. bit_offset INT NOT NULL COMMENT '位偏移量(仅bool类型有意义)',
  11. size INT NOT NULL COMMENT '数据大小(字节)',
  12. read_allow BOOLEAN NOT NULL COMMENT '是否允许读取',
  13. write_allow BOOLEAN NOT NULL COMMENT '是否允许写入',
  14. frequency INT NOT NULL COMMENT '采集频率(ms)',
  15. group_id INT NOT NULL COMMENT '组别',
  16. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  17. UNIQUE KEY (name)
  18. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据点配置表';
  19. -- 创建实时数据表
  20. CREATE TABLE realtime_data (
  21. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  22. point_id INT NOT NULL COMMENT '数据点ID',
  23. bool_value BOOLEAN NULL COMMENT '布尔值',
  24. int_value INT NULL COMMENT '整数值',
  25. real_value FLOAT NULL COMMENT '实数值',
  26. timestamp TIMESTAMP(3) NOT NULL COMMENT '数据时间戳(毫秒精度)',
  27. FOREIGN KEY (point_id) REFERENCES data_points(id),
  28. INDEX (point_id, timestamp)
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时数据表';
  30. -- 创建历史数据表(按天分区)
  31. CREATE TABLE historical_data (
  32. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  33. point_id INT NOT NULL COMMENT '数据点ID',
  34. bool_value BOOLEAN NULL COMMENT '布尔值',
  35. int_value INT NULL COMMENT '整数值',
  36. real_value FLOAT NULL COMMENT '实数值',
  37. timestamp TIMESTAMP(3) NOT NULL COMMENT '数据时间戳(毫秒精度)',
  38. FOREIGN KEY (point_id) REFERENCES data_points(id),
  39. INDEX (point_id, timestamp)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='历史数据表';
  41. -- 插入数据点配置
  42. INSERT INTO data_points (name, type, db_number, start_offset, bit_offset, size, read_allow, write_allow, frequency, group_id) VALUES
  43. ('看门狗', 'bool', 889, 0, 0, 1, TRUE, FALSE, 500, 1),
  44. ('18#有钢信号', 'bool', 889, 0, 1, 1, TRUE, FALSE, 500, 1),
  45. ('炉号', 'dint', 889, 4, 0, 4, TRUE, FALSE, 500, 1),
  46. ('定尺', 'dint', 889, 8, 0, 4, TRUE, FALSE, 500, 1),
  47. ('流号(末架)', 'int', 889, 36, 0, 2, TRUE, FALSE, 500, 1),
  48. ('尾钢长度(热检)', 'int', 889, 38, 0, 2, TRUE, FALSE, 500, 1),
  49. ('轧制规格', 'real', 889, 52, 0, 4, TRUE, FALSE, 500, 1),
  50. ('尾钢长度(激光)', 'real', 889, 56, 0, 4, TRUE, FALSE, 500, 1),
  51. ('轧前温度', 'real', 889, 60, 0, 4, TRUE, FALSE, 500, 1),
  52. ('1流修正值', 'real', 889, 64, 0, 4, TRUE, FALSE, 500, 1),
  53. ('2流修正值', 'real', 889, 68, 0, 4, TRUE, FALSE, 500, 1),
  54. ('3流修正值', 'real', 889, 72, 0, 4, TRUE, FALSE, 500, 1),
  55. ('4流修正值', 'real', 889, 76, 0, 4, TRUE, FALSE, 500, 1),
  56. ('5流修正值', 'real', 889, 80, 0, 4, TRUE, FALSE, 500, 1),
  57. ('6流修正值', 'real', 889, 84, 0, 4, TRUE, FALSE, 500, 1),
  58. ('7流修正值', 'real', 889, 88, 0, 4, TRUE, FALSE, 500, 1),
  59. ('8流修正值', 'real', 889, 92, 0, 4, TRUE, FALSE, 500, 1),
  60. ('1流炼钢反馈重量', 'real', 889, 96, 0, 4, TRUE, FALSE, 500, 1),
  61. ('2流炼钢反馈重量', 'real', 889, 100, 0, 4, TRUE, FALSE, 500, 1),
  62. ('3流炼钢反馈重量', 'real', 889, 104, 0, 4, TRUE, FALSE, 500, 2),
  63. ('4流炼钢反馈重量', 'real', 889, 108, 0, 4, TRUE, FALSE, 500, 2),
  64. ('5流炼钢反馈重量', 'real', 889, 112, 0, 4, TRUE, FALSE, 500, 2),
  65. ('6流炼钢反馈重量', 'real', 889, 116, 0, 4, TRUE, FALSE, 500, 2),
  66. ('7流炼钢反馈重量', 'real', 889, 120, 0, 4, TRUE, FALSE, 500, 2),
  67. ('8流炼钢反馈重量', 'real', 889, 124, 0, 4, TRUE, FALSE, 500, 2),
  68. ('米重', 'real', 889, 128, 0, 4, TRUE, FALSE, 500, 2),
  69. ('尾钢设定', 'real', 889, 132, 0, 4, TRUE, FALSE, 500, 2),
  70. ('1#设定速度', 'real', 889, 136, 0, 4, TRUE, FALSE, 500, 2),
  71. ('2#设定速度', 'real', 889, 140, 0, 4, TRUE, FALSE, 500, 2),
  72. ('3#设定速度', 'real', 889, 144, 0, 4, TRUE, FALSE, 500, 2),
  73. ('4#设定速度', 'real', 889, 148, 0, 4, TRUE, FALSE, 500, 2),
  74. ('5#设定速度', 'real', 889, 152, 0, 4, TRUE, FALSE, 500, 2),
  75. ('6#设定速度', 'real', 889, 156, 0, 4, TRUE, FALSE, 500, 2),
  76. ('7#设定速度', 'real', 889, 160, 0, 4, TRUE, FALSE, 500, 2),
  77. ('8#设定速度', 'real', 889, 164, 0, 4, TRUE, FALSE, 500, 2),
  78. ('9#设定速度', 'real', 889, 168, 0, 4, TRUE, FALSE, 500, 2),
  79. ('10#设定速度', 'real', 889, 172, 0, 4, TRUE, FALSE, 500, 2),
  80. ('11#设定速度', 'real', 889, 176, 0, 4, TRUE, FALSE, 500, 2),
  81. ('12#设定速度', 'real', 889, 180, 0, 4, TRUE, FALSE, 500, 3),
  82. ('13#设定速度', 'real', 889, 184, 0, 4, TRUE, FALSE, 500, 3),
  83. ('14#设定速度', 'real', 889, 188, 0, 4, TRUE, FALSE, 500, 3),
  84. ('15#设定速度', 'real', 889, 192, 0, 4, TRUE, FALSE, 500, 3),
  85. ('16#设定速度', 'real', 889, 196, 0, 4, TRUE, FALSE, 500, 3),
  86. ('17#设定速度', 'real', 889, 200, 0, 4, TRUE, FALSE, 500, 3),
  87. ('18#设定速度', 'real', 889, 204, 0, 4, TRUE, FALSE, 500, 3),
  88. ('1#辊径', 'real', 889, 208, 0, 4, TRUE, FALSE, 500, 3),
  89. ('2#辊径', 'real', 889, 212, 0, 4, TRUE, FALSE, 500, 3),
  90. ('3#辊径', 'real', 889, 216, 0, 4, TRUE, FALSE, 500, 3),
  91. ('4#辊径', 'real', 889, 220, 0, 4, TRUE, FALSE, 500, 3),
  92. ('5#辊径', 'real', 889, 224, 0, 4, TRUE, FALSE, 500, 3),
  93. ('6#辊径', 'real', 889, 228, 0, 4, TRUE, FALSE, 500, 3),
  94. ('7#辊径', 'real', 889, 232, 0, 4, TRUE, FALSE, 500, 3),
  95. ('8#辊径', 'real', 889, 236, 0, 4, TRUE, FALSE, 500, 3),
  96. ('9#辊径', 'real', 889, 240, 0, 4, TRUE, FALSE, 500, 3),
  97. ('10#辊径', 'real', 889, 244, 0, 4, TRUE, FALSE, 500, 3),
  98. ('11#辊径', 'real', 889, 248, 0, 4, TRUE, FALSE, 500, 3),
  99. ('12#辊径', 'real', 889, 252, 0, 4, TRUE, FALSE, 500, 3),
  100. ('13#辊径', 'real', 889, 256, 0, 4, TRUE, FALSE, 500, 4),
  101. ('14#辊径', 'real', 889, 260, 0, 4, TRUE, FALSE, 500, 4),
  102. ('15#辊径', 'real', 889, 264, 0, 4, TRUE, FALSE, 500, 4),
  103. ('16#辊径', 'real', 889, 268, 0, 4, TRUE, FALSE, 500, 4),
  104. ('17#辊径', 'real', 889, 272, 0, 4, TRUE, FALSE, 500, 4),
  105. ('18#辊径', 'real', 889, 276, 0, 4, TRUE, FALSE, 500, 4);
  106. -- 批量初始化bool类型数据点
  107. INSERT INTO realtime_data (point_id, bool_value, timestamp)
  108. SELECT id, FALSE, NOW(3) FROM data_points WHERE type = 'bool';
  109. -- 批量初始化int/dint类型数据点
  110. INSERT INTO realtime_data (point_id, int_value, timestamp)
  111. SELECT id, 0, NOW(3) FROM data_points WHERE type IN ('int', 'dint');
  112. -- 批量初始化real类型数据点
  113. INSERT INTO realtime_data (point_id, real_value, timestamp)
  114. SELECT id, 0.0, NOW(3) FROM data_points WHERE type = 'real';