-
Little PLC
Tổng quan về OB, FC, FB, SFB, SFC
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ình
Lần sửa cuối bởi tran_hieu0983, ngày 03-25-2011 lúc 12:37 AM.
-
The Following 2 Users Say Thank You to tran_hieu0983 For This Useful Post:
-
Thành viên Đồng
sử dụng nó thế nào trong lập trình vậy anh Hiếu, anh lấy ví dụ và giải thích rõ hơn đc không ạ. thank anh
-
-
Little PLC
Việ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).
-
The Following 3 Users Say Thank You to tran_hieu0983 For This Useful Post:
-
Thành viên Mới
chào mọi người! em có ví dụ về sử dụng hàm FC,DB,FB trong S7-300,mọi người hướng dẫn giúp e với.
"Điều khiển đèn giao thông cho hai ngã tư ( thời gian cho các đèn tùy ý)sử dụng cpu 312c điều khiển ngã tư 1.cpu 314DP điều khiển ngã tư 2,yêu cầu viết chương trình theo hàm FC theo thời gian (giờ cao điểm, thấp điểm.)dùng hàm FB và DB để trao đổi dữ liệu với cpu 312c"
-
-
Little PLC
Gửi bởi
tanvns1703
chào mọi người! em có ví dụ về sử dụng hàm FC,DB,FB trong S7-300,mọi người hướng dẫn giúp e với.
"Điều khiển đèn giao thông cho hai ngã tư ( thời gian cho các đèn tùy ý)sử dụng cpu 312c điều khiển ngã tư 1.cpu 314DP điều khiển ngã tư 2,yêu cầu viết chương trình theo hàm FC theo thời gian (giờ cao điểm, thấp điểm.)dùng hàm FB và DB để trao đổi dữ liệu với cpu 312c"
Mình nghĩ nên chọn hướng đồ án và luận văn thực tế hơn với ứng dụng thật của PLC chứ nếu dùng PLC mà điều khiển đèn giao thông làm ứng dụng thì quá lãng phí. CÒn về trao đổi dữ liệu nếu dùng profibus thì cần khối trao đổi chứ nếu dùng MPI truyền thông thì không cần khối dữ liệu
-
Bài viết của "tran_hieu0983" đã được cám ơn bởi các thành viên:
-
Little PLC
Tôi nghĩ rằng không cần phải sử dụng tới 2 CPU để sử lý đèn giao thông đâu bạn. Với lại tôi đã có bài viết cho ví dụ về xứ lý thời gian thực đèn giao thông với 2 cột đèn. Nếu tôi không nhầm thì bạn đang làm đồ án hay bài tập lớn về đề bài này. Mọi vấn đề này phải tự bạn làm và khó khăn thì hỏi chứ quy định forum là không giúp đỡ kiểu bạn yêu cầu. Nếu bạn viết chương trình và khó khăn thì chúng tôi giúp. Bạn đọc lại quy định forum
-
Bài viết của "tran_hieu0983" đã được cám ơn bởi các thành viên:
-
Little PLC
-
Bài viết của "tran_hieu0983" đã được cám ơn bởi các thành viên:
-
Little PLC
-
Bài viết của "tran_hieu0983" đã được cám ơn bởi các thành viên:
-
Little PLC
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
-
The Following 4 Users Say Thank You to tran_hieu0983 For This Useful Post:
-
Thành viên Mới
Chào anh!
Em đang làm cái đồ án Điều khiển bồn nước đơn bằng fuzzy mờ. Em đang bị một lỗi là không kết nối được Fuzzy V5++ với S7-300. Báo lỗi là thiếu file s723.dll. Anh có thể giúp em, em cảm ơn anh nhiều.
-
Tag của Chủ đề này
Quyền viết bài
- Bạn Không thể gửi Chủ đề mới
- Bạn Không thể Gửi trả lời
- Bạn Không thể Gửi file đính kèm
- Bạn Không thể Sửa bài viết của mình
-
Nội quy - Quy định
Back to Top
Múi giờ GMT +7. Bây giờ là 02:32 PM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu