You are on page 1of 43

LẬP TRÌNH PLC (PROGRAMMABLE LOGIC CONTROLLER)

NỘI DUNG MÔN HỌC


Bài 1. TỔNG QUAN VỀ PLC
Bài 2. PLC iQ MITSUBISHI
Bài 3: KẾT NỐI NGOẠI VI - PHẦN MỀM GX WORKS3
Bài 4: TẬP LỆNH LẬP TRÌNH BÍT CƠ BẢN
Bài 5: TIMER – COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
Bài 6: LỆNH DỊCH CHUYỂN – SO SÁNH DỮ LIỆU
Bài 7: PHÉP TOÁN SỐ HỌC
Bài 8: PHÁT XUNG - HSC
Bài 9: LỆNH LẬP TRÌNH ANALOG
1
Th.S Nguyễn Vạn Quốc
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
FX5U có 512 Timer có độ phận giải 100ms đầu ra ký hiệu
(OUT); 10ms đầu ra (OUTH); 1ms đầu ra (OUTHS).
Ký hiệu: từ T0 đến T511. Timer thông thường và Timer có nhớ

Timer có độ phận giải 100ms: -

Timer có độ phận giải 10ms

Timer có độ phận giải 1ms


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer

Giá trị cài đặt có thể được xác định trực tiếp bằng
hằng số (K) trong bộ nhớ chương trình hoặc gián
tiếp bởi nội dung của thanh ghi dữ liệu (D)

Cách tính thời gian delay :


Thời gian delay = [K] x [??ms].
T = K x [??ms]

Phạm vi cài đặt định thời từ K1 đến K32767.


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Timer tạo thời gian trễ không có nhớ (Timer on delay): T0 đế T511
Ví dụ 5.1: Chương trình LADDER sử dụng Timer tạo thời gian trễ 3s

Sau khi T0 = 3s
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Timer tạo thời gian trễ không có nhớ (Timer on delay)

Biểu đồ thời gian


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Timer tạo thời gian trễ có nhớ (Timer on delay): ST0 đế T15
Ví dụ 5.2:Chương trình LADDER sử dụng Timer tạo thời gian trễ 5s

Sau khi T0 = 5s
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Ví dụ 5.2:Chương trình LADDER sử dụng Timer tạo thời gian trễ 3s

Biểu đồ thời gian.


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Xác định gián tiếp bằng thanh ghi dữ liệu

Ví dụ 5.3: Cho chương trình LADDER sử dụng Timer tạo thời


gian trễ tđược ính giá trị trong thanh ghi D

Nếu D5 = K10;

Thì T0 = D5 x 100ms = 10 x 100ms = 1s


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Ví dụ 5.4: Viết chương trình điều khiển Đèn xanh đỏ tại ngã tư
với yêu cầu sau:

Xanh A : Trong 30s

Vàng A : Trong 5s

Xanh B : Trong 25s

Vàng B : Trong 5s

XA + VA = ĐB
XB + VB = ĐA
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer

Thời gian: XA + VA = ĐB
XB + VB = ĐA
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
Xây dựng lưu đồ giải thuật

Tính toán có 4 khoảng


thời gian nên ta chọn 4
Timer T0; T1; T2; T3.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer Khai báo thiết bị ngoại vi


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer Khai báo thiết bị ngoại vi


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer Khai báo thiết bị ngoại vi


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.1 Timer
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ộ.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.2 Counter
Counter là bộ đếm thực hiện chức năng đếm
cạnh lên, xuống của xung tín hiệu.

Các loại của bộ đếm bao gồm bộ đếm 16-bit,


bộ đếm dài 32-bit, và bộ đếm tốc độ cao.

FX5U có 256 Counter 16 bít (C0 đến C255) và 64


Counter 32 bít (LC0 đến LC63).
Bộ đếm lên 16-bit: đếm từ 0 đến 32767

Bộ đếm lên/xuống 32-bit: từ – 2,147,483,648 đến + 2,147,483,647


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.2 Counter
Ví dụ 5.5: Cho chương trình LADDER sử dụng
bộ đếm lên C0 cài giá trị đếm là 10.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.2 Counter
Khi bộ đếm C0
đến đến 10

Biểu đồ thời gian


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.2 Counter
Ví dụ 5.6: giá trị đặt của Counter trong thanh ghi D.

Bộ đếm C30, giá trị đặt đếm được ghi vào thanh
ghi dữ liệu D110.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.2 Counter
5.2.1 Bộ đếm lên CTU
Ví dụ 5.7: Viết chương trình Ladder hình 5.3, khi công tắc (X0)
được bật, còi (Y70) kêu 3 giây và sau đó băng chuyền (Y71) bắt đầu
hoạt động. Băng chuyền dừng hoạt động khi cảm biến (X1) phát hiện
6 gói hàng đi qua.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.2 Counter
5.2.1 Bộ đếm lên CTU
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.3 Lệnh MC/MCR


Lệnh MC là lệnh điều khiển chính (Master Control), chỉ ra
điểm bắt đầu của một khối điều khiển chính.
Lệnh MCR (Master Control Reset) trở về điều khiển chính,
điểm bắt đầu và điểm kết thúc của khối master control.
Ký hiệu:

Số lồng (N) cho "MC thành MCR“, N từ N0 đến N14.


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.3 Lệnh MC/MCR


Một chương trình cơ bản
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.3 Lệnh MC/MCR

Trạng thái biến của một chương trình được


nhảy "MC thành MCR" trở nên như sau: Tất
cả các thiết bị trong lệnh OUT được tắt.

Các biến trong lệnh SET, RST và SFT (lệnh


dịch chuyển), Counter và Timer có nhớ giữ
nguyên trạng thái.

Timer thông thường được reset 0.


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.3 Lệnh MC/MCR


Ví dụ 5.8: một chương trình cơ bản

Khi điều kiện đầu vào X7


=1, Y0 =1 nếu X0 =1, và
Y1 =1 nếu X1 =1.

Khi X7 =0, Y0/Y1 =0

Y4 không phụ thuộc MC/MCR,


Y4 phụ thuộc X4.

Các lệnh MC và MCR có thể được lồng với nhau như dưới đây
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.3 Lệnh MC/MCR

Chương trình
được lồng "MC
với MCR".

N có thể đưọc sử
dụng trong suốt
cả chương trình.

Số rơ-le M phải
được thay đổi đối
với mỗi lệnh.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.3 Lệnh MC/MCR

Ví dụ: sử dụng lệnh MC/MCR viết chương trình Ladder


như sau:
X0 = 0, bật công tắc X1= 1 thì Y0 = 1 và 10s sau Y1 = 1.
X0 = 1, bật công tắc X2 = 1 thì Y1 = 1 và 20s sau Y0 = 1.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.4 Lệnh nhảy CJ; CJP và lệnh FEND


5.4.1 Lệnh CJ, CJP

Lệnh CJ hoặc CJP nhảy tới con trỏ (P), các bước
chương trình tuần tự giữa lệnh CJ, CJP và con trỏ (P)
thì không được thực thi.

Lệnh CJ và CJP giảm bớt thời gian chu kỳ quét.

Khi đầu vào điều khiển cho phép, một lệnh nhảy được
thực thi và các chương trình nhảy đến bước gắn nhãn
với PXXX.

Số con trỏ khả dụng cho cả lệnh CJ và CJP là P0 đến P4095.


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.4 Lệnh nhảy CJ; CJP và lệnh FEND


5.4.1 Lệnh CJ, CJP
Ví dụ 5.10: Chương trình CJ.

Khi X0 =0, các bước


trong chương trình sẽ được
thực thi từ bước 0 đến 23.

Khi X0 =1, chương trình


nhảy đến con trỏ P0. Các
bước trước con trỏ P0
không được thực thi.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.4 Lệnh nhảy CJ; CJP và lệnh FEND
Ví dụ thi hành lệnh nhảy
Khi X0 = 1

Khi X0 = 0
Y0 =0 không phụ thuộc vào X2. Chương
Y0 = 1 khi X2 = 1; Y0 = 0
trình được bỏ qua bởi lệnh nhảy.
khi X2 = 0.
Y1 = 1 khi X3 = 1; Y1 = 0 khi X3 = 0 (một
Y1 = 1 khi X3 = 1; Y1 = 0
bước nhảy đến nhãn P10).
khi X3 = 0.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.4 Lệnh nhảy CJ; CJP và lệnh FEND


5.4.2 Lệnh FEND

Kết thúc chương trình chính

Khi mỗi chương trình PLC phải được hoạt động và kết
thúc trong mỗi khối chương trình.

Sau mỗi lần thực hiện lệnh FEND, bộ điều khiển chương
trình xử lí giá trị hiện thời của bộ định thời và bộ đếm và thực
hiện kiểm tra tự chuẩn đoán, và khởi động lại từ bước 0.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.4 Lệnh nhảy CJ; CJP và lệnh FEND
5.4.2 Lệnh FEND
Sử dụng lệnh END cho việc kết thúc toàn bộ chương trình
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.4 Lệnh nhảy CJ; CJP và lệnh FEND
5.4.2 Lệnh FEND
Ví dụ 5.11: Chương trình FEND

Khi X0 =0
Chương trình được thực hiện từ 0 đến FEND.
Y0 = 1 khi X2 = 1; Y0 = 0 khi X2 = 0.
Y1 = 0 không phụ thuộc vào X3.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
5.4 Lệnh nhảy CJ; CJP và lệnh FEND
5.4.2 Lệnh FEND
Khi X0 = 1

Chương trình nhảy đến con trỏ P10 bởi lệnh CJ.

Y0 = 0 không phụ thuộc vào X2.

Y1 = 1 khi X3 = 1; Y1 = 0 khi X3 = 0.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.5 Các lệnh gọi chương trình con (CALL, RET)

Lệnh CALL là một lệnh dùng để thực thi một chương


trình con bên trong chương trình chính.

Một chương trình con có thể là một chương trình


có chứa các hoạt động được thực hiện nhiều lần
hoặc một chương trình mà chỉ thực hiện các phần
cần thiết của một hoạt động.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.5 Các lệnh gọi chương trình con (CALL, RET)

Cấu trúc lệnh chương trình gọi


Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.5 Các lệnh gọi chương trình con (CALL, RET)


Ví dụ 5.12: Chương trình CALL

Khi lệnh CALL được thực thi, chương trình sẽ nhảy đến nhãn P10.
Sau khi chương trình con được thực thi tại P10, nó sẽ trả về các bước
chương trình chính bởi lệnh RET.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.5 Các lệnh gọi chương trình con (CALL, RET)


Ví dụ 5.13:
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.5 Các lệnh gọi chương trình con (CALL, RET)

Khi X2 = 0
Chương trình được thực hiện từ 0 đến FEND.
Y0 = 0 khi X3 = 0; Y0 = 1 khi X3 = 1.
Y1 = 0 không phụ thuộc vào X4.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

5.5 Các lệnh gọi chương trình con (CALL, RET)


Khi X2 = 1
Chương trình con của con trỏ P10
được thực hiện.
Y1 = 0 khi X4 = 0;
Y1 = 1 khi X4 = 1.
Sau khi chương trình con của
con trỏ P10 được thực hiện,
hoạt động từ bước 5 đến
FEND được thực thi.
Y0 = 0 khi X3 = 0;
Y0 = 1 khi X3 = 1.
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH
Bài 5: TIMER, COUNTER VÀ CÁC LỆNH GỌI CHƯƠNG TRÌNH

You might also like