You are on page 1of 69

NGÔN NGỮ LẬP TRÌNH

PLC
4. NGÔN NGỮ LẬP TRÌNH
1. Giới thiệu ngôn ngữ lập trình

Ngôn ngữ lập trình sử dụng trong PLC có ba dạng:


 Ladder
 Boolean
 Graph Function block
diagram
4. NGÔN NGỮ LẬP TRÌNH
2. Ngôn ngữ lập trình PLC
2.1 Ngôn ngữ ladder

PLC được phát triển để đơn giản


hóa việc lập trình khi sử dụng các
ký hiệu rơ-le, dạng giống sơ đồ
mạch điện để biểu diễn chương
trình điều khiển logic cho thiết bị
hoặc quá trình.
4. NGÔN NGỮ LẬP TRÌNH
2. Ngôn ngữ lập trình PLC
2.1 Ngôn ngữ ladder
4. NGÔN NGỮ LẬP TRÌNH
2. Ngôn ngữ lập trình PLC
2.1 Ngôn ngữ ladder
4. NGÔN NGỮ LẬP TRÌNH
2. Ngôn ngữ lập trình PLC
2.1 Boolean
4. NGÔN NGỮ LẬP TRÌNH
2. Ngôn ngữ lập trình PLC
2.2 Graph
4. NGÔN NGỮ LẬP TRÌNH
2. Ngôn ngữ lập trình PLC
2.2 Graph
4. NGÔN NGỮ LẬP TRÌNH
3. Chương trình sử dụng ngôn ngữ ladder
4. NGÔN NGỮ LẬP TRÌNH
3. Chương trình sử dụng ngôn ngữ ladder

Một quy tắc được áp dụng cho phần lớn các loại PLC: không cho phép dòng điện chạy ngược (từ phải sang
trái) trong nhánh Ladder.

Ngôn ngữ Ladder kết hợp với khối


chức năng biểu diễn dưới dạng lệnh. Dòng điện chạy ngược qua tiếp điểm
D. (F – E – A – B – C ), sai quy tắc
chạy từ trái sang phải.
4. NGÔN NGỮ LẬP TRÌNH
3. Chương trình sử dụng ngôn ngữ ladder
4. NGÔN NGỮ LẬP TRÌNH
4. Tập lệnh tiếp điểm Rơle
4. NGÔN NGỮ LẬP TRÌNH
4. Tập lệnh tiếp điểm Rơle
4.1 Lệnh tiếp điểm thường mở/ thường đóng
4. NGÔN NGỮ LẬP TRÌNH
4. Tập lệnh tiếp điểm Rơle
4.2 Lệnh tiếp điểm thường mở/ thường đóng
4. NGÔN NGỮ LẬP TRÌNH
4. Tập lệnh tiếp điểm Rơle
4.4 Lệnh ngõ ra dạng xung
Ngõ ra xung được kích hoạt bằng cạnh xung lên hoặc cạnh xung xuống của tín hiệu ngõ vào. Kích hoạt bằng xung cạnh
lên, ngõ ra xung sẽ lên ON trong một chu kỳ sau khi điều kiện ngõ vào chuyển từ 1 sang 0 hoặc ngược lại. Tuy nhiên chỉ
có ngõ ra bị tác động trong 1 chu kỳ còn ngõ vào thì không.
4. NGÔN NGỮ LẬP TRÌNH
4. Tập lệnh tiếp điểm Rơle
4.5 Tiếp điểm tác động cạnh xung
Lệnh tiếp điểm xung sẽ tạo ra một tín hiệu xung trong một chu kỳ dựa vào sự thay đổi mức logic của bit. Lệnh tiếp điểm
cạnh xung lên, tiếp điểm sẽ đóng chính xác trong 1 chu kỳ khi bit tham chiếu chuyển từ OFF  ON, sau đó tiếp điểm hở ra
cho dù tín hiệu ngõ vào vẫn tiếp tục duy trì trạng thái ON. Trang thái ngõ ra sẽ phụ thuộc vào ngõ trạng thái tiếp điểm ngõ
vào.
4. NGÔN NGỮ LẬP TRÌNH
4. Tập lệnh tiếp điểm Rơle
4.6 Sự khác nhau giữa tác động mức và cạnh
4. NGÔN NGỮ LẬP TRÌNH
5. Lập trình ngôn ngữ Ladder
5.1 Chu kì quét chương trình Ladder
4. NGÔN NGỮ LẬP TRÌNH
6. Bài toán 1:

Lập trình PLC start, Stop để điều khiển Motor. Khi nhấn Start thì motor hoạt động, thả nút nhấn start
thì motor vẫn chạy. Nhấn stop thì motor dừng.

START STOP
PLC MOTOR
4. NGÔN NGỮ LẬP TRÌNH

7. Bài toán 2:

Cho hệ thống PLC hoạt động như sau:


_ Nhấn nút Start 1 thì đèn số 1 sáng.
_ Nhấn nút Start 2 thì đèn số 1 tắt, đèn số 2 sáng.
_ Nhấn nút Start 3 thì đèn số 2 tắt đèn số 3 sáng.
_ Nhấn nút Stop thì cả 3 đèn cùng tắt.
Viết chương trình Ladder thực hiện chương trình trên.
4. NGÔN NGỮ LẬP TRÌNH

8. Bài toán 3:

Cho hệ thống PLC hoạt động như sau:


_ Nhấn nút Start 1 thì đèn số 1 sáng.
_ Nhấn nút Start 2 thì đèn số 1 tắt, đèn số 2 sáng.
_ Nhấn nút Start 3 thì đèn số 2 tắt đèn số 3 sáng.
_ Nhấn nút Stop thì cả 3 đèn cùng tắt.
Dùng Setbit và Resetbit
4. NGÔN NGỮ LẬP TRÌNH

9. Các lệnh timer


9.1 Các lệnh timer On-Delay
4. NGÔN NGỮ LẬP TRÌNH

9. Các lệnh timer


9.1 Các lệnh timer On-Delay
4. NGÔN NGỮ LẬP TRÌNH

9. Các lệnh timer


9.2 Timer On-Delay (Mitsubishi)
4. NGÔN NGỮ LẬP TRÌNH

9. Các lệnh timer


9.3 Timer On dạng xung

Timer On dạng xung S_PULSE sẽ ON ngay khi


tín hiệu đầu vào chân S On. Timer sẽ off khi đếm
đủ thời gian TV. Khi tín hiệu đầu vào chân S tắt
đi thì Timer xung sẽ reset thời gian đếm về 0.
4. NGÔN NGỮ LẬP TRÌNH

9. Các lệnh timer


9.4 Timer On-Delay có nhớ

Lệnh ngõ ra timer ON-delay có nhớ


(RTO) được sử dụng nếu giá trị tích
lũy của bộ định thời gian phải được
giữ lại ngay cả khi điều kiện logic
không liên tục hoặc hệ thống bị mất
điện. Lệnh Reset ngõ ra timer có nhớ
(RTR) là cách duy nhất để tự động
reset giá trị đếm tích lũy của timer có
4. NGÔN NGỮ LẬP TRÌNH

9. Các lệnh timer


9.5 Các lệnh timer OFF-Delay
4. NGÔN NGỮ LẬP TRÌNH

10. Các lệnh bộ đếm (Counter)


10.1 Lệnh Counter dạng ngõ ra
4. NGÔN NGỮ LẬP TRÌNH

10. Các lệnh bộ đếm (Counter)


10.1 Lệnh Counter dạng ngõ ra
4. NGÔN NGỮ LẬP TRÌNH

10. Các lệnh bộ đếm (Counter)


10.2 Lệnh Counter đếm lên dạng Function block
Lệnh ngõ ra Counter đếm lên (CTU) được sử
dụng để đếm số lần, giá trị đếm sẽ tăng lên 1
mỗi khi có sự kiện đếm xảy ra. . Khi giá trị
đếm tích lũy bằng giá trị đặt, counter sẽ kích
ngõ ra, hoàn thành việc đếm. Tùy loại PLC,
sau khi bộ đếm đạt đến giá trị cài đặt, nó sẽ
thiết lập lại giá trị đếm tích lũy trong thanh ghi
về 0 hoặc tiếp tục đếm. Lệnh reset được sử
dụng để xóa giá trị tích lũy.
4. NGÔN NGỮ LẬP TRÌNH

10. Các lệnh bộ đếm (Counter)


10.3 Lệnh Counter đếm xuống dạng Function block

Lệnh ngõ ra Counter đếm xuống


(CTU) sẽ giảm giá trị đếm trong
thanh ghi tích lũy xuống một đơn vị
mỗi khi điều kiện đếm tác động.
4. NGÔN NGỮ LẬP TRÌNH

10. Các lệnh bộ đếm (Counter)


10.4 Bài toán số 1

Lập trình hệ thống PLC thỏa yêu cầu như sau:


_ Nếu nhấn nút Start lần 1 thì đèn số 1 sáng, đèn 2 và 3 tắt.
_ Nếu nhấn nút Start lần 2 thì đèn số 2 sáng, đèn 1 và 3 tắt.
_Nếu nhấn nút Start lần 3 thì đèn số 3 sáng, đèn 1 và 2 tắt.
_ Nhấn Stop thì cả 3 đèn cùng tắt.
4. NGÔN NGỮ LẬP TRÌNH

10. Các lệnh bộ đếm (Counter)


10.5 Bài toán số 2
4. NGÔN NGỮ LẬP TRÌNH
11. Lệnh điều khiển chương trình
4. NGÔN NGỮ LẬP TRÌNH

11. Lệnh điều khiển chương trình


11.1 Lệnh MCR
Lệnh ngõ ra MCR (Master Control Relay)
được dùng để kích hoạt hoặc tạm dừng việc xử
lý của một nhóm hoặc một đoạn chương trình.
4. NGÔN NGỮ LẬP TRÌNH

11. Lệnh điều khiển chương trình


11.2 Lệnh JMP

Nếu điều kiện của nhánh là TRUE, thì lênh JMP sẽ cho phép
thực hiện đoạn chương trình có gắn nhãn dán, bỏ qua network ở
giữa. Bình thường thì cả hai network đều được thực hiện.
4. NGÔN NGỮ LẬP TRÌNH

11. Lệnh điều khiển chương trình


11.3 Lệnh JMPN

Lệnh JMPN sẽ nhảy đến nhãn dán tại đoạn


lập trình khi điều kiện đầu vào khong được
thỏa mãn. Khi lệnh JMPN được kích hoạt
thì network 3 sẽ khong thể tương tác được
nữa. Network 4 thì tương tác bình thường.
Bằng cách kích hoạt tiếp điểm M99.7 thì
đầu ra Q1.2 không sáng. Kích hoạt tiếp
điểm M99.5 thì đầu ra Q1.3 sáng.
4. NGÔN NGỮ LẬP TRÌNH

11. Lệnh điều khiển chương trình


11.4 Lệnh LBL

Lệnh LBL (Lable) được dùng để xác


định nhánh đích cho lệnh JMP hoặc
GOSUB.
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học

Tập lệnh số học trong một PLC bao gồm bốn


phép toán cơ bản: cộng, trừ, nhân và chia.
Ngoài các phép toán trên, một số loại PLC
lớn có cả phép tính căn bậc hai.
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.1 Lệnh ADD
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.2 Lệnh ADD dạng ladder

Nếu A đóng lại, giá trị trong thanh ghi X, Y sẽ


được cộng và lưu trong thanh ghi Z. Nếu A
không đóng thì lệnh không được thực hiện. Nếu
bỏ qua điều kiện A thì lệnh sẽ được thực hiện
trong mỗi chu kỳ quét.
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.3 Lệnh ADD dạng khối
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.4 Lệnh SUB dạng Ladder
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.5 Khối chức năng của SUB
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.6 Lệnh MUL

Trong nhánh chương trình khi tiếp


điểm 10 đóng, nội dung của thanh ghi
1000 và 1001 được nhân với nhau, kết
quả lưu vào trong hai thanh ghi 2000
và 2001.
4. NGÔN NGỮ LẬP TRÌNH
12. Tập lệnh số học
12.7 Lệnh MUL

Giả sử một PLC có định dạng toán hạng BCD 4 chữ số


và các thanh ghi toán hạng là 1000 và 1001 chứa các giá
trị 9001 và 8172, một giá trị scale là 10-5. Kết quả của
phép nhân là 73 556 172-được lưu trong hai thanh ghi
tạm (7355 và 6172). Sau khi nhân nó với giá trị scale (10-
5), được kết quả là 735.56172. Do đó, thanh ghi kết quả
sẽ chứa giá trị 736 (làm tròn). Giá trị scale được chứa
trong một thanh ghi khác. Để biết kết quả thực tế, người
dùng lấy kết quả lưu nhân với giá trị scale: 736x10 -5.
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.8 Lệnh DIV

Lệnh DIV (Division) thực hiện phép tính tìm


thương của hai số. Thương được lưu trong
hai thanh ghi kết quả tương ứng ở ngõ ra.
Thanh ghi đầu tiên lưu giữ phần nguyên,
thanh ghi thứ hai lưu giữ phần thập phân
hoặc số dư của phép chia.
4. NGÔN NGỮ LẬP TRÌNH
12. Tập lệnh số học
12.8 Lệnh DIV

Khi ngõ điều khiển (Control) ON, phép chia được thực
hiện. Trong trường hợp này, nội dung thanh ghi 1000 (số
bị chia) chia cho nội dung thanh ghi 1001 (số chia), kết
quả lưu trong hai thanh ghi 2000 và 2001.
Giả sử nội dung thanh ghi 1000 là 8527, thanh ghi là
1001 là 325, sau khi khối lệnh DIV được thực hiện, kết
quả như sau:
 Nội dung thanh ghi 2000 là: 26 (phần nguyên của
kết quả)
 Nội dung thanh ghi 2001 là: 236 (phần thập phân
của kết quả)
Hoặc theo bộ điều khiển lập trình khác, thanh ghi 2001
lưu số dư là 77.
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.9 Ví dụ

Hệ thống điều khiển bãi đậu xe chứa tối đa là 12 chiếc mô tả hình dưới.
Mỗi lần xe vào, PLC tự động tang them 1 bởi cảm biến phát hiện xe S1.
Bất kỳ một chiếc xe nào đi ra khỏi bãi, PLC sẽ tự động giảm đi 1 bởi
cảm biến phát hiện S2. Khi 12 chiếc xe được đăng ký, bảng hiệu đầy xe
sẽ được sáng lên thông báo đến các xe khong được vào nữa. Không sử
dụng lệnh counter, chỉ dùng lệnh toán học để tính toán số lượng xe vào
ra
4. NGÔN NGỮ LẬP TRÌNH

12. Tập lệnh số học


12.10 Lệnh khối chức năng SQR

Lệnh khối SQR (Square Root) có chức năng tính căn bậc
hai của một số. Lệnh này sử dụng hai hoặc ba thanh ghi.
Một thanh ghi chứa giá trị cần xử lý, một hoặc hai thanh
ghi còn lại lưu kết quả. Nếu sử dụng hai thanh ghi kề
nhau để lưu kết quả thì thanh ghi đầu lưu phần nguyên,
thanh ghi sau lưu phần thập phân
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


4. NGÔN NGỮ LẬP TRÌNH
13. Các lệnh thao tác dữ liêu
13.1 Lệnh CMP

Các lệnh CMP (Compare) so sánh


các giá trị trong hai thanh ghi. So
sánh bằng (=), so sánh lớn hơn
(>) và so sánh nhỏ hơn (<), hoặc
kết hợp để có: nhỏ hơn hoặc bằng
(<=), lớn hơn hoặc bằng (>=),
không bằng (<>).
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.2 Ví dụ:
_Hệ thống điều khiển bãi đậu xe chứa tối đa là 12 chiếc mô tả hình
dưới. Mỗi lần xe vào, PLC tự động tăng thêm 1 bởi cảm biến phát
hiện xe S1. Bất kỳ một chiếc xe nào đi ra khỏi bãi, PLC sẽ tự động
giảm đi 1 bởi cảm biến phát hiện S2.
_ Nếu số lượng xe == 6 chiếc thì đèn số 1 sáng,
_ Nếu số lượng xe > 6 chiếc, thì đèn số 1 tắt đèn số 2 sáng.
_ Nếu số lượng xe đầy == 12 chiếc thì đèn số 3 sáng, đèn số 2 tắt.
_ Nếu trong kho không còn xe nào thì đèn số 4 sẽ sáng.
_ Chỉ dùng lệnh toán học để tính toán số lượng xe vào ra.
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.2 Chuyển đổi dữ liệu : BCD  BIN
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.3 Chuyển đổi dữ liệu : BIN  BCD
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.4 Chuyển đổi dữ liệu : PLC Siemens và Mitsubishi
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.5 Lệnh Set các hằng số
Những hằng số, giá trị không thay đổi, được sử dụng trong chương trình để so sánh hoặc thiết lập các giá trị đặt được
lưu trong thanh ghi để điều khiển quá trình. Vì vậy, một số PLC cung cấp khối chức năng SET để thiết lập các giá trị
xác định trong thanh ghi
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.6 Lệnh INCR
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.7 Lệnh DEC
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.8 Khối chức năng SHIFT

Khối chức năng SHIFT (Shift)


dịch chuyển các bit dữ liệu trong
một thanh ghi sang phải (Right)
hoặc sang trái (Left).
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.9 Khối chức năng ROT (Rotation)

Khối chức năng ROT (Rotate) cũng như chức năng


SHIFT, dịch chuyển dữ liệu sang phải hoặc trái,
nhưng không có bit biến bit-out, bit cuối (theo
hướng dịch chuyển) của thanh ghi
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.10 Khối chức năng SHIFT và ROT

Lệnh dịch Bit phải khai báo Bit in


và Bit Out.
Lệnh xoay Bit thì không cần phải
khai báo.
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh thao tác dữ liêu


13.11 Lệnh kiểm tra bit EB
Khối chức năng EB (Examine Bit) kiểm tra trạng thái (ON hoặc OFF) của một điểm đơn hoặc một bit có địa chỉ xác
định trong bộ nhớ.
4. NGÔN NGỮ LẬP TRÌNH

14. Các lệnh di chuyển dữ liệu


4. NGÔN NGỮ LẬP TRÌNH

14. Các lệnh di chuyển dữ liệu


14.1 Khối chức năng MOV (di chuyển Bit hoặc thanh ghi)

Khối chức năng MOV (Move) thực hiện di chuyển


thông tin từ vị trí này đến vị trí khác mà nơi đến là một
bit đơn hoặc thanh ghi.
4. NGÔN NGỮ LẬP TRÌNH

12. Các lệnh di chuyển dữ liệu


14.2 Di chuyển khối MOVBK

Lệnh di chuyển khối MOVBK thực hiện copy dữ


liệu từ một nhóm thanh ghi ở vị trí này sang một
nhóm thanh ghi ở vị trí khác.
4. NGÔN NGỮ LẬP TRÌNH

12. Các lệnh di chuyển dữ liệu


14.3 Chuyển dữ liệu ASCII

Khi thực hiện lệnh, tổng 64 ký tự ASCII được gửi đi hoặc nhận
vào. Mỗi thanh ghi lưu hai ký tự (mỗi ký tự có độ dài một
byte). Một lệnh truyền ASCII có tốc độ truyền, bit start/stop, bit
kiểm tra chẵn lẻ được thiết lập trong phần cứng của mô-đun
I/O.
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh chức năng đặc biệt


14.4 Tập lệnh chức năng đặc biệt
4. NGÔN NGỮ LẬP TRÌNH

13. Các lệnh chức năng đặc biệt


14.5 PID
Các PLC có thể điều khiển tương tự (analog) sử dụng thuật toán PID thông qua khối chức năng PID (Proportional –
Integral – Derivative).

You might also like