Professional Documents
Culture Documents
Phần 1
LÝ THUYẾT THỰC HÀNH
: Set bit
: Reset bit
Bài 2: Hệ thống 2 nút nhấn và 1 motor, 1 nút quy định Start và 1 nút Stop. Khi Start
được nhấn thì motor chạy, Start buông ra motor vẫn chạy và chạy cho đến khi Stop
được nhấn thì motor dừng.
Bài 3: Sử dụng các lệnh về bit,viết chương trình để điều khiển Q0.4 và Q0.5 lên mức
cao trong một chu kì khi có I0.4.
Ví dụ: Sử dụng lệnh Delay ON để tạo thời gian trễ trong 1s.
Khi ngõ vào I0.0 =1 Timer T37 được kích, nếu sau 10x100ms =1s I0.0 vẫn giữ trạng
thái thì Bit T37 sẽ lên 1 ( Khi đó Q0.0 lên 1 ).
Nếu I0.0 =1 không đủ thời gian 1s thì bit T37 sẽ không lên 1.
2.2 TOF:
Khi Ngõ vào I0.0 = 1 thì bit T33 lên 1 ( Ngõ ra Q0.0 lên 1)
Khi I0.0 xuống 0, thời gian Timer bắt đầu tính, đủ thời gian 1s = 100x10ms thì bit
T33 sẽ tắt (Q0.0 tắt)
Nếu I0.0 xuống 0 trong khoảng thời gian chưa đủ 1s đã lên 1 lại thì bit T33 vẫn giữ
nguyên trạng thái
Giản đồ thời gian:
2.3 TONR:
Ngõ vào I0.0 có tác dụng kích thời gian cho Timer, khi ngõ I0.0 =1 thời gian Timer
được tính, khi I0.0=0 thời gian không bị Reset về 0. Khi đủ thời gian thì Bit T1 sẽ
lên1.
Thời gian Timer chỉ bị Reset khi có tín hiệu Reset Timer ( tín hiệu từ ngõ I0.1)
Giản đồ thời gian:
Bài tập:
Điều khiển Đèn xanh đỏ tại ngã tư với yêu cầu sau:
Xanh A : Trong 15s
Vàng A : Trong 3s
Xanh B : Trong 25s
Vàng B : Trong 4s
Ta có thể mở rộng bài toán điều khiển đèn giao thông có thêm đường dành cho người
đi bộ.
start
Đỏ B 1
Đỏ A 1
Mô tả:
Giản đồ xung:
Giản đồ xung:
Mô tả:
Khi có cạnh lên ở chân CU, giá trị bộ đếm (1 Word) được tăng lên 1. Khi có
một cạnh lên ở chân CD, giá trị bộ đếm được giảm xuống 1. Khi giá trị hiện tại
lớn hơn hoặc bằng giá trị đặt PV(Preset value), ngõ ra sẽ được bật lên ON.
Khi chân R được kích (sườn lên) giá trị bộ đếm và ngõ Out được trả về 0.
Giá trị cao nhất của bộ đếm là 32767 và thấp nhất là –32768.Bộ đếm ngừng
đếm khi giá trị bộ đếm đạt ngưỡng.
Giản đồ xung:
Bài tập:
Chương trình:
4. Lệnh MOVE:
Trong S7_200 có các lệnh Move sau:
Khi I0.0 lên 1 thì chương trình sẽ chuyển nội dung ô nhớ trong VD100 sang ô nhớ
VD200
5. Các lệnh về dịch bit:
Carry 0
Lệnh dịch trái chuyển bit thấp sang bit cao tương đương với nhân 2n.
Lệnh dịch phải:
0 Carry
Dịch chuyển bit cao sang bit thấp tương đương với chia 2n
Tương tự có lệnh xoay phải, trái Word, Dword.
Ví dụ:
1. Chương trình dịch trái cho bit thấp dịch chuyển sang bit cao, trước khi thực hiện
dịch trái ta phải đạt giá trị ban đầu cho biến
2. Viết chương trình sao led đang sáng tắt dần theo thứ tự từ trái sang phải và chỉ thực
hiện một 1 lần.
3. Viết chương trình sao cho khi nhấn nút Run thì led sáng đơn chạy từ trái sang phải
và từ phải sang trái. Khi nhấn nút Stop thì led dừng chạy và nhấn nút Run thì led chạy
tiếp từ vị trí dừng. Một nút Reset cho phép xóa toàn bộ quá trình.
Khi ngõ vào cho phép lên 1 chương trình sẽ thực hiện việc cộng ( hay trừ) 2 số
nguyên 16 Bit ở IN1và IN2 ,kết quả đưa vào OUT.
Tương tự, ta có:
ADD_DI: Cộng hai số nguyên 32 Bit .
SUBB_DI: Trừ hai số nguyên 32 Bit .
ADD_R: Cộng hai số thực .
SUBB_R: Trừ hai số thực.
6.2 Lệnh nhân chia:
MUL_I: Nhân hai số nguyên 16 bit
DIV_I: Chia hai số nguyên 16 bit
Ví dụ:
so sánh khác.
XXX: 00-99
Khi giá trị điều kiện bằng 1 thì chương trình sẽ gọi chương trình con
Bài tập:
Sử dụng lệnh đọc thời gian thực để ứng dụng trong điều khiển đèn giao thông tự
động, tưới cây tự động.
- Điều khiển đèn giao thông tự động:
Lưu đồ giải thuật chương trình con 1: đèn hoạt động bình thường
Start
Yes Đỏ A Đỏ B Yes
No No
No No
No No
1 1 1 1
Đỏ B Xanh A Đỏ B Xanh A
0 0
Đỏ B Đỏ A
1 1
Vàng A Vàng B
Subroutine 0
Subroutine 1
Ví dụ:
Khi gặp sự kiện ngắt số 8 ( Sự kiện ngắt Port nối tiếp ), chương trình sẽ gọi chương
trình ngắt INT_0.
Cấm sự kiện ngắt số 8, sự kiện ngắt số 8 chỉ được cho phép trở lại bằng lệnh ATCH
Ngoài ra còn có các lệnh cho phép ngắt (ENI) và cấm ngắt (DISI) và lệnh trở về của
chương tình ngắt (RETI).
10. Xuất xung tốc độ cao
Ví dụ : Thực hiện việc điều rộng xung nhanh kiểu PTO tại ngõ ra Q0.0, chương trình
gồm nút nhấn Start, nút nhấn phát xung ra tại Q0.0, một nút nhấn tăng xung và một
nút nhấn giảm xung. Nút nhấn stop được dùng để ngưng việc phát xung.
START
Chương trình con 0: SBR_0 cài đặt các thông số cho việc phát xung PTO
Nạp số xung là 1
Chương trình con 1: SBR_1: tăng thời gian chu kì phát xung xung(giảm xung)
Chương trình con 2: SBR_2: giảm thời gian chu kì phát xung(tăng xung)
START
Cài đặt các thông số cho bộ phát xung Yes Cho phép phát xung?
PWM và phát xung tại Q0.0
No
No
No
Chọn Mode đọc xung tốc độ cao và loại Counter nào (HC0,HC1…)
Tuỳ 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 như sau:
Mode 0,1,2 : Dùng đếm 1 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 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.
Bảng Mô tả chế độ đếm cũng như loại HSC, quy định địa chỉ vào.
Căn cứ vào bảng trên để có thể chọn loại HSC cho từng ứng dụng phù hợp.
Ví dụ: Không thể sử dụng HSC0 cho Mode 5, Mode 8 cũng như Mode 11, vì các
Mode này cần 4 chân Input trong khi đó HSC0 chỉ có 3 chân Input.
1 Số Bit được sử dụng để điều khiển các chế độ của HSC:
HSC0 HSC1 HSC2 HSC4 Description
Active level control bit for Reset**:
SM37 SM47 SM57 SM147.
0 = Reset active high
.0 .0 .0 0
1 = Reset active low
Active level control bit for Start**:
SM47 SM57
0 = Start active high
.1 .1
1 = Start active low
Counting rate selection for Quadrature
SM37 SM47 SM57 SM147. counters:
.2 .2 .2 2 0 = 4x counting rate
1 = 1x counting rate
Counting direction
SM37 SM47 SM57 SM137 SM147 SM157 control bit:
.3 .3 .3 .3 .3 .3 0 = count down
1 = count up
Write the counting
SM37 SM47 SM57 SM137 SM147 SM157 direction to the HSC:
.4 .4 .4 .4 .4 .4 0 = no update
1 = update direction
Write the new preset
SM37 SM47 SM57 SM137 SM147 SM157 value to the HSC:
.5 .5 .5 .5 .5 .5 0 = no update
1 = update preset
Write the new current
SM37 SM47 SM57 SM137 SM147 SM157 value to the HSC:
.6 .6 .6 .6 .6 .6 0 = no update
1 = update current
Enable the HSC:
SM37 SM47 SM57 SM137 SM147 SM157
0 = disable the HSC
.7 .7 .7 .7 .7 .7
1 = enable the HSC
Các bit trang thái:
Status Bits for HSC0, HSC1, HSC2, HSC3, HSC4, and HSC5
Giá trị hiện tại của HSC0 sẽ nằm trong biến HC0
Ngoài ra ta còn có thể định dạng cho HSC với những chế độ ngắt khác nhau như:
Cho phép HSC0
Chương trình ngắt sẽ được thực thi khi giá trị HSC bằng với giá trị đặt
Chương trình ngắt sẽ được thực thi khi hướng đếm thay đổi ( thay đổi từ chiều
đếm thuận sang đếm ngược, đếm tăng, đếm giảm)
Chương trình ngắt được thực thi khi Bit Reset được thực thi.
Ứng dụng: Đọc xung tốc độ cao từ Encoder.
START
Call HSC
T37 = 600
RESET HSC
START
SMB47 = #0FC
SMD48 = 0
SMD52 = 0
HDEF:
HSC =1
MODE 9
ENI
CALL HSC
Sơ đồ kết nối:
Chương trình con HSC được gọi ngay tại vòng quét đầu tiên của PLC
Dòng lệnh đầu là gán giá trị trong HSC (số xung đọc được) vào thanh ghi AC0,
tiếp theo là đổi số nguyên 32 bit sang số thực.
Câu lệnh thứ 3 là làm tròn số thực trong AC0 sang số DI và gán vào SMD100.
Nạp giá trị ban đầu cho việc update và gọi chương trình HSC, đồng thời nuôi
TIME để reset lại HSC.
Các khối mở
rộng của PLC
Để chọn loại PLC mô phỏng: nhấp đôi vào CPU và chọn loại CPU phù hợp
Trường hợp có sử dụng khối mở rộng: nhấp đôi vào các khối mở rộng và chọn khối
mở rộng theo yêu cầu, sau đó nhấp chọn Accept:
Nhấp chọn OK ta thấp có hai chương trình KOP ở dạng Ladder và Program(OB1) ở
dạng STL
3.2Mô phỏng:
Nhấn nút Run trên thanh Toolbars để chuyển PLC sang trạng thái Run:
Muốn PLC chuyển sạng thái Stop tương tự ta nhấn nút Stop:
Để xem trạng thái các Network ta nhấn vào biểu tượng State program:
Phần 2:
CÁC BÀI TẬP THỰC HÀNH
VB0 = 0
Đ
VB0 = VB0 +1
PC <= VB0
2. Sơ đồ kết nối:
Cảm biến quang 3 I0.2
START I0.0
STOP I0.0
3. Chương trình:
START
S
START=1,
STOP=0
Đ
S
Cảm biến 1 =1
Đ
S
Cảm biến 2 =1
Đ
M0.1 = 1
XILANH =1
Đ S
T38 >12
Đ
T38 = 0
Loại
vật
bằng
van khí
nén.
START
S
START=1,
STOP=0
Đ S
Cảm biến từ =1
Đ
M0.1 = 1
XILANH =1
S
T37 >13
Đ
T37 = 0
2. Sơ đồ kết nối:
Cảm biến từ I0.6
Xilanh1 Q0.4
Start I0.0
Stop I0.1
3. Chương trình:
START
S
START=1,
STOP=0
Đ S
Đ
M0.1 = 1
T37 =7 (TON)
XILANH =1
S
T37 >9
Đ
T37 = 0
2. Sơ đồ kết nối:
Cảm biến dung I0.5
Xilanh1 Q0.5
Start I0.0
Stop I0.1
3. Chương trình:
START
Call HSC
T37 = 600
RESET HSC
1.2 HSC:
START
SMB47 = #0FC
SMD48 = 0, SMD52 = 0
HDEF:
HSC =1,MODE 9
ENI
CALL HSC
Sơ đồ dây:
+ : nâu
- : xanh lục
Kênh A,B : cam, xanh lá cây.
2.2 Loại (400 xung):
Sơ đồ dây:
+: đỏ.
-: xanh.
Kênh A,B : vàng, trắng.
2.3 Loại (500 xung):
Sơ đồ dây:
+: đỏ.
-: đen.
Kênh A,B : vàng, xanh.
Z: trắng.
2.4 Loại 300 xung:
Sơ đồ dây:
+: đỏ.
-: đen.
Kênh A,B : trắng, xanh.
Z: vàng.
Sơ đồ dây:
+: đỏ.
-: đen.
Kênh A,B : trắng, xanh.
Z: vàng.
Nối vỏ: xám.
3. Sơ đồ kết nối:
Kênh A : I0.6
Kênh B : I0.7
Động cơ : Q0.0
4. Chương trình
4.1 MAIN:
Dòng lệnh đầu tiên là gán giá trị trong HSC (số xung đọc được) vào thanh ghi
AC0, tiếp theo là đổi số nguyên 32 bit sang số thực.
Câu lệnh thứ 3 là làm tròn số thực trong AC0 sang số DI và gán vào SMD100.
Nạp giá trị ban đầu cho việc update và gọi chương trình HSC, đồng thời nuôi
TIME để reset lại HSC.
Đây là các lệnh nhập các giá trị dùng để khởi tạo HSC.
START
Q0.7 = 1
SMD108 = 0
Call HSC
SMD104 = SMD100/100
S
T37=50
RESET HSC
1.2 HSC:
START
SMB47 = #0FC
SMD48 = 0
SMD52 = 0
HDEF:
HSC =1, MODE 9
ENI
CALL HSC
2. Sơ đồ kết nối:
Kênh A : I0.6
Kênh B : I0.7
Động cơ : Q0.0
3. Chương trình:
3.1 MAIN:
Khai báo dùng HSC 1 hoạt động ở mode 9,chế độ đếm xung encoder hai
pha,không có bit reset và start.
Chương trình con 1:tăng độ rộng xung bằng cách tăng giá trị ô nhớ SMW80
Chương trình con 2:giảm độ rộng xung bằng cách giảm giá trị ô nhớ SMW80
START
CALL HSC
CALL PID
CALL PWM
CALL INT
EXIT NGẮT
HSC:
START
SMB47 = #0FC
SMD48 = 0, SMD52 = 0
HDEF:
HSC =1, MODE 9
ENI
CALL HSC
PID:
START
RET
PWM:
START
NẠPGIÁ
NẠP CÁC CÁC GIÁ TRỊ:
TRỊ:
CHU KÝ XUNG.
THỜI GIAN PHÁT MỘT XUNG.
Ton
XUẤT XUNG
XUẤT XUNG
RET
RET
INT:
START
TÍNH TOÁN TỐC ĐỘ RA DỰA VÀO SỐ XUNG, THỜI GIAN LẤY MẪU..
LẤY GIÁ TRỊ XUNG ĐƯA VÀO BỘ PHÁT XUNG RA ĐỘNG CƠ.
CẬP NHẬT CÁC GIÁ TRỊ HIỆN TẠI VÀ TRƯỚC ĐÓ VÀO BỘ ĐIỀU
KHIỂN PID.
RET
2. Sơ đồ kết nối:
Kênh A : I0.6
a.
3.1 MAIN:
Dùng V48.2 để tạo biến START cho chương trình. Khi có START thì sẽ gọi chương
trình con HSC , PID, PWM, reset ngõ ra Q0.0 ở chu kì đầu tiên và gọi chương trình
ngắt để đưa giá trị xung liên tục vào Q0.0. khi hết ngắt thì gọi lại chương trình HSC
và đưa giá trị ban đầu vào thông số PID.
Đưa giá trị vận tốc đặt vào VD24, chuẩn hóa tốc độ do ra từ 0 = > 1.
Cho phép ngắt timer 0 không cho phép chạy PID và HSC. Tiếp theo gọi chương trình
HSC và đưa vào các giá trị ban đầu cho các thông số PID.
3.2 Chương trình đếm xung ENCODER (HSC):
Cài đặt các thông số ban đầu cho công thức tính toán: tốc độ cài đặt, thời gian lấy mẫu
…
3.4 Chương trình xuất xung(PWM):
Khai báo thông số PWM: chu ky xung 1000, Ton =0 và thời gian xuất 1 xung mẫu là
16#D3 ứng với 1micros /chu kỳ xuất xung.
Chuẩn hóa tốc độ đặt và cài đặt các thông số và đưa vào ô nhớ sau đó gọi chương
trình PID và sau đó các thông số ngõ ra sẽ được đưa vào các ô nhớ. Để tính toán tốc
độ ra thì từ HC1 là giá trị ENCODER ta chia cho số xung tối đa của ENCODER và
nhân cho thời gian lấy mẫu ta sẽ có được tốc độ thưc tế.
Giá trị ngõ ra của bộ PID sẽ được chuẩn hóa lại và đưa vào thay đổi độ rộng xung ra.
4. Thiết lập giao diện và vẽ đồ thị đáp ứng:
Vào PC ACCESS:
Cứ thế tiếp tục thiết lập các biến khác như hình:
Sau đó save lại và gán các biến vừa tạo vào WinCC:
Tiếp theo đặt tên và các giá trị khác như hình:
Tiếp theo:
Và chọn biến cần hiển thị lên đồ thị và nhân OK => finish:
Khi đó sẽ có
Để kết nối với biến thì nhấn vào selection và chọn biến:
Để kết nối các trương I/O với biến ta click chuột phải trường đó và chọn:
Làm tiếp tục với các trường I/O và các biến khác như sau:
+Trường I/O Ki : TI
Cài đặt:
Kp : 0.25
Ki : 0.002
Cài đặt:
Kp : 0.3
Ki : 0.002
Kd : 0.002
Tốc độ : 70
2. Chương trình:
2.1Chương trình chính:
Phương pháp kết nối PLC S7-200 với WinCC tương tự các bài trên, kết quả sau khi
gán biến: