Inquiry
Form loading...
Cấu trúc chương trình và đặc điểm một số PLC thông dụng của Siemens

Tin tức

Cấu trúc chương trình và đặc điểm một số PLC thông dụng của Siemens

2023-12-08
1. Cấu trúc chương trình của một số PLC nhỏ nước ngoài Chương trình người dùng của các PLC này bao gồm chương trình chính, chương trình con và chương trình ngắt. Trong mỗi chu kỳ quét, CPU gọi chương trình chính một lần. Chương trình chính có thể gọi chương trình con và hệ thống điều khiển nhỏ chỉ có thể có chương trình chính. Chương trình ngắt được sử dụng để phản hồi nhanh chóng các sự kiện ngắt. Khi xảy ra sự kiện ngắt, CPU sẽ ngừng thực thi chương trình hoặc tác vụ đang được xử lý tại thời điểm đó và thực thi chương trình ngắt do người dùng viết. Sau khi thực hiện chương trình bị gián đoạn, tiếp tục thực hiện chương trình hoặc tác vụ bị tạm dừng. Các chương trình con và chương trình ngắt của chúng không có biến cục bộ và các chương trình con của chúng không có tham số đầu vào và đầu ra. 2. Cấu trúc chương trình của Siemens S7-200 Xử lý đầu vào/đầu ra hình ảnh (I/Q), bộ nhớ biến V, bit bộ nhớ trong M, bộ định thời T, bộ đếm C, v.v. là các biến toàn cục. Đơn vị tổ chức chương trình (POU) của S7-200 bao gồm chương trình chính, chương trình con và chương trình ngắt. Mỗi POU có biến cục bộ 64 byte riêng, chỉ có thể được sử dụng trong POU của nó. Ngược lại, các biến toàn cục có thể được sử dụng trong mỗi POU. Sau đây là các biến cục bộ mà chương trình con có thể sử dụng: 1) TEMP (biến tạm thời) là biến được lưu trữ tạm thời trong vùng dữ liệu cục bộ. Biến tạm thời được xác định chỉ được sử dụng khi POU được thực thi. Sau khi POU được thực thi, giá trị của biến tạm thời sẽ không được lưu. 2) IN là tham số đầu vào được cung cấp bởi POU gọi nó. 3) OUT là tham số đầu ra được trả về POU gọi nó (kết quả thực hiện của chương trình con). 4)IN_ OUT là đầu vào_ Giá trị ban đầu của tham số đầu ra được POU gọi nó truyền đến chương trình con và kết quả thực hiện của chương trình con được trả về POU gọi nó với cùng một biến. Chỉ có các biến tạm thời TEMP trong các biến cục bộ của chương trình chính và chương trình ngắt. Chương trình con với các tham số đầu vào, đầu ra và các biến cục bộ dễ dàng thực hiện lập trình có cấu trúc, điều này đặc biệt hữu ích cho các nhà sản xuất sản xuất thiết bị hoặc dây chuyền sản xuất tương tự trong một thời gian dài. Các lập trình viên từ các nhà sản xuất này đã viết một số lượng lớn các chương trình con chung cho từng thành phần hoặc chức năng xử lý của thiết bị. Ngay cả khi bạn không biết mã bên trong của chương trình con, chỉ cần bạn biết chức năng của chương trình con và ý nghĩa của các tham số đầu vào và đầu ra, bạn có thể nhanh chóng “lắp ráp” chương trình điều khiển đáp ứng yêu cầu của những người dùng khác nhau thông qua cuộc gọi giữa các chương trình. Nó giống như việc sử dụng các chip mạch tích hợp kỹ thuật số để tạo thành các mạch kỹ thuật số phức tạp. Nếu chương trình con không có tham số đầu vào và đầu ra thì không có giao diện rõ ràng giữa nó và chương trình gọi nó nên khó thực hiện được lập trình có cấu trúc. Nếu một chương trình con không có biến cục bộ, nó chỉ có thể trao đổi dữ liệu với chương trình gọi nó thông qua các biến toàn cục và chỉ có thể sử dụng các biến toàn cục bên trong chương trình con. Khi di chuyển các chương trình con và chương trình ngắt sang các dự án khác, bạn cần sắp xếp lại các biến toàn cục mà chúng sử dụng để đảm bảo rằng xung đột địa chỉ không xảy ra. Khi chương trình rất phức tạp và có nhiều chương trình con và chương trình ngắt, khối lượng công việc của kiểu gán lại địa chỉ này là rất lớn. Nếu chương trình con và chương trình ngắt có các biến cục bộ và chúng chỉ sử dụng biến cục bộ thay vì biến toàn cục, vì không có xung đột địa chỉ với các POU khác, chương trình con có thể được ghép sang các dự án khác mà không có bất kỳ thay đổi nào. 3. Cấu trúc chương trình của Siemens S7-300/400 S7-300/400 chia chương trình con thành hàm (hoặc hàm) và khối chức năng. Các chức năng của S7-300/400 về cơ bản giống như S7-200. Chúng có các tham số đầu vào, đầu ra và các biến tạm thời. Giá trị trả về trong dữ liệu cục bộ của hàm thực chất là một tham số đầu ra. Họ không có khu vực lưu trữ chuyên dụng. Sau khi chức năng hoàn thành, dữ liệu trong các biến tạm thời sẽ không được lưu lại. Bạn có thể sử dụng các biến toàn cục để lưu dữ liệu cần lưu sau khi thực thi hàm, nhưng nó sẽ ảnh hưởng đến tính di động của hàm. Khối chức năng là khối chương trình được người dùng viết với vùng lưu trữ riêng (tức là khối dữ liệu nền). Các tham số đầu vào và đầu ra và các biến tĩnh của khối chức năng được lưu trữ trong khối dữ liệu nền đã chỉ định và các biến tạm thời được lưu trữ trong ngăn xếp dữ liệu cục bộ. Mỗi lần một khối chức năng được gọi, khối dữ liệu nền phải được chỉ định. Sau khi khối chức năng được thực thi, dữ liệu trong khối dữ liệu nền sẽ không bị mất nhưng dữ liệu trong ngăn xếp dữ liệu cục bộ sẽ không được lưu. Khối chức năng áp dụng khái niệm đóng gói tương tự như C++, đóng gói chương trình và dữ liệu lại với nhau và có khả năng di chuyển tốt. Khối dữ liệu chia sẻ của S7-300/400 có thể được sử dụng bởi tất cả các khối logic. 4. Cấu trúc chương trình của IEC61131-3 IEC61131-3 là tiêu chuẩn ngôn ngữ lập trình của PLC. IEC61131-3 là tiêu chuẩn ngôn ngữ lập trình đầu tiên và duy nhất trong lĩnh vực điều khiển công nghiệp trên thế giới. IEC 61131-3 có ba loại POU: chương trình, khối chức năng và chức năng. Hàm này là một POU có nhiều tham số đầu vào và một tham số đầu ra (giá trị trả về). Tên của giá trị trả về trùng với tên của hàm. Kiểu dữ liệu của giá trị trả về cần được xác định. Thiết bị điều chỉnh Các hàm có cùng giá trị đầu vào luôn trả về cùng một kết quả. Các hàm có thể gọi các hàm khác, nhưng không thể gọi các khối hàm hoặc chương trình. Các biến cục bộ có thể được xác định bởi các hàm bao gồm VAR và VAR_ INPUT。 Khối chức năng là một POU có nhiều tham số đầu vào/đầu ra và bộ nhớ trong. Giá trị tham số đầu ra của một khối chức năng có liên quan đến giá trị của bộ nhớ trong của nó. Khối chức năng có thể gọi các chức năng khác Chặn hoặc thực hiện chức năng nhưng chương trình không thể gọi được. Trước khi gọi một khối chức năng, bạn phải khai báo thể hiện của khối chức năng cho mỗi lệnh gọi trong POU nơi khối chức năng sẽ được gọi. Hệ điều hành sẽ phân bổ vùng lưu trữ dành riêng cho khối chức năng cho mỗi cuộc gọi (Tương tự khối dữ liệu nền của S7-300/400). Hàm này không cần phải khởi tạo khi nó được gọi vì nó không có vùng lưu trữ nội bộ. Hoạt động và mục đích của chương trình tương tự như khối chức năng. Chương trình có các tham số đầu vào và đầu ra và có thể có vùng lưu trữ bên trong. Các chương trình thường chứa các lệnh gọi hàm và khối chức năng. IEC61131-3 xác định một số chức năng tiêu chuẩn và khối chức năng. 5. Sự khác biệt giữa cấu trúc chương trình S7-300/400 và IEC61131-3 1) Chức năng của S7-300/400 có thể có nhiều tham số đầu ra và giá trị trả về cũng là một tham số đầu ra. Hàm của IEC61131-3 chỉ có một giá trị trả về. 2) Vùng lưu trữ đặc biệt để lưu trữ các biến cục bộ trong khối chức năng IEC61131-3 được phân bổ khi khai báo phiên bản của khối chức năng. Nó không rõ ràng đối với người dùng và các POU khác không thể truy cập trực tiếp vào khu vực lưu trữ. Các biến cục bộ (không bao gồm các biến tạm thời) của khối chức năng của S7-300/400 được lưu trữ trong khối dữ liệu nền của nó. Các POU khác có thể truy cập các biến trong khối dữ liệu nền. Nếu bạn cần gọi cùng một khối chức năng nhiều lần để điều khiển cùng một loại đối tượng được điều khiển, bạn cần chỉ định một khối dữ liệu nền cho mỗi lệnh gọi, nhưng có ít biến trong các khối dữ liệu nền này, do đó có một số lượng lớn các khối dữ liệu nền trong dự án. Nhiều khối dữ liệu nền có thể được sử dụng để giảm số lượng khối dữ liệu nền. Tuy nhiên, cần thêm một khối chức năng để quản lý nhiều nền. 3) Các biến cục bộ của khối chức năng S7-300/400 bao gồm các biến tạm thời và biến tĩnh. Biến bên trong Var của khối chức năng IEC61131-3 tương đương với biến tĩnh của S7-300/400. 4) S7-300/400 chia vùng dữ liệu thành các khối dữ liệu để sử dụng. Kích thước của khối dữ liệu liên quan đến kiểu dữ liệu và số lượng biến được xác định trong khối dữ liệu. IEC61131-3 không có khái niệm về khối dữ liệu.