Đăng ngày · Cập nhật
Trước thập niên 1990, mỗi hãng PLC có một ngôn ngữ riêng, kỹ sư đổi hãng gần như phải học lại từ đầu. IEC 61131-3 ra đời (bản đầu năm 1993) để thống nhất cách lập trình PLC: cùng một bộ ngôn ngữ, cùng mô hình phần mềm, cùng các kiểu dữ liệu và khối chức năng chuẩn. Bài này giải thích tiêu chuẩn theo góc nhìn thực hành: các ngôn ngữ dùng khi nào, mô hình POU, kiểu dữ liệu, và mức độ các hãng PLC thực sự tuân theo.
IEC 61131-3 nằm ở đâu trong bộ IEC 61131
Mục lục
IEC 61131 là bộ tiêu chuẩn về bộ điều khiển lập trình, gồm nhiều phần: phần 1 thông tin chung, phần 2 yêu cầu thiết bị và thử nghiệm, phần 3 ngôn ngữ lập trình, các phần tiếp theo về truyền thông, an toàn chức năng, hướng dẫn áp dụng. Phần 3 được sửa đổi lớn năm 2003 và 2013. Bản 2013 bổ sung lập trình hướng đối tượng (class, method, interface) và đánh dấu ngôn ngữ IL là lỗi thời.

Các ngôn ngữ lập trình
| Ngôn ngữ | Dạng | Mạnh ở | Hạn chế |
|---|---|---|---|
| LD – Ladder Diagram | Đồ họa, giống sơ đồ relay | Logic rời rạc, liên động; thợ điện bảo trì đọc được | Tính toán, xử lý mảng, vòng lặp rất cồng kềnh |
| FBD – Function Block Diagram | Đồ họa, khối nối dây | Điều khiển quá trình, PID, xử lý tín hiệu analog | Khó theo dõi khi logic có nhiều nhánh điều kiện |
| ST – Structured Text | Văn bản, giống Pascal | Thuật toán, tính toán, vòng lặp, xử lý chuỗi, công thức | Khó gỡ lỗi trực quan cho người bảo trì |
| SFC – Sequential Function Chart | Đồ họa, bước và chuyển tiếp | Máy chạy theo trình tự, mẻ sản xuất | Không dùng cho logic tổ hợp đơn giản |
| IL – Instruction List | Văn bản, giống hợp ngữ | Chương trình cũ | Đã bị đánh dấu lỗi thời, không nên dùng cho dự án mới |
Một project có thể trộn nhiều ngôn ngữ. Cách phối hợp hay gặp trong thực tế: SFC điều phối trình tự máy, ladder cho liên động và an toàn phần mềm, ST cho tính toán và xử lý dữ liệu, FBD cho các vòng điều khiển analog.

Mô hình phần mềm: Program, Function Block, Function
Đây là phần quan trọng nhất của tiêu chuẩn và cũng là phần người mới hay bỏ qua. Code được tổ chức thành các POU (Program Organization Unit):
- Function (FUN): không có bộ nhớ. Cùng đầu vào luôn cho cùng đầu ra. Ví dụ hàm quy đổi tín hiệu analog sang đơn vị kỹ thuật.
- Function Block (FB): có bộ nhớ, phải tạo instance (bản thể). Mỗi instance giữ trạng thái riêng. Ví dụ FB điều khiển động cơ: 20 động cơ là 20 instance của cùng một FB.
- Program (PRG): cấp cao nhất, gọi các FB và FUN, được gắn vào task.
Phía trên là Configuration (toàn bộ hệ thống), Resource (một CPU) và Task (chu kỳ hoặc sự kiện kích hoạt chương trình). Siemens gọi FB là FB kèm instance DB, Rockwell gọi gần tương đương là AOI, nhưng ý tưởng giống nhau.
Kiểu dữ liệu và khai báo biến
Tiêu chuẩn định nghĩa kiểu cơ bản (BOOL, INT, DINT, REAL, LREAL, TIME, STRING…), mảng, cấu trúc (STRUCT), kiểu liệt kê. Biến được khai báo theo phạm vi: VAR (nội bộ), VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_GLOBAL, kèm thuộc tính RETAIN để giữ giá trị khi mất điện. Khai báo rõ kiểu ngay từ đầu tránh được cả một nhóm lỗi tràn số và chuyển đổi kiểu ngầm.
Khối chức năng chuẩn
Có sẵn trong mọi môi trường tuân thủ: TON, TOF, TP (timer), CTU, CTD, CTUD (counter), R_TRIG, F_TRIG (phát hiện sườn), SR, RS (flip-flop). Ví dụ trong ST:
tStart(IN := bRun, PT := T#3S);
bMotor := tStart.Q;
tStart là một instance của TON, khai báo trong vùng biến. Viết như vậy trên Codesys, TwinCAT hay GX Works3 đều gần như giống hệt.

Các hãng tuân theo đến đâu
| Nền tảng | Mức độ |
|---|---|
| Codesys và các hãng dùng Codesys (Beckhoff TwinCAT 3, Schneider Machine Expert, WAGO, Bosch Rexroth, nhiều PLC châu Á) | Bám sát nhất, có cả phần hướng đối tượng |
| Siemens TIA Portal | Có LAD, FBD, SCL (tương đương ST), GRAPH (tương đương SFC); cách tổ chức OB, FB, FC, DB riêng của Siemens |
| Rockwell Studio 5000 | Có LD, FBD, ST, SFC; mô hình tag và AOI riêng |
| Mitsubishi GX Works3 | Hỗ trợ LD, FBD, ST, SFC, có label và FB theo hướng IEC |
Điều cần hiểu: tiêu chuẩn thống nhất ngôn ngữ và khái niệm, không thống nhất định dạng file hay tập lệnh mở rộng. Chương trình không copy thẳng từ hãng này sang hãng khác được. Phần dễ chuyển nhất là code ST thuần và tư duy cấu trúc. Tổ chức PLCopen có định dạng PLCopen XML để trao đổi và bộ khối Motion Control chuẩn (MC_Power, MC_MoveAbsolute…), được nhiều hãng hỗ trợ.
Lợi ích thực tế cho nhà máy
- Kỹ sư chuyển hãng nhanh hơn vì khái niệm giống nhau.
- Code viết theo FB và kiểu dữ liệu có cấu trúc thì dễ tái sử dụng, dễ kiểm thử, ít lỗi hơn.
- Thư viện chuẩn hóa cho thiết bị dùng chung (động cơ, van, cảnh báo) giúp các dự án khác nhau trong cùng nhà máy có cách vận hành giống nhau.
- Khi nâng cấp hệ thống cũ, chương trình đã viết có cấu trúc chuyển sang nền tảng mới dễ hơn nhiều so với chương trình ladder dồn một khối.

Ví dụ: cùng một logic viết bằng LD và ST
Yêu cầu: nhấn Start thì động cơ chạy, nhấn Stop hoặc có lỗi thì dừng; van mở sau khi động cơ chạy 5 giây.
Ladder (LD): một nấc gồm tiếp điểm thường mở Start song song với tiếp điểm tự duy trì Run, nối tiếp tiếp điểm thường đóng Stop và Fault, ra cuộn dây Run. Nấc thứ hai: tiếp điểm Run kích bộ định thời TON 5 s, đầu ra Q điều khiển cuộn dây Valve. Thợ điện đọc được ngay vì giống sơ đồ mạch rơ-le.
Structured Text (ST):
IF Start AND NOT Stop AND NOT Fault THEN
Run := TRUE;
END_IF;
IF Stop OR Fault THEN
Run := FALSE;
END_IF;
DelayTimer(IN := Run, PT := T#5S);
Valve := DelayTimer.Q;Với logic đơn giản, LD trực quan và dễ chẩn đoán khi máy đang chạy. Với tính toán, xử lý mảng, công thức, vòng lặp hoặc truyền thông, ST ngắn gọn và dễ bảo trì hơn nhiều. Cách làm phổ biến là viết khối chức năng (FB) bằng ST rồi gọi trong chương trình LD.
Ngôn ngữ IEC 61131-3 trên phần mềm các hãng
| Phần mềm | Ngôn ngữ hỗ trợ | Ghi chú |
|---|---|---|
| Siemens TIA Portal (S7-1200/1500) | LAD, FBD, SCL (tương ứng ST), GRAPH (tương ứng SFC) | STL là ngôn ngữ riêng, không thuộc chuẩn |
| Rockwell Studio 5000 | Ladder, FBD, ST, SFC | Dùng tag thay vì địa chỉ cố định |
| Mitsubishi GX Works3 | Ladder, ST, FBD/LD, SFC | GX Works2 dùng cho FX3/Q đời cũ |
| CODESYS (nhiều hãng dùng chung) | Đủ 5 ngôn ngữ + CFC | Hỗ trợ hướng đối tượng theo phiên bản 3 |
| Omron Sysmac Studio | Ladder, ST | Khối chức năng theo chuẩn PLCopen |
Dù cùng tuân theo chuẩn, chương trình viết trên phần mềm này thường không chép thẳng sang phần mềm khác được – khác nhau ở thư viện, kiểu dữ liệu mở rộng và cách khai báo I/O. Cái chuyển được là tư duy và cấu trúc chương trình.
IEC 61131-3 phiên bản 3: lập trình hướng đối tượng
Phiên bản 3 (năm 2013) bổ sung các khái niệm hướng đối tượng cho PLC: lớp (class), phương thức (method), giao diện (interface), kế thừa, cùng với namespace và tham chiếu (reference). Nhờ đó có thể xây dựng thư viện thiết bị dùng lại được – ví dụ một khối “Động cơ” có các phương thức Start, Stop, Reset dùng cho hàng trăm động cơ. Cũng từ phiên bản này, ngôn ngữ IL (Instruction List) được đánh dấu lỗi thời, không khuyến khích dùng cho dự án mới.
Xem thêm: bảng giá PLC Mitsubishi FX5U 2026.
Cần thiết bị cho ứng dụng này?
Cần PLC cho máy mới hoặc nâng cấp tủ điện? Xem PLC Mitsubishi FX3U/FX5U – lập trình chuẩn IEC 61131-3. Tư vấn chọn model miễn phí, báo giá trong 24 giờ: 0879 848 668 hoặc gửi yêu cầu báo giá.
Câu hỏi thường gặp
Người mới nên học ngôn ngữ nào trước?
Ladder để đọc được chương trình trong nhà máy, sau đó ST. Hiểu FB và instance quan trọng hơn thuộc nhiều lệnh.
IEC 61131-3 có quy định về an toàn không?
Không. Lập trình cho chức năng an toàn tuân theo IEC 61508, IEC 62061 và dùng PLC an toàn được chứng nhận. IEC 61131-3 chỉ quy định ngôn ngữ.
Chương trình viết bằng Codesys có chạy được trên Siemens không?
Không chạy trực tiếp. Phần ST có thể chép sang SCL với chỉnh sửa, phần còn lại phải viết lại theo cấu trúc của TIA Portal.
Dữ liệu PLC, SCADA của bạn có thể dự báo hỏng thiết bị
Dữ liệu đã có trong PLC, SCADA, DCS và biến tần là đầu vào để kỹ sư xếp hạng sức khỏe từng bơm, động cơ và chỉ ra máy sắp có vấn đề – không cần lắp thêm thiết bị.
Cần báo giá hoặc tư vấn kỹ thuật?
Để lại thông tin, kỹ sư HOANTRANTDH sẽ liên hệ trong giờ làm việc.


BÀI VIẾT LIÊN QUAN
GX Works3 là phần mềm bắt buộc để lập trình dòng iQ-F (FX5U, FX5UC, FX5UJ, FX5S). Ai từng quen GX Developer hay GX Works2 sẽ thấy nhiều thứ đã đổi: project quản lý theo parameter và module, có label, có thư viện function block, mô phỏng tích hợp sẵn. Bài này đi theo đúng trình […]
Lò sấy, khuôn ép nhựa, bể mạ, nồi nấu, phòng ủ: hầu hết các vòng điều khiển nhiệt độ trong nhà máy đều là PID. Và rất nhiều vòng đang chạy với thông số mặc định hoặc thông số “auto-tune một lần rồi để đó”, dẫn đến vọt lố khi khởi động, dao động quanh […]
Siemens, Mitsubishi và Allen-Bradley (Rockwell) là ba thương hiệu PLC gặp nhiều nhất trong nhà máy ở Việt Nam. Không có hãng nào “tốt nhất” cho mọi trường hợp. Lựa chọn đúng phụ thuộc vào dây chuyền đang có, đội ngũ bảo trì quen dùng gì, yêu cầu của chủ đầu tư hoặc nhà cung […]