Tài liệu Điều khiển lập trình PLC - Phần 1 - Chương 3: Ngôn ngữ lập trình: ĐIỀU KHIỂN LẬP TÌNH PLC - MẠNG PLC Chương 3 – Ngôn ngữ lập trình 
PHẦN I 
ĐIỀU KHIỂN LẬP TRÌNH (PLC) 
CHƯƠN
 G 3 
NGÔN NGỮ LẬP TRÌNH Chủ đề:
 Biến và vùng nhớ 
 Các loại lệnh logic trên bit 
 Các lệnh xử lý dữ liệu: dịch chuyển,so sánh, toán học…
 Các bộ chức năng định thời và đếm 
 Các lệnh điều khiển chương trình 
Mục đích: 
 Sử dụng và gán biến cho các địa chỉ. 
 Vận dụng các lệnh để viết chương trình ứng dụng. 
 Hiểu rõ mối quan hệ chương trình với kết nối thiết bị 
 36 
ĐIỀU KHIỂN LẬP TÌNH PLC - MẠNG PLC Chương 3 – Ngôn ngữ lập trình 
3.1. GIỚI THIỆU 
Các loại PLC nói chung thường có nhiều ngôn ngữ lập trình để phục vụ các đối 
tượng sử dụng khác nhau. Tuy nhiên hầu hết đề xoay quanh 3 ngôn ngữ cơ bản. Đó là: 
 Ngôn ngữ “ kiểu liệt kê”, kí hiệu là STL (Statement List). Đây là dạng của ngôn ngữ 
Assembler máy tính. 
 Ngôn ngữ “hình ...
                
              
                                            
                                
            
 
            
                 63 trang
63 trang | 
Chia sẻ: hunglv | Lượt xem: 1615 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Điều khiển lập trình PLC - Phần 1 - Chương 3: Ngôn ngữ lập trình, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
PHAÀN I 
ÑIEÀU KHIEÅN LAÄP TRÌNH (PLC) 
CHÖÔN
 G 3 
NGOÂN NGÖÕ LAÄP TRÌNH Chuû ñeà:
 Bieán vaø vuøng nhôù 
 Caùc loaïi leänh logic treân bit 
 Caùc leänh xöû lyù döõ lieäu: dòch chuyeån,so saùnh, toaùn hoïc…
 Caùc boä chöùc naêng ñònh thôøi vaø ñeám 
 Caùc leänh ñieàu khieån chöông trình 
Muïc ñích: 
 Söû duïng vaø gaùn bieán cho caùc ñòa chæ. 
 Vaän duïng caùc leänh ñeå vieát chöông trình öùng duïng. 
 Hieåu roõ moái quan heä chöông trình vôùi keát noái thieát bò 
 36 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.1. GIÔÙI THIEÄU 
Caùc loaïi PLC noùi chung thöôøng coù nhieàu ngoân ngöõ laäp trình ñeå phuïc vuï caùc ñoái 
töôïng söû duïng khaùc nhau. Tuy nhieân haàu heát ñeà xoay quanh 3 ngoân ngöõ cô baûn. Ñoù laø: 
 Ngoân ngöõ “ kieåu lieät keâ”, kí hieäu laø STL (Statement List). Ñaây laø daïng cuûa ngoân ngöõ 
Assembler maùy tính. 
 Ngoân ngöõ “hình thang”, kí hieäu laø LAD (Ladder Logic). Ñaây laø daïng ngoân ngöõ theo 
kieåu thieát keá maïch ñieàu khieån logic rôø le. 
 Ngoân ngöõ “hình khoái”, kí hieäu laø FBD (Function Block Diagram). Ñaây laø daïng ngoân 
ngöõ theo kieåu thieát keá maïch ñieàu khieån logic soá. 
Function Block Diagram
Statement List
Ladder Diagram
Hình 3.1-Ba kieåu ngoân ngöõ laäp trình M
Moät chöông trình coù theå vieát treân LAD hoaëc FBD coù theå chuyeån ñöôïc sang daïng STL, 
nhöng ngöôïc thì coù theå khoâng. Trong STL coù nhöõng leänh maø trong LAD hoaëc FBD khoâng 
dieãn taû ñöôïc. Tuy vaäy veà maët laäp trình, ngoân ngöõ LAD raát ñôn giaûn deã daøng cho laäp trình. 
Chính vì lyù do naøy, taøi lieäu quan taâm ñeán ngoân ngöõ STL vaø laáy noù ñeå laäp trình. 
Chuù yù: Hieän nay treân theá giôùi coù raát nhieàu loaïi PLC do nhieàu haõng cuûa nhieàu nöôùc saûn xuaát 
khaùc nhau vaø ña daïng. Nhöng baûn chaát, phöông phaùp laäp trình cuûa ngoân ngöõ khoâng khaùc 
nhau maø chæ khaùc nhau ôû choã laø caùc kí hieäu ñòa chæ, teân goïi cuûa caùc I/O, vuøng nhôù maø thoâi. 
 37 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.2. CAÁU TRUÙC LEÄNH VAØ TRAÏNG THAÙI KEÁT QUAÛ 
3.2.1. Kieåu döõ lieäu vaø phaân chia boä nhôù 
3.2.1.1. Kieåu döõ lieäu 
Caùc kieåu döõ lieäu ñöôïc söû duïng trong S7-300: 
1) BOOL: vôùi dung löôïng moät bit vaø coù giaù trò 1 hoaëc 0 ( ñuùng hoaëc sai). Ñaây laø kieåu 
döõ lieäu cho bieán hai trò. 
2) Byte: goàm 8 bit, thöôøng ñöôïc bieåu dieãn moät soá nguyeân döông töø 0 ñeán 255 hoaëc laø 
maõ ASCII cuûa moät kyù töï. 
3) Word: goàm 2 byte, bieåu dieãn soá nguyeân töø 0 ñeán 65535. 
4) Int: cuõng coù dung löôïng 2 byte, duøng ñeå bieåu dieãn moät soá nguyeân töø –32768 ñeán 
32767. 
5) Dint: goàm 4 byte, duøng ñeå bieåu dieãn soá nguyeân töø –2147483648 ñeán 2147483647. 
6) Real: goàm 4 byte, duøng ñeå bieåu dieãn soá thöïc coù daáu phaåy ñoäng. 
7) S5t: khoaûng thôøi gian, ñöôïc tính baèng giôø, phuùt, giaây, miligiaây. 
8) Tod: bieåu dieãn giaù trò thôøi gian tính theo giôø/phuùt/giaây. 
9) Date: bieåu dieãn giaù trò thôøi gian tính theo naêm/thaùng/ngaøy. 
10) Char: bieåu dieãn moät kyù töï hay nhieàu kyù töï (nhieàu nhaát laø 4 kyù töï). 
3.2.1.2. Phaân chia boä nhôù 
Boä nhôù S7-300 chia laøm ba vuøng chính: 
1) Vuøng chöùa chöông trình öùng duïng. Vuøng nhôù chia thaønh 3 mieàn: 
a) OB (Organization Block): Mieàn chöùa chöông trình toå chöùc. 
b) FC (Function): Mieàn chöùa chöông trình con, ñöôïc toå chöùc thaønh haøm vaø coù bieán 
hình thöùc ñeå trao ñoåi döõ lieäu vôùi chöông trình goïi noù. 
c) FB (Function Block): Mieàn chöùa chöông trình con, ñöôïc toå chöùc thaønh haøm vaø coù 
khaû naêng trao ñoåi döõ lieäu vôùi baát kyø moät khoái chöông trình naøo khaùc. Caùc döõ lieäu 
naøy phaûi ñöôïc xaây döïng thaønh moät khoái döõ lieäu rieâng (goïi laø DB – Data Block). 
2) Vuøng chöùa tham soá cuûa heä ñieàu haønh vaø chöông trình öùng duïng, ñöôïc chia thaønh 7 
mieàn khaùc nhau, bao goàm: 
a) I (Process image input): Mieàn boä ñeäm caùc döõ lieäu coång vaøo soá. Tröôùc khi baét ñaàu thöïc 
hieän chöông trình, PLC seõ ñoïc taát caû caùc giaù trò logic cuûa taát caû caùc coång vaøo vaø löu tröõ 
ôû vuøng nhôù I. Chöông trình öùng duïng khoâng ñoïc tröïc tieáp traïng thaùi logic cuûa coång vaøo 
soá maø chæ laáy döõ lieäu cuûa coång vaøo töø boä ñeäm I. 
b) Q (Process image output): Mieàn boä ñeäm caùc döõ lieäu coång ra soá. Keát thuùc giai ñoaïn thöïc 
hieän chöông trình, PLC seõ chuyeån giaù trò logic cuûa boä ñeäm Q ñeán caùc coång ra soá. 
Chöông trình khoâng tröïc tieáp gaùn giaù trò tôùi coång ra maø chæ chuyeån chuùng vaøo boä ñeäm 
Q. 
c) M: Mieàn caùc bieán côø. Chöông trình söû duïng caùc vuøng nhôù naøy ñeå löu tröõ caùc tham soá 
caàn thieát vaø coù theå truy nhaäp theo kieåu bit (M), byte (MB), töø ñôn (MW)hay töø keùp 
(MD). 
d) T: Mieàn nhôù phuïc vuï boä thôøi gian (timer) bao goàm löu tröõ giaù trò thôøi gian ñaët tröôùc (PV 
– preset value), giaù trò ñeám thôøi gian töùc thôøi (CV – Current value) cuõng nhö giaù trò 
logic ôû ñaàu ra cuûa timer. 
 38 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
e) C: Mieàn nhôù phuïc vuï boä ñeám (counter) bao goàm löu tröõ giaù trò thôøi gian ñaët tröôùc (PV – 
preset value), giaù trò ñeám töùc thôøi (CV – Current value) cuõng nhö giaù trò logic ôû ñaàu ra 
cuûa boä ñeám. 
f) PI: Mieàn ñòa chæ coång vaøo cuûa caùc module töông töï (I/O External input). Caùc giaù trò 
töông töï taïi coång vaøo cuûa module töông töï seõ ñöôïc module ñoïc vaø chuyeån töï ñoäng theo 
nhöõng ñòa chæ. Chöông trình öùng duïng coù theå truy nhaäp mieàn nhôù PI theo caùc kieåu bieán 
byte (PIB), töø ñôn (PIW) hay töø keùp (PID). 
g) PQ: Mieàn ñòa chæ coång ra cuûa caùc module töông töï (I/O External output). Caùc giaù trò 
theo nhöõng ñòa chæ naøy seõ ñöôïc module töông töï chuyeån töï ñoäng tôùi caùc coång ra töông 
töï. Chöông trình öùng duïng coù theå truy nhaäp mieàn nhôù PQ theo caùc kieåu bieán byte 
(PQB), töø ñôn (PQW) hay töø keùp (PQD). 
3) Vuøng chöùa caùc khoái döõ lieäu 
a) DB (Data Block): mieàn chöùa döõ lieäu ñöôïc toå chöùc thaønh hình khoái. Kích thöôùc vaø soá 
löôïng khoái cuõng do ngöôøi duøng quy ñònh tuøy theo chöông trình. Chöông trình öùng duïng 
coù theå truy naäp tôùi mieàn nhôù naøy theo bit (DBX), byte (DBB), töø ñôn (DBW) haëoc töø 
keùp (DBD). 
b) L (Local data bolck): Mieàn döõ lieäu cuïc boä, ñöôïc caùc khoái chöông trình OB, FC, FB toå 
chöùc vaø söû duïng cho caùc bieán nhaùp töùc thôøi vaø trao ñoåi döõ lieäu cuûa bieán hình thöùc vôùi 
nhöõng khoái chöông trình ñaõ goïi noù. Noäi dung cuûa moät soá döõ lieäu trong mieàn nhôù naøy seõ 
bò xoùa khi keát thuùc chöông trình töông öùng trong OB, FC, FB. Mieàn naøy coù theå truy 
nhaäp ñöôïc töø chöông trình theo bit (L), byte (LB), töø (LW) hoaëc töø keùp (LD). 
3.2.2. Caáu truùc leänh vaø traïng thaùi keát quaû 
3.2.2.1. Toaùn haïng laø döõ lieäu 
a) Döõ lieäu logic True vaø False coù ñoä daøi 1 bit. Ví duï 
Bit_1 = True //giaù trò logic 1 ñöôïc gaùn cho bit_1 
b) Soá nhò phaân. Ví duï 
L 2#00101101 //naïp soá nhò phaân vaøo thanh ghi ACCU1 
c) Soá Hexadecimal x coù ñoä daøi 1 byte(B#16#x), 1 töø (W#16#x) hoaëc 1 töø keùp (DW#16#x). 
Ví duï 
L B#16#2E //naïp soá 2E vaøo byte thaáp thanh ghi ACCU1 
L W#16#4D2 //naïp soá 4D2 vaøo 2 byte thaáp thanh ghi ACCU1 
L DW#16#D1B2E //naïp soá D1B2E vaøo thanh ghi ACCU1 
d) Soá nguyeân x vôùi ñoä daøi 2byte cho bieán kieåu INT. Ví duï 
L 960 
e) Soá nguyeân x vôùi ñoä daøi 4byte daïng L#x cho bieán kieåu DINT. Ví duï 
L L#600 
f) Soá thöïc x cho kieån bieán REAL. Ví duï 
L 450.0 
g) Döõ lieäu thôøi gian cho bieán kieåu S5T daïng giôø_phuùt_giaây_miligiaây. Ví duï 
L S5T#3h_5m_1s_10ms 
h) Döõ lieäu thôøi gian cho bieán kieåu TOD daïng giôø:phuùt:giaây. Ví duï 
L TOD#6:30:15 
 39 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
i) DATE: bieåu dieãn giaù trò thôøi gian tính theo naêm/thaùng/ngaøy. Ví duï 
L DATE#2000-12-9 
j) C: bieåu dieãn giaù trò soá ñeám ñaët tröôùc cho boä ñeám. Ví duï 
L C#50 
k) P: döõ lieäu bieåu dieãn ñòa chæ cuûa moät bit oâ nhôù. Ví duï 
L P#Q0.3 
l) Döõ lieäu kí töï. Ví duï 
L ‘BCDE’ 
3.2.2.2. Toaùn haïng laø ñòa chæ 
 Ñòa chæ oâ nhôù ñöôïc caáu taïo thaønh hai phaàn: phaàn chöõ vaø phaàn soá. Ví duï 
M0.9 PQW272 
Phaàn chöõ Phaàn soá Phaàn chöõ Phaàn soá 
 Phaàn chöõ chæ vò trí vaø kích thöôùc cuûa oâ nhôù (tham khaûo 3.2.1) 
 Phaàn soá chæ ñòa chæ cuûa byte hoaëc bit trong mieàn nhôù ñaõ xaùc ñònh. 
3.2.2.3. Thanh ghi traïng thaùi 
Khi thöïc hieän leänh, CPU seõ ghi nhaän laïi traïng thaùi cuûa pheùp tính trung gian cuõng 
nhö cuûa keát quaû vaøo moät thanh ghi 16 bit vaø ñöôïc goïi laø thanh ghi traïng thaùi (status word). 
Tuy nhieân noù chæ söû duïng vôùi 9 bit vaø caáu truùc ñöôïc moâ taû nhö sau: 
8 7 6 5 4 3 2 1 0 
BR CC1 CC0 OV OS OR STA RLO FC 
- FC (First check ): Khi phaûi thöïc hieän moät daõy caùc leänh logic lieân tieáp nhau goàm caùc 
pheùp tính vaø, hoaëc vaø nghòch ñaûo, bit FC coù giaù trò baèng 1. Ngöôïc laïi, FC=0 khi daõy 
leänh logic tieáp ñieåm vöøa hoaøn taát. 
Ví duï: 
A I0.2 //FC=0 
O I0.4 //FC=0 
= Q1.0 //FC=0 
- RLO (Result of Logic Operation): Keát quaû töùc thôøi cuûa pheùp toaùn logic vöøa ñöôïc thöïc 
hieän. Ví duï: 
A I0.1 
a) Neáu tröôùc khi thöïc hieän bit FC=0 thì coù taùc duïng chuyeån noäi dung cuûa ngoõ vaøo soá I0.1 
vaøo bit traïng thaùi RLO. 
b) Neáu tröôùc khi thöïc hieän bit FC=1 thì coù taùc duïng thöïc hieän pheùp toaùn vaø giöõa RLO vaø 
giaù trò logic ngoõ vaøo I0.1. Keát quaû cuûa pheùp tính ñöôïc ghi laïi vaøo bit traïng thaùi RLO. 
- STA (Status bit): Bit traïng thaùi naøy luoân coù giaù trò logic cuûa tieáp ñieåm ñöôïc chæ ñònh 
trong leänh. 
 40 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Ví duï: 
A I1.0 
AN I1.0 
Caû hai leänh ñeàu gaùn cho STA cuøng moät giaù trò laø noäi dung cuûa ngoõ vaøo soá I1.0. 
- OR: Ghi laïi giaù trò logic cuûa pheùp toaùn vaø cuoái cuøng ñöôïc thöïc hieän ñeå giuùp ñôõ cho vieäc 
thöïc hieän pheùp toaùn hoaëc sau ñoù. Ñieàu naøy laø caàn thieát vì cuøng moät bieåu thöùc haøm hai 
trò thì bao giôø pheùp toaùn vaø cuõng thöïc hieän tröôùc pheùp toaùn hoaëc. 
- OS (Stored overflow bit): Ghi laïi giaù trò bit bò traøn ra ngoaøi maûng oâ nhôù. 
- OV (Overflow bit): Bít baùo keát quaû bò traøn ra ngoaøi maûng oâ nhôù. 
- CC0 vaø CC1 (Condition code): Hai bit baùo traïng thaùi keát quaû pheùp tính vôùi soá nguyeân, 
soá thöïc, pheùp dòch chuyeån hoaëc pheùp tính logic trong ACCU. 
- BR (Binary result bit): Bit traïng thaùi cho pheùp lieân keát hai loaïi ngoân ngöõ laäp trình STL 
vaø LAD. Chaúng haïn cho pheùp ngöôøi söû duïng coù theå vieát moät khoái chöông trình FB hoaëc 
FC treân STL nhöng goïi vaø söû duïng trong chöông trình vieát treân LAD. Ñeå taïo ra moái 
lieân keát ñoù, ta phaûi thöïc hieän vieäc keát thuùc chöông trình trong FB, FC baèng leänh ghi: 
a) 1 vaøo BR, neáu chöông trình chaïy khoâng coù loãi. 
b) 0 vaøo BR, neáu chöông trình chaïy coù loãi. 
Chuù yù: Moät chöông trình coù theå coù moät hay nhieàu network tuøy thuoäc vaøo tính chaát, möùc ñoä 
traïng thaùi hoaït ñoäng cuûa heä thoáng. Nhöng moãi Network chæ chöùa moät ñoaïn chöông trình 
thöïc hieän moät nhieäm vuï cuï theå. 
 Network 1 
 Ñoaïn chöông trình 1
Network 2 
 Ñoaïn chöông trình 2
Network 3 
 Ñoaïn chöông trình 3
3.3. CAÙC LEÄNH LOGIC 
Leänh logic laøm vieäc treân heä thoáng soá nhò phaân vôùi hai bit soá, ñoù laø : bit 1 vaø bit 0 
Trong ñieàu khieån ngöôøi ta thöôøng quy ñònh 1 laø traïng thaùi hoaït ñoäng hay coù naêng löôïng, 0 
laø traïng thaùi khoâng hoaït ñoäng hay khoâng naêng löôïng. 
Caùc leänh Logic treân bit theå hieän caùc traïng thaùi tín hieäu 1 vaø 0 vaø lieân keát chuùng 
thaønh pheùp toaùn logic. Keát quaû cuûa keát hôïp naøy laø 1 hoaëc 0 vaø ñöôïc goïi laø RLO. 
Leänh toaùn logic bao goàm caùc leänh cô baûn sau: 
• A Vaø (And) 
• AN Phuû ñònh vaø (And Not) 
 41 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
• O Hoaëc (Or) 
• ON Phuû ñònh hoaëc (Or Not) 
• X Loaïi tröø (Exclusive) 
• XN Phuû ñònh loaïi tröø (Exclusive Not) 
• And tröôùc Or 
Chuùng ta coù theå söû duïng caùc leänh sau ñeå thöïc hieän caùc bieåu thöùc loàng vaøo nhau: 
• A( Vaø vôùi loàng môû 
• AN( Phuû ñònh vaø vôùi loàng môû 
• O( Hoaëc vôùi loàng môû 
• ON( Phuû ñònh hoaëc vôùi loàn
• X( Loaïi tröø vôùi loàng môû
• XN( Phuû ñònh loaïi tröø vôùi 
• ) Ñoùng loàng keát thuùc ñ
Chuùng ta coù theå keát thuùc chuoãi leänh bieåu th
• = Pheùp gaùn (Assign) 
• R Xoaù nhôù (Reset) 
• S Nhôù (Set) 
Chuùng ta coù theå söû duïng moät trong nhöõng l
(RLO): 
• NOT Phuû ñònh RLO 
• SET Nhô RLO (=1) 
• CLR Xoùa RLO (=0) 
• SAVE Löu tröõ RLO ôû thanh
Hay laø söû duïng moät leänh sau ñeå phaùt hieän söôøn
• FN Phaùt hieän caïnh xuoáng
• FP Phaùt hieän caïnh leân (E
3.3.1. Leänh gaùn 
Cuù phaùp = 
Ñòa chæ Loaïi d
Bit Bo
Ví duï: 
Chöông trình STL 
 g môû 
loàng môû 
oaïn leänh. 
öùc logic baèng caùc leänh: 
eänh sau ñeå thay ñoåi keát quaû cuûa pheùp toaùn logic 
 ghi BR 
 leân vaø xuoáng cuûa tín hieäu: 
 (Edge Negative) 
dge Positive) 
Toaùn haïng 
öõ lieäu Vuøng bieán nhôù 
ol I, Q, M, L, D 
 42 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.3.2. Leänh thöïc hieän pheùp tính vaø 
Cuù phaùp A 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D, T, C 
A kieåm tra khoâng bieát traïng thaùi cuûa bit ñòa chæ (toaùn haïng) laø 1 hay khoâng, vaø AND keát 
quaû kieåm tra vôùi RLO. 
Ví duï: 
Q0.2 möùc tín hieäu 0 
I1.1 mö
I1.0 mö
Nguoàn ñieän
A I1.1
= Q0.2
A I1.0
Rôø le logicChöônh trình STL
Cuoän daây 
3.3.3. Leänh thöïc hieän pheùp tính vaø vôùi giaù trò nghòch ñaûo 
Cuù phaùp AN 
AN kieåm tra khoâng bieát traïng thaùi cuûa bit ñòa chæ (toaùn haïng) laø 0 hay khoâng, vaø AND keát 
quaû kieåm tra vôùi RLO. 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D, T, C 
I1.1 mö
Q0.2 m
I1.0 mö
Nguoàn ñieän
A I1.1
= Q0.2
A I1.0
Rôø le logicChöônh trình STL
Ví duï: 
 NO tieáp ñieåm 
NC tieáp ñieåm ùc tín hieäu 1
ùc tín hieäu 0ùc tín hieäu 0
ùc tín hieäu 0
NO tieáp ñieåm 
NO tieáp ñieåm Cuoän daây öùc tín hieäu 0 
 43 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.3.4. Leänh thöïc hieän pheùp tính hoaëc 
Cuù phaùp O 
O kieåm tra khoâng bieát traïng thaùi cuûa bit ñòa chæ (toaùn haïng) laø 1 hay khoâng, vaø OR keát quaû 
kieåm tra vôùi RLO vaø ghi laïi keát quaû vaøo RLO. 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D, T, C 
O I1.1
= Q0.2
O I1.0
Rôø le logicChöônh trình STL
Cuoän daây 
Nguoàn ñieän
I1.0 mö
Q0.2 möùc tín hieäu 0 
Ví duï: 
3.3.5. Leänh thöïc hieän pheùp tính hoaëc vôùi giaù trò nghòch ñaûo 
Cuù phaùp ON 
ON kieåm tra khoâng bieát traïng thaùi cuûa bit ñòa chæ (toaùn haïng) laø 0 hay khoâng, vaø OR keát 
quaû kieåm tra vôùi RLO vaø ghi laïi keát quaû vaøo RLO. 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D, T, C 
Nguoàn ñieän
I1.0 m
I1.1 m
Q0.2 m
ON I1.1
= Q0.2
O I1.0
Rôø le logicChöônh trình STL
Ví duï 5: 
 NC tieáp ñieåm 
öùc tín hieäu 0
öùc tín hieäu1
NO tieáp ñieåm NO tieáp ñieåm 
ùc tín hieäu 0 I1.1 möùc 0 Cuoän daây öùc tín hieäu 1 
 44 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.3.6. Leänh thöïc hieän pheùp tính exclusive or 
Cuù phaùp X 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D, T, C 
X kieåm tra khoâng bieát traïng thaùi cuûa bit ñòa chæ (toaùn haïng) laø 1 hay khoâng, vaø XOR keát quaû kieåm 
tra vôùi RLO vaø ghi laïi keát quaû vaøo RLO 
Ví duï: 
Q0.2 cuoän daây
Tieáp ñieåm I1.1 
Tieáp ñieåm I1.0 
Nguoàn ñieän
X I0.1
= Q1.2
X I0.0
Rôø le logicChöônh trình STL
3.3.6. Leänh thöïc hieän pheùp tính exclusive or not 
Cuù phaùp XN 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D, T, C 
X kieåm tra khoâng bieát traïng thaùi cuûa bit ñòa chæ (toaùn haïng) laø 0 hay khoâng, vaø XOR keát quaû kieåm 
tra vôùi RLO vaø ghi laïi keát quaû vaøo RLO 
Ví du: 
Q0.2 c
Tieáp ñ
Tieáp ñ
Nguoàn ñieän
XN I0.1
= Q1.2
X I0.0
Rôø le logicChöônh trình STL 
 ieåm I1.1 
ieåm I1.0 uoän daây
 45 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.3.7. Leänh thöïc hieän pheùp tính vaø vôùi giaù trò moät bieåu thöùc 
Cuù phaùp A( 
Chuù yù: leänh khoâng coù Toaùn haïng 
A( thöïc hieän pheùp tính vaø giöõa RLO vôùi bieåu thöùc trong daáu ngoaëc sau noùvaø ghi laïi keát quaû vaøo 
RLO. 
Ví duï: 
Q1.2 cuoän daây
I0.4
M0.0 M0.1 
M1.1 
M1.4A M1.4
A( 
O M1.1
 ) 
O I0.4
A( 
Nguoàn ñieän
= Q1.2
O I0.0
O M0.1
 ) 
Rôø le logicChöônh trình STL 
3.3.8. Leänh thöïc hieän pheùp tính hoaëc vôùi giaù trò nghòch ñaûo moät bieåu thöùc 
Cuù phaùp O( 
Chuù yù: leänh khoâng coù Toaùn haïng 
O( thöïc hieän pheùp tính hoaëc giöõa RLO vôùi giaù trò logic cuûa bieåu thöùc trong daáu ngoaëc sau noùvaø ghi 
laïi keát quaû vaøo RLO. 
Ví duï: 
Q1.2 cuoän daây
I0.4 
I0.0
M1.1 
M1.4A M1.4
O( 
AN M1.1
 ) 
A I0.4
Nguoàn ñieän
= Q1.2
A I0.0
Rôø le logicChöônh trình STL
 46 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Ví duï: Vieát chöông trình khôûi ñoäng ñoäng khoâng ñoàng boä 3 phase moâ taû hình 3.2. Nhaán nuùt Start PB 
ñoäng cô chaïy, nhaán nuùt Stop PB thì ñoäng cô döøng. 
• Baûng gaùn nhieäm vuï I/O 
• Chöông trình 
Network1: 
A( 
O “Start PB” 
O “Coil MC” 
 ) 
A “Stop PB” 
= “C
Ví duï: Vieát chöô xaùc 
ñònh tröôùc ñöôïc m aïn 
haønh trình SS1. K aåy 
phoâi theùp dòch c hôøi 
dao caét ñi xuoáng ñeå caét phoâi theùp vaø gaëp SS2 thì caét xong vaø dao seõ trôû veà vò trí ban ñaàu 
(treân cuøng) keát thuùc quaù trình caét moät thanh theùp. 
• Baûng gaùn nhieäm vuï I/O 
• Chöông trình 
Network1: 
 A "Start PB" 
 AN "Motor Brake" 
 S "Friction Wheel Motor" 
Network2: 
N
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
Start PB I0.0 Coil MC Q0.0 
Stop PB I0.1 
I0.0
I0.1
Hình 3.2 – Maïch ñieän ñoäng cô 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ 
Start PB I0.0 Friction Wheel Motor Q0.0 
1Y
P
Motor Brake
Cutting Knife
Cutting Finish 
Sensor 
Q0.2 Cutting Knife I0.2 Cutting Finish Sensor 
Motor Brake Q0.1 I0.1 Dimension sensor 
n
Q0.0
 A "Dimension sensor" 
 R "Friction Wheel Motor" 
 S "Cutting Knife" 
 S "Motor Brake" 
etwork3: A "Cutting 
 R "Cutting
 R "Motor Boil MC” 
ng trình cho PLC ñieàu khieån coâng ñoaïn caét saûn phaåm theo kích thöôùc ñöôïc 
oâ taû hình 3.3. Chieàu daøi cuûa saûn phaåm laø khoaûng caùch giöõa dao caét vaø giôùi h
hi nhaán nuùt Start PB thì ñoäng cô truyeàn chuyeån ñoäng baùnh ma saùt (1) ñ
huyeån. Gaëp SS1 thì thaéng ñoäng cô laøm vieäc vaø ñoäng cô döøng, ñoàng t
Bieåu ñoà traïng thaùi theo thôøi giaFinish Sensor" 
 Knife" Hình 3.3 – Cô caáu caét saûn phaåm theo kích thöôùc 
Friction Wheel Motor Workpiece Dimension Sensor
rake" 
 47 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.3.9. Leänh gaùn giaù trò logic 1 vaøo oâ nhôù (Set bit) 
Cuù phaùp S 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D 
S seõ ñaët giaù trò 1 vaøo oâ nhôù cuûa bit ñòa chæ, neáu RLO=1. 
Ví duï: 
NO contact
Nguoàn ñieän
Rôø le logicChöônh trình STL 
3.3.10. Leänh gaùn giaù trò logic 0 vaøo oâ nhôù (Reset bit) 
Cuù phaùp R 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D 
R seõ ñaët giaù trò 0 vaøo oâ nhôù cuûa bit ñòa chæ, 
neáu RLO=1. Xem ôû leänh Set bit. 
Ví duï: 
Vieát chöông trình cho PLC ñieàu khieån thieát bò 
khoan thuûy löïc cuûa moät ñaàu khoan töï ñoäng moâ taû 
hình 3.4, vôùi yeâu caàu kyõ thuaät nhö sau: Ñöa chi 
tieát vaøo vò trí caàn khoan, roài aán nuùt Dri
muõi khoan xoay, ñaàu khoan tònh tieán vaø kh
tieát. Ñaït ñuû chieàu saâu khoan caàn thieát 
ñoäng), ñaàu khoan töï ñoäng quay veà vaø k
moät chu kyø khoan taïi S3. Trong quaù trình g
neáu xaûy ra söï coá ta aán nuùt Home Back, ña
töï ñoäng lui veà. 
 ll Start, 
oan chi 
(S4 taùc 
eát thuùc 
ia coâng àuCoil Q4.0 
NC contact
 I1.0 Hình 3.4 – Cô caáu khoan khoan 
 48 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
• Baûng gaùn nhieäm vuï I/O 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
Drill Start I0.0 Sol 1Y Q0.0 
Home Back I0.1 
S3 I0.2 
S4 I0.3 
I0.3
I0.2
Q0.0
I0.1
I0.0
Bieåu ñoà traïng thaùi theo thôøi gian• Chöông trình 
Network1: // Khi Drill Start laø 1 thì 1Y ñöôïc nhôù leân 1. Network2: // S4 laø 1 hoaëc Home Back laø 0 thì 
xoùa 1Y 
 A "Drill Start" O "S4" 
 A "S3" ON "Home Back" 
 S "Solenoid 1Y" R "Solenoid 1Y" 
 3.3.11. Leänh ñaûo giaù trò cuûa RLO 
Cuù phaùp NOT 
NOT ñaûo noäi dung cuûa RLO. Chuù yù: leänh khoâng coù Toaùn haïng 
Ví duï: 
I1.0 
I1.0 
Q4.0 
 Signal state diagram
1
0
0
1
A I1.0
NOT 
 = Q4.0
Coil Q4.0 
NC contact
Nguoàn ñieän
Rôø le logic Chöônh trình STL 
3.3.12. Leänh ghi giaù trò 1 vaøo RLO 
Cuù phaùp SET 
Leänh khoâng coù toaùn haïng vaø coù taùc duïng ghi 1 vaøo RLO. 
Ví duï: 
Keát quûa traïng thaùi logic 
 Möùc tín hieäu 49 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.3.13. Leänh ghi giaù trò 0 vaøo RLO 
Cuù phaùp CLR 
Leänh khoâng coù toaùn haïng vaø coù taùc duïng ghi 0 vaøo RLO. 
xem ôû leänh SET (3.3.12). 
3.3.14. Leänh chuyeån giaù trò RLO vaøo BR 
Cuù phaùp CLR 
Leänh chuyeån noäi dung cuûa RLO vaøo bit traïng thaùi BR. Leänh khoâng laøm thay ñoåi noäi dung 
caùc bit coøn laïi cuûa thanh ghi traïng thaùi. 
3.3.15. Leänh phaùt hieän söôøn xuoáng 
Cuù phaùp FN 
FN seõ phaùt hieän söôøn xuoáng cuûa tín hieäu khi RLO chuyeån töø 1 sang 0 vaø seõ ghi giaù 
trò 1 vaøo RLO. Ñaëc ñieåm ñöôïc moâ taû ôû hình 3.5. 
Toaùn haïng 
Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù 
Bit Bool I, Q, M, L, D 
Hình 3.5 – Ñaëc ñieåm söôøn leân 
Ví duï: 
Khi PLC phaùt hieän söôøn xuoáng ôû tieáp ñieåm I1.0, noù seõ taïo ra moät xung taïi ñòa chæ ngoõ ra 
Q0.4 öùng vôùi moät voøng queùt OB1. 
Bieån ñoà traïng thaùi tín hieäu Chöônh trình STL 
Ví duï: Vieát chöông trình ñieàu khieån ñoùng môû cöûa kho töï ñoäng moâ taû hình 3.6. 
Khi xe ñang tieán veà gaàn cöûa kho, caûm bieán Ultrasounic SS1 nhaän daïng ñöôïc xe vaø cöûa seõ 
ñöôïc môû ra ñeán gaëp giôùi haïn haønh trình treân LS2 thì cöûa döøng laïi roài xe chaïy vaøo. Khi caûm 
bieán quang SS2 ñaët phía trong coång cöûa nhaän daïng ñöôïc xe ñaõ ñi qua khoûi cöûa thì cöûa seõ 
 50 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
ñöôïc ñoùng laïi, chaïm vaøo giôùi haïn haønh trình döôùi LS1 thì cöûa döøng laïi. Chuù yù xe chæ ñi moät 
chieàu. 
• Baûng gaùn nhieäm vuï caùc I/O 
• Chöông trình ñieàu khieån 
Network1: // Khi SS1 laø 1 (coù xe vaøo) thì cöûa cuo
A "SS1" 
S "Raisedoor" 
Caûm bieán 
Ñoäng cô 
keùo cöûa
Caûm bieán vò trí 
1, LS2} 
Input (ngoû vaøo) Output (ngoû ra
SS2 I0.1 Downdoor(CCW) Q
LS1 I0.2 
LS2 I0.3 
Teân goïi Ñòa chæ Teân goïi Ñ
SS1 I0.0 Raisedoor(CW) Q
R "Downdoor" 
Network2: // Khi LS1 laø 1 thì cöûa döøng laïi taïi giô
treân 
A "LS1" 
R "Raisedoor" 
Network3: // Khi SS2 chuyeån traïng thaùi 1sang
qua khoûi noù) thì cöûa cuoán xuoáng ñeå ñoùng cöûa 
A "SS2" 
FN M 0.0 
S "Downdoor" 
Network4: // Khi LS2 laø 1 thì cöûa döøng laïi taïi giô
döôùi 
 A "LS2" 
 R "Downdoor" 
FP seõ phaùt hieän söôøn leân cuûa tín hieäu khi
RLO. Ñaëc ñieåm ñöôïc moâ taû ôû hình 3.5. 
Ví duï: 
 Ultrasounic SS1 {LS
) 
òa chæ
0.0 án leân 
Caûm bieán 
quang SS2
Xe chôû haøng 
Hình 3.6 Ñieàu khieån cöûa töï ñoäng 
Cöûa cuoán0.1 
Bieåu ñoà traïng thaùi theo thôøi gian
M0.0
Downdoor
LS2
SS1
ùi haïn 
SS2
LS1
 0 (xe 
ùi haïn 
aïng 
Vuøng bieán nhôù 
I, Q, M, L, D 
3.3.16. Leänh phaùt hieän söôøn leân 
Cuù phaùp FP 
Toaùn h
Ñòa chæ Loaïi döõ lieäu 
Bit Bool RLO chuyeån töø 0 sang 1 vaø seõ ghi giaù trò 1 vaøo 
 51 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Khi PLC phaùt hieän söôøn leân ôû tieáp ñieåm I1.0, noù seõ taïo ra moät xung taïi ñòa chæ ngoõ ra Q0.4 
öùng vôùi moät voøng queùt OB1 
Bieån ñoà traïng thaùi tín hieäu Chöônh trình STL 
Ví duï: 
Vieát chöông trình cho maùy daäp thuûy löïc moâ taû 
hì c ñaàu, ñaàu daäp 
ôû øo ta aán nuùt S1, 
ña veà khi gaëp S5. 
T aán nuùt S3 ñaàu 
da uùt S2 ñaàu daäp 
qu
• 
• 
N
N
 nh 3.7, vôùi yeâu caàu kyõ thuaät nhö sau:Luù
vò trí chôø (S4), khi ñöa chi tieát caàn daäp va
àu daäp tònh tieán ra vaø daäp chi tieát vaø trôû 
rong quaù trình gia coâng neáu xaûy ra söï coá,
äp seõ döøng laïi ôû vò trí ñoù. Sau ñoù, ta aán n
ay veà. 
Baûng gaùn nhieäm vuï I/O 
Chöông trình 
etwork1: // Khi S1 vaø S4 laø 1 thì 1Y1 laø 1 
 A "S1" 
 A "S4" 
 O "1Y1" 
 AN "S5" 
 AN "S3" 
 = "1Y1" 
etwork2: // Khi S5 laø 1 thì 1Y2 laø 1 
 A "S5" 
 O "S2" 
 O "1Y2" 
 52 
Hình 3.7 – Cô caáu daäp thuûy löïc
S1
S2
S3
S4
1Y2
Bieåu ñoà traïng thaùi theo thôøi gian
S5
1Y1
t
t
t
Xy lanh
L
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ 
S5 I0.4 
Teân goïi Ñòa chæ
S1 I0.0 1Y1 Q0.0 
S2 I0.1 1Y2 Q0.1 
S1 I0.2 
S2 I0.3 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 AN M0.1 
 AN "S3" 
 = "1Y2" 
Network3: // Khi S4 chuyeån traïng thaùi töø 0 -> 1 thì bit M0.1 laø 1 
 A "S4" 
 FP M 0.0 
 = M 0.1 
3.4. LEÄNH NAÏP VAØ CHUYEÅN NOÄI DUNG THANH GHI 
Trong CPU cuûa S7-300 thöôøng coù hai thanh ghi Accumulator (ACCU) kí hieäu laø 
ACCU1 vaø ACCU2. Hai thanh ghi coù cuøng kích thöôùc 32 bit (~ 1 Double Word). 
Chuùng coù caáu truùc nhö sau: 
Töø cao
ACCU1 Byte cao Byte
ACCU1 Byte cao Byte
31 2324 
Leänh naïp (L - Load) vaø chuyeån (T –
trình thay ñoåi thoâng tin laãn nhau giöõa caùc m
giöõa caùc vuøng nhôù. 
3.4.1. Leänh naïp vaøo ACCU 
Cuù phaùp L 
Kieåu döõ lieäu Vu
BYTE 
WORD 
DWORD 
I, Q,
Leänh L coù taùc duïng chuyeån döõ lieäu ho
thanh ghi ACCU1. Noäi dung cuõ cuûa ACCU1
giaù trò chuyeån vaøo coù kích thöôùc nhoû hôn töø 
cuûa töø thaáp ñeán byte cao cuûa töø cao. Nhöõng b
Chaúng haïn: 
Leänh L IB2 seõ chuyeån noäi d
 24 2331
ACCU1 0 
Leänh L MW10 seõ chuyeån noäi d
ACCU1 theo thöù töï sau: 
 Töø thaáp 
 thaáp Byte cao Byte thaáp 
 thaáp Byte cao Byte thaáp 
0781516 Transfer) cho pheùp chuùng ta coù khaû naêng laäp 
odule ngoõ vaøo hoaëc ra vaø caùc vuøng nhôù, hoaëc 
Toaùn haïng 
øng bieán nhôù Ñòa chæ nguoàn 
 PQ, M, L, D
0…65535 
0…65334 
0…65332 
aëc noäi dung oâ nhôù coù ñòa chæ laø toaùn haïng vaøo 
 ñöôïc chuyeån vaøo ACCU2. Trong tröôøng hôïp 
keùp thì noù seõ ñöôïc ghi theo thöù töï töø byte thaáp 
it coøn troáng trong ACCU1 ñöôïc ghi 0. 
ung cuûa IB2 vaøo ACCU1 nhö sau: 
16 15 8 7 0
0 0 IB2 
ung cuûa MW10 goàm 2 byte MB10, MB11 vaøo 
53 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 54 
 24 23 16 15 8 7 031
ACCU1 0 0 MB10 MB11 
Leänh khoâng thay ñoåi traïng thaùi cuûa thanh ghi (Status word) 
3.4.2. Leänh chuyeån noäi dung ACCU vaøo oâ nhôù 
Cuù phaùp T 
Ñòa chæ nguoàn 
BYTE 
WORD 
DWORD 
I, Q, PQ, M, L, D
0…65535 
0…65334 
0…65332 
Leänh chuyeån noäi dung cuûa ACCU1 vaøo oâ nhôù coù ñòa chæ laø toaùn haïng. Leänh khoâng 
thay ñoåi noäi dung trong ACCU2. Trong tröôøng hôïp oâ nhôù coù kích thöôùc nhoû hôn töø keùp thì 
noäi dung cuûa ACCU1 ñöôïc chuyeån ra theo thöù töï töø byte thaáp cuûa töø thaáp ñeán byte cao cuûa 
töø thaáp, byte thaáp cuûa töø cao, byte cao cuûa töø cao. 
Ví duï: 
T QB1 //seõ chuyeån noäi dung cuûa byte thaáp cuûa töø thaáp trong ACCU1vaøo QB1 
T MW12 //seõ chuyeån byte cao cuûa töø thaáp cuûa ACCU1 vaøo MB12 vaø byte thaáp cuûa töø thaáp 
 cuûa ACCU1 vaøo MB13. 
Leänh khoâng thay ñoåi traïng thaùi cuûa thanh ghi (Status word) 
Ví duï: 
Vieát chöông trình ñieàu khieån toác ñoä dòch chuyeån cuûa moät pít toâng thuûy löïc moâ taû hình 3.8. 
Muoán thay ñoåi toác ñoä cuûa pít toâng ta phaûi thay ñoåi löu löôïng 
löu chaát taùc ñoäng vaøo pít toâng. Ñeå thay ñoåi löu löôïng ta söû 
duïng van servo thuûy löïc. Nguyeân lyù laøm vieäc cuûa van naøy laø 
söï thay ñoåi tuyeán tính cuûa ñieän aùp caáp cho cuoän daây cuûa van 
daãn ñeán söï thay ñoåi löu löôïng tuyeán tính cuûa van. Ñaëc tính cuûa 
van naøy coù theå cho: q = 0 ÷ 100 l/ph ⇔ u = 0 ÷10 volt. 
• Baûng gaùn nhieäm vuï I/O 
PQW274
Ñòa chæ 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi 
Giaù trò nhaäp töø baøn 
phím soá nguyeân 2 byte 
MW0 Van tuyeán tính 
1Y1 
Hình 3.8 - Ñieàu khieån toác ñoä 
• Chöông trình 
Network1: //Giaù trò soá nguyeân 2 byte trong oâ nhôù MW0 ñöôïc chuyeån vaøo oâ nhôù ngoaïi vi PQW272 
L MW0 
T PQW272 Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.5. LEÄNH SO SAÙNH (comparison instruction) 
3.5.1. Giôùi thieäu 
Chuùng ta coù theå duøng caùc leänh so saùnh ñeå so saùnh caëp giaù trò soá sau: 
 Hai soá nguyeân ñôn ( 16 bit) 
 Hai soá nguyeân keùp ( 32 bit) 
 Hai soá thöïc (daáu chaám ñoäng – 32 bit) 
Caùc giaù trò soá naøy ñöôïc naïp vaøo 2 thanh ghi, thanh ghi 1(ACCU 1) vaø thanh ghi 2 (ACCU 
2). Leänh so saùnh so saùnh giaù trò trong thanh ghi 2 vôùi giaù trò trong thanh ghi 1 theo caùc pheùp 
toaùn cô baûn ñöôïc lieät keâ ôû baûng 3-1. 
Keát quaû cuûa pheùp so saùnh laø soá nhò phaân, ñoù laø coù theå 1 hoaëc 0. 1 bieåu dieãn pheùp toaùn laø 
ñuùng vaø 0 bieåu dieãn pheùp toaùn laø sai, keát quaû ñöôïc löu giöõ trong RLO bit. 
Baûng 3-1 Pheùp toaùn so saùnh 
Giaù trò soá chöùa trong 
thanh ghi 2 
Pheùp toaùn so saùnh Kí hieäu leänh Giaù trò soá chöùa 
trong thanh ghi 1 
Baèng ==I 
==D 
==R 
Khaùc (khoâng baèng) I 
D 
R 
Lôùn hôn >I 
>D 
>R 
Nhoû hôn <I 
<D 
<R 
Lôùn hôn hoaëc baèng >=I 
>=D 
>=R 
- Nguyeân ( 16 bit) 
- Nguyeân keùp ( 32 bit) 
- Soá thöïc ( 32 bit) 
Nhoû hôn hoaëc baèng <=I 
<=D 
<=R 
- Nguyeân ( 16 bit) 
- Nguyeân keùp ( 32 bit) 
- Soá thöïc ( 32 bit) 
3.5.2. So saùnh hai soá nguyeân 16 bit 
Cuù phaùp ==I, I, I, =I 
So saùnh hai soá nguyeân laø so saùnh noäi dung cuûa thanh ghi ACCU 2 vôùi ACCU 1. Noäi 
dung cuûa hai thanh ghi laø soá nguyeân 16 bit. Keát quaû cuûa pheùp so saùnh laø bit RLO =1 neáu 
keát quaû so saùnh laø ñuùng; RLO = 0 neáu keát quaû so saùnh laø sai. 
Thöïc hieän 
leänh 
Keát quaû RLO neáu 
ACCU2>ACCU1 
Keát quaû RLO neáu 
ACCU2=ACCU1 
Keát quaû RLO neáu 
ACCU2<ACCU1 
 55 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
==I 0 1 0 
I 1 0 1 
>I 1 0 0 
<I 0 0 1 
>=I 1 1 0 
<=I 0 1 1 
Ví duï: 
L MW10 // Chuyeån noäi dung cuûa MW10 vaøo ACCU 1 (16-bit integer). 
L IW24 // Chuyeån noäi dung cuûa IW24 vaøo ACCU 1 (16-bit integer). 
>I // So saùnh ACCU 2 (MW10) lôùn hôn ACCU 1 (IW24) hay khoâng? 
= M 2.0 // RLO = 1 neáu MW10 > IW24. 
3.5.3. So saùnh hai soá nguyeân 32 bit 
Cuù phaùp ==D, D, D, =D 
So saùnh hai soá nguyeân laø so saùnh noäi dung cuûa thanh ghi ACCU 2 vôùi ACCU 1. Noäi 
dung cuûa hai thanh ghi laø soá nguyeân 32 bit. Keát quaû cuûa pheùp so saùnh laø bit RLO =1 neáu 
keát quaû so saùnh laø ñuùng; RLO = 0 neáu keát quaû so saùnh laø sai. 
Thöïc hieän 
leänh 
Keát quaû RLO neáu 
ACCU2>ACCU1 
Keát quaû RLO neáu 
ACCU2=ACCU1 
Keát quaû RLO neáu 
ACCU2<ACCU1 
==D 0 1 0 
D 1 0 1 
>D 1 0 0 
<D 0 0 1 
>=D 1 1 0 
<=D 0 1 1 
Ví duï: 
L MD10 // Chuyeån noäi dung cuûa MD10 vaøo ACCU1. 
L ID24 // Chuyeån noäi dung cuûa ID24 vaøo ACCU1. 
>D // So saùnh ACCU 2 (MD10) lôùn hôn ACCU 1 (ID24) ? 
= M 2.0 // RLO = 1 neáu MD10 > ID24 
3.5.4. So saùnh hai soá thöïc 32 bit 
Cuù phaùp ==R, R, R, =R 
So saùnh hai soá thöïc laø so saùnh noäi dung cuûa thanh ghi ACCU 2 vôùi ACCU 1. Noäi 
dung cuûa hai thanh ghi laø soá thöïc 32 bit. Keát quaû cuûa pheùp so saùnh laø bit RLO =1 neáu keát 
quaû so saùnh laø ñuùng; RLO = 0 neáu keát quaû so saùnh laø sai. 
Thöïc hieän 
leänh 
Keát quaû RLO neáu 
ACCU2>ACCU1 
Keát quaû RLO neáu 
ACCU2=ACCU1 
Keát quaû RLO neáu 
ACCU2<ACCU1 
==R 0 1 0 
 56 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
R 1 0 1 
>R 1 0 0 
<R 0 0 1 
>=R 1 1 0 
<=R 0 1 1 
Ví duï: 
L MD10 // Chuyeån noäi dung cuûa MD10
L 1.359E+02 // Chuyeån haèng soá1.359E+02
>R // So saùnh ACCU 2 (MD10) lô
= M 2.0 // RLO = 1 neáu MD10 > 1.35
Ví duï: 
Vieát chöông trình cho PLC ñieàu khieån cô caáu x
ñaït tôùi moät meû caân laø 30 Kg (bao goàm 25 kg b
moâ taû hình 3.9. Troïng löôïng cuûa pheãu ñöôïc ño
Cho bieát ñaëc tính kyõ thuaät cuûa Loadcell nhö sa
hieäu ra ñieän aùp u = 0 ÷ 10 volt; giaù trò ñoïc ñöô
0 ÷ 26460. 
• Baûng gaùn nhieäm vuï I/O 
T
L
• Chöông trình 
Network1: //Tín hieäu ñieän aùp töø Loadcell 
ñöôïc ñoïc vaøo coång PIW272. Khi chöa coù boät, 
vôùi troïng löôïng cuûa cô caáu pheãu 5Kg Ù giaù 
trò soá nguyeân 2 byte laø 1323. Cöûa pheãu ñoùng 
töùc Q1.0 ôû traïng thaùi “0” 
 L PIW 2.72 
 L 1323 
 ==I 
 R Q 1.0 
Network2: //Khi pheãu chöùa ñaït tôùi 30 Kg, 
töùc laø PIW272 = 7938. Luùc naøy Q1.0 laø “1” 
do ñoù cöûa xaû môû ñeå xaû boät. 
 L PIW 272 
 L 7938 
 >=I 
 S Q 1.0 
3.6. LEÄNH SOÁ HOÏC (Integer Math Instruc
3.6.1. Giôùi thieäu 
Leänh soá hoïc keát hôïp noäi dung cuûa hai t
löu tröõ trong thanh ghi ACCU 1 vaø noäi dung 
dung cuûa ACCU 2 vaãn giöõ nguyeân khoâng thay
 vaøo ACCU 1(floating-point number). 
 vaøo ACCU 1 
ùn hôn ACCU 1 (1.359-E+02)khoâng? 9E+02. 
aû cuûa moät pheãu chöùa boät mì khi troïng löôïng 
oät vaø 5 kg troïng löôïng cuûa pheãu, khung laép) 
 löôøng baèng caûm bieán taûi troïng (Loadcell). 
u: Taàm ño khoái löôïng: m = 0 ÷ 100 Kg; Tín 
ïc töø ngoõ vaøo cuûa caûm bieán qua keânh PIW laø 
Input (ngoû vaøo) Output (ngoû ra) 
eân goïi Ñòa chæ Teân goïi Ñòa chæ
P
1Y
oadcell PIW272 Van khí 1Y Q1.0 
Hình 3.9 – Cô caáu caân vaø xaû boät
tion) 
hanh ghi ACCU 1 vaø ACCU 2. Keát quaû ñuôïc 
cuõ cuûa ACCU 1 ñöôïc ghi vaøo ACCU 2. Noäi 
 ñoåi. 
57 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Söû duïng pheùp toaùn soá hoïc, ta thöïc hieän 4 pheùp toaùn coäng (+), tröø (-), nhaân (*), chia 
(/) vôùi 2 loaïi :soá nguyeân (integer number)16 bit vaø 32 bit; Soá thöïc (real number). 
Ngoaøi ra coøn coù moät soá pheùp toaùn khaùc: trò tuyeät ñoái, bình phöông, caên baäc 2, … 
3.6.2. Pheùp toaùn treân soá nguyeân 16 bit 
3.6.2.1. Pheùp coäng 
Cuù phaùp +I 
Leänh thöïc hieän pheùp coäng soá nguyeân 16 bit trong töø thaáp cuûa ACCU 1 vaø ACCU 2. 
Keát quaû laø soá nguyeân 16 bit ñöôïc ghi vaøo töø thaáp cuûa thanh ghi ACCU 1. Noäi dung cuûa 
thanh ghi ACCU 2 khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 16 bit (-32768 ÷ 32767) thì bit 
traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L IW10 // Naïp giaù trò cuûa IW10 vaøo ACCU1. 
L MW14 // Naïp noäi dung cuûa ACCU 1 vaøo ACCU 2. Naïp giaù trò MW14 vaøo ACCU 1. 
+I // Coäng noäi dung ACCU 1 vaø ACCU 2, ghi vaøo ACCU 1. 
T MW20 // Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo oâ nhôù MW20. 
3.6.2.2. Pheùp tröø 
Cuù phaùp -I 
Leänh thöïc hieän pheùp tröø soá nguyeân 16 bit trong töø thaáp ACCU 2 cho soá nguyeân 
trong töø thaáp cuûa ACCU 1. Keát quaû laø soá nguyeân 16 bit ñöôïc ghi vaøo töø thaáp cuûa thanh ghi 
ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 16 bit (-
32768 ÷ 32767) thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï 27: 
L IW6 // Naïp giaù trò cuûa IW6 vaøo ACCU1. 
L MW8 // Naïp noäi dung cuûa ACCU 1 vaøo ACCU 2. Naïp giaù trò MW8 vaøo ACCU 1. 
-I // Tröø noäi dung ACCU 1 baèng ACCU 2, ghi vaøo ACCU 1. 
T MW10 // Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo oâ nhôù MW10. 
3.6.2.3. Pheùp nhaân 
Cuù phaùp *I 
Leänh thöïc hieän pheùp nhaân hai soá nguyeân 16 bit trong töø thaáp cuûa ACCU 1 vaø 
ACCU 2. Keát quaû laø soá nguyeân 32 bit ñöôïc ghi vaøo töø thaáp cuûa thanh ghi ACCU 1. Noäi 
dung cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 16 bit (-32768 ÷ 
32767) thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L IW2 // Naïp giaù trò cuûa IW2 vaøo ACCU1. 
L MW2 // Naïp noäi dung cuûa ACCU 1 vaøo ACCU 2. Naïp giaù trò MW2 vaøo ACCU 1. 
*I // Nhaân noäi dung ACCU 1 vaø ACCU 2, ghi vaøo ACCU 1. 
T MW6 // Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo oâ nhôù MW6. 
3.6.2.4. Pheùp chia 
Cuù phaùp /I 
Leänh thöïc hieän pheùp chia soá nguyeân 16 bit trong töø thaáp cuûa ACCU 2 cho soá 
nguyeân 16 bit trong töø thaáp cuûa ACCU 1. Keát quaû laø soá nguyeân 16 bit ñöôïc ghi vaøo töø thaáp 
cuûa thanh ghi ACCU 1.Phaàn dö döôïc ghi vaøo töø cao cuûa ACCU 1. Noäi dung cuûa thanh ghi 
 58 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
ACCU 2 khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 16 bit (-32768 ÷ 32767) thì bit traïng thaùi 
OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L MW6 // Naïp giaù trò cuûa IW6 vaøo ACCU1. 
L MW8 // Naïp noäi dung cuûa ACCU 1 vaøo ACCU 2. Naïp giaù trò MW8 vaøo ACCU 1. 
/I // Chia noäi dung ACCU 1 baèng ACCU 2, ghi vaøo ACCU 1. 
T MW10 // Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo oâ nhôù MW10. 
Chaúng haïn: 13 chia 4 
Noäi dung cuûa ACCU 2-L (MW6): "13" 
Noäi dung cuûa ACCU 1-L (MW8): "4" 
Pheùp chia /I (ACCU 2-L / ACCU 1-L): "13/4" 
Noäi dung cuûa ACCU 1-L sau khi thöïc hieän pheùp chia (quotient): "3" 
Noäi dung cuûa ACCU 1-H sau khi thöïc hieän pheùp chia (remainder):”1” 
3.6.3. Pheùp toaùn treân soá nguyeân 32 bit 
3.6.3.1. Pheùp coäng 
Cuù phaùp +D 
Leänh thöïc hieän pheùp coäng soá nguyeân 32 bit cuûa ACCU 1 vaø ACCU 2. Keát quaû laø soá 
nguyeân 32 bit ñöôïc ghi vaøo thanh ghi ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng 
thay ñoåi. Neáu keát quaû naèm ngoaøi 32 bit (-2147483648 ÷ 2147483647) thì bit traïng thaùi OV 
vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L ID10 //Naïp giaù trò cuûa ID10 vaøo ACCU 1. 
L MD14 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD14 vaøo ACCU 1. 
+ D //Coäng ACCU 2 vôùi ACCU 1; ghi keát quaû vaøo ACCU 1. 
T DB1.DBD25 //Noäi dung cuûa ACCU 1 (result) ñöôïc chuyeån vaøo DBD25cuûa DB1. 
3.6.3.2. Pheùp tröø 
Cuù phaùp -D 
Leänh thöïc hieän pheùp tröø soá nguyeân 32 bit trong ACCU 2 cho soá nguyeân cuûa ACCU 
1. Keát quaû laø soá nguyeân 32 bit ñöôïc ghi vaøo ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 
khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 32 bit thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù 
trò 1 (bò traøn). 
Ví du: 
L ID10 //Naïp giaù trò cuûa ID10 vaøo ACCU 1. 
L MD14 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD14 vaøo ACCU 1. 
- D //ACCU 2 tröø ACCU 1; ghi keát quaû vaøo ACCU 1. 
T DB1.DBD25 //Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo DBD25cuûa DB1. 
3.6.3.3. Pheùp nhaân 
Cuù phaùp *D 
Leänh thöïc hieän pheùp nhaân hai soá nguyeân 32 bit trong ACCU 2 vaø soá nguyeân cuûa ACCU 1. 
Keát quaû laø soá nguyeân 32 bit ñöôïc ghi vaøo ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng 
thay ñoåi. Neáu keát quaû naèm ngoaøi 32 bit thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò 
traøn). 
 59 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Ví duï: 
L ID10 //Naïp giaù trò cuûa ID10 vaøo ACCU 1. 
L MD14 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD14 vaøo ACCU 1. 
* D //ACCU 2 nhaân vôùi ACCU 1; ghi keát quaû vaøo ACCU 1. 
T DB1.DBD25 //Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo DBD25cuûa DB1. 
3.6.3.4. Pheùp chia 
Cuù phaùp /D 
Leänh thöïc hieän pheùp chia soá nguyeân 32 bit trong ACCU 2 cho soá nguyeân cuûa 
ACCU 1. Keát quaû cuûa pheùp chia (soá thöông – quotient) laø soá nguyeân 32 bit ñöôïc ghi vaøo 
ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 32 bit 
thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Chuù yù: khoâng ñeà caäp ñeán phaàn dö (remainder) 
Ví duï: 
L ID10 //Naïp giaù trò cuûa ID10 vaøo ACCU 1. 
L MD14 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD14 vaøo ACCU 1. 
/ D //ACCU 2 chia cho ACCU 1; ghi keát quaû vaøo ACCU 1. 
T DB1.DBD25 //Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo DBD25cuûa DB1. 
Chaúng haïn: 13 chia 4 
Noäi dung cuûa ACCU 2 (ID10): "13" 
Noäi dung cuûa ACCU 1 (MD14): "4" 
Pheùp chia /D (ACCU 2 / ACCU 1): "13/4" 
Noäi dung cuûa ACCU 1 sau khi thöïc hieän pheùp chia (quotient): "3" 
3.6.3.5. Pheùp chia laáy phaàn dö 
Cuù phaùp MOD 
Leänh thöïc hieän pheùp chia soá nguyeân 32 bit trong ACCU 2 cho soá nguyeân cuûa 
ACCU 1. Keát quaû cuûa pheùp chia (soá dö – remainder) laø soá nguyeân 32 bit ñöôïc ghi vaøo 
ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu keát quaû naèm ngoaøi 32 bit 
thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L ID10 //Naïp giaù trò cuûa ID10 vaøo ACCU 1. 
L MD14 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD14 vaøo ACCU 1. 
/ D //ACCU 2 chia cho ACCU 1; ghi keát quaû (remainder) vaøo ACCU 1. 
T DB1.DBD25 //Noäi dung cuûa ACCU 1 ñöôïc chuyeån vaøo DBD25cuûa DB1. 
Chaúng haïn: 13 chia 4 
Noäi dung cuûa ACCU 2 (ID10): "13" 
Noäi dung cuûa ACCU 1 (MD14): "4" 
Pheùp chia MOD (ACCU 2 / ACCU 1): "13/4" 
Noäi dung cuûa ACCU 1 sau khi thöïc hieän pheùp chia (remaider): "1" 
3.6.4. Pheùp toaùn treân soá thöïc (Real) 32 bit 
3.6.4.1. Pheùp coäng 
Cuù phaùp +R 
 60 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Leänh thöïc hieän pheùp coäng soá thöïc 32 bit cuûa ACCU 1 vaø ACCU 2. Keát quaû laø soá 
thöïc 32 bit ñöôïc ghi vaøo thanh ghi ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng thay 
ñoåi. Neáu keát quaû naèm trong khoaûng (-3,402823E+38 ÷ -1,175495E-38) hoaëc baèng 0 hoaëc 
naèm trong khoaûng (+1,175495E-38 ÷ 3,402823E+38) thì bit OV nhaän giaù trò 0, ngöôïc laïi thì 
bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L MD4 //Naïp giaù trò cuûa MD4 vaøo ACCU 1. 
L MD8 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD8 vaøo ACCU 1. 
+ R //Coäng ACCU 2 vôùi ACCU 1; ghi keát quaû vaøo ACCU 1. 
T MD12 //Noäi dung cuûa ACCU 1 (result) ñöôïc chuyeån vaøo oâ nhôù MD12. 
3.6.4.2. Pheùp tröø 
Cuù phaùp -R 
Leänh thöïc hieän pheùp tröø soá thöïc 32 bit trong ACCU 2 vaø soá thöïc trong ACCU 1. 
Keát quaû laø soá thöïc 32 bit ñöôïc ghi vaøo thanh ghi ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 
khoâng thay ñoåi. Neáu keát quaû naèm trong khoaûng (-3,402823E+38 ÷ -1,175495E-38) hoaëc 
baèng 0 hoaëc naèm trong khoaûng (+1,175495E-38 ÷ 3,402823E+38) thì bit OV nhaän giaù trò 0, 
ngöôïc laïi thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L MD4 //Naïp giaù trò cuûa MD4 vaøo ACCU 1. 
L MD8 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò cuûa MD8 vaøo ACCU 1. 
- R //ACCU 2 tröø ACCU 1; ghi keát quaû vaøo ACCU 1. 
T MD12 //Noäi dung cuûa ACCU 1 (result) ñöôïc chuyeån vaøo oâ nhôù MD12. 
3.6.4.3. Pheùp nhaân 
Cuù phaùp *R 
Leänh thöïc hieän pheùp nhaân soá thöïc 32 bit trong ACCU 2 vaø soá thöïc trong ACCU 1. 
Keát quaû laø soá thöïc 32 bit ñöôïc ghi vaøo thanh ghi ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 
khoâng thay ñoåi. Neáu keát quaû naèm trong khoaûng (-3,402823E+38 ÷ -1,175495E-38) hoaëc 
baèng 0 hoaëc naèm trong khoaûng (+1,175495E-38 ÷ 3,402823E+38) thì bit OV nhaän giaù trò 0, 
ngöôïc laïi thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L MD4 //Naïp giaù trò cuûa MD4 vaøo ACCU 1. 
L 3.1415 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò soá pi vaøo ACCU 1. 
* R //ACCU 2 tröø ACCU 1; ghi keát quaû vaøo ACCU 1. 
T MD12 //Noäi dung cuûa ACCU 1 (result) ñöôïc chuyeån vaøo oâ nhôù MD12. 
3.6.4.4. Pheùp chia 
Cuù phaùp /R 
Leänh thöïc hieän pheùp chia soá thöïc 32 bit trong ACCU 2 cho soá thöïc trong ACCU 1. 
Keát quaû laø soá thöïc 32 bit ñöôïc ghi vaøo thanh ghi ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 
khoâng thay ñoåi. Neáu keát quaû naèm trong khoaûng (-3,402823E+38 ÷ -1,175495E-38) hoaëc 
baèng 0 hoaëc naèm trong khoaûng (+1,175495E-38 ÷ 3,402823E+38) thì bit OV nhaän giaù trò 0, 
ngöôïc laïi thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
 61 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
L MD4 //Naïp giaù trò cuûa MD4 vaøo ACCU 1. 
L 3.1415 //Naïp giaù trò cuûa ACCU 1 to ACCU 2. Naïp giaù trò soá pi vaøo ACCU 1. 
/ R //ACCU 2 tröø ACCU 1; ghi keát quaû vaøo ACCU 1. 
T MD12 //Noäi dung cuûa ACCU 1 (result) ñöôïc chuyeån vaøo oâ nhôù MD12. 
3.6.4.5. Pheùp laáy trò tuyeät ñoái 
Cuù phaùp /R 
Khoâng coù toaùn haïng vaø xaùc ñònh giaù trò tuyeät ñoái cuûa soá thöïc 32 bit trong thanh ghi 
ACCU 1. Keát quaû ñöôïc löu giöõ trong ACCU 1. Leänh naøy khoâng lieân quan, aûnh höôûng ñeán 
noäi dung cuûa caùc bit traïng thaùi. 
Ví duï: 
L ID8 //Naïp giaù trò ID8 vaøo ACCU 1 (example: ID8 = -1.5E+02). 
ABS //Xaùc ñònh trò tuyeät ñoái; ghi keát quaû vaøo ACCU 1. 
T MD10 //Chuyeån keát quaû tôùi MD10 (example: result = 1.5E+02). 
3.6.4.6. Pheùp bình phöông 
Cuù phaùp SQR 
Leänh tính giaù trò bình phöông cuûa soá thöïc trong ACCU 1 vaø löu keát quaû laø soá thöïc 
khoâng aâm vaøo ACCU 1. Noäi dung cuûa ACCU 2 khoâng bò thay ñoåi. 
Ví duï: 
L MD10 //Naïp giaù trò MD10 vaøo ACCU 1. 
SQR //Xaùc ñònh trò bình phöông; ghi keát quaû vaøo ACCU 1. 
T MD20 //Chuyeån keát quaû tôùi MD20. 
3.6.4.7. Pheùp laáy caên baäc hai 
Cuù phaùp SQRT 
Leänh tính giaù trò caên baäc hai cuûa soá thöïc trong ACCU 1 vaø löu keát quaû laø soá thöïc 
khoâng aâm vaøo ACCU 1. Noäi dung cuûa ACCU 2 khoâng bò thay ñoåi. 
Ví duï: 
L MD10 //Naïp giaù trò MD10 vaøo ACCU 1. 
SQRT //Laáy caên baäc hai; ghi keát quaû vaøo ACCU 1. 
T MD20 //Chuyeån keát quaû tôùi MD20. 
3.6.4.8. Pheùp tính Sin 
Cuù phaùp SIN 
Leänh tính Sin cuûa soá thöïc trong ACCU 1 vaø löu keát quaû laø soá thöïc vaøo ACCU 1. 
Noäi dung cuûa ACCU 2 khoâng bò thay ñoåi. Neáu keát quaû naèm trong khoaûng (-3,402823E+38 
÷ -1,175495E-38) hoaëc baèng 0 hoaëc naèm trong khoaûng (+1,175495E-38 ÷ 3,402823E+38) 
thì bit OV nhaän giaù trò 0, ngöôïc laïi thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví duï: 
L MD10 //Naïp giaù trò MD10 vaøo ACCU 1. 
SIN //Tính SIN; ghi keát quaû vaøo ACCU 1. 
T MD20 //Chuyeån keát quaû tôùi MD20. 
3.6.4.9. Pheùp tính Cos 
Cuù phaùp Cos 
 62 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
1 vaø löu keát quaû laø soá thöïc vaøo ACCU 1. 
No eát quaû naèm trong khoaûng (-3,402823E+38 
÷ - khoaûng (+1,175495E-38 ÷ 3,402823E+38) 
thì aùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
Ví
L 
Co
T 
3.6
No
÷ -
thì
Ví
L 
Ta
T 
3.6
laø 
3.6
laø 
3.6
soá 
Ví
chi
taên
chi
bô
ky
caùc
• 
 Leänh tính Cos cuûa soá thöïc trong ACCU 
äi dung cuûa ACCU 2 khoâng bò thay ñoåi. Neáu k
1,175495E-38) hoaëc baèng 0 hoaëc naèm trong 
 bit OV nhaän giaù trò 0, ngöôïc laïi thì bit traïng th
 duï: 
MD10 //Naïp giaù trò MD10 vaøo ACCU 1. 
s //Tính Cos; ghi keát quaû vaøo ACCU 1. 
MD14 //Chuyeån keát quaû tôùi MD14. 
.4.10. Pheùp tính TAN 
Cuù phaùp TAN 
Leänh tính Tan cuûa soá thöïc trong ACCU 1 vaø löu keát quaû laø soá thöïc vaøo ACCU 1. 
äi dung cuûa ACCU 2 khoâng bò thay ñoåi. Neáu keát quaû naèm trong khoaûng (-3,402823E+38 
1,175495E-38) hoaëc baèng 0 hoaëc naèm trong khoaûng (+1,175495E-38 ÷ 3,402823E+38) 
 bit OV nhaän giaù trò 0, ngöôïc laïi thì bit traïng thaùi OV vaø OS seõ coù cuøng giaù trò 1 (bò traøn). 
 duï: 
MD10 //Naïp giaù trò MD10 vaøo ACCU 1. 
n //Tính Tan; ghi keát quaû vaøo ACCU 1. 
MD14 //Chuyeån keát quaû tôùi MD14. 
.4.11. Pheùp tính ASIN 
Cuù phaùp ASIN 
Leänh tính arcsin cuûa soá thöïc trong ACCU 1, soá thöïc naøy phaûi naèm [-1÷1]. Keát quaû 
soá thöïc [-π/2 ÷ π/2] vaø ñöôïc ghi vaøo ACCU 1. Noäi dung cuûa ACCU 2 khoâng bò thay ñoåi. 
.4.12. Pheùp tính ACOS 
Cuù phaùp ACOS 
Leänh tính arccos cuûa soá thöïc trong ACCU 1, soá thöïc naøy phaûi naèm [-1÷1]. Keát quaû 
soá thöïc [0 ÷ π] vaø ñöôïc ghi vaøo ACCU 1. Noäi dung cuûa ACCU 2 khoâng bò thay ñoåi. 
.4.13. Pheùp tính ATAN 
Cuù phaùp ATAN 
Leänh tính arctg cuûa soá thöïc trong ACCU 1, soá thöïc naøy phaûi naèm [-1÷1]. Keát quaû laø 
thöïc [-π/2 ÷ π/2] vaø ñöôïc ghi vaøo ACCU 1. Noäi dung cuûa ACCU 2 khoâng bò thay ñoåi. 
 duï: Heä thoáng ñieàu khieån baõi ñaäu xe chöùa toái ña laø 12 
eác moâ taû hình 3.10. Moãi laàn xe vaøo, PLC töï ñoäng 
g theâm 1 bôûi caûm bieán phaùt hieän xe S1. Baát kyø moät 
eác xe naøo ñi ra khoûi baõi, PLC seõ töï ñoäng giaûm ñi 1 
ûi caûm bieán phaùt hieän S2. Khi 12 chieác xe ñöôïc ñaêng 
ù, baûng hieäu ñaày xe seõ ñöôïc saùng leân thoâng baùo ñeán 
 xe khoâng ñöôïc vaøo nöõa. 
Baûng gaùn nhieäm vuï I/O 
 63 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
S1 I0.0 Car park full Q0.0 
S2 I0.1 Hình 3.10 – Baõi ñaäu xe
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
• Chöông trình 
 Network1: // Khi S1 thay ñoåi traïng thaùi 0 -> 1 thì giaù trò oâ nhôù MW0 taêng leân 1. 
 A "S1" 
 FP M 6.0 
 JNB _001 // Nhaûy Khi RLO laø “0” cuøng vôùi BR 
 L MW 0 
 L 1 
 +I 
 T MW 0 
_001: NOP 0 // Keát thuùc 
Network2: // Khi LS2 laø 1 thì cöûa döøng laïi taïi giôùi haïn döôùi 
 A "S2" 
 FP M 6.1 
 JNB _003 
 L MW 0 
 L 1 
 -I 
 T MW 0 
_003: NOP 0 
Network3: // Khi LS2 laø 1 thì cöûa döøng laïi taïi giôùi haïn döôùi 
 L MW 0 
 L 12 
 ==I 
 = "CAR PARK FULL" 
3.7. LEÄNH CHUYEÅN ÑOÅI DÖÕ LIEÄU (conversion instruction) 
3.7.1. Khaùi nieäm 
Khi giao tieáp thieát bò töông töï vôùi PLC ñeå thöïc hieän caùc nhieäm vuï thì tín hieäu thu 
nhaän vaø xuaát ra caàn phaûi ñöôïc xöû lyù thích hôïp ñeå ñaûm baûo ñöôïc baûn chaát thöïc cuûa noù. Ví 
duï khi ta ñoïc tín hieäu töø caùc caûm bieán taûi troïng cuûa moät heä thoáng caân ño taûi troïng xe oâ toâ, 
vieäc ñoïc naøy phaûi ñöôïc thöïc hieän qua caùc ngoõ vaøo töông töï vaø ta nhaän ñöôïc soá lieäu döôùi 
daïng nguyeân 16 bit mang giaù trò tín hieäu töông töï (caáu truùc vaät lyù) chöù khoâng phaûi baûn thaân 
giaù trò ñoù, bôûi vaäy ñeå xöû lyù tieáp ta phaûi chuyeån ñoåi soá nguyeân ñoù thaønh ñuùng giaù trò thöïc, 
daáu phaåy ñoäng cuûa tín hieäu töông töï ôû ngoõ vaøo. Tieáp caän vôùi chuyeån ñoåi döõ lieäu chuùng ta 
seõ coù moät soá leänh cô baûn sau: 
 Chuyeån BCD sang soá nguyeân 16 bit (Integer) 
 Chuyeån soá nguyeân 16 bit sang BCD 
 Chuyeån BCD sang soá nguyeân 32 bit (Double Integer) 
 Chuyeån soá nguyeân 32 bit sang BCD 
 Chuyeån soá nguyeân 16 bit sang soá nguyeân 32 bit 
 Chuyeån soá nguyeân 32 bit sang soá thöïc 32 bit 
 Moät soá daïng döõ lieäu khaùc. 
 64 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.7.2. Chuyeån BCD sang soá nguyeân 16 bit (Integer) 
Cuù phaùp BTI 
Leänh khoâng coù toaùn haïng vaø thöïc hieän chuyeån ñoåi moät soá BCD coù 3 chöõ soá chöùa 
trong noäi dung cuûa ACCU 1 thaønh soá nguyeân 16 bit. Keát quaû ñöôïc löu giöõ trong töø thaáp cuûa 
ACCU 1. Töø cao cuûa ACCU 1 vaø noäi dung ACCU 2 khoâng bò thay ñoåi. Leänh khoâng laøm 
thay ñoåi thanh ghi traïng thaùi. 
Giôùi haïn cho pheùp cuûa soá BCD laø –999 ÷ +999 do ñoù chæ söû duïng 12 bit ñaàu cuûa töø 
thaáp. Bit 15 chæ ñònh daáu, 0 cho daáu (-) coøn 1 cho daáu (+). Bit 12 ñeán bit 14 khoâng söû duïng. 
Neáu soá BCD caàn chuyeån ñoåi coù caáu truùc sai, ví duï coù chöõ soá (4 bits nhò phaân) khoâng 
naém trong khoaûng 0-9 thì CPU seõ baùo loãi vaø chuyeån veà Stop mode hoaëc seõ goïi chöông 
trình xöû lyù loãi OB121. 
Ví duï: 
L MW10 //Naïp soá BCD vaøo töø thaáp ACCU 1. 
BTI //Chuyeån ñoåi BCD thaønh soá ngueân 16 bits; ghi keát quaû vaøo töø thaáp ACCU 1. 
T MW20 //Chuyeån keát quaû (soá nguyeân) vaøo oâ nhôù MW20. 
3.7.3. Chuyeån soá nguyeân 16 bit (Integer) sang BCD. 
Cuù phaùp ITB 
Leänh khoâng coù toaùn haïng vaø thöïc hieän chuyeån ñoåi soá nguyeân 16 bit chöùa trong noäi 
dung cuûa ACCU 1 thaønh moät soá BCD coù 3 chöõ soá. Keát quaû ñöôïc löu giöõ trong töø thaáp cuûa 
ACCU 1. Bit 0 ñeán bit 11 chöùa giaù trò soá BCD. Bit 12 ñeán bit 15 ñöôïc chæ ñònh daáu cuûa cuûa 
soá BCD (0000 = daáu coäng, 1111 = daáu tröø). Töø cao cuûa ACCU 1 vaø noäi dung ACCU 2 
khoâng bò thay ñoåi. Leänh khoâng laøm thay ñoåi thanh ghi traïng thaùi. 
Giôùi haïn cho pheùp cuûa soá BCD laø –999 ÷ +999. Neáu soá BCD vöôït ra khoûi giôùi haïn 
treân thì bit traïng thaùi OV vaø OS seõ nhaän giaù trò 1 (traøn). 
Ví duï: 
L MW10 //Naïp soá nguyeân 16 bit MW10 vaøo töø thaáp ACCU 1. 
BTI //Chuyeån ñoåi soá ngueân thaønh soá BCD 16 bits; ghi keát quaû vaøo töø thaáp ACCU 1. 
T MW20 //Chuyeån keát quaû (soá nguyeân) vaøo oâ nhôù MW20. 
 65 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.7.4. Chuyeån BCD sang soá nguyeân 32 bit (Double Integer) 
Cuù phaùp BTD 
Leänh khoâng coù toaùn haïng vaø thöïc hieän chuyeån ñoåi moät soá BCD coù 7 chöõ soá chöùa 
trong noäi dung cuûa ACCU 1 thaønh soá nguyeân 32 bit. Keát quaû ñöôïc löu giöõ trong ACCU 1. 
Noäi dung
Gi
bit ñaàu. B
duïng. 
Ne
naém tron
trình xöû l
Ví duï: 
L M
BTD 
T M
3.7.5. Ch
Cu
Le
bit. Keát q
Ví duï: 
L M
ITD 
T M
Chaúng ha
Bit 
Tröô
Sau t
3.7.6. Ch
Cu
Le
dung cuûa
 ACCU 2 khoâng bò thay ñoåi. Leänh khoâng laøm thay ñoåi thanh ghi traïng thaùi. 
ôùi haïn cho pheùp cuûa soá BCD laø “–9,999,999 ÷ +9,999,999 “ do ñoù chæ söû duïng 28 
it 31 chæ ñònh daáu, 0 cho daáu (-) coøn 1 cho daáu (+). Bit 28 ñeán bit 30 khoâng söû 
áu soá BCD caàn chuyeån ñoåi coù caáu truùc sai, ví duï coù chöõ soá (4 bits nhò phaân) khoâng 
g khoaûng 0-9 thì CPU seõ baùo loãi vaø chuyeån veà Stop mode hoaëc seõ goïi chöông 
yù loãi OB121. 
D10 //Naïp soá BCD vaøo ACCU 1. 
 //Chuyeån ñoåi BCD thaønh soá ngueân 32 bits; ghi keát quaû vaøo ACCU 1. 
D20 //Chuyeån keát quaû (soá nguyeân) vaøo oâ nhôù MD20. 
uyeån soá nguyeân 16 bit sang soá nguyeân 32 bit (Double Integer) 
ù phaùp ITD 
änh chuyeån noäi dung soá nguyeân 16 bits trong töø thaáp ACCU 1 sang soá nguyeân 32 
uaû ñöôïc löu trong ACCU 1. Noäi dung trong thanh ghi ACCU 2 khoâng thay ñoåi. 
W12 // Naïp soá nguyeân vaøo ACCU 1. 
 // Chuyeån ñoåi soá nguyeân 16 bit sang 32 bit; ghi keát quaû vaøo ACCU 1. 
D20 // Chuyeån keát quaû (soá nguyeân) vaøo oâ nhôù MD20. 
ïn: MW12 = "-10" (Integer, 16-bit); keát quaû moâ taû ôû baûng döôùi. 
Noäi dung ACCU 1-H ACCU 1-L 
31…. …… …. ….16 15…. ….. …. ….0 
ùc thöïc hieän ITD xxxx xxxx xxxx xxxx 1111 1111 1111 0110 
höïc hieän ITD 1111 1111 1111 1111 1111 1111 1111 0110 
( x = 0 hoaëc 1, bits khoâng ñöôïc söû duïng ñeå chuyeån ñoåi) 
uyeån soá nguyeân 32 bit (Integer) sang BCD. 
ù phaùp DTB 
änh khoâng coù toaùn haïng vaø thöïc hieän chuyeån ñoåi soá nguyeân 32 bit chöùa trong noäi 
 ACCU 1 thaønh moät soá BCD coù 7 chöõ soá. Keát quaû ñöôïc löu giöõ trong ACCU 1. Bit 
 66 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
0 ñeán bit 27 chöùa giaù trò soá BCD. Bit 28 ñeán bit 31 ñöôïc chæ ñònh daáu cuûa cuûa soá BCD 
(0000 = daáu coäng, 1111 = daáu tröø). Noäi dung ACCU 2 khoâng bò thay ñoåi. 
Giôùi haïn cho pheùp cuûa soá BCD laø “–9,999,999 ÷ +9,999,999 “. Neáu soá BCD vöôït ra 
khoûi giôùi haïn treân thì bit traïng thaùi OV vaø OS seõ nhaän giaù trò 1 (traøn). 
Ví duï: 
L MD10 // Naïp soá nguyeân 32 bit vaøo ACCU 1. 
DTB // Chuyeån ñoåi soá nguyeân 32 bit sang BCD; ghi keát quaû vaøo ACCU 1. 
T MD20 // Chuyeån keát quaû (soá BCD) vaøo oâ nhôù MD20. 
3.7.7. Chuyeån soá nguyeân 32 bit (Integer) sang soá thöïc 32 bits. 
Cuù phaùp DTR 
Leänh chuyeån noäi dung soá thöïc 32 bit trong thanh ghi ACCU 1 sang soá thöïc 32 bit. 
Keát quaû ñöôïc löu giöõ trong ACCU 1. 
Ví duï: 
L MD10 // Naïp soá nguyeân 32 bit vaøo ACCU 1. 
DTB // Chuyeån soá nguyeân 32 bit sang soá thöïc 32 bit; ghi keát quaû vaøo ACCU 1. 
T MD20 // Chuyeån keát quaû vaøo oâ nhôù MD20. 
3.7.8. Leänh laøm troøn soá (Round) 
 Cuù phaùp RND 
Leänh chuyeån soá thöïc 32 bit trong thanh ghi ACCU 1 thaønh soá nguyeân 32 bit vaø laøm 
troøn noù coù giaù trò gaàn nhaát so vôùi soá thöïc ñaõ cho. Keát quaû löu giöõ trong ACCU 1. Noäi dung 
cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu soá vöôït ra khoûi giôùi haïn maø moät soá nguyeân 32 
bit coù theå bieåu dieãn ñöôïc thì bit traïng thaùi OV vaø OS seõ nhaän giaù trò 1 (traøn). 
Ví duï: 
 67 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
L MD10 // Naïp soá thöïc vaøo ACCU 1. 
RND // Chuyeån soá thöïc 32 bit sang soá nguyeân 32 bit vaø laøm troøn keát quaû. 
T MD20 // Chuyeån keát quaû vaøo oâ nhôù MD20. 
3.7.9. Leänh
 Cuù 
Leänh chuyeån soá thöïc 32 bit trong thanh ghi ACCU 1 thaønh soá nguyeân 32 bit vaø laøm 
troøn noù coù giaù trò gaàn nhaát nhöng khoâng nhoû hôn soá thöïc ñaõ cho. Keát quaû löu giöõ trong 
ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu soá vöôït ra khoûi giôùi haïn 
maø moät soá nguyeân 32 bit coù theå bieåu dieãn ñöôïc thì bit traïng thaùi OV vaø OS seõ nhaän giaù trò 
1 (traøn). 
3.7.10. Leän
 Cuù 
 Leänh chuyeån soá thöïc 32 bit trong thanh ghi ACCU 1 thaønh soá nguyeân 32 bit vaø laøm 
troøn noù coù giaù trò gaàn nhaát nhöng khoâng lôùn hôn soá thöïc ñaõ cho. Keát quaû löu giöõ trong 
ACCU 1. Noäi dung cuûa thanh ghi ACCU 2 khoâng thay ñoåi. Neáu soá vöôït ra khoûi giôùi haïn 
maø moät soá nguyeân 32 bit coù theå bieåu dieãn ñöôïc thì bit traïng thaùi OV vaø OS seõ nhaän giaù trò 
1 (traøn). 
Giaù trò tröôùc chuyeån ñoåi Chuyeån ñoåi Giaù trò sau chuyeån ñoåi 
MD = “100.5” -> RND -> MD20 = “+100” 
MD = “-100.5” -> RND -> MD20 = “-100” 
Giaù trò tröôùc chuyeån ñoåi Chuyeån ñoåi Giaù trò sau chuyeån ñoåi 
MD = “100.5” -> RND+ -> MD20 = “+100” 
Giaù trò tröôùc chuyeån ñoåi Chuyeån ñoåi Giaù trò sau chuyeån ñoåi 
MD = “100.5” -> RND+ -> MD20 = “+100” 
MD = “-100.5” -> RND+ -> MD20 = “-100” 
3.7.11. Leän
 Cuù 
Leän 
ACCU 1. K
vöôït ra kho
vaø OS seõ nh
 MD = “-15.6” -> RND+ -> MD20 = “-15” 
h laáy phaàn nguyeân (Round) 
phaùp TRUNC 
h khoâng coù toaùn haïng vaø thöïc hieän vieäc laáy phaàn nguyeân cuûa soá thöïc trongh chuyeån soá thöïc thaønh soá nguyeân lôùn nhaát, khoâng lôùn hôn soá thöïc 
phaùp RND- 
MD = “-100.5” -> RND+ -> 
MD = “-15.6” -> RND+ -> MD20 = “-15” 
MD20 = “-100” chuyeån soá thöïc thaønh soá nguyeân nhoû, khoâng nhoû hôn soá thöïc 
phaùp RND+ 
MD = “-15.6” -> RND -> MD20 = “-15” eát quaû löu giöõ laïi ôû trong ACCU 1. Noäi dung ACCU 2 khoâng thay ñoåi. Neáu soá 
ûi giôùi haïn maø moät soá nguyeân 32 bit coù theå bieåu dieãn ñöôïc thì bit traïng thaùi OV 
aän giaù trò 1 (traøn). 
 68 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Giaù trò tröôùc chuyeån ñoåi Chuyeån ñoåi Giaù trò sau chuyeån ñoåi 
MD = “100.5” -> RND - -> MD20 = “+100” 
MD = “-100.5” -> RND - -> MD20 = “-100” 
MD = “-15.6” -> RND - -> MD20 = “-15” 
Ví duï: Haõy vieát tieáp caùc caâu leänh vaøo nhöõng doøng coù nhieàu daáu chaám (soá doøng khoâng haïn 
cheá) ñeå ñaït ñöôïc keát quaû chöùa trong oâ nhôù MD20 coù giaù trò laø 7.5 
L 2400 
T MW2 
…………………………. 
………………………… 
…………………………
L 5 
…………………………. 
………………………… 
………………………… 
T MD20
• Chöông trình 
Network1: //Naïp giaù trò soá nguyeân 2 byte 2400 vaøo oâ nhôù MW2 
L 2400 
T MW 2 
Network2: //Ñoåi soá nguyeân 2 byte ôû oâ nhôù MW2 sang soá nguyeân 4 byte vaø löu vaøo oâ nhôù MD4. 
 L MW 2 
 ITD 
 T MD 4 
Network3: //Ñoåi soá nguyeân 4 byte ôû oâ nhôù MD4 sang soá thöïc 4 byte vaø löu vaøo oâ nhôù MD8. 
L MD 4 
 DTR 
 T MD 8 
Network4: //Pheùp chiasoá thöïc giöõa giaù trò trong oâ nhôù MD8 vaø 1600.0 roài löu vaøo oâ nhôù MD12. 
L MD 8 
 L 1.600000e+003 
 /R 
 T MD 12 
Network5: //Ñoåi soá nguyeân 2 byte laø 5 sang soá nguyeân 4 byte vaø löu vaøo oâ nhôù MD16. 
L 5 
 ITD 
 T MD 16 
Network6: //Ñoåi soá nguyeân 4 byte ôû oâ nhôù MD16 sang soá thöïc 4 byte vaø löu vaøo oâ nhôù MD24. 
 L MD 16 
 DTR 
 T 
Network7:
 L 
 L 
 *R 
 T 
 MD 24 
 //Nhaân soá thöïc giöõa giaù trò trong oâ nhôù MD12 vaø MD24, keát quaû laø 7.5 löu trong MD20. 
 MD 12 
 MD 24 
 MD 20 
 69 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.8. LEÄNH ÑIEÀU KHIEÅN THÔØI GIAN (timer instruction) 
3.8.1. Nguyeân taéc hoaït ñoäng cuûa timer 
Boä ñònh thôøi laø moät thaønh phaàn cuûa boä ñieàu khieån laäp trình coù nhieäm vuï taïo ra thôøi 
gian treã mong muoán giöõa tín hieäu logic ngoõ vaøo vaø tín hieäu logic ngoõ ra. Leänh ñieàu khieån 
thôøi gian cho pheùp chöông trình thöïc hieän caùc chöùc naêng nhö: 
 Laøm treã hoaït ñoäng 
 Theo doõi vaø kieåm soaùt chuoãi thôøi gian 
 Ño löôøng thôøi gian… 
Nguyeân taéc hoaït ñoäng ñöôïc moâ taû hình 3.11 
Khôûi taïo timer
Hieån thò 
Xoùa ngoõ vaøo
Tín hieäu vaøo
Thôøi gian treã 
ñaët tröôùc
Timer
word
Tín hieäu ra 
Hình 3.11 – Nguyeân taéc hoaït ñoäng timer 
 Ngay taïi thôøi ñieåm kích timer, giaù trò PV ( thôøi gian treã ñaët tröôùc) ñöôïc naïp vaøo 
thanh ghi 16 bit cuûa Timer word ( goïi laø thanh ghi CV – current value). Timer seõ ghi lai 
thôøi gian bieán thieân keå töø khi coù tín hieäu kích baèng caùch giaûm töông öùng giaù trò cuûa CV. 
Neáu giaù trò cuûa CV veà baèng 0 thì timer seõ ñaït ñöôïc thôøi gian treã mong muoán vaø ñeàu naøy seõ 
laø thay ñoåi traïng thaùi tín hieäu ngoõ ra. 
Vuøng nhôù 
Caùc timer ñöôïc phaân boá trong boä nhôù cuûa CPU vaø trong S7-300 chöùa ñeán 256 boä 
ñònh thôøi, vaø ñöôïc quy ñònh moät töø 16 bit cho moãi ñòa chæ timer. 
Thôøi gian treã 
Thôøi gian treã τ khai baùo cho timer baèng moät giaù trò töông öùng 16 bit, hình 3.12. Bao 
goàm 2 phaàn vaø ñöôïc tính theo 3-1 
 Ñoä phaân giaûi ε ( timer resolution): Bit 12 vaø 13 cuûa töø timer chöùa ñoä phaân giaûi 
theo saép xeáp cuûa maõ nhò phaân, vaø coù 4 ñoä phaân giaûi töø 10ms, 100ms, 1s , 10s. 
 Giaù trò ñaët tröôùc PV (Preset Value): bao goàm bít 0 ñeán bit 11, giaù trò laø soá BCD 
(0 ÷ 999) 
τ = ε* PV [3-1] 
Giaù trò thôøi gian treã ñaët tröôùc ñöôïc ñònh daïng tröïc tieáp theo caùc kieåu döõ lieäu sau: 
 Soá nguyeân 16 bit: W#16#txyz 
Trong ñoù: 
• t = ñoä phaân giaûi (0 -> 10 MS,1-> 100MS,2-> 1S, 3->10S ) 
• x, y, z : giaù trò thôøi gian theo daïng BCD 
 70 
 Loaïi thôøi gian: S5T#aH_bM_cS_dMS 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
• Trong ñoù: H = giôø (Hours); M = phuùt (Minutes) ; S = giaây (Seconds) ; MS = 
miligiaây (Miliseconds) ; a, b, c, d: laø giaù trò ngöôøi söû duïng. 
• Ñoä phaân giaûi ñöôïc choïn töï ñoäng vaø seõ laøm troøn ñeán ñoä phaân giaûi keá caän 
thaáp nhaát. 
Giaù trò lôùn nhaát coù theå ñaët ñöôïc laø 9.990 giaây hoaëc laø 2H_46M_30S 
Ñoä phaân giaûi Giaù trò PV döôùi daïng maõ BCD 
0 ≤ PV≤ 999
Ñoä phaân giaûi Bit 12 & 13 
10 MS 00 
100 MS 01 
1 S 10 
10 S 11 
Ñoä phaân giaûi Giôùi haïn thôøi gian 
10 MS 10MS ÷ 9S_990MS 
100 MS 100MS ÷ 1M_39S_900MS 
1 S 1S to 16M_39S 
10 S 10S to 2H_46M_30S 
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 τ 
Hình 3.12 - Ñoä phaân giaûi cuûa boä ñònh thôøi 
Caùc loaïi timer 
Bao goàm caùc loaïi timer sau: S_PULSE, S_PEXT, S_ODT, S_ODTS, S_OFFDT 
3.8.2. Caùc taùc vuï timer 
Laøm vieäc vôùi timer phaûi khai baùo ñaày ñuû caùc yeáu toá sau ñaây: 
 Khai baùo loaïi timer söû duïng 
 Khai baùo tín hieäu kích timer (Enable timer) 
 Khai baùo tín hieäu xoùa timer 
 Khai baùo thôøi gian treã mong muoán 
 Hieån thò thôøi gian ñoïc töùc thôøi 
3.8.2.1. Tín hieäu kích timer 
Ngoû vaøo Start (baét ñaàu): timer ñöôïc baét ñaàu hoaït ñoäng vôùi söï thay ñoåi tín hieäu töø 
“0” leân “1” (RLO) ôû ngoû vaøo Start cuûa noù. Thôøi gian vaø hoaït ñoäng cuûa timer phaûi ñöôïc laäp 
trình ngay sau hoaït ñoäng queùt ñieàu kieän baét ñaàu. 
Ví duï: 
A I0.0 
L S5T#1H3M 
SP T1 
Ngoû vaøo xoaù (Reset) 
3.8.2.2. Tín hieäu xoaù 
Cuù phaùp R 
 71 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 Toaùn haïng 
Kieåu döõ lieäu Vu
TIMER 
Tín hieäu ôû ngoû vaøo Reset seõ laøm ngöng hoaït ñoäng cuûa timer, thôøi gian hieän haønh 
ñöôïc ñaët veà 0 vaø ngoû ra Q cuûa timer cuõng bò xoaù veà “0” neáu keát quaû RLO cuûa Reset 
chuyeån töø “0” sang “1”. 
Ví duï: 
A I 2.1 
R T1 //Kieåm tra traïng thaùi tín hieäu ngoû vaøo I2.1 neáu RLO chuyeån töø 0 -> 1, thì xoaù timer T1. 
3.8.2.3. Ngoû ra hieån thò giaù trò thôøi gian töùc thôøi 
Giaù trò thôøi gian thaät söï coù theå ñoïc ñöôïc töø hai ngoû ra soá nhò phaân (BI) vaø ngoû ra soá 
thaäp phaân (BCD) 
3.8.2.3.1. Ngoû ra soá BI 
Cuù phaùp L <Toaùn ha
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
TIMER T 0 ÷ 255 
Ví duï: 
L T1 //Taûi noäi dung ACCU 1-L vôùi giaù trò töùc thôøi cuûa timer T1 sang maõ nhò phaân. 
3.8.2.3.1. Ngoû ra soá BCD 
Cuù phaùp LC <Toaùn h
Kieåu döõ lieäu V
TIMER 
Ví duï: 
L T1 //Taûi noäi dung ACCU 1-L vô
3.8.2.4. Ngoû ra nhò phaân cuûa timer 
Traïng thaùi tín hieäu ngoû ra nh
ñöôïc laäp trình. 
3.8.2.5. Caùc loaïi timer 
3.8.2.5.1. Timer taïo xung khoâng coù n
Cuù phaùp SP <Toaùn h
Kieåu döõ lieäu V
TIMER 
 aïng> 
Toaùn haïng aïng> 
Toaùn haïng øng bieán nhôù Ñòa chæ 
T 0 ÷ 255 uøng bieán nhôù Ñòa chæ 
T 0 ÷ 255 
ùi giaù trò töùc thôøi cuûa timer T1 sang soá BCD. 
ò phaân Q cuûa timer phuï thuoäc vaøo chöùc naêng timer 
hôù (Pulse Timer) 
ïng> 
Toaùn haïng 
uøng bieán nhôù Ñòa chæ 
T 0 ÷ 255 72 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
aàu. Ngoû ra bò reset neáu quaù 
thôøi g , hoaëc coù moät tín hieäu “1” 
ñöa n
Ví du
A 
L 
SP 
A 
R 
A 
= 
L 
T 
 LC 
T 
Ví du
chieát 
thôøi g
Start 
chai, 
döøng,
nöôùc 
30s, s
vaø tie
• Ba
Star
Bot
 Ngoû ra cuûa Pulse Timer laø “1” sau khi timer ñöôïc baét ñ
ian treã mong muoán, neáu tín hieäu baét ñaàu bò reset veà “0”
goû vaøo Reset cuûa timer. 
ï: 
I 2.1 
S5T#10s //Ñaët tröôùc thôøi gian 10 seconds vaøo ACCU 1. 
T1 //Söû duïng timer taïo xung khoâng nhôù T1. 
I 2.2 
T1 //Xoaù timer T1. 
T1 //Kieåm tra traïng thaùi tín hieäu cuûa timer T1. 
Q 4.0 
T1 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T1 döôùi daïng nhò phaân. 
MW10 
T1 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T1 döôùi daïngsoá BCD. 
MW12 
ï: Vieát chöông trình cho coâng ñoaïn 
nöôùc vaøo chai theo nguyeân taéc 
ian, moâ taû hình 3.13. Nhaán nuùt 
PB, baêng taûi chaïy vaø mang theo 
caûm bieán chai phaùt hieän, baêng taûi 
 baét ñaàu môû van chieát ñeå chieát 
vaøo chai. Thôøi gian chieát ñaày laø 
au khi chieát ñaày baêng taûi laïi chaïy 
áp tuïc chieát chai keá tieáp 
ûng gaùn nhieäm vuï I/O 
I2.1 (ngoû vaøo) 
Fill valve 
I2.2 (reset) 
Q0.1 
Q 
L, LC 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ 
t PB I0.0 Conveyer motor Q0.0 
tle sensor I0.1 
Fill setting timer T0 
Hình 3.13 – Chieát nöôùc vaøo chai 
t = khoaûng thôøi gian laäp trình
CV
 73 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
• Chöônh trình 
Network1: //Taùc ñoäng Start Pbconveyer motor hoaït ñoäng taûi mang chai dòch chuyeån. 
 O "Start PB" 
 O M 1.0 
 S "conveyer Motor" 
Network2: //Bottle sensor chuyeån traïng thaùi 0 ->1 khi phaùt hieän chai seõ döøng conveyer motor 
 A "Bottle sensor" 
 FP M 0.0 
 R "conveyer Motor" 
Network3: //Chai ñöôïc phaùt hieän caøi ñaët Fill setting timer vaø Fill valve chieát 30’’ roài ngöng. 
 A "Bottle sensor" 
 L S5T#30S 
 SP "Fill Setting Timer" 
 A "Fill Setting Timer" 
 = "Fill valve" 
Network4: //Khi van chieát ngöøng, chuyeån tra it naøy seõ kích 
thích cho Conveyer motor chaïy vaø thöïc hieän ch
 A "Fill valve" 
 FN M 0.1 
 = M 1.0 
3.8.2.5.2. Timer taïo xung coù nhôù (Ex
Cuù phaùp SE <Toaùn ha
Kieåu döõ lieäu V
TIMER 
Ngoû ra Q cuûa “ Extended Pulse
reset neáu quaù thôøi gian laäp trình hoaëc 
ngoû vaøo cuûa timer trong khi timer ñan
thay ñoåi traïng thaùi tín hieäu töø “0” sang
mong muoán thì timer seõ ñöôïc baét ñaàu 
trong ACCU 1-L döôùi daïng BCD. 
Ví duï: 
A I 2.3 
L S5T#20s //Ñaët tröôùc thôøi gian
SE T4 //Söû duïng timer taïo 
A I 2.4 
R T4 //Xoaù timer T4. 
A T4 //Kieåm tra traïng tha
= Q 2.0 ïng thaùi 1-> 0 keát quaû bit M1.0 seõ ñöôïc caøi leân 1. B
u kyø chieát chai môùi. tended Pulse Timer) 
ïng> 
Toaùn haïng 
uøng bieán nhôù Ñòa chæ 
T 0 ÷ 255 
 Timer” laø “1” sau khi timer ñöôïc baét ñaàu. Ngoû ra bò 
neáu ngoû vaøo Reset cuûa timer bò taùc ñoäng. Vieäc reset 
g chaïy khoâng laøm cho ngoû ra bò reset ( nhôù). Neáu söï 
 “1” ôû ngoû vaøo ñöôïc laëp laïi tröôùc thôøi gian laäp trình 
laïi, nghóa laø kích trôû laïi. Giaù trò thôøi gian ñöôïc löu tröõ 
 20 seconds vaøo ACCU 1. 
xung coù nhôùo141. 
ùi tín hieäu cuûa timer T4. 
 74 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
L T4 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T4 döôùi daïng nhò phaân. 
T MW14 
 LC T4 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T4 döôùi daïngsoá BCD. 
T MW16 
I2.3 (ngoû vaøo) 
I2.4 (reset) 
CV
Q2.0
L, LC 
t = khoaûng thôøi gian laäp 
Ví duï: Caøi ñaët hoaït ñoäng cuûa moät maùy khuaáy troän hoãn hôïp sôn, moâ taû hình 3.14. Taùc ñoäng 
tín hieäu caøi ñaët baèng vieäc nhaán nuùt Stir PB thì ñoäng cô khuaáy seõ khuaáy 2’30” roài döøng haün. 
• Baûng gaùn nhieäm vuï I/O 
• 
Ne hôø 
caøi
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
Stir PB I0.0 Stir motor Q0.0 
 Stir setting timer T0 
Hình 3.14 – Heä thoáng 
 A "Stir PB" 
 L S5T#2M30S 
 SE "Stir Setting Timer" 
 A "Stir Setting Timer" 
 = "Stir Motor" 
3.8.2.5.3. Timer môû treã (On Delay Timer) 
Cuù phaùp SD 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
TIMER T 0 ÷ 255 
Ngoû ra cuûa “On Delay Timer” laø “1” chæ khi quaù thôøi gian ñöôïc laäp trình vaø RLO 
cuûa ngoû vaøo vaãn laø 1. Keát quaû laø vieäc ñaët ngoû vaøo leân “1” laøm cho ngoû ra leân “1” sau 
khoaûng thôøi gian trì hoaõn töông töùng khoaûng thôøi gian laäp trình. Ngoû ra bò reset neáu ngoû 
vaøo timer bò reset hoaëc coù möùc “1” ôû ngoû vaøo Reset cuûa timer. Vieäc reset ngoû vaøo hoaëc 
ñöa “1” vaøo ngoû Reset trong khi timer ñang chaïy khoâng ñöa laøm cho ngoû ra leân “1”. 
 75 Chöông trình 
twork1: //Taùc ñoäng Stir PB motor seõ khuaáy trong 2’30’’n
 ñaët boä SE T0. 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 Ví duï: 
A I 2.3 
L S5T#20s //Ñaët tröôùc thôøi gian 20 seconds vaøo ACCU 1. 
SD T4 //Söû duïng timer môû treã. 
A I 2.4 
R T4 //Xoaù timer T4. 
A T4 //Kieåm tra traïng thaùi tín hieäu cuûa timer T4. 
= Q 2.0 
L T4 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T4 döôùi daïng nhò phaân. 
T
 L ûa timer T4 döôùi daïngsoá BCD. 
T
V
m
N
1
•
•
N
ñ
 MW14 
C T4 //Taûi giaù trò thôøi gian töùc thôøi cu
 MW16 
I2.3 (ngoû vaøo) t = khoaûng thôøi gian laäp trình 
L, LC 
Q2.0
CV
I2.4 (reset) 
í duï: Vieát chöông trình khôûi ñoäng taøu löôïn vöôït khoâng gian trong caùc troø chôi caûm giaùc 
aïnh ôû caùc khu vui chôi giaûi trí. Yeâu caàu hoaït ñoäng nhö sau: 
haán nuùt Start PB thì coøi huï reo baùo hieäu cho haønh khaùch chuaån bò taøu saép khôûi haønh. Sau 
5 s thì taøu baét ñaàu chaïy. 
 Baûng gaùn nhieäm vuï I/O 
 Chöông trình 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
t1
Bieåu ñoà traïng thaùi theo thôøi gian
Q0.1
I0.0
Q0.0
CV
Start PB I0.0 Running Train Q0.0 
 Alarm Q0.1 
 Alarm setting 
timer 
T0 
t
t
etwork1: //Taùc ñoäng Start PB , Alarm seõ hoaït 
oäng. 
 A "Start PB" 
 O "Alarm" 
 AN "Running Train" 
 = "Alarm" 
 76 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Network2: //Alarm taùc ñoäng, xaùc laäp timer môû treã “Alarm setting timer” vôùi giaù trò trì hoaõn 15s. 
 A "Alarm" 
 L S5T#15S 
 SD "Alarm setting timer" 
Network3: // Sau thôøi gian trì hoaõn 15s, Running Train laø “1”. 
 A " Alarm setting timer " 
 O "Running train" 
 = " Running train " 
3.8.2.5.4. Timer taét treã (Off Delay Timer) 
Cuù phaùp SF 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
TIMER T 0 ÷ 255 
Ngoû ra Q cuûa “Off Delay Timer” ñöôïc ñaët leân möùc “1” neáu coù söï thay ñoåi tín hieäu 
töø “0” sang “1” xaûy ra ôû ngoû vaøo timer. Neáu ngoû vaøo bò reset, ngoû ra vaãn giöõ möùc “1” cho 
ñeán khi quaù thôøi gian ñöôïc laäp trình. Keát quaû vieäc reset ngoû vaøo cuûa timer laøm cho vieäc 
reset ngoû ra cuûa noù ñöôïc trì hoaõn baèng thôøi gian ñöôïc laäp trình. 
Ví duï: 
A I 1.3 
L S5T#20s //Ñaët tröôùc thôøi gian 20 seconds vaøo ACCU 1. 
SF T5 //Söû duïng timer taét treã. 
A I 1.4 
R T5 //Xoaù timer T5. 
A T5 //Kieåm tra traïng thaùi tín hieäu cuûa timer T5. 
= Q 1.0 
L T5 //Taûi giaù trò thôøi gian 
T MW24 
 LC T5 //Taûi giaù trò thôøi gian 
T MW26 
 I1.3 (ngoû vaøo) 
t =
 I1.4 (reset) 
CV 
 Q1.0
 L, LC 
 töùc thôøi cuûa timer T5 döôùi daïng nhò phaân. 
töùc thôøi cuûa timer T5 döôùi daïngsoá BCD. khoaûng thôøi gian laäp trình 
 77 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Ví duï: Cho heä thoáng keïp thuûy löïc theo haønh trình ñöôïc moâ taû hình 3.15 vaø chæ ñeà caäp ñeán 
haønh trình keïp chaët maø thoâi. Giôùi haïn cuûa vò trí eùp chaët ñöôïc xaùc ñònh bôûi LS2. Thöïc teá 
cho thaáy khoù xaùc ñònh ñöôïc vò trí naøy, do phuï thuoäc vaøo chi tieát caàn keïp neân daãn tôùi tình 
traïng laø löïc keïp khoâng ñuû. Giaûi quyeát ñieàu naøy ta söû duïng boä ñònh thôøi taét treã ñeå cô caáu 
keïp di chuyeån theâm moät thôøi gian (tm) nöõa ñaûm baûo cho khoaûng caùch vaø taêng ñöôïc aùp löïc 
keïp. 
• Baûng gaùn nhieäm vuï I/O 
• Chöông trình 
Network1: // Start PB taùc ñoäng, nhôù bit M0.0 
 A "Start PB" 
 S M 0.0 
Network2: // LS2 chuyeån traïng thaùi 0 -> 1 thì 
 A "LS2" 
 FP M 0.1 
 R M 0.0 
Network3: // Bit M0.0 laø “1”, keát quaû Clam
M0.0 töø traïng thaùi 1 -> 0 thì xaùc laäp Timer Off D
gian trì hoaõn 15s. Sau thôøi gian naøy thì keát quaû C
 A M 0.0 
Input (ngoû vaøo) Output (ng
Teân goïi Ñòa chæ Teân goïi 
Start PB I0.0 Clamp 
LS1 I0.1 Retract 
LS2 I0.2 Timer Off Delay
LS2
 L S5T#15S 
 SF "Timer Off Delay" 
 A "Timer Off Delay" 
3.8
TIMER 
Ngoû ra cuûa “Retentive On Dela
trình. Ngoû ra cuûa timer vaãn giöõ möùc “1”
timer ñang chaïy. Ngoû ra chæ bò reset kh
hay set ngoû vaøo khi timer ñang chaïy laøm
Ví duï: 
A I 1.3 
oû ra) 
Ñòa chæ LS1 leân “1”. 
xoùa bit M0.0 
p laø “1”.Khi 
elay vôùi thôøi 
lamp laø “0”. 
Q0.0 
Q0.1 
T0
Hình 3.15 – Cô caáu keïp thuûy löïc
Coá ñònh
(Clamp)
(Retract)
ay Timer) 
ôù Ñòa chæ = "Clamp" 
.2.5.5. Timer môû treã coù nhôù(Retentive On - Del
Cuù phaùp SS 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhT 0 ÷ 255 
y Timer” laø “1” chæ neáu quaù thôøi gian ñöôïc laäp 
 (nhôù, choát) ngay caû khi ngoû vaøo bò reset trong khi 
i ngoû vaøo Reset cuûa timer bò taùc ñoäng. Vieäc reset 
 cho timer khôûi ñoäng laïi, nghóa laø noù ñöôïc kích laïi. 
 78 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
L S5T#20s //Ñaët tröôùc thôøi gian 20 seconds vaøo ACCU 1. 
SS T5 //Söû duïng timer môû treã nhôù traïng thaùi. 
A I 1.4 
R T5 //Xoaù timer T5. 
A T5 //Kieåm tra traïng thaùi tín hieäu cuûa timer T5. 
= Q 1.0 
L T5 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T5 döôùi daïng nhò phaân. 
T MW24 
LC T5 //Taûi giaù trò thôøi gian töùc thôøi cuûa timer T5 döôùi daïngsoá BCD. 
T MW26 
I1.3 (ngoû vaøo) 
Ví
nh
tro
hie
• 
• 
Ne
Ne
Ne
 CV
I1.4 (reset)
Q1.0 L, LC 
t = khoaûng thôøi gian laäp trình 
 duï: Hình 3.16 moâ taû quaù trình di chuyeån cuûa ñoäng cô M. Khi nuùt Start PB ñöôïc 
aán, ñoäng cô (M) seõ di chuyeån töø traùi sang phaûi. Khi LS2 laø ON thì ñoäng cô döøng 
ng 10 giaây vaø roài di chuyeån trôû veà Home. Khi LS1 laø ON, ñoäng cô döøng vaø baùo 
äu quaù trình ñaõ hoaøn taát. 
Baûng gaùn nhieäm vuï I/O 
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
Start PB I0.0 Motor L->R Q0.0 
M
LS2LS1
Start PB
Home
LS1 I0.1 Motor R->L Q0.1 
LS2 I0.2 Retentive timer T0 
Hình 3.16 – Di chuyeån ñoäng cô 
Chöông trình 
twork1: 
 A "Start PB" 
 S "Motor L->R" 
twork2: 
 A "LS2" 
 L S5T#30S 
 SS "Retentive timer" 
 R "Motor L->R" 
twork3: 
 79 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 A "Retentive timer" 
 = "Motor R->L" 
Network4: 
 A "LS1" 
 FP M 0.0 
 R "Retentive timer" 
3.9. ÑIEÀU KHIEÅN BOÄ ÑEÁM (counter) 
3.9.1. Khaùi nieäm 
Trong coâng nghieäp, maùy moùc, daây chuyeàn saûn xuaát vieäc quaûn lyù soá löôïng saûn phaåm 
thaønh phaåm, pheá phaåm laø moät coâng ñoaïn raát quan troïng. Nhö ñeám soá chai, soá xe hôi, soá boä 
phaän, soá voøng quay cuûa truïc quay… 
Maët khaùc trong heä thoáng saûn xuaát kheùp kín vieäc giaùm saùt, quaûn lyù vaø ñieàu khieån coù 
moái quan heä maät thieát thoâng qua caùc thieát bò ñieàu khieån, giaùm saùt vaø thaäm chí truy xuaát 
nhieàu boä ñeám ñeå thöïc hieän quaûn lyù ña daïng traïng thaùi vaät lyù, ñoái töôïng. Do ñoù vieäc söû 
duïng caùc boä ñeám coù khaû naêng linh hoaït treân laø moät öu ñieåm raát maïnh meõ ñöôïc ñeà caäp 
trong caùc boä ñieàu khieån laäp trình. 
Boä ñeám & 
 hieån thò 
Hình 3.17a - Ñeám saûn phaåm taám Plastic
Hình 3.17b - Ñeám soá chai thaønh phaåm 
Nguyeân taét hoaït ñoäng cuûa boä ñeám 
Counter laø boä ñeám coù nhieäm vuï ñeám söôøn xung cuûa tín hieäu ñaàu vaøo ñeám. Caùc boä 
ñeám ñöôïc löu tröõ trong vuøng nhôù döõ lieäu cuûa PLC. Khi coù söôøn leân cuûa tín hieäu enable vaø 
ñoàng thôøi taïi ngoø vaøo CU coù möùc tín hieäu “1” thì boä ñeám thöïc hieän ñeám leân. Ngöôïc laïi, 
khi ñoàng thôøi coù söôøn leân tín hieäu enable vaø taïi ngoõ vaøo CD coù möùc tín hieäu “1” thì boä 
ñeám seõ ñeám xuoáng. 
Soá söôøn xung vaøo ñeám ñöôïc ghi vaøo moät word 16 bit vaø ñöôïc goïi laø thanh ghi C-
word. Noäi dung cuûa thanh ghi goïi laø giaù trò ñeám töùc thôøi vaø ñöôïc kí hieäu laø CV ( Current 
 80 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
value). Soá ñeám ñöôïc chöùa trong vuøng n vaø coù giaù 
trò chöùa trong khoaûng 0 ÷ 999. Khi CV≠ eáu CV = 
0 thì C-bit seõ coù giaù trò 0. CV laø moät giaù
Giaù trò ñaët tröôùc PV (Preset value) seõ ñöôïc ñaët vaøo C-word ôû thôøi ñieåm coù söôøn leân 
cuûa tín hieäu ñaët (S). 
Boä ñeám coù theå xoùa tröïc tieáp baèng tín hieäu xoùa (reset). Khi boä ñeám bò xoùa thì giaù trò 
C-word laãn C-bit ñeàu nhaän giaù trò “0”. 
Chuù yù: Boä ñeám coù theå laøm coâng vieäc ñeám traïng thaùi tín hieäu vaø hieän thò giaù trò soá ñeám; 
hoaëc coù theå duøng laøm ñieàu khieån traïng thaùi hoaït ñoäng cuûa moät ñoái töôïng khaùc. Do vaäy 
muoán ñieàu khieån chuùng ta phaûi duøng ñeán boä ñeám xuoáng. 
Tín hieäu kích ñeám 
C-bitCU
Tín hieäu ñaët ñeám 
Tín hieäu ñeán xuoáng
Giaù trò ñaët 
Tín hieäu xoùa 
Tín hieäu ñeán leân Tín hieäu ra
 Hình 3.18 
3.9.2. Caùc taùc vuï boä ñeám 
3.9.2.1. Tín hieäu kích ñeám (Enable Cou
Cuù phaùp FR <Toaùn haïn
Kieåu döõ lieäu V
Counter 
Ví duï: 
A I 2.0 //Kieåm tra tín hieäu ngo
FR C3 //Kích boä ñeám C3 khi
3.9.2.2. Ñoïc noäi dung thanh ghi C-wor
Soá ñeám töùc thôøi chöùa trong thanh
soá thaäp phaân (CV_BCD). 
3.9.2.2.1. Ñoïc soá ñeám töùc thôøi daïng bin
Cuù phaùp L <Toaùn haïn
Kieåu döõ lieäu V
Counter FR
S
CD
Counter 
wordhôù döõ lieäu heä thoáng döôùi daïng nhò phaân 
 0 thì bit counter (C-bit) coù giaù trò laø “1”, n
 trò khoâng aâm. L, LC
R
CV
Hieån thò 
soá ñeám
 – Nguyeân taéc hoaït ñoäng Counter 
nter) 
g> 
Toaùn haïng 
uøng bieán nhôù Ñòa chæ 
C 0 ÷ 255 
õ vaøo I 2.0. 
 RLO chuyeån 0 sang 1. 
d 
 ghi coù theå ñöôïc bieåu thò nhö soá nhò phaân (CV) hay 
ary 
g> 
 81 
Toaùn haïng 
uøng bieán nhôù Ñòa chæ 
C 0 ÷ 255 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
L ñoïc giaù trò ñeám töùc thôøi CU 1-L. 
Ví duï: 
L C3 //Ñoïc giaù trò cuûa boä ñeám C3 da
L C3
Giaù trò ñeám (0÷999) maõ nhò phaân 
Töø ñeám cuûa 
C3 trong boä 
nhôù 
 Noäi dung cuûa 
ACCU 1-L sau 
thöïc hieän leänh 
L C3 
 Taát caû giaù trò 0 Giaù trò ñeám (0÷999) maõ nhò phaân 
3.9.2.2.2. Ñoïc soá ñeám töùc thôøi daïng BCD 
Cuù phaùp LC 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
Counter C 0 ÷ 255 
LC ñoïc giaù trò ñeám töùc thôøi cuûa boä ñeám thöïc hieän döôùi daïng soá BCD vaøo 
ACCU 1-L. 
Ví duï: 
LC C3 //Ñoïc giaù trò cuûa C3 vaøo ACCU 1-L. 
Giaù trò ñeám daïng BCD 
102 (hundreds) 100 (Ones) 101 (Tens)
LC C3
Giaù trò ñeám (0÷999) maõ nhò phaân 
Töø ñeám cuûa 
C3 trong boä 
nhôù 
 Noäi dung cuûa 
ACCU 1-L sau 
thöïc hieän leänh 
LC C3 
3.9.2.3. Ñaët tröôùc giaù trò ñeám (Counter Preset value) 
Cuù phaùp S 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
Counter C 0 ÷ 255 
 82 cuûa boä ñeám döôùi daïng soá nguyeân vaøo AC
ïng nhò phaân vaøo ACCU 1-L. 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Boä ñeám ñöôïc ñaët vôùi giaù trò ñöôïc ñaët tröôùc taïi ngoõ vaøo PV khi coù caïnh leân RLO ôû 
ngoõ S naøy. Soá ñeám PV laø moät töø 16 bit ôû daïng BCD naèm trong khoaûng 0 ÷ 999 
Ví duï: 
A I 2.3 //Kieåm tra tín hieäu ngoõ vaøo I 2.3 
L C#3 //Naïp giaù trò ñeán laø 3 vaøo ACCU 1-L 
S C1 //Ñaët boä ñeám C1 vôùi giaù trò ñeám neáu RLO töø “0” sang “1”. 
3.9.2.4. Xoùa boä ñeám (Reset Counter) 
Cuù phaùp R 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
Counter C 0 ÷ 255 
 Boä ñeám seõ ñöôïc ñaët veà “0” (bò reset) neáu RLO ôû ngoõ vaøo R laø “1”. 
Ví duï: 
A I 2.3 //Kieåm tra tín hieäu ngoõ vaøo I 2.3 
R C1 //Xoùa boä ñeám C1 . 
3.9.2.5. Ñeám leân (Counter Up) 
Cuù phaùp CU 
Kieåu döõ lieäu V
Counter 
Taêng Counter leân 1. Chöùc naêng 
döông cuûa RLO ( töø “0” sang “1”) xa
khoâng taêng nöõa. 
Ví duï: 
A I 2.1 //Neáu coù söôøn leân thay
CU C3 //Boä ñeám C3 taêng leân 
Ví duï: Vieát chöông trình xaây döïng boä ñ
taûi ñang hoaït ñoäng. Soá löôïng chai caàn ñ
• Chöông trình 
Network1: 
 A "Sensin signal" 
 AN M 0.0 
 CU "1fst counter" 
Network2: 
 L "1fst counter" 
 L 999 //Giaù trò ñeám
 = =I 
 = M 0.0 Toaùn haïng 
uøng bieán nhôù Ñòa chæ C 0 ÷ 255 
naøy chæ ñöôïc thöïc hieän neáu coù söï thay ñoåi tín hieäu 
ûy ra ôû ngoõ vaøo CU. Khi soá ñeám taêng ñeán 999 thì 
 ñoåi taïi ngoõ vaøo I 2.0. 
1 khi RLO chuyeån töø 0 sang 1. 
eám ñeám soá saûn phaåm chai nöôùc suoái treân moät baêng 
eám ñöôïc saûn xuaát trong moät ca laø 1800 chai. 
 toái ña cuûa moät boä ñeám. 
 83 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Network3: 
 A "Sensin signal" 
 FN M 0.4 
 = M 0.5 
Network4: 
 A M 0.5 
 A M 0.0 
 S M 0.6 
Network5: 
 A M 0.6 
 A "Sensin signal" 
 FP M 0.3 
 CU "2 sd counter" 
Network6: 
 L "2 sd counter" 
 L "1fst counter" 
 +I 
 T MW 10 //Giaù trò soá ñeám chai nöôùc suoái ñöôïc hieån thò ôû oâ nhôù MW10 laø soá nguyeân 2 byte. 
Network7: 
 A I 0.2 
 R "1fst counter" 
 R "2 sd counter" 
 R M 0.6 
3.9.2.6. Ñeám xuoáng (Counter Down) 
Cuù phaùp CD 
Toaùn haïng 
Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ 
Counter C 0 ÷ 255 
Giaûm Counter ñi 1. Chöùc naêng naøy chæ ñöôïc thöïc hieän neáu coù söï thay ñoåi tín hieäu 
döông cuûa RLO ( töø “0” sang “1”) xaûy ra ôû ngoõ vaøo CD. Khi soá ñeám giaûm xuoáng ñeán 0 thì 
noù khoâng coøn giaûm ñöôïc nöõa. 
Ví duï: 
A I 0.1 //Boä ñeám ñöôïc ñaët giaù trò khi phaùt hieän söôøn leân taïi I0.1 
L C#14 //Giaù trò ñaët tröôùc 14 
S C1 //Naïp giaù trò ñaët tröôùcñeám vaøo C1 
A I 0.0 //Xung vaøo boä ñeám xuoángI0.0 
CD C1 //Giaûm giaù trò ñeám xuoáng 1 khi RLO cuûa I0.0 töø 0 sang 1 
AN C1 //Pheùp toaùn buø cuûa bit-C1. 
= Q 0.0 //Q0.0 = 1 neáu giaù trò ñeám töùc thôøi cuûa C1 laø 0. 
Ví duï: Heä thoáng ñeám vaø ñoùng goùi saûn phaåm moâ taû hình 3.19. 
 84 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Khi nhaán coâng taéc khôûi ñoäng 
PB Start baêng taûi BT1 mang 
hoäp ñöïng saûn phaåm di chuyeån. 
Caûm bieán SS1 nhaän daïng 
thuøng ñöïng taùc ñoäng, baêng taûi 
BT1 döøng laïi. Baêng taûi BT2 
chöùa saûn phaåm dòch chuyeån, 
saûn phaåm ñöôïc rôùt vaøo hoäp 
ñöïng, saûn phaåm ñöôïc ñeám bôûi 
moät caûm bieán quang hoàng 
ngoaïi SS2 khi ñeám ñöôïc 10 
saûn phaåm ( moãi hoäp chöùa 10 
saûn phaåm) thì baêng taûi BT2 
döøng, tieáp tuïc BT1 dòch 
chuyeån ñeå ñoùng goùi hoäp môùi. 
Ñeå ngöøng quaù trình ta nhaán nuùt 
PB Stop. 
• Baûng gaùn nhieäm vuï I/O 
• Chöông trình 
Network1: 
A( 
 O "Start PB" 
C0
Input (ngoû vaøo) Output (ngoû ra) 
Teân goïi Ñòa chæ Teân goïi Ñòa chæ
Start PB I0.0 
Bieåu ñoà traïng thaùi theo thôøi gian
I0.0
I0.1
I0.2
I0.3
Q0.1
M0.0
Q0.0
Start PB
Stop PB
PieceConveyor
Piece sensor 
Box sensor
Box 
conveyor 
Q0.0 
Stop PB I0.1 Piece 
conveyor 
Q0.1 
Box 
sensor 
I0.2 Temporate 
variable 
M0.0 
Piece I0.3 Piece C0 
Hình 3.19 – Baêng chuyeàn ñeám vaø ñoùng goùi
 O "Temporate variable" 
 ) 
 A "Stop PB" 
 = "Temporate variable" 
Network2: 
 A "Temporate variable" 
 AN "BoxConveyor" 
 = "PieceConveyor" 
Network3: 
 A "Boxsensor" 
 85 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 L C#12 
 S "PieceCounter" 
Network4: 
 A "Piecesensor" 
 CD "PieceCounter" 
Network5: 
 A( 
 ON "PieceCounter" 
 ON "Boxsensor" 
 ) 
 AN "PieceConveyor" 
 = "BoxConveyor" 
3.10. CAÙC LEÄNH ÑIEÀU KHIEÅN CHÖÔNG TRÌNH 
3.10.1. Leänh nhaûy chöông trình 
Leänh nhaûy chöông trình cho pheùp chuùng ta coù theå ngaét luoàng ñieàu khieån chöông 
trình bình thöôøng vaø nhaûy ñeán thöïc thi moät nhieäm vuï khaùc trong chöông trình theo nhaõn ñòa 
chæ caàn nhaûy ñeán. Nhaõn chöông trình cho pheùp toái ña laø 4 kyù töï chöõ vaø soá vôùi kyù töï ñaàu 
phaûi laø chöõ. Nhaõn chöông trình ñöôïc theo sau laø daáu “:” baét buoäc vaø phaûi naèm trong moät 
doøng tröôùc caâu leänh cuûa chöông trình cuûa nhieäm vuï thöïc hieän. 
3.10.1.1. Leänh nhaûy khoâng ñieàu kieän 
Cuù phaùp JU 
Leänh naøy ngaét luoàng ñieàu khieån chöông trình bình thöôøng vaø nhaûy ñeán nhaõn chöông 
trình ñöôïc chæ ñònh ôû ngay sau JU. Leänh naøy thöïc hieän baát chaáp ñieàu kieän vaø khoâng phuï 
thuoäc vaøo moät bit traïng thaùi naøo. 
Ví duï: 
Network 1 
JU FORW // Nhaûy khoâng ñieàu kieän tôùi nhaõn nhaûy FORW. 
Network 2 
. 
. 
Network m 
FORW: A I 2.1 // Queùt chöông trình baét ñaàu ôû ñaây sau khi nhaûy ñeán. 
= M54.0 
3.10.1.2. Leänh nhaûy coù ñieàu kieän 
3.10.1.2.1. Leänh nhaûy neáu RLO=1 
Cuù phaùp JC 
Neáu keát quaû RLO=1 thì JC ngaét luoàng ñieàu khieån chöông trình bình thöôøng vaø nhaûy 
ñeán nhaõn chöông trình ñöôïc chæ ñònh trong chöông trình. Neáu khoâng thì thöïc hieän leänh keá. 
Leänh laøm thay ñoäi noäi dung thanh ghi traïng thaùi. 
 86 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Ví duï: 
Ñuùng 
Baét ñaàu
Ñoaïn chöông 
trình JOV 
Xoùa oâ nhôù
MW22 
Phaàn chöông 
trình A 
RLO=1 
Chöông
 trình JOV
Ñoaïn A
• 
• 
A I 1.0 
A I 1.2 
JC JOV 
L 0 
T MW22 
JOV: A I 2.1 
 = Q0.1
I 1.0=1
& I 1.2=1? 
Keát thuùc
Sai
RLO=0
3.10.1.2.2. Leänh nhaûy neáu RLO=0 
Cuù phaùp JCN 
Neáu keát quaû RLO=0 thì JCN ngaét luoàng ñieàu khieån chöông trình bình thöôøng vaø nhaûy ñeán 
nhaõn chöông trình ñöôïc chæ ñònh trong chöông trình. Neáu khoâng thì thöïc hieän leänh keá. Leänh 
laøm thay ñoäi noäi dung thanh ghi traïng thaùi. 
Ví duï: 
Ñuùng 
RLO=0 
Baét ñaàu
Ñoaïn chöông 
trình JOV 
I 3.0=1
& I 3.2=1? 
Keát thuùc
• 
• 
A I 3.0 
A I 3.2 
JCN JOV 
L IW12 
T MW22 
JOV: A I 2.1 
 = Q0.1
Ñoaïn A
Chöông
 trình JOV
Sai
RLO=1
Truyeàn IW12
Phaàn chöông 
trình A 
 ->MW22 
 87 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
3.10.2. Leänh keát thuùc chöông trình 
3.10.2.1. Keát thuùc coù ñieàu kieän 
Cuù phaùp BEC 
Leänh thöïc hieän keát thuùc chöông trình trong khoái neáu nhö RLO=1. Leänh laøm thay ñoåi noäi 
dung thanh ghi. 
Ví duï: 
A I 1.0 
BEC // Keát thuùc khoái chöông trình, neáu RLO=1. 
L IW4 // Tieáp tuïc ôû ñaây neáu BEC khoâng thöïc thi (RLO=0). 
T MW10 
3.10.2.2. Keát thuùc voâ ñieàu kieän 
Cuù phaùp BEU 
Leänh thöïc hieän keát thuùc chöông trình trong khoái neáu nhö RLO= 0. Leänh laøm thay ñoåi noäi 
dung thanh ghi. 
Ví duï: 
A 1.0 
JC NEXT // Nhaûy ñeán nhaõn chöông trình NEXT, neáu RLO=1 I 1.0 = 1). 
L IW4 // Tieáp tuïc ôû ñaây neáu nhaûy khoâng thöïc hieän. 
T IW10 
A I 6.0 
A I 6.1 
S M 12.0 
BEU // Keát thuùc khoái chöông trình voâ ñieàu kieän. 
NEXT: NOP 0 // Tieáp tuïc ôû ñaây neáu nhaûy ñöôïc thöïc hieän 
3.10.3. Leänh voøng laëp chöông trình 
Cuù phaùp LOOP 
 Leänh voøng laëp laøm giaûm noäi dung cuûa thanh ghi ACCU 1-L ñi moät ñôn vò öùng vôùi moät laàn 
laëp. Neáu noäi dung thanh ghi coøn khaùc 0 thì tieáp tuïc laëp laïi cho ñeán khi noäi dung thanh ghi 
baèng 0. Khi chöông trình queùt ñeán gaëp leänh laëp thì noù seõ nhaûy ñeán nôi chöùa nhaõn, nhaõn maø 
ñöôïc chæ ñònh sau leänh laëp. 
Ví duï: Thöïc hieän ñoaïn chöông trình A naêm laàn. 
 88 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 89 
 Baét ñaàu
Khôûi taïo
 ñeám voøng
L +5
NEXT: T MW10 
• 
• 
• 
 L MW10 
 LOOP NEXT 
Khôûi taïo soá 
ñeámlaëp 
Ñoaïn A 
 Ñoaïn chöông 
trình A 
 Giaûm ñeám
 laàn laëp ñi 1 
 Soá ñeám
 laàn laëp ≠ 0?
Ñuùng 
Sai 
 Keát thuùc
Ví duï: Vieát chöông trình ñieàu khieån traïm ñeøn giao thoâng giao loä ngaõ 4. Vôùi thôøi gian coät 
1: ñeøn ñoû laø 35s, xanh 45s, vaøng 10s; Thôøi gian coät 2: ñeøn ñoû laø 55s, ñeøn xanh 30s, ñeøn 
vaøng 5s. 
Network1: 
 A I 0.0 
 AN T 1 
 L W#16#1900 
 SD T 1 
Network2: 
 L W#16#1600 
 LC T 1 
 <=I 
 JC xnh 
 L W#16#1550 
 >I 
 JC vng 
 S Q 4.0 // Ñeøn ñoû coät 1 
 S Q 5.2 // Ñeøn xanh coät 2 
 R Q 4.1 // Ñeøn vaøng coät 1 
 R Q 4.2 // Ñeøn xanh coät 1 
 R Q 5.0 // Ñeøn ñoû coät 2 
 LC T 1 
 L W#16#1100 
 <=I 
 JC vng1 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
 BEU 
Network3: 
xnh: S Q 4.2 
 S Q 5.0 
 R Q 4.1 
 R Q 4.0 
 R Q 5.1 
 R Q 5.2 
 BEU 
Network4: 
vng: S Q 4.1 
 S Q 5.0 
 R Q 4.2 
 R Q 4.0 
 BEU 
Network5: 
vng1: S Q 5.1 // Ñeøn vaøng coät 2 
 R Q 5.2 
 BEU 
3.10.4. Khoái döõ lieäu 
3.10.4.1. Khaùi nieäm 
Caùc khoái döõ lieäu DB duøng ñeå caát döõ lieäu, dung löôïng döõ lieäu phuï thuoäc vaøo loaïi 
PLC cuï theå (thí duï: S7-300 cho pheùp moät DB chöùa toái ña 8 KB. Ta coù theå khai baùo nhieàu 
DB cuøng moät luùc ( toái ña 65535), ñöôïc phaân bieät vôùi nhau baèng caùc chæ soá khoái DB1, 
DB2,…DB65535. 
Kieåu DB: Coù hai kieåu DB (hình 
• DB toaøn cuïc (Shared DB): daønh ñeå chöùa döõ lieäu toaøn cuïc maø coù khaû naêng chia xeû. 
Caùc khoái FB, FC hoaëc OB coù theå doïc ra vaø ghi vaøo DB naøy. Loaïi kieåu naøy truy caäp 
vôùi teân DB. 
• DB cuïc boä (Instance DB): ñöôïc maëc ñònh cho khoái haøm lieân quan ñeán noù vaø duøng 
ñeå chöùa caùc bieán cuïc boä vaø caùc tham soá cuûa khoái haøm. Loaïi kieåu naøy truy caäp vôùi 
teân DI. 
OB1 
FC20
FC30
FB1
DB20
DB5
Döõ lieäu 
toaøn cuc
Döõ lieäu 
cuc boä
Hình 3.20 – Söû duïng caùc kieåu DB 
 90 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
Chuù yù: 
• Tröôùc khi taïo Instance DB thì FB töông öùng vôùi noù ñaõ taïo saün. Ta phaûi chæ ra soá FB 
khi taïo Instance DB. 
3.10.4.2. Truy nhaäp vaø quaûn lyù döõ lieäu 
a) Ñònh ñòa chæ döõ lieäu trong moät DB hay DI 
b) Leänh môû khoái döõ lieäu 
Cuù phaùp OPN 
 Bit Byte Word Double word 
Shared DB DBXx.y DBXx DBWx DBDx 
Instance DB DIXx.y DIBx DIWx DIDx 
Vôùi x = 1 ÷ 65535 , y = 0 ÷ 7 
khoái döõ lieäu 
Kieåu döõ lieäu Chæ soá khoái döõ lieäu 
DB, DI 0 ÷ 65535 
Leänh thöïc hieän môû khoái döõ lieäu toaøn cuïc vaø cuïc boä. Leänh khoâng laøm thay ñoåi noäi 
dung thanh ghi traïng thaùi. 
Ví duï: 
OPN DB10 // Môû khoái döõ lieäu toaøn cuïc DB10. 
L DBW35 // Ñoïc noäi dung cuûa töø DBW35 cuûa DB10 vaøo ACCU1-L. 
T MW22 // Chuyeån vaøo oâ nhôù MW22. 
OPN DI20 // Môû khoái döõ lieäu cuïc boä DI20. 
L DIB12 // Ñoïc noäi dung 12 byte cuûa DIB20 vaøo ACCU1-L. 
T DBB37 // Chuyeån ACCU1-L
c) Trao ñoåi noäi dung cuûa khoái döõ lieäu 
Cuù phaùp CDB 
Leänh chuyeån noäi dung cuûa DB 
dung thanh ghi traïng thaùi. 
d) Ñoïc ñoä daøi cuûa khoái döõ lieäu DB va
Cuù phaùp L DBLG 
 L DILG 
Leänh ñoïc ñoä daøi tính theo byte 
ñöôïc döôùi daïng 32 bits vaøo ACCU1. N
khoâng laøm thay ñoåi noäi dung thanh ghi
Ví duï: 
OPN DB10 // Môû khoái döõ lieäu toaøn cuïc D
L DBLG // Ñoïc ñoä daøi theo byte cuûa D
L MD10 // Giaù trò ñeå so saùnh. 
<D 
JC ERRO // Nhaûy ñeán nhaõn ERRO neáu 
 vaøo byte thöù 37 cuûa DB10. 
 toaøn cuïc (DI) vaø cuïc boä (DB)sang DI vaø ngöôïc laïi. Leänh khoâng laøm thay ñoåi noäi 
ø DI 
cuûa khoái döõ lieäu DB hoaëc DI vaø chuyeån keát quaû ñoïc 
oäi dung cuõ cuûa ACCU1 chuyeån vaøo ACCU2. Leänh 
 traïng thaùi. 
B10. 
B10. 
ñoä daøi cuûa DB10 nhoû hôn MD10. 
 91 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
e) Ñoïc chæ soá khoái döõ lieäu DB vaø DI 
Cuù phaùp L DBNO 
 L DINO 
Leänh ñoïc chæ soá khoái döõ lieäu DB vaø DI vaø chuyeån keát quaû ñoïc ñöôïc vaøo ACCU1 
döôùi daïng soá nguyeân. Noäi dung cuõ cuûa ACCU1 chuyeån vaøo ACCU2. Leänh khoâng laøm thay 
ñoåi noäi dung thanh ghi traïng thaùi. 
Ví duï: Thöïc hieän pheùp coäng hai soá nguyeân 2byte chöùa ôû oâ nhôù DBW0 vaø DBW2 trong 
khoái döõ lieäu DB1. Keát quûa cuûa noù ñem so saùnh vôùi moät giaù trò trong oâ nhôù IW0, keát quaû laø 
bit Q0.0 laø “1” neáu thoûa maõn pheùp toaùn >=I. 
• Khai baùo khoái DB1 
• Chöông trình 
Network1: //Laáy giaù trò oâ nhôù Word 0 trong DB1 vaø caát vaøo oâ nhôù MW0. 
 L DB1.DBW 0 
 T MW 0 
Network2: //Laáy giaù trò oâ nhôù Word 2 trong DB1 vaø caát vaøo oâ nhôù MW2. 
 L DB1.DBW 2 
 T MW 2 
Network3: //Coäng 2 giaù trò chöùa oâ nhôù MW0 vaø MW2 caát vaøo MW4 roài so saùnh vôùi giaù trò chöùa trong IW4. 
 Keát quaû bit Q0.0 laø “1” neáu MW4 >= IW4. 
 L MW 0 
 L MW 2 
 +I 
 T MW 4 
 L IW 0 
 >=I 
 = Q 0.0 
 92 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
BAØI TAÄP CHÖÔNG 3 
Baøi 1: 
Caùc caâu döôùi ñaây, ñuùng hay sai?. Haõy söûa vaø laøm ñuùng noù. Giaûi thích yù nghóa. 
a) b) c) d) 
L 150.000 
L 4.32E+2
/D 
T MW22 
L 3.125E+03 
L MW16 
*I 
T MD40 
L MD2 
L MW8 
-D 
T IW12 
L IW6 
L MD10 
+I 
T MD20 
Baøi 2: 
a) b) 
Network 2: 
Network 1: 
L 12.000
L MD0 
+D 
T MD4 
- Cho MD4 = 15.000
Keát quaû: 
- MD0, MD8 = ? 
- ACCU 1 = ? 
- ACCU 2 = ? 
L 3000 
L 8000 
+I 
T MW2 
Keát quaû: 
- MW2 = ? 
- ACCU 1 = ? 
- ACCU 2 = ? 
Baøi 3: Vieát chöông trình (daïng STL) theo h aây: 
MD4 = ((IW0 + D W2 
Baøi 4: 
- Vieát chöông trình cho haøm toaùn sau:
MD20 = [(IW2 + IW12]/4.25 -250.50 
- Cho IW2 = 12500, PIW274 = 2400, I
bao nhieâu? 
Baøi 5: 
Vieát chöông trình cuûa cô caáu 
phaân loaïi maøu traùi boùng. 
Boùng coù 2 maøu: xanh vaø 
vaøng, ta duøng hai caûm bieán 
maøu saéc caûm öùng. SS1 cho 
maøu xanh vaø SS2 cho maøu 
ñoû. 
Hình 1
Traùi boùng
Neáu boùng laø maøu ñoû thì ñi 
qua loái2, coøn maøu xanh thì 
ñi qua loái 1. Phaân luoàng cho 
 L MD4 
L 24.000
*D 
T MD8
aøm ñaõ cho sau ñ
BW3) x 15) / M
 + PIW274)*7.5
W12 = 5600. Giaù trò chöùa trong oâ nhôù MD20 laø 
 – Cô caáu phaân loaïi traùi boùng 
SS2 SS1
Loái 2 
Loái 1 
Coång I
93 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
hai loái baèng coång xoay I. Coång naøy ñöôïc xoay nhôø cô caáu pittoâng khí neùn vaø van ñoùng môû 
khí 5/2/1 cuoän coil. Moâ taû hình 1 
Baøi 5: 
LS2
Drain Valve
LS1
 Vieát chöông trình ñieàu khieån quaù trình bôm nöôùc vaøo 
moät beå chöùa. 
Beå chöùa ñöôïc moâ taû hình 2. Nhaán nuùt Pump PB thì bôm 
nöôùc. Neáu coâng taéc möùc ñaày LS2 taùc ñoäng thì ngöøng bôm. 
Ngöôïc laïi neáu coâng taéc caïn nöôùc LS1 hôû ra thì laïi bôm nöôùc. 
Trong quaù trình bôm, nhaán nuùt PB Stop thì ngöng bôm. 
 Hình 2 – bôm beå nöôùc 
Baøi 6: 
Baøi toaùn phaân loaïi saûn phaåm theo kích thöôùc ñöôïc moâ taû: 
 Kích thöôùc phaân loaïi theo cao (H1 ) vaø thaáp (H2) : H1 > H2. 
 Khoaûng caùch giöõa hai saûn phaåm laø L khoâng ñoåi. 
 Saûn phaåm ñöôïc vaän chuyeån baèng baêng taûi. Neáu saûn phaåm laø thaáp thì seõ bò loaïi ra khoûi 
baêng taûi baèng cô caáu pittoâng (A). Coøn khoâng thì ñi thaúng (khoâng bò loaïi). 
Anh/ Chò SV töï ñöa ra giaûi phaùp thöïc hieän heä thoáng ( bao goàm: caûm bieán, pittoâng, 
van …) ñeå giaûi quyeát baøi toaùn. Vieát chöông trình ñieàu khieån. 
Hình 3 – Maùy daäp
S1
Baøi 7: 
Maïch ñieàu khieån thuûy löïc cuûa cô caáu duøng ñeå laép raùp 
coù ñoä doâi , vôùi yeâu caàu kyõ thuaät nhö sau (hình 3): 
Ñöa chi tieát caàn laép vaøo vò trí laép, aán nuùt S1 cô caáu 
tònh tieán xuoáng laép vaø eùp chaët chi tieát ñeán khi ñuû aùp suaát 
20 bar, ñeøn H saùng, thì cô caáu töï quay veà. Neáu trong quaù 
trình gia coâng xaûy ra söï coá thì aán nuùt S2 cô caáu quay veà 
vò trí ban ñaàu. Vieát chöông trình ñieàu khieån. 
Baøi 8: 
Hình 4 – Loø hôi aùp löïc 
Stop PB
Open PB
Close PB
Close LS
Open LS
Moät loø hôi aùp löïc, cöûa loø 
ñöôïc môû vaø ñoùng baèng moät 
xylanh thuûy löïc, hình 4. Vò trí 
ñoùng vaø môû ñöôïc gaén 2 giôùi haïn 
haønh trình. Khi nhaán nuùt Open PB 
thì cöûa môû ñeán luùc Open LS taùc 
ñoäng thì cöûa döøng laïi, ngöôïc laïi 
khi nhaán nuùt Close PB thì cöûa 
ñoùng ñeán luùc Close LS taùc ñoäng 
thì, löïc ñoùng cöûa ñöôïc taêng leân 
laøm cho kín vaø aùp suaát ñaït ñeán 
 94 
ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 
100 bar thì cöûa döøng.Trong quaù trình ñoùng môû cöûa neáu nuùt Stop PB ñöôïc nhaán thì cöûa ñöùng 
laïi. Haõy vieát chöông trình ñieàu khieån. 
Baøi 9: Vieát chöông trình chieát Yoghurt vaøo huû nhöïa cuûa heä thoáng sau ( hình 5). 
- Nhaán nuùt PB Start thì baêng taûi mang caùc huû nhöïa dòch chuyeån, khi gaëp caûm bieán nhaän 
ñöôïc huû (SS1) thì baêng 
taûi döøng laïi. Pít toâng A 
dòch chuyeån qua phaûi vaø 
Yoghurt ñöôïc chieát vaøo 
huû, theå tích ñöôïc xaùc 
ñònh baèng caûm bieán ñieän 
dung (SS2). Sau khi chieát 
ñuû pít toâng I dòch chuyeån 
qua traùi ñeå ngöng chieát. 
Khi gaëp LS (giôùi haïn töø 
tröôøng) thì baêng taûi laïi 
chuyeån ñoäng vaø moät huû 
môùi seõ ñöôïc chieát. 
SS2
PB StopPB Start
Baêng taûi 
Yoghurt 
Huû nhöïa
LS 
SS1
Pít toâng A 
P 
Sol a 
T 
Ñoäng cô BT 
Hình 5 – Cô caáu chieát yoghurt 
- Nhaán nuùt PB Stop thì 
heä thoáng ngöøng hoaït ñoäng. 
Chuù yù: Van khí laø loaïi 5/2/ 1 side. Bình thöôøng coù khí neùn maø khoâng coù tín hieäu ñieän thì pít 
toâng naèm phía traùi ñoùng mieäng pheãu chöùa Yoghurt. Khi coù tín hieäu ñieän taùc ñoäng vaøo cuoän 
coil thì pít toâng seõ dòch chuyeån qua phaûi laøm môû mieäng pheãu. 
Baøi 10: 
Moät maùy ñoùng goùi saûn phaåm rôøi thaønh caùc loác saûn phaåm baèng phöông phaùp maøng 
co. Saûn phaåm saép xeáp vaøo bao maøng Plastic vaø ñöa vaøo buoàng gia nhieät ñeå laøm co maøng, 
sau khi ñoùng goùi maøng co xong ñöôïc ñi ra khoûi buoàng. Saûn phaåm ñöôïc vaän chuyeån baèng 3 
baêng taûi noái tieáp nhau( baêng taûi A vaän chuyeån saûn phaåm tröôùc khi vaøo buoàng co, saûn phaåm 
ñöôïc co maøng vaän chuyeån bôûi baêng taûi B, baêng taûi chuyeån loác ñoùng goùi ñeán khaâ
            Các file đính kèm theo tài liệu này:
 Chương 3- Ngôn ngữ lập trình.pdf Chương 3- Ngôn ngữ lập trình.pdf