Nguyên lý và kinh nghiệm lập trình PLC

PLC (Programmable Logic Controller) là thiết bị điều khiển lập trình được sử dụng rộng rãi trong tự động hóa công nghiệp. Dưới đây là hệ thống nguyên lý hoạt động cốt lõi và các kinh nghiệm lập trình thực tế giúp chương trình chạy ổn định, an toàn và dễ bảo trì.

1. Nguyên lý hoạt động của PLC

PLC không xử lý tín hiệu theo thời gian thực liên tục tuyệt đối mà hoạt động theo chu kỳ quét (Scan Cycle) khép kín liên tục gồm 4 bước chính:
[1. Đọc tín hiệu vào (Input)] ──> [2. Thực thi chương trình] 
           ▲                                  │
           │                                  ▼
[4. Tự kiểm tra & Truyền thông] <── [3. Cập nhật đầu ra (Output)]
  • Bước 1 – Đọc ngõ vào (Input Scan): PLC đọc trạng thái vật lý của các cảm biến, nút nhấn… và lưu vào vùng nhớ đệm gọi là Process Image Input (PII).
  • Bước 2 – Thực thi chương trình (Program Execution): Vi xử lý đọc từng dòng lệnh từ trên xuống dưới, từ trái qua phải dựa trên dữ liệu từ PII và cập nhật trạng thái kết quả vào vùng nhớ đệm Process Image Output (PIO).
  • Bước 3 – Cập nhật ngõ ra (Output Scan): PLC xuất dữ liệu từ PIO ra các cổng vật lý để điều khiển van, khởi động từ, đèn báo…
  • Bước 4 – Kiểm tra nội bộ (Housekeeping): Kiểm tra lỗi hệ thống, giao tiếp mạng, cập nhật Timer/Counter trước khi bắt đầu chu kỳ quét mới.
Lưu ý kỹ thuật: Thời gian hoàn thành 1 chu kỳ quét gọi là Scan Time (thường từ 1 – 20 ms). Nếu tín hiệu ngõ vào thay đổi nhanh hơn Scan Time, PLC có thể bỏ sót tín hiệu (cần dùng ngắt Interrupt hoặc ngõ vào tốc độ cao HSC).

2. Kinh nghiệm lập trình PLC thực tế

A. Cấu trúc chương trình và chuẩn hóa Data

  • Phân luồng chương trình (Modularization): Không bao giờ viết tất cả logic vào một khối Main (OB1). Hãy chia nhỏ hệ thống thành các khối chức năng (FC, FB):
    • OB1: Chỉ gọi các khối chức năng chính.
    • FC/FB Manual: Xử lý chế độ bằng tay (JOG, chạy từng cơ cấu).
    • FC/FB Auto: Xử lý chu trình tự động.
    • FC/FB Alarm: Xử lý cảnh báo và sự cố.
  • Quy hoạch vùng nhớ rõ ràng: Đặt tên Tag/Biến theo chuẩn (ví dụ: I_Sensor_Cyl1_Home, Q_Solenoid_Cyl1_Out, M_Auto_Mode). Sử dụng cấu trúc DB (Data Block) thay vì dùng quá nhiều biến cờ nhớ M toàn cục.

B. Logic điều khiển an toàn (Safety First)

  • Luôn có khóa chéo (Interlock) ở cấp độ phần mềm và phần cứng:
    • Chạy Thuận / Chạy Ngược của động cơ phải khóa chéo ngõ ra.
    • Xylanh đi Ra / Thu Về phải kiểm tra cảm biến hành trình tương ứng trước khi xuất lệnh.
  • Xử lý dừng khẩn cấp (E-Stop): Tín hiệu E-Stop phải cắt nguồn tác động trực tiếp ở phần cứng (mạch động lực) và gửi 1 tiếp điểm về PLC để ngắt toàn bộ lệnh điều khiển ngõ ra.
  • Thiết lập Timeout cho mọi cơ cấu chấp hành: Mỗi khi xuất lệnh điều khiển (ví dụ: đẩy Xylanh), luôn chạy song song một Timer giám sát. Nếu sau khoảng thời gian $T$ (ví dụ: 3 giây) mà cảm biến chưa báo về -> Kích hoạt Lỗi hành trình (Alarm Timeout) và dừng hệ thống.

C. Quản lý trạng thái bằng Chu trình Sequence (State Machine)

  • Đối với các hệ thống chạy tự động phức tạp, hãy sử dụng Kỹ thuật lập trình theo trạng thái (Step Sequence / Pointer / SFC) thay vì dùng các tiếp điểm tự giữ nối tiếp nhau.
  • Sử dụng một biến số nguyên Step_Index (ví dụ: Step 10 -> Step 20 -> Step 30):
    • Step 10: Đợi nút Start -> Chuyển sang Step 20.
    • Step 20: Kẹp phôi -> Cảm biến kẹp báo ON -> Chuyển sang Step 30.
    • Step 30: Hạ đầu khoan…
  • Ưu điểm: Rõ ràng, không bị xung đột lệnh, cực kỳ dễ truy vết sự cố khi máy dừng đột ngột ở một bước nào đó.

D. Tối ưu hóa & Đọc/Ghi dữ liệu

  • Tránh hiện tượng Dual Coil (Trùng cuộn dây): Không xuất lệnh ghi vào cùng 1 ngõ ra Q ở hai nơi khác nhau trong chương trình.
  • Lọc nhiễu tín hiệu Analog: Với các cảm biến áp suất, nhiệt độ, cảm biến khoảng cách…, luôn dùng thuật toán lọc trung bình cộng (Moving Average Filter) hoặc trễ (Hysteresis) trong PLC để tránh biến chao đổi đột ngột làm nhảy số trên HMI.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Chat hỗ trợ
Chat ngay