Kỹ thuật lập trình step 7 cho s7-300, 400

Chương trình người dùng thường được chia nhỏ thành từng khối logic theo kiểu

chương trình cấu trúc, giúp cho việc lập trình và sữa lỗi thuận tiện. Có nhiều loại khối logic:

? Khối tổ chức OB (Organization blocks)

? Khối hàm hệ thống SFB (System function blocks) và hàm hệ thống SFC (system

functions) tích hợp trong PLC

? Khối hàm FB (Function blocks) trong thư viện hay người dùng tự viết

? Hàm FC (Functions) trong thư viện hay người dùng tự viết

? Khối dữ liệu Instance (Instance Data Blocks ) liên kết với FB/SFB

? Khối dữ liệu chia xẻ (Shared Data Blocks )

Khối tổ chức OB là giao diện giữa chương trình người dùng và hệ điều hàmh của PLC.

OB được gọi bởi hệ điều hành theo chu kỳ hay khi có ngắt, có sự cố hay khi khởi động PLC.

Có nhiều khối OB và có ưu tiên khác nhau, khối OB có số ưu tiên cao hơn có thể ngắt khối

OB số ưu tiên thấp hơn. Tuỳ theo loại CPU, số lượng khối OB sử dụng được sẽ khác nhau,

bảng sau liệt kê các loại OB

pdf23 trang | Chia sẻ: luyenbuizn | Lượt xem: 1160 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Kỹ thuật lập trình step 7 cho s7-300, 400, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KYÕ THUAÄT LAÄP TRÌNH STEP 7 CHO S7-300, 400 Chöông trình ngöôøi duøng thöôøng ñöôïc chia nhoû thaønh töøng khoái logic theo kieåu chöông trình caáu truùc, giuùp cho vieäc laäp trình vaø söõa loãi thuaän tieän. Coù nhieàu loaïi khoái logic:  Khoái toå chöùc OB (Organization blocks)  Khoái haøm heä thoáng SFB (System function blocks) vaø haøm heä thoáng SFC (system functions) tích hôïp trong PLC  Khoái haøm FB (Function blocks) trong thö vieän hay ngöôøi duøng töï vieát  Haøm FC (Functions) trong thö vieän hay ngöôøi duøng töï vieát  Khoái döõ lieäu Instance (Instance Data Blocks ) lieân keát vôùi FB/SFB  Khoái döõ lieäu chia xeû (Shared Data Blocks ) Khoái toå chöùc OB laø giao dieän giöõa chöông trình ngöôøi duøng vaø heä ñieàu haømh cuûa PLC. OB ñöôïc goïi bôûi heä ñieàu haønh theo chu kyø hay khi coù ngaét, coù söï coá hay khi khôûi ñoäng PLC. Coù nhieàu khoái OB vaø coù öu tieân khaùc nhau, khoái OB coù soá öu tieân cao hôn coù theå ngaét khoái OB soá öu tieân thaáp hôn. Tuyø theo loaïi CPU, soá löôïng khoái OB söû duïng ñöôïc seõ khaùc nhau, baûng sau lieät keâ caùc loaïi OB Loaïi OB YÙ nghóa Öu tieân OB1 Ñöôïc goïi khi keát thuùc khôûi ñoäng hay keát thuùc OB1, thöïc hieän theo chu kyø 1 OB10, OB11, OB12, OB13 OB14, OB15, OB16, OB17 Ngaét theo thôøi gian trong ngaøy, thaùng, naêm 2 OB20 OB21 OB22 OB23 Ngaét trì hoaõn 3 4 5 6 OB30 OB31 OB32 OB33 OB34 OB35 OB36 OB37 OB38 Ngaét chu kyø (maëc ñònh 5s) Ngaét chu kyø (maëc ñònh 2s) Ngaét chu kyø (maëc ñònh 1s) Ngaét chu kyø (maëc ñònh 500ms) Ngaét chu kyø (maëc ñònh 200ms) Ngaét chu kyø (maëc ñònh 100ms) Ngaét chu kyø (maëc ñònh 50ms) Ngaét chu kyø (maëc ñònh 20ms) Ngaét chu kyø (maëc ñònh 10ms) 7 8 9 10 11 12 13 14 15 OB40 OB41 OB42 OB43 OB44 OB45 OB46 OB47 Ngaét cöùng 16 17 18 19 20 21 22 23 OB60 Goïi bôûi SFC35 "MP_ALM" 25 OB70 OB72 OB 73 Loãi I/O redundancy ( H CPU) Loãi CPU redundancy (H CPU) Loãi Communication redundancy (H CPU) 25 28 25 OB80 OB81 OB82 OB83 OB84 OB85 OB86 OB87 Söï coá chu kyø queùt Loãi nguoàn Ngaét chaån ñoaùn Ngaét do theâm bôùt module Loãi phaàn cöùng CPU Loãi chöông trình Loãi module môû roäng Loãi truyeàn thoâng 26, 28 OB90 Warm or cold restart or delete a block being executed in OB90 or load an OB90 on the CPU or terminate OB90 29, 0 OB100 OB101 OB102 Khôûi ñoäng aám Khôûi ñoäng noùng Khôûi ñoäng laïnh 27 OB121 OB122 Sai laäp trình Sai I/O Öu tieân cuûa taùc nhaân gaây ra söï coá 1/ Khoái OB1 OB1 ñöôïc goïi sau khi keát thuùc quaù trình khôûi ñoäng vaø sau khi keát thuùc chính noù, moïi OB tröø OB90 coù theå ngaét OB1. Khi OB1 ñaõ ñöôïc thöïc hieän, heä ñieàu haønh gôûi ñi döõ lieäu toaøn cuïc. Tröôùc khi goïi laïi OB1, heä ñieàu haønh chuyeån boä nhôù ñeäm ra module xuaát , caäp nhaät boä ñeäm nhaäp vaø nhaän döõ lieäu toaøn cuïc. Khi thöïc hieän OB1, chöông trình trong khoái ñöôïc thöïc hieän, döõ lieäu xuaát ra module xuaát ñöôïc caáp taïm trong boä nhôù. Chöông trình trong OB1 coù theå goïi caùc haøm hay khoái haøm. Thôøi gian thöïc hieän OB1 goïi laø thôøi gian queùt, heä ñieàu haønh aán ñònh thôøi gian queùt toái ña (150ms) vaø toái thieåu, coù theå caøi ñaët baèng Step 7. Neáu chu kyø queùt keùo daøi thì goïi OB80 hay chuyeån sang STOP, neáu chu kyø queùt ngaén quaù thì theâm trì hoaõn hay goïi OB90. OB1 goàm phaàn maõ chöông trình, do ngöôøi duøng vieát; baûng bieán cuïc boä (local block) coøn goïi laø baûng khai baùo bieán (variable declaration table) goàm 20 byte Coät thöù nhaát laø ñòa chæ trong vuøng bieán cuïc boä, coät thöù hai khai baùo loaïi bieán, temp nghóa laø taïm thôøi, giaù trò cuûa bieán thay ñoåi sau moãi voøng queùt cuûa OB, coät thöù ba laø caùc teân cuûa döõ lieäu, coù yù nghóa nhö sau (giaûi thích trong coät chuù thích 6): OB1_EV_CLASS: giaù trò B#16#11 coù nghóa OB1 tích cöïc OB1_SCAN_1: B#16#01: hoaøn taát warm restart B#16#02: hoaøn taát hot restart B#16#03: hoaøn taát chu kyø B#16#04: hoaøn taát cold restart OB1_PRIORITY: giaù trò 1 OB1_OB_NUMBR: soá OB laø 1 OB1_RESERVED_1: döï tröõ OB1_RESERVED_2: döï tröõ OB1_PREV_CYCLE: thôøi gian voøng queùt tröôùc (ms) OB1_MIN_CYCLE: thôøi gian voøng queùt ngaén nhaát OB1_MAX_CYCLE: thôøi gian voøng queùt daøi nhaát OB1_DATE_TIME: ngaøy giôø OB1 baét ñaàu thöïc hieän (8 byte) Caùc giaù trò treân ngöôøi duøng khoâng thay ñoåi ñöôïc, ngöôøi duøng coù theå theâm caùc bieán vaøo töø ñòa chæ 20.0 trôû ñi, caùc bieán naøy laø bieán taïm, thay ñoåi sau moãi voøng queùt. Caùc bieán theâm vaøo söû duïng cho vieäc goïi caùc chöông trình con FC, SFC, FB, SFB. Chöông trình STEP 7 duøng ñeå laäp trình cho PLC S7-300, S7-400. Chöông trình naøy coù version 5.0 duøng cho Win 98, Version 5.1 vaø 5.3 duøng cho Win XP. Khi kích chuoät vaøo bieåu töôïng Simatic Manager seõ xuaát hieän cöûa soå Hình , baám Next ñeå choïn loaïi CPU Baám tieáp Next ñeå choïn caùc khoái OB, baét buoäc laø OB1, caùc OB khaùc coù theå theâm vaøo sau. Choïn caùch laäp trình STL, LAD hay FBD, trong luùc laäp trình coù theå tuyø yù thay ñoåi. Baám tieáp Next ñaët teân cho Project, sau ñoù baám Finish, xuaát hieän cöûa soå laäp trình Nöûa cöûa soå beân traùi saép xeáp daïng thö muïc, kích chuoât vaøo ñoù ñeå môû ra caùc muïc con. Baám vaøo doøng SIMATIC 300 STATION beân traùi roài baáâm tieáp vaøo Hardware beân phaûi ñeå ñaët caáu hình phaàn cöùng cuûa PLC (coâng vieäc naøy cuõng coù theå thöïc hieän sau) Gæa söû caáu hình ñôn giaûn goàm caùc moduke DI/DO, AI/AO, ta kích chuoät vaøo doøng SIMATIC 300, SM- 300 , choïn caùc module phuø hôïp, duøng chuoät keùo vaøo caùc slot cuûa Station töø soá 4 trôû ñi, (slot 3 duøng cho module IM), sau ñoù vaøo menu Station – Save roài Close. Ta seõ trôû laïi vaán ñeà caáu hình ôû muïc Trôû laïi Project, baám vaøo muïc Blocks, ta thaáy xuaát hieän OB1, baám vaøo OB1 neáu laäp trình tuyeán tính, nghóa laø khoâng duøng caùc khoái logic FC, FB töï taïo Baám vaøo menu View, choïn STL, LAD, FBD choïn caùch laäp trình. Khi laäp trình ta coù theå duøng ñòa chæ tuyeät ñoái ( I0.0, MW2, T5…) hay ñòa chæ kyù hieäu (Start, Speed, Delay…). Ñòa chæ kyù hieäu giuùp chöông trình deã hieåu hôn. Coù hai loaïi laø kyù hieäu cuïc boä vaø kyù hieäu toaøn cuïc (hay chia xeû) , kyù hieäu cuïc boä khai baùo trong baûng khai baùo bieán cuûa khoái vaø chæ coù yù nghóa trong phaïm vi khoái ñoù, kyù hieäu toaøn cuïc khai baùo trong baûng kyù hieäu Symbols, coù yù nghóa trong toaøn boä caùc khoái cuûa project. Vieäc khai baùo kyù hieäu toaøn cuïc thöïc hieän tröôùc hay sau khi vieát maõ. Khoái logíc coù theå coù toái ña 999 network, moãi network coù toái ña 2000 haøng , moãi haøng goàm nhaõn , leänh, ñòa chæ vaø chuù thích (sau //) Thuû tuïc laäp kyù hieäu toaøn cuïc nhö sau: baám chuoät vaøo ñoái töôïng Symbols (Xem hình ). Caùc bieán kyù hieäu ñöôïc ñöa vaøo töøng doøng moät, daøi toái ña 24 kyù tuï chöõ soá, kyù töï ñaëc bieät, tröø daáu nhaùy “ , khoâng phaân bieät chöõ hoa vaø chöõ thöôøng. Baûng kyù hieäu chöùa toái ña 16380 kyù hieäu. Sau khi ñaõ bieân taäp xong, vaøo menu Symbol Table- Save ñeå löu baûng. Vaøo cöûa soå bieân taäp cuûa khoái choïn View- Display with - Symbolic Representation ñeå nhìn thaáy ñòa chæ kyù hieäu trong chöông trình, kyù hieäu tuyeät ñoái ñöôïc ñoùng khung baèng daáu “, coøn kyù hieäu cuïc boä coù daáu # ñöùng tröôùc. Ví dụ lập trình cho ñeøn boä haønh, bình thöôøng khi khoâng coù yeâu caàu qua ñöôøng (I0.0, I0.1), ñeøn xanh xe (Q0.7) vaø ñeøn ñoû boä haønh (Q0.0) saùng. Khi coù yeâu caàu ñeøn vaøng xe (Q0.6) saùng trong 3s , sau ñoù ñeøn ñoû xe (Q0.5) saùng vaø ñeøn xanh boä haønh (Q0.1) saùng trong 10s, heát thôøi gian naøy ñeøn ñoû boä haønh vaø ñoû xe cuøng saùng, sau 6s ñeøn vaøng xe vaø ñoû xe cuøng saùng vaø sau 3 s ñeøn xanh xe saùng , xoùa yeâu caàu qua ñöôøng A( A( O I 0.0 // Coù yeâu caàu qua ñöôøng cuûa khaùch boä haønh O I 0.1 ) A T 6 O M 0.0 ) AN T 5 //xoùa yeâu caàu = M 0.0 // ghi nhaän yeâu caàu AN M 0.0 // neáu khoâng coù yeâu caàu thì = Q 0.7 // ñeøn xanh xe saùng A M 0.0 L S5T#3S SD T 2 A M 0.0 A( ON T 2 O T 4 ) = Q 0.6 //Ñeøn vaøng xe 3s A M 0.0 A T 2 = Q 0.5 //Ñeøn ñoû xe sau 3s A Q 0.5 L S5T#10S SD T 3 A Q 0.5 AN T 3 = Q 0.1 //Baät ñeøn xanh boä haønh, thôøi gian 10s A M 0.0 A T 3 L S5T#6S SD T 4 //Thôøi gian 6 s ñoû xe vaø ñoû boä haønh cuøng saùng A M 0.0 A( ON T 2 O T 3 ) ON M 0.0 = Q 0.0 // Baät ñeøn ñoû boä haønh A M 0.0 //Baät ñeøn ñoû vaø vaøng xe A T 4 L S5T#3S SD T 5 //Chuyeån sang xanh xe sau 3s A Q 0.7 L S5T#1S SD T 6 //Thôøi gian trì hoaõn 1s ñeå nhaän yeâu caàu khi xanh xe vöøa saùng Sau ñoù laäp baûng kyù hieäu: A( A( O "Switch_right" O "Switch_left" ) A "Ped_delay_green" O "Pedestrian_light" ) AN "Car_red_orange_phase" = "Pedestrian_light" A "Pedestrian_light" A "Car_orange_phase" = "Car_red" A "Car_red" L S5T#10S SD "Ped_green_phase" A "Car_red" AN "Ped_green_phase" = "Ped_green" A "Pedestrian_light" AN "Pedestrian_light" = "Car_green" A "Pedestrian_light" L S5T#3S SD "Car_orange_phase" A "Pedestrian_light" A( ON "Car_orange_phase" O "Car_delay_red" ) = "Car_orange" A "Pedestrian_light" A( ON "Car_orange_phase" O "Car_delay_red" ) = "Car_orange" A "Ped_green_phase" L S5T#6S SD "Car_delay_red" A "Pedestrian_light" A( ON "Car_orange_phase" O "Ped_green_phase" ) ON "Pedestrian_light" = "Ped_red" A "Pedestrian_light" A "Car_delay_red" L S5T#3S SD "Car_red_orange_phase" A "Car_green" L S5T#1S SD "Ped_delay_green" Sau khi bieân soaïn chöông trình ta coù theå chaïy moâ phoûng khoâng caàn PLC nhôø phaàn meàm S7 PLC Sim theo caùc böôùc sau: - Vaøo menu Simatic Manager- Options- choïn Simulate Modules. Cöûa soå sau xuaát hieän - Vaøo menu PLC- Download ñeå naïp khoái chöông trình xuoáng PLC moâ phoûng - Vaøo cöûa soå S7-PLCSIM menu Insert choïn caùc vuøng nhôù muoán quan saùt - Vaøo menu PLC- choïn Power On, vaøo menu Execute choïn Scan Mode – Continuous Scan. - Choïn RUN hay RUN –P - Taùc ñoäâng vaøo caùc bit I 0.0, I0.1 ñeå xem hoaït ñoäng cuûa chöông trình. - Trôû laïi Simatic Manager, choïn View- Online, môû khoái logic muoán quan saùt (OB1), baám Debug- Monitor Trong tröôøng hôïp muoán taäp trung caùc bieán vaøo moät choã ñeå deã quan saùt, ta duøng baûng khai baùo bieán VAT (Variable Table). Trong cöûa soå Manager vaøo menu Insert- S7 Block- Variable Table (hay baám chuoät phaûi – Insert New Object- Variable Table) ta ñöôïc khoái VAT1, môû khoái naøy ra vaø theâm vaøo caùc ñòa chæ vuøng nhôù muoán quan saùt. Tröôøng hôïp coù saün PLC, ñaàu tieân ta phaûi keát noái maùy tính vôùi PLC thoâng qua caùp noái thích hôïp, vaøo menu PLC- Display Accessible Nodes, sau ñoù PLC- Operating mode choïn cheá ñoä PLC laø Stop, PLC- Download naïp chöông trình xuoáng PLC. 2/ Caùc khoái ngaét Khoái OB1 ñöôïc thöïc hieän theo chu kyø, vaø coù theå bò ngaét bôûi caùc söï kieän khi ta caøi ñaët theâm caùc khoái OB khaùc vaøo Project hoaëc khi xaûy ra caùc söï coá. Caùc khoái OB phuø hôïp ñöôïc goïi ñeå xöû lyù ngaét nhôø caùc chöông trình con ñöôïc caøi ñaët. Khoái OB öu tieân cao coù theå ngaét khoái coù öu tieân thaáp hôn. Ta coù theå thay ñoåi öu tieân cuûa OB trong S7-400 vaø S7-300- CPU318. Theâm OB b aèng caùch baám chuoät phaûi trong cöûa soå Project- Insert New Object- Organization block, choïn soá OB, sau ñoù môû khoái OB vaø laäp trình 3 Taïo caùc khoái logic Caùc chöông trình lôùn thöôøng ñöôïc vieát daïng caáu truùc, goàm khoái OB1, caùc khoái chöông trình FC, FB, caùc khoái chöông trình heä thoáng SFC, SFB. Söû duïng laäp trình caáu truùc giuùp chöông trình deã quaûn lyù vaø söûa loãi, thuaän tieän cho vieäc laäp trình theo nhoùm. Khoái OB1 vaø caùc khoái FC, FB coù theå goïi FC, FB, SFC, SFB Laáy ví duï laäp trình cho heä thoáng troän hai chaát loûng A vaø B (H ), ta chia quaù trình thaønh nhieàu khoái nhoû (H ) : bôm chaát A, bôm chaát B, boàn troän vaø van xaû. Ta nhaän thaáy hai khoái bôm laäp trình gioáng nhau, chæ khaùc ôû caùc ngoõ vaøo/ra. Tröôùc khi laäp trình ta phaûi coù moâ taû kyõ thuaät cho hoaït ñoäng cuûa caùc khoái. Khoái A/B goàm coù bôm vaø van vaøo, van ra - Bôm coù coâng suaát 100KW, voøng quay 1200 rpm, löu löôïng 400l/phuùt. Bôm ñöôïc ñieàu khieån bôûi nuùt Start/Stop treân baûng ñieàu khieån, soá laàn start ñöôïc hieån thò ñeå tieän baûo trì. Bôm ñöôïc pheùp hoaït ñoäng khi: o boàn khoâng ñaày, o van xaû ñoùng, o nuùt emergency khoâng taùc ñoäng. Bôm taét khi caûm bieán löu löôïng baùo khoâng coù doøng chaûy sau 7 s keå töø khi khôûi ñoâng bôm hay khi caûm bieán löu löôïng baùo ñaõ ngöøng chaûy. - Van ñöôïc ñieàu khieån bôûi solenoid, môû khi coù ñieän vaøo van. Van phaûi môû ít nhaát 1s sau khi bôm chaïy. Khoái boàn troän coù ñoäng cô troän, caùc caûm bieán möùc. coù coâng suaát 100KW, voøng quay 1200 rpm, löu löôïng 400l/phuùt. Ñoäng cô ñöôïc ñieàu khieån bôûi nuùt Start/Stop treân baûng ñieàu khieån, soá laàn start ñöôïc hieån thò ñeå tieän baûo trì. Ñoäng cô ñöôïc pheùp chaïy khi: o Möùc chaát loûng treân möùc toái thieåu , o Van xaû ñoùng o Nuùt Emergency khoâng taùc ñoäng Ñoäng cô ñöôïc taét khi vaän toác khoâng ñaït ñònh möùc sau khi khôûi ñoäng 10s. Coù ba caûm bieán möùc daïng contact . Caûm bieán ñaày thöôøng ñoùng, khi boàn ñaày thì hôû ra. Caûm bieán möùc toái thieåu thöôøng hôû , khi möïc chaát loûng thaáp thì ñoùng laïi. Caûm bieán caïn, hôû neáu boàn caïn Van xaû ñöôïc ñieàu khieån töø baûng ñieàu khieån. Van xaû ñöôïc hoaït ñoäng neáu ñoäng cô troän ngöøng, caûm bieán möùc baùo boàn chöa caïn, nuùt emergency khoâng taùc ñoäng. Van xaû ñoùng neáu caûm bieán möùc baùo boàn caïn. Baûng ñieàu khieån duøng ñeå ñieàu khieån vaø baùo traïng thaùi caùc ñoäng cô, van xaû, baùo möùc boàn, baùo baûo trì vaø döøng khaån caáp. Coù ba ñoäng cô coù theå laäp trình baèng khoái logic chung (Hình) . Saùu ngoõ vaøo laø hai nuùt nhaán Sart/Stop, nuùt nhaán Reset_Maint xoùa ñeøn baûo trì, tín hieäu baùo ñoäng cô chaïy, ngöøng (Response) soá hieäu Timer (Timer No) vaø thôøi gian timer (Response_Time). Boán ngoõ ra laø baùo loãi (Fault), ñeøn baùo ñoäng cô chaïy, ngöøng (Start_Dsp, Stop_Dsp), baùo baûo trì (Maint), Tín hieäu vaøo/ra laø ñieàu khieån Motor. Khoái logic naøy laäp trình döôùi daïng khoái haøm FB vì caàn löu tröõ giaù trò bieán. Caùc van cuõng ñöôïc ñieàu khieån baèng khoái logic FC (Hình) . Hai tín hieäu vaøo laø nuùt nhaán môû /ñoùng van (Open/ Close) Tín hieäu ra laø ñeøn baùo traïng thaùi van ( Dsp_Open, Dsp_Closed). Tín hieäu vaøo/ ra ñieàu khieån van (Valve). Khoái naøy khoâng coù löu bieán vaø thöïc hieän baèng FC. Caáu truùc chöông trình nhö Hình . Chöông trình chính OB1 goïi haøm FB1 ñieàu khieån ñoäng cô, coù ba ñoäng cô öùng vôùi ba khoái döõ lieäu DB1, DB2, DB3. Haøm FC1 ñöôïc OB1 goïi khi ñieàu khieån van. Caùc khoái FB vaø FC phaûi ñöôïc laäp trình tröôùc khoái OB. Vaøo cöûa soå Project –Symbols laäp baûng kyù hieäu cho caùc bieán (Baûng ) Symbolic Name Address Data Type Description Feed_pump_A_start I0.0 BOOL Starts the feed pump for ingredient A Feed_pump_A_stop I0.1 BOOL Stops the feed pump for ingredient A Flow_A I0.2 BOOL Ingredient A flowing Inlet_valve_A Q4.0 BOOL Activates the inlet valve for ingredient A Feed_valve_A Q4.1 BOOL Activates the feed valve for ingredient A Feed_pump_A_on Q4.2 BOOL Lamp for ”feed pump ingredient A running" Feed_pump_A_off Q4.3 BOOL Lamp for ”feed pump ingredient A not running" Feed_pump_A Q4.4 BOOL Activates the feed pump for ingredient A Feed_pump_A_fault Q4.5 BOOL Lamp for ”feed pump A fault" Feed_pump_A_maint Q4.6 BOOL Lamp for ”feed pump A maintenance" Feed_pump_B_start I0.3 BOOL Starts the feed pump for ingredient B Feed_pump_B_stop I0.4 BOOL Stops the feed pump for ingredient B Flow_B I0.5 BOOL Ingredient B flowing Inlet_valve_B Q5.0 BOOL Activates the inlet valve for ingredient A Feed_valve_B Q5.1 BOOL Activates the feed valve for ingredient B Feed_pump_B_on Q5.2 BOOL Lamp for ”feed pump ingredient B running" Feed_pump_B_off Q5.3 BOOL Lamp for ”feed pump ingredient B not running" Feed_pump_B Q5.4 BOOL Activates the feed pump for ingredient B Feed_pump_B_fault Q5.5 BOOL Lamp for ”feed pump B fault" Feed_pump_B_maint Q5.6 BOOL Lamp for ”feed pump B maintenance" Agitator_running I1.0 BOOL Response signal of the agitator motor Agitator_start I1.1 BOOL Agitator start button Agitator_stop I1.2 BOOL Agitator stop button Agitator Q8.0 BOOL Activates the agitator Agitator_on Q8.1 BOOL Lamp for "agitator running" Agitator_off Q8.2 BOOL Lamp for "agitator not running" Agitator_fault Q8.3 BOOL Lamp for ”agitator motor fault" Agitator_maint Q8.4 BOOL Lamp for ”agitator motor maintenance" Tank_below_max I1.3 BOOL Sensor ”mixing tank not full" Tank_above_min I1.4 BOOL Sensor ”mixing tank above minimum level" Tank_not_empty I1.5 BOOL Sensor ”mixing tank not empty" Tank_max_disp Q9.0 BOOL Lamp for "mixing tank full" Tank_min_disp Q9.1 BOOL Lamp for "mixing tank below minimum level" Tank_empty_disp Q9.2 BOOL Lamp for "mixing tank empty" Drain_open I0.6 BOOL Button for opening the drain valve Drain_closed I0.7 BOOL Button for closing the drain valve Drain Q9.5 BOOL Activates the drain valve Drain_open_disp Q9.6 BOOL Lamp for "drain valve open" Drain_closed_disp Q9.7 BOOL Lamp for "drain valve closed" EMER_STOP_off I1.6 BOOL EMERGENCY STOP switch Reset_maint I1.7 BOOL Reset switch for the maintenance lamps on all motors Motor_block FB1 FB1 FB for controlling pumps and motor Valve_block FC1 FC1 FC for controlling the valves DB_feed_pump_A DB1 FB1 Instance DB for controlling feed pump A DB_feed_pump_B DB2 FB1 Instance DB for controlling feed pump B DB_agitator DB3 FB1 Instance DB for controlling the agitator motor 3.1 Laäp trình khoái FB FB laø khoái logíc vôùi caùc bieán in, out, in_out, static vaø temp, ñöôïc taïo ra trong baûng bieán ñòa phöông ñi keøm. Caùc bieán in, out, in- out laø caùc tham soá hìmh thöùc coù ñòa chæ cuï theå do chöông trình goïi truyeàn ñeán, bieán static laø bieán trong chöông trình FB ñöôïc löu laïi khi ra khoûi khoái FB, bieán temp maát giaù trò khi ra khoûi khoái FB. Keøm vôùi FB laø khoái döõ lieäu data block chöùa caùc bieán in, out, in- out vaø static. Coù theå coù nhieàu data block cho moät FB khi moät FB duøng cho caùc nhieäm vuï khaùc nhau, goïi laø instance data block. Khi chöông trình goïi FB caàn phaûi keøm theo instance data block töông öùng. Ta vaøo cöûa soå Project baám chuoät phaûi - Insert New Object – Function block theâm vaøo khoái FB1. Baám chuoät vaøo khoái FB1 ñeå soaïn chöông trình cho khoái. Ta vaøo baûng khai baùo bieán ñeå khai baùo caùc bieán hình thöùc cho khoái theo thöù töï in, out, in_out, static vaø temp. Vôùi ví duï ôû treân, baûng bieán cuûa FB1 “Motor_Block” nhö sau: Address Declaration Name Type Initial Value 0.0 IN Start BOOL FALSE 0.1 IN Stop BOOL FALSE 0.2 IN Response BOOL FALSE 0.3 IN Reset_Maint BOOL FALSE 2.0 IN Timer_No TIMER 4.0 IN Response_Time S5TIME S5T#0MS 6.0 OUT Fault BOOL FALSE 6.1 OUT Start_Dsp BOOL FALSE 6.2 OUT Stop_Dsp BOOL FALSE 6.3 OUT Maint BOOL FALSE 8.0 IN_OUT Motor BOOL FALSE 10.0 STAT Time_bin WORD W#16#0 12.0 STAT Time_BCD WORD W#16#0 14.0 STAT Starts INT 0 16.0 STAT Start_Edge BOOL FALSE Caùc bieán STAT Time_ bin vaø Time_BCD lö u thôøi gian timer, Starts löu soá laàn khôûi ñoäng motor, Start_ Edge phuïc vuï cho leänh laáy caïnh leân Network 1 Start/stop and latching A( O #Start O #Motor ) AN #Stop = #Motor Network 2 Startup monitoring A #Motor L #Response_Time SD #Timer_No AN #Motor R #Timer_No L #Timer_No T #Timer_bin LC #Timer_No T #Timer_BCD A #Timer_No AN #Response S #Fault R #Motor Network 4 Stop lamp AN #Response = #Stop_Dsp Network 5 Counting the starts A #Motor FP #Start_Edge JCN lab1 L #Starts + 1 T #Starts lab1: NOP 0 Network 6 Maintenance lamp L #Starts L 50 >=I = #Maint Network 7 Reset counter for number of starts A #Reset_Maint A #Maint JCN END L 0 Network 3 Start lamp and fault reset A #Response = #Start_Dsp R #Fault T #Starts END: NOP 0 Theâm khoái DB project vôùi caùc teân DB1, DB2, DB3 loaïi Instance DB vaø thuoäc FB1 Caùc bieán trong DB1 seõ töï taïo ra theo baûng khai baùo bieán cuûa khoái FB1, töông töï cho caùc DB2 vaø DB3. 3.2 Laäp trình khoái FC Khoái FC coù caùc bieán hình thöùc in, out vaø in_ out do chöông trình goïi cung caáp caùc ñòa chæ cuï theå, ngoaøi ra coøn coù bieán temp söû duïng noäi boä. Khoái FC khoâng coù boä nhôù neân döõ lieäu maát ñi khi ra khoûi khoái. Ta theâm vaøo project khoái FC1 vaø khai baùo caùc bieán trong baûng khai baùo bieán keøm theo. Sau ñoù laäp trình cho FC1 Address Declaration Name Type Initial Value 0.0 IN Open BOOL FALSE 0.1 IN Close BOOL FALSE 2.0 OUT Dsp_Open BOOL FALSE 2.1 OUT Dsp_Closed BOOL FALSE 4.0 IN_OUT Valve BOOL FALSE Network 1 Open/close and latching A( O #Open O #Valve ) AN #Close = #Valve Network 2 Display "valve open" A #Valve = #Dsp_Open Network 3 Display "valve closed" AN#Valve = #Dsp_Closed Böôùc tieáp theo laø laäp trình cho OB1, ta khai baùo caùc bieán cho OB1 Address Declaration Name Type 0.0 TEMP OB1_EV_CLASS BYTE 1.0 TEMP OB1_SCAN1 BYTE 2.0 TEMP OB1_PRIORITY BYTE 3.0 TEMP OB1_OB_NUMBR BYTE 4.0 TEMP OB1_RESERVED_1 BYTE 5.0 TEMP OB1_RESERVED_2 BYTE 6.0 TEMP OB1_PREV_CYCLE INT 8.0 TEMP OB1_MIN_CYCLE INT 10.0 TEMP OB1_MAX_CYCLE INT 12.0 TEMP OB1_DATE_TIME DATE_AND_TIME 20.0 TEMP Enable_motor BOOL 20.1 TEMP Enable_valve BOOL 20.2 TEMP Start_fulfilled BOOL 20.3 TEMP Stop_fulfilled BOOL 20.4 TEMP Inlet_valve_A_open BOOL 20.5 TEMP Inlet_valve_A_closed BOOL Chöông trình OB1 Network 1 Interlocks for feed pump A A "EMER_STOP_off" A "Tank_below_max" AN "Drain" = #Enable_Motor Network 2 Calling FB Motor for ingredient A A "Feed_pump_A_start" A #Enable_Motor = #Start_Fulfilled A( O "Feed_pump_A_stop" ON #Enable_Motor ) = #Stop_Fulfilled CALL "Motor_block", "DB_feed_pump_A" Start :=#Start_Fulfilled Stop :=#Stop_Fullfilled Response :="Flow_A" Reset_Maint :="Reset_maint" Timer_No :=T12 Reponse_Time:=S5T#7S Network 8 Delaying the valve enable ingredient B A "Feed_pump_B" L S5T#1S SD T 15 AN "Feed_pump_B" R T 15 A T 15 = #Enable_Valve Network 9 Inlet valve control for ingredient B AN "Flow_B" AN "Feed_pump_B" = #Close_Valve_Fulfilled CALL "Valve_block" Open :=#Enable_Valve Close :=#Close_Valve_Fulfilled Dsp_Open :=#Inlet_Valve_B_Open Dsp_Closed:=#Inlet_Valve_B_Closed Valve :="Inlet_Valve_B" Network 10 Feed valve control for ingredient B AN "Flow_B" Fault :="Feed_pump_A_fault" Start_Dsp :="Feed_pump_A_on" Stop_Dsp :="Feed_pump_A_off" Maint :="Feed_pump_A_maint" Motor :="Feed_pump_A" Network 3 Delaying the valve enable ingredient A A "Feed_pump_A" L S5T#1S SD T 13 AN "Feed_pump_A" R T 13 A T 13 = #Enable_Valve Network 4 Inlet valve control for ingredient A AN "Flow_A" AN "Feed_pump_A" = #Close_Valve_Fulfilled CALL "Valve_block" Open :=#Enable_Valve Close :=#Close_Valve_Fulfilled Dsp_Open :=#Inlet_Valve_A_Open Dsp_Closed:=#Inlet_Valve_A_Closed Valve :="Inlet_Valve_A" Network 5 Feed valve control for ingredient A AN"Flow_A" AN"Feed_pump_A" =#Close_Valve_Fulfilled CALL"Valve_block" Open:=#Enable_Valve Close:=#Close_Valve_Fulfilled Dsp_Open:=#Feed_Valve_A_Open Dsp_Closed:=#Feed_Valve_A_Closed Valve :="Feed_Valve_A" Network 6 Interlocks for feed pump B A "EMER_STOP_off" A "Tank_below_max" AN "Drain" = "Enable_Motor Network 7 Calling FB Motor for ingredient B A "Feed_pump_B_start" A #Enable_Motor = #Start_Fulfilled A( O "Feed_pump_B_stop" ON #Enable_Motor ) = #Stop_Fulfilled CALL "Motor_block", "DB_feed_pump_B" Start :=#Start_Fulfilled Stop :=#Stop_Fullfilled Response :="Flow_B" Reset_Maint :="Reset_maint" Timer_No :=T14 Reponse_Time:=S5T#7S Fault :="Feed_pump_B_fault" Start_Dsp :="Feed_pump_B_on" Stop_Dsp :="Feed_pump_B_off" Maint :="Feed_pump_B_maint" Motor :="Feed_pump_B" AN "Feed_pump_B" = #Close_Valve_Fulfilled CALL "Valve_block" Open :=#Enable_Valve Close :=#Close_Valve_Fulfilled Dsp_Open :=#Feed_Valve_B_Open Dsp_Closed:=#Feed_Valve_B_Closed Valve :="Feed_Valve_B" Network 11 Interlocks for agitator A "EMER_STOP_off" A "Tank_above_min" AN "Drain" = #Enable_Motor Network 12 Calling FB Motor for agitator A "Agitator_start" A #Enable_Motor = #Start_Fulfilled A( O "Agitator_stop" ON #Enable_Motor ) = #Stop_Fulfilled CALL "Motor_block", "DB_Agitator" Start :=#Start_Ful

Các file đính kèm theo tài liệu này:

  • pdfky_thuat_lap_trinh__9858.pdf
Tài liệu liên quan