acecook

Cách viết chương trình PLC dành cho người mới bắt đầu

Hỗ trợ kỹ thuật
09/09/2021 10:00
Rất nhiều người mới bắt đầu vô cùng bối rối khi được yêu cầu bắt đầu viết một đoạn chương trình cho hệ thống thiết bị. Nguyên nhân lớn nhất là do trong trường học mọi người được dạy lập trình PLC bằng việc một dòng lệnh là xử lý hết các tình huống với các bit I/O trong đó. Cách dạy và học đó chỉ đúng với PLC cơ bản.
aa

Trong quá trình học và làm việc với PLC, rất nhiều người mới bắt đầu vô cùng bối rối khi được sếp yêu cầu bắt đầu viết một đoạn chương trình cho hệ thống thiết bị.

• 6 bước để lựa chọn giữa PLC và DCS trong công nghiệp
• PLC, PAC VÀ IPC: Khác biệt và cơ sở lựa chọn

Nguyên nhân lớn nhất là do trong trường học mọi người được dạy lập trình PLC bằng việc một dòng lệnh là xử lý hết các tình huống với các bit I/O trong đó. Cách dạy và học đó là đúng với PLC cơ bản, nhất là đối với các kỹ sư điện quen làm việc với mạch relay.

Tuy nhiên, thời của mạch relay và PLC chỉ chứa được dăm dòng lệnh đã xa lắm rồi. Các Dòng PLC hiện đại như Allen Bradley Controllogix cũng đã ngót nghét 24 – 25 năm tuổi (thậm chí nhiều tuổi hơn các bạn đang đọc bài này).

Nhược điểm khi viết chương trình PLC theo dạng mạch relay

Ở thời điểm này, việc viết một chương trình PLC theo dạng mạch relay sẽ có những nhược điểm sau:

  • Chương trình rất khó hiểu và khó sửa. Người ta nói đùa rằng, chương trình này lúc viết thì có người viết và Chúa hiểu, còn lúc sửa thì chỉ còn có Chúa mới hiểu nổi thôi.
  • Chương trình rất khó viết, vì trong lúc viết, bạn phải chuẩn bị sẵn tất cả các trường hợp có thể xảy ra. Với hệ thống nhỏ một chức năng thì có thể, nhưng gặp hệ thống phức tạp/sử dụng cho nhiều mục đích thì cách viết này vô cùng tai hại.

Cách viết dạng mạch relay sẽ phù hợp với các hệ thống siêu nhỏ, máy cố định và cần thời gian phản ứng rất rất nhanh (< 10ms ). Chương trình viết cũng siêu nhỏ, thích hợp với các thể loại PLC cũ không có nhiều lựa chọn về đặt tên IO cũng như ổ nhớ.

Lập trình theo dạng quy trình (procedure)

Tuy nhiên, với nhiều nhược điểm trên, mình khuyên các bạn sau khi đã làm quen với việc viết một vài dòng lệnh cơ bản, bạn nên học về cách lập trình theo dạng quy trình (procedure). Cách viết chương trình dạng procedure, kết hợp với cách sử dụng các add-on instruction có sẵn trên hệ process sẽ đảm bảo cho bạn viết được một chương trình hoàn chỉnh với mọi kích cỡ.

Cách viết chương trình dạng procedure thực ra là cách viết chương trình đơn giản nhất có thể, dựa hoàn toàn vào việc người viết chương trình mô tả quá trình đấy. Nếu bạn nào từng học lập trình bằng các ngôn ngữ cổ ngày xưa (Pascal) chẳng hạn, thì sẽ cảm giác khá quen thuộc.

Về lý thuyết, cách viết này chỉ là đánh số các bước cần thực hiện để hoàn thành 1 task.

Khi bắt đầu, bước 0 chuyển qua bước 1

Bước 1: làm hành động A1, kiểm tra điều kiện B1, nếu B1 thỏa mãn thì chuyển qua bước 2

Bước 2: làm hành động A2, kiểm tra điều kiện B2, nếu B2 thỏa mãn thì chuyển qua bước 3

….

Bước kết thúc, thông báo hoàn thành quy trình, về lại bước 0.

Hết.

Nếu bạn muốn hệ thống lặp đi lặp lại, chỉ cần ở 1 bước nào đó, bạn loop ngược về bước 0

Bước N: làm hành động AN, kiểm tra điều kiện BN, nếu BN thỏa mãn thì chuyển qua bước M (M trước N)

Nếu bạn muốn hệ thống có rẽ nhánh về action, cũng chỉ cần:

Bước N: làm hành động AN, kiểm tra điều kiện BN và CN, nếu BN thỏa mãn thì chuyển qua bước M, nếu CN thỏa mãn thì chuyển qua bước L.

Nghe lý thuyết thì khó hiểu, mình sẽ lấy 1 ví dụ cụ thể:

cach viet chuong trinh plc danh cho nguoi moi bat dau
Ví dụ cách viết chương trình dạng procedure.

Đây là bài tập mình copy trên Youtube, giải nó rất rất đơn giản như sau:

Bấm Start thì toàn hệ thống RUN step 0 -> 1 bấm Stop thì toàn hệ thống không Run

Nếu Run, Step 1 → bật bơm HC1 / HC2 / HC3, kiểm tra bơm đã hoạt động chưa → step 2

Nếu Run, Step 2 → duy trì HC1/ HC2/ HC3, kiểm tra điều kiện L+ (LH – Level High) đạt chưa, nếu đã đạt thì → step 3

Nếu Run, Step 3 → tắt HC1/ HC2/ HC3, bật Motor khuấy Thuận, tạo timer khuấy thuận 5s, khi timer đạt thì qua step 4

Nếu Run, Step 4 → tắt motor khuấy thuận, bật motor khuấy nghịch, tạo timer nghịch 5s, khi timer đạt thì qua step 5

Nếu Run, Step 5 → tắt motor khuấy nghịch. Mở VAN. Kiểm tra điều kiện L-, nếu đạt L- (LL – LevelLow) thì qua bước 6

Nếu Run, Bước 6 → đóng VAN. VAN đã đóng thì chuyển về bước 1.

Toàn bộ chương trình bằng chữ mình viết trong vòng 6 phút, vừa đọc vừa viết.

Muốn tăng độ khó cho đề bài, mình chỉ cần sửa đề bài là bật tuần tự HC1, HC2, HC3 theo flowmeter dạng pulse counter (HC1FM, HC2FM, HC3FM) với số lượng 100-200-300 xung (thay vì bật L+). Với kiểu viết chương trình của mình, từ đề bài trên sửa vô cùng dễ

Step 1 → → step 11

step 11 → bật bơm HC1, đếm xung HC1FM, nếu HC1FM = 100→ step 12

step 12 → bật bơm HC2, đếm xung HC2FM, nếu HC2FM = 100→ step 13

Step 13 → bật bơm HC3, đếm xung HC3FM, nếu HC3FM = 100→ step 3

Step 3 → tắt HC1/ HC2/ HC3, bật Motor khuấy Thuận, tạo timer khuấy thuận 5s, khi timer đạt thì qua step 4

Step 4 → tắt motor khuấy thuận, bật motor khuấy nghịch, tạo timer nghịch 5s, khi timer đạt thì qua step 5

Step 5 → tắt motor khuấy nghịch. Mở VAN. Kiểm tra điều kiện L-, nếu đạt L- (LL – LevelLow) thì qua bước 6

Bước 6 → đóng VAN. Reset toàn bộ các biến. VAN đã đóng thì chuyển về bước 1.

Khi viết chương trình dạng procedure, bạn cần chú ý là các action ở từng bước phải được tách ra 1 dòng lệnh riêng, không viết chung trong cùng 1 dòng với các lệnh chuyển bước. Lý do là các action có thể lặp lại (ví dụ HC1 có thể bật ở bước 1, 4, 8) chẳng hạn.

Khi đó, nếu run, đang ở bước 1,4,8, thì HC1 chạy. Việc kiểm soát thực ra sẽ vô cùng dễ dàng.

Triển khai trong PLC thực tế

Trong bài mẫu này, mình sử dụng phần mềm của Rockwell Automation, Studio 5000 V33 và RSEmulate.

Set up các tag cơ bản:

cach viet chuong trinh plc danh cho nguoi moi bat dau

Set up các routine chạy

  • PHASE: chứa chương trình bước
  • OUTPUT: chứa các lệnh action

cach viet chuong trinh plc danh cho nguoi moi bat dau

cach viet chuong trinh plc danh cho nguoi moi bat dau

cach viet chuong trinh plc danh cho nguoi moi bat dau

cach viet chuong trinh plc danh cho nguoi moi bat dau
Đối với tất cả chương trình PLC, trước khi mình đưa vào chạy thực tế trên máy đều chạy giả lập trên Emulation để giả lập tính năng. Mình chạy vào RSEmulate, và từ lúc viết tới lúc emulate không cần sửa lại. Nếu bạn để ý, chương trình của mình khá dài dòng, với 19 dòng. Tuy nhiên, từng dòng của mình viết rất dễ hiểu, và dễ tra ngược lại. Ví dụ, bạn có thể kiểm tra được là hệ thống đang chạy bước nào, nếu van không mở thì tại sao, van không đóng tại sao một cách vô cùng dễ dàng.

Cách viết này giải quyết được cho toàn bộ các hệ thống nếu được miêu tả đúng cách theo quy trình của từng cụm máy thiết bị. Ví dụ 1 máy sẽ có khoảng 200-300 I/O hoạt động theo khoảng 20-30 cụm chức năng thì sẽ cần 20-30 chương trình Phase và Output như vậy. Miễn là miêu tả được thành từng bước, thì sẽ viết ra được. Việc viết chương trình kiểu này không phụ thuộc vào việc bạn dùng PLC gì, hãng nào. Thậm chí, nếu bạn không dùng PLC mà sử dụng các board điều khiển (Arduino chẳng hạn) thì việc code theo procedure kiểu này sẽ đơn giản hóa công việc rất rất nhiều.

Khi bạn bắt đầu viết chương trình kiểu này quen, các việc tiếp theo bạn cần tìm hiểu là:

  • Mô hình và phân chia cấu trúc một cách có hệ thống theo ISA 88:
    • Phân chia cấu trúc vật lý (asset) thành Process Cell/Unit/Control Module
    • Procedural Control Model (Phase)

cach viet chuong trinh plc danh cho nguoi moi bat dau

  • Đặc biệt đối với hệ thống quy trình công nghệ (process control), các thiết bị đầu cuối thường được lập trình sẵn với các Process Objects, tồn tại dưới dạng các khối lệnh thêm vào (add-on instruction hoặc function block). Các khối này được lập trình sẵn với các khối hiển thị trên HMI/SCADA, sẽ giúp bạn triển khai dự án một cách nhanh chóng. Ví dụ về bộ thư viện này của Rockwell Automation là PlantPAx, hiện tại có bản mới nhất là 5.0
  • Sự dụng được Phase Manager vì hệ thống theo ISA88 không chỉ có trạng thái START – STOP mà còn có Stop, Pause, Complete. Các trạng thái này sẽ giúp việc điều khiển quy trình dễ dàng và chính xác hơn, cũng như việc phối hợp giữa các Phase/Task với nhau để tạo thành 1 hệ thống quy trình liên hợp hoàn chỉnh.

cach viet chuong trinh plc danh cho nguoi moi bat dau

Hi vọng với bài viết ngắn này, Hùng giúp mọi người có thể viết được chương trình PLC một cách đơn giản và dễ hiểu nhất.

Hoàng Kim Hùng – Sales Account Manager
Rockwell Automation Việt Nam

Bài liên quan
nam-moi
Tin bài khác
Hồ Gươm rực sắc đào xuân, thành điểm check-in "nóng" nhất Hà Nội dịp Tết Bính Ngọ

Hồ Gươm rực sắc đào xuân, thành điểm check-in "nóng" nhất Hà Nội dịp Tết Bính Ngọ

Những ngày giáp Tết Nguyên đán Bính Ngọ 2026, khu vực quanh Hồ Hoàn Kiếm và phố cổ Hà Nội ngập tràn sắc xuân với hàng trăm gốc đào, quất cảnh cùng nhiều tiểu cảnh hoa được bố trí công phu. Không gian rực rỡ giữa trung tâm Thủ đô thu hút đông đảo người dân và du khách đến tham quan, chụp ảnh.
Từ dữ liệu thô đến giá trị kinh tế cao: Việt Nam cần gì để bứt phá?

Từ dữ liệu thô đến giá trị kinh tế cao: Việt Nam cần gì để bứt phá?

Trên thế giới, dữ liệu đã trở thành “mỏ vàng” của nền kinh tế tri thức. Các doanh nghiệp dẫn đầu đều xây dựng lợi thế cạnh tranh từ phân tích dữ liệu và trí tuệ nhân tạo. Tại Việt Nam, chuyển đổi số đang diễn ra mạnh mẽ, song việc biến dòng dữ liệu khổng lồ thành giá trị kinh tế thực chất vẫn là bài toán chưa có lời giải trọn vẹn. Khung thể chế cho chia sẻ dữ liệu, thị trường giao dịch dữ liệu, nguồn nhân lực khoa học dữ liệu và hạ tầng điện toán vẫn còn nhiều khoảng trống. Chuyên gia kinh tế, TS. Nguyễn Minh Phong chia sẻ câu chuyện đâu là “điểm nghẽn”, đâu là “cửa mở” để Việt Nam không bỏ lỡ cơ hội trong cuộc đua kinh tế dữ liệu toàn cầu.
[E-Magazine] 9 doanh nhân tuổi Bính Ngọ

[E-Magazine] 9 doanh nhân tuổi Bính Ngọ

Sinh năm 1966 - năm Bính Ngọ, một thế hệ bước ra đời giữa những khúc quanh lớn của thế giới như Chiến tranh Lạnh khép lại, toàn cầu hóa mở ra, công nghệ tăng tốc, còn các nền kinh tế thì liên tục tự làm mới mình. TĐHNN chọn giới thiệu 9 doanh nhân dưới đây không chỉ như những câu chuyện làm giàu, mà như những lát cắt sinh động về cách con người thích nghi, dẫn dắt và để lại dấu ấn trong trật tự kinh tế - xã hội đương đại.
Đón giao thừa giữa trưa nắng Varadero

Đón giao thừa giữa trưa nắng Varadero

Trải nghiệm đón giao thừa đặc biệt giữa trưa nắng tại Varadero, Cuba, với không khí trong lành, pháo hoa và những khoảnh khắc ý nghĩa bên biển xanh.
Bộ Khoa học và Công nghệ dâng hương đầu Xuân, khởi động năm mới bằng tinh thần phụng sự và đổi mới

Bộ Khoa học và Công nghệ dâng hương đầu Xuân, khởi động năm mới bằng tinh thần phụng sự và đổi mới

Sáng ngày 17/2/2026 (tức mùng 1 Tết), theo truyền thống vào ngày đầu năm mới, năm nay ngày đầu năm Bính, đoàn đại biểu Bộ Khoa học và Công nghệ (KH&CN) do Bộ trưởng Bộ KH&CN Nguyễn Mạnh Hùng làm trưởng đoàn đã dâng hương tưởng niệm Chủ tịch Hồ Chí Minh tại Khi Di tích Đá Chông - K9 - nơi lưu giữ những ký ức đặc biệt về Chủ tịch Hồ Chí Minh. Tham gia Đoàn có Thứ trưởng Bùi Hoàng Phương cùng đại diện một số lãnh đạo các đơn vị trực thuộc Bộ.
Kỳ 2: Đầu tư không tự động biến thành năng lực nội sinh

Kỳ 2: Đầu tư không tự động biến thành năng lực nội sinh

Trong hơn ba thập niên thu hút đầu tư nước ngoài, FDI đã trở thành một cấu phần quan trọng của nền kinh tế Việt Nam. Các dự án FDI quy mô lớn đã mang theo vốn, công nghệ, tiêu chuẩn quốc tế và phương thức quản trị hiện đại, đóng góp đáng kể vào tăng trưởng, xuất khẩu và tạo việc làm. Chính vì vậy, trong một thời gian dài, FDI thường được xem là “con đường ngắn” để tiếp cận công nghệ.
Hệ sinh thái doanh nghiệp: Trụ cột phát triển của Hội Tự động hóa Việt Nam giai đoạn 2025-2030

Hệ sinh thái doanh nghiệp: Trụ cột phát triển của Hội Tự động hóa Việt Nam giai đoạn 2025-2030

Năm 2025, khái niệm “Hệ sinh thái doanh nghiệp VAA” lần đầu tiên được đặt ra như một trọng tâm trong hoạt động của Hội Tự động hóa Việt Nam (VAA). Nghị quyết Đại hội đại biểu toàn quốc nhiệm kỳ 2025-2030 của Hội vừa diễn ra vào ngày 27/12/2025 cũng đã khẳng định việc phát triển Hệ sinh thái doanh nghiệp VAA là nhiệm vụ trọng tâm, ưu tiên trong nhiệm kỳ. Trước thềm Xuân Bính Ngọ, TS. Đỗ Nguyên Hưng, tân Tổng Thư ký VAA nhiệm kỳ 2025-2030, cũng là người khởi xướng xây dựng Đề án phát triển Hệ sinh thái doanh nghiệp VAA đã có những chia sẻ xung quanh ý tưởng, cũng như kỳ vọng khi tập trung cho đề án này/
Nhân lực nào vận hành thế giới số?

Nhân lực nào vận hành thế giới số?

Những dây chuyền sản xuất tự động chạy xuyên đêm, lưới điện thông minh tự cân bằng tải, hệ thống giao thông điều tiết theo dữ liệu thời gian thực,… đang trở thành cảnh quan quen thuộc của nền công nghiệp số. Máy móc ngày càng ít sai sót, thuật toán ngày càng tinh vi. Nhưng giữa nhịp vận hành tưởng như trơn tru ấy, một câu hỏi âm thầm hiện lên: Ai đang thực sự hiểu, giám sát và quyết định khi hệ thống vượt khỏi những kịch bản đã được lập trình?
Chùa Thắng Nghiêm Quốc Tự - "tọa độ" tâm linh mới của đầu xuân 2026

Chùa Thắng Nghiêm Quốc Tự - "tọa độ" tâm linh mới của đầu xuân 2026

Chỉ mới xuất hiện trong danh sách các địa điểm check-in đẹp đầu năm 2026, Chùa Thắng Nghiêm Quốc Tự (Mật Viện Thắng Nghiêm) đã nhanh chóng thu hút đông đảo du khách bởi không gian cổ kính, kiến trúc đậm dấu ấn Phật giáo truyền thống và bề dày lịch sử hơn một thiên niên kỷ gắn liền với vùng đất Khúc Thủy bên dòng sông Nhuệ.
Khí chất tuổi Ngọ trong hành trình chuyển đổi số ngành vận tải Việt

Khí chất tuổi Ngọ trong hành trình chuyển đổi số ngành vận tải Việt

Giữa dòng chảy chuyển đổi số đang cuốn qua hầu hết các lĩnh vực kinh tế, vận tải hàng hóa Việt Nam vẫn là một ngành đặc thù: phân mảnh, phụ thuộc nhiều vào kinh nghiệm cá nhân và thiếu kết nối dữ liệu. Trong bức tranh ấy, hành trình của Nguyễn Anh Tuấn - CEO nền tảng gọi xe tải Việt VTGO không chỉ là câu chuyện khởi nghiệp công nghệ, mà còn là nỗ lực bền bỉ đưa tư duy hệ thống và tự động hóa vào một ngành vốn quen vận hành bằng “thói quen”. Ở đó, tinh thần của người tuổi Ngọ - không đứng yên, không bỏ cuộc trở thành sợi chỉ đỏ xuyên suốt.
song-gia-tri