Cơ bản về lập trình PLC S7200

Đăng lúc: Thứ ba - 03/01/2017 02:34 - Người đăng bài viết: Hai Vuong
Lập trình cho S7 và các PLC khác của hãng Siemens dựa trên 3 phương pháp cơ bản: - Phương pháp hình thang (Ladder logic - LAD). - Phương pháp khối hàm (Function Block Diagram - FBD). - Phương pháp liệt kê câu lệnh (Statement List - STL).

Cơ bản về lập trình PLC S7200

1. CÁC LOẠI NGÔN NGỮ LẬP TRÌNH PLC
Lập trình cho S7 và các PLC khác của hãng Siemens dựa trên 3 phương pháp cơ bản:

- Phương pháp hình thang (Ladder logic - LAD).

- Phương pháp khối hàm (Function Block Diagram - FBD).

- Phương pháp liệt kê câu lệnh (Statement List - STL).

Trong bài viết này chúng tôi sẽ giới thiệu các thành phần cơ bản của ba phương pháp và cách sử dụng chúng trong lập trình.

Nếu chương trình được viết theo ngôn ngữ LAD (hoặc FBD) thì có thể chưyển sang ngôn ngữ STL hay FBD (hoặc LAD) tương ứng. Nhưng không phải bất cứ chương trình viết theo STL nào cũng chuyển sang ngôn ngữ LAD hay FBD được. Bộ tập lênh STL được trình bày trong giáo án này đều có một chức năng như các tiếp điểm, cuộn dây, các hộp (trong LAD) hay IC số trong FBD.
Những lệnh này phải phối hợp được trạng thái các tiếp điểm để quyết định về giá trị trạng thái đầu ra hoặc giá trị logic cho phép hoặc không cho phép thực chức năng của một (hay nhiều) cuộn dây hoặc hộp. Trong lập trình lôgic thường hay sử dụng hai ngôn ngữ LAD và STL vì nó gần gũi hơn đối với chuyên ngành điện. Sau đây là những định nghĩa cần phải nắm khi bắt tay vào thiết kế một chương trình:

 Ngôn ngữ bảng lệnh là gì (STL)

Ngôn ngữ liệt kê lệnh, ký hiệu là STL (Statement List). Đây là ngôn ngữ lập trình thông thường của máy tính. Một chương trình được ghép bởi nhiều lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một hàng và đều có cấu trúc chung là: "tên lệnh" + "toán hạng". Một số lệnh đặc biệt thì có thể chỉ có tên lệnh mà không cần toán hạng.
 
Statement List - STL
 Statement List - STL
Ngôn ngữ sơ đồ thang là gì (LAD)

Ngôn ngữ hình thang, ký hiệu là LAD (Ladder Logic) Với loại ngôn ngữ này rất thích hợp với người quen thiết kế mạch điều khiển logic. Chương trình được viết dưới dạng liên kết giữa các công tắc:

Ví dụ:
Ladder logic - LAD
 Ladder logic - LAD
2. CHU TRÌNH LÀM VIỆC, LẬP TRÌNH VÀ CẤU TRÚC CHƯƠNG TRÌNH
Các phương pháp lập trình
2.1 Lập trình tuyến tính

Phần bộ nhớ của CPU dành cho chương trình ứng dụng có tên gọi là logic Block. Như vậy logic block là tên chung để gọi tất cả các khối bao gồm những khối chương trình tổ chức OB, khối chương trình FC, khối hàm FB.

Trong các loại khối chương trình đó thì chỉ có khối duy nhất khối OB1 được thực hiện trực tiếp theo vòng quét. Nó được hệ điều hành gọi theo chu kỳ lặp với khả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 vào vòng quét.

Với tổ chức chương trình như vậy thì phần chương trình trong khối OB1 có đầy đủ điều kiện của một chương trình điều khiển thời gian thực và toàn bộ chương trình ứng dụng có thể chỉ cần viết trong OB1 là đủ như hình vẽ sau.

Cách tổ chức chương trình với chỉ một khối OB1 duy nhất như vậy được gọi là lập trình tuyến tính.

OB1 thực hiện theo vòng quétOB10 Ngắt ở thời điểm định trướcOB82 Modulechuẩn đoán lỗi

Khối OB1 được hệ thống gọi xoay vòng liên tục theo vòng quét.

Các khối OB khác không tham gia vào vòng quét được gọi bằng những tín hiệu báo ngắt. S7-300 có nhiều tín hiệu báo ngắt như tín hiệu báo ngắt khi có sự cố nguồn nuôi, có sự cố chập mạch ở các modul 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 khối OB nhất định. Ví dụ tín hiệu báo ngắt sự cố nguồn nuôi chỉ gọi khối OB81, tín hiệu báo ngắt truyền thông chỉ gọi khối OB87.

Mỗi khi xuất hiện tín hiệu báo ngắt hệ thống sẽ 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 trong OB1, và chuyển sang thực hiện chương trình xử lý ngắt tong các khối OB tương ứng. Ví dụ khi đang thực hiện chương trình trong khối OB1 mà xuất hiện ngắt báo sự cố truyền thông, hệ thống sẽ tạm dừng việc thực hiện chương trình trong OB1 lại để gọi chương trình trong khối truyền thông OB87. Chỉ sau khi đã thực hiện xong chương trình trong khối OB87 thì hệ thống mới quay trở về thực hiện tiếp tục phần chương trình còn lại trong OB1.

2.2  Lập trình cấu trúc

Với kiểu lập trình có cấu trúc thì khác vì toàn bộ chương trình điều khiển được chia nhỏ thành các khối FC và FB mang một nhiệm vụ cụ thể riêng và được quản lý chung bởi những khối OB. Kiểu lập trình này rất phù hợp cho những bài toán phức tạp, nhiều nhiệm vụ và lại rất thuận lợi cho việc sửa chữa sau này.

 
OB1 FB FB FB FC SFB SFC DB DB DB DB
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ụ: OB10, OB85, ...

Khối FC (Program Block): Khối chương trình với những chức năng riêng giống như 1 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 một số nguyên sau nhóm kí tự FC.
Ví dụ: FC1,FC2….

Khối FB (Function Block): Là loại khối FC đặc biệt có khả năng trao đổi 1 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 phhả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…
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. Ví dụ: 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à chương trình con này gọi một chương trình con khác và từ mộ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 đang sử dụng. Ví dụ đối với module CPU 314 thì số lệnh gọi lồng nhau nhiều nhất có thể cho phép là 8.Nếu số 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 qua chế độ Stop và đặt cờ báo lỗi.

2.3. Các khối OB đặc biệt

Trong khi khối OB được thực hiện đều đặn ở từng vòng quét trong giai đoạn thực hiện chương trình thì các khối OB khác chỉ được thực hiện khi xuất hiện tín hiệu báo ngắt tương ứng ,nói cách khác chương trình viết cho các khối OB này chính là chương trình xử lí tín hiệu ngắt (event).Chúng bao gồm:

OB10 ( Time of Day Interrupt):Chương trình trong khối sẽ được thực hiện khi giá trị của đồng hồ thời gian thực nằm trong một khoảng thời gian đã được quy định. OB10 có thể gọi một lần ,nhiều lần cách đều nhau từng phút, từng giơ,từng ngày ….Việc quy định khoảng thời gian hay số lần gọi OB10 được thực hiện nhờ chương trình hệ thống SFC28 hoặc trong bảng tham số của module CPU nhờ phần mềm Step 7.
OB20 ( Time Day Interrupt): Chương trình trong khối sẽ được thực hiện sau một khoảng thời gian trễ đặt trước kể từ khi gọi chương trình hệ thống SFC32 để đặt thời gian trễ.
OB35 (Cyclic Interrupt): Chương trình trong OB35 sẽ được thực hiện cách đều nhau 1 khoảng thời gian cố định.Mặc định khoảng thời gian này sẽ là 100ms,xong ta có thể thay đổi nó trong bảng tham số của module CPU ,nhờ phần mềm Step7.
OB40 (Hardware Interrupt) : Chương trình trong OB sẽ được thực hiện khi xuất hiện 1 tín hiệu báo ngắt từ ngoại vi đưa vào module CPU thông qua các cổng vào ra số onboard đặc biệt,hoặc thông qua các module SM,CP,FM OB80 (Cycle Time Fault): Chương trình trong khối OB80 sẽ được thực hiện khi thời gian vòng quét(Scan time) vượt quá khoảng thời gian cực đại đã được quy định hoặc khi có một tín hiệu ngắt gọi một khối OB nào đó mà khối OB này chưa kết thúc ở lần gọi trước.Mặc định thời gian Scan time cực đại là 150ms ,nhưng có thể thay đổi nó thông qua bảng tham số của module CPU nhờ phần mềm Step 7.
OB81 (Power Supply fault): CPU sẽ gọi chương trình trong khối OB81 khi phát hiện thấy có lỗi về nguồn nuôi.
OB82( Diagnostic Interrupt):Chương trình trong OB82 được gọi khi CPU phát hiện sự cố từ các Modul vào ra
OB85( Not Load fault):Chương trình trong OB82 được gọi khi CPU phát hiện thấy chương trình ứng dụng có sử dụng chế độ ngắt nhưng chương trình sử lí tín hiệu ngắt lại không có trong khối OB tương ứng.
OB87 ( Communication fault):Khối OB87 sẽ được gọi khi CPU phát hiện thấy lỗi trong truyền thông ví dụ như không có tín hiệu trả lời từ các đối tác.
OB100 ( Start Up Information):Khối OB100 sẽ được thực hiện 1 lần khi CPU chuyển trạng thái Stop sang Run.
OB121 ( Synchronous error):Khối OB121 sẽ được gọi khi CPU phát hiện thấy lỗi logic trong chương trình như đổi sai kiểu dữ liệu hoặc lỗi truy nhập khối DB ,FC,FB không có trong bộ nhớ CPU.
OB122 ( Synchronous error):Khối OB122 sẽ được gọi khi CPU phát hiện thấy lỗi truy cập module trong chương trình,ví dụ chương trình có lệnh truy nhập module vào ra mở rộng nhưng lại không tìm thấy module này.
SFB: System Function block
 

Nguồn tin: Sưu tầm
Đánh giá bài viết
Tổng số điểm của bài viết là: 0 trong 0 đánh giá
Click để đánh giá bài viết

Ý kiến bạn đọc

Mã an toàn:   Mã chống spam Thay mới