Chương 3: Ngôn ngữ lập trình

Chia sẻ: Nguyenhoanglong Long | Ngày: | Loại File: PDF | Số trang:63

0
962
lượt xem
640
download

Chương 3: Ngôn ngữ lập trình

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'chương 3: ngôn ngữ lập trình', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Chương 3: Ngôn ngữ lập trình

  1. Ñ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ÖÔNG 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
  2. Ñ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á. Statement List Ladder Diagram Function Block Diagram M Hình 3.1-Ba kieåu ngoân ngöõ laäp trình 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
  3. Ñ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
  4. Ñ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
  5. Ñ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ï PQW272 M0.9 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
  6. Ñ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
  7. Ñ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àng môû • X( Loaïi tröø vôùi loàng môû • XN( Phuû ñònh loaïi tröø vôùi loàng môû • ) Ñoùng loàng keát thuùc ñoaïn leänh. Chuùng ta coù theå keát thuùc chuoãi leänh bieåu thöùc logic baèng caùc leänh: •= 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 leänh sau ñeå thay ñoåi keát quaû cuûa pheùp toaùn logic (RLO): • NOT Phuû ñònh RLO • SET Nhô RLO (=1) • CLR Xoùa RLO (=0) • SAVE Löu tröõ RLO ôû thanh ghi BR Hay laø söû duïng moät leänh sau ñeå phaùt hieän söôøn leân vaø xuoáng cuûa tín hieäu: • FN Phaùt hieän caïnh xuoáng (Edge Negative) • FP Phaùt hieän caïnh leân (Edge Positive) 3.3.1. Leänh gaùn Cuù phaùp = Toaùn haïng Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù Bit Bool I, Q, M, L, D Ví duï: Chöông trình STL 42
  8. Ñ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ï: Chöônh trình STL Rôø le logic Nguoàn ñieän A I1.0 I1.0 möùc tín hieäu 0 NO tieáp ñieåm A I1.1 I1.1 möùc tín hieäu 0 NO tieáp ñieåm = Q0.2 Q0.2 möùc tín hieäu 0 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 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 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. Ví duï: Chöônh trình STL Rôø le logic Nguoàn ñieän A I1.0 I1.0 möùc tín hieäu 0 NO tieáp ñieåm A I1.1 I1.1 möùc tín hieäu 1 NC tieáp ñieåm = Q0.2 Q0.2 möùc tín hieäu 0 Cuoän daây 43
  9. Ñ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 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 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. Ví duï: Chöônh trình STL Rôø le logic Nguoàn ñieän O I1.0 I1.0 möùc tín hieäu 0 I1.1 möùc 0 NO tieáp ñieåm O I1.1 = Q0.2 Q0.2 möùc tín hieäu 0 Cuoän daây 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 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 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. Ví duï 5: Chöônh trình STL Rôø le logic Nguoàn ñieän O I1.0 I1.0 möùc tín hieäu 0 NO tieáp ñieåm ON I1.1 I1.1 möùc tín hieäu1 NC tieáp ñieåm = Q0.2 Q0.2 möùc tín hieäu 1 Cuoän daây 44
  10. Ñ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ï: Chöônh trình STL Rôø le logic Nguoàn ñieän X I0.0 Tieáp ñieåm I1.0 X I0.1 Tieáp ñieåm I1.1 = Q1.2 Q0.2 cuoän daây 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: Chöônh trình STL Rôø le logic Nguoàn ñieän X I0.0 Tieáp ñieåm I1.0 XN I0.1 Tieáp ñieåm I1.1 = Q1.2 Q0.2 cuoän daây 45
  11. Ñ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ï: Chöônh trình STL Rôø le logic Nguoàn ñieän A( O I0.0 M0.0 M0.1 O M0.1 ) A( O I0.4 I0.4 M1.1 O M1.1 ) A M1.4 M1.4 = Q1.2 Q1.2 cuoän daây 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ï: Chöônh trình STL Rôø le logic Nguoàn ñieän A I0.0 I0.0 O( I0.4 A I0.4 AN M1.1 M1.1 ) A M1.4 M1.4 = Q1.2 Q1.2 cuoän daây 46
  12. Ñ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 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 • Chöông trình Network1: Hình 3.2 – Maïch ñieän ñoäng cô A( I0.0 O “Start PB” I0.1 O “Coil MC” ) Q0.0 A “Stop PB” = “Coil MC” Bieåu ñoà traïng thaùi theo thôøi gian Ví duï: Vieát chöô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 xaùc ñònh tröôùc ñöôïc moâ 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 haïn haønh trình SS1. Khi nhaán nuùt Start PB thì ñoäng cô truyeàn chuyeån ñoäng baùnh ma saùt (1) ñaåy phoâi theùp dòch chuyeån. Gaëp SS1 thì thaéng ñoäng cô laøm vieäc vaø ñoäng cô döøng, ñoàng thôø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 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 Dimension sensor I0.1 Motor Brake Q0.1 Cutting Finish Sensor I0.2 Cutting Knife Q0.2 • Chöông trình Network1: Cutting Finish A "Start PB" Sensor AN "Motor Brake" Cutting Knife S "Friction Wheel Motor" 1Y Motor Brake Network2: P A "Dimension sensor" R "Friction Wheel Motor" S "Cutting Knife" S "Motor Brake" Network3: A "Cutting Finish Sensor" Friction Wheel Motor Workpiece Dimension Sensor R "Cutting Knife" Hình 3.3 – Cô caáu caét saûn phaåm theo kích thöôùc R "Motor Brake" 47
  13. Ñ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ï: Chöônh trình STL Rôø le logic Nguoàn ñieän NO contact I1.0 NC contact Coil Q4.0 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 Drill Start, muõi khoan xoay, ñaàu khoan tònh tieán vaø khoan chi tieát. Ñaït ñuû chieàu saâu khoan caàn thieát (S4 taùc ñoäng), ñaàu khoan töï ñoäng quay veà vaø keát thuùc moät chu kyø khoan taïi S3. Trong quaù trình gia coâng neáu xaûy ra söï coá ta aán nuùt Home Back, ñaàu khoan Hình 3.4 – Cô caáu khoan töï ñoäng lui veà. 48
  14. Ñ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 I0.0 Input (ngoû vaøo) Output (ngoû ra) I0.1 Teân goïi Ñòa chæ Teân goïi Ñòa chæ Drill Start I0.0 Sol 1Y Q0.0 I0.2 Home Back I0.1 I0.3 S3 I0.2 S4 I0.3 Q0.0 • Chöông trình Bieåu ñoà traïng thaùi theo thôøi gian 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ï: Chöônh trình STL Rôø le logic A I1.0 NOT Nguoàn ñieän = Q4.0 I1.0 NC contact Signal state diagram 1 I1.0 0 Coil Q4.0 Q4.0 1 0 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ï: Möùc tín hieäu Keát quûa traïng thaùi logic 49
  15. Ñ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 Toaùn haïng Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù Bit Bool I, Q, M, L, D 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. 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. Chöônh trình STL Bieån ñoà traïng thaùi tín hieäu 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
  16. Ñ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 Caûm bieán vò trí Caûm bieán {LS1, LS2} Ultrasounic SS1 Input (ngoû vaøo) Output (ngoû ra) Ñoäng cô Teân goïi Ñòa chæ Teân goïi Ñòa chæ keùo cöûa SS1 I0.0 Raisedoor(CW) Q0.0 SS2 I0.1 Downdoor(CCW) Q0.1 Caûm bieán Cöûa cuoán LS1 I0.2 quang SS2 LS2 I0.3 • Chöông trình ñieàu khieån Network1: // Khi SS1 laø 1 (coù xe vaøo) thì cöûa cuoán leân Xe chôû haøng A "SS1" S "Raisedoor" Hình 3.6 Ñieàu khieån cöûa töï ñoäng R "Downdoor" SS1 Network2: // Khi LS1 laø 1 thì cöûa döøng laïi taïi giôùi haïn treân SS2 A "LS1" LS1 R "Raisedoor" Network3: // Khi SS2 chuyeån traïng thaùi 1sang 0 (xe LS2 qua khoûi noù) thì cöûa cuoán xuoáng ñeå ñoùng cöûa M0.0 A "SS2" FN M 0.0 S "Downdoor" Network4: // Khi LS2 laø 1 thì cöûa döøng laïi taïi giôùi haïn Downdoor döôùi Bieåu ñoà traïng thaùi theo thôøi gian A "LS2" R "Downdoor" 3.3.16. Leänh phaùt hieän söôøn leân Cuù phaùp FP Toaùn haïng Ñòa chæ Loaïi döõ lieäu Vuøng bieán nhôù Bit Bool I, Q, M, L, D FP seõ phaùt hieän söôøn leân cuûa tín hieäu khi RLO chuyeån töø 0 sang 1 vaø seõ ghi giaù trò 1 vaøo RLO. Ñaëc ñieåm ñöôïc moâ taû ôû hình 3.5. Ví duï: 51
  17. Ñ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 Chöônh trình STL Bieån ñoà traïng thaùi tín hieäu Ví duï: Vieát chöông trình cho maùy daäp thuûy löïc moâ taû hình 3.7, vôùi yeâu caàu kyõ thuaät nhö sau:Luùc ñaàu, ñaàu daäp ôû vò trí chôø (S4), khi ñöa chi tieát caàn daäp vaøo ta aán nuùt S1, ñaàu daäp tònh tieán ra vaø daäp chi tieát vaø trôû veà khi gaëp S5. Trong quaù trình gia coâng neáu xaûy ra söï coá, aán nuùt S3 ñaàu daäp seõ döøng laïi ôû vò trí ñoù. Sau ñoù, ta aán nuùt S2 ñaàu daäp quay veà. • 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æ S1 I0.0 1Y1 Q0.0 S2 I0.1 1Y2 Q0.1 S1 I0.2 Xy lanh Hình 3.7 – Cô caáu daäp thuûy löïc S2 I0.3 S5 I0.4 L t • Chöông trình Network1: // Khi S1 vaø S4 laø 1 thì 1Y1 laø 1 S1 A "S1" A "S4" S2 O "1Y1" S3 AN "S5" AN "S3" S4 = "1Y1" S5 Network2: // Khi S5 laø 1 thì 1Y2 laø 1 t A "S5" 1Y1 O "S2" 1Y2 t O "1Y2" Bieåu ñoà traïng thaùi theo thôøi gian 52
  18. Ñ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: 31 24 23 16 15 87 0 ACCU1 Byte cao Byte thaáp Byte cao Byte thaáp ACCU1 Byte cao Byte thaáp Byte cao Byte thaáp Töø cao Töø thaáp Leänh naïp (L - Load) vaø chuyeån (T – Transfer) cho pheùp chuùng ta coù khaû naêng laäp trình thay ñoåi thoâng tin laãn nhau giöõa caùc module ngoõ vaøo hoaëc ra vaø caùc vuøng nhôù, hoaëc giöõa caùc vuøng nhôù. 3.4.1. Leänh naïp vaøo ACCU Cuù phaùp L Toaùn haïng Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ nguoàn BYTE 0…65535 WORD I, Q, PQ, M, L, D 0…65334 DWORD 0…65332 Leänh L coù taùc duïng chuyeån döõ lieäu hoaëc noäi dung oâ nhôù coù ñòa chæ laø toaùn haïng vaøo thanh ghi ACCU1. Noäi dung cuõ cuûa ACCU1 ñöôïc chuyeån vaøo ACCU2. Trong tröôøng hôïp giaù trò chuyeån vaøo coù kích thöôùc nhoû hôn töø keùp thì noù seõ ñöôïc ghi theo thöù töï töø byte thaáp cuûa töø thaáp ñeán byte cao cuûa töø cao. Nhöõng bit coøn troáng trong ACCU1 ñöôïc ghi 0. Chaúng haïn: Leänh L IB2 seõ chuyeån noäi dung cuûa IB2 vaøo ACCU1 nhö sau: 31 24 23 16 15 8 7 0 ACCU1 0 0 0 IB2 Leänh L MW10 seõ chuyeån noäi dung cuûa MW10 goàm 2 byte MB10, MB11 vaøo ACCU1 theo thöù töï sau: 53
  19. ÑIEÀU KHIEÅN LAÄP TÌNH PLC - MAÏNG PLC Chöông 3 – Ngoân ngöõ laäp trình 31 24 23 16 15 8 7 0 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 Toaùn haïng Kieåu döõ lieäu Vuøng bieán nhôù Ñòa chæ nguoàn BYTE 0…65535 WORD I, Q, PQ, M, L, D 0…65334 DWORD 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 Input (ngoû vaøo) Output (ngoû ra) Teân goïi Ñòa chæ Teân goïi Ñòa chæ Giaù trò nhaäp töø baøn MW0 Van tuyeán tính PQW274 phím soá nguyeân 2 byte 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 54
  20. Ñ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 Pheùp toaùn so saùnh Kí hieäu leänh Giaù trò soá chöùa thanh ghi 2 trong thanh ghi 1 Baèng ==I ==D ==R Khaùc (khoâng baèng) I D R Lôùn hôn >I >D - Nguyeân ( 16 bit) - Nguyeân ( 16 bit) >R - Nguyeân keùp ( 32 bit) - Nguyeân keùp ( 32 bit) Nhoû hôn =R Nhoû hôn hoaëc baèng
Đồng bộ tài khoản