Đo tốc độ động cơ KĐB 3 pha có xác định chiều quay dùng bộ đếm tốc độ cao HSC trong PLC S7 200. dải đo 0 1500 vòng/phút. ............................................................................................................................................................................................................................................................................................................................................................................................
Trang 1MỤC LỤC
Trang 2CHƯƠNG 1 BỘ ĐẾM TỐC ĐỘ CAO
1.1. Tổng quan về PLC S7-200
- PLC ( Programmable Logic Controller ): Bộ điều khiển lập trình, PLCđược xếp vào trong họ máy tính, được sử dụng trong các ứng dụng côngnghiệp và thương mại S7-200 là thiết bịcủa hãng Siemens, cấu trúc theo kiểumodul có các modul mở rộng
- Toàn bộ nội dung chương trình được lưu trong bộ nhớ của PLC, trongtrường hợp dung lượng bộ nhớ không đủ ta có thể sử dụng bộ nhớ ngoài để lưuchương trình và dữ liệu(Catridge )
- Dòng PLC S7-200 có hai họ là 21X ( loại cũ) và 22X ( loại mới), trong đó
họ 21X không còn sản xuất nữa.Họ 21X có các đời sau:210, 212, 214, 215-2DP,216; họ 22X có các đời sau:221, 222, 224, 224XP, 226, 226XM
- PLC đặt biệt sử dụng trong các ứng dụng hoạt động logic điều khiển chuổi sự kiện
- PLC có đầy đủ chức năng và tính toán như vi xử lý Ngoài ra, PLC cótích hợp thêm một số hàm chuyên dùng như bộ điều khiển PID, dịch chuyểnkhối dữ liệu, khối truyền thông,…
- PLC có những ưu điểm:
+ Có kích thước nhỏ, được thiết kế và tăng bền để chịu được rung động,nhiệt, ẩm và tiếng ồn, đáng tin cậy
+ Rẻ tiền đối với các ứng dụng điều khiển cho hệ thống phức tạp
+ Dễ dàng và nhanh chống thay đổi cấu trúc của mạch điều khiển
+ PLC có các chức năng kiểm tra lỗi, chẩn đoán lỗi
+ Có thể nhân đôi các ứng dụng nhanh và ít tốn kém
Trang 3• Cấu trúc bên trong của PLC
Hình 1.1.1 cấu trúc bên trong của PLCMột hệ thống lập trình cơ bản phải gồm có 2 phần: Khối xử lý trung tâm(CPU: Central Processing Unit) và hệ thống giao tiếp vào/ra ( I/O)
• Cách đấu nối ngõ vào ra PLC:
Trang 4Hình 1.1.2 cách đấu nối ngõ ra PLC
• Cổng truyền thông:
Chân 1: nối đất
Chân 2: nối nguồn 24VDC
Chân 3: truyền và nhận dữliệu
Chân 4: không sửdụng
Chân 5: đất
Chân 6: nối nguồn 5VDC
Chân 7: nối nguồn 24VDC
Chân 8: Truyền và nhận dữliệu
Trang 5- Phương pháp hình thang (LAD)
- Phương pháp liệt kê lệnh (STL)
- Phương pháp theo dạng dữ liệu hình khối (DB)
Trong đồ án chúng em sử dụng phương pháp hình thang (LAD)
LAD là 1 ngôn ngữ lập trình bằng đồ họa Những thành phần cơ bảndùng trong LAD tương ứng với các thành phần của bảng điều khiểnbằng rơle
+ Mạng LAD: là các đường nối các phần tử thành 1 mạch hoàn thiện,
đi từ đường nguồn bên trái sang dường nguồn bên phải đường nguồnbên trái là dây nóng, cấp (đường nguồn bên phải thường không thựcđược thể hiện khi dùng chương trình tiện dụng STEP7-Micro/Doshoặc Micro/win)
1.2. Các loại bộ đếm của S7-200-CPU 224
S7-200-CPU 224 có 2 loại bộ đếm đó là bộ đếm thường và bộ đếm tốc
- Số lượng bộ đếm HSC có trong S7-200-CPU 224 và tần số tối đa chophép
Trang 6Bảng 1.2.1 bộ đếm và tần số ngõ vào tối đa cho phép
1.3. Bộ đếm tốc độ cao của S7-200-CPU224
1.3.1. Nguyên tắc hoạt động của bộ đếm HSC
a. Định nghĩa bộ đếm tốc độ cao ( High-speed counter defination ) :
Lệnh dùng định nghĩa bộ đếm tốc độ cao HDEF(High speed counterDefination) sẽ cho phép chọn chế độ hoạt động của một bộ đếm tốc độ cao cụthể (HSCx) Chế độ hoạt động sẽ quyết định xung vào, chiều đếm, tín hiệu bắtđầu, và chức năng reset của một bộ đếm tốc độ cao
Ta sử dụng một lệnh định nghĩa bộ đếm tốc độ cao cho mỗi bộ đếm tốc độcao
Các điều kiện gây ra lỗi sẽ set bit ENO = 0
0003 ( đầu vào xung đột )
0004 ( lệnh trong chương trình ngắt không hợp lệ )
000A ( bộ đếm cần được định nghĩa lại )
b. Bộ đếm tốc độ cao ( High speed counter – HSC ) :
Lệnh khai báo bộ đếm tốc độ cao HSC cấu hình và điều khiển bộ đếm tốc độcao nhờ vào các bit nhớ đặc biệt của bộ đếm tốc độ cao đó Tham số N chỉ ra bộđếm tốc độ cao đang sử dụng là bộ đếm bao nhiêu Bộ đếm tốc độ cao có thểđược cấu hình lên tới 12 chế độ hoạt động khác nhau
Mỗi bộ đếm được cung cấp đầu vào cho xung clock, điều khiển hướng đếm,tín hiệu reset và bắt đầu mà bộ đếm đó hỗ trợ Đối với những bộ đếm 2 pha thì
cả hai đầu vào xung có thể chạy ở tốc độ cực đại của chúng Trong chế độ nhântốc thì bạn có thể chọn chế độ nhân 1 hoặc nhân 4 tốc độ cực đại Tất cả các bộđếm chạy ở tốc độ cực đại mà không ảnh hưởng tới bộ đếm khác
Điều kiện gây ra lỗi sẽ set ENO = 0
Trang 70001 ( lệnh HSC đặt trước HDEF )
0005 ( sử dụng đồng thời HSC/PLS )
Bộ đếm tốc độ cao đếm các sự kiện mà tốc độ của nó vượt khỏi tầm kiểmsoát của vòng quét S7-200 Tấn số đếm lớn nhất có thể của bộ đếm tùy thuộcvào loại CPU mà bạn sử dụng CPU 221 và CPU 222 hỗ trợ 4 bộ đếm tốc độ cao: HSC0, HSC3, HSC4 và HSC5 Hai loại CPU này không hỗ trợ bộ đếm HSC2
và HSC1 CPU 224, CPU 224XP và CPU 226 hỗ trợ cả 6 loại bộ đếm tốc độ cao
từ HSC0 đến HSC5
Về cơ bản thì bộ đếm tốc độ cao hoạt động tương tự như nguyên lý cơ bảncủa bộ đếm trong S7-200 Ở đây có thể tưởng tượng rằng một encoder sẽ cungcấp đầu vào xung clock cho bộ đếm Encoder sẽ cho ra một số lượng xung nhấtđịnh trong một vòng quay và một xung reset sẽ được cho ra sau một vòng quay.Xung clock và xung reset sẽ là 2 đầu vào của bộ đếm tốc độ cao Bộ đếm tốc độcao sẽ được đặt trước với một hằng số và đầu ra sẽ được tích cực trong khoảngthời gian mà giá trị đếm tức thời nhỏ hơn giá trị đặt trước của bộ đếm Bộ đếmđược thiết lập để cung cấp một ngắt khi giá trị đếm tức thời bẳng với giá trị đặttrước hoặc là khi ta reset bộ đếm
Mỗi khi giá trị đếm tức thời bằng giá trị đặt trước một ngắt xảy ra thì mộtgiá trị đặt trước mới được nạp vào cho lần hoạt động tiếp theo của bộ đếm Cònkhi một tín hiệu reset tích cực, một ngắt xảy ra thì giá trị đặt trước đầu tiên sẽđược nạp vào bộ đếm cho chu kỳ tiếp theo
1.3.2. Các chế độ làm việc của HSC
Mỗi bộ đếm đều có những Mode đếm khác nhau Tùy vào từng ứng dụng
cụ thể mà người lập trình lựa chọn Mode đếm cho phù hợp Dưới đây trình bày Mode đếm của các bộ đếm tiêu biểu
Bảng 1.3.1 các chế độ đếm từ HSC0 đến HSC5
HSC0 (chỉ có 1 mode đếm)Mod
Trang 8Mode Đặc điểm I0.6 I0.7 I1.0 I1.1
SMB47.3 = 0: đếm xuốngSMB47.3 = 1: đếm lên
hơn pha B 900 : đếm lên Pha Atrễ pha hơn so với pha B 900: đếm xuống
ClockA
ClockB
hơn pha B 900 : đếm lên Pha Atrễ pha hơn so với pha B 900: đếm xuống
ClockA
ClockB
1.3.3. Thủ tục khai báo và cài đặt cho HSC
Lập trình một bộ đếm tốc độ cao :
Ta có thể dùng HSC winzard để cấu hình cho bộ đếm tốc độ cao HSC winzard
sử dụng các thông tin: loại và chế độ hoạt động của bộ đếm, giá trị đặt trước của
bộ đếm, giá trị tức thời của bộ đếm và khởi tạo hướng đếm Để sử dụng HSCwinzard bạn vào Tool Instruction Winzard HSC
Để lập trình được một bộ đếm tốc độ cao bạn cần làm những bước sau đây:
1. Chỉ định bộ đếm và chọn chế độ đếm
2. Thiết lập byte điều khiển
3. Nạp giá trị bắt đầu cho bộ đếm ( starting value )
Trang 94. Nạp giá trị đặt trước cho bộ đếm ( target value )
5. Gán và cho phép chương trình ngắt
6. Khởi động bộ đếm ( tích cực bộ đếm )
a. Chỉ định chế độ hoạt động và các đầu vào :
Sử dụng lệnh định nghĩa bộ đếm tốc độ cao HDEF để chọn chế độ đếm (mode)
và các đầu vào sử dụng
Bảng 1.3.2 mô tả các đầu vào sử dụng cho xung clock, điều khiển hướng và điềukhiển bắt đầu được gắn với mỗi bộ đếm cụ thể Cùng một đầu vào không thểđược sử dụng cho hai chức năng khác nhau, nhưng nếu có bất kỳ đầu vào nàokhông được dùng bởi chế độ hoạt động hiện thời của bộ đếm thì có thể được sửdụng cho các mục đích khác Ví dụ : nếu HSC0 hoạt động ở mode 1, điều này cónghĩa là I0.0 và I0.2, I0.1 có thể được sử dụng cho các ngắt cạnh xung hoặc cóthể được sử dụng cho HSC3
Tip: Chú ý rằng tất cả các chế độ hoạt động của HSC0 ( trừ mode 12 )luôn luôn sử dụng I0.0 và tất cả HSC4 luôn luôn sử dụng I0.3, vì vậynhững đầu vào này không bao giờ được phép sử cho các yêu cầu khác khicác bộ đếm này được sử dụng
Bảng 1.3.2 các đầu vào của bộ đếm tốc độ cao
Trang 10• Giản đồ thời gian ở hình 1.3.1 đến 1.3.5 biểu diễn chức năng khác nhau củacác bộ đếm tùy thuộc vào chế độ hoạt động của nó
- Hình 1.3.1 biểu diễn HSC hoạt động ở mode 0, 1 hoặc 2 Ở đây giá trị bắtđầu được nạp là 0, giá trị đặt trước là 4, hướng đếm được set là đếm lên vàbit cho phép bộ đếm được tích cực Khi giá trị đếm tức thời bằng giá trị đặttrước thì ngắt xảy ra và trong chương trình ngắt ta thực hiện việc thay đổihướng đếm cho counter vì vậy sau ngắt này bộ đếm bắt đầu đếm xuống từgiá trị 4
Trang 11Hình 1.3.1 chế độ hoạt động của mode 0,1,2
trị bắt đầu được nạp là 0 và giá trị đặt trước được nạp là 4, hướng đếm đượcđặt đếm lên và bit cho phép được tích cực Khi giá trị đếm tức thời bằng vớigiá trị đặt trước thì một ngắt được tạo ra và trong chuơng trình ngắt này takhông thay đổi gì về thông số của bộ đếm vì vậy sau khi thực hiện ngắt thì bộđếm vẫn tiếp tục hoạt động với những tham số đã hoạt động trước đó Sau khi
có một xung điều khiển hướng đếm từ bên ngoài tác động làm cho hướng đếmcủa bộ đếm thay đổi thành đếm xuống thì bộ đếm bắt đầu đếm từ 5 4 và tạiđây giá trị đếm tức thời lại bằng giá trị đặt trước và một ngắt lại được phátsinh
Hình 1.3.2 chế độ hoạt động của mode 3,4,5
- Khi sử dụng chế độ đếm 6, 7 hoặc 8, khi đó một cạnh xung lên xảy ra cáchnhau 0.3 micro giây ở cả hai đầu vào up và down thì bộ đếm tốc độ cao sẽxem như hai sự kiện này xảy ra cùng lúc Nếu điều này xảy ra, giá trị đếmtức thời sẽ không thay đổi gì và cũng không có sự thay đổi về hướng đếm.Cho đến khi nào sự xuất hiện của cạnh lên hai xung này diễn ra trongkhoảng thời gian cách nhau lớn hơn 0.3 micro giây thì bộ đếm mới xem đây
là 2 sự kiện riêng biệt nhau Trong cả hai trường hợp trên thì sẽ không có lỗiđược thông báo và bộ đếm vẫn giữ chính xác giá trị đếm của nó
Trang 12Hình 1.3.3 chế độ hoạt động của mode 6,7,8Trong hình 1.3.3 biểu diễn HSC ở mode đếm 6, 7 hoặc 8 Ở đây giá trị bắtđầu và giá trị đặt trước vẫn là 0 và 4, hướng đếm lên và bit cho phép được tíchcực Ở các chế độ này thì ta sẽ đếm 2 sự kiện ở đầu vào up và down và mộtngắt cũng phát sinh khi giá trị đếm tức thời bằng giá trị đặt trước của bộ đếm
1x Giá trị bắt đầu và giá trị đặt trước được nạp là 0 và 3, hướng đếm lên vàbit cho phép được tích cực Ở các mode đếm này ta đếm sự kiện ở đầu vào A
và B, đầu vào của xung A và B tạo ra sự kiện đếm cho HSC Và dựa vào thờigian xuất hiện của xung ở đầu A và B mà bộ đếm sẽ đếm lên hoặc đếmxuống Nếu pha A sớm hơn pha B thì đếm lên và ngược lại sẽ đếm xuống Ởđây cũng có ngắt phát sinh khi giá trị đếm bằng giá trị đặt trước
Hình 1.3.4 chế độ hoạt động của mode 9,10,11(ở chế độ quadrate nhân 1x)
- Hình 1.3.5 biểu diễn HSC ở mode đếm 9, 10 hoặc 11 chế độ quadrate nhân4x Ở đây giá trị bắt đầu và giá trị đặt trước được nạp tương ứng là 0 và 9,
Trang 13hướng đếm lên và bit cho phép được tích cực Với các mode đếm này ta đếm
sự kiện ở đầu vào A và B với tốc độ nhân 4 Nghĩa là với một xung ở A vàmột xung ở B ta sẽ có được số đếm là 4 như trong hình vẽ Cũng giống như ởchế độ quadrate nhân 1x thì tùy vào sự xuất hiện của xung ở A hay B trước
mà bộ đếm sẽ đếm lên hay xuống Cũng có ngắt được phát sinh khi giá trịđếm bằng giá trị đặt
Hình 1.3.5 chế độ hoạt động của mode 9,10,11(ở chế độ quadrate nhân 4x)
- Hoạt động của tín hiệu Reset và tín hiệu Start :
Hoạt động của tín hiệu Reset và tín hiệu Start được biểu diễn cụ thể trong hình1.3.6 và nó được áp dụng cho tất cả các chế độ hoạt động có sử dụng đầu vào tínhiệu Reset và Start Trong hình tất cả các tín hiệu đầu vào Start và Reset đềuđược cho tích cực ở mức cao
Trang 14Hình 1.3.6 chế độ hoạt động bằng reset và start
Ở hình phía bên tay trái là chế độ hoạt động chỉ với tín hiệu Reset Giá trị đếmcủa bộ đếm sẽ trong khoảng -2.147.483.648 +2.147.483.648 khi đầu vàoReset đang ở mức không tích cực (0) Khi đầu vào Reset được tích cực (1) thìmột ngắt reset được phát sinh và giá trị bộ đếm được xóa về 0 và sẽ tiếp tục giữgiá trị 0 khi mà tín hiệu reset còn tích cực (1) Khi chân tín hiệu reset được vôhiệu hóa (0) thì giá trị bộ đếm sẽ nằm trong khoảng -2.147.483.648
Có tất cả 4 bộ đếm mà chúng có 3bit điều khiển được sử dụng để cấu hình trạngthái tích cực cho tín hiệu đầu vào Reset và Start của bộ đếm và để cấu hình chế
độ đếm 1x hoặc 4x ( dành cho quadrate mode ) Các bit này nằm trong byte điềukhiển và được sử dụng khi lệnh HDEF được thực thi Những bit này được mô tảtrong bảng 1.3.1
Trang 15Bảng 1.3.1 trạng thái hoạt động của mode 1x và 4x
Tip: Bạn cần thiết lập các bit điều khiển này ở trạng thái mong muốn trước khi bạn thực thi lệnh HDEF Nếu không, bộ đếm sẽ lấy giá trị mặc định để cấu hình cho mode tương ứng được chọn Một khi lệnh HDEF đã được thực thi thì bạn không thể thay đổi thiết đặt của bộ đếm trừ khi bạn cho PLC dừng hoạt động và thiết lập lại trước lần chạy đầu tiên
b. Thiết lập byte điều khiển :
Sau khi đã định nghĩa bộ đếm và chọn chế độ đếm bạn có thể lập trình cho cáctham số động của bộ đếm Mỗi bộ đếm có một byte điều khiển với các chứcnăng dưới đây:
Trang 16c. Thiết lập giá trị bắt đầu và giá trị đặt trước cho bộ đếm :
Mỗi bộ đếm tốc độ cao có một giá trị đếm tức thời 32 bit và một giá trị đặt trước
32 bit Cả hai giá trị này đều được đặt dưới dạng số integer Để nạp giá trị mớicho giá trị đặt trước và giá trị bắt đầu ta cần bạn phải thiết lập cho byte điềukhiển và các byte bộ nhớ đặc biệt chứa giá trị tức thời và giá trị đặt trước vàcũng phải thực thi lệnh HSC để giá trị mới này có thể được nạp lại cho bộ đếmtốc độ cao Bảng 1.3.3 liệt kê các byte bộ nhớ đặc biệt được sử dụng để lưu giátrị tức thời và giá trị đặt trước của bộ đếm tốc độ cao
Ngoài byte điều khiển, giá trị tức thời của bộ đếm chỉ có thể được đọc bằng cách
sử dụng kiểu dữ liệu HC (high speed counter current) và theo sau đó là chỉ sốcủa bộ đếm như được trình bày ở bảng 1.3.3 Giá trị tức thời được truy cập trựctiếp bởi các toán hạng nhưng chỉ có thể ghi bằng lệnh HSC
Bảng 1.3.3.xác định giá trị hiện thời và giá trị cài đặt lại mới cho HSC1 đến
HSC5
• Định địa chỉ cho bộ đếm tốc độ cao : HC
Để truy cập giá trị của bộ đếm tốc độ cao ta cần chỉ định chỉ số của bộ đếm sửdụng kiểu dữ liệu HC và chỉ số của bộ đếm ví dụ như HC0 Giá trị tức thời của
bộ đếm tốc độ cao là một giá trị chỉ đọc và chỉ có thể được định địa chỉ ở dạngdouble word (32bit) như được biểu diễn ở hình 1.3.7
Hình 1.3.7 Định địa chỉ HSC
d. Gán chương trình ngắt :
Tất cả các chế độ hoạt động của bộ đếm tốc độ cao đều cung cấp một sự kiệnngắt khi giá trị tức thời của HSC bằng với giá đị được nạp trước của nó Ở cácchế độ hoạt động với việc sử dụng tín hiệu reset từ bên ngoài thì có thêm một
Trang 17ngắt khi tín hiệu reset được tích cực Tất cả các chế độ hoạt động của bộ đếm tốc
độ cao ngoại trừ mode 0,1,2 cung cấp một sự kiện ngắt khi chiều đếm được thayđổi Mỗi sự kiện ngắt này có thể được cho phép hoặc cấm một cách riêng biệtnhau Để có sự thảo luận kỹ hơn về cách sử dụng các chương trình ngắt chúng tacần tham khảo thêm tài liệu về phần lệnh ngắt và lệnh giao tiếp
Tip : Một lỗi nghiêm trọng có thể xảy ra nếu ta đồng thời nạp giá trị mớicho bộ đếm hoặc cấm sau đó cho phép bộ đếm hoạt động trong khi thựcthi chương trình ngắt của ngắt ngoài với tín hiệu reset
• Byte trạng thái :
Byte trạng thái cho mỗi bộ đếm tốc độ cao sẽ cung cấp các bit nhớ nhằm xácđịnh hướng đếm và khi nào giá trị tức thời lớn hơn hoặc bằng với giá trị đặttrước Bảng 1.3.4 định nghĩa những bit trạng thái này cho mỗi bộ đếm cụ thể
Bảng 1.3.4 bảng định nghĩa các bit trạng thái cho HSC0 đến HSC5