CẤU TRÚC CHƯƠNG TRÌNH PLC THEO CÁCH VIẾT NGƯỜI NHẬT
- 2022-04-09
- TỰ ĐỘNG HÓA
Bài viết cung cấp một cấu trúc của các dự án lập trình PLC mà tác giả đúc kết được khi làm việc ở Nhật Bản. Hy vọng sẽ giúp cho các bạn mới bước vào nghề dễ dàng định hướng hơn trong sự nghiệp trở thành một kỹ sư tự động hóa.
Nhớ lại thời mình mới được giao 1 dự án lập trình PLC, việc khó nhất không phải là yêu cầu bài toán hay thuật toán, mà là không biết việc cần làm đầu tiên là gì, nên phân bố cấu trúc như thế nào cho chuyên nghiệp, dễ debug, phân chia địa chỉ như nào để không bị rối… Chắc hẳn cũng không ít bạn sẽ gặp trường hợp như mình. Chính vì lý do đó mà hôm nay mình xin giới thiệu một cái nhìn tổng quát của một chương trình PLC chuẩn Nhật để giúp chúng ta dễ dàng định hướng cho bất kỳ dự án nào. Hy vọng qua bài viết sẽ giúp ích cho các bạn mới bước chân vào lĩnh vực lập trình PLC có thể nhanh chóng bắt tay vào dự án của riêng mình.
Mục lục:
|
1. Cấu trúc theo đối tượng điều khiển
Việc đầu tiên cần làm khi nhận một dự án PLC chính là xem đối tượng điều khiển là gì, cách thức hoạt động như thế nào để có cái nhìn tổng quát.
Ví dụ:
+ Motor/Pump
・Đóng mở On/Off bằng khởi động từ.
- ・Điều khiển bằng biến tần: On/Off, thay đổi tần số.
+ Van điện từ
・Van điện từ đơn (Single Solenoid) 1 đầu ra: ON = Mở, OFF=Đóng (có cảm biến limit) hoặc ngược lại.
・Van điện từ đôi (Double Solenoid) 2 đầu ra: Kênh A ON = Mở, Kênh B ON =Đóng (có cảm biến limit) hoặc ngược lại.
- + Điều khiển trục
・Bộ trục có kèm bộ điều khiển: Chỉ cần đăng kí địa chỉ vào bộ điều khiển.
・Bộ trục có kèm bộ điều khiển: Thông qua truyền thông để truyền địa chỉ.
・Điều khiển vị trí chính xác nhiều trục: theo đồng bộ/nội suy hoặc không theo cả 2.
Khi phân loại các đối tượng ra theo nhóm như trên thì khi lập trình, các đối tượng cùng nhóm thường chương trình điều khiển cũng sẽ giống nhau. Và khi chương trình giống nhau thì sẽ giúp ta dễ dàng sửa chữa, quản lý một cách có hệ thống hơn.
Với hệ thống có khoảng10 đối tượng trở xuống thì không cần phân loại như trên cũng có thể dễ dàng quản lý khi viết riêng cho từng đối tượng. Tuy nhiên đối với các hệ thống trên 20,30 đối tượng thì việc phân loại như trên sẽ giúp tiết kiệm thời gian rất nhiều cho người lập trình.
2. Cấu trúc theo yêu cầu công nghệ
Đây là cách lập trình mình thường sử dụng khi bắt đầu một dự án. Ở Nhật Bản thì tùy vào knowhow, hay còn gọi là bí kíp công nghệ mà có thể có các yêu cầu khác nhau về yêu cầu trong cấu trúc chương trình PLC. Do đó mình sẽ nêu ra những cấu trúc mà mình từng làm để các bạn có cái nhìn thực tế nhất nhé.
a. Điều khiển thủ công: (Manual)
Đây là mạch dùng để điều khiển thủ công tùy ý của từng đối tượng. Thường được sử dụng lúc mới lắp đặt máy để hiệu chỉnh, hay lúc xảy ra sự cố khi mà chương trình tự động không thể hoạt động được thì mạch này chính là phao cứu sinh của người dùng. Do đó hầu như các dự án mình làm đều có mạch này.
b. Điều khiển tự động (Auto)
Với hệ thống có yêu cầu tự động hóa, thì mạch này sẽ cần được phân ra một chương trình riêng để dễ quản lý. Trong một dự án thì mạch này chính là mạch thú vị và đi đúng trọng tâm nhất của yêu cầu công nghệ, do đó khi nhận được yêu cầu, đa số người lập trình sẽ đưa ý tưởng về cách viết cho mạch này đầu tiên.
c. Quản lý cài đặt, quản lý Recipe
Ví dụ với 1 hệ thống luyện kim đơn giản, nung nóng nguyên liệu ở một nhiệt độ nhất định, rồi làm nguội cưỡng bức bằng nước làm mát trong thời gian bao lâu thì sẽ ra sản phẩm… Tùy mỗi sản phẩm sẽ có nhiệt độ nung nóng, thời gian nung nóng, thời gian làm mát khác nhau. Lúc đưa nguyên liệu vào lò, người thao tác sẽ làm thế nào để nhập vào các thông số trên cho máy hoạt động đúng theo yêu cầu?
Nếu chỉ có vài loại sản phẩm khác nhau thì người thao tác có thể nhìn bảng tra thông số có sẵn rồi nhập vào, bỏ qua phần sai sót con người, rồi bấm Run là xong. Tuy nhiên sau này việc làm ăn phát triển, càng có nhiều loại sản phẩm khác được đặt hàng, lên đến hàng chục, hàng trăm loại thì việc nhìn bảng để nhập vào có còn đáng tin cậy không? Có cách gì không cần nhập vào mà máy vẫn chạy đúng theo từng thông số đó không? Lúc này thì Recipe là giải pháp cho vấn đề trên rồi. Với việc đăng kí sẵn thông số từng sản phẩm và đặt tên cho nó, người dùng chỉ việc tra tên sản phẩm rồi bấm chọn trên màn hình quản lý Recipe, thì các thông số đã đăng kí trước đó tự động nhập vào. Nhờ đó, chỉ cần cẩn thận nhập vào lần đầu lúc đăng kí, các lần sau chỉ cần bấm và chạy. Tùy vào dung lượng bộ nhớ mà có thể đăng kí hàng vạn sản phẩm khác nhau, thêm bớt, tùy chỉnh một cách dễ dàng mà không cần phải gọi thợ đến chỉnh sửa. Do đó hệ thống có Recipe cũng rất hay gặp ở các máy tự động hóa.
Có một lưu ý khi tạo chương trình Recipe là nên đặt giá trị ban đầu (Default Value) cho toàn bộ các vùng địa chỉ của chương trình Recipe. Lý do là nếu không đặt giá trị này, thì khi khởi động lần đầu hoặc khi người thao tác chọn nhầm vào vùng địa chỉ chưa được đăng kí, giá trị các thông số sẽ bằng 0 nên sẽ dễ gây ra các vấn đề không mong muốn.
d. Điều khiển Feedback
Hay còn gọi là điều khiển vòng lặp kín (Loop control), thường như các chương trình điều khiển PID để điều khiển nhiệt độ….
e. Xử lý Analog
Là mạch xử lý đầu vào và chuyển sang giá trị hiểu được cho người dùng. Đây là mạch cơ bản nhất của chương trình nhưng lại cần tính chính xác cao nhất, do đó nếu xử lý ổn thỏa thì bạn đã đặt được một viên gạch vững chắc cho hệ thống rồi.
f. Mạch Alarm
Đây là mạch quan trọng dùng để xử lý sự cố khi hệ thống bị hỏng. Các bit xác nhận alarm có thể dùng cho các nhiệm vụ dừng máy, báo động cho người dùng. Nếu kết hợp với HMI thì có thể xác nhận được lỗi để có phương án xử lý phù hợp.
Thường sẽ phân ra các bit alarm như sau:
- Bit lỗi nặng: Dừng máy, cơ cấu chuyển động, ON liên tục cho đến khi hết lỗi và nhấn reset.
- Bit lỗi nhẹ: Không dừng máy, có chức năng cảnh báo, thường tự mất đi khi hết lỗi.
- Bit báo động buzzer, đèn cảnh báo.
g. Mạch xử lý HMI/Truyền thông
Thường các bit đèn, alarm, thanh ghi giá trị analog trên HMI sẽ được phân ra riêng, tránh dùng chung với bit điều khiển. Tương tự các bit truyền thông sẽ được đưa vào vùng nhớ địa phương của PLC rồi đem đi xử lý ở các mạch điều khiển.
h. Output
Đây là mạch để viết tổng hợp lại các bước ở trên. Ví dụ với động cơ có đầu ra là Y0. Qua quá trình viết chương trình, bit On ở mạch thủ công là M1, bit On ở mạch tự động là M100 thì ở mạch Output này, Y0 = M1 + M100.
Ưu điểm của cách viết này là sẽ làm cho chương trình dễ hiểu hơn nhiều so với việc viết lộn xộn Ouput ở các mạch khác nhau. Ví dụ khi động cơ có vấn đề không chạy, ta có thể vào ngay mạch Ouput, tìm Y0 rồi xem bit nào không ON, xong rồi truy ngược lại đầu ra của bit đó ở các mạch trên. Do đó giúp mình có cái gốc để truy lỗi, đặc biệt những lúc khách hối thúc, đầu óc rối mù vì hoảng không biết làm gì thì đây sẽ là chiếc phao cứu sinh của bạn.
i. Mạch chính Main
Đây là mạch cuối cùng, thường dùng để khởi tạo, gọi các chương trình con cho hệ thống. Đặc biệt là với các alarm xảy ra khi vửa khởi động hệ thống thì thường sẽ viết một timer delay cho mạch alarm, đợi sau khi khởi động hoàn tất thì mạch alarm mới được hoạt động.
3. Kết luận
Mặc dù chỉ là một cấu trúc thường thấy theo kinh nghiệm người viết, nhưng mình hy vọng bài viết sẽ là cơ sở cho một chương trình PLC có cấu trúc rõ ràng đầu tiên của những bạn mới lập trình.
Mọi ý kiến đóng góp xin để lại ở phần comment bên dưới. Cảm ơn các bạn đã ghé thăm Blog.
Hẹn gặp các bạn trong các bài viết tới!
Tác giả bài viết: Nhan Nguyen
0 Bình luận