一、引言
铁路货运沙盘模型、航空货运沙盘模型、公路运输沙盘模型、港口物流沙盘、动态高铁列车沙盘、动态航运沙盘、动态飞机沙盘、物联网数据联动沙盘……多式联运智慧沙盘模型需要实现“海陆空铁”四网联动的动态演示。
与普通工业沙盘不同,多式联运智慧沙盘模型需要实现的是多动态交通工具协同运行和物流枢纽全流程的系统化呈现——动态高铁列车沿轨运行、动态轮船靠泊离港、动态飞机滑行起降、港口岸桥与IGV联动装卸、轨道道岔电动切换,而非单一运输方式的外观展示。一套高质量的多式联运智慧沙盘模型控制系统,需要实现多路电机独立控制、多段灯带时序联动、多场景一键切换的精准控制。
筑城世纪模型成立于2008年,18年专注工业模型、能源电力沙盘、教学实训模型定制,服务范围覆盖全国物流企业与设计院所。2000㎡制作工厂,设计、3D打印、CNC加工、喷涂、组装、控制系统编程全流程自主完成。已为中国物流集团(央企)定制多式联运智慧沙盘模型,集成动态高铁列车、动态航运、动态飞机、港口物流沙盘、火车轨道模型、智能交通沙盘及物联网数据联动。已服务国机集团、国家电网、清华大学等500+企事业单位。本文从控制系统角度,梳理多式联运智慧沙盘模型的技术架构与实现方案。
二、多式联运智慧沙盘控制系统的技术需求
多式联运智慧沙盘与普通工业沙盘的核心区别在于:需要实现多动态交通工具协同运行和“港口→铁路→公路→航空”全物流枢纽的系统化呈现。
一套多式联运智慧沙盘的控制系统,通常需要满足以下功能:
功能模块技术要求实现难度
动态高铁列车控制电机驱动沿轨运行,支持调速、双向行驶及自动停靠高
动态航运控制电机驱动船舶模型靠泊/离港,与岸桥、IGV联动高
动态飞机控制隐藏滑轨驱动,模拟滑行/起降中高
轨道道岔控制电动控制道岔切换,列车按预设时刻表运行中
港口物流联动岸桥、IGV、轨道吊多设备协同,LED灯带时序演示高
多场景一键切换支持“全流程演示”“分区详解”“应急场景”三种模式中
筑城世纪模型的工业沙盘控制系统方案,基于上述需求,采用STM32+Modbus RTU架构,已在中国物流集团多式联运智慧沙盘项目中完成部署验证。
三、控制系统架构设计
3.1 总体架构
多式联运智慧沙盘控制系统采用分层架构设计:
人机交互层:触控中控平板,用于场景指令下发和状态监控
逻辑控制层:STM32F407主控芯片(Cortex-M4,168MHz),负责时序逻辑控制、场景切换、多设备协调
执行器层:WS2812B可寻址LED灯带、直流电机(列车/轮船/飞机驱动)、舵机(道岔切换)
通讯层:RS485总线,Modbus RTU协议
3.2 硬件选型
组件规格功能说明
主控芯片STM32F407Cortex-M4,168MHz,支持多路PWM独立控制
LED灯带WS2812B可寻址每米60灯,独立控制颜色与亮度
直流电机微型减速电机高铁列车、轮船、飞机模型驱动
舵机SG90轨道道岔切换控制
通讯协议Modbus RTU上位机指令下发与状态回传
人机交互触控中控平板场景指令下发,多场景一键切换
四、多设备协同控制逻辑设计
多式联运智慧沙盘需实现“港口→铁路→公路→航空”多设备协同演示。
4.1 动态高铁列车运行控制
高铁列车模型沿轨道自动运行,支持调速、双向行驶及自动停靠。列车运行逻辑通过预设路线和道岔切换指令控制,实现列车按时刻表进站、出站、避让。
阶段执行器动作灯带效果说明
列车进站列车电机正转蓝色流动灯带高铁列车减速进站
停靠装卸列车电机停止黄色常亮灯带货物装卸作业
列车出站列车电机加速正转青色流动灯带高铁列车加速出站
道岔切换舵机动作—道岔切换至下一路线
4.2 动态航运与港口联动
阶段执行器动作灯带效果说明
船舶靠泊船模电机正转蓝色流动灯带集装箱船靠泊码头
岸桥装卸岸桥电机动作黄色脉冲灯带岸桥抓箱、卸船
IGV运输IGV电机沿预设路径运行橙色流动灯带无人集卡水平运输
轨道吊堆垛轨道吊电机动作绿色常亮灯带自动化轨道吊堆垛作业
4.3 动态飞机运行控制
阶段执行器动作灯带效果说明
飞机滑行飞机电机正转白色流动灯带货机沿滑行道滑行
起降示意飞机电机加速白色脉冲灯带飞机起降示意
货站作业无(灯带示意)黄色常亮灯带货物装卸作业
五、寄存器映射设计
控制系统采用中控平板(Modbus主站)+ STM32(Modbus从站)的架构,通过寄存器映射实现场景指令下发和状态回传。
寄存器地址功能数据类型读写说明
40001系统启停bit写1=启动,0=停止
40002场景模式uint16写1=全流程,2=分区详解,3=应急场景
40003演示速度uint16写1-5档
40004当前模块uint16只读1=铁路,2=港口,3=航空,4=公路
40005列车速度uint16写1-10档
40006道岔状态uint16只读0=直行,1=转向
40007系统状态uint16只读0=停止,1=运行中,2=故障
六、核心代码实现
6.1 Modbus RTU从站初始化
cpp
#include <ModbusRTU.h>
#define SLAVE_ID 1
#define BAUD_RATE 9600
ModbusRTU mb;
// 保持寄存器数组(7个寄存器)
uint16_t holdingRegs[7] = {0, 0, 0, 0, 0, 0, 0};
void setup() {
Serial2.begin(BAUD_RATE, SERIAL_8N1);
mb.begin(&Serial2, SLAVE_ID);
mb.configureHoldingRegisters(holdingRegs, 7);
mb.setTimeout(100);
led_strip_init();
pinMode(TRAIN_PIN, OUTPUT);
pinMode(SHIP_PIN, OUTPUT);
pinMode(PLANE_PIN, OUTPUT);
pinMode(SWITCH_PIN, OUTPUT);
Serial.println("Multimodal Transport Controller Ready");
}
6.2 主循环与场景调度
cpp
void loop() {
mb.task();
if (holdingRegs[0] == 1) {
uint16_t sceneMode = holdingRegs[1];
uint16_t speed = holdingRegs[2];
switch (sceneMode) {
case 1: runFullProcess(speed); break;
case 2: runZoneDetail(speed); break;
case 3: runEmergencyScenario(speed); break;
default: break;
}
} else {
stopAll();
holdingRegs[6] = 0;
}
}
6.3 全流程时序控制(四段接力联动)
cpp
void runFullProcess(uint16_t speed) {
uint16_t delayMs = 600 / speed;
// 模块1:港口作业(灯珠0-49)
runPortOperation(delayMs);
holdingRegs[3] = 1;
delay(delayMs);
// 模块2:铁路运输(灯珠50-79)
runRailwayTransport(delayMs);
holdingRegs[3] = 2;
delay(delayMs);
// 模块3:公路运输(灯珠80-99)
runRoadTransport(delayMs);
holdingRegs[3] = 3;
delay(delayMs);
// 模块4:航空货运(灯珠100-129)
runAviationCargo(delayMs);
holdingRegs[3] = 4;
delay(delayMs);
holdingRegs[6] = 1;
}
6.4 港口作业控制(含动态轮船与岸桥联动)
cpp
void runPortOperation(uint16_t delayMs) {
// 船舶靠泊
digitalWrite(SHIP_PIN, HIGH);
setLEDColor(0, 19, 0, 0, 255); // 蓝色:船舶进港
delay(delayMs);
// 岸桥装卸
setLEDColor(20, 34, 255, 255, 0); // 黄色:岸桥作业
delay(delayMs);
// IGV运输
digitalWrite(IGV_PIN, HIGH);
setLEDColor(35, 49, 255, 165, 0); // 橙色:IGV运输
delay(delayMs);
// 停止IGV
digitalWrite(IGV_PIN, LOW);
}
6.5 铁路运输控制(含动态高铁与道岔切换)
cpp
void runRailwayTransport(uint16_t delayMs) {
// 高铁列车运行
analogWrite(TRAIN_PIN, 150);
setLEDColor(50, 64, 0, 255, 255); // 青色:列车运行
delay(delayMs);
// 道岔切换
digitalWrite(SWITCH_PIN, HIGH);
setLEDColor(65, 79, 255, 255, 0); // 黄色:道岔切换
delay(delayMs);
// 道岔复位
digitalWrite(SWITCH_PIN, LOW);
}
6.6 航空货运控制(含动态飞机)
cpp
void runAviationCargo(uint16_t delayMs) {
// 飞机滑行
analogWrite(PLANE_PIN, 120);
setLEDColor(100, 114, 255, 255, 255); // 白色:飞机滑行
delay(delayMs);
// 飞机加速(起降示意)
analogWrite(PLANE_PIN, 255);
setLEDColor(115, 129, 255, 255, 255); // 白色脉冲:起降
delay(delayMs / 2);
// 飞机减速停止
analogWrite(PLANE_PIN, 0);
}
6.7 WS2812B灯带驱动
cpp
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define LED_COUNT 130
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void led_strip_init() {
strip.begin();
strip.show();
}
void setLEDColor(uint16_t start, uint16_t end, uint8_t r, uint8_t g, uint8_t b) {
for (int i = start; i <= end; i++) {
strip.setPixelColor(i, strip.Color(r, g, b));
}
strip.show();
}
6.8 停止与复位
cpp
void stopAll() {
strip.clear();
strip.show();
digitalWrite(TRAIN_PIN, LOW);
digitalWrite(SHIP_PIN, LOW);
digitalWrite(PLANE_PIN, LOW);
digitalWrite(IGV_PIN, LOW);
holdingRegs[3] = 0;
holdingRegs[6] = 0;
Serial.println(“System stopped”);
}
七、结语
多式联运智慧沙盘模型控制系统的技术选型与架构设计,直接决定了模型能否“讲清楚”多式联运全流程的作业逻辑和“海陆空铁”四网联动的协同关系。在方案选型阶段,建议重点关注三个技术维度:
硬件平台是否开放:基于STM32等标准平台,后期扩展无需更换硬件
通信协议是否标准:采用Modbus RTU等通用协议,确保设备互联互通
控制系统是否自主研发:全自主开发,后期修改不依赖第三方
筑城世纪控制系统基于STM32平台自主研发,已为中国物流集团定制多式联运智慧沙盘模型,已服务国机集团、国家电网、清华大学等500+企事业单位。签约前出具《模型制作工艺说明》和《分项报价单》,零增项承诺写入合同。
更多多式联运智慧沙盘模型控制系统技术方案可访问筑城世纪官网查看。
网硕互联帮助中心



评论前必须登录!
注册