基于 OpenTCS 工厂模型的数据,我们可以设计一个关系型数据库表结构来存储模型数据,包括点、路径、位置、车辆等元素。以下是一个基于
OpenTCS 模型的数据库表设计建议,以便高效地管理这些数据。
1. 表结构概览
OpenTCS 的工厂模型包括以下主要部分:
Points (点)
Paths (路径)
Locations (位置)
Vehicles (车辆)
Location Types (位置类型)
Blocks (区块)
Visual Layout (可视化布局)
我们将基于这些部分设计对应的数据库表,每个表都将存储相关的信息及其关联关系。
2. 数据库表设计
1. Points 表
用于存储工厂模型中的点(位置)。
2. Paths 表
用于存储点与点之间的路径信息。
3. Locations 表
存储位置类型,如工作站、存储站等。
4. Vehicles 表
用于存储车辆(AGV)信息。
5. Blocks 表
用于存储系统中定义的区块(Block),通常用于管理特定路径的使用限制。
6. LocationTypes 表
存储位置类型及其允许的操作。
7. Paths_Links 表(中间表)
用于表示位置与路径之间的链接关系,因为每个位置可以与多个点相连。
postgresql 建表语句
CREATE TABLE Points (
point_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
x FLOAT NOT NULL,
y FLOAT NOT NULL,
z FLOAT NOT NULL,
vehicle_orientation_angle FLOAT,
type VARCHAR(50),
layout_position_x FLOAT,
layout_position_y FLOAT,
label_offset_x FLOAT,
label_offset_y FLOAT,
layer_id INT
);
CREATE TABLE Paths (
path_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
src_point_id INT REFERENCES Points(point_id),
dest_point_id INT REFERENCES Points(point_id),
max_velocity FLOAT NOT NULL,
max_reverse_velocity FLOAT NOT NULL,
locked BOOLEAN DEFAULT FALSE,
connection_type VARCHAR(50),
layer_id INT
);
CREATE TABLE Locations (
location_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
type_name VARCHAR(100),
position_x FLOAT NOT NULL,
position_y FLOAT NOT NULL,
position_z FLOAT NOT NULL,
locked BOOLEAN DEFAULT FALSE,
layout_position_x FLOAT,
layout_position_y FLOAT,
label_offset_x FLOAT,
label_offset_y FLOAT,
layer_id INT
);
CREATE TABLE Vehicles (
vehicle_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
length FLOAT NOT NULL,
energy_level_critical FLOAT NOT NULL,
energy_level_good FLOAT NOT NULL,
energy_level_fully_recharged FLOAT NOT NULL,
energy_level_sufficiently_recharged FLOAT NOT NULL,
max_velocity FLOAT NOT NULL,
max_reverse_velocity FLOAT NOT NULL,
route_color VARCHAR(20)
);
CREATE TABLE Blocks (
block_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
type VARCHAR(50),
color VARCHAR(20)
);
CREATE TABLE LocationTypes (
location_type_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
allowed_operations VARCHAR(255),
representation VARCHAR(50)
);
CREATE TABLE Paths_Links (
location_id INT REFERENCES Locations(location_id),
point_id INT REFERENCES Points(point_id),
PRIMARY KEY (location_id, point_id)
);
标签:VARCHAR,name,point,FLOAT,开源,二次开发,NULL,OpenTcs6,id
From: https://blog.csdn.net/hai411741962/article/details/143163307