IV. PLC
2.4 Kỹ thuật lập trình
Chơng trình cho S7-300 đợc lu trong bộ nhớ của PLC ở vùng dành riêng cho chơng trình và có thể đợc lập với hai dạng cấu trúc khác nhau:
• Lập trình tuyến tính (linear programming): Tồn bộ chơng trình điều khiển
nằm trong một khối trong bộ nhớ. Loại hình cấu trúc tuyến tính này phù hợp với những bài tốn tự động nhỏ, khơng phức tạp. Khối đợc chọn phải là khối OB1, là khối mà PLC ln qt và thực hiện các lệnh trong nó thờng xuyên, từ lệnh đầu tiên đến lệnh cuối cùng và quay lại lệnh đầu tiên. Khối nàyđợc hệ điều hành gọi theo chu kỳ lặp với khoảng thời gian không cách đều nhau mà phụ thuộc vào độ dài của chơng trình. Các loại khối chơng trình khác khơng tham gia trực tiếp vào vòng quét. Các khối OB khác khơng tham gia vào vịng quét mà đợc gọi bằng những tín hiệu báo ngắt. S7-300 có nhiều loại tín hiệu báo ngắt nh tín hiệu báo ngắt khi có sự cố nguồn ni, tín hiệu báo ngắt khi có sự cố chập mạch ở các module mở rộng, tín hiệu báo ngắt theo chu kỳ thời gian… và mỗi loại tín hiệu báo ngắt nh vậy cũng chỉ có khả năng gọi một loại khối OB nhất định. Mỗi khi xuất hiện một tín hiệu báo ngắt hệ thống sẽ tạm dừng công việc đang thực hiện lại, chẳng hạn nh tạm dừng việc thực hiện ch- ơng trình xử lý ngắt trong các khối OB tơng ứng.
• Lập trình có cấu trúc (structure programming): là kỹ thuật cài đặt thuật toán
điều khiển bằng cách chia nhỏ thành các khối chơng trình con FC hay FB với mỗi khối thực hiện một nhiệm vụ cụ thể của bài tốn điều khiển chung và tồn bộ các khối chơng trình này lại đợc quản lý một cách thống nhất bởi khối OB1. Trong OB1 có các lệnh gọi những khối chơng trình con theo thứ tự phù hợp với bài tốn điều khiển đặt ra.
Hồn tồn tơng tự, một nhiệm vụ điều khiển con có thể cịn đợc chia nhỏ thành nhiều nhiệm vụ nhỏ và cụ thể hơn nữa, do đó một khối chơng trình con cũng có thể đợc gọi từ một khối chơng trình con khác. Duy có một điều cấm kỵ ta Svth: Dỗn Hồng Mai 51 Lớp: Trang bị điện-điện tử K44
Tim boi : nguyenvanbientbd47@gmail.com
cần phải tránh là khơng bao giờ một khối chơng trình con lại gọi đến chính nó. Ngồi ra, do có sự hạn chế về ngăn xếp của các module CPU nên khơng đợc tổ chức chơng trình con gọi lồng nhau quá số lần mà module CPU đợc sử dụng cho phép.
PLC S7-300 có bốn loại khối cơ bản:
* Loại khối OB (Organization block): Khối tổ chức và quản lý chơng trình điều khiển. Có nhiều loại khối OB với những chức năng khác nhau, chúng đợc phân biệt với nhau bằng một số nguyên đi sau nhóm ký tự OB, ví dụ nh OB1, OB35, OB40…
* Loại khối FC(Program block): Khối chơng trình với những chức năng riêng giống nh một chơng trình con hoặc một hàm (chơng trình con có biến hình thức). Một chơng trình ứng dụng có thể có nhiều khối FC và các khối FC này đợc phân biệt với nhau bằng những số nguyên sau nhóm ký tự FC. Chẳng hạn nh FC1, FC2 …
* Loại khối FB (Function block): Là loại khối FC đặc biệt có khả năng trao đổi một lợng dữ liệu lớn với các khối chơng trình khác. Các dữ liệu này phải đợc tổ chức thành khối dữ liệu riêng có tên gọi là Data block. Một chơng trình ứng dụng có thể có nhiều khối FB và các khối FB này đợc phân biệt với nhau bằng một số nguyên sau nhóm ký tự FB. Chẳng hạn nh FB1, FB2 …
*Loại khối DB (Data block): Khối chứa các dữ liệu cần thiết để thực hiện chơng trình. Các tham số của khối do ngời dùng tự đặt. Một chơng trình ứng dụng có thể có nhiều khối DB và các khối DB này đợc phân biệt với nhau bằng một số nguyên sau nhóm ký tự DB. Chẳng hạn nh DB1, DB2 …
Chơng trình trong các khối đợc liên kết với nhau bằng các lệnh gọi khối, chuyển khối. Xem những phần chơng trình trong các khối nh là các chơng trình con thì S7-300 cho phép gọi chơng trình con lồng nhau, tức là từ chơng trình con này gọi một chơng trình con khác và từ chơng trình con đợc gọi lại gọi tới một chơng trình con thứ 3 …. Số các lệnh gọi lồng nhau phụ thuộc vào từng chủng loại module CPU mà ta sử dụng. Ví dụ nh đối với module CPU314 thì số lệnh gọi lồng nhau nhiều nhất có thể cho phép là 8. Nếusố lần gọi khối lồng nhau mà vợt quá con số giới hạn cho phép, PLC sẽ tự chuyển sang chế độ STOP và đặt cờ báo lỗi.
Tim boi : nguyenvanbientbd47@gmail.com
Hình 1.5: Lập trình có cấu trúc.
Hình 1.6: Thực hiện gọi khối FC10.
Nh vậy, khi thực hiện lệnh gọi một khối con, hệ điều hành sẽ:
• Chuyển khối con đợc gọi từ vùng Load memory vào vùng Work memory. • Cấp phát cho khối con một phần bộ nhớ trong Work memory để làm local
block. Cấu trúc local block đợc quy định khi soạn thảo các khối.
• Truyền các tham trị từ khối mẹ cho biến hình thức IN, IN-OUT của local block.
• Sau khi khối con thực hiện xong nhiệm vụ và ghi kết quả dới dạng tham trị đầu ra cho biến OUT, IN-OUT của local block, hệ điều hành sẽ chuyển các tham trị này cho khối mẹ và giải phóng khối con cùng local block ra khỏi vùng Work memory.
Tim boi : nguyenvanbientbd47@gmail.com