Ứng dụng máy tính điều khiển tốc độ động cơ DC
Trang 1TỔNG QUAN VỀ ĐỀ TÀI
1 Mục đích
Trong công nghiệp và điều khiển tự động ngày nay, máy tính ngày càng trở thành bộ phậnkhông thể thiếu trong quá trình điều khiển Để tìm hiểu về quá trình sử dụng máy vi tính điềukhiển một đối tượng cụ thể, chúng tôi chọn và thực hiện đề tài “Ứng dụng máy tính điều khiển tốc
Nội dung cơ bản của đề tài:
1) Giới thiệu tổng quan về đề tài
2) Tìm hiểu về PLC S7-200, cụ thể là PLC loại CPU 224 DC/DC/DC của hãngSIEMENS
3) Tìm hiểu về đối tượng điều khiển là Động cơ DC
4) Tìm hiểu về ENCODER Đây là một loại cảm biến xung dùng để đo tốc độ củađộng cơ
5) Tìm hiểu về nguyên lý hoạt động của cầu H dùng để thay đổi tốc độ của động cơ.6) Tìm hiểu về kiểu giao tiếp nối tiếp giữa PLC và máy tính
7) Tìm hiểu phương pháp hiệu chỉnh P, PI, PID
8) Tìm hiểu về phương pháp điều chế độ rộng xung PWM
9) Tìm hiểu về phần mền thiết kế giao diện WinCC flexible 2008
10)Tìm hiểu về ngôn ngữ lập trình cho PLC S7-200
11)Viết chương trình WinCC flexible 2008 cho máy tính:
+ Giao diện người dùng trên máy tính
Trang 2+ Tốc độ đặt cho động cơ có thể thay đổi và tốc độ đo trên thực tế được hiển thịtrên giao diện người dùng
+ Bộ điều chỉnh PID có thể điều chỉnh 3 thông số Kp, Ki, Kd
+ Vẽ đồ thị đáp ứng giữa tốc độ đặt, tốc độ đo thực tế trên WinCC
12)Viết chương trình S7-200:
+ Điều khiển độ rộng xung với tần số cố định để điều khiển tốc độ động cơ Độrộng xung nhận được từ máy tính gởi sang
+ Điều khiển chiều quay của động cơ
+ Đo tốc độ của động cơ và gửi giá trị đo về máy tính
13)Thiết kế phần cứng bộ điều khiển động cơ và giao tiếp giữa PLC với máy tính
V./ Ứng dụng PLC trong điều khiển:
1) Giới thiệu:
Thành phần cơ bản của S7-200 là khối xử lý trung tâm CPU-12 hoặc CPU-14.Ở đây xinchỉ đề cập đến CPU-14
a) Mô tả:
Một CPU-14 có hình dạng bên ngoài giống như hình 3-14
Có 14 ngõ vào: từ I0.0 đến I0.7 và từ I1.0 đến I1.5
Có 10 ngõ ra : từ Q0.0 đến Q0.7 và từ Q1.0 đến Q1.1
Có 14 led báo trạng thái các ngõ vào, 10 led báo trạng thái các ngõ ra
Có 03 led báo trạng thái của CPU:
_ Led SF : Báo trạng thái CPU còn tốt hay bị hỏng
_ Led RUN: Báo trạng thái CPU đang hoạt động
_ Led STOP: Báo trạng thái CPU đang ngưng hoạt động
Ngoài ra, khi có yêu cầu giao tiếp lớn, S7-200 cho phép ta kết nối thêm các modul mởrộng Số modul mở rộng tối đa là 7, tương ứng với số ngõ vào cực đại là 64, số ngõ ra cực đại là:
Các ngõ vào, ra đều có mức điện áp tác động là 24VDC
Trang 3Tải ngõ ra phải làm việc ở 24VDC và dòng tối đa là 50mA.
- Có 2048 từ nhớ chương trình chứa trong ROM
- Có 2048 từ nhớ dữ liệu, trong đó 512 từ đầu tiên thuộc ROM
- Có 128 timer, tùy theo độ phân giải mà chia làm 3 loại:
+ 04 timer 01ms
+ 16 timer 10ms
+ 108 timer 100ms
- Có 128 bộ đếm – Counter, tùy vào cách đếm mà chia làm 2 loại:
+ Đếm lên : Count up
+ Đếm lên xuống : Count up-down
- Có 688 bit nhớ đặt biệt dùng để thông báo trạng thái và đặt chế độ làm việc
V - Variable memory : Vùng nhớ biến
I - Input image register : Vùng đệm ngõ vào
Q - Output image register : Vùng đệm ngõ ra
M – Internal memory bits : Vùng nhớ trong
SM – Special memory bits : Vùng nhớ đặc biệt
- Các vùng nhớ này đều có thể truy cập được theo bit, byte, word hay double word: + Truy suất theo bit: Một lần một bit
Cú pháp: Tên vùng nhớ (+) địa chỉ byte (+) (+) địa chỉ bit
Ví dụ: I0.0 : chỉ bit 0 của byte 0 của vùng I
+Truy suất theo byte: mỗi lần 1 byte
Cú pháp: Tên vùng nhớ (+) B (+) địa chỉ byte
Ví dụ: VB1 : chỉ byte 1 của vùng V
+Truy suất theo word:
Cú pháp: tên vùng nhớ (+) W (+) địa chỉ byte cao
Trang 4Ví dụ: VW100: chỉ word 100 gồm 2 byte 100 và 101 thuộc vùng V.
+Truy suất theo Double word:
Cú pháp: Tên vùng nhớ (+) D (+) địa chỉ byte cao
Ví dụ: VD150 : chỉ double word gồm 4 byte: 150, 151, 152, 153
Vùng đối tượng: Được phân chia như sau:
-Timer: từ T0 đến T127
-Bộ đếm: từ C0 đến C127
-Bộ đệm cổng vào tương tự: từ AW0 đến AW30
-Bộ đệm cổng ra tương tự: từ AQW0 đến AQW30
-Thanh ghi Acumulator: từ AC0 đến AC3, trong đó thanh ghi AC) không có khả nănglàm con trỏ
Bước 1: Nhập dữ liệu từ thiết bị ngoại vi vào bộ đệm
Bước 2: Thực hiện chương trình
Bước 3: Truyền thông và tự kiểm tra lỗi
Bước 4: Chuyển dữ liệu từ bộ đệm ảo ra ngoài
_ Một chương trình của S7200 gồm các phần sau:
Chương trình chính được kết thúc bằng lệnh MEND
Các chương trình con và chương trình xử lý ngắt phải được viết sau lệnh MEND
Một chương trình con được bắt đầu bằng lệnh SBR và kết thúc bằng lệnh RET
Một chương trình xử lý ngắt được bắt đầu bằng lệnh INT và kết thúc bằng lệnh RETI
1 Nhập dữ liệu
từ ngoại vi vào
bộ đệm ảo
2 Thực hiện chương trình
3 Truyền thông và
tự kiểm tra lỗi
4 Chuyển dữ liệu từ bộ đệm
ảo ra ngoại vi
Trang 5g) Qui trình thiết kế hệ điều khiển dùng PLC:
Để thiết kế một hệ điều khiển dùng PLC ta thực hiện các bước sau:
Xác định yêu cầu điều khiển:
Nắm rõ cấu tạo và nguyên tắc hoạt động của thiết bị, yêu cầu điều khiển là gì
Tập lệnh trong S7-200 được biểu diễn dưới hai dạng: LAD và STL:
_ LAD – Ladder logic – Gọi là phương pháp hình thang: là một ngôn ngữ viết dưới dạng
đồ họa, dễ quan sát, dễ kiểm tra
_ STL – Statement list – Phương pháp liệt kê: Ngôn ngữ thể hiện dưới dạng những câulệnh
Phần lớn những câu lệnh dưới dạng LAD đều có thể chuyển sang STL và ngược lại
a Các lệnh xuất/nhập:
Lệnh nhập: Nạp giá trị logic của tiếp điểm vào bit đầu tiên trong ngăn xếp
Tiếp điểm thường mở – sẽ được đóng khi
Trang 6LDI n Nạp tức thời giá trị logic của n vào bit đầu tiên
LDNI Nạp tức thời giá trị nghịch đảo của n vào bit
dầu tiên trong ngăn xếp
Lệnh xuất: Sao chép nội dung của bit đầù tiên trong ngăn xếp vào bit được chỉ địnhtrong lệnh Nội dung của ngăn xếp không bị thay đổi
Cuộn dây đầu ra ở trạng thái kích thích khi códòng điều khiển đi qua
= n Lệnh =sao chép giá trị của đỉnh ngăn xếp tới
tiếp điểm n được chỉ dẫn trong lệnh
n(bit): I, Q, M,
SM, T, C, V
=I n Lệnh =I sao chép tức thời giá trị cuả đỉnh ngăn
xếp tới tiếp điểm n được chỉ dẫn trong lệnh
n(bit): Q
b Các lệnh ghi – xóa giá trị cho tiếp điểm:
Các lệnh này dùng để ghi xóa các điểm gián đoạn đã được thiết kế
n
Trang 7S bit
n
S bit
Đóng một mảng gồm n các tiếp điểm kể từ S-bit S-bit: I, Q, M, SM, T, C, V
n(Byte): IB, QB,
MB, SMB, VB,
AC, Hằng số,
*VD, *AC
Ngắt một mảng gồm n các tiếp điểm kể từ S-bit
Nếu S-bit lại chỉ vào Timer hoặc Counter thì lệnh
sẽ xóa bit đầu ra của timer hoặc couter đó
Đóng tức thời một mảng gồm n các tiếp điểm kể
từ S-bit
S-bit: Q (bit)n: IB, `QB, MB,SMB, VB, AC,Hằng số, *VD,
*AC
Ngắt tức thời một mảng gồm các tiếp điểm kể từđịa chỉ S-BIT
S S_BIT n Ghi giá trị logic váo một mảng gồm n bit kể từ
điạ chi S_BIT
S_BIT: I, Q, M,
SM, T, C, V
(Bit)
n: IB, QB, MB,SMB, VB, AC,Hằng số, *VD,
*AC (Byte)
R R_BIT n
Xoá một mảng gồm n bit kể từ điạ chỉ S_BIT
Nếu S_BIT lại chỉ vào Timer hoăc Counter thìlệnh sẽ xóa bit đầu ra của Timer hoặc counter đó
SI S_BIT n Ghi tức thời gá trị logic 1 vào một mảng gồm n
bit kể từ địa chỉ S_BIT S_BIT: Q (Bit)n: IB, QB, MB,
SMB, VB, AC,Hằng số, *vd,
Trang 8OI n Lệnh thực hiện tức thời toán tử AND va OR giữa
giá trị logic của tiếp điểm n và giá trị bit đầu tiêntrong ngăn xếp Kết quả được ghi lại vào bit đầu
ONI n
ANI n
Lệnh thực hiện tức thời toán tử AND và OR giũagiá trị logic nghịch đảo của tiếp điểm n và giá trị bitđầu tiên trong ngăn xếp Kết quả được ghi lại vàobit đầu của ngăn xếp
Ngoài ra còn có các lệnh đăc biệt dùng cho ngăn xếp:
ALD Lệnh tổ hợp giá trị của bit đầu tiên và thứ hai trong
ngăn xếp bằng phép logic AND Kết quả ghi lại trong bit đầu của ngăn xếp Giá trị còn lại của ngăn xếp được kéo lên 1 bit
Không có
OLD Lệnh tổ hợp giá trị bit đầu tiên vào bit thứ hai trong
ngăn xếp bằng phép logic OR Kết quả được ghi lại vào bit đầu trong ngăn xép Giá trị còn lại của ngăn xếp được kéo lên 1 bit
LPS Lệnh Push sao chụp giá trị bit đầu tiên vào bit thứ
hai trong ngăn xếp Giá trị còn lại bị đẩy xuống 1 bit Bit cuối cùng bị đẩy ra ngoài
LRD Lệnh sao chép giá trịcủa bit thứ hai vào bit đầu tiên
trong ngăn xếp Các giá trị còn lại của ngăn xếp giữnguyên vị trí
LPP Lệnh kéo ngăn xếp lên 1 bit Giá trị của bit sau
được kéo lên bit trước
d Các lệnh tiếp điểm đặc biệt:
Trang 9NOT Phủ định
e Các lệnh so sánh:
Tiếp điểm đóng khi n1= n2
Tiếp điểm đóng khi n1 nhỏ hơn hoặc bằng n2
Lệnh thực hiện phép tính logic Load, AND,
Or giữa giá trị logic 1 với nội dung của đỉnhngăn xếp khi n1 = n2
LDB<= n1 n2
AB<= n1 n2
OB<= n1 n2
Lệnh thực hiện phép tính logic Load, AND,
OR giữa giá trị logic 1 với nội dung của đỉnh ngăn xếp khi n1 nhỏ hơn hoăc bằng n2
LDW= n1 n2
AW= n1 n2
OW= n1 n2
Lệnh thực hiện phép tính logic Load, AND,
OR giữ giá trị logic 1 với nội dung của đỉnh ngăn xếp khi n1 = n2
n1, n2 :VW, T,
C, TW, QW,
MW, SMW, AC,CONST, *VD
Trang 10QD, MD, SMD,
AC, HC, CONST, *VD,
LDD<= n1 n2
AD<= n1 n2
OD<= n1 n2
Lệnh thực hiện phép tính logic Load, And,
OR giữa giá trị logic 1 và nội dung của đỉnh ngăn xếp khi n1 nhỏ hơn hoặc bằng n2
f Lệnh nhảy và gọi chương trình con:
HẠNGJMP Kn Lệnh nhảy thực hiện việc chuyển
điều khiển đến nhãn n trong một chương trình
n: từ 0 đến 255
LBL Kn Lệnh khai báo nhãn n trong một
chương trình
CALL Kn Lệnh gọi chương trình con, thực hiện
việc chuyển điều khiển đến chương trình con có nhãn là n
g Các lệnh can thiệp vào thời gian vòng quét:
HẠNGEND Lệnh kết thúc chương trình chính hiện hành
có STOP Kết thúc chương trình hiện hành và chuyển
Trang 11Cxx
h Các lệnh điều khiển Timer:
Khai báo timer xx kiểu TON dể tạo thời gian trễ tính từ khi bit đầu trong ngăn xếp có giá trịlogic 1 Nếu giá trị đếm tức thời lớn hơn hoăc bằng giá trị đặt trước n thì T-bit có giá trị logic =1 Có thể reset timer bằng lệnh Reset hoặc bằng giá trị ogic 0 ở đầu vào
CPU 212 – 214 CPU 2141ms T32 T9610ms T33 đến T36 T97 đến T100100ms T37 đến T63 T101 đến T127
Txx: CPU 212
32 – 63 CPU 214
32 – 63
96 – 27PT: VW, T, C,
IW, QW, MW, SMW, AC, IAW,
VD, *AC, CONST
Khai báo Timer xx kiểu TONR Chỉ có thể reset timer kiểu TONR bằng lệnh R
CPU 212-214 CPU 2141ms T0 T6410ms T1 đến T4 T65 đến T68100ms T5 đến T31 T69 đến T95
Txx: 0 – 31
64 - 95
PT: VW T, C,
IW, QW, MW, SMW, AC, AIW,
VD, *AC, CONST
i Các lệnh điều khiển Counter: Dùng để đếm sườn xung :
CTU Cxx n Khai báo bộ đếm lên theo sườn
lên Khi giá trị tức thời C-word
>= giá trị đặt trước n, C-bit có giá trị logic =1 Bộ đếm sẽ ngừng khi : C-word
= 32767
Cxx:
Từ 0 – 47 và
80 – 127n:VW, T, C, IW,
QW, MW, SMW, AC, AIW,CONST, *VD,
*AC
(Word)
CTUD Cxx n Khai báo bộ đếm lên xuống,
khi giá trị word >= n thì bit có giá trị bằng 1 C-wordmax = 32767
C-Cxx: 48 – 79(word)n: VW, T, C, IW,
Trang 12C-wordmin = - 32768CTUD reset khi bit đầu của ngăn xếp có giá trị logic =1.
QW, AC, AIW, CONST, *VD,
Trang 14HSC là bộ đếm tốc độ cao, được sử dụng để đếm những sự kiện xảy ra với tần số lớn mà các bộ đếm thông thường trong PLC không đếmđược VD: tín hiệu xung từ encoder…
2 Số lượng bộ đế m HSC có trong PLC và tần số tối đ a cho phép:
tuỳ thuộc vào loại CPU mà số lượng bộ đếm HSC và tốc độ tối đa cho phép khác nhau
Trang 15MODE ĐẶCĐIỂM I0.0
bên trong SM37.3=1: Đ ẾM LÊN SM37.3=1: Đ ẾM XUỐNG
Clock B reset start10
Trang 163 Thay đổi hướng đếm
Clock B reset start10
11
4 Ý nghĩa của byte trạng thái khi lập trình cho HSC:
4.1 Byte trạng thái của HSC0
SM36.5 Chiều đang đếm,1:đếm lên, 0: đếm xuống
SM36.6 Kết quả so sánh tức thời, 1: nếu CV=PV
SM36.7 Kết quả so sánh tức thời, 1: nếu CV>PV
4.2 Byte trạng thái của HSC1
Trang 17SM46.6 Kết quả so sánh tức thời, 1: nếu CV=PV
SM46.7 Kết quả so sánh tức thời, 1: nếu CV>PV
5.3 Byte trạng thái của HSC2
SM56.5 Chiều đang đếm,1:đếm lên, 0: đếm xuống
SM56.6 Kết quả so sánh tức thời, 1: nếu CV=PV
SM56.7 Kết quả so sánh tức thời, 1: nếu CV>PV
5 Ý nghĩa các bít của byte điều khiển trạng thái khi lập trình cho HSC
5.1 Byte điều khiển của HSC0
SM37.0 Không sử dụng
SM37.1 Không sử dụng
SM37.2 Không sử dụng
SM37.3 Chiều đếm:0 đếm lùi,1:đếm lên
SM37.4 Cho phép đổi chiều đếm, 0: không cho phép,1:cho phép
SM37.5 Cho phép sửa đổi giá trị đặt trước,0:không cho phép,1:cho phép
SM37.6 Cho phép sửa đổi giá trị đếm tức thời,0:không cho phép,1:cho phépSM37.7 1:cho phép kích HSC0,0:không cho phép HSC0
5.2 Byte điều khiển của HSC1
SM47.0 Kiểu reset cho tín hiệu xóa tại cổng I1.0
SM47.1 Kiểu start cho tín hiệu kích tại cổng I1.1
SM47.2 Tần số đếm của HSC1
Trang 18SM47.3 Chiều đếm:0 đếm lùi,1:đếm lên
SM47.4 Cho phép đổi chiều đếm, 0: không cho phép,1:cho phép
SM47.5 Cho phép sửa đổi giá trị đặt trước,0:không cho phép,1:cho phép
SM37.6 Cho phép sửa đổi giá trị đếm tức thời,0:không cho phép,1:cho phépSM47.7 1:cho phép kích HSC1,0:không cho phép HSC1
6.3Byte điều khiển của HSC2
SM57.0 Kiểu reset cho tín hiệu xóa tại cổng I1.0
SM57.1 Kiểu start cho tín hiệu kích tại cổng I1.1
SM57.2 Tần số đếm của HSC1
SM57.3 Chiều đếm:0 đếm lùi,1:đếm lên
SM57.4 Cho phép đổi chiều đếm, 0: không cho phép,1:cho phép
SM57.5 Cho phép sửa đổi giá trị đặt trước,0:không cho phép,1:cho phép
SM57.6 Cho phép sửa đổi giá trị đếm tức thời,0:không cho phép,1:cho phépSM57.7 1:cho phép kích HSC2,0:không cho phép HSC2
7.Chọn kiểu reset,start và tần số đếm cho HSC
8.Byte trạng thái và byte điều khiển của HSC3,HSC4,HSC5:
Trang 199.Gía trị tức thời, giá trị đặt:
10.Các bước khởi tạo bộ đếm HSC
Dùng chu kỳ quét đầu tiên (SM0.1) để gọi chương trình con khởi tạo trong chương trình con khởi tạo thực hiện các công việc sau đây:
_nạp giá trị cho byte điều khiển
Gán bộ đếm với mode đếm tương ứng dung lệnh HDEF
Nạp giá trị tức thời
Nạp giá trị đặt trước
Gán chương trình ngắt với sự kiện ngắt dung lệnh ATCH nếu sử dụng ngắt
Cho phép ngắt dung lệnh ENI
Chọn bộ đếm để thực thi dùng lệnh HSC
CHƯƠNG: ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM (PULSE WIDE MODULATION)
1.Giới thiệu về PWM
Trong S7 200 hỗ trợ 2 ngõ ra Q0.0 và Q0.1 để phát xung PWM với tần số lớn (có thể lên đến
30Khz).Với tần số này thì các ngõ ra bình thường, hoạt động phụ thuộc vào chu kỳ quét của PLC không thể phát ra được
PWM phát xung với chu kỳ và độ rộng xung có thể thay đổi được :
Chu kỳ : Từ 50uS đến 65535uS hay từ 2mS đến 65536mS
độ rộng xung : Từ 0 đến 65535uS hay từ 0 đến 65535mS
2 Vùng nhớ đặc biệt được sử dụng khi lập trình điều khiển PWM
2.1Byte điều khiển:
Q0.0 Q0.1 Control Bits
SM67.0 SM77.0 PTO/PWM update the cycle time 0=no update 1=update cycle time
Trang 20SM67.1 SM77.1 PWM update the pulse width time 0=no update 1=update pulseSM67.2 SM77.2 PTO update the pulse count value time 0=no update 1=update cycle timeSM67.3 SM77.3 PTO/PWM time base 0 =no update 1=update cycle timeSM67.4 SM77.4 PWM update method 0=no update 1=update cycle timeSM67.5 SM77.5 PTO single/multiple segment operation 0 =no update 1=update cycle timeSM67.6 SM77.6 PTO/PWM mode select 0=no update 1=update cycle timeSM67.7 SM77.7 PTO/PWM enable 0=no update 1=update cycle time
Tuỳ thuộc vào việc sử dụng ngõ ra Q0.0 hay Q0.1 ở chế độ PTO/PWM và tần số mong muốn mà người lập trình nạp các giá trị thích hợp vào byte điều khiển SMB67 hay SMB77
2.2.Các vùng nhớ đặc biệt khác:
Q0.0 Q0.1 Other PTO/PWM register
SMW68 SMW78 PTO/PWM cycle time value range:2 to 65535
SMW70 SMW80 PWM pulse width value range:2 to 65535
SMW72 SMW82 PTO pulse count value range:2 to 4294967295
SMW166 SMW176 Number of the segment in progress Multiple-segment PTO operation onlySMW168 SMW178 Starting location of the profile table Multiple-segment PTO operation only
(byte offset from V0)
2.3 CÁc giá trị nạp cho byte điều khiển và kết quả thực hiện
PWM update method
Time base
Pulse count
Pulse Width
Cycle time
2.4 các bước khởi tạo bộ phát xung:
Sử dụng chu kỳ quét đầu tiên để gọi chương trình con khởi tạo PLS Trong chương trình con khởi tạo thực hiện các công việc sau
1 Nạp giá trị cho byte điều khiển để chọn chế độ phát theo yêu cầu
2 Nạp giá trị thời gian để chọn chu kỳ
3 Nạp giá trị để chọn số lượng xung phát
4 Gán chương trình ngắt với sự kiện ngắt tương ứng
5 Cho phép ngắt
Trang 222.5 Các bước khởi động bộ PWM
Sử dụng chu kỳ quét đầu tiên để gọi chương trình con khởi tạo bộ PWM.Trong chương trình con khởi tạo thực hiện các công việc sau
1 Nạp giá trị cho byte điều khiển để chọn chế độ phát theo yêu cầu
2 Nạp giá trị thời gian để chọn chu kỳ
3 Nạp giá trị thời gian để chọn độ rộng xung
4 Thực hiện lệnh PLS để phát xung
Chương trình chính
Chương trình con khởi tạo:
Trang 23BÀI 4: HOẠT ĐỘNG NGẮT CỦA PLC
1 GIỚI THIỆU VỀ NGẮT TRONG S7 200:
Ngắt là quá trình mà s7 200 dừng chương trình đang thực thi để thực hiện chương trình ngắt khi được yêu cầu (có sự kiện gây ra ngắt xảy ra) Sau khi thực hiện xong chương trình ngắt thì s7-200sẽ quay về chương trình đang thực hiện trước khi xảy ra ngắt để thực hiện tiếp.
Khi có nhiều yêu cầu ngắt xảy ra đồng thời thì các ngắt sẽ thực hiện theo thứ tự ưu tiên từ ngắt có mức ưu tiên cao nhất đến ngắt có ưu tiên thấp nhất.
Tuỳ thuộc vào loại CPU mà số lượng ngắt cũng như
sự kiện ngắt có khác nhau.
Inputs/Ouputs Data
Types
Operands INT BYTE Constant (0 to 127)
EVNT BYTE Constant CPU221 and CPU222 0to 12, 19 to 23, and 27 to 33
CPU224: 0 to 23 and 27 to 33 CPU 226 and CPU 226XM: 0 to 33
Các lệnh sử dụng khi lập trình điều khiển ngắt:
Lệnh cho phép ngắt toàn cục:
Lệnh cho phép ngắt toàn cục
Trang 24Lệnh cấm ngắt toàn cụcLệnh thoát khỏi chương trình ngắtLệnh gắn chương trình ngắt với sự kiện ngắt tương ứng
Lệnh loại bỏ chương trình ngắt với sự kiện ngắt tương ứng
mỗi ngắt đều có cách khởi tạo riêng, tiếp theo sẽ trình bày việc khởi tạo một số ngắt cơ bản
khởi tạo ngắt cạnh lên tại I0.0( sự kiện 0)
chương trình chính ( gọi chương trình con khởi tạo ngắt)
Chương trình con KHOITAO0 ( Gán chương trình ngắt với sự kiện ngắt tương ứng, cho phép ngắt)
Trang 25Trong chương trình ngat : mỗi lần có cạnh lên I0.0 thì chương trình ngắt được gọi Trong ví dụ này, chương trình ngắt có nhiệm vụ tăng giá trị QB0 thêm 1
4.2 khởi tạo ngắt định thời 0: timed interrupt0
chương trình chính ( Gọi chương trình con khởi tạo ngắt)
Chương trình con khoitaotimer0: (Nạp thời gian gây ra ngắt, gán chương trình ngắt với sự kiện ngắt tương ứng, cho phép ngắt)
Trang 26Chương trình ngắt timer : sau khoảng thời gian 200ms thì chương trình ngắt được gọi trong ví dụ này , chương trình ngắt có nhiệm vụ giảm giá trị QB0 thêm 1.
2 Động cơ DC
Động cơ DC là động cơ điện hoạt động với dòng điện một chiều.Động cơ điện một chiều ứngdụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp.Thông thường động cơ điện một
độ và chiều quay của động cơ với sự hỗ trợ của các mạch điện tử cùng phương pháp PWM
Động cơ điện một chiều trong dân dụng thường là các dạng động cơ hoạt động với điện ápthấp, dùng với những tải nhỏ Trong công nghiệp, động cơ điện một chiều được sử dụng ở nhữngnơi yêu cầu moment mở máy lớn hoặc yêu cầu thay đổi tốc độ trong phạm vi rộng ở đây ta chỉnghiên cứu động cơ DC trong dân dụng chỉ hoạt động với điện áp 24V trở xuống
Trang 28M = K Φ Iu (3)
Với:
– E: sức điện động cảm ứng (V)
– Φ: Từ thông trên mỗi cực( Wb)
– Iu: dòng điện phần ứng (A)
Trong các máy điện một chiều lớn, người ta có nhiều cuộn dây nối ra nhiều phiến góp khácnhau trên cổ góp Nhờ vậy dòng điện và lực quay được liên tục và hầu như không bị thay đổi theocác vị trí khác nhau của Rô to
2.3 Điều Khiển Tốc Độ
Thông thường, tốc độ quay của một động cơ điện một chiều tỷ lệ với điện áp đặt vào nó, vàngẫu lực quay tỷ lệ với dòng điện ở đây ta sử dụng phương pháp điều khiển kiểu điều biến độrộng xung (PWM)
Từ (1),(2) (3) suy ra:
w = V/(K.Φ) – Ru.Iu/(K.Φ) (4)
Theo (4) : khi Iu không đổi (tức Moment không đổi) và Φ không đổi thì w thay đổi "tuyếntính"theo V (thực tế thì không hoàn toàn tuyến tính theo đường thẳng được)
Trang 29Hình 2.26 – Điều khiển động cơ bằng PWMKhi tỷ lệ thời gian "on" trên thời gian "off" thay đổi sẽ làm thay đổi điện áp trung bình (VAK).
Tỷ lệ phần trăm thời gian "on" trong một chu kỳ chuyển mạch nhân với điện áp cấp nguồn sẽ chođiện áp trung bình đặt vào động cơ Như vậy với điện áp nguồn cung cấp là 100V, và tỷ lệ thờigian ON là 25% thì điện áp trung bình là 25V VAV thay đổi từ VL đến VH tùy theo các độ rộng Ton
và Toff
Như vậy, tốc độ động cơ sẽ thay đổi "tuyến tính" theo % độ rộng xung
3 Encoder
Hình 2.27 – Encoder
3.1 Cấu tạo chính của Encoder
Gồm 1 bộ phát ánh sáng (LED phát), một bộ thu ánh sáng nhạy với ánh sáng từ bộ phát (bộ thuthường là photodiotde hoặc phototransistor), 1 đĩa quang có khoét lỗ gắn trên trục quay đặt giữa bộphát và thu, thông thường trục quay này sẽ được gắn với trục quay của đối tượng cần đo tốc độ