Skip to content

Công nghệ 9 giây

“Website hướng dẫn, thử nghiệm và giải thích công nghệ theo cách dễ hiểu cho mọi người.”

Menu
  • Home
  • Công nghệ
  • STM32
  • ESP32
  • Altium Desinger
  • Kiến thức điện máy
Menu

📘 BÀI 12 – “BỘ NÃO” CỦA LINAC: CONTROL SYSTEM, INTERLOCK VÀ CÁC TẦNG AN TOÀN

Posted on August 16, 2026 by congnghe9s

📘 BÀI 12 – “BỘ NÃO” CỦA LINAC: CONTROL SYSTEM, INTERLOCK VÀ CÁC TẦNG AN TOÀN

Ở Bài 11, chúng ta đã học rằng LINAC không chỉ phát tia mà còn phải đo, giám sát và xác nhận rằng beam đang hoạt động đúng.

Bây giờ chúng ta đi thêm một tầng:

Ai điều khiển tất cả những thứ đó?

Đó chính là Control System – hệ thống điều khiển.

Và đây cũng là bài rất thú vị đối với bạn, bởi khi nhìn LINAC dưới góc độ điện tử, bạn sẽ thấy rất nhiều khái niệm quen thuộc từ Arduino/STM32:

Sensor → Input → Processing → Decision → Output → Feedback → Safety.


1. LINAC có một “CPU duy nhất” không?

Không nên hình dung LINAC giống một Arduino lớn với một con CPU duy nhất điều khiển tất cả.

Một LINAC hiện đại là một hệ thống phân tán, gồm nhiều subsystem.

Có thể hình dung:

                    LINAC
                      │
       ┌──────────────┼──────────────┐
       │              │              │
       ▼              ▼              ▼
   RF System      Beam System    Gantry/System
       │              │              │
       ▼              ▼              ▼
  Monitoring      Monitoring     Position
       │              │              │
       └──────────────┼──────────────┘
                      ▼
               Control System
                      │
                      ▼
                Safety Logic
                      │
                      ▼
                  BEAM ON/OFF

Mỗi subsystem có nhiệm vụ riêng.


2. Hãy chia LINAC thành 4 tầng

Để dễ học, chúng ta có thể chia thành:

Tầng 1 – Physical system

Đây là phần vật lý:

  • electron gun
  • waveguide
  • magnet
  • RF source
  • target
  • monitor chamber
  • jaws
  • MLC
  • gantry
  • couch

Tầng 2 – Sensors

Các cảm biến và hệ thống đo:

Position
Dose
Temperature
Pressure
Current
Voltage
Beam parameters
Motor position

Tầng 3 – Control

Bộ điều khiển xử lý:

INPUT
  ↓
PROCESS
  ↓
DECISION
  ↓
OUTPUT

Tầng 4 – Safety

Lớp bảo vệ:

INTERLOCK
WATCHDOG
REDUNDANCY
LIMIT
FAULT DETECTION
EMERGENCY STOP

Đây là tầng cực kỳ quan trọng.


3. Control System làm những gì?

Hãy tưởng tượng bác sĩ/kỹ thuật viên yêu cầu:

Energy = 6 MV
Dose = X MU
Gantry = 180°
Collimator = 30°
MLC = hình dạng field

Control system phải đảm bảo các subsystem đạt trạng thái yêu cầu trước khi cho Beam ON.

Ví dụ:

Gantry = đúng
     ↓
Collimator = đúng
     ↓
MLC = đúng
     ↓
Energy = đúng
     ↓
Dose monitor = OK
     ↓
Safety = OK
     ↓
BEAM ENABLE

Nếu một điều kiện không đạt:

MLC = sai
   ↓
BEAM ENABLE = NO

4. Đây chính là State Machine

Đây là phần tôi đặc biệt muốn bạn chú ý vì nó liên quan trực tiếp đến cách bạn lập trình DigitalClock Professional.

LINAC có thể được mô hình hóa bằng một State Machine.

Ví dụ đơn giản:

                 POWER OFF
                     │
                     ▼
                  STARTUP
                     │
                     ▼
               SELF TEST
                     │
              ┌──────┴──────┐
              │             │
             FAIL           OK
              │             │
              ▼             ▼
            FAULT          READY
                             │
                             ▼
                        BEAM ENABLE
                             │
                             ▼
                          BEAM ON
                             │
                             ▼
                       DOSE DELIVERY
                             │
                             ▼
                         BEAM OFF
                             │
                             ▼
                           READY

Nếu xảy ra lỗi:

ANY STATE
    │
    ▼
  FAULT
    │
    ▼
 BEAM OFF

Đây chính là tư duy state machine.


5. So sánh với DigitalClock của bạn

Ví dụ firmware đồng hồ của bạn có:

MENU
EDIT
SAVE
EXIT
ALARM
MANUAL
AUTO

LINAC cũng có những trạng thái tương tự về mặt tư duy:

OFF
STARTUP
SELF_TEST
READY
ARMED
BEAM_ON
TREATMENT
COMPLETE
FAULT

Điểm khác là:

Với LINAC, việc chuyển trạng thái phải chịu các điều kiện an toàn nghiêm ngặt hơn rất nhiều.


6. “READY” nghĩa là gì?

Đây là một trạng thái rất quan trọng.

READY không có nghĩa là đang phát tia.

Nó có nghĩa gần giống:

Hệ thống đã thỏa mãn các điều kiện cần thiết để có thể cho phép phát tia.

Ví dụ:

Machine powered
       +
Subsystem OK
       +
Interlocks OK
       +
Treatment parameters valid
       +
Beam parameters valid
       ↓
      READY

Sau đó mới có thể tiến tới trạng thái cho phép beam.


7. ARM khác BEAM ON

Đây là một khái niệm rất hay.

Có thể hình dung:

READY
  ↓
ARMED
  ↓
BEAM ON

ARMED có thể hiểu đơn giản là:

Hệ thống đã được chuẩn bị để cho phép phát beam khi điều kiện cuối cùng được thỏa mãn.

Còn:

BEAM ON

mới thực sự là đang phát bức xạ điều trị.


8. Interlock là “hàng rào”

Hãy hình dung Beam Enable đi qua một chuỗi cửa:

                 BEAM REQUEST
                       │
                       ▼
              ┌────────────────┐
              │ Door interlock │
              └───────┬────────┘
                      │
                      ▼
              ┌────────────────┐
              │ Dose monitor   │
              └───────┬────────┘
                      │
                      ▼
              ┌────────────────┐
              │ MLC position   │
              └───────┬────────┘
                      │
                      ▼
              ┌────────────────┐
              │ Gantry/couch   │
              └───────┬────────┘
                      │
                      ▼
              ┌────────────────┐
              │ Beam system     │
              └───────┬────────┘
                      │
                      ▼
                  BEAM ENABLE

Chỉ cần một cửa không hợp lệ:

             INTERLOCK
                 ↓
            BEAM NOT ENABLED

9. Có thể hiểu Interlock giống if() trong Arduino không?

Về tư duy logic, đúng.

Ví dụ rất đơn giản:

if (doorClosed &&
    doseMonitorOK &&
    mlcOK &&
    gantryOK &&
    safetyOK)
{
    beamEnable = true;
}
else
{
    beamEnable = false;
}

Nhưng trong LINAC thực tế:

⚠️ Không thể đơn giản hóa thành một đoạn if() như vậy.

Có nhiều lớp phần cứng, firmware, monitoring và safety architecture độc lập.

Điều quan trọng ở đây là nguyên lý, không phải một đoạn code cụ thể của máy thương mại.


10. Redundancy – dự phòng

Một trong những nguyên tắc quan trọng nhất của hệ thống an toàn là:

Không đặt toàn bộ niềm tin vào một thành phần duy nhất.

Ví dụ khái niệm:

Sensor A ─────┐
              ├──> Safety decision
Sensor B ─────┘

Nếu:

A = OK
B = OK

→ bình thường.

Nhưng:

A = OK
B = FAULT

→ phải xử lý bất thường.


11. Tại sao cần redundancy?

Hãy tưởng tượng chỉ có một cảm biến:

Sensor
  ↓
CPU
  ↓
BEAM

Nếu sensor bị lỗi theo hướng báo:

"Everything OK"

trong khi thực tế không OK thì hệ thống có thể gặp nguy hiểm.

Do đó:

Measurement A
Measurement B
      ↓
Comparison
      ↓
Consistency check

giúp phát hiện lỗi.


12. Watchdog – “người canh gác”

Đây là thứ bạn sẽ thấy rất quen thuộc trong STM32.

Watchdog Timer – WDT

Nó hoạt động theo tư tưởng:

CPU phải liên tục chứng minh rằng nó vẫn đang hoạt động bình thường.

Ví dụ:

CPU
 │
 ├── hoạt động
 │
 ├── gửi heartbeat
 │
 ├── hoạt động
 │
 ├── gửi heartbeat
 │
 └── hoạt động

Nếu CPU bị treo:

CPU HANG
   ↓
No heartbeat
   ↓
WATCHDOG TIMEOUT
   ↓
SAFE STATE

Trong hệ thống an toàn cao, watchdog là một trong những cơ chế rất quan trọng.


13. Nhưng Watchdog không phải “thuốc chữa mọi lỗi”

Đây là điểm cần nhớ.

Watchdog chỉ giúp phát hiện một số loại lỗi, chẳng hạn:

CPU hang
software stuck
unexpected execution

Nó không tự phát hiện tất cả:

sensor drift
mechanical failure
beam misalignment
incorrect calibration

Vì vậy cần nhiều lớp:

Software monitoring
       +
Hardware monitoring
       +
Independent interlock
       +
Redundancy
       +
Physical limits

14. Emergency Stop

Một tầng khác là:

Emergency Stop – E-Stop

Về nguyên tắc:

NORMAL
   ↓
SYSTEM RUNNING

EMERGENCY
   ↓
SAFE STATE

Mục tiêu là đưa hệ thống về trạng thái an toàn trong tình huống khẩn cấp.

Điều quan trọng:

Emergency stop không giống một nút “tắt máy bình thường”.

Nó thuộc kiến trúc an toàn của hệ thống.


15. Control System và Safety System không hoàn toàn giống nhau

Đây là một trong những ý quan trọng nhất của Bài 12.

Có thể có:

             CONTROL SYSTEM
                  │
             "Làm thế nào?"
                  │
                  ▼
            Điều khiển LINAC

và:

              SAFETY SYSTEM
                   │
             "Có được phép?"
                   │
                   ▼
              Cho phép / cấm

Ví dụ:

Control system:

“Tôi muốn phát 100 MU.”

Safety system:

“Các điều kiện an toàn đã thỏa mãn chưa?”

Nếu:

CONTROL = YES
SAFETY = NO

thì:

BEAM KHÔNG ĐƯỢC PHÉP PHÁT.


16. Đây là nguyên tắc cực kỳ quan trọng

Có thể viết thành:

BEAM = CONTROL_REQUEST
       AND
       SAFETY_PERMIT

Nghĩa là:

CONTROL muốn ON
        +
SAFETY cho phép
        ↓
     BEAM ON

Nhưng:

CONTROL muốn ON
        +
SAFETY không cho phép
        ↓
     BEAM OFF

Đây là một cách rất tốt để hiểu kiến trúc LINAC.


17. Fault Handling

Giả sử đang điều trị:

BEAM ON
   ↓
TREATMENT

và xảy ra:

FAULT

hệ thống không nên:

FAULT → tiếp tục bình thường

mà phải chuyển sang:

FAULT
  ↓
BEAM OFF
  ↓
SAFE STATE
  ↓
FAULT INDICATION
  ↓
Operator intervention

18. Một ví dụ cực kỳ trực quan

Giả sử:

Prescribed = 200 MU
Delivered = 150 MU

Đang phát:

BEAM ON

Sau đó monitor phát hiện vấn đề.

Hệ thống có thể đi theo logic:

150 MU
  ↓
FAULT
  ↓
BEAM OFF

Chứ không phải:

FAULT
  ↓
cố phát tiếp 50 MU

Việc xử lý tiếp theo phụ thuộc vào loại lỗi và quy trình của hệ thống.


19. Tại sao LINAC phức tạp như vậy?

Bởi vì chúng ta đang điều khiển một hệ thống có thể tạo ra:

  • năng lượng rất cao
  • bức xạ ion hóa
  • chuyển động cơ khí chính xác
  • nhiều subsystem liên kết
  • yêu cầu định lượng liều rất nghiêm ngặt

Cho nên kiến trúc không thể là:

Button → Arduino → Motor

mà gần hơn với:

             Treatment System
                    │
       ┌────────────┼────────────┐
       ↓            ↓            ↓
   Control       Monitoring     Safety
       │            │            │
       └────────────┼────────────┘
                    ↓
              State Machine
                    ↓
             Beam Permission
                    ↓
                  Beam

20. Một LINAC thực chất là một “Cyber-Physical System”

Đây là khái niệm rất thú vị.

Nó kết hợp:

Phần mềm

Control
Algorithms
State machine
Monitoring
User interface
Treatment data

Điện tử

Sensors
ADC
Power electronics
Control electronics
Communication

Cơ khí

Gantry
MLC
Jaws
Couch
Motors

Vật lý

Electrons
RF
Magnetic field
X-rays
Dose

An toàn

Interlocks
Redundancy
Watchdog
Emergency handling
Fault detection

Tất cả phải hoạt động cùng nhau.


21. Nhìn LINAC theo tư duy STM32

Nếu lấy kiến thức bạn đang học STM32 làm ví dụ, ta có thể tưởng tượng:

              STM32/LINAC concept
                     │
        ┌────────────┼────────────┐
        ↓            ↓            ↓
      ADC          GPIO         Timer
        │            │            │
      Sensor       Actuator     Timing
        │            │            │
        └────────────┼────────────┘
                     ↓
                  Control
                     ↓
                 State Machine
                     ↓
                  Safety

Nhưng LINAC thực tế phức tạp hơn rất nhiều và sử dụng kiến trúc chuyên dụng, không thể đồng nhất với một board STM32 đơn lẻ.


22. Toàn bộ chuỗi điều khiển

Bây giờ chúng ta ghép những gì đã học từ Bài 1 → Bài 12:

                USER / TREATMENT PLAN
                         │
                         ▼
                  Treatment Setup
                         │
                         ▼
                     CONTROL
                         │
             ┌───────────┼───────────┐
             ↓           ↓           ↓
          Energy       Geometry      Dose
             │           │           │
             └───────────┼───────────┘
                         ↓
                    SAFETY CHECK
                         │
              ┌──────────┴──────────┐
              │                     │
             FAIL                   OK
              │                     │
              ▼                     ▼
          BEAM OFF                READY
                                    │
                                    ▼
                                 ARMED
                                    │
                                    ▼
                                BEAM ON
                                    │
                                    ▼
                              DOSE DELIVERY
                                    │
                                    ▼
                              MONITORING
                                    │
                         ┌──────────┴──────────┐
                         │                     │
                       FAULT                   OK
                         │                     │
                         ▼                     ▼
                      BEAM OFF              CONTINUE
                                               │
                                               ▼
                                           DOSE DONE
                                               │
                                               ▼
                                           BEAM OFF

Đây chính là bức tranh mà tôi muốn bạn hình dung sau Bài 12.


🧠 23. Năm khái niệm cần thuộc lòng

1. Control

Điều khiển hệ thống.

2. Monitoring

Đo xem hệ thống thực sự đang làm gì.

3. Interlock

Không cho phép hệ thống tiếp tục khi điều kiện không an toàn.

4. Redundancy

Không phụ thuộc vào một đường đo/điều khiển duy nhất.

5. Fail-safe

Khi phát hiện tình trạng không an toàn hoặc không chắc chắn → chuyển về trạng thái an toàn.


🔬 Bài tập suy nghĩ

Bạn thử giải bài toán này:

LINAC đang ở:

READY

Operator yêu cầu:

BEAM ON
200 MU

Nhưng hệ thống phát hiện:

Gantry position = OK
MLC position    = OK
Dose monitor    = OK
Door            = CLOSED
Safety          = OK

→ Có thể cho Beam ON.

Sau đó đang ở:

BEAM ON
Delivered = 80 MU

thì:

Monitor channel A = OK
Monitor channel B = bất thường

Câu hỏi:

Theo tư duy safety của LINAC, hệ thống nên làm gì?

A. Bỏ qua channel B và tiếp tục đến 200 MU.

B. Báo lỗi nhưng vẫn tiếp tục.

C. Chuyển sang trạng thái an toàn và ngừng beam để xử lý lỗi.

D. Tăng công suất beam để bù lại.

👉 Nếu bạn chọn C, bạn đã nắm được tư duy cốt lõi của Bài 12.


🔜 BÀI 13

Nếu tiếp tục theo đúng lộ trình, Bài 13 chúng ta sẽ đi vào một phần rất thú vị:

📘 BÀI 13 – GANTRY, COLLIMATOR, JAWS VÀ MLC: “CƠ CẤU CƠ KHÍ” BIẾN TIA X THÀNH HÌNH DẠNG ĐIỀU TRỊ

Ở bài đó chúng ta sẽ mổ xẻ:

Gantry → Collimator → Jaw → MLC → Field → Beam shape

và đặc biệt tôi sẽ giải thích MLC thực sự tạo ra hình dạng chùm tia như thế nào, tại sao nó có hàng chục/lên tới hàng trăm lá, và làm thế nào một chùm tia gần như hình chữ nhật có thể được biến thành hình dạng phức tạp phù hợp với khối u.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Bạn có thể hướng dẫn tôi quy trình sửa chữa một mainboard laptop cũng như mainboard của máy tính để bàn không?
  • Có những mức nguồn DC nào trên một bo mạch mainboard laptop?Kỹ thuật đốt dòng để kiểm tra nguồn laptop được thực hiện như thế nào?
  • bài tiếp theo hợp lý là: BÀI 63 – SENSOR FUSION THỰC CHIẾN: ENCODER + IMU MPU6050 + EKF + ODOMETRY X,Y,θ TRÊN STM32F103
  • BÀI 62 – EKF (EXTENDED KALMAN FILTER) CHO ROBOT 2 BÁNH: FUSION ENCODER + IMU + ƯỚC LƯỢNG X, Y, θ, V, ω
  • BÀI 61 – KALMAN FILTER CHO ENCODER + IMU: ƯỚC LƯỢNG TỐC ĐỘ, GÓC θ VÀ SENSOR FUSION

Recent Comments

No comments to show.

Archives

  • September 2026
  • August 2026
  • July 2026
  • June 2026
  • May 2026
  • February 2026

Categories

  • Altium Desinger
  • Công nghệ
  • ESP32
  • Khác
  • Kiến thức điện máy
  • STM32
Live 3D Globes Visitor
©2026 Công nghệ 9 giây | Design: Newspaperly WordPress Theme