s7-ky thuat lap trinh

34
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à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 Chöông trình chính 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 Ngaét thôøi gian OB10, OB11, OB12, OB13 OB14, OB15, OB16, OB17 Ngaét theo thôøi gian trong ngaøy, thaùng, naêm 2

Upload: esouthnorth

Post on 19-Jan-2016

19 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: s7-Ky Thuat Lap Trinh

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à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ânChöông trình chínhOB1

Ñöôï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

Ngaét thôøi gianOB10, OB11, OB12, OB13OB14, OB15, OB16, OB17

Ngaét theo thôøi gian trong ngaøy, thaùng, naêm

2

Ngaét trì hoaõnOB20OB21OB22OB23

3456

Ngaét chu kyøOB30OB31OB32OB33OB34OB35OB36OB37OB38

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)

789101112131415

Page 2: s7-Ky Thuat Lap Trinh

Ngaét cöùngOB40OB41OB42OB43OB44OB45OB46OB47

1617181920212223

OB60 Goïi bôûi SFC35 "MP_ALM" 25

OB70OB72OB 73

Loãi I/O redundancy ( H CPU)Loãi CPU redundancy (H CPU)Loãi Communication redundancy (H CPU)

252825

Söï coá baát ñoàng boäOB80OB81OB82OB83OB84OB85OB86OB87

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 beingexecuted in OB90 or load an OB90 on theCPU or terminate OB90

29, 0

OB100OB101OB102

Khôûi ñoäng aám Khôûi ñoäng noùng Khôûi ñoäng laïnh

27

Söï coá ñoàng boäOB121OB122

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 OB1OB1 ñöôï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.

Page 3: s7-Ky Thuat Lap Trinh

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 restartB#16#03: hoaøn taát chu kyøB#16#04: hoaøn taát cold restart

OB1_PRIORITY: giaù trò 1OB1_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átOB1_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 naøy söû duïng cho laäp trình vaø 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

Page 4: s7-Ky Thuat Lap Trinh

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.

Page 5: s7-Ky Thuat Lap Trinh

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

Page 6: s7-Ky Thuat Lap Trinh

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)

Page 7: s7-Ky Thuat Lap Trinh

Gæa söû caáu hình ñôn giaûn goàm caùc module 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

Page 8: s7-Ky Thuat Lap Trinh

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ä (bieán 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ù töï 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-

Page 9: s7-Ky Thuat Lap Trinh

Display with - Symbolic Representation ñeå nhìn thaáy ñòa chæ kyù hieäu trong chöông trình, kyù hieäu toaøn cuïc ñöôïc ñoùng khung baèng daáu “, coøn kyù hieäu cuïc boä coù daáu # ñöùng tröôùc. Neáu duøng View- Display with- Symbol Information thì hieån thò caû kyù hieäu, ñòa chæ tuyeät ñoái , vaø chuù thích ñi keøm. Caùc loaïi bieán cho pheùp trình baøy trong baûng , taàm ñòa chæ cuï theå phuï thuoäc loaïi CPU

IEC Description Data Type Address Range

I Input bit BOOL 0.0 .. 65535.7 IB Input byte BYTE, CHAR 0 .. 65535 IW Input word WORD, INT, S5TIME,

DATE 0 .. 65534

ID Input double word DWORD, DINT, REAL, TOD, TIME

0 .. 65532

Q Output bit BOOL 0.0 .. 65535.7 QB Output byte BYTE, CHAR 0 .. 65535 QW Output word WORD, INT, S5TIME,

DATE 0 .. 65534

QD Output double word DWORD, DINT, REAL, TOD, TIME

0 .. 65532

M Memory bit BOOL 0.0 .. 65535.7 MB Memory byte BYTE, CHAR 0 .. 65535 0..1024 MW Memory word WORD, INT, S5TIME,

DATE 0 .. 65534

MD Memory double word

DWORD, DINT, REAL, TOD, TIME

0 .. 65532

PIB Peripheral input byte

BYTE, CHAR 0 .. 65535

PQB

Peripheral output byte

BYTE, CHAR 0 .. 65535

PIW Peripheral input word

WORD, INT, S5TIME, DATE

0 .. 65534

PQW

Peripheral output word

WORD, INT, S5TIME, DATE

0 .. 65534

PID Peripheral input double word

DWORD, DINT, REAL, TOD, TIME

0 .. 65532

PQD

Peripheral output double word

DWORD, DINT, REAL, TOD, TIME

0..65532

T Timer TIMER 0 .. 65535 0..511 C Counter COUNTER 0 .. 65535 0..511 OB Organization block OB 1 .. 65535 FB Function block FB 0 .. 65535 0..1023 DB Data block DB, FB, SFB, UDT 1 .. 65535 FC Function FC 0 .. 65535 0..1023 SFB System function

blockSFB 0 .. 65535

SFC System function SFC 0 .. 65535 VAT Variable table 0 .. 65535 UDT User defined data

typeUDT 0 .. 65535

Chöông trình OB coù theå söû duïng caùc bieán taïm döôùi hình thöùc kyù hieäu (coù daáu # ôû tröôùc) hay ñòa chæ L trong vuøng baûng khai baùo bieán cuûa khoái , baét ñaàu töø ñòa chæ 20.0 trôû ñi.

Page 10: s7-Ky Thuat Lap Trinh

Ví duï1: ñoaïn chöông trình sau söû duïng bieán taïm Enable khai baùo trong baûng bieán cuïc boä, ñòa chæ 20.0, chuyeån sang daïng STL, duøng theâm bieán phuï L21.0 coøn troáng maø khoâng caàn khai baùo trong baûng neáu khoâng duøng ñòa chæ kyù hieäu.

Ví dụ 2: 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

A Q 0.5L S5T#10SSD T 3A Q 0.5AN T 3= Q 0.1 //Baät ñeøn xanh boä haønh, thôøi gian 10s

Page 11: s7-Ky Thuat Lap Trinh

) 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#3SSD T 2A M 0.0A( ON T 2O T 4 ) = Q 0.6 //Ñeøn vaøng xe 3sA M 0.0A T 2= Q 0.5 //Ñeøn ñoû xe sau 3s

A M 0.0A T 3L S5T#6SSD T 4 //Thôøi gian 6 s ñoû xe vaø ñoû boä haønh cuøng saùngA M 0.0A( ON T 2O 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 xeA T 4L S5T#3SSD T 5 //Chuyeån sang xanh xe sau 3s

A Q 0.7L S5T#1SSD 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:

Page 12: s7-Ky Thuat Lap Trinh

A( A( O "Switch_right" O "Switch_left" ) A "Ped_delay_green" O "Pedestrian_light" ) AN "Car_red_orange_phase" = "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 "Pedestrian_light"A "Car_orange_phase" = "Car_red"A "Car_red"L S5T#10SSD "Ped_green_phase"A "Car_red"AN "Ped_green_phase"= "Ped_green"A "Pedestrian_light"A "Ped_green_phase"L S5T#6SSD "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#3SSD "Car_red_orange_phase"A "Car_green"L S5T#1SSD "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

Page 13: s7-Ky Thuat Lap Trinh

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

Page 14: s7-Ky Thuat Lap Trinh

VAT1, môû khoái naøy ra vaø theâm vaøo caùc ñòa chæ vuøng nhôù muoán quan saùt.

Vaøo menu PLC- Connect to – Configured CPU. Vaøo menu Variable- Monitor. Vaøo menu Operating mode ñeå ñieàu khieån cheá ñoä PLC.

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

Page 15: s7-Ky Thuat Lap Trinh

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 logicCaù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 baèng leänh CALL

Page 16: s7-Ky Thuat Lap Trinh

Ví duï 3: 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:

Page 17: s7-Ky Thuat Lap Trinh

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

Page 18: s7-Ky Thuat Lap Trinh

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 hay baùo coù doøng chaûy (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. Ngoaøi ra coøn moät bieán laø Starts cho bieát soá laàn ñaõ khôûi ñoäng ñoäng cô. 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 )

Page 19: s7-Ky Thuat Lap Trinh

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

Page 20: s7-Ky Thuat Lap Trinh

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 FBFB 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,

Page 21: s7-Ky Thuat Lap Trinh

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, neáu quaù 5000 thì baùo baûo trì , 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 3 Start lamp and fault reset A #Response = #Start_Dsp R #Fault

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 5000 >=I = #Maint Network 7 Reset counter for number of starts A #Reset_Maint A #Maint JCN END L 0 T #Starts END: NOP 0

Page 22: s7-Ky Thuat Lap Trinh

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, goàm caùc bieán loaïi in, out,in_out vaø stat, töông töï cho caùc DB2 vaø DB3. Khi khoái FB ñöôïc goïi seõ phaûi môû keøm theo DB töông öùng

3.2 Laäp trình khoái FCKhoá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ä, tuy nhieân khoâng baét buoäc phaûi duøng taát caû caùc loaïi bieán naøy. 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 Value0.0 IN Open BOOL FALSE0.1 IN Close BOOL FALSE2.0 OUT Dsp_Open BOOL FALSE2.1 OUT Dsp_Closed BOOL FALSE4.0 IN_OUT Valve BOOL FALSE

Page 23: s7-Ky Thuat Lap Trinh

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 töø ñòa chæ 20 trôû ñi

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 Fault :="Feed_pump_A_fault" Start_Dsp :="Feed_pump_A_on"

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" AN "Feed_pump_B" = #Close_Valve_Fulfilled

Page 24: s7-Ky Thuat Lap Trinh

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"

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_Fulfilled Stop :=#Stop_Fullfilled Response :="Agitator_running" Reset_Maint :="Reset_maint" Timer_No :=T16 Reponse_Time:=S5T#10S Fault :="Agitator_fault" Start_Dsp :="Agitator_on" Stop_Dsp :="Agitator_off" Maint :="Agitator_maint" Motor :="Agitator" Network 13 Interlocks for drain valve A"EMER_STOP_off" A"Tank_not_empty" AN"Agitator" = "Enable_ValveNetwork 14 Drain valve control A "Drain_open" A #Enable_Valve = #Open_Drain A( O "Drain_closed" ON #Enable_Valve ) = #Close_Drain CALL "Valve_block" Open :=#Open_Drain Close :=#Close_Drain Dsp_Open :="Drain_open_disp" Dsp_Closed :="Drain_closed_disp" Valve :="Drain" Network 15 Tank level display AN"Tank_below_max" ="Tank_max_disp" AN"Tank_above_min" ="Tank_min_disp" AN"Tank_not_empty" = "Tank_empty_disp"

Page 25: s7-Ky Thuat Lap Trinh

Baûng sau cho bieát soá löôïng khoái /kích thöôùc toång coäng caùc khoái logic cuûa caùc loaïi cpuCPU OB1 DB FB FC312 6KByte 63/6 KByte 32/6 KByte 32/6 KByte313, 314 8 KByte 127/8 KByte 128/8KByte 128/8KByte315 16 KByte 255/16KByte 192/16KByte 192/16KByte316 16 KByte 511/16 KByte 256/16 KByte 256/16 KByte318 64 KByte 2047/64

KByte1024/64 KByte

1024/64 KByte

412 64 KByte 512/64 Kbyte 256/64Kbyte 256/64Kbyte414, 416 64 KByte 4095/64

KByte2048/64 KByte

2048/64 Kbyte

417 64 KByte 8192/64 KByte

6144/64 KByte

6144/64 KByte

4. Sử dụng hàm thư việnCaùc haøm thö vieän do Siemens vieát saün thuoäc caùc loaïi FC,

FB, SFC, SFB giuùp ngöôøi duøng thuaän tieän trong laäp trình. Muoán duøng caùc haøm thö vieän trong khoái logic naøo thì ta môû khoái logic ñoù ra, kích chuoät vaøo choã goïi haøm thö vieän, vaøo menu Insert- Program Elements - Libraries choïn caùc haøm thö vieän phuø hôïp roài baám chuoät keùp vaøo ñoù, hoaëc goõ CALL teân haøm thö vieän neáu ta nhôù teân haøm. Leänh goïi haøm seõ ñöôïc theâm vaøo keøm theo caùc bieán in, out vaø in_out caàn trao ñoåi

Page 26: s7-Ky Thuat Lap Trinh

Caùc haøm thö vieän caàn chuyeån giaù trò cho caùc bieán hình thöùc vaø ta phaûi cung caáp cho haøm goïi theo qui ñònh cuûa haøm thö vieän. Neáu trong Project ñaõ coù caùc haøm FB, FC truøng teân vôùi haøm thö vieän thì caàn phaûi ñoåi teân

Thö vieän chuaån cuûa Step 7 goàm coù caùc thö vieän con: System Function Blocks: khoái haøm heä thoáng (SFB) vaø

haøm heä thoáng (SFC) S5-S7 Converting Blocks: haøm chuyeån ñoåi chöông trình

cuûa PLC S5 sang S7 TI-S7 Converting Blocks: caùc haøm ña duïng IEC Function Blocks: caùc haøm IEC Organization Blocks: khoái toå chöùc (OB) PID Control Blocks : haøm ñieàu khieån PID Communication Blocks: caùc haøm maïng Ngoaøi ra coøn coù theå caøi theâm caùc haøm thö vieän khaùc nhö

fuzzy control, neuro system, motion control.Ngöôøi duøng coù theå töï vieát moät thö vieän goâm caùc haøm

thöôøng duøng ñeå tieän cho coâng vieäc cuûa mình. Caùc böôùc taïo thö vieän nhö sau.

- Simatic Manager- File – New- Libraries ñaët teân cho thö vieän- OK

Page 27: s7-Ky Thuat Lap Trinh

- Muoán taïo caùc haøm trong thö vieän ta baám File- Open- Libraries choïn teân thö vieän –OK

- Vaøo cöûa soå cuûa thö vieän Thanh- baám chuoät phaûi- Insert New Objects- S7 Program

- Ñoåi teân cho thö vieän con naøy, ví duï Motion Control, sau ñoù môû thö vieän con naøy vaø copy vaøo ñoù caùc haøm töø thö vieän khaùc hay töï vieát caùc haøm môùi

- Muoán boû moät thö vieän vaøo Simatic Manager- File - Delete - Libraries choïn teân thö vieän - OK

Page 28: s7-Ky Thuat Lap Trinh

5 Baûng caùc haøm SFB SFC vaø FCBaûng sau lieät keâ caùc haøm thö vieän. Moät soá haøm seõ ñöôïc

khaûo saùt ôû caùc chöông sauNo. Short Name FunctionSFC 0 SET_CLK Set System ClockSFC 1 READ_CLK Read System ClockSFC 2 SET_RTM Set Run-Time MeterSFC 3 CTRL_RTM Start/Stop Run-Time MeterSFC 4 READ_RTM Read Run-Time MeterSFC 5 GADR_LGC Query Logical Address of a ChannelSFC 6 RD_SINFO Read OB Start InformationSFC 7 DP_PRAL Trigger a Hardware Interrupt on the DP MasterSFC 9 EN_MSG Enable Block-Related, Symbol-Related and Group Status Messages SFC 10 DIS_MSG Disable Block-Related, Symbol-Related and Group Status Messages SFC 11 DPSYC_FR Synchronize Groups of DP SlavesSFC 12 D_ACT_DP Deactivation and activation of DP slavesSFC 13 DPNRM_DG Read Diagnostic Data of a DP Slave (Slave Diagnostics)SFC 14 DPRD_DAT Read Consistent Data of a Standard DP SlaveSFC 15 DPWR_DAT Write Consistent Data to a DP Standard SlaveSFC 17 ALARM_SQ Generate Acknowledgeable Block-Related Messages SFC 18 ALARM_S Generate Permanently Acknowledged Block-Related Messages SFC 19 ALARM_SC Query the Acknowledgment Status of the last ALARM_SQ Entering State Message SFC 20 BLKMOV Copy VariablesSFC 21 FILL Initialize a Memory AreaSFC 22 CREAT_DB Create Data BlockSFC 23 DEL_DB Delete Data BlockSFC 24 TEST_DB Test Data BlockSFC 25 COMPRESS Compress the User MemorySFC 26 UPDAT_PI Update the Process Image Update TableSFC 27 UPDAT_PO Update the Process Image Output TableSFC 28 SET_TINT Set Time-of-Day InterruptSFC 29 CAN_TINT Cancel Time-of-Day InterruptSFC 30 ACT_TINT Activate Time-of-Day InterruptSFC 31 QRY_TINT Query Time-of-Day InterruptSFC 32 SRT_DINT Start Time-Delay InterruptSFC 33 CAN_DINT Cancel Time-Delay InterruptSFC 34 QRY_DINT Query Time-Delay InterruptSFC 35 MP_ALM Trigger Multicomputing InterruptSFC 36 MSK_FLT Mask Synchronous ErrorsSFC 37 DMSK_FLT Unmask Synchronous ErrorsSFC 38 READ_ERR Read Error RegisterSFC 39 DIS_IRT Disable New Interrupts and Asynchronous ErrorsSFC 40 EN_IRT Enable New Interrupts and Asynchronous ErrorsSFC 41 DIS_AIRT Delay Higher Priority Interrupts and Asynchronous ErrorsSFC 42 EN_AIRT Enable Higher Priority Interrupts and Asynchronous ErrorsSFC 43 RE_TRIGR Retrigger Cycle Time MonitoringSFC 44 REPL_VAL Transfer Substitute Value to Accumulator 1SFC 46 STP Change the CPU to STOPSFC 47 WAIT Delay Execution of the User ProgramSFC 48 SNC_RTCB Synchronize Slave Clocks SFC 49 LGC_GADR Query the Module Slot Belonging to a Logical AddressSFC 50 RD_LGADR Query all Logical Addresses of a ModuleSFC 51 RDSYSST Read a System Status List or Partial ListSFC 52 WR_USMSG Write a User-Defined Diagnostic Event to the Diagnostic Buffer

Page 29: s7-Ky Thuat Lap Trinh

SFC 54 RD_PARM Read Defined ParametersSFC 55 WR_PARM Write Dynamic ParametersSFC 56 WR_DPARM Write Default ParametersSFC 57 PARM_MOD Assign Parameters to a ModuleSFC 58 WR_REC Write a Data RecordSFC 59 RD_REC Read a Data RecordSFC 60 GD_SND Send a GD PacketSFC 61 GD_RCV Fetch a Received GD PacketSFC 62 CONTROL Query the Status of a Connection Belonging to a Communication SFB InstanceSFC 63 AB_CALL Assembly Code BlockSFC 64 TIME_TCK Read the System TimeSFC 65 X_SEND Send Data to a Communication Partner outside the Local S7 StationSFC 66 X_RCV Receive Data from a Communication Partner outside the Local S7 Station SFC 67 X_GET Read Data from a Communication Partner outside the Local S7 StationSFC 68 X_PUT Write Data to a Communication Partner outside the Local S7 StationSFC 69 X_ABORT Abort an Existing Connection to a Communication Partner outside the Local S7 StationSFC 72 I_GET Read Data from a Communication Partner within the Local S7 StationSFC 73 I_PUT Write Data to a Communication Partner within the Local S7 StationSFC 74 I_ABORT Abort an Existing Connection to a Communication Partner within the Local S7 StationSFC 79 SET Set a Range of OutputsSFC 80 RSET Reset a Range of OutputsSFC 81 UBLKMOV Uninterruptable Block MoveSFC 90 H_CTRL Control Operation in H Systems

No. Short Name FunctionSFB 0 CTU Count UpSFB 1 CTD Count DownSFB 2 CTUD Count Up/DownSFB 3 TP Generate a PulseSFB 4 TON Generate an On DelaySFB 5 TOF Generate an Off DelaySFB 8 USEND Uncoordinated Sending of DataSFB 9 URCV Uncoordinated Receiving of DataSFB 12 BSEND Sending Segmented DataSFB 13 BRCV Receiving Segmented DataSFB 14 GET Read Data from a Remote CPUSFB 15 PUT Write Data to a Remote CPUSFB 16 PRINT Send Data to PrinterSFB 19 START Initiate a Warm or Cold Restart on a Remote DeviceSFB 20 STOP Changing a Remote Device to the STOP StateSFB 21 RESUME Initiate a Hot Restart on a Remote DeviceSFB 22 STATUS Query the Status of a Remote PartnerSFB 23 USTATUS Receive the Status of a Remote DeviceSFB 29 HS_COUNT Counter (high-speed counter, integrated function)SFB 30 FREQ_MES Frequency Meter (frequency meter, integrated functionSFB 32 DRUM Implement a SequencerSFB 33 ALARMGenerate Block-Related Messages with Acknowledgment DisplaySFB 34 ALARM_8 Generate Block-Related Messages without Values for 8 SignalsSFB 35 ALARM_8P Generate Block-Related Messages with Values for 8 Signals

Page 30: s7-Ky Thuat Lap Trinh

SFB 36 NOTIFY Generate Block-Related Messages without Acknowledgment DisplaySFB 37 AR_SEND Send Archive DataSFB 38 HSC_A_B Counter A/B (integrated function)SFB 39 POS Position (integrated function)SFB 41 CONT_C 1) Continuous ControlSFB 42 CONT_S 1) Step ControlSFB 43 PULSEGEN 1) Pulse Generation* SFB29 "HS_COUNT" and SFB30 "FREQ_MES" only exist on the CPU 312 IFM and CPU 314 IFM. SFBs 38 "HSC_A_B" and 39 "POS" only exist on the CPU 314 IFM. For a detailed description, refer to.* SFBs 41 "CONT_C," 42 "CONT_S" and 43 "PULSEGEN" only exist on the CPU 314 IFM.

No. Short Name FunctionFC1 AD_DT_TM Add duration to a timeFC2 CONCAT Combine two STRING variablesFC3 D_TOD_DT Combine DATE and TIME_OF_DAY to DTFC4 DELETE Delete in a STRING variableFC5 DI_STRNG Data type conversion DINT to STRINGFC6 DT_DATE Extract the DATE from DTFC7 DT_DAY Extract the day of the week from DTFC8 DT_TOD Extract the TIME_OF_DAY from DTFC9 EQ_DT Compare DT for equalFC10 EQ_STRNG Compare STRING for equalFC11 FIND Find in a STRING variableFC12 GE_DT Compare DT for greater than or equalFC13 GE_STRNG Compare STRING for greater than or equalFC14 GT_DT Compare DT for greater thanFC15 GT_STRNG Compare STRING for greater thanFC16 I_STRNG Data type conversion INT to STRINGFC17 INSERT Insert in a STRING variableFC18 LE_DT Compare DT for less than or equalFC19 LE_STRNG Compare STRING for less than or equalFC20 LEFT Left part of a STRING variableFC21 LEN Length of a STRING variableFC22 LIMIT LimitFC23 LT_DT Compare DT for less thanFC24 LT_STRNG Compare STRING for less thanFC25 MAX Select maximumFC26 MID Middle part of a STRING variableFC27 MIN Select minimumFC28 NE_DT Compare DT for unequalFC29 NE_STRNG Compare STRING for unequalFC30 R_STRNG Data type conversion REAL to STRINGFC31 REPLACE Replace in a STRING variableFC32 RIGHT Right part of a STRING variableFC33 S5TI_TIM Data type conversion S5TIME to TIMEFC34 SB_DT_DT Subtract two time valuesFC35 SB_DT_TM Subtract duration from a timeFC36 SEL Binary selectionFC37 STRNG_DI Data type conversion STRING to DINTFC38 STRNG_I Data type conversion STRING to INTFC39 STRNG_R Data type conversion STRING to REALFC40 TIM_S5TI Data type conversion TIME to S5TIME