
煉油廠核心裝置沙盤模型控制系統涉及常減壓蒸餾常壓塔、減壓塔、加熱爐、換熱器、催化裂化提升管反應器、再生器、分餾塔、吸收穩定系統、乙烯裂解裂解爐、急冷器、壓縮機組、分離塔三套核心裝置的協同控制與動態演示。與泛工業沙盤控制系統不同煉油廠核心裝置沙盤控制系統的核心是“三套裝置獨立控制全流程物料接力聯動”——常減壓怎么分、催化裂化怎么轉、乙烯裂解怎么切每個環節的控制邏輯必須與實際煉油廠生產調度一致。本文結合筑城世紀模型在工業沙盤控制系統開發中的項目經驗2008年成立2000㎡制作工廠控制系統自主研發已為中石化、國機集團、華北電力大學、國家電網、清華大學等500企事業單位提供服務梳理煉油廠核心裝置沙盤模型控制系統的設計與實現方案涵蓋系統架構、硬件選型、多段燈帶時序控制、Modbus RTU寄存器映射及多工況代碼實現。一、煉油廠核心裝置沙盤控制系統的技術需求功能模塊 技術要求 實現難度常減壓蒸餾時序演示 原油換熱→常壓蒸餾→減壓蒸餾多段燈帶按工藝流程時序流動不同顏色區分不同餾分路徑 中催化裂化時序演示 原料油→反應→再生→分餾→吸收穩定多段燈帶時序流動油氣/催化劑/煙氣三路區分 中高乙烯裂解時序演示 原料→裂解→急冷→壓縮→分離多段燈帶時序流動裂解氣/乙烯/丙烯/C4多路區分 中高三裝置獨立/聯動控制 單裝置獨立演示與全流程物料接力聯動兩種模式切換 高溫度分區指示 常壓塔/減壓塔/裂解爐不同溫度分區用不同顏色燈帶指示 中多工況一鍵切換 正常生產/產品切換/催化劑再生/裂解爐切換四種工況模式切換 高基于上述需求采用STM32Modbus RTU架構。二、為什么煉油廠核心裝置沙盤必須用STM32Modbus RTU方案煉油廠核心裝置沙盤的控制系統有幾個特殊要求第一多裝置獨立與聯動的時序精度要求高。 煉油廠沙盤需要支持單裝置獨立演示和全流程物料接力聯動兩種模式各裝置之間的物料銜接延時需精確控制。STM32的中斷響應精度可達1ms級配合狀態機編程可實現精確的多段時序控制。第二多相流燈帶獨立控制的復雜度高。 煉油廠沙盤需要同時控制油氣、催化劑、煙氣、裂解氣、乙烯、丙烯等多條物料路徑每條路徑的顏色、流速、時序參數完全不同。STM32配合WS2812B可尋址LED燈帶可實現多路獨立并行控制。第三后期修改頻繁。 煉油廠沙盤在交付后經常需要根據客戶需求調整。STM32方案通過寄存器在線修改參數即可完成調整無需重編譯代碼。STM32 vs PLC 選型對比對比項 PLC方案 STM32方案硬件成本 8000-15000元 800-1500元時序控制精度 10-20ms掃描周期 1ms中斷響應多路燈帶獨立控制 需專用通訊模塊 單總線直接驅動多裝置獨立/聯動切換 梯形圖實現困難 C語言狀態機靈活可控后期修改 需編程軟件授權 寄存器在線修改為什么用RS485/Modbus RTU煉油廠沙盤模型內部設備分布廣泛常減壓區、催化裂化區、乙烯裂解區等RS485總線支持多點通訊理論32個節點一線串接所有設備布線簡潔。Modbus RTU是工業標準協議支持接入觸摸屏、中控平板等第三方設備。三、系統架構設計3.1 總體架構text┌─────────────────────────────────────────────────────────────────┐│ 觸摸屏/中控平板Modbus RTU 主站 ││ 工況切換 速度調節 裝置選擇 模式切換 │└─────────────────────────┬───────────────────────────────────────┘│ RS4859600,8N1,120Ω終端電阻┌─────────────────────────▼───────────────────────────────────────┐│ STM32F103RCT6 從站 ││ 指令解析 → 狀態機調度 → GPIO/PWM/單總線輸出 │└───────┬─────────┬─────────┬─────────┬───────────────────────────┘│ │ │ │┌───▼───┐ ┌───▼───┐ ┌───▼───┐ ┌───▼───┐│常減壓 │ │催化 │ │乙烯 │ │裝置 ││蒸餾 │ │裂化 │ │裂解 │ │切換 ││燈帶 │ │燈帶 │ │燈帶 │ │控制 │└───────┘ └───────┘ └───────┘ └───────┘3.2 硬件選型組件 選型 選型理由主控MCU STM32F103RCT6 256KB Flash51個GPIO3個USART通訊接口 MAX485ESA RS485收發器工業級抗干擾燈帶 WS2812B60燈/米 單總線控制每燈獨立尋址中控屏 7寸串口屏 支持Modbus RTU主站協議3.3 GPIO分配表端口 功能 信號類型 說明PA9/PA10 USART1 通訊 與中控屏RS485通訊PB0 常減壓蒸餾燈帶 單總線輸出 WS2812B原油/各餾分路徑PB1 常壓塔溫度分區 單總線輸出 WS2812B紅/橙/黃PB2 減壓塔溫度分區 單總線輸出 WS2812B紅/橙/黃PB3 催化裂化油氣路徑 單總線輸出 WS2812B橙色PB4 催化裂化催化劑路徑 單總線輸出 WS2812B黃色PB5 催化裂化煙氣路徑 單總線輸出 WS2812B灰色PB6 乙烯裂解燈帶 單總線輸出 WS2812B裂解氣紅/乙烯藍/丙烯橙四、Modbus寄存器映射設計4.1 系統控制寄存器40001-40007寄存器地址 偏移地址 功能 數據類型 讀寫 取值范圍 說明40001 0x0000 系統啟停 bit R/W 0/1 0停止1啟動40002 0x0001 運行模式 uint16 R/W 1-4 1常減壓蒸餾2催化裂化3乙烯裂解4全流程聯動40003 0x0002 運行工況 uint16 R/W 1-4 1正常生產2產品切換3催化劑再生4裂解爐切換40004 0x0003 速度檔位 uint16 R/W 1-5 檔位越高生產節奏越快40005 0x0004 系統狀態 uint16 R 0-3 0停止1運行中2告警3故障40006 0x0005 故障代碼 uint16 R 0-99 0無故障4.2 燈帶與參數寄存器40007-40016寄存器地址 偏移地址 功能 數據類型 讀寫 說明40007 0x0006 常減壓蒸餾燈帶 bit R/W 1點亮40008 0x0007 常壓塔溫度分區 uint16 R/W 1-340009 0x0008 減壓塔溫度分區 uint16 R/W 1-340010 0x0009 催化裂化油氣路徑 bit R/W 1點亮40011 0x000A 催化裂化催化劑路徑 bit R/W 1點亮40012 0x000B 催化裂化煙氣路徑 bit R/W 1點亮40013 0x000C 乙烯裂解燈帶 bit R/W 1點亮40014 0x000D 物料流速 uint16 R/W 1-10040015 0x000E 工序間延時 uint16 R/W ms五、核心代碼實現5.1 Modbus從站初始化cpp#include “ModbusRTU.h”#include “Adafruit_NeoPixel.h”#define SLAVE_ID 1#define BAUD_RATE 9600// 燈帶GPIO定義#define LED_CDU PB0#define LED_CDU_ATMP PB1#define LED_CDU_VTMP PB2#define LED_FCC_OIL PB3#define LED_FCC_CAT PB4#define LED_FCC_FLUE PB5#define LED_ETHYLENE PB6#define MODE_NUM 4#define STAGE_NUM 5ModbusRTU mb;uint16_t holdingRegs[32] {0};uint16_t stageDurations[STAGE_NUM] {3000, 4000, 5000, 3000, 3000};uint16_t baseDurations[STAGE_NUM] {3000, 4000, 5000, 3000, 3000};enum SystemState { STOPPED, RUNNING, PAUSED, FAULT };SystemState currentState STOPPED;volatile uint8_t currentStage 0;volatile uint16_t stageElapsedMs 0;volatile uint8_t currentMode 1;Adafruit_NeoPixel strips[7] {Adafruit_NeoPixel(50, LED_CDU, NEO_GRB NEO_KHZ800),Adafruit_NeoPixel(30, LED_CDU_ATMP, NEO_GRB NEO_KHZ800),Adafruit_NeoPixel(30, LED_CDU_VTMP, NEO_GRB NEO_KHZ800),Adafruit_NeoPixel(40, LED_FCC_OIL, NEO_GRB NEO_KHZ800),Adafruit_NeoPixel(30, LED_FCC_CAT, NEO_GRB NEO_KHZ800),Adafruit_NeoPixel(30, LED_FCC_FLUE, NEO_GRB NEO_KHZ800),Adafruit_NeoPixel(50, LED_ETHYLENE, NEO_GRB NEO_KHZ800)};void setup() {SystemClock_Config();Serial1.begin(BAUD_RATE);mb.begin(Serial1);mb.slave(SLAVE_ID);mb.addHreg(0, holdingRegs, 32);mb.onGet(handleRead); mb.onSet(handleWrite); for (int i 0; i 7; i) { strips[i].begin(); strips[i].show(); } Timer1.initialize(1000); Timer1.attachInterrupt(stateMachineTick);}void loop() {mb.task();}5.2 三裝置獨立控制與多工況切換cppvoid switchMode(uint16_t mode) {allLightsOff();currentMode mode;switch(mode) { case 1: // 常減壓蒸餾 flowLight(strips[0], 0x884422, 400); flowLight(strips[0], 0xFF6600, 300); flowLight(strips[0], 0xCC8833, 300); setTempZone(strips[1], 1); setTempZone(strips[2], 2); holdingRegs[5] 1; break; case 2: // 催化裂化 flowLight(strips[3], 0xFF6600, 400); flowLight(strips[4], 0xFFFF00, 300); flowLight(strips[5], 0x888888, 300); holdingRegs[5] 2; break; case 3: // 乙烯裂解 flowLight(strips[6], 0xFF0000, 400); flowLight(strips[6], 0x0066FF, 300); flowLight(strips[6], 0xFF6600, 300); holdingRegs[5] 3; break; case 4: // 全流程聯動 flowLight(strips[0], 0x884422, 300); delay(500); flowLight(strips[3], 0xFF6600, 300); delay(500); flowLight(strips[6], 0xFF0000, 300); holdingRegs[5] 4; break; }}void switchWorkMode(uint16_t workMode) {switch(workMode) {case 1: // 正常生產switchMode(currentMode);holdingRegs[5] 1;break;case 2: // 產品切換flowLight(strips[0], 0x00FF66, 200);flowLight(strips[3], 0x00FF66, 200);flowLight(strips[6], 0x00FF66, 200);holdingRegs[5] 2;break;case 3: // 催化劑再生for (int i 0; i 5; i) {strips[4].clear();for (int p 0; p strips[4].numPixels(); p) {strips[4].setPixelColor(p, (i % 2 0) ? 0xFFFF00 : 0xFF0000);}strips[4].show();delay(300);}holdingRegs[5] 3;break;case 4: // 裂解爐切換for (int i 0; i 5; i) {strips[6].clear();for (int p 0; p strips[6].numPixels(); p) {strips[6].setPixelColor(p, (i % 2 0) ? 0xFF6600 : 0x0066FF);}strips[6].show();delay(300);}holdingRegs[5] 4;break;}}void setTempZone(Adafruit_NeoPixel strip, int level) {uint32_t color (level 1) ? 0xFF0000 : (level 2) ? 0xFF6600 : 0xFFFF00;for (int p 0; p strip.numPixels(); p) {strip.setPixelColor(p, color);}strip.show();}void flowLight(Adafruit_NeoPixel strip, uint32_t color, int duration) {int len strip.numPixels();int steps 20;for (int step 0; step steps; step) {strip.clear();int pos (len * step) / steps;strip.setPixelColor(pos, color);if (pos 0) strip.setPixelColor(pos - 1, color);strip.show();delay(duration / steps);}}void allLightsOff() {for (int i 0; i 7; i) {strips[i].clear();strips[i].show();}}5.3 寄存器讀寫回調cppuint16_t handleRead(uint16_t offset, uint8_t index) {return holdingRegs[offset];}void handleWrite(uint16_t offset, uint8_t index, uint16_t value) {switch(offset) {case 0:if (value 1 currentState ! RUNNING) {switchMode(holdingRegs[1]);currentState RUNNING;} else if (value 0) {currentState STOPPED;allLightsOff();holdingRegs[2] 0;holdingRegs[5] 0;}break;case 1:holdingRegs[1] value;if (holdingRegs[0] 1) switchMode(value);break;case 2:holdingRegs[2] value;if (holdingRegs[0] 1) switchWorkMode(value);break;case 3:if (value 1 value 5) {for (int i 0; i STAGE_NUM; i) {stageDurations[i] baseDurations[i] / value;}}break;case 7:setTempZone(strips[1], value);holdingRegs[7] value;break;case 8:setTempZone(strips[2], value);holdingRegs[8] value;break;default:holdingRegs[offset] value;break;}holdingRegs[offset] value;}六、關鍵技術細節6.1 三裝置獨立/聯動狀態機設計常減壓蒸餾模式棕色→橙色→金黃色燈帶時序流動展示原油→常壓餾分→減壓餾分的分離路徑催化裂化模式橙色油氣、黃色催化劑、灰色煙氣三路并行乙烯裂解模式紅色裂解氣→藍色乙烯→橙色丙烯燈帶時序流動全流程聯動模式常減壓→催化裂化→乙烯裂解物料接力6.2 溫度分區與多相流燈帶獨立控制功能 燈帶顏色 對應燈帶 寄存器常減壓原油路徑 棕色→橙色→金黃色 LED_CDU 40007常壓塔溫度分區 紅/橙/黃 LED_CDU_ATMP 40008減壓塔溫度分區 紅/橙/黃 LED_CDU_VTMP 40009催化裂化油氣 橙色 LED_FCC_OIL 40010催化裂化催化劑 黃色 LED_FCC_CAT 40011催化裂化煙氣 灰色 LED_FCC_FLUE 40012乙烯裂解 紅/藍/橙 LED_ETHYLENE 400136.3 通訊異常處理策略 實現方式 適用場景保持當前狀態 不改變輸出等待通訊恢復 展廳演示自動切換安全模式 切換至停止狀態 安全要求較高狀態上報 向上位機發送故障碼 遠程監控七、現場調試要點現象 排查方向 解決方案燈帶全亮白光 數據線虛接 重新焊接確認GPIO輸出電平顏色偏色 電源電壓不足 測量末端電壓4.8V需增加供電點首燈正常后續不亮 MCU主頻配置不當 確認系統時鐘72MHz溫度分區顏色不變化 寄存器寫入失敗 檢查Modbus通訊八、工程實踐能力基于STM32平臺的多系統協同控制方案已在筑城世紀多個工業模型項目中完成部署驗證燃機電站沙盤國機集團柬埔寨2×450MW燃機聯合循環電站沙盤實現6級全流程動態燈光聯動工業沙盤控制系統L1-L3三級配置覆蓋工業模型動態演示的完整技術譜系石油化工沙盤為中石化定制石油化工沙盤模型精準還原煉化裝置、儲罐區、管廊布局筑城世紀模型在煉油廠核心裝置沙盤方向的核心交付能力煉油工藝理解能力技術團隊具備讀懂煉油工藝流程圖、化工裝置圖紙的能力。能夠按圖紙精確還原常壓塔、減壓塔、提升管反應器、再生器、裂解爐等核心設備。三裝置獨立/聯動控制能力控制系統基于STM32平臺自主研發支持三裝置獨立控制、全流程物料接力聯動、多工況一鍵切換正常生產/產品切換/催化劑再生/裂解爐切換、溫度分區指示。全流程自主交付能力2000㎡制作工廠位于北京通州。設計、3D打印、CNC加工、噴涂、組裝、控制系統編程全部自主完成不外包。簽約前出具《模型制作工藝說明》零增項承諾寫入合同。九、總結煉油廠核心裝置沙盤模型控制系統的設計核心在于三個層面三裝置獨立/聯動控制是核心。 煉油廠沙盤的價值在于“常減壓蒸餾→催化裂化→乙烯裂解”三套裝置的獨立控制與全流程聯動。采用狀態機編程將各裝置定義為獨立狀態通過寄存器一鍵切換運行模式。多相流燈帶獨立控制是基礎。 油氣路徑橙色、催化劑路徑黃色、煙氣路徑灰色、裂解氣紅色、乙烯藍色、丙烯橙色等多路信號需要精確聯動。控制系統自主可控是保障。 自主研發的控制系統通過Modbus寄存器在線修改參數即可完成調整無需依賴外部支持??刂葡到y基于STM32平臺自主研發支持Modbus RTU協議支持三裝置獨立控制、全流程物料接力聯動、多工況一鍵切換正常生產/產品切換/催化劑再生/裂解爐切換、溫度分區指示后期可根據需求隨時修改控制邏輯。