Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 4 Hình 1.2: Ví dụ hoạt động bằng Reset và Start HSC sử dụng một Sharf encoder để xác định xác định số xung trên một vòn
Trang 1Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 1
Số lượng HSC và tần số tối đa một số loại CPU:
4 counter total 4 counter total 6 counter total
Single phase 4 at 30 KHz 4 at 30 KHz 6 at 30 KHz
Two phase 2 at 20 KHz 2 at 20 KHz 4 at 20 KHz
Có khả năng làm việc với tần số lớn nên bộ đếm tốc độ cao được ứng dụng để điều khiển trong một số trường hợp như đếm số vòng quay của động cơ bằng encoder, kiểm tra tốc độ, vị trí động cơ,…
Hình 1.1: Encoder được gắn đồng trục với động cơ để đếm vòng quay
Các chân đếm tốc độ cao của PLC S7-200 tích hợp chung với các chân ngõ vào Các bộ đếm có nhiều chân chức năng, có nhiều chế độ hoạt động khác nhau Tuy nhiên,
sự hạn chế về thời gian vòng quét của PLC nên chương trình bộ đếm tốc độ cao sẽ không được thực hiện tại chương trình chính
Trang 2Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 2
Cần phải sử dụng lệnh HDEF trước khi thực hiện cho mỗi HSC
Trang 3Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 3
Tùy theo CPU mà có thông số N của các HSC khác nhau Có tối đa 6 HSC, được xác định từ HSC0 đến HSC5
Chú ý:
CPU 221 và CPU 222 không hỗ trợ HSC1 và HSC2
Chỉ có một lệnh HDEF có thể sử dụng trên một Counter
Có thể có tới 6 bộ HSC tùy theo CPU
1.3 Hoạt động HSC
Mỗi bộ HSC có các ngõ vào xác định hỗ trợ các chức năng: xung clock, hướng điều khiển, reset, start Trong chế độ đếm 2 pha, cả hai xung clock có thể hoạt động ở tốc độ lớn nhất Còn trong chế độ một phần tư (quadrature), thì tùy ý chọn hoạt động theo kiểu 1x hoặc 4x Tất cả các HSC hoạt động ở tốc độ lớn nhất khi không giao tiếp với các hoạt động khác
Hình 1.2: Ví dụ hoạt động có Reset mà không có Start
Trang 4Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 4
Hình 1.2: Ví dụ hoạt động bằng Reset và Start
HSC sử dụng một Sharf encoder để xác định xác định số xung trên một vòng quay
và reset số xung đó trên một vòng quay Số xung clock và xung reset từ sharf encoder cung cấp đến các ngõ vào của HSC Đặt giá trị đếm xung tương ứng PV, khi số xung hoạt động CV bằng với PV thì xảy ra ngắt, một giá trị đặt PV mới sẽ được setup
1.4 Các HSC và MODE hoạt động
1.4.1 Các HSC
S7-200 có 6 bộ đếm tốc độ cao từ HSC0 đến HSC5 Các ngõ vào trong PLC tương ứng với clock, hướng điều khiển, start và reset Các chức năng ngõ vào này và mode HSC được cho bảng sau:
Trang 5Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 5
Hoặc có thể trình bày ở bảng sau:
1.4.2 Các MODE
Tùy từng loại ứng dụng mà ta có thể chọn nhiều Mode đọc xung tốc độ cao khác nhau, có tất cả 12 mode đọc xung tốc độ cao
Mode 0,1,2: Dùng đếm một pha với hướng đếm được xác định bởi bit nội
Mode 0: Chỉ đếm tăng hoặc giảm, không có bit Start cũng như bit Reset
Mode 1: Đếm tăng hoặc giảm, có bit reset nhưng không có bit start
Mode 2: Đếm tăng hoặc giảm, có bit start cũng như bit reset để cho phép chọn bắt
đầu đếm cũng như chọn thời điểm bắt đầu reset Các bit start cũng như reset là các ngõ Input lựa chọn từ bên ngoài
Trang 6Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 6
Mode 3,4,5: Dùng đếm 1 pha với hướng đếm được xác định bởi Bit ngoại, tức là có
thể chọn từ ngõ vào input
Mode 3: Chỉ đếm tăng hoặc giảm, không có Bit Start cũng như bit Reset
Mode 4: Đếm tăng hoặc giảm, có bit Reset nhưng không có bit Start
Mode 5: Đếm tăng hoặc giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt
đầu đếm cũng như chọn thời điểm bắt đầu Reset Các Bit Start cũng như Reset là các ngõ Input chọn từ bên ngoài
Trang 7Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 7
Mode 6,7,8: Dùng đếm 2 pha với 2 xung vào, 1 xung dùng để đếm tăng và một
xung đếm giảm
Mode 6: Chỉ đếm tăng giảm, không có Bit Start cũng như bit Reset
Mode 7: Đếm tăng giảm, có bit Reset nhưng không có bit Start
Mode 8: Đếm tăng giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt đầu
đếm cũng như chọn thời điểm bắt đầu Reset Các Bit Start cũng như Reset là các ngõ Input chọn từ bên ngoài
Trang 8Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 8
Mode 9,10,11 : Dùng để đếm xung A/B của Encoder, có 2 dạng:
Dạng 1 (Quadrature 1x mode): Đếm tăng 1 khi có xung A/B quay theo chiều thuận,
và giảm 1 khi có xung A/B quay theo chiều ngược
Dạng 2 (Quadrature 4x mode): Đếm tăng 4 khi có xung A/B quay theo chiều thuận,
và giảm 4 khi có xung A/B quay theo chiều ngược
Mode 9: Chỉ đếm tăng giảm, không có Bit Start cũng như bit Reset
Mode 10: Đếm tăng giảm, có bit Reset nhưng không có bit Start
Mode 11: Đếm tăng giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt đầu
đếm cũng như chọn thời điểm bắt đầu Reset Các Bit Start cũng như Reset là các ngõ Input chọn từ bên ngoài
Mode 12: Chỉ áp dụng với HSC0 và HSC3, HSC0 dùng để đếm số xung phát ra từ
Q0.0 và HSC3 đếm số xung từ Q0.1 ( Được phát ra ở chế độ phát xung nhanh) mà không cần đấu phần cứng, nghĩa là PLC tự kiểm tra từ bên trong
Cụ thể các Mode tương ứng với mỗi HSC như sau:
Mode HSC0 (CPU 221, 222, 224, 226)
Trang 9Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 9
Mode HSC1 (CPU 224, 226)
Mode HSC2 (CPU 224, 226)
Trang 10Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 10
Mode HSC3 (CPU 221, 222, 224, 226)
Mode HSC4 (CPU 221, 222, 224, 226)
Mode HSC5 (CPU 221, 222, 224, 226)
1.5 Quản lý dữ liệu của HSC
Để truy xuất giá trị đếm cho HSC, cần phải xác định địa chỉ của HSC bằng cách sử dụng các loại vùng nhớ HSC và số counter (ví dụ HSC0) Giá trị hiện hành của HSC là giá trị chỉ đọc và có địa chỉ ở dạng double word
Dạng: HC[Số HSC]
Trang 11Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 11
1.5.2 Chọn trạng thái tác động và mode 1x và 4x
Bốn counter có 3 bit điều khiển sử dụng trạng thái tác động reset và start các ngõ vào và để chọn mode đếm 1x hoặc 4x Các bit này chỉ được sử dụng khi lệnh HDEF được thực thi
SM37.0 SM47.0 SM57.0 SM147.0 Chọn mức logic tích cực cho tín hiệu reset:
0 = tích cực mức 1, 1 = tích cực mức 0 - SM47.1 SM57.1 - Chọn mức logic tích cực cho tín hiệu Start:
0 = tích cực mức 1, 1 = tích cực mức 0 SM37.2 SM47.2 SM57.2 SM147.2 Chọn mức đếm cho chế độ ¼ chu kỳ:
0 = mức đếm 4x, 1 = mức đếm 1x
1.5.2 Byte điều khiển
Mỗi HSC có một byte điều khiển cho phép counter hoạt động hay không Bảng địa chỉ mô tả các bit điều khiển
SM37.3 SM47.3 SM57.3 SM137.3 SM147.3 SM157.3 Bit nhớ điều khiển chiều đếm:
0 = đếm lùi, 1 = đếm lên SM37.4 SM47.4 SM57.4 SM137.4 SM147.4 SM157.4 Cập nhật chiều đếm vào HSC:
0 = không cập nhật, 1 = cập nhật SM37.5 SM47.5 SM57.5 SM137.5 SM147.5 SM157.5 Ghi giá trị đặt trước mới cho HSC:
0 = không cập nhật, 1 = cập nhật SM37.6 SM47.6 SM57.6 SM137.6 SM147.6 SM157.6 Ghi giá trị tức thời mới cho HSC:
0 = không cập nhật, 1 = cập nhật SM37.7 SM47.7 SM57.7 SM137.7 SM147.7 SM157.7 Cho phép HSC hoạt động:
0 = không cho phép, 1 = cho phép
Trang 12Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 12
1.5.3 Sắp đặt các giá trị hiện hành CV và giá trị đặt PV
Mỗi HSC có một giá trị hiện hành 32 bit và giá trị đặt 32 bit Cả hai giá trị này là các giá trị nguyên có dấu Để load giá trị hiện CV hoặc PV mới vào HSC, cần phải setup byte điều khiển và byte nhớ đặc biệt Khi đó cần phải thực hiện lại lệnh HSC Bảng sau
mô tả các byte nhớ đặc biệt sử dụng để nạp các giá trị CV và PV mới
1.5.4 Byte trạng thái
Được cung cấp cho mỗi HSC từ các bit nhớ trạng thái để chỉnh định hướng đếm hiện hành và giá trị đếm có lớn hơn hoặc giá trị đặt Bảng sau định nghĩa các bit trạng thái cho mỗi HSC
1.6 Cấu trúc chương trình sử dụng bộ đếm tốc độ cao
Do phải đọc các xung đếm xảy ra với tần số lớn nên bộ đếm tốc độ cao không thể thực hiện tại chương trình chính do sự hạn chế về tốc độ của vòng quét (Scan rate) của PLC Bộ đếm tốc độ cao sẽ được quy định và cho phép hoạt động trong một chương trình con (subroutline)
Lưu đồ mô tả chương trình sử dụng bộ đếm tốc độ cao:
Trang 13Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 13
Bước 1:
Khởi tạo chương trình con “HSC_Subroutline”
Trong chương trình con này ta quy định các đặc tính cho HSC như:
• Chế độ đếm (Mode)
• Chiều đếm (Direction)
• Giá trị đặt trước (Preset Value)
• Giá trị tức thời (Current Value)
• Điều kiện ngắt tốc độ cao,…
Bước 2:
Tại chương trình chính “Main” ta gọi chương trình con “HSC_Subroutline”
Bằng cách này ta cho phép HSC hoạt động theo các đặc tính định sẵn
Bước 3:
Tác vụ đếm của bộ đếm tốc độ cao sẽ diễn ra song song với tác vụ của chương trình chính
Bước 4:
Trong quá trình hoạt động của chương trình đếm tốc độ cao sẽ xảy ra ngắt
“Interrup” với các điều kiện ngắt như sau:
• Khi CV=PV
• Khi có tín hiệu thay đổi chiều đếm lên – xuống từ ngõ vào
• Khi có tín hiệu xóa (reset) từ ngõ vào
Trang 14Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 14
Trang 15Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 15
1.7 Sử dụng Wizards của Step7-MicroWin V4.0 để khai báo sử dụng HSC
Trong chương trình Step7 – Microwin 4.0 chứa một trình hỗ trợ thiết lập chương trình con HSC và chương trình ngắt tốc độ cao
Cách truy xuất như sau: Wizards → High Speed Counter
Sau khi đã gọi được trình hỗ trợ ta tiến hành thiết lập bộ đếm tốc độ cao theo từng giai đoạn:
Khai báo HSC:
Trang 16Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 16
- Chọn bộ đếm tốc độ cao (HSC)
- Chọn chế độ (Mode) hoạt động cho HSC
Nhấn Next để tiếp tục khai báo giá trị đếm, chiều đếm cho HSC:
- Đặt tên cho chương trình con HSC
- Đặt giá trị đếm đích PV
- Đặt giá trị đếm tức thời CV
- Đặt chiều đếm (lên – xuống)
- Đặt chế độ cho tín hiệu Start, Reset
- Chọn chế độ đếm lệch pha ¼ chu kỳ
Chọn bộ đếm tốc độ cao
Chọn chế độ hoạt động
Trang 17Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 17
Nhấn Next để khai báo chương trình ngắt tốc độ cao:
- Đặt tên chương trình ngắt tốc độ cao
- Khai báo số lượng các chương trình ngắt liên tục
Tên chương trình con
Giá trị đặt trước Giá trị tức thời Chiều đếm Đặt mức tích cực cho Start, reset Chế độ đếm lệch pha ¼ chu kỳ
Chương trình ngắt khi CV=PV
Số lượng chương trình ngắt
Trang 18Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 18
Nếu tích chọn chương trình ngắt CV = PV, và số lượng chương trình ngắt là 1 thì nhấn Next sẽ xuất hiện bảng khai báo cập nhật giá trị đếm mới cho HSC trong chương trình ngắt:
Khai báo các hành động xảy ra trong chương trình ngắt tốc độ cao:
- Khởi tạo chương trình ngắt kế tiếp
- Đặt lại giá trị đếm đích PV (Preset value)
- Cập nhật lại giá trị đếm tức thời (Current value)
- Thay đổi chiều đếm
Nhấn Next để tiếp tục
Cập nhật giá trị đặt trước
Cập nhật giá trị tức thời
Cập nhật chiều đếm
Trang 19Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 19
Nhấn Finish để hoàn thành quá trình khai báo chương trình HSC
II THỰC HÀNH
Bài 1: Sử dụng bộ đếm tốc độ cao để đọc số xung kênh A của encoder
Bước 1: Tìm hiểu phần cứng
Ta sử dụng encoder có gắn sẵn trên động cơ servo DC Thông số động cơ servo DC: Điện
áp 24V DC, công suất 25W, tốc độ 1400 vòng/phút, nguồn encoder 5V DC, số xung encoder: 200 xung/vòng
Trang 20Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 20
Với thông số trên ta tính được tần số xung encoder phát ra:
f = n*số xung/vòng = 1400.200 4367 4, 367
60 ≈ Hz= kHZNguồn encoder phát ra là 5V nhưng nguồn vào input PLC là 24V (sử dụng CPU 224 DC/DC/DC) vì vậy sử dụng mạch nâng áp 5V → 24V với tần số 4, 367 kHZ Sơ đồ nguyên lý mạch như sau:
Bước 2: Đấu nối phần cứng
+ Cấp nguồn 5V DC cho encoder
+ Nối kênh A của encoder với mạch nâng áp (mạch kích), cấp nguồn 5V/1A DC và 24V/1A DC cho mạch nâng áp
+ Nối đầu ra OUT 24V của mạch nâng áp với I0.6 (sử dụng HSC1, Mode 0) và chân âm đầu ra mạch nâng áp với chân M của input PLC
Bước 3: Lập trình trên PLC S7-200
Để thuận tiện ta khai báo bộ đếm tốc độ cao bằng Wizards/High speed counter:
Trang 21Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 21
Chọn HSC1 và Mode 0 như hình và nhấn Next
Trang 22Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 22
Nhấn Next để tiếp tục:
Nhấn Finish để hoàn thành việc khai báo, ta có được chương trình con: ‘HSC_INT’
Trang 23Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 23
Giao diện Step7 MicroWin V4.0 khi có thêm chương trình con ‘HSC_INT’
Chương trình chính (Main):
Bước 4: Dowload và giám sát
+ Dowload chương trình và giám sát trên giao diện Step7 MicroWin V4.0 để đọc giá trị của HC0
+ Dùng tay quay trục động cơ và quan sát giá trị của HC0
Trang 24Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 24
Bài 2: Khai báo bộ đếm xung tốc độ cao, bộ HSC1 Khi nhấn Start thì động cơ M hoạt động, đồng thời khai báo bộ đếm HSC1 Khi động cơ quay 50 vòng thì động cơ dừng
Bước 1: Đấu nối phần cứng
+ Cấp nguồn 5V DC cho encoder
+ Nối kênh A của encoder với mạch nâng áp (mạch kích), cấp nguồn 5V/1A DC và 24V/1A DC cho mạch nâng áp
+ Nối đầu ra OUT 24V của mạch nâng áp với I0.6 (sử dụng HSC1, Mode 0) và chân âm đầu ra mạch nâng áp với chân M của input PLC
+ Nối chân Q0.5 điều khiển động cơ như sau:
Rơle
Trang 25Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 25
Trang 26Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 26
Bài 3: Đo tốc độ quay của động cơ
Bước 1: Phân tích bài toán
Ta sử dụng HSC1 để đọc xung encoder và để biết được chiều quay của động cơ ta phải đọc 2 kênh A và B, vậy nên ta sẽ sử dụng Mode 9
+Cách đọc tốc độ động cơ như sau:
Số xung encoder là 200 xung/vòng
Sau khoảng thời gian lấy mẫu T = 100 ms = 0,1/60 phút, số xung đọc về ta lưu vào một vùng nhớ (giả sử thanh ghi AC0)
Như vậy trong T phút ta tính được động cơ quay (AC0/200) vòng Từ đây ta có thể tính được động cơ quay được bao nhiêu vòng/phút
Thời gian lấy mẫu ta có thể sử dụng Timed interrupt 0 (SMB34) hay Timed interrupt 1 (SMB35), nếu cần thời gian lấy mẫu lớn hơn ta sử dụng ngắt Timer T32, T96
Bước 2: Kết nối phần cứng (kết nối tương tự như các bài trước)
Kênh A: I0.6
Kênh B: I0.7
Động cơ: Q0.0
Trang 27Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 27
Bước 3: Chương trình
Chương trình chính MAIN:
Network 1:
Nhấn I0.0 khởi động động cơ và reset T32
và gọi chương trình con khai báo HSC
Trang 28Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 28
Chương trình ngắt:
- Chuyển số xung đọc được vào AC0
- SMB47=16#C0: Cho phép đếm, ghi giá trị hiện hành mới
- Chuyển AC0 từ số nguyên sang số thực
Trang 29Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 29
- Chia AC0 cho 2000, kết quả lưu vào AC0
- Nhân AC0 với 60, kết quả lưu vào VD0
- Làm tròn giá trị VD0
- Ghi giá trị hiện hành mới là 0
- Cho phép bộ đếm HSC1 hoạt động và reset T32 để thoát khỏi ngắt
Trang 30Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 30
BÀI 2: HÀM PHÁT XUNG TỐC ĐỘ CAO
Dùng PLC loại DC/DC/DC với ngõ ra transistor cho các bài tập dưới Nếu PLC loại AC/DC/Relay phải phát xung tốc độ chậm
Ngõ ra xung: Q0.0 và Q0.1
1.2 Giới thiệu tổng quát
Mỗi CPU có hai bộ phát PTO/PWM (Pulse Train/Pulse Width Modulation) xuất xung ngõ ra tốc độ cao và độ rộng xung được điều chế thành các dạng sóng Một bộ phát được gán cho ngõ ra số Q0.0 và bộ phát khác được gán ra cho ngõ ra số Q0.1
Hàm chuỗi xung PTO cung cấp xung vuông (chu kỳ 50%) ngõ ra điều khiển thời gian chu kỳ và số xung
Hàm điều chế độ rộng xung PWM cung cấp ngõ ra điều khiển thời gian chu kỳ và
độ rộng xung tùy ý
Mỗi bộ phát xung PTO/PWM có một byte điều khiển (8bit), giá trị thời gian chu kỳ quét và giá trị độ rộng xung (giá trị 16 bit không dấu) và giá trị đếm xung (32 bit không dấu) Những giá trị này được lưu trong vùng nhớ SM
1.3 Hoạt động PWM
Trang 31Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 31
Hàm PWM cung cấp chu kỳ xung ngõ ra thay đổi Thời gian chu kỳ và độ rộng xung có thể xác định ở dạng µs hoặc ms
Thời gian chu kỳ có khoảng từ 10 đến 65.535 µs hoặc từ 2 đến 65.535 ms
Độ rộng xung có khoảng từ 0 đến 65.535 µs hoặc từ 0 đến 65.535 ms
Khi độ rộng xung có giá trị lớn hơn hoặc bằng giá trị chu kỳ thời gian, thì chu kỳ của dạng sóng là 100% và ngõ ra xuất ON Ngược lại, khi độ rộng xung bằng 0, thì chu
Thời gian chu kỳ có khoảng từ 50 đến 65.535 µs hoặc từ 2 đến 65.535 ms
Số đếm xung có khoảng từ 1 đến 4.294.967.295 xung
Trang 32Tài liệu lưu hành nội bộ Trung tâm Điện tử - Tự động hóa Nam Định 32
Cấu trúc Byte điều khiển
PLS_Cycle_Update SM67.0 SM77.0 =1: Cập nhật thời gian của một chu kỳ phát
PLS0_Select SM67.7 SM77.7 =1: cho phép phát xung
Thanh ghi SMW68 và SMW78 đặt các chu kỳ xung cần phát
Thanh ghi SMW70 và SMW80 đặt độ rộng xung Nếu là xung PTO thì bỏ qua lệnh này vì mặc định =1/2 chu kỳ
Thanh ghi SMD72 và SMD82 đặt số xung cần phát Xung PWM không cần đặt vì đây là xung liên tục, không giới hạn số xung dừng
1.6 Lệnh PLS
Lệnh Pulse Output (PLS) được sử dụng để điều khiển hàm phát xung tốc độ cao có sẵn trên hai chân quy định trước
là Q0.0 và Q0.1