Hàm đọc xung tốc độ cao: SFB 47
??? : nơi chứa dữ liệu ( thường là các DB)
Dữ liệu được lưu vào theo nguyên tắc:
LADDR: địa chỉ của kênh đọc xung tốc độ cao ( mặc định W#16#300).
CHANNEL: số kênh; 0-1: CPU 312C, 0-2: CPU 313C, 0-3: CPU 314C.
SW_GATE: bit cho phép đếm.
CTRL_DO: cho phép ngõ ra.
SET_DO: điều khiển ngõ ra.
JOB_REQ: bắt đầu job
JOB_ID: mặc định W#16#0000.
JOB_VAL: giá trị cho việc ghi dữ liệu cho bộ đếm.
STS_GATE: trạng thái cổng bên trong.
STS_STRT: trạng thái cổng bên ngoài.
STS_LTCH: trạng thái ngõ vào chốt.
STS_DO: trạng thái ngõ ra.
STS_C_DN: trạng thái hướng ngược.
STS_C_UP: trạng thái thuận.
COUNTVAL: giá trị đếm hiện tại.
LATCHVAL: giá trị chốt hiện tại.
JOB_DONE: có sự kiện mới bắt đầu.
JOB_ERR: trạng thái lỗi.
JOB_STAT: giá trị lỗi.
STS_CMP: trạng thái so sánh.
STS_OFLW: trạng thái tràn trên.
STS_UFLW: trạng thái tràn dưới.
STS_ZP: trạng thái zero.
JOB_OVAL: giá trị đếm ngõ ra.
RES_STS: bit reset lỗi.
Bài tập ví dụ HSC:
Hàm SFB47 “COUNT” là hàm đếm tốc độ cao của S7-300.
Để lấy hàm SFB47 ta vào Libraries=>system Function block=>SFB47 COUNT TEC_FUNC.
Ví dụ được làm trên CPU 314C-2DP(tốc độ đếm đến 30kH, và có 4kênh: 0,1,2,3). Ngõ vào mật định là I124, I125 ngõ ra mật định là Q124, Q125.
Được khai báo:
LADDR (địa chỉ của COUNT,xem trong phần cứng): bắt đầu là 768 đổi ra số HEX là 300.(có thể thay đổi tuy thuộc phần cứng).
CHANNEL (kênh của HSC): chọn kênh 0.
JOB_ID(địa chỉ chức năng làm việc của HSC):trong bài chon giá trị 0001 để viết giá trị đếm.
JOB_VAL( giá trị ngõ vào để làm việc dạng Dint): chọn MD4.
SW_GATE(chân cho phép HSC đếm): M1.0
CTRL_DO, SET_DO, JOD_RED: là những chân điều khiển ngõ ra.
COUNTVAL ( ngõ ra hiển thị giá trị đếm): được lưu vào MD8
LATCHVAL (chân hiển thị giá trị chốt khi chôt bên ngoài phần cứng): được lưu vào MD20.
JOD_STAT (Chân hiển thị báo giá trị lỗi): được hiển thị ra vùng nhớ MW4
Các chân còn lại của ngõ ra dùng để hiển thị quá trình làm việc và giá trị lỗi của HSC được lưu dưới dạng bit.
Lưu ý :
Để HSC chạy thì phần cứng phải được khai báo. Khai báo theo từng kênh và từng chế độ của HSC.Trong phân cứng chúng ta vào: count
Và để điều khiển HSC nhận xung đếm lên xuống chúng ta phải xem phần cứng hỗ trợ của CPU mình đang sử dụng. Với CPU313C_2DP.
sử dụng kênh 0 nên chân nhận xung là I124.0, chân đảo hướng I124.1, chân chốt dữ liệu I125.4, chân cho phép và cho phép HSC là I124.2
Khi chân làm việc: JOB_DONE=1
Khi cho phép đếm: SW_GATE=1
- Để đo tốc độ động cơ, bác chỉ việc dùng ngắt timer để lấy thời gian lấy mẫu là tính được xung/phút -> vòng/phút thôi.
- Xác định vị trí thì thông qua xác định khoảng cách di chuyển là được. Vùa làm hộ 1 đề tại thạc sy về cái này, bác để lại mail tui gửi bài luận cho
Còn nếu về HSC sử dụng hàm chưa hỉu tôi sẽ gửi bác 1 project cấu hình và dùng hàm đó đếm được.
Đánh dấu