Trong Simatic Manager của Siemens cấu trúc chương trình nó dễ giám sát và thao tác. Chương trình được chia ra các khối chức năng khác nhau như SFB - System function blocks và SFC - System functions là khối hàm hệ thống; FB - Function blocks, FC - Functions là các hàm chức năng của thư vện do Siemens hỗ trợ hoặc người sử dụng tự viết hoặc kế thừa từ người đi trước; ngoài ra các dữ liệu được hỗ trợ loại Instance data block để liên kết với các FB/SFB hay loại Share data Block dùng để lập trình.
Khối tổ chức OB kết nối giữa chương trình với hệ điều hành PLC. OB có thể được gọi theo chu kỳ thời gian hoặc ngắt hay sự cố, hay khi khởi đôgnj PLC. Có nhiều khối OB khác nhau và có mức độ ưu tiên ngắt khác nhau. Khối có mức độ ưu tiên càng cao thì càng ưu tiên hơn khối có số ưu tiên nhỏ hơn. Mỗi khối OB có ưu tiên khác nhau, chức năng nhiệm vụ cũng khác nhau.
OB = Oganization
Trong đó cần phải nói tới các chức năng
Fc = Function: Hàm chức năng
FB = Function block: Khối chức năng
SFC = System Function = Hàm chức năng hệ thống
SFB = System Function Block = Khối hàm chức năng hệ thống
DB = Data block = Khối dữ liệu . Lưu trữ chương trìnhViệc lập trình cho S7_300 được chia thành các khối chương trình khác nhau. Mỗi khối chương trình có điều kiện thực thi khác nhau.
Trong S7_300 có nhiều khối hàm khác nhau, một số khối hàm thông thường như sau:
OB1: khối chương trình thực thi liên tục.
Chương trình viết trong khối OB1 được thực thi liên tục. Nghĩa là, chương trình thực thi theo thứ tự từ trên xuống, bắt đầu ở lệnh đầu tiên cho đến khi gặp lệnh kết thúc thì chương trình quay trở lại thực thi lệnh bắt đầu.
OB100: khối chương trình khởi tạo.
Chương trình viết trong khối này được thực thi một lần duy nhất ở chu kỳ quét đầu tiên của chương trình (lúc chuyển chế độ PLC từ Stop sang Start hay lúc mới mở nguồn cho PLC).
Khối chương trình này có tác dụng khởi tạo một số dữ liệu ban đầu trong hệ thống.
OB30: ngắt 5000ms. Cứ 5000ms thì chương trình viết trong khối này được thực thi một lần.
OB31: ngắt 2000ms.
OB32: ngắt 1000ms.
OB33: ngắt 500ms.
OB34: ngắt 200ms.
OB35: ngắt 100ms.
OB36: ngắt 50ms.
OB37: ngắt 20ms.
OB38: ngắt 10ms.
Trong các khối chương trình ngắt thời gian từ OB30 đến OB38, chỉ duy nhất có OB35 là khối chương trình mà khoảng thời gian ngắt ta có thể cài đặt lại (thay vì là 100ms như mặc định).1/ Ngắt thời gian
Có 8 OB từ OB10 đến OB17 gây ngắt ở một thời điểm xác định. Có thể cài đặt để các ngắt này xảy ra một lần hay theo chu kỳ hàng giờ, hàng ngày, hàng tuần, hàng thang bằng cách dung phần mềm Step7 Manager cấu hình trong PLC hay dung các hàm hệ thống. Số các ngắt sử dụng được tùy thuộc vào loại CPU mình đang sử dụng.
Giả sử ta đã cài cấu hình PLC CPU 318 cho project. Trong cửa sổ Project bấm vào hardware chọn Slot CPU mở ra cửa sổ Time of Day Interrups.
- Cột priority: không thay đổi được.
- Cột active: bấm chọn để tích cực OB tương ứng
- Cột Execution: có các tùy chọn None (ko tác động), One (tác động 1 lần), Every minute, hour, day, week, month, year (theo chu kì) và end of month (cuối tháng)
- Cột Start Date và Time of Day: ghi ngày (mm.dd.yy) và giờ (hh:mm) bắt đầu gây ra ngắt. Nếu cài đặt xảy ra một lần thì ngày giờ này phải là tương lai so với giờ của PLC.
Nếu đã cài đặt các thông số xong, ta trở lại Project thêm vào khối OB ngắt tương ứng (ví dụ OB10), mở khối ra và lập trình cho khối. Các thông số và chương trình sẽ được truyền xuống PLC khi thực hiện download. Nếu trong chương trình không có khối OB tương ứng khi được gọi đến thì sẽ gây sự cố gọi OB85, nếu chưa cài OB85 thì PLC Stop.
Giờ của PLC cần phải chỉnh cho chính xác, với máy tính lập trình kết nối PLC, vào menu PLC- Diplay Accessible Nodes- MPI, sau đó chọn PLC- Set Time of Day .
Sau đây giới thiệu về cài đặt ngắt bằng chương trình. Trước hết trong cột Active ta phải tích cực OB, sau đó phải có khối OB đó trong Project; các hàm SFC 28 đến SFC 31 được sử dụng trong chương trình với các chức năng sau:
- Cài đặt thông số ngắt thời gian (SFC28 "SET_TINT")
- Hùy bỏ ngắt thời gian (SFC29 "CAN_TINT")
- Tích cực ngắt thời gian (SFC30 "ACT_TINT")
- Truy vấn (query) ngắt thời gian (SFC31 "QRY_TINT")
Trước khi khối OB ngắt thời gian được thực hiện, phải thỏa các điều kiện sau:
- Đặt ngày giờ dùng STEP 7 hay SFC28
- Tích cực dùng STEP 7 hay SFC30
- Cài đặt OB trong Project- Sory bro H nhé, toàn bộ tài liệu trên áp dụng cho S7-1200 được không. Hoặc bro có tài liệu y chang như trên dành cho S7-1200 thì hay quá.Xin hỏi anh Tran_Hieu và mọi người một chút là: khối DB trong các hàm SFB có mục đích gì? Theo Lang_Tu.TM thì nó dùng để lưu trữ các giữ liệu trong hàm SFB, vậy các dữ liệu này tại sao mình không sử dụng được. Hay nói cách khác là, khi sử dụng DB trong các hàm SFB thì nó tự động tạo ra các vùng dữ liệu trong khối DB, các vùng dữ liệu này có thể sử dụng cho mục đích đọc hoặc ghi tới các vùng nhớ khác được không? thank anh Tran_Hieu và mọi người đã giúp đỡ.
Đánh dấu