Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Simens plc training. simatic working-with-step-7

12,601 views

Published on

SIMENS PLC TRAINING.

Published in: Education, Technology, Business

Simens plc training. simatic working-with-step-7

  1. 1. sWelcome to STEP 7,ContentsIntroduction to STEP 7 1The SIMATIC Manager 2SIMATICProgramming with Symbols 3Working with STEP 7Creating a Program in OB1 4Creating a Program withFunction Blocks and Data Blocks 5Getting StartedConfiguring the Central Rack 6Downloading and Debuggingthe Program 7Programming a Function 8Programming aShared Data Block 9Programming a Multiple Instance 10Configuring the Distributed I/O 11AppendixAppendix AAIndexThis manual is part of the documentationpackage with the order number:6ES7810-4CA08-8BW0Edition 03/2006C79000-P7076-C48-01
  2. 2. Safety GuidelinesThis manual contains notices you have to observe in order to ensure your personal safety, as well as toprevent damage to property. The notices referring to your personal safety are highlighted in the manualby a safety alert symbol, notices referring to property damage only have no safety alert symbol. Thenotices shown below are graded according to the degree of danger.Siemens AGAutomation and DrivesPostfach 484890437 NÜRNBERGGERMANYC79000-P7076-C48-0103/2006Copyright © Siemens AG 2006Technical data subject to change! Dangerindicates that death or severe personal injury will result if proper precautions are not taken.! Warningindicates that death or severe personal injury may result if proper precautions are not taken.! Cautionwith a safety alert symbol indicates that minor personal injury can result if proper precautions are nottaken.Cautionwithout a safety alert symbol indicates that property damage can result if proper precautions are nottaken.Noticeindicates that an unintended result or situation can occur if the corresponding notice is not taken intoaccount.If more than one degree of danger is present, the warning notice representing the highest degree ofdanger will be used. A notice warning of injury to persons with a safety alert symbol may also include awarning relating to property damage.Qualified PersonnelThe device/system may only be set up and used in conjunction with this documentation. Commissioningand operation of a device/system may only be performed by qualified personnel. Within the context ofthe safety notices in this documentation qualified persons are defined as persons who are authorized tocommission, ground and label devices, systems and circuits in accordance with established safetypractices and standards.Prescribed UsageNote the following:Warning! This device and its components may only be used for the applications described in the catalog or thetechnical description, and only in connection with devices or components from other manufacturerswhich have been approved or recommended by Siemens.Correct, reliable operation of the product requires proper transport, storage, positioning and assemblyas well as careful operation and maintenance.TrademarksAll names identified by ® are registered trademarks of the Siemens AG.The remaining trademarks in this publication may be trademarks whose use by third parties for theirown purposes could violate the rights of the owner.Disclaimer of LiabilityWe have reviewed the contents of this publication to ensure consistency with the hardware andsoftware described. Since variance cannot be precluded entirely, we cannot guarantee full consistency.However, the information in this publication is reviewed regularly and any necessary corrections areincluded in subsequent editions.
  3. 3. Welcome to STEP 7......the SIMATIC standard software for creating programmable logic controlprograms in Ladder Logic, Function Block Diagram, or Statement List forSIMATIC S7-300/400 stations.About This Getting Started ManualIn this manual, you will get to know the basics of SIMATIC STEP 7. We will showyou the most important screen dialog boxes and the procedures to follow usingpractical exercises, which are structured so that you can start with almost anychapter.Each section is split into two parts: a descriptive part, marked in gray, and aprocess-oriented part, marked in green. The instructions start with an arrow in thegreen margin and may be spread out over several pages, finishing in a full stopand a box containing related topics.Previous experience of working with the mouse, window handling, pull-downmenus, etc. would be useful, and you should preferably be familiar with the basicprinciples of programmable logic control.The STEP 7 training courses provide you with in-depth knowledge above andbeyond the contents of this Getting Started manual, teaching you how entireautomation solutions can be created with STEP 7.Requirements for Working with the Getting Started ManualIn order to carry out the practical exercises for STEP 7 in this Getting Startedmanual, you require the following:• A Siemens programming device or a PC• The STEP 7 software package and the respective license key• A SIMATIC S7-300 or S7-400 programmable controller(for Chapter 7 "Downloading and Debugging the Program").Additional Documentation on STEP 7• STEP 7 Basic Information• STEP 7 Reference InformationAfter you have installed STEP 7, you will find the electronic manuals in the Startmenu under Simatic > Documentation or alternatively, you can order them fromany Siemens sales center. All of the information in the manuals can be called up inSTEP 7 from the online help.Have fun and good luck!SIEMENS AGSTEP 7 Getting StartedC79000-P7076-C48-01 iii
  4. 4. Welcome to STEP 7...STEP 7 Getting Startediv C79000-P7076-C48-01
  5. 5. Contents1 Introduction to STEP 71.11.21.31.4What You Will LearnCombining Hardware and SoftwareBasic Procedure Using STEP 7Installing STEP 71-11-31-41-52 The SIMATIC Manager2.12.2Starting the SIMATIC Manager and Creating a ProjectThe Project Structure in the SIMATIC Managerand How to Call the Online Help2-12-4In Chapters 3 to 5, you create asimple program.3 Programming with Symbols3.13.2Absolute AddressesSymbolic Programming3-13-24 Creating a Program in OB14.14.24.34.4Opening the LAD/STL/FBD Program WindowProgramming OB1 in Ladder LogicProgramming OB1 in Statement ListProgramming OB1 in Function Block Diagram4-14-44-84-115 Creating a Program with Function Blocks and Data Blocks5.15.25.35.45.55.65.75.8Creating and Opening Function Blocks (FB)Programming FB1 in Ladder LogicProgramming FB1 in Statement ListProgramming FB1 in Function Block DiagramGenerating Instance Data Blocks and Changing Actual ValuesProgramming a Block Call in Ladder LogicProgramming a Block Call in Statement ListProgramming a Block Call in Function Block Diagram5-15-35-75-105-145-165-195-21STEP 7 Getting StartedC79000-P7076-C48-01 v
  6. 6. Contents6 Configuring the Central RackIn Chapters 6 and 7, youconfigure the hardware and testyour program.6.1 Configuring Hardware 6-17 Downloading and Debugging the Program7.17.27.37.47.5Establishing an Online ConnectionDownloading the Program to the Programmable ControllerTesting the Program with Program StatusTesting the Program with the Variable TableEvaluating the Diagnostic Buffer7-17-37-67-87-12In Chapters 8 to 11, you canextend your knowledge to includenew functions.8 Programming a Function8.18.28.3Creating and Opening Functions (FC)Programming FunctionsCalling the Function in OB18-18-38-69 Programming a Shared Data Block9.1 Creating and Opening Shared Data Blocks 9-110 Programming a Multiple Instance10.110.210.310.4Creating and Opening a Higher-Level Function BlockProgramming FB10Generating DB10 and Adapting the Actual ValueCalling FB10 in OB110-110-310-710-911 Configuring the Distributed I/O11.1 Configuring the Distributed I/O with PROFIBUS DP 11-1Appendix A A-1Overview of the Sample Projects for the Getting Started ManualIndex Index-1STEP 7 Getting Startedvi C79000-P7076-C48-01
  7. 7. 1 Introduction to STEP 71.1 What You Will LearnUsing practical exercises, we will show you how easy it is to program in LadderLogic, Statement List, or Function Block Diagram with STEP 7.Detailed instructions in the individual chapters will show you step-by-step themany ways in which you can use STEP 7.Creating a Program with Binary LogicIn Chapters 2 to 7, you will create a program with binary logic. Using theprogrammed logic operations, you will address the inputs and outputs of your CPU(if present).The programming examples in the Getting Started manual are based, among otherthings, on three fundamental binary logic operations.The first binary logic operation, which you will program later on, is the ANDfunction. The AND function can be best illustrated in a circuit diagram using twokeys.Key 1 Key 2If both Key 1 and Key 2are pressed, the bulblights up.The second binary logic operation is the OR function. The OR function can also berepresented in a circuit diagram.Key 4Key 3If either key 3 or key 4is pressed, the bulblights up.STEP 7 Getting StartedC79000-P7076-C48-01 1-1
  8. 8. Introduction to STEP 7The third binary logic operation is the memory element. The SR function reactswithin a circuit diagram to certain voltage states and passes these on accordingly.Memory ElementSRKey RKey SIf key S is pressed, the bulb lights upand remains lit until key R is pressed.STEP 7 Getting Started1-2 C79000-P7076-C48-01
  9. 9. Introduction to STEP 71.2 Combining Hardware and SoftwareUsing the STEP 7 software, you can create your S7 program within a project. TheS7 programmable controller consists of a power supply unit, a CPU, and input andoutput modules (I/O modules).The programmable logic controller (PLC) monitors and controls your machine withthe S7 program. The I/O modules are addressed in the S7 program via theaddresses.Input moduleCPU Output modulePower supply moduleTransferring a programSTEP 7 softwareProgrammingdevice cableProgramming deviceMachine to becontrolledSTEP 7 Getting StartedC79000-P7076-C48-01 1-3
  10. 10. Introduction to STEP 71.3 Basic Procedure Using STEP 7Before you create a project, you should know that STEP 7 projects can be createdin different orders.Option 2Option 1Transferring the program to the CPU and debugging(Chapter 7)Creating a project (Chapter 2)Designing the solution to the automation taskConfiguring the hardware(Chapter 6)Creating a program(Chapters 3 to 5)Creating a program(Chapters 3 to 5)Configuring the hardware(Chapter 6)Since we are only using a small number of inputs andoutputs in the Getting Started manual, we will skip thehardware configuration for now and start with theprogramming.In the hardware configuration, not only can you define addresses, but you can also changethe parameters and properties of modules. If you want to operate several CPUs, forexample, you have to match up the MPI addresses of the CPUs.If you choose the second option, you have to determine each address yourself, dependingon your selected components and you cannot call these addresses via STEP 7.If you are creating comprehensive programs with many inputs and outputs, werecommend you configure the hardware first. The advantage of this is that STEP 7displays the possible addresses in the Hardware Configuration Editor.STEP 7 Getting Started1-4 C79000-P7076-C48-01
  11. 11. Introduction to STEP 71.4 Installing STEP 7Regardless of whether you want to start with programming or configuringhardware, you first have to install STEP 7. If you are using a SIMATICprogramming device, STEP 7 is already installed.When installing the STEP 7 softwareon a programming device or PCwithout a previously installed version ofSTEP 7, note the software andhardware requirements. You can findthese in the Readme.wri on theSTEP 7 CD under<Drive>:STEP 7 Disk1.If you need to install STEP 7 first,insert the STEP 7 CD in the CD-ROMdrive now. The installation programstarts automatically. Follow theinstructions on the screen.Once the installation is complete andyou have restarted the computer, the"SIMATIC Manager" icon will appearon your Windows desktop.If the installation does not start auto-matically, you can also find theinstallation program on the CD-ROMunder<Drive>:STEP 7 Disk1setup.exe.You can find additional notes on installation in theReadme.wri file on the STEP 7 CD under<Drive>:STEP 7 Disk1Readme.wri.If you double-click the "SIMATIC Manager" icon following installation, the STEP 7 Wizardwill be started automatically.STEP 7 Getting StartedC79000-P7076-C48-01 1-5
  12. 12. Introduction to STEP 7STEP 7 Getting Started1-6 C79000-P7076-C48-01
  13. 13. 2 The SIMATIC Manager2.1 Starting the SIMATIC Manager and Creating a ProjectThe SIMATIC Manager is the central window which becomes active when STEP 7is started. The default setting starts the STEP 7 Wizard, which supports you whencreating a STEP 7 project. The project structure is used to store and arrange allthe data and programs in order.Double-click the SIMATIC Managericon on the Windows desktop, thenselect the File > Wizard "NewProject" menu command if the wizarddoes not start automatically.In the preview, you can toggle the viewof the project structure being createdon and off.To move to the next dialog box, clickNext.The S7 program comprises all theblocks with the programs necessary forcontrolling the machineThe SIMATIC station and the CPUcontain the configuration andparameter data of the hardwareWithin the project, data are stored in theform of objects in a hierarchical structureSTEP 7 Getting StartedC79000-P7076-C48-01 2-1
  14. 14. The SIMATIC ManagerFor the "Getting Started" sampleproject, select CPU 314. The examplehas been created in such a way thatyou can actually select the CPU youhave been supplied with at any time.The default setting for the MPI addressis 2.Click Next to confirm the settings andmove to the next dialog box.Select the organization block OB1 (ifthis is not already selected).Select one of the programminglanguages: Ladder Logic (LAD),Statement List (STL), or Function BlockDiagram (FBD).Confirm your settings with Next.Every CPU has certainproperties; for example,regarding its memoryconfiguration or addressareas. This is why you haveto select the CPU before youstart programming.The MPI address (multipointinterface) is required in orderfor your CPU to communicatewith your programming deviceor PC.OB1 represents the highestprogramming level and organizes theother blocks in the S7 program.You can change the programminglanguage again at a later date.STEP 7 Getting Started2-2 C79000-P7076-C48-01
  15. 15. The SIMATIC ManagerDouble-click to select the suggestedname in the "Project name" field andoverwrite it with "Getting Started."Click Make to generate your newproject according to the preview.When you click the Make button, the SIMATIC Manager will open with the window for the"Getting Started" project you have created. On the following pages, we will show you whatthe created files and folders are for and how you can work effectively with them.The STEP 7 Wizard is activated each time the program is started. You can deactivate thisdefault setting in the first dialog box for the Wizard. However, if you create projects withoutthe STEP 7 Wizard, you must create each directory within the project yourself.You can find more information underHelp > Contents in the topic "SettingUp and Editing the Project."STEP 7 Getting StartedC79000-P7076-C48-01 2-3
  16. 16. The SIMATIC Manager2.2 The Project Structure in the SIMATIC Manager and Howto Call the Online HelpAs soon as the STEP 7 Wizard is closed, the SIMATIC Manager appears with theopen project window "Getting Started." From here, you can start all the STEP 7functions and windows.Opening, organizing, and printingprojectsDownloading the programand monitoring thehardwareThe contents of the right-hand paneshow the objects and other foldersfor the folder selected on the leftEditing blocks and inserting programcomponentsSetting the window display andarrangement, selecting thelanguage, and making settings forprocess dataThe contents of the left-hand paneshow the project structureCalling the STEP 7 online helpSTEP 7 Getting Started2-4 C79000-P7076-C48-01
  17. 17. The SIMATIC ManagerCalling the Help on STEP 7Calling the Help on STEP 7F1F1 Option 1:Option 1:Place the cursor on any menucommand and press the F1 key. Thecontext-sensitive help for the selectedmenu command will appear.Place the cursor on any menucommand and press the F1 key. Thecontext-sensitive help for the selectedmenu command will appear.Option 2:Use the menu to open the STEP 7online help.The contents page with various helptopics appears in the left-hand paneand the selected topic is displayed inthe right-hand pane.Navigate to the topic you want byclicking the + sign in the Contents list.At the same time, the contents of theselected topic are displayed in theright-hand pane.Using Index and Find, you can entersearch strings and look for the specifictopics you require.Option 3:Click on the "Start page" icon in theSTEP 7 Online Help to open theinformation portal. This portal providescompact access to major topics of theOnline Help, e.g.:• Getting Started with STEP 7• Configuring & Programming• Testing & Debugging• SIMATIC on the InternetOption 4:Click on the question mark button inthe toolbar to turn your mouse into ahelp cursor. The next time you click ona specific object, the online help isactivated.STEP 7 Getting StartedC79000-P7076-C48-01 2-5
  18. 18. The SIMATIC ManagerNavigating in the Project StructureNavigating in the Project StructureThe project you have just created isdisplayed with the selected S7 stationand CPU.Click the + or – sign to open or close afolder.You can start other functions later onby clicking the symbols displayed inthe right-hand pane.Click the S7 Program (1) folder. Thiscontains all the necessary programcomponents.You will use the Symbols component inChapter 3 to give the addressessymbolic names.The Source Files component is used tostore source file programs. These arenot dealt with in the Getting Startedmanual.Click the Blocks folder. This containsthe OB1 you have already createdand, later on, all the other blocks.From here, you will start programmingin Ladder Logic, Statement List, orFunction Block Diagram in Chapters 4and 5.Click the SIMATIC 300 Station folder.All the hardware-related project dataare stored here.You will use the Hardware componentin Chapter 6 to specify the parametersof your programmable controller.If you require further SIMATIC software for your automation task; for example, the optionalpackages PLCSIM (hardware simulation program) or S7 Graph (graphic programminglanguage), these are also integrated in STEP 7. Using the SIMATIC Manager, for example,you can directly open the relevant objects such as an S7 Graph function block.You can find more information under Help > Contents in the topics "WorkingOut the Automation Concept" and "Basics of Designing the Program Structure".You can find more information on optional packages in the SIMATIC catalogST 70, "Components for Completely Integrated Automation."STEP 7 Getting Started2-6 C79000-P7076-C48-01
  19. 19. 3 Programming with Symbols3.1 Absolute AddressesEvery input and output has an absolute address predefined by the hardwareconfiguration. This address is specified directly; that is, absolutely.The absolute address can be replaced by any symbolic name you choose.SFBATFDC 5VFRCERURUNSTOPM RESONOFFRUNN PSTOP012345670123456701234567012345670123674501234567L+L+MNL+MMML+Digital outputmoduleDigital inputmoduleByte 4Byte 0Bits 0 to 7Bits 0 to 7Digital inputmoduleByte 1Bits 0 to 7Digital outputmoduleByte 5Bits 0 to 7Absolute address: I 1.5Bit 5Byte 1InputYou should only use absolute programming if you do nothave to address many inputs and outputs in your S7program.STEP 7 Getting StartedC79000-P7076-C48-01 3-1
  20. 20. Programming with Symbols3.2 Symbolic ProgrammingIn the symbol table, you assign a symbolic name and the data type to all theabsolute addresses which you will address later on in your program; for example,for input I 0.1 the symbolic name Key 1. These names apply to all parts of theprogram and are known as global variables.Using symbolic programming, you can considerably improve the legibility of theS7 program you have created.Working with the Symbol EditorNavigate in the project window "GettingStarted" until you reachS7 Program (1) and double-click toopen the Symbols component.Your symbol table currently onlyconsists of the predefined organizationblock OB1.Click Cycle Execution and overwrite itwith "Main Program" for our example.Enter "Green Light" and "Q 4.0" inrow 2. The data type is addedautomatically.Click in the comment column of row 1or 2 to enter a comment on the symbol.You complete your entries in a row bypressing Enter, which then adds a newrow.Enter "Red Light" and "Q 4.1" in row 3and press Enter to complete the entry.In this way, you can assign symbolic names to allthe absolute addresses of the inputs and outputswhich your program requires.STEP 7 Getting Started3-2 C79000-P7076-C48-01
  21. 21. Programming with SymbolsSave the entries or changes you havemade in the symbol table and close thewindow.Because there are lots of names for the entire "Getting Started" project, you cancopy the symbol table to your "Getting Started" project in Section 4.1.The data type which was previously added automatically to the symbol table determines thetype of the signal to be processed for the CPU. STEP 7 uses, among others, the followingdata types:BOOLBYTEWORDDWORDData of this type are bit combinations. 1 bit (type BOOL) to 32 bits (DWORD).CHAR Data of this type occupy exactly one character of the ASCII character set.INTDINTREALThey are available for the processing of numerical values (for example, to calculatearithmetic expressions).S5TIMETIMEDATETIME_OF_DAYData of this type represent the different time and date values within STEP 7 (forexample, to set the date or to enter the time value for a timer).Here you can see the symboltable for the S7 program in the"Getting Started" example forStatement List.Generally speaking, only onesymbol table is created perS7 program, regardless ofwhich programming languageyou have selected.All printable characters (forexample, special characters,spaces) are permitted in thesymbol table.You can find more information under Help >Contents in the topics “Programming Blocks“and "Defining Symbols".STEP 7 Getting StartedC79000-P7076-C48-01 3-3
  22. 22. Programming with SymbolsSTEP 7 Getting Started3-4 C79000-P7076-C48-01
  23. 23. 4 Creating a Program in OB14.1 Opening the LAD/STL/FBD Program WindowChoosing Ladder Logic, Statement List, or Function Block DiagramWith STEP 7, you create S7 programs in the standard languages Ladder Logic(LAD), Statement List (STL), or Function Block Diagram (FBD). In practice, and forthis chapter too, you must decide which language to use.Ladder Logic (LAD)Suitable for users from the electrical engineering industry, for example.Statement List (STL)Suitable for users from the world of computer technology, for example.Function Block Diagram (FBD)Suitable for users from the world of circuit engineering, for example.The block OB1 will now be opened according to the language you chosewhen you created it in the project Wizard. However, you can change thedefault programming language again at any time.STEP 7 Getting StartedC79000-P7076-C48-01 4-1
  24. 24. Creating a Program in OB1Copying the Symbol Table and Opening OB1Copying the Symbol Table and Opening OB1If necessary, open your "GettingStarted" project. To do this, click theOpen button in the toolbar, select the"Getting Started" project you created,and confirm with OK.Depending on which programminglanguage you have decided to use, inthe "Sample projects" tab open one ofthe following projects as well:• ZEn01_05_STEP7__LAD_1-9• ZEn01_01_STEP7__STL_1-9or• ZEn01_03_STEP7__FDB_1-9Here you can see all three sampleprojects displayed.Navigate in the "ZEn01_XXX“ until youreach the Symbols component andcopy this by dragging and dropping itto the S7 Program folder in yourproject window "Getting Started."Then close the window "ZEn01_XXX“.Double-click OB1 in the "GettingStarted" project. The LAD/STL/FBDprogram window is opened.Drag and drop means that you click any objectwith the mouse and move it whilst keeping themouse button depressed. When you release themouse button, the object is pasted at the selectedposition.In STEP 7, OB1 is processed cyclically by the CPU. The CPU reads line by line andexecutes the program commands. When the CPU returns to the first program line, it hascompleted exactly one cycle. The time required for this is known as the scan cycle time.Depending on which programming language you have selected, continue reading in eitherSection 4.2 for programming in Ladder Logic, Section 4.3 for Statement List, or Section 4.4for Function Block Diagram.You can find more information under Help > Contentsin the topics “Programming Blocks“ and "CreatingBlocks and Libraries.“STEP 7 Getting Started4-2 C79000-P7076-C48-01
  25. 25. Creating a Program in OB1The LAD/STL/FBD Program WindowAll blocks are programmed in the LAD/STL/FBD program window. Here, you cansee the view for Ladder Logic.The different tabs of the "Details" windoware for displaying error messages andinformation on addresses, for editingsymbols, monitoring addresses,comparing blocks and for editing errordefinitions for the process diagnostics.The variable declaration table containsthe parameters and local variables forthe blockToggling "Program elements" and "Callstructure" on and off(Pane can be placed anywhere in theprogram window)The most important programelements for Ladder Logic andFunction Block DiagramChanging the programminglanguage viewInserting a newnetworkTitle and comment field forthe block or networkProgram input line (also networkand current path)Programelements(here forLadder Logic)and callstructureInformation on the selected program elementSTEP 7 Getting StartedC79000-P7076-C48-01 4-3
  26. 26. Creating a Program in OB14.2 Programming OB1 in Ladder LogicIn the following section, you will program a series circuit, a parallel circuit, and theset / reset memory function in Ladder Logic (LAD).Programming a Series Circuit in Ladder LogicIf necessary, set LAD as theprogramming language in the Viewmenu.Click in the title area of OB1 and enter"Cyclically processed main program,"for example.Select the current path for your firstelement.Click the button in the toolbar andinsert a normally open contact.In the same way, insert a secondnormally open contact.Insert a coil at the right-hand end of thecurrent path.The addresses of the normally opencontacts and the coil are still missing inthe series circuit.Check whether symbolicrepresentation is activated.STEP 7 Getting Started4-4 C79000-P7076-C48-01
  27. 27. Creating a Program in OB1Click the ??.? sign and enter thesymbolic name "Key_1" (in quotationmarks). Alternatively, you can selectthe name from the displayed pull-downlist.Confirm with Enter.Enter the symbolic name "Key_2" forthe second normally open contact.Enter the name "Green_Light" for thecoil.You have now programmed acomplete series circuit.Save the block if there are no moresymbols shown in red.Symbols are indicated in red if, for example, they do not exist in the symbol table, or ifthere is a syntax error.STEP 7 Getting StartedC79000-P7076-C48-01 4-5
  28. 28. Creating a Program in OB1Programming a Parallel Circuit in Ladder LogicSelect Network 1.Insert a new network.Select the current path again.Insert a normally open contact and acoil.Select the vertical line of the currentpath.Insert a parallel branch.Add another normally open contact inthe parallel branch.Close the branch (if necessary, selectthe lower arrow).The addresses are still missing in theparallel circuit.To assign symbolic addresses,proceed in the same way as for theseries circuit.Overwrite the upper normally opencontact with "Key_3," the lower contactwith "Key_4," and the coil with"Red_Light."Save the block.STEP 7 Getting Started4-6 C79000-P7076-C48-01
  29. 29. Creating a Program in OB1Programming a Memory Function in Ladder LogicSelect Network 2 and insert anothernetwork.Select the current path again.Navigate in the Program Elementscatalog under Bit Logic until you reachthe SR element. Double-click to insertthe element.Insert a normally open contact in frontof each of the inputs S and R.Enter the following symbolic names forthe SR element:Upper contact "Automatic_On"Lower contact "Manual_On"SR element "Automatic_Mode"Save the block and close the window.You can find more information under Help >Contents in the topics "Programming Blocks,""Creating Logic Blocks," and "Editing LadderInstructions."If you want to see the difference between absolute and symbolic addressing, deactivate themenu command View > Display > Symbolic Representation.You can change the line break for symbolic addressing in the LAD/STL/FBD programwindow by using the menu command Options > Customize and then selecting "Width ofaddress field" in the "LAD/FBD" tab. Here you can set the line break between 10 and 26characters.Example:Absolute addressing in LADExample:Symbolic addressing in LADSTEP 7 Getting StartedC79000-P7076-C48-01 4-7
  30. 30. Creating a Program in OB14.3 Programming OB1 in Statement ListIn the following section, you will program an AND instruction, an OR instruction,and the memory instruction set/reset in Statement List (STL).Programming an AND Instruction in Statement ListIf necessary, set STL as theprogramming language in the Viewmenu.Check whether symbolicrepresentation is activated.Click in the title area of OB1 and enter"Cyclically processed main program,"for example.Select the area for your first statement.Type an A (AND) in the first programline, a space, and then the symbolicname "Key_1" (in quotation marks).Complete the line with Enter. Thecursor jumps to the next line.STEP 7 Getting Started4-8 C79000-P7076-C48-01
  31. 31. Creating a Program in OB1In the same way, complete the ANDinstruction as shown.You have now programmed acomplete AND instruction. Save theblock if there are no more symbolsshown in red.Programming an OR Instruction in Statement ListSelect Network 1.Insert a new network and select theinput area again.Enter an O (OR) and the symbolicname "Key_3" (in the same way as forthe AND instruction).Complete the OR instruction and saveit.Symbols are indicated in red if, for example, they do not exist in the symbol table, orif there is a syntax error.STEP 7 Getting StartedC79000-P7076-C48-01 4-9
  32. 32. Creating a Program in OB1Programming a Memory Instruction in Statement ListSelect Network 2 and insert anothernetwork.In the first line, type the instruction Awith the symbolic name"Automatic_On."Complete the memory instruction andsave it. Close the block.If you want to see the difference between absolute and symbolic addressing, deactivate themenu command View > Display > Symbolic Representation.You can find more information under Help >Contents in the topics "Programming Blocks,""Creating Logic Blocks," and "Editing STLStatements."Example:Absolute addressing in STLExample:Symbolic addressing in STLSTEP 7 Getting Started4-10 C79000-P7076-C48-01
  33. 33. Creating a Program in OB14.4 Programming OB1 in Function Block DiagramIn the following section, you will program an AND function, an OR function, and amemory function in Function Block Diagram (FBD).Programming an AND Function in Function Block DiagramIf necessary, set FBD as theprogramming language in the Viewmenu.Click in the title area of OB1 and enter"Cyclically processed main program,"for example.Select the input area for the ANDfunction (below the comment field).Insert an AND box (&) and anassignment (=).The addresses of the elements are stillmissing in the AND function.Check whether symbolicrepresentation is activated.STEP 7 Getting StartedC79000-P7076-C48-01 4-11
  34. 34. Creating a Program in OB1Click on the ??.? sign and enter thesymbolic name "Key_1" (in quotationmarks). Alternatively, you can alsoselect the name from the displayedpull-down list.Confirm with Enter.Enter the symbolic name "Key_2" forthe second input.Enter the name "Green_Light" for theassignment.You have now programmed acomplete AND function.If there are no more symbols shown inred, you can save the block.Symbols are indicated in red if, for example, they do not exist in the symbol table, orif there is a syntax error.STEP 7 Getting Started4-12 C79000-P7076-C48-01
  35. 35. Creating a Program in OB1Programming an OR Function in Function Block DiagramInsert a new network.Select the input area again for the ORfunction.Insert an OR box (≥1) and anassignment (=).The addresses are still missing in theOR function. Proceed in the same wayas for the AND function.Enter "Key_3" for the upper input,"Key_4" for the lower input, and"Red_Light" for the assignment.Save the block.STEP 7 Getting StartedC79000-P7076-C48-01 4-13
  36. 36. Creating a Program in OB1Programming a Memory Function in Function Block DiagramSelect Network 2 and insert anothernetwork. Select the input area again(below the comment field).Navigate in the Program Elementscatalog under Bit Logic until you reachthe SR element. Double-click to insertthe element."Automatic Mode""Automatic on""Manual on"Enter the following symbolic names forthe SR element:Set "Automatic_On"Reset "Manual_On"Memory bit "Automatic_Mode"Save the block and close the window.If you want to see the difference between absolute and symbolic addressing, deactivate themenu command View > Display > Symbolic Representation.You can change the line break for symbolic addressing in the LAD/STL/FBD programwindow by using the menu command Options > Customize and then selecting "AddressField Width" in the "LAD/FBD" tab. Here you can set the line break between 10 and 26characters.You can find more information under Help >Contents in the topics "Programming Blocks,""Creating Logic Blocks," and "Editing FBDStatements.""Green_Light""Key_2""Key_1"Example:Absolute addressing in FBDExample:Symbolic addressing in FBDSTEP 7 Getting Started4-14 C79000-P7076-C48-01
  37. 37. 5 Creating a Program with Function Blocksand Data Blocks5.1 Creating and Opening Function Blocks (FB)The function block (FB) is below the organization block in the program hierarchy. Itcontains a part of the program which can be called many times in OB1. All theformal parameters and static data of the function block are saved in a separatedata block (DB), which is assigned to the function block.You will program the function block (FB1, symbolic name "Engine"; see symboltable, page 3-3) in the LAD/STL/FBD program window, which you are now familiarwith. To do this, you should use the same programming language as in Chapter 4(programming OB1).You should have already copied thesymbol table into your project "GettingStarted." If not, read how to do this onpage 4-2, copying the symbol table,and then return to this section.If necessary, open the "GettingStarted" project.Navigate to the Blocks folder andopen it.Click in the right-hand half of thewindow with the right mouse button.The pop-up menu for the right mousebutton contains the most importantcommands from the menu bar. Insert afunction block as a new object.STEP 7 Getting StartedC79000-P7076-C48-01 5-1
  38. 38. Creating a Program with Function Blocks and Data BlocksIn the "Properties – Function Block"dialog box, select the language inwhich you want to create the block,activate the check box "Multipleinstance FB," and confirm theremaining settings with OK.The function block FB1 has beeninserted in the Blocks folder.Double-click FB1 to open theLAD/STL/FBD program window.Depending on which programming language you have selected, continue reading in eitherSection 5.2 for Ladder Logic, Section 5.3 for Statement List, or Section 5.4 for FunctionBlock Diagram.You can find more information under Help >Contents in the topics "Programming Blocks" and"Creating Blocks and Libraries."STEP 7 Getting Started5-2 C79000-P7076-C48-01
  39. 39. Creating a Program with Function Blocks and Data Blocks5.2 Programming FB1 in Ladder LogicWe will now show you how to program a function block which can, for example,control and monitor a petrol or diesel engine using two different data blocks.All "engine-specific" signals are passed on as block parameters from theorganization block to the function block and must therefore be listed in the variabledeclaration table as input and output parameters (declaration "in" and "out").You should already know how to enter a series circuit, a parallel circuit, and amemory function with STEP 7.Declare / Define Variables FirstYour LAD/STL/FBD program window isopen and the option View > LAD(programming language) is activated.Note that FB1 is now in the header,because you double-clicked FB1 toopen the program window.The variable declaration area consists of a variable overview (left pane) and of thevariable detail view (right pane).In the variable overview, select the declaration types "IN", "OUT" and "STAT" oneafter the other and enter the following declarations into the corresponding variabledetails.In the variable overview, click the corresponding cells and apply the entries fromthe subsequent figures. You can select the data type from the pull-down listdisplayed.STEP 7 Getting StartedC79000-P7076-C48-01 5-3
  40. 40. Creating a Program with Function Blocks and Data BlocksOnly letters, numbers, and the underscore are permittedcharacters for the names of the block parameters in thevariable declaration table.If all the columns required are not displayed in yourvariable details, you can display it via the shortcut menucommand (via a right-mouse click).Programming an Engine to Switch On and OffInsert a normally open contact, anormally closed contact, and an SRelement in series in Network 1 usingthe corresponding buttons in thetoolbar or the Program Elementscatalog.Then select the current pathimmediately before the input R.Insert another normally open contact.Select the current path immediatelybefore this contact.Insert a normally closed contactparallel to the normally open contact.STEP 7 Getting Started5-4 C79000-P7076-C48-01
  41. 41. Creating a Program with Function Blocks and Data BlocksCheck whether symbolicrepresentation is activated.Select the question marks and enter the corresponding names from the variabledeclaration table (the # sign is assigned automatically).Enter the symbolic name "Automatic_Mode" for the normally closed contact in theseries circuit.Then save your program.Local block variables are indicated with a # sign and are only valid in theblock.Global variables appear in quotation marks. These are defined in thesymbol table and are valid for the entire program.The signal state "Automatic_Mode" is defined in OB1 (Network 3; see page4-7) by another SR element and now queried in FB1.STEP 7 Getting StartedC79000-P7076-C48-01 5-5
  42. 42. Creating a Program with Function Blocks and Data BlocksProgramming Speed MonitoringProgramming Speed MonitoringInsert a new network and select thecurrent path.Then navigate in the ProgramElements catalog until you reach theCompare function and insert aCMP>=I.Also insert a coil in the current path.Select the question marks again and label the coil and the comparator with thenames from the variable declaration table.Then save your program.When is the engine switched on and off?When the variable #Switch_On has signal state "1" and the variable "Automatic_Mode" hassignal state "0," the engine is switched on. This function is not enabled until"Automatic_Mode" is negated (normally closed contact).When the variable #Switch_Off has signal state "1" or the variable #Fault has signal state"0," the engine is switched off. This function is achieved again by negating #Fault (#Fault isa "zero-active" signal and has the signal "1" in the normal state and "0" if a fault occurs).How does the comparator monitor the engine speed?The comparator compares the variables #Actual_Speed and #Setpoint_Speed and assignsthe result of the variables to #Setpoint_Speed_Reached (signal state "1").You can find more information under Help >Contents in the topics "Programming Blocks,""Creating Logic Blocks," and "Editing the VariableDeclaration" or in "Editing LAD Instructions."STEP 7 Getting Started5-6 C79000-P7076-C48-01
  43. 43. Creating a Program with Function Blocks and Data Blocks5.3 Programming FB1 in Statement ListWe will now show you how to program a function block which can, for example,control and monitor a petrol or diesel engine using two different data blocks.All "engine-specific" signals are passed on as block parameters from theorganization block to the function block and must therefore be listed in the variabledeclaration table as input and output parameters (declaration "in" and "out").You should already know how to enter an AND instruction, an OR instruction, andthe set/reset memory instructions with STEP 7.Declare / Define Variable FirstYour LAD/STL/FBD program window isopen and the option View > STL(programming language) is activated.Note that FB1 is now in the header,because you double-clicked FB1 toopen the program window.The variable declaration area consists of a variable overview (left pane) and of thevariable detail view (right pane).In the variable overview, select the declaration types "IN", "OUT" and "STAT" oneafter the other and enter the subsequent declarations into the correspondingvariable details.In the variable overview, click the corresponding cells and apply the entries fromthe subsequent figures. You can select the data type from the pull-down listdisplayed.STEP 7 Getting StartedC79000-P7076-C48-01 5-7
  44. 44. Creating a Program with Function Blocks and Data BlocksOnly letters, numbers, and the underscore are permittedcharacters for the names of the block parameters in thevariable declaration table.Programming an Engine to Switch On and OffProgramming an Engine to Switch On and OffCheck whether symbolicrepresentation is activated.Enter the corresponding instructions inNetwork 1.Local block variables are indicated with a # sign andare only valid in the block.Global variables appear in quotation marks. Theseare defined in the symbol table and are valid for theentire program.The signal state "Automatic_Mode" is defined inOB1 (Network 3; see page 4-10) by another SRelement and now queried in FB1.STEP 7 Getting Started5-8 C79000-P7076-C48-01
  45. 45. Creating a Program with Function Blocks and Data BlocksProgramming Speed MonitoringProgramming Speed MonitoringInsert a new network and enter thecorresponding instructions. Then saveyour program.When is the engine switched on and off?When the variable #Switch_On has signal state "1" and the variable "Automatic_Mode" hassignal state "0," the engine is switched on. This function is not enabled until"Automatic_Mode" is negated (normally closed contact).When the variable #Switch_Off has signal state "1" or the variable #Fault has signal state"0," the engine is switched off. This function is achieved again by negating #Fault (#Fault isa "zero-active" signal and has the signal "1" in the normal state and "0" if a fault occurs).How does the comparator monitor the engine speed?The comparator compares the variables #Actual_Speed and #Setpoint_Speed and assignsthe result of the variables to #Setpoint_Speed_Reached (signal state "1").You can find more information under Help >Contents in the topics "Programming Blocks,""Creating Logic Blocks," and "Editing the VariableDeclaration" or in "Editing STL Statements."STEP 7 Getting StartedC79000-P7076-C48-01 5-9
  46. 46. Creating a Program with Function Blocks and Data Blocks5.4 Programming FB1 in Function Block DiagramWe will now show you how to program a function block which can, for example,control and monitor a petrol or diesel engine using two different data blocks.All "engine-specific" signals are passed on as block parameters from theorganization block to the function block and must therefore be listed in the variabledeclaration table as input and output parameters (declaration "in" and "out").You should already know how to enter an AND function, an OR function, and amemory function with STEP 7.Declare / Define Variables FirstYour LAD/STL/FBD program window isopen and the option View > FBD(programming language) is activated.Note that FB1 is now in the header,because you double-clicked FB1 toopen the program window.The variable declaration area consists of a variable overview (left pane) and thevariable detail view (right pane).In the variable overview, select the declaration types "IN", "OUT" and "STAT" oneafter the other and enter the subsequent declarations into the correspondingvariable details.In the variable overview, click the corresponding cells and apply the entries fromthe subsequent figures. You can select the data type from the pull-down listdisplayed.STEP 7 Getting Started5-10 C79000-P7076-C48-01
  47. 47. Creating a Program with Function Blocks and Data BlocksProgramming an Engine to Switch On and OffProgramming an Engine to Switch On and OffInsert an SR function in Network 1using the Program Elements catalog(Bit Logic folder).Add an AND box at input S (Set), andan OR box at input R (Reset).Check whether symbolicrepresentation is activated.Local block variables are indicated with a # signand are only valid in the block.Global variables appear in quotation marks.These are defined in the symbol table and arevalid for the entire program.STEP 7 Getting StartedC79000-P7076-C48-01 5-11
  48. 48. Creating a Program with Function Blocks and Data BlocksClick the ??.? sign and enter the corresponding names from the declaration table(the # sign is assigned automatically).Make sure that one input of the AND function is addressed with the symbolicname "Automatic_Mode."Negate the inputs "Automatic_Mode" and #Fault with the corresponding buttonfrom the toolbar.Then save your program.Local block variables are indicated with a # sign and are onlyvalid in the block.Global variables appear in quotation marks. These aredefined in the symbol table and are valid for the entireprogram.The signal state "Automatic_Mode" is defined in OB1(Network 3; see page 4-14) by another SR element and nowqueried in FB1.STEP 7 Getting Started5-12 C79000-P7076-C48-01
  49. 49. Creating a Program with Function Blocks and Data BlocksProgramming Speed MonitoringProgramming Speed MonitoringInsert a new network and select theinput area.Then navigate in the ProgramElements catalog under you reach theCompare function, and insert aCMP>=I.Append an output assignment to the comparator and address the inputs with thenames from the variable declaration table.Then save your program.When is the engine switched on and off?When the variable #Switch_On has signal state "1" and the variable "Automatic_Mode" hassignal state "0," the engine is switched on. This function is not enabled until"Automatic_Mode" is negated (normally closed contact).When the variable #Switch_Off has signal state "1" or the variable #Fault has signal state"0," the engine is switched off. This function is achieved again by negating #Fault (#Fault isa "zero-active" signal and has the signal "1" in the normal state and "0" if a fault occurs).How does the comparator monitor the engine speed?The comparator compares the variables #Actual_Speed and #Setpoint_Speed and assignsthe result of the variables to #Setpoint_Speed_Reached (signal state "1").You can find more information under Help >Contents in the topics "Programming Blocks,""Creating Logic Blocks," and "Editing the VariableDeclaration" or in "Editing FBD Instructions."STEP 7 Getting StartedC79000-P7076-C48-01 5-13
  50. 50. Creating a Program with Function Blocks and Data Blocks5.5 Generating Instance Data Blocks and Changing ActualValuesYou have just programmed the function block FB1 ("Engine") and defined, amongother things, the engine-specific parameters in the variable declaration table.In order for you to be able to program the call for the function block in OB1 lateron, you must generate the corresponding data block. An instance data block (DB)is always assigned to a function block.The function block is to control and monitor a petrol or diesel engine. The differentsetpoint speeds of the engines are stored in two separate data blocks, in whichthe actual value (#Setpoint_Speed) is changed.By centrally programming the function block only once, you can cut down on theamount of programming involved.The "Getting Started" project is open inthe SIMATIC Manager.Navigate to the Blocks folder and clickin the right half of the window with theright mouse button.Insert a data block using the pop-upmenu with the right mouse button.Apply the name DB1 in the “PropertiesData Block“ dialog box, then select theapplication “Instance DB“ in theadjacent pull-down list and apply thename of the function block "FB1"assigned. Apply all the settingsdisplayed in the "Properties" dialog boxwith OK.The data block DB1 is added to the"Getting Started" project.Double-click to open DB1.STEP 7 Getting Started5-14 C79000-P7076-C48-01
  51. 51. Creating a Program with Function Blocks and Data BlocksConfirm the subsequent dialog withYes to assign parameters to theinstance data blocks.Next enter the value "1500" for thepetrol engine in the Actual Valuecolumn (in the row "Setpoint_Speed).You have now defined the maximumspeed for this engine.Save DB1 and close the programwindow.In the same way as for DB1, generateanother data block, DB2, for FB1.Now enter the actual value "1200" forthe diesel engine.Save DB2 and close the programwindow.By changing the actual values, you have finished your preparations for controlling twoengines with just one function block. To control more engines, all you have to do is generateadditional data blocks.The next thing you have to do is program the call for the function block in OB1. To do this,continue reading in Section 5.6 for Ladder Logic, Section 5.7 for Statement List, orSection 5.8 for Function Block Diagram, depending on the programming language you areusing.You can find more information under Help > Contentsin the topics "Programming Blocks" and "CreatingData Blocks."STEP 7 Getting StartedC79000-P7076-C48-01 5-15
  52. 52. Creating a Program with Function Blocks and Data Blocks5.6 Programming a Block Call in Ladder LogicAll the work you have done programming a function block is of no use unless youcall this block in OB1. A data block is used for each function block call, and in thisway, you can control both engines.DB1Petrol EngineDataFB1"Engine"OB1CallDB2Diesel EngineDataThe SIMATIC Manager is open withyour "Getting Started" project.Navigate to the Blocks folder andopen OB1.Select network 3 and then insertnetwork 4 in the LAD/STL/FBDprogram window.In the program elements catalognavigate to FB1 and insert it via adouble-click.Insert a normally open contact in frontof each of the following: Switch_On,Switch_Off, and Fault.Click the ??? sign above "Engine" andthen, keeping the cursor in the sameposition, click in the input frame withthe right mouse button.Click on Insert Symbol in the shortcutmenu via a right-click on mouse button.A pull-down list is displayed.STEP 7 Getting Started5-16 C79000-P7076-C48-01
  53. 53. Creating a Program with Function Blocks and Data BlocksDouble-click the data block Petrol.This block is then enteredautomatically in the input frame inquotation marks.Click the question marks and after entering a quotation mark address all the otherparameters of the function block using the corresponding symbolic names in thepull-down list.The engine-specific input and outputvariables (declaration "in" and "out")are displayed in the FB "Engine."A signal "PE_xxx" is assigned toeach of the variables for the petrolengine.STEP 7 Getting StartedC79000-P7076-C48-01 5-17
  54. 54. Creating a Program with Function Blocks and Data BlocksProgram the call for the function block "Engine" (FB1) with the data block "Diesel"(DB2) in a new network and use the corresponding addresses from the pull-downlist.A signal "DE_xxx" isassigned to each of thevariables for the dieselengine.Save your program and close theblock.When you create program structures with organization blocks, function blocks, and datablocks, you must program the call for subordinate blocks (such as FB1) in the block abovethem in the hierarchy (for example, OB1). The procedure is always the same.You can also give the various blocks symbolic names in the symbol table (for example,FB1 has the name "Engine" and DB1 the name "Petrol").You can archive or print out the programmed blocks at any time. The correspondingfunctions can be found in the SIMATIC Manager under the menu commands File >Archive or File > Print.You can find more information under Help > Contentsin the topics "Calling Reference Helps" under"Language Description: LAD," and "Program ControlInstructions."STEP 7 Getting Started5-18 C79000-P7076-C48-01
  55. 55. Creating a Program with Function Blocks and Data Blocks5.7 Programming a Block Call in Statement ListAll the work you have done programming a function block is of no use unless youcall this block in OB1. A data block is used for each function block call, and in thisway, you can control both engines.DB1Petrol EngineDataFB1"Engine"OB1CallDB2Diesel EngineDataThe SIMATIC Manager is open withyour "Getting Started" project.Navigate to the Blocks folder andopen OB1.Select network 3 and then insertnetwork 4 in the LAD/STL/FBDprogram window.Type CALL "Engine", "Petrol" in thecode section and then press Enter.All the parameters of the function block"Petrol" are displayed.Position the cursor after the equalssign of Switch_On and press the rightmouse button.Click on Insert Symbol in the shortcutmenu via a right-click on mouse button.A pull-down list is displayed.STEP 7 Getting StartedC79000-P7076-C48-01 5-19
  56. 56. Creating a Program with Function Blocks and Data BlocksClick the name Switch_On_PE. This istaken from the pull-down list andadded automatically in quotationmarks.Assign all the required addresses tothe variables of the function blockusing the pull-down list.A signal "PE_xxx" is assignedto each of the variables forthe petrol engine.Program the call for the function block"Engine" (FB1) with the data block"Diesel" (DB2) in a new network.Proceed in the same way as for theother call.Save your program and close theblock.When you create program structures with organization blocks, function blocks, and datablocks, you must program the call for subordinate blocks (such as FB1) in the block abovethem in the hierarchy (for example, OB1). The procedure is always the same.You can also give the various blocks symbolic names in the symbol table (for example, FB1has the name "Engine" and DB1 the name "Petrol").You can archive or print out the programmed blocks at any time. The correspondingfunctions can be found in the SIMATIC Manager under the menu commands File >Archive or File > Print.You can find more information under Help > Contentsin the topics "Calling Reference Helps" under"Language Description: STL," and "Program ControlInstructions."STEP 7 Getting Started5-20 C79000-P7076-C48-01
  57. 57. Creating a Program with Function Blocks and Data Blocks5.8 Programming a Block Call in Function Block DiagramAll the work you have done programming a function block is of no use unless youcall this block in OB1. A data block is used for each function block call, and in thisway, you can control both engines.DB1Petrol EngineDataFB1"Engine"OB1CallDB2Diesel EngineDataThe SIMATIC Manager is open withyour "Getting Started" project.Navigate to the Blocks folder andopen OB1.Select network 3 and then insertnetwork 4 in the LAD/STL/FBDprogram window.Then navigate in the ProgramElements catalog until you reach FB1and insert this block.All the engine-specific input and outputvariables are displayed.Click the ??? sign above "Engine" andthen, keeping the cursor in the sameposition, click in the input frame withthe right mouse button.Click on Insert Symbol in the shortcutmenu via a right-click on mouse button.A pull-down list is displayed.STEP 7 Getting StartedC79000-P7076-C48-01 5-21
  58. 58. Creating a Program with Function Blocks and Data BlocksDouble-click the data block Petrol. It istaken from the pull-down list andentered automatically in the inputframe in quotation marks.Address all the other parameters of the function block using the correspondingsymbolic names in the pull-down list.A signal "PE_xxx" is assignedto each of the variables for thepetrol engine.STEP 7 Getting Started5-22 C79000-P7076-C48-01
  59. 59. Creating a Program with Function Blocks and Data BlocksProgram the call for the function block "Engine" (FB1) with the data block "Diesel"(DB2) in a new network and use the corresponding addresses from the pull-downlist.A signal "DE_xxx" is assigned toeach of the variables for thediesel engine.Save your program and close theblock.When you create program structures with organization blocks, function blocks, and datablocks, you must program the call for subordinate blocks (such as FB1) in the block abovethem in the hierarchy (for example, OB1). The procedure is always the same.You can also give the various blocks symbolic names in the symbol table (for example, FB1has the name "Engine" and DB1 the name "Petrol").You can archive or print out the programmed blocks at any time. The correspondingfunctions can be found in the SIMATIC Manager under the menu commands File > Archiveor File > Print.You can find more information under Help > Contentsin the topics "Calling Reference Helps" under"Language Description: FBD," and "Program ControlInstructions."STEP 7 Getting StartedC79000-P7076-C48-01 5-23
  60. 60. Creating a Program with Function Blocks and Data BlocksSTEP 7 Getting Started5-24 C79000-P7076-C48-01
  61. 61. 6 Configuring the Central Rack6.1 Configuring HardwareYou can configure the hardware once you have created a project with a SIMATICstation. The project structure which was created with the STEP 7 Wizard inSection 2.1 meets all the requirements for this.The hardware is configured with STEP 7. These configuration data are transferredto the programmable controller later on "downloading" (see Chapter 7).The starting point is the open SIMATICManager together with the "GettingStarted" project.Open the SIMATIC 300 Station folderand double-click the Hardwaresymbol.The "HW Config“ window opens. The CPU you selected on creating the project isdisplayed. For the "Getting Started" project, this is CPU 314.Rack with individual slotsHardwareCatalogShort information on theselected elementConfiguration table with the MPIand I/O addressesSTEP 7 Getting StartedC79000-P7076-C48-01 6-1
  62. 62. Configuring the Central RackFirst you require a power supplymodule. Navigate in the catalog untilyou reach the PS307 2A and drag anddrop this onto slot 1.Navigate until you find the inputmodule (DI, Digital Input) SM321DI32xDC24V and insert this in slot 4.Slot 3 remains empty.In the same way, insert the outputmodule SM322 DO32xDC24V/0.5A inslot 5.In order to change the parameters (for example, address) of a module within aproject, double-click the module. However, you should only change theparameters if you are sure you know what effects the changes will have on yourprogrammable controller.No changes are necessary for the "Getting Started" project.The data are prepared for transfer tothe CPU using the menu commandSave and Compile.Once you close the "HW Config"application, the System Data symbolwill appear in the Blocks folder.You can also check your configuration for errors using the menu command Station >Consistency Check. STEP 7 will provide you with possible solutions to any errors whichmay have occurred.You can find more information under Help > Contents inthe topics "Configuring theHardware" and "ConfiguringCentral Racks."STEP 7 Getting Started6-2 C79000-P7076-C48-01
  63. 63. 7 Downloading and Debugging the Program7.1 Establishing an Online ConnectionUsing the supplied project "GS-LAD_Example" or the "Getting Started" project youhave created and a simple test configuration, we will show you how to downloadthe program to the programmable logic controller (PLC) and then debug it.You should have:• Configured the hardware for the "Getting Started" project (see Chapter 6)• Set up the hardware according to the installation manualExample of a series circuit (AND function):Output Q 4.0 is not to light up (diode Q 4.0 lights up on the digital output module)unless both Key I 0.1 and Key I 0.2 are pressed. Set up the test configurationbelow using wires and your CPU.Programmingdevice withSTEP 7softwareXXConnection bridgePower supply(on / off)Operating modekeyswitchXX XXXX XXI 0.1I 0.2Q 4.0Programming devicecableRackSTEP 7 Getting StartedC79000-P7076-C48-01 7-1
  64. 64. Downloading and Debugging the ProgramConfiguring the HardwareTo assemble a module on the rail, proceed in the order given below:• Attach the module onto the bus connector• Hang the module on the rail and swing it downwards• Screw the module in place• Assemble the remaining modules• Insert the key in the CPU once you have finished assembling all the modules.You can find more information on configuring thecentral rack in the manuals "S7-300, Hardware andInstallation / Module Specifications" and "S7-400 /M7-400 – Hardware."You can still carry out the test even if you are using different hardware to that shown in thediagram. You simply have to keep to the addressing of the inputs and outputs.STEP 7 offers you various ways of debugging your program; for example, using theprogram status or by means of the variable table.STEP 7 Getting Started7-2 C79000-P7076-C48-01
  65. 65. Downloading and Debugging the Program7.2 Downloading the Program to the Programmable ControllerYou must have already established an online connextion in order tp download theprogram...................................................................................................................Applying VoltageSwitch on the power supply using theON/OFF switch. The diode "DC 5V"will light up on the CPU.Turn the operating mode switch to theSTOP position (if not already inSTOP). The red "STOP" LED will lightup.Resetting the CPU and Switching it to RUNTurn the operating mode switch to theMRES position and hold it there for atleast 3 seconds until the red "STOP"LED starts flashing slowly.Release the switch and, after amaximum of 3 seconds, turn it to theMRES position again. When the"STOP" LED flashes quickly, the CPUhas been reset.If the "STOP" LED does not startflashing quickly, repeat the procedure.Downloading the Program to the CPUNow turn the operating mode switch to"STOP" again to download theprogram.A memory reset deletesall the data on the CPU.The CPU is then in theinitial state.STEP 7 Getting StartedC79000-P7076-C48-01 7-3
  66. 66. Downloading and Debugging the ProgramStart the SIMATIC Manager and openthe "Getting Started" project in the"Open" dialog box (if it is not alreadyopen).In addition to the "Getting StartedOffline" window, open the "GettingStarted ONLINE" window. The onlineor offline status is indicated by thedifferent colored headers.Navigate in both windows to theBlocks folder.The offline window shows the situationon the programming device; the onlinewindow shows the situation on theCPU.Select the Blocks folder in the offlinewindow and then download theprogram to the CPU using the menucommand PLC > Download.Confirm the prompt with OK.The program blocks are displayed inthe online window when you downloadthem.The system functions (SFCs) remain inthe CPU even though you have carriedout a memory reset. The CPU providesthese functions of the operating system.They do not have to be downloaded, butthey cannot be deleted.You can also call the menu commandPLC > Download using thecorresponding button in the toolbar orfrom the pop-up menu using the rightmouse button.STEP 7 Getting Started7-4 C79000-P7076-C48-01
  67. 67. Downloading and Debugging the ProgramSwitching on the CPU and Checking the Operating ModeTurn the operating mode switch toRUN-P. The green "RUN" LED lightsup and the red "STOP" LED goes out.The CPU is ready for operation.When the green LED lights up, you canstart testing the program.If the red LED remains lit, an error hasoccurred. You would then have toevaluate the diagnostic buffer in orderto diagnose the error.You can find more information under Help >Contents and then under "Downloading andUploading" and under "Establishing an OnlineConnection and Making CPU Settings".Downloading individual blocksIn order to react to errors quickly in practice, blocks can be transferred individually to theCPU using the drag and drop function.When you download blocks, the operating mode switch on the CPU must be in either"RUN-P" or "STOP" mode. Blocks downloaded in "RUN-P" mode are activated immediately.You should therefore remember the following:• If error-free blocks are overwritten with faulty blocks, this will lead to a plant failure. Youcan avoid this by testing your blocks before you download them.• If you do not observe the order in which blocks are to be downloaded – first thesubordinate blocks and then the higher-level blocks – the CPU will go into "STOP"mode. You can avoid this by downloading the entire program to the CPU.Programming onlineIn practice, you may need to change the blocks already downloaded to the CPU for testpurposes. To do this, double-click the required block in the online window to open theLAD/STL/FBD program window. Then program the block as usual. Note that theprogrammed block immediately becomes active in your CPU.STEP 7 Getting StartedC79000-P7076-C48-01 7-5
  68. 68. Downloading and Debugging the Program7.3 Testing the Program with Program StatusUsing the program status function, you can test the program in a block. Therequirement for this is that you have established an online connection to the CPU,the CPU is in RUN or RUN-P mode, and the program has been downloaded.Open OB1 in the project window"Getting Started ONLINE."The LAD/STL/FBD program window isopened.Activate the function Debug >Monitor.Debugging with Ladder LogicThe series circuit in Network 1 isdisplayed in Ladder Logic. The currentpath is represented as a full line up toKey 1 (I 0.1); this means that power isalready being applied to the circuit.Debugging with Function Block DiagramThe signal state is indicated by "0" and"1." The dotted line means that there isno result of logic operation.Debugging with Statement ListFor Statement List the following isdisplayed in tabular form:– Result of logic operation (RLO)– Status bit (STA)– Standard status (STANDARD)Using Options > Customizeyou can change the way inwhich the programminglanguage is represented duringtesting.STEP 7 Getting Started7-6 C79000-P7076-C48-01
  69. 69. Downloading and Debugging the ProgramNow press both keys in your testconfiguration.The diodes for input I 0.1 and I 0.2 lightup on the input module.The diode for output Q 4.0 lights up onthe output module.In the graphic programming languagesLadder Logic and Function BlockDiagram, you can trace the test resultby following the change in color in theprogrammed network. This colorchange shows that the result of logicoperation is fulfilled up to this point.With the Statement List programminglanguage, the display in the STA andRLO columns changes when the resultof logic operation is fulfilled.Deactivate the function Debug >Monitor and close the window.Then close the online window in theSIMATIC Manager.I 0.1I 0.2You can find more information under Help > Contentsin the topics "Debugging" and "Testing with ProgramStatus."We recommend you do not completely download extensive programs onto the CPU to runthem, because diagnosing errors is more difficult due to the number of possible sources ofan error. Instead, you should download blocks individually and then test them in order toobtain a better overview.STEP 7 Getting StartedC79000-P7076-C48-01 7-7
  70. 70. Downloading and Debugging the Program7.4 Testing the Program with the Variable TableYou can test individual program variables by monitoring and modifying them. Therequirement for this is that you have established an online connection to the CPU,the CPU is in RUN-P mode, and the program has been downloaded.As with testing with program status, you can monitor the inputs and outputs inNetwork 1 (series circuit or AND function) in the variable table. You can also testthe comparator for the engine speed in FB1 by presetting the actual speed.Creating the Variable TableThe starting point is the SIMATICManager again with the open projectwindow "Getting Started Offline."Navigate to the Blocks folder and clickin the right half of the window with theright mouse button.Use the right mouse button to insert aVariable Table from the pop-up menu.Apply the default settings by closingthe "Properties" dialog box with OK.Alternatively, you can assign a symbolname to the variable table and enter asymbol comment.A VAT1 (variable table) is created inthe Blocks folder.Double-click to open VAT1; the"Monitoring and Modifying Variables"window will open.STEP 7 Getting Started7-8 C79000-P7076-C48-01
  71. 71. Downloading and Debugging the ProgramAt first, the variable table is empty. Enter the symbolic names or the addresses forthe "Getting Started" example according to the illustration below. The remainingdetails will be added when you complete your entry with Enter.Change the status format of all the speed values to DEC (decimal) format. To dothis, click the corresponding cell and select DEC format using the right mousebutton.Save your variable table.Switching the Variable Table OnlineEstablish a connection to theconfigured CPU. The operating modeof the CPU is displayed in the statusbar.Set the keyswitch of the CPU toRUN-P (if you have not already doneso).STEP 7 Getting StartedC79000-P7076-C48-01 7-9
  72. 72. Downloading and Debugging the ProgramMonitoring VariablesMonitoring VariablesClick the Monitor Variables button inthe toolbar.Press Key 1 and Key 2 in your testconfiguration and monitor the result inthe variable table.The status values in the variable tablewill change from false to true.Modifying VariablesEnter the value "1500" for the address MW2 in the Modify Value column and"1300" for the address MW4.Transfer the modify values to yourCPU.STEP 7 Getting Started7-10 C79000-P7076-C48-01
  73. 73. Downloading and Debugging the ProgramFollowing transfer, these values will be processed in your CPU. The result of thecomparison becomes visible.Stop monitoring the variables (click the button in the toolbar again) and close thewindow. Acknowledge any queries with Yes or OK.You can find more information under Help > Contentsin the topics "Debugging" under "Testing with theVariable Table."Very large variable tables often cannot be displayed fully due to the limited screen space.If you have large variable tables, we recommend you create several tables for oneS7 program using STEP 7. You can adapt the variable tables to precisely match your owntest requirements.You can assign individual names to variable tables in the same way as for blocks (forexample, the name OB1_Network1 instead of VAT1). Use the symbol table to assign newnames.STEP 7 Getting StartedC79000-P7076-C48-01 7-11
  74. 74. Downloading and Debugging the Program7.5 Evaluating the Diagnostic BufferIf, in an extreme case, the CPU goes into STOP while processing an S7 program,or if you cannot switch the CPU to RUN after you have downloaded the program,you can determine the cause of the error from the events listed in the diagnosticbuffer.The requirement for this is that you have established an online connection to theCPU and the CPU is in STOP mode.First turn the operating mode switch onthe CPU to STOP.The starting point is the SIMATICManager again with the open projectwindow "Getting Started Offline."Select the Blocks folder.If there are several CPUs in yourproject, first determine which CPU hasgone into STOP.All the accessible CPUs are listed inthe "Diagnosing Hardware" dialog box.The CPU with the STOP operatingmode is highlighted.The "Getting Started" project only hasone CPU which is displayed.Click Module Information to evaluatethe diagnostic buffer of this CPU.If only one CPU is connected, you canquery the module information for thisCPU directly using the menu commandPLC > Diagnostic/Setting > ModuleInformation.STEP 7 Getting Started7-12 C79000-P7076-C48-01
  75. 75. Downloading and Debugging the ProgramThe "Module Information" window provides you with information on the propertiesand parameters of your CPU. Now select the "Diagnostic Buffer" tab to determinethe cause of the STOP state.The latest event (number 1) is at the top of the list. The cause of the STOP state isdisplayed. Close all windows except for the SIMATIC Manager.The "Open Block" button isdisabled, because there was noerror in the block in the "GettingStarted" project.If a programming error caused the CPU to go into STOP mode, select the event and clickthe "Open Block" button.The block is then opened in the familiar LAD/STL/FBD program window and the faultynetwork is highlighted.With this chapter you have successfully completed the "Getting Started" sample project,from creating a project through to debugging the finished program. In the next chapters,you can extend your knowledge further by working through selected exercises.You can find more information under Help > Contentsunder "Diagnostics" in the topic "Calling the ModuleInformation."STEP 7 Getting StartedC79000-P7076-C48-01 7-13
  76. 76. Downloading and Debugging the ProgramSTEP 7 Getting Started7-14 C79000-P7076-C48-01
  77. 77. 8 Programming a Function8.1 Creating and Opening Functions (FC)Functions, like function blocks, are below the organization block in the programhierarchy. In order for a function to be processed by the CPU, it must also becalled in the block above it in the hierarchy. In contrast to the function block,however, no data block is necessary.With functions, the parameters are also listed in the variable declaration table, butstatic local data are not permitted.You can program a function in the same way as a function block using theLAD/STL/FBD program window.You should already be familiar with programming in Ladder Logic, Function BlockDiagram, or Statement List (see Chapters 4 and 5) and also symbolicprogramming (see Chapter 3).If you have worked through the"Getting Started" sample project inChapters 1 to 7, open this now.If not, create a new project in theSIMATIC Manager using the menucommand File > "New Project"Wizard. To do this, follow theinstructions in Section 2.1 and renamethe project "Getting Started Function."We will continue with the "GettingStarted" project. However, you can stillcarry out each step using a newproject.Navigate to the Blocks folder andopen it.Click in the right half of the windowwith the right mouse button.STEP 7 Getting StartedC79000-P7076-C48-01 8-1
  78. 78. Programming a FunctionInsert a Function (FC) from thepop-up menu.In the "Properties – Function" dialogbox, accept the name FC1 and selectthe required programming language.Confirm the remaining default settingswith OK.The function FC1 is added to theBlocks folder.Double-click to open FC1.You can find more information under Help > Contents in thetopics "Working Out the Automation Concept," "Basics ofDesigning a Program Structure," and "Blocks in the UserProgram".In contrast to the function block, no static data can be defined in the variable declarationtable for a function.The static data defined in a function block are retained when the block is closed. Static datacan be, for example, the memory bits used for the "Speed" limit values (see Chapter 5).To program the function, you can use the symbolic names from the symbol table.STEP 7 Getting Started8-2 C79000-P7076-C48-01
  79. 79. Programming a Function8.2 Programming FunctionsIn this section, you will program a timer function in our example. The timer functionenables a fan to switch on as soon as an engine is switched on (see Chapter 5),and the fan then continues running for four seconds after the engine is switchedoff (off-delay).As mentioned earlier, you must specify the input and output parameters of thefunction ("in" and "out" declaration) in the variable detail view.The LAD/STL/FBD program window is open. You work with this variable detailview in the same way as with the detail view for the function block (see Chapter 5).Enter the following declarations:Programming the Timer Function in Ladder LogicSelect the current path for entering theLadder instruction.Navigate in the Program Elementscatalog until you reach the elementS_OFFDT (start off-delay timer), andselect the element.Insert a normally open contact in frontof input S.Insert a coil after output Q.STEP 7 Getting StartedC79000-P7076-C48-01 8-3
  80. 80. Programming a FunctionSelect the question marks, enter "#" and select the corresponding names.Set the delay time at input TV of S_OFFDT. Here, S5T#4s means that a constanthas been defined with the data type S5Time#(S5T#), lasting four seconds (4s).Then save the function and close the window.Programming the Timer Function in Statement ListIf you are programming in StatementList, select the input area below thenetwork and enter the statement asshown here.Then save the function and close thewindow.The "#Timer_Function" is started withthe input parameter "#Engine_On." Lateron when the function is called in OB1, itwill be supplied once with theparameters for the petrol engine andonce with the parameters for the dieselengine (for example, T1 for"PE_Follow_on"). You will enter thesymbolic names of these parameterslater in the symbol table.STEP 7 Getting Started8-4 C79000-P7076-C48-01
  81. 81. Programming a FunctionProgramming the Timer Function in Function Block DiagramIf you are programming in Function Block Diagram, select the input area below thenetwork and enter the FBD program below for the timer function.Then save the function and close the window.In order for the timer function to be processed, you need to call the function in a blockwhich is higher up in the block hierarchy (in our example, in OB1).You can find more information under Help >Contents in the topics "Calling Reference Helps,""The STL, FBD, or LAD Language Description,"and "Timer Instructions."STEP 7 Getting StartedC79000-P7076-C48-01 8-5
  82. 82. Programming a Function8.3 Calling the Function in OB1The call for the function FC1 is carried out in a similar way to the call for thefunction block in OB1. All the parameters of the function are supplied in OB1 withthe corresponding addresses of the petrol or diesel engine.Since these addresses are not yet defined in the symbol table, the symbolicnames of the addresses will now be added.The SIMATIC Manager is open withthe "Getting Started" project or yournew project.Navigate to the Blocks folder andopen OB1.The LAD/STL/FBD program windowopens.An address is part of a STEP 7 statement and specifieswhat the processor should execute the instruction on.Addresses can be absolute or symbolic.Programming the Call in Ladder LogicYou are in LAD view. Select networkNo. 5 and insert a new network No. 6.Then navigate in the ProgramElements catalog until you reach FC1and insert the function.Insert a normally open contact in frontof "Engine_On."Click the question marks for the FC1 call and insert the symbolic names.Using the menu command View >Display > Symbolic Representation,you can toggle between symbolic andabsolute addresses.STEP 7 Getting Started8-6 C79000-P7076-C48-01
  83. 83. Programming a FunctionProgram the call for the function FC1 in Network 7 using the addresses for thediesel engine. You can do this in the same way as for the previous network (youhave already added the addresses for the diesel engine to the symbol table).Save the block and then close thewindow.Activate the menu command View >Display > SymbolInformation to view the information on individual addresses ineach network.To display several networks on the screen, deactivate the menucommand View > Display > Comment and, if necessary View >Display > Symbol Information.Using the menu command View > Zoom Factor, you canchange the size of the networks displayed.STEP 7 Getting StartedC79000-P7076-C48-01 8-7
  84. 84. Programming a FunctionProgramming the Call in Statement ListProgramming the Call in Statement ListIf you are programming in StatementList, select the input area below a newnetwork and enter the STL statementsshown here.Then save the call and close thewindow.Programming the Call in Function Block DiagramIf you are programming in Function Block Diagram, select the input area below anew network and enter the FBD instructions shown below.Then save the call and close the window.The call for the functions was programmed as an unconditional call in our example; that is,the function will always be processed.Depending on the requirements of your automation task, you can make the call for afunction or function block dependent on certain conditions; for example, an input or apreceding logic operation. The EN input and the ENO output are provided in the box forprogramming conditions.You can find more information under Help >Contents and then under "Calling ReferenceHelps," in the topics "The LAD, FBD, or STLLanguage Description".STEP 7 Getting Started8-8 C79000-P7076-C48-01
  85. 85. 9 Programming a Shared Data Block9.1 Creating and Opening Shared Data BlocksIf there are not enough internal memory bits in a CPU to save all the data, you canstore specific data in a shared data block.The data in a shared data block are available to every other block. An instancedata block, on the other hand, is assigned to one specific function block, and itsdata are only available locally in this function block (see Section 5.5).You should already be familiar with programming in Ladder Logic, Function BlockDiagram, or Statement List (see Chapters 4 and 5) and also symbolicprogramming (see Chapter 3).If you have worked through the"Getting Started" sample project inChapters 1 to 7, open this now.If not, create a new project in theSIMATIC Manager using the menucommand File > "New Project"Wizard. To do this, follow theinstructions in Section 2.1 and renamethe project "Getting Started Function."We will continue with the "GettingStarted" project. However, you can stillcarry out each step using a newproject.Navigate to the Blocks folder andopen it.Click in the right half of the windowwith the right mouse button.STEP 7 Getting StartedC79000-P7076-C48-01 9-1
  86. 86. Programming a Shared Data BlockInsert a Data Block (DB) from thepop-up menu.In the "Properties – Data Block" dialogbox, accept all the default settings withOK.Use the "Help“ Button for furtherinformation.The data block DB3 has been added tothe Blocks folder.Double-click to open DB3.Programming Variables in the Data BlockEnter "PE_Actual_Speed" in the Namecolumn.Click with the right mouse button toselect the type using the menucommand Elementary Types > INTfrom the pop-up menu.In the example below, three shared data are defined in DB3. Enter these dataaccordingly in the variable declaration table.Save the shared data block.Remember: In Section 5.5, yougenerated an instance data block byactivating the option "Data blockreferencing a function block." Incontrast, using "Data block" youcreate a shared data block.The variables for the actual speeds in the data block"PE_Actual_Speed" and "DE_Actual_Speed" are treatedin the same way as the memory words MW2(PE_Actual_Speed) and MW4 (DE_Actual_Speed). Thiscan be seen in the next chapter.STEP 7 Getting Started9-2 C79000-P7076-C48-01
  87. 87. Programming a Shared Data BlockAssigning SymbolsAssigning SymbolsYou can also assign symbolic namesto data blocks.Open the Symbol Table and enter thesymbolic name "S_Data" for the datablock DB3.Save the symbol table and close the"Symbol Editor" window.Also close the shared data block.If you copied the symbol table from a sampleproject (zEn01_02_STEP7__STL_1-10,zEn01_06_STEP7__LAD_1-10 orzEn01_04_STEP7__FBD_1-10) to your"Getting Started" project in Chapter 4, you donot need to add any symbols now.Shared data blocks in the variable declaration table:Using the menu command View > Data View, you can change the actual values of the datatype INT in the table for the shared data block (see Section 5.5).Shared data blocks in the symbol table:In contrast to the instance data block, the data type for the shared data block in the symboltable is always the absolute address. In our example, the data type is "DB3." With theinstance data block, the corresponding function block is always specified as the data type.You can find more information under Help > Contents in the topics"Programming Blocks" and "Creating Data Blocks."STEP 7 Getting StartedC79000-P7076-C48-01 9-3
  88. 88. Programming a Shared Data BlockSTEP 7 Getting Started9-4 C79000-P7076-C48-01
  89. 89. 10 Programming a Multiple Instance10.1 Creating and Opening a Higher-Level Function BlockIn Chapter 5 you created a program for controlling an engine with the functionblock "Engine" (FB1). When the function block FB1 was called in the organizationblock OB1, it used the data blocks "Petrol" (DB1) and "Diesel" (DB2). Each datablock contained the different data for the engines (for example, #Setpoint_Speed).Now imagine that you require other programs to control the engine for yourautomation task; for example, a control program for a rapeseed oil engine, or ahydrogen engine, etc.Following the procedure you have learned so far, you would now use FB1 for eachadditional engine control program and assign a new data block each time with thedata for this engine; for example, FB1 with DB3 to control the rapeseed oil engine,FB1 with DB4 for the hydrogen engine, etc. The number of blocks would increasesignificantly as you created new engine control programs.By working with multiple instances, on the other hand, you can reduce the numberof blocks. To do this, you create a new, higher-level function block (in our example,FB10), and call the unchanged FB1 in it as a "local instance." For each call, thesubordinate FB1 stores its data in data block DB10 of the higher-level FB10. Thismeans that you do not have to assign any data blocks to FB1. All the functionblocks refer back to a single data block (here DB10).The data blocks DB1 and DB2 are integrated in DB10. To dothis, you must declare FB1 in the static local data of FB10.OB1CALL FB10, DB10FB10CALL FB1 (for petrol engine)CALL FB1 (for diesel engine). . .FB1"Engine"DB10"Petrol engine" data"Diesel engine" dataFB1"Engine"You should already be familiar with programming in Ladder Logic, Function BlockDiagram, or Statement List (see Chapters 4 and 5) and also symbolicprogramming (see Chapter 3).STEP 7 Getting StartedC79000-P7076-C48-01 10-1
  90. 90. Programming a Multiple InstanceIf you have worked through the"Getting Started" example in Chapters1 to 7, open the "Getting Started"project.If not, open one of the followingprojects in the SIMATIC Manager:ZEn01_05_STEP7__LAD_1-9 forLadder Logic,ZEn01_01_STEP7__STL_1-9 forStatement ListZEn01_03_STEP7__FBD_1-9 forFunction Block Diagram.Navigate to the Blocks folder andopen it.Click with the right mouse button in theright half of the window and insert afunction block using the pop-up menu.Change the name of the block to FB10and select the required programminglanguage.Activate Multiple instance FB (ifnecessary) and accept the remainingdefault settings with OK.FB10 has been added to the Blocksfolder. Double-click to open FB10.You can create multiple instances for any function block, even for valve control programs,for example. If you want to work with multiple instances, note that both the calling and thecalled function blocks must have multiple instance capability.You can find more information under Help > Contents in the topics"Programming Blocks" and "Creating Blocks and Libraries."STEP 7 Getting Started10-2 C79000-P7076-C48-01
  91. 91. Programming a Multiple Instance10.2 Programming FB10To call FB1 as a "local instance" of FB10, in the variable detail view a staticvariable must be declared with a different name for each planned call of FB1.Here, the data type is FB1 ("Engine").Declare / Define VariablesFB10 is open in the LAD/STL/FBD program window. Transfer the declarations ofthe subsequent image to your variable detail view. To do this, select thedeclaration types "OUT", "STAT" and "TEMP" one after the other and make yourentries in the variable detail view. Select "FB <nr>" as the data type for thedeclaration type "STAT" from the pull-down list and replace the character string"<nr>" with the "1".The declared local instances will then appear in the"Program elements" tab under "Multiple Instances."STEP 7 Getting StartedC79000-P7076-C48-011 10-3
  92. 92. Programming a Multiple InstanceProgramming FB10 in Ladder LogicProgramming FB10 in Ladder LogicInsert the call "Petrol_Engine" as themultiple-instance block "Petrol_Engine"in Network 1.Then insert the required normally open contacts and complete the call with thesymbolic names.Insert a new network and program the call for the diesel engine. Proceed in thesame way as for Network 1.The "Actual_Speed" for the engines is nottaken from a memory bit (see Section 5.6onwards), but from a shared data block(see Section 9.1). The general addressassignment is as follows:"Data_Block".Address, for example:"S_Data".PE_Actual_Speed.STEP 7 Getting Started10-4 C79000-P7076-C48-01
  93. 93. Programming a Multiple InstanceInsert a new network and program a series circuit with the correspondingaddresses. Then save your program and close the block.Use the respective temporaryvariables. You will recognize thetemporary variables in the pull-downmenu by the symbols displayed on theleft.Then save your program and close theblock.Programming FB10 in Statement ListIf you are programming in StatementList, select the input area under a newnetwork and enter the STL instructionsshown here.Then save your program and close theblock.The temporary variables("PE_Setpoint_Reached" and"DE_Setpoint_Reached") aresupplied to the output parameter"Setpoint_Reached," which is thenprocessed further in OB1.STEP 7 Getting StartedC79000-P7076-C48-011 10-5
  94. 94. Programming a Multiple InstanceProgramming FB10 in Function Block DiagramProgramming FB10 in Function Block DiagramIf you are programming in Function Block Diagram, select the input area under anew network and enter the FBD instructions below.If you are programming in Function Block Diagram, select the input area under anew network and enter the FBD instructions below.Then save your program and close the block.Then save your program and close the block.You can find more information under Help > Contents in thetopics "Programming Blocks," "Creating Logic Blocks," and"Multiple Instances in the Variable Declaration."Multiple instances can only be programmed for function blocks. Creating multiple instancesfor functions (FCs) is not possible.To edit both calls for FB1 in FB10, FB10 must be called itself.STEP 7 Getting Started10-6 C79000-P7076-C48-01

×