Một số khái niệm cơ bản về lập trình PLC

1. Các ngôn ngữ lập trình PLC

1.1. Ngôn ngữ lập trình LAD (Ladder Logic/Ladder Diagram) 

1.1.1. Khái niệm

Hình 1. Ngôn ngữ lập trình LAD

Ladder Logic (còn được gọi là sơ đồ bậc thang hoặc LD/LAD) là một ngôn ngữ lập trình PLC đồ họa (Programmable Logic Controller). Thể hiện các hoạt động logic với ký hiệu tượng trưng. Logic bậc thang được tạo ra từ các nấc thang logic, tạo thành thứ trông giống như một cái thang – do đó có tên là “Ladder Logic” hay “Ladder Diagram”.

1.1.2. Đặc điểm

Ví dụ viết chương trình bằng ngôn ngữ LAD.

Các quy tắc khi tạo ra một mạng LAD:
  • Mỗi mạng LAD phải kết thúc bằng một cuộn dây hay một lệnh dạng hộp. Không được kết thúc một mạng với cả lệnh so sánh (Compare) hay lệnh phát hiện ngưỡng (ngưỡng dương hay ngưỡng âm).
  • Ta không thể tạo ra một nhánh mà có thể đưa lại kết quả là một dòng tín hiệu theo chiều ngược lại.
  • Ta không thể tạo ra một nhánh mà có thể gây nên ngắn mạch.

Tham khảo về ngôn ngữ LAD: https://mesidas.com/ladder/

1.2.Ngôn ngữ lập trình FBD (Function Block Diagram)

1.2.1 Khái niệm

Hình 2. Ngôn ngữ lập trình FBD.

FBD là từ viết tắt của “Function Block Diagram” tạm dịch là “Sơ đồ khối chức năng”. Là một trong những ngôn ngữ lập trình PLC được sử dụng rộng rãi và rất dễ học. Nó cung cấp rất nhiều khả năng để lập trình cho bất kỳ chức năng nào trong một chương trình PLC.

FBD là ngôn ngữ cơ bản và tuyệt vời cho tất cả các lập trình viên PLC. Dễ dàng triển khai mọi thứ từ logic đến timer và thậm chí là hệ thống SCADA,.. Các hàm toán học và các hàm phức khác có thể được thể hiện một cách trực tiếp trong sự kết hợp với các hộp logic. Để tạo ra logic cho các vận hành phức tạp, ta chèn các nhánh song song giữa các hộp.

1.2.2 Đặc điểm

Ví dụ viết chương trình bằng ngôn ngữ FBD.

Hiểu biết về EN và ENO cho các lệnh “hộp”.

Cả ngôn ngữ LAD và FBD đều sử dụng “dòng tín hiệu” (EN và ENO) Đối với một vài lệnh “hộp”. Các lệnh cố định (như lệnh toán học và lệnh di chuyển) hiển thị các thông số cho EN và ENO. Các thông số này liên quan đến dòng tín hiệu và xác định khi nào lệnh được thực thi trong suốt lần quét đó.

  • EN (Enable In) là một ngõ vào Boolean cho các hộp trong ngôn ngữ LAD và FBD. Dòng tín hiệu (EN = 1) phải được hiện diện tại ngõ vào này để cho lệnh hộp được thực thi. Nếu ngõ vào EN của một hộp LAD hay FBD được kết nối trực tiếp đến thanh dẫn tín hiệu bên trái, hộp sẽ luôn luôn được thực thi.
  • ENO (Enable Out) là một ngõ ra Boolean cho các hộp trong ngôn ngữ LAD và FBD. Nếu hộp có dòng tín hiệu tại ngõ vào EN và hộp thực thi các chức năng của nó mà không có lỗi, khi đó ngõ ra ENO sẽ cho dòng tín hiệu (ENO = 1) đi qua đến phần tử kế tiếp. Nếu một lỗi được phát hiện trong quá trình thực thi của lệnh hộp, dòng tín hiệu sau đó sẽ bị ngắt (ENO = 0) tại hộp lệnh đã sinh ra lỗi.

1.3. Ngôn ngữ lập trình ST/STL (Structured Text)

1.3.1. Khái niệm 

Hình 3. Ngôn ngữ lập trình ST/STL.

ST/STL là ngôn ngữ lập trình PLC được PLCOpen định nghĩa trong IEC 61131-3. Ngôn ngữ lập trình ST/STL dựa trên dạng văn bản, còn LAD hay FBD là dựa trên dạng đồ họa. Việc soạn thảo chương trình trên ngôn ngữ ST/STL cho phép ta viết chương trình điều khiển bằng các lệnh gợi nhớ. Làm việc với ngôn ngữ ST/STL cho phép ta tạo ra các chương trình mà các ngôn ngữ LAD hay FBD không thực hiện được.

1.3.2. Đặc điểm

Ví dụ viết một chương trình Bằng ngôn ngữ ST/STL .

Đặc điểm của ngôn ngữ ST/STL:

  • Ngôn ngữ lập trình ST/STL được sao chép một cách tương đối dễ dàng giữa các loại PLC khác nhau
  • Đây được coi là ngôn ngữ lập trình PLC dễ sử dụng nhất cho các chương trình sử dụng các phép tính toán học, công thức, thuật toán và chương trình có lượng lớn dữ liệu
  • Cấu trúc lập trình ngôn ngữ ST/STL gần giống với các ngôn ngữ phổ biến khác như: C++, C#, Pascal, VB,..
  • Các ngôn ngữ lập trình PLC khác (LAD và FBD) đều sử dụng ngôn ngữ ST/STL để lập trình nâng cao cho các thành phần của nó.
  • Ngôn ngữ ST/STL dựa trên nền tảng văn bản nên chiếm ít dung lượng, dễ mô tả, chú thích và in ra dễ dàng hơn các ngôn ngữ lập trình PLC khác.

Bài viết tham khảo về ngôn ngữ STL: https://mesidas.com/st-structured-text/

1.4. Ưu và Nhược điểm của các ngôn ngữ lập trình PLC

Hình 4. Ưu và nhược điểm của các ngôn ngữ lập trình PLC.

2. Bảo vệ chống sao chép trong PLC

2.1. Thế nào là bảo vệ chống sao chép?

Bảo vệ chống sao chép cho phép ta ngăn một hay nhiều khối mã (OB, FB, hay FC) trong chương trình khỏi việc truy cập không được phép. Ta tạo ra một mật khẩu để giới hạn việc truy xuất đến khối mã. Mã trong khối đó sẽ không thể được truy xuất ngoại trừ sau khi nhập mật khẩu.

2.2. Hướng dẫn cài đặt bảo mật trong PLC S7-1200.

Nếu không có mật khẩu, ta chỉ có thể đọc được các thông tin sau về khối mã:

  • Tiêu đề khối, chú giải khối và các thuộc tính của khối.
  • Các thông số truyền (IN, OUT, IN_OUT, Return)
  • Cấu trúc gọi của chương trình
  • Các thẻ ghi tổng thể trong các tham chiếu chéo (không có thông tin trên điểm sử dụng), nhưng các thẻ ghi cục bộ bị ẩn.
Chức năng bảo mật
  • Bảo vệ chống lại sửa đổi trái phép mã hoặc xử lý giá trị đòi hỏi mức độ sẵn sàng cao hơn trong hoạt động.
  • Bảo vệ truy cập ngăn việc mở , sao chép trái phép các module để bảo vệ thuật toán và quy trình.
  • Các chức năng bảo mật này được tích hợp vào PLC và Cổng thông tin của phần mềm lập trình.

3. Download và Upload các phần tử của chương trình

3.1. Dowload các phần tử của chương trình.

Hình 5. Download chương trình xuống PLC.

Ta có thể tải xuống các phần tử của đề án từ các thiết bị lập trình đến CPU. Khi ta tải xuống một đề án, CPU sẽ lưu trữ chương trình người dùng (các OB, FC, FB và DB) trong bộ nhớ thường trực.

3.2. Upload các phần tử của chương trình

Hình 6. Upload chương trình có trong PLC.

Các chú ý khi Upload các phần tử của một chương trình :

  • Có thể tải lên tất cả các khối chương trình và bảng thẻ ghi từ một CPU trực tuyến (online) đến một đề án ngoại tuyến (offline),nhưng không thể tải lên cấu hình thiết bị hay các bảng quan sát
  • Không thể tải lên vào trong một đề án trống, mà phải có một CPU ngoại tuyến có thể tải lên
  • Chỉ có thể tải lên toàn bộ chương trình
  • Nếu một việc tải lên được thực hiện, CPU ngoại tuyến sẽ “bị xóa” (tất cả các khối và bảng thẻ ghi sẽ bị xóa) trước việc tải lên sau một câu hỏi kiểm tra.
  • Ta không thể chỉnh sửa một khối trong vùng trực tuyến, mà trước tiên phải tải lên nó đến một vùng ngoại tuyến, sau đó chỉnh sửa tại đó và cuối cùng tải lại trở về PLC.

Video hướng dẫn Download và Upload các phần tử của chương trình.

4. Gỡ rối và kiểm tra chương trình.

Ta sử dụng “các bảng quan sát” để giám sát và chỉnh sửa các giá trị của một chương trình người dùng đang được thực thi bởi CPU trực tuyến. Ta có thể tạo ra và lưu các bảng quan sát khác nhau trong đề án để hỗ trợ một loạt các môi trường kiểm tra. Điều này cho phép tái thực hiện các kiểm tra trong suốt việc thử nghiệm hay cho các mục đích phục vụ và bảo trì.

Hình 7. Chức năng kiểm tra chương trình.

Với một bảng quan sát ta có thể:

  • Giám sát và tương tác với CPU khi nó thực thi chương trình người dùng
  • Hiển thị hay thay đổi các giá trị không chỉ đối với các thẻ ghi của khối hàm và khối dữ liệu, mà còn đối với các vùng nhớ của CPU.
  • Kích hoạt các ngõ ra vật lý (Q:P) của một CPU trong chế độ STOP.
  • Cho phép ta “bắt buộc” hay thiết lập một thẻ ghi đến một giá trị đặc trưng.