kỹ thuật lập trình với PLC

Chia sẻ: Nguyenthanh Tuoc | Ngày: | Loại File: DOC | Số trang:0

0
84
lượt xem
22
download

kỹ thuật lập trình với PLC

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

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...

Chủ đề:
Lưu

Nội dung Text: kỹ thuật lập trình với PLC

  1. KYÕ THUAÄT LAÄP TRÌNH 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àuloaïi khoái logic: • Khoái toå chöùc OB (Organizationblocks) • Khoái haømheäthoángSFB (Systemfunctionblocks) vaøhaømheäthoángSFC (systemfunctions)tích hôïp trongPLC • Khoái haømFB (Functionblocks) trongthö vieänhayngöôøi duøngtöï vieát • HaømFC (Functions) trongthö vieänhayngöôøi duøngtöï vieát • Khoái döõ lieäuInstance(InstanceDataBlocks ) lieânkeátvôùi FB/SFB • Khoái döõ lieäuchia xeû(SharedDataBlocks ) 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ømhcuûa PLC. OB ñöôïc goïi bôûi heä ñieàuhaønhtheo chu kyø hay khi coù ngaét, coù söï coá hay khi khôûi ñoängPLC. Coù nhieàukhoái OB vaø coù öu tieânkhaùcnhau, khoái OB coù soáöu tieâncao hôn coù theångaétkhoái OB soáöu tieânthaáphôn. Tuyø theoloaïi CPU, soálöôïng khoái OB söû duïngñöôïc seõkhaùcnhau,baûngsaulieätkeâcaùcloaï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 1 keátthuùcOB1, thöïc hieäntheochukyø OB10, OB11, OB12, OB13 Ngaét theo thôøi gian trong ngaøy, thaùng, 2 naêm OB14, OB15, OB16, OB17 OB20 Ngaéttrì hoaõn 3 OB21 4 OB22 5 OB23 6 OB30 Ngaétchukyø (maëcñònh5s) 7 OB31 Ngaétchukyø (maëcñònh2s) 8 OB32 Ngaétchukyø (maëcñònh1s) 9 OB33 Ngaétchukyø (maëcñònh500ms) 10 OB34 Ngaétchukyø (maëcñònh200ms) 11 OB35 Ngaétchukyø (maëcñònh100ms) 12 OB36 Ngaétchukyø (maëcñònh50ms) 13 OB37 Ngaétchukyø (maëcñònh20ms) 14 OB38 Ngaétchukyø (maëcñònh10ms) 15
  2. OB40 Ngaétcöùng 16 OB41 17 OB42 18 OB43 19 OB44 20 OB45 21 OB46 22 OB47 23 OB60 Goïi bôûi SFC35 "MP_ALM" 25 OB70 Loãi I/O redundancy( H CPU) 25 OB72 Loãi CPU redundancy(H CPU) 28 OB 73 Loãi Communicationredundancy(H CPU) 25 OB80 Söï coáchukyø queùt 26, 28 OB81 Loãi nguoàn OB82 Ngaétchaånñoaùn OB83 Ngaétdo theâmbôùtmodule OB84 Loãi phaàncöùngCPU OB85 Loãi chöôngtrình OB86 Loãi modulemôûroäng OB87 Loãi truyeànthoâng OB90 Warmor cold restartor deletea block being 29, 0 executedin OB90 or loadan OB90 on the CPU or terminateOB90 OB100 Khôûi ñoängaám 27 OB101 Khôûi ñoängnoùng OB102 Khôûi ñoänglaïnh OB121 Sai laäptrình Öu tieâncuûa OB122 Sai I/O taùcnhaân gaâyra 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àuhaønhgôûi ñi döõ lieäutoaøncuïc. Tröôùc khi goïi laïi OB1, heäñieàuhaønhchuyeån boänhôùñeämra modulexuaát, caäpnhaätboäñeämnhaäpvaø nhaändöõ lieäutoaøncuïc. Khi thöïc hieänOB1, chöôngtrình trong khoái ñöôïc thöïc hieän, döõ lieäu xuaátra module xuaátñöôïc caáptaïm trong boä nhôù. Chöôngtrình trongOB1 coù theågoïi caùc haømhay khoái haøm. Thôøi gianthöïc hieänOB1 goïi laø thôøi gianqueùt, heäñieàuhaønhaánñònhthôøi gian queùt toái ña (150ms) vaø toái thieåu, coù theå caøi ñaët baèngStep 7. Neáu chu kyø
  3. queùtkeùo daøi thì goïi OB80 hay chuyeånsang STOP, neáuchu kyø queùtngaénquaùthì theâmtrì hoaõnhaygoï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øngoïi laø baûngkhai baùobieán(variabledeclarationtable)goàm20 byte Coät thöùnhaátlaø ñòa chætrongvuøngbieáncuïc boä, coätthöùhai khai baùoloaïi bieán, tempnghóalaø 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âncuûadöõ lieäu, coù yù nghóanhö sau (giaûi thích trong coät chuùthích 6): OB1_EV_CLASS: giaùtròB#16#11 nghóaOB1 tíchcöïc coù OB1_SCAN_1: B#16#01:hoaøntaátwarmrestart B#16#02:hoaøntaáthotrestart B#16#03:hoaøntaátchukyø B#16#04:hoaøntaátcold 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 gianvoøngqueùttröôùc(ms) OB1_MIN_CYCLE: thôøi gianvoøngqueùtngaénnhaát OB1_MAX_CYCLE: thôøi gianvoøngqueùtdaøi nhaát OB1_DATE_TIME: ngaøygiôøOB1 baétñaàuthöï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âmcaùcbieánvaøotöø ñòachæ20.0trôûñi, caùcbieánnaøylaø bieántaïm,thayñoåi sau moãi voøng queùt. Caùc bieán theâmvaø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øngcho Win 98, Version 5.1 vaø 5.3 duøngcho Win XP. Khi kích chuoätvaøo bieåutöôïng Simatic Managerseõ xuaáthieäncöûasoå Hình , baámNext ñeå choïn loaïi CPU
  4. 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âmvaøosau.
  5. Choïn caùchlaäptrình STL, LAD hay FBD, trongluùc laäptrình coù theåtuyø yù thayñoåi. BaámtieápNext ñaëtteâncho Project,sauñoùbaámFinish, xuaáthieäncöûasoålaäptrình
  6. Nöûacöûasoåbeântraùi saépxeápdaïngthö muïc, kích chuoât vaøoñoù ñeåmôûra caùcmuïc con. Baámvaøo doøngSIMATIC 300STATION beântraùi roài baáâmtieápvaøo Hardwarebeânphaûi ñeåñaëtcaáuhình phaàncöùngcuûaPLC (coângvieäcnaøycuõngcoù theåthöïc hieänsau)
  7. Gæasöû caáuhình ñôn giaûngoàm caùcmodukeDI/DO, AI/AO, ta kích chuoätvaøo doøngSIMATIC 300, SM- 300, choïn caùcmodulephuøhôïp, duøngchuoätkeùovaøocaùc slot cuûaStationtöø soá 4 trôû ñi, (slot 3 duøngcho moduleIM), sauñoù vaøo menuStation – Saveroài Close. Ta seõtrôûlaïi vaánñeàcaáuhình ôû muïc Trôû laïi Project, baámvaøo muïc Blocks, ta thaáyxuaáthieänOB1, baámvaøo OB1 neáulaäptrìnhtuyeántính, nghóalaø khoângduøngcaùckhoái logic FC, FB töï taïo
  8. Baámvaøo menuView, choïn STL, LAD, FBD choïn caùchlaäptrình. Khi laäptrì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äugiuùpchöôngtrình deãhieåuhô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äucuïc boä khai baùotrong baûngkhai baùobieáncuûakhoái vaø chæcoù yù nghóatrongphaïmvi 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ûaproject. Vieäc khai baùokyù hieäutoaøncuïc thöïc hieäntröôùchay saukhi vieát maõ. Khoái logíc coù theåcoù toái ña 999 network, moãi network coù toái ña 2000haøng, moãi haønggoàmnhaõn, leänh,ñòachævaøchuùthích(sau//) Thuû tuïc laäp kyù hieäutoaøncuïc nhö sau: baámchuoätvaøo ñoái töôïng Symbols (Xemhình ). Caùc bieánkyù hieäuñöôïc ñöa vaøo töøngdoøngmoät, daøi toái ña 24 kyù tuï chöõ soá, kyù töï ñaëcbieät, tröø daáunhaùy “ , khoângphaânbieä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
  9. trình, kyù hieäu tuyeätñoái ñöôïc ñoùng khung baèngdaáu “, coøn kyù hieäu cuïc boä coù daáu#ñöùngtröôù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ønxanhxe (Q0.7) vaø ñeønñoû boähaønh(Q0.0) saùng.Khi coù yeâu caàuñeønvaøngxe (Q0.6) saùngtrong3s , sauñoù ñeønñoû xe (Q0.5) saùngvaø ñeønxanh 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ùayeâucaàuquañöôøng A( A Q 0.5 A( L S5T#10S O I 0.0 // Coù yeâu caàu qua ñöôøng cuûa SD T 3 khaùch boä haønh A Q 0.5 O I 0.1 AN T 3 ) = Q 0.1 //Baät ñeøn xanh boä haønh, thôøi A T 6 gian 10s O M 0.0 ) A M 0.0 AN T 5 //xoùa yeâu caàu A T 3 = M 0.0 // ghi nhaän yeâu caàu L S5T#6S SD T 4 //Thôøi gian 6 s ñoû xe vaø ñoû boä AN M 0.0 // neáu khoâng coù yeâu haønh cuøng saùng caàu thì A M 0.0 = Q 0.7 // ñeøn xanh xe saùng A( ON T 2 A M 0.0 O T 3 L S5T#3S ) SD T 2 ON M 0.0 A M 0.0 = Q 0.0 // Baät ñeøn ñoû boä haønh A( ON T 2 A M 0.0 //Baät ñeøn ñoû vaø vaøng xe O T 4 A T 4 ) L S5T#3S = Q 0.6 //Ñeøn vaøng xe 3s SD T 5 //Chuyeån sang xanh xe sau 3s A M 0.0 A T 2 A Q 0.7 = Q 0.5 //Ñeøn ñoû xe sau 3s 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
  10. Sau ñoù laäp baûng kyù hieäu: A( A "Pedestrian_light" A( A "Car_orange_phase" O "Switch_right" = "Car_red" O "Switch_left" A "Car_red" ) L S5T#10S A "Ped_delay_green" SD "Ped_green_phase" O "Pedestrian_light" A "Car_red" ) AN "Ped_green_phase" AN "Car_red_orange_phase" = "Ped_green" = "Pedestrian_light" A "Pedestrian_light" AN "Pedestrian_light" A "Ped_green_phase" = "Car_green" L S5T#6S
  11. A "Pedestrian_light" SD "Car_delay_red" L S5T#3S A "Pedestrian_light" SD "Car_orange_phase" A( A "Pedestrian_light" ON "Car_orange_phase" A( O "Ped_green_phase" ON "Car_orange_phase" ) O "Car_delay_red" ON "Pedestrian_light" ) = "Ped_red" = "Car_orange" A "Pedestrian_light" A "Pedestrian_light" A "Car_delay_red" A( L S5T#3S ON "Car_orange_phase" SD "Car_red_orange_phase" O "Car_delay_red" A "Car_green" ) L S5T#1S = "Car_orange" 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
  12. - Vaøo menu PLC- choïn Power On, vaøo menu Execute choïn Scan Mode – Continuous Scan. - Choïn RUN hayRUN –P - Taùc ñoäângvaøocaùcbit I 0.0, I0.1 ñeåxemhoaïtñoängcuûachöôngtrình. - Trôû laïi Simatic Manager, choïn View- Online, môû khoái logic muoánquansaùt (OB1), baámDebug- Monitor Trong tröôøng hôïp muoántaäptrung caùc bieánvaøo moät choã ñeå deã quan saùt, ta duøngbaûngkhai baùo bieánVAT (Variable Table). Trong cöûasoå Managervaø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âmvaøo caùc ñòa chævuøng nhôù muoánquansaùt. Tröôønghôïp coù saünPLC, ñaàutieânta phaûi keátnoái maùytí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-
  13. 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äntheochu kyø, vaø coù theåbò ngaétbôûi caùcsöï kieän khi ta caøi ñaët theâmcaù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étnhôø caùc chöông trình con ñöôïc caøi ñaët. Khoái OB öu tieân cao coù theångaétkhoái coù öu tieân thaáphôn. Ta coù theå thayñoåi öu tieâncuûaOB trongS7-400vaø S7-300-CPU318. TheâmOB b aèng caùch baámchuoätphaûi trong cöûasoå Project- Insert New Object- Organizationblock, choïn soá OB, sauñoù môûkhoái OB vaølaäptrình 3 Taïo caùc khoái logic Caùc chöôngtrình lôùn thöôøngñöôïc vieát daïng caáutruùc, goàmkhoái OB1, caùc khoái chöông trình FC, FB, caùc khoái chöông trình heä thoángSFC, SFB. Söû duïng laäp
  14. trình caáutruùc giuùp chöôngtrình deãquaûnlyù vaø söûaloãi, thuaäntieäncho vieäc laäp trìnhtheonhoùm.Khoái OB1 vaø caùckhoái FC, FB coù theågoïi FC, FB, SFC, SFB Laáy ví duï laäptrình cho heäthoángtroänhai chaátloûngA vaø B (H ), ta chia quaù trình thaønhnhieàukhoái nhoû(H ) : bômchaátA, bômchaátB, boàntroänvaø van xaû. Ta nhaänthaáyhai khoái bôm laäp trình gioángnhau, chækhaùcôû caùc ngoõ vaøo/ra. Tröôùc khi laäptrìnhta phaûi coù moâtaûkyõ thuaätcho hoaïtñoängcuûacaùckhoái. Khoái A/B goàmcoù bômvaøvanvaøo, vanra - Bôm coù coângsuaát100KW, voøngquay1200rpm, 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ånthò ñeåtieänbaûotrì. Bôm ñöôïc pheùphoaïtñoängkhi:
  15. o boàn khoângñaày, o vanxaûñoùng, o nuùtemergencykhoângtaùcñoäng. Bôm taétkhi caûmbieánlöu löôïng baùokhoângcoù doøngchaûysau7 s keåtöø khi khôûi ñoângbômhaykhi caûmbieánlöu löôïng baùoñaõngöøngchaûy. - Van ñöôïc ñieàu khieån bôûi solenoid, môû khi coù ñieän vaøo van. Van phaûi môûít nhaát1s saukhi bômchaï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ängcô ñöôïc pheùpchaïy khi: o Möùc chaátloûngtreânmöùctoái thieåu, o Van xaûñoùng o Nuùt Emergencykhoângtaù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äng10s. Coù ba caûmbieánmöùcdaïngcontact. Caûmbieánñaàythöôøngñoùng, khi boànñaàythì hôû ra. Caûmbieánmöùctoái thieåuthöôønghôû , khi möïc chaátloûngthaápthì ñoùnglaïi. Caûmbieáncaïn, hôûneáuboàncaïn Van xaû ñöôïc ñieàukhieåntöø baûngñieàukhieån.Van xaû ñöôïc hoaït ñoängneáu ñoängcô troänngöøng,caûmbieánmöùcbaùoboànchöacaïn, nuùt emergencykhoângtaùc ñoäng.Van xaûñoùngneáucaûmbieánmöùcbaùoboàncaïn. Baûngñieàukhieånduøngñeåñieàukhieånvaø baùotraïngthaùi caùcñoängcô, van xaû, baùomöùcboàn,baùobaûotrì vaødöøngkhaåncaáp.
  16. 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ängcô 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øylaäptrìnhdöôùi daïngkhoái haømFB vì caànlöu tröõ giaùtrò bieán. Caùc van cuõngñöôïc ñieàukhieånbaèng khoái logic FC (Hình) . Hai tín hieäuvaøo laø nuùt nhaánmôû /ñ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äuvaøo/ ra ñieàukhieånvan (Valve). Khoái naøy khoâng coù löu bieánvaø thöïc hieänbaèngFC. Caáu truùc chöông trình nhö Hình . Chöông trình chính OB1 goïi haømFB1 ñieàu khieånñoängcô, coù ba ñoängcô öùngvôùi ba khoái döõ lieäuDB1, DB2, DB3. HaømFC1 ñöôï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öûasoåProject–Symbolslaäpbaûngkyù hieäucho caùcbieán(Baûng)
  17. 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
  18. 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”mixingtanknotfull" Tank_above_min I1.4 BOOL Sensor”mixingtankaboveminimumlevel" Tank_not_empty I1.5 BOOL Sensor”mixingtanknotempty" Tank_max_disp Q9.0 BOOL Lampfor "mixingtankfull" Tank_min_disp Q9.1 BOOL Lampfor "mixingtankbelowminimumlevel" Tank_empty_disp Q9.2 BOOL Lampfor "mixingtankempty" Drain_open I0.6 BOOL Buttonfor openingthedrainvalve Drain_closed I0.7 BOOL Buttonfor closingthedrainvalve Drain Q9.5 BOOL Activatesthedrainvalve Drain_open_disp Q9.6 BOOL Lampfor "drainvalveopen" Drain_closed_disp Q9.7 BOOL Lampfor "drainvalveclosed" EMER_STOP_off I1.6 BOOL EMERGENCY STOP switch Reset_maint I1.7 BOOL Resetswitchfor themaintenancelampson all motors Motor_block FB1 FB1 FB for controllingpumpsandmotor Valve_block FC1 FC1 FC for controllingthevalves DB_feed_pump_A DB1 FB1 InstanceDB for controllingfeedpumpA DB_feed_pump_B DB2 FB1 InstanceDB for controllingfeedpumpB DB_agitator DB3 FB1 InstanceDB for controllingtheagitatormotor 3.1 Laäp trình khoái FB FB laø khoái logíc vôùi caùc bieánin, out, in_out, static vaø temp,ñöôïc taïo ra trong baûngbieán ñòa phöông ñi keøm. Caùc bieán in, out, in- out laø caùc thamsoá hìmh thöùc coù ñòa chæcuï theådo chöông trình goïi truyeànñeán, bieánstatic laø bieántrong chöông trình FB ñöôïc löu laïi khi ra khoûi khoái FB, bieántempmaátgiaùtrò khi ra khoûi khoái FB. Keøm vôùi FB laø khoái döõ lieäudatablock chöùacaùcbieánin, out, in- out vaøstatic. Coù theåcoù nhieàudatablock cho moätFB khi moätFB duøngcho caùcnhieämvuï khaùcnhau, goïi laø instance data block. Khi chöông trình goïi FB caàn phaûi keøm theo instancedata
  19. block töông öùng. Ta vaøo cöûa soå Project baám chuoät phaûi - Insert New Object – Function block theâmvaøo khoái FB1. Baámchuoätvaøo khoái FB1 ñeåsoaïn chöôngtrì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ùcbieánSTAT Time_ bin vaøTime_BCD lö u thôøi giantimer,Startslöu soálaàn khôûi ñoängmotor,Start_ Edgephuïc vuï cho leänh laáycaïnhleân Network 1 Start/stop and latching Network 4 Stop lamp A( AN #Response O #Start = #Stop_Dsp O #Motor Network 5 Counting the starts ) A #Motor AN #Stop FP #Start_Edge = #Motor JCN lab1 Network 2 Startup monitoring L #Starts A #Motor +1 L #Response_Time T #Starts SD #Timer_No lab1: NOP 0 AN #Motor Network 6 Maintenance lamp R #Timer_No L #Starts L #Timer_No L 50 T #Timer_bin >=I LC #Timer_No = #Maint T #Timer_BCD Network 7 Reset counter for number of starts A #Timer_No A #Reset_Maint AN #Response A #Maint S #Fault JCN END R #Motor L0 Network 3 Start lamp and fault reset T #Starts A #Response END: NOP 0 = #Start_Dsp R #Fault Theâmkhoái DB projectvôùi caùcteânDB1, DB2, DB3 loaïi InstanceDB vaø thuoäc FB1
  20. Caùc bieántrong DB1 seõ töï taïo ra theo baûngkhai baùo bieáncuûakhoái FB1, töông töï cho caùcDB2 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ângcoù boänhôùneândöõ lieäumaátñi khi ra khoûi khoái. Ta theâmvaøo projectkhoá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"

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản