OpenPCS 2008 Innovation in Automation 1 © 1994 – 2008 infoteam Software GmbH • www.infoteam.
English OpenPCS 6.6 User Manual 2 © 1994 – 2008 infoteam Software GmbH • www.infoteam.
1 A Quick Tour through OpenPCS Contents 1 2 Innovation in Automation 1 A Quick Tour through OpenPCS 12 1.1 Installation 12 1.2 Hardware and Software Requirements 12 1.3 Starting OpenPCS 12 1.4 OpenPCS Samples 13 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 Guided Tour Guided_Tour: Intro Sample Program Executing code Monitoring Code Control Data Analyzer Online Edit 14 14 14 16 18 20 20 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.
English 4 1 A Quick Tour through OpenPCS OpenPCS2008 2.5 2.5.1 Assignment Editor Assignment Editor: Introduction 48 48 2.6 2.6.1 2.6.2 2.6.3 2.6.4 IL Editor IL Editor: Introduction Structure of Instruction List Instructions in IL IL Editor Online 49 49 49 50 50 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.
3 1 A Quick Tour through OpenPCS 2.13 2.13.1 2.13.2 2.13.3 2.13.4 2.13.5 2.13.6 Test and Commissioning Test and Commissioning: Introduction Start and Stop Watch variables Set variables Force Variables Working with watchlists 93 93 93 93 93 94 94 2.14 2.14.1 2.14.2 2.14.3 Control Data Analyzer Control Data Analyzer Oscilloscope Trigger 95 95 96 97 2.15 2.15.1 2.15.2 SmartSIM Overview SmartSIM Interrupt Tasks 97 97 98 2.16 2.16.1 2.16.2 OPC Server About OPC Server Remote OPC Server 98 98 98 2.
English 1 A Quick Tour through OpenPCS 4 6 OpenPCS2008 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 Documentation Crossreference Cross-Reference (per variable) Print IEC61131 Configuration CFC Crossreference Print-Options Active Document Server 113 113 113 114 114 117 117 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 Libraries Library: Overview Create a Library Install a Library Adding a Library to a project Uninstall Library 118 118 118 119 119 120 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.
4.2.14 4.2.15 4.2.16 4.2.17 4.2.18 4.2.19 4.2.20 4.2.21 4.2.22 4.2.23 4.2.24 4.2.25 4.2.26 4.2.27 4.2.28 4.2.29 4.2.30 4.2.31 4.2.32 4.2.33 4.2.34 4.2.35 4.2.36 4.2.37 4.2.38 4.2.39 4.2.40 4.2.41 4.2.42 4.2.43 4.2.44 4.2.45 4.2.46 4.2.47 4.2.48 4.2.49 4.2.50 4.2.51 4.2.52 4.2.53 4.2.54 4.2.55 4.2.56 4.2.57 4.2.58 4.2.59 4.2.60 4.2.61 4.2.62 4.2.63 4.2.64 4.2.65 4.2.66 4.2.67 4.2.68 4.2.69 4.2.70 4.2.
English 8 1 A Quick Tour through OpenPCS 4.2.72 4.2.73 4.2.74 4.2.75 4.2.76 4.2.77 4.2.78 4.2.79 4.2.80 4.2.81 4.2.82 4.2.83 4.2.84 4.2.85 4.2.86 4.2.87 4.2.88 4.2.89 4.2.90 4.2.91 4.2.92 4.2.93 4.2.94 4.2.95 4.2.96 4.2.97 4.2.98 4.2.99 4.2.100 4.2.101 4.2.102 4.2.103 4.2.104 4.2.105 4.2.106 4.2.107 4.2.108 4.2.109 4.2.110 4.2.111 4.2.112 4.2.113 4.2.114 4.2.115 4.2.116 4.2.117 4.2.118 4.2.119 4.2.120 4.2.121 4.2.122 4.2.123 4.2.124 4.2.125 4.2.126 4.2.127 4.2.128 4.2.
4.2.130 4.2.131 4.2.132 4.2.133 4.2.134 4.2.135 4.2.136 4.2.137 4.2.138 4.2.139 4.2.140 4.2.141 4.2.142 4.2.143 4.2.144 4.2.145 4.2.146 4.2.147 4.2.148 4.2.149 4.2.150 4.2.151 4.2.152 4.2.153 4.2.154 4.2.155 4.2.156 4.2.157 4.2.158 4.2.159 4.2.160 4.2.161 4.2.162 4.2.163 4.2.164 4.2.165 4.2.166 4.2.167 4.2.168 4.2.169 4.2.170 4.2.171 4.2.172 4.2.173 4.2.174 4.2.175 4.2.176 4.2.177 4.2.178 4.2.179 4.2.180 4.2.181 4.2.182 4.2.183 4.2.184 4.2.185 4.2.186 4.2.
English 10 1 A Quick Tour through OpenPCS 4.2.188 4.2.189 4.2.190 4.2.191 4.2.192 4.2.193 4.2.194 4.2.195 4.2.196 4.2.197 4.2.198 4.2.199 4.2.200 4.2.201 4.2.202 4.2.203 4.2.204 4.2.205 4.2.206 4.2.207 4.2.208 4.2.209 4.2.210 4.2.211 4.2.212 4.2.213 4.2.214 4.2.215 4.2.216 4.2.217 4.2.218 4.2.219 4.2.220 4.2.221 4.2.222 4.2.223 4.2.224 4.2.225 4.2.226 4.2.227 4.2.228 4.2.229 4.2.230 4.2.231 4.2.232 4.2.233 4.2.234 4.2.235 4.2.236 4.2.237 4.2.238 4.2.239 4.2.240 4.2.241 4.2.242 4.2.243 4.2.244 4.2.
5 1 A Quick Tour through OpenPCS 4.2.246 4.2.247 4.2.248 4.2.249 4.2.250 4.2.251 4.2.252 VARINFO WHILE WITH WORD WSTRING XOR XORN 225 225 226 226 226 226 226 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 Errors and Warnings How to Read Error Message General Errors Syntax Errors Linker Messages Compiler Messages Make Messages 227 227 227 227 266 272 282 4.4 4.4.1 4.4.
English 1 A Quick Tour through OpenPCS OpenPCS2008 1 A Quick Tour through OpenPCS 1.1 Installation OpenPCS is delivered on CD-Rom. The CD auto-starts a screen where you can select the software you want to install. If auto-start is not activated or does not work, please start the SETUP.EXE from the subdirectory SOFTWARE\OPENPCS\\. At the end of you the installation, you will be asked if you want to install hardware drivers.
1 A Quick Tour through OpenPCS English OpenPCS2008 The screen is divided into 5 regions: (1) The top region with the menus and toolbars (2) The Project-Browser (3) The Editor-Window (4) The diagnostic output window (5) The Catalog-Window The last opened project is displayed by default at start-up. An overview on delivered samples in given in the editor window, therefore it may differ from the shown screenshot. 1.4 OpenPCS Samples OpenPCS comes with a variety of sample projects.
English 1 A Quick Tour through OpenPCS OpenPCS2008 (2) The samples you see may vary due to OEM dependencies done by Brand Labelling OpenPCS. 1.5 Guided Tour 1.5.1 Guided_Tour: Intro The guided tour hands the user a step-by-step introduction into the programming system OpenPCS. The coffee sample is delivered with OpenPCS and is located in the OpenPCS sample directory. The sample simulates a coffee machine and controls its flow. Both procedures are split into two tasks.
1 A Quick Tour through OpenPCS English OpenPCS2008 Visualization via Iconics GraphWorkX illustrates the brewer. Illustrated is the chart coffee.sfc simulating the brewer as well as displays showing the temperature and water level. The states water hot and coffee ground are combined in a stated called Hot and Ground. © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 1 A Quick Tour through OpenPCS OpenPCS2008 1.5.3 Executing code Please open the sample project coffee.var. To execute the application, we need to compile it and transfer the code to the controller first. To build the code for the controller select PLC->Build Active Resource from the menu bar. In the output window, you will see the compilation proceed.
1 A Quick Tour through OpenPCS In this introduction, we are not using a real hardware controller. Instead, we are using the Windows Simulation tool that comes with OpenPCS, named SmartSIM, which OpenPCS starts automatically when downloading the program: English OpenPCS2008 Use PLC-> Coldstart in the menu (or press the red arrow in the toolbar) to start execution of your code. After starting the execution the following screen should be visible.
English 1 A Quick Tour through OpenPCS OpenPCS2008 Go to SmartSIM and activate the first input (‘button’). The variable ‘start’ turns to TRUE, as can be seen in the watchlist at the bottom of the screen, and the machine starts. Moreover, the SFC activates step ‘Fill_Water’ which is now colored red. Another coffee cannot be brewed until the first cup is done. 1.5.4 Monitoring Code Now that your application is running, go back to the Project window in the upper left and activate the Resource tab.
1 A Quick Tour through OpenPCS English OpenPCS2008 Double-click some of the variable entries (white boxes with black dot), and see the corresponding variables added to the watch list in the Test & Commissioning: Go back to SmartSIM and modify the inputs to see the effect in the watch list. OpenPCS supports ‘online edit’, for further information see Online Edit in the user manual. © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 1 A Quick Tour through OpenPCS OpenPCS2008 Note: if SmartSIM does not stop when you set a breakpoint, you probably did not set optimization settings properly. Be sure your resource is configured for ‘size only’. 1.5.5 Control Data Analyzer The Control Data Analyzer hands the programmer the possibility to observe the development of variables over time. The Analyz er can be started via View -> Control Data Analyzer. This option is online available whole being online.
1 A Quick Tour through OpenPCS English OpenPCS2008 OpenPCS prints a dialogue to accept and download the changes If the changes are accepted, OpenPCS recompiles the necessary unit and downloads them to the PLC without stopping the running cycle. The changes have bearing on the next cycle. OpenPCS prompts a message in the output window, if the update is finished © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 1 A Quick Tour through OpenPCS OpenPCS2008 Remark: The Changes will not be persistent on the PLC. Therefore you need SaveSystem, an optional target system feature. 1.6 Additional 1.6.1 Adding Hardware Support All Automation Network member companies are providing target drivers (*.cab files) for installing support for their hardware/controller. It is possible to install different target drivers for different controllers from different manufactures in one installation.
1 A Quick Tour through OpenPCS information provided with the target driver or the information provided by your PLC manufacturer. 1.6.2 Templates OpenPCS 2006 supports file and project templates, to minimize the effort of creating solutions for specific tasks. Templates optimized to support particular PLCs can be provided by the manufacturer of the PLC as part of a target driver. Templates can be used for resources, tasks, declarations, projects, program files, etc.
English 1 A Quick Tour through OpenPCS OpenPCS2008 The OpenPCS backup function saves all files within a project. Remark: SFC files created with an OpenPCS version earlier than 5.2.0 must be resaved with a current OpenPCS version, because since 5.2.0 OpenPCS uses a XML file format for SFC files. 1.6.4 About this manual This manual is organized in 4 main chapters: Chapter 1 you have already read, gives a short introduction into the most common features of OpenPCS.
2 OpenPCS Tools 2 OpenPCS Tools 2.1 OpenPCS Framework 2.1.1 OpenPCS Framework: Introduction The OpenPCS Framework hosts most of the tools of OpenPCS. Generally, the OpenPCS Framework will look similar to the following: English OpenPCS2008 The project is shown in the Project-Browser on the left side. The editor-pane is located in the centre. Most editors will use split screen technology to edit declarations in the upper pane and instructions in the lower pane.
English 2 OpenPCS Tools OpenPCS2008 The Browser user interface consists of four different windows (panes): (1) The File-Pane (2) The Resource-Pane (3) The OPC-I/O-Pane (optional) (4) The Library-Pane (5) The Help-Pane 2.2.2 Browser: Overview 2.2.2.1 The File-Pane The File-Pane contains a directory-tree with all your source files, collected under the current project (1). These are the files that you write yourself, with one of the editors of OpenPCS, or with different applications.
2 OpenPCS Tools English OpenPCS2008 The Resource-Pane contains the instance tree, named ‘Configuration’. It shows your controllers as resources (1), the tasks running in these controllers (2), the instances of functions and function blocks available within these, and all variables (3) defined in these. The active resource is shown with a green Button.
English 2 OpenPCS Tools OpenPCS2008 The OPC-I/O Pane contains the tree of locally available OPC-DA address spaces. On the root level (1) it lists all the OPC-DA servers currently registered on the working PC. Underneath the root level you can find several layers of nested OPC folders (2) structuring the address space of the selected OPC-DA server. Finally, as leafs in the tree, there are the OPC-Tags (3) representing the I/O values of the OPC-DA server.
2 OpenPCS Tools English OpenPCS2008 You can use a library in a project by selecting it and choosing Project -> Library->Use in current project. The libraries that are currently used in the project are shown with a red symbol. 2.2.2.5 The Help-Pane The Help-Pane contains help-topics. © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 2 OpenPCS Tools OpenPCS2008 2.2.3 Projects 2.2.3.1 Create new project If you have opened OpenPCS, you can start with the work. The first step is the creation of a new project. Select Project-> New…, or press the respective button in the toolbar. Please note: (1) The name of an OpenPCS project should not contain blank (space) characters or special characters. Plus, for easy updates, it is recommended that you store your application separate from OpenPCS.
2 OpenPCS Tools Note: The current version of OpenPCS supports only exporting/importing of POE, ST, SFC and MAK-files and the $ENV$ folder. 2.2.3.5 Search within project All files, which are embedded in the current project, can be searched via Project->Search in Files …. The result is given in the output window. Double-clicking a result will open the document in the editor at the according position. English OpenPCS2008 2.2.3.
English 2 OpenPCS Tools OpenPCS2008 i.e. Information about the properties of your PLC which will be used by OpenPCS, and a connection name, i.e. Information about the kind of communication between OpenPCS and the control system. A resource maintains a list of tasks which are to be run on the control system. 2.2.5.2 Create resource When creating a new project, OpenPCS will define one resource. If you want to create additional resources click on File-> New...
2 OpenPCS Tools ‘Generate Mapfile’: after generating the code three text files will be created in which you find linker information. These files will be saved in the resource directory named ‘Pcedata.txt’, ‘PceVars.txt’ and ‘PceSegs.txt’. Some other features of OpenPCS (GetVarAddr) need this feature to be enabled, so you better do not disable it without good reason. For a description of optimization settings, see Optimisation Settings in Advanced Topics. English OpenPCS2008 2.2.5.
English 2 OpenPCS Tools OpenPCS2008 OpenPCS currently supports the Data Access Specification (OPC-DA) Version 2.0 For further information on OPC, please consult the web page of the OPC Foundation at http://www.opcfoundation.org 2.2.7 Compiler 2.2.7.1 Build active resource Build only those parts of your resource that have changed since last build due to modifications. Invoked by PLC->Build active resource.
2 OpenPCS Tools English OpenPCS2008 2.2.8.4 Starting Online Editor Going online opens all your open POUs in online mode. To start the Editor in online mode for specific function block instances of your application, open the resource tree and locate the instance that you wish to monitor and double-click it. OpenPCS supports ‘online edit’, for further information see Online Edit in the user manual.
English 2 OpenPCS Tools OpenPCS2008 You can display the resource info by marking the resource and selecting the menu item PLC ® Resource info. 2.2.8.7 Upload OpenPCS supports uploading of projects from your controller to your PC. Therefore, it is not necessary to have the source code of your project when updating your PLC, because you can upload the project.
2 OpenPCS Tools After that, you will be asked, where to save the project (make sure that the project doesn’t exist already): English OpenPCS2008 The uploaded project will be opened automatically. 2.2.8.8 Erase This is only available in online mode. To remove the entire program from the PLC select PLC->Erase from the menu or click the corresponding button in the toolbar. Note: The exact reaction varies depening on the implementation of the OEM manufacturers of your PLC.
English 2 OpenPCS Tools OpenPCS2008 created by other programs, for example by: Microsoft Word, Microsoft Excel, Microsoft Project, AutoCAD. Select the desired file type in the popup menu and open the corresponding directory. There you can select the file you want to copy. A multiple selection is possible when you keep pressing the left mouse button, the `Shift`- or the `Ctrl`-key. This files will be copied in the current directory of the browser and can be edited by a double click. 2.2.9.
2 OpenPCS Tools Margin width in %: changes the width of the margin. 100 corresponds to the default width. The width may be set between 1 and 1000. 2.2.9.6 Setting fonts and color With the Extras->Font/Color dialog it is possible to set the appearance of the text editors used by the IL, ST, SFC, Ladder and FBD editors. English OpenPCS2008 Note: The current version of OpenPCS provides only setting the font and size. 2.2.9.
English 2 OpenPCS Tools OpenPCS2008 2.3.2 Variable Catalog The Variable Catalog is part of the Catalog. All global variables are shown in the Variable_Catalog. You can see their names, data types, addresses, comments (if available) and their scopes. At the moment the used flag is only supported by the CFC-Editor. The Variable_Catalog enables you to insert global variables to your program by drag’n drop and also to filter global variables. When using drag'n drop, typos will not happen any longer.
2.4 2 OpenPCS Tools Declaration Editor 2.4.1 Declaration Editor: introduction The declaration editor is hosted by the OpenPCS framework. Enter declarations as defined by IEC61131 here. IEC61131-3 requires all data objects to be declared as variables. A set of different declaration sections is available to define variables on different scopes. IEC61131-3 comes with a set of predefined data-types, the so called elementary data types.
English 2 OpenPCS Tools OpenPCS2008 A POU of type Program may use Type, Local, Global and External A POU of type Function block may contain Type, Input, Output, In_Out, Local and External A POU of type Function max use Type, Input and Local. CONSTANT may be used as a modifier to the keyword (e.g. VAR_GLOBAL CONSTANT) to declare all variables declared in this section as not to be modified by the application.
2 OpenPCS Tools 2.4.3 Structure of a Declaration Line A declaration line has the following form, where optional parts are set in [square] brackets, and expressions are set between brackets: [AT ]: [:= ]; [(* *)] First the variable name is given, followed by a colon. Behind the colon is the type, and eventually the hardware address introduced by the attribute ´AT´.
English 2 OpenPCS Tools OpenPCS2008 DINT UINT UDINT REAL LREAL TIME DATE TIME_OF_DAY DATE_AND_TIME STRING WSTRING BYTE WORD DWORD ‘Double Integer’ ‘Unsigned Integer’ ‘Unsigned Double Integer’ ‘Real number’ ‘Long real number’ ‘Time duration’ ‘Day, Month, Year (only)’ ‘Time of day (only)’ ‘Date and Time’ 'Character String’ ‘2-bytecharacter String’ ‘Sequence of 8 bits’ 'Sequence of 16 bits’ ‘Sequence of 32 bits’ -2.147.483.648 to +2.147.483.647 0 to 65 535 32 16 0 to 4.294.967.295 32 +/-3.
2 OpenPCS Tools MyResult : BOOL; END_VAR LD MyInput_1 AND %I0.0 ST MyResult END_PROGRAM English OpenPCS2008 It is strongly recommended to use symbolic names for directly represented variables, as this eases rewiring to different addresses. Changing address I0.0 without usage of symbolic names means that you have to do the change in both sections, declaration and program. With usage of a symbolic name, here “MyInput_1” you just change the address e.g. to “I0.1” within the section of declaration.
English 2 OpenPCS Tools OpenPCS2008 VAR PreValvePressure: Pressure; END_VAR It is possible to combine different data types in a derived data type. Arrays and structs can be integrated as well. The following example defines a struct A. The struct itself consists of another struct called B and an integer array of size 5. Three new data types are derived within B: Stationname as string and Value1, Value2 as doubles.
2 OpenPCS Tools PROGRAM struktur TYPE RobotArm : STRUCT Angle_1 : REAL; Angle_2 : REAL; Grip: BOOL; Length: INT; END_STRUCT; END_TYPE VAR Robot1 : RobotArm; Robot2: RobotArm; END_VAR LD Robot1.Grip . . END_PROGRAM English OpenPCS2008 2.4.10 Declaration of enumeration data types A variable of an enumerated data type can take any one of a fixed list of values. The list of legal values is listed in the declaration of the enumeration data type, separated by commas.
English 2 OpenPCS Tools 2.5 OpenPCS2008 Assignment Editor 2.5.1 Assignment Editor: Introduction The Assignment Editor is hosted in the OpenPCS framework. It is displayed as a document editor window. It is used to assign global variables to I/O ports, such as a value tag on an OPCDA server. The Editor is realised as a grid table, each row representing a variable assignment.
2 OpenPCS Tools by the user as wanted. The IEC type of the variable has to be specified manually by the user. 2.6 IL Editor 2.6.1 IL Editor: Introduction The IL-Editor is hosted in the OpenPCS framework. In the upper part of the IL-Editor, enter the declarations of the POU. In the lower pane, enter IL instructions: English OpenPCS2008 The IL-Editor supports bookmarks (to mark locations of interest for easy navigation while editing a file) and Breakpoints. 2.6.
English 2 OpenPCS Tools OpenPCS2008 The parameter transfer consists of two parts. In the first part the parameters are transferred to the function block by setting values to the INPUT- and IN_OUT-variables respectively. The variables, which get no value, retain the value of their last call and their initial value respectively. Separated by a ´|´ from the first part, output parameters are specified. 2.6.
2 OpenPCS Tools English OpenPCS2008 The ST Editor supports bookmarks (for marking lines of interest while editing a file) and Breakpoints. 2.7.2 Instructions in ST Code written in ST is a sequence of ST-instructions. ST-instructions are terminated with a semicolon. Linefeeds are not significant, i.e. more than one instruction can be on one line, and one instruction can use one or more line. For a list of all instructions supported in ST, please see the reference section, Structured Text Keywords. 2.7.
English 2 OpenPCS Tools OpenPCS2008 Equality Inequality Boolean AND Boolean exclusive OR Boolean OR <=, >= = <> &, AND XOR OR 2.7.4 Comments in ST Like all modern programming languages, ST supports comments. A comment is any text included between ´(*´ and ´*)´, e.g. (* Comments are helpful *) The compiler will ignore comments when generating executable code, so your program will not accelerate in any way if you omit comments. Comments may span multiple lines, e.g.
2 OpenPCS Tools If the Editor is in the „Edit“ mode, the struct and it’s first level members will be shown with data type information. In the „Online“ mode, the values will be shown behind the resolvable members. English OpenPCS2008 2.7.7 AutoComplete / AutoDeclare If a variable is typed, which is not declared, and CTRL-SPACE (RETURN in Ladder editor ) is used, the declaration dialog will appear. If there is already a variable with the given name, nothing happens.
English 2 OpenPCS Tools OpenPCS2008 A network consists of: Network label, Network comment and Network graphic. Network label: Each network that may be a jump target from within another network will automatically be assigned a preceding alphanumerical identifier or an unsigned decimal integer. By default, networks will be numbered. This numbering of all networks will be automatically updated whenever a new network is inserted.
2 OpenPCS Tools English OpenPCS2008 (1) The result of the logical connection will directly be assigned to the output variable. (2) The output variable will be assigned the negation of the result of the logical connection. (3) The result of the logical connection will ‘permanently set’ the output variable: If the result of the logical connection is ‘1’, the output variable will be set to ‘1’. If, however, the result of the logical connection is ‘0’, this will have no implications.
English 2 OpenPCS Tools OpenPCS2008 1.) Left is the contact symbol for a variable that must have the value ‘1’ to make the corresponding Boolean connection true. If the variable is associated with a physical address, the state ‘1’ corresponds to a released interruptor or a pressed trigger. 2.) Right is the contact symbol for a variable that must have the value ‘0’ to make the corresponding Boolean connection true.
2 OpenPCS Tools wrong, OpenPCS pre-writes „[CHECK!]“ to such comments. Then it’s up to you to check if these comments are still correct. The reason therefore is that when using the ladder editor, it is possible to replace a function (block) by a contact with a variable or vice versa. This changes the semantic of the program and so the comments above the function (block) or variable might be wrong. To illustrate this, look at the following figures.
English 2 OpenPCS Tools 2.9 OpenPCS2008 CFC Editor 2.9.1 Introduction CFC Editor The OpenCFC(R)-Editor (Continuous Function Chart Editor) is an engineering tool used to create automation programs graphically.
2 OpenPCS Tools English OpenPCS2008 In Name, enter the name of the object. This should be a valid IEC61131-3 variable name. If you want the CFC-Editor to declare a variable for this margin bar object, select IEC61131-Variable. Otherwise, if you select ‘CFC-Connector’, the object is used only virtually, and all information is immediately propagated to the connected outputs. This may be more economic in runtime and memory consumption, but it prevents online monitoring.
English 2 OpenPCS Tools OpenPCS2008 2.9.5 CFC Editor Online When you have the CFC Editor in monitor mode, it will automatically start displaying live values of blocks, connections and margin bar entries as far as possible. If the online editor can't get a value of a variable from the runtime system, it will display "-!-". OpenPCS supports ‘online edit’, for further information see Online Edit in the user manual. 2.9.6 Advanced CFC topics 2.9.6.
2 OpenPCS Tools English OpenPCS2008 Compound blocks will be executed as a whole at that moment in the execution order where the compound block is located. The contents of the compound block will be executed in itself following the same rules. This is very similar to subroutines in modern programming languages. The CFC-Editor offers you several possibilities for printing. Use File->Print to print the current level of a chart, and File->Print All to print all levels of the loaded CFC chart. 2.9.6.
English 2 OpenPCS Tools OpenPCS2008 A dialog box analogue to the Insert->Block dialog will appear, allowing the user to select the desired new block type from a list of known firmware and userdefined blocks. Additionally the user may check the option “automatically replace all instances of the block type in current plan”, which causes the replacement of all instances (even the non-marked ones) of the currently marked block’s block type inside the entire CFC-plan.
2 OpenPCS Tools Negating an input is done via selecting the input and calling (context) menu entry “Negate Input”. A negation circle is drawn at the connector. The next call of (context) menu entry “Negate Input” removes the negation. 2.9.6.
English 2 OpenPCS Tools OpenPCS2008 2.9.6.12 Copying blocks with inputs If at least one block is selected, there is a new (context) menu entry active: “Duplicate blocks”. Calling it copies the selected block(s) into the internal plan clipboard and set editor into duplicate mode - mouse cursor and caret style behave and look like they do in paste mode: Everywhere you click or press space bar the duplicate(s) of the block(s) is/are inserted and all input connections are duplicated.
2 OpenPCS Tools English OpenPCS2008 Unused connectors are not shown. If unused connectors are hidden we cannot find them by searching. we cannot navigate onto neither by mouse nor by keyboard. we still can find them by double clicking on a compiler/syntax error/warning. 2.9.6.15 Global ID For each object (block, connector) a global ID is assigned to be uniquely addressed. For blocks this ID is displayed below the name of the block. The global ID can also be displayed via tooltip.
English 2 OpenPCS Tools OpenPCS2008 2.9.6.16 Keyboard handling for CFC and FBD editor 2.9.6.16.1 Fundamentals for keyboard usage For keyboard navigation, a small caret is displayed which shows the current input focus for the user. The CFC/FBD editor can be used with mouse an keyboard simultaneouly. The cursor will not follow the caret. The form of the cursor will not automatically change due to the state of the caret.
2.9.6.16.6 2 OpenPCS Tools Automatic positioning of the caret After a file is loaded, the caret is placed at the upper left grid cell. The position of the caret is not saved with the map. After the entering of a compound block, the caret will be placed at the upper left grid cell. By using undo/redo, the caret follows the position which is provided by the operation. For this purpose, the caret position is saved before undo/redo and will be restored according to network number and position (row, column).
English 2 OpenPCS Tools OpenPCS2008 At a margin connector, the caret takes the position and size according to the measures of the selected margin connector. Caret in grid cells with blocks The caret surrounds either the block field or a connector. The size of the caret at a connector/block corresponds to the selection of a connector/block. The name of an entity will not be surrounded by the caret. 2.9.6.16.
2 OpenPCS Tools grid cell contains a block, the caret jumps to the closest connector in consideration of the starting position (margin connector). English OpenPCS2008 If the caret is positioned on a grid cell or on a block connector besides the margin, it jumps to the closest margin connector. 2.9.6.16.11 Up and down at inputs/outputs or navigates the caret to the input or output of a block.
English 2 OpenPCS Tools OpenPCS2008 For navigating faster between grid cells with blocks, you can jump directly to the block field by using + . 2.9.6.16.13 Navigating between grid cells Observe the behavior by navigating between grid cells with blocks. By navigating on an empty cell or a cell with a comment, the caret is placed on the comment or the whole grid element with no respect to the starting position.
2 OpenPCS Tools Goto Data Source : jump to data source Goto Next Data Destination : jump to next data sink Goto Previous Data Destination : jump to previous data sink 2.9.6.16.15 Fast navigation with the caret 2.9.6.16.16 Pos1 and End English OpenPCS2008 Pos1 and End refer only to the grid itself (the margin is excluded) and locate the caret on the grid in the current row far left or far right. 2.9.6.16.
English 2 OpenPCS Tools 2.9.6.16.23 OpenPCS2008 Insertion of blocks by keyboard usage The insertion of blocks by keyboard works according to the following procedure: 1. Call the choosing block dialog by shortcut. 2. Chose the block type to be inserted. 3. Close the choosing block dialog and the insert modus is automatically activated. 4. For finally inserting the block, the caret must be moved to the insert position. Navigation is only allowed between grid cells.
2 OpenPCS Tools Shift + Alt + arrow keys : release the caret from selection using fast navigation Ctrl + shift + arrow keys : moving of blocks or margin connectors 2.9.7 Compound Blocks 2.9.7.1 Compound Blocks: Introduction Compound Blocks are a way to structure your application The work area of the CFC-Editor is limited to one page width. By selecting the paper size, you determine the number of blocks that can be placed horizontally. Vertically, a function chart can grow unlimited.
English 2 OpenPCS Tools OpenPCS2008 Whenever you run out of space on a chart, or think readability would be increased by more hierarchically grouping, you can collapse some of your already wired blocks into a Compound Block: 1. Have the Block(s) selected 2. Select `Insert à Compound block...` 3. CFC-Editor will prompt you to verify you want to convert the blocks to a Compound Block 4. The selected Blocks will be removed from the chart and replaced by a Compound Block.
2 OpenPCS Tools If you go one level up by clicking the appropriate symbol you see that another shorter unused connector has been added to the compound block. 2.10 SFC Editor 2.10.1 SFC: introduction The SFC-Editor is hosted in the OpenPCS framework. It is separated into three parts. In the upper part of the SFC-Editor, enter the declarations of the POU. In the middle part edit the chart and in the lower part edit the code of the elements.
English 2 OpenPCS Tools OpenPCS2008 execute. A step can be activated by: switching of a previous transition, a jump element, setting the initial flag (c.f. initial step). Initial step: Initial steps are active at the beginning of the program. Positions in the plan could be marked by initial steps, at which the execution starts on program start. Transition: The program flow is controlled temporally and structurally by switching of transitions.
2 OpenPCS Tools English OpenPCS2008 Divergence of sequence selection: Selection of a sequence step chain. If the step before the divergence is active, all transitions ( (e.g., T1, T2) are checked from left to right. The first transition evaluating to TRUE will switch, deactivating the step before and activating the step after. Convergence of sequence selection: The chains of a divergence of sequence selection are converged into a step.
English 2 OpenPCS Tools OpenPCS2008 Step names have a maximum length of 31 characters. You get more information in the topic Jumps . 2.10.4 Transitions Transitions are responsible for the change of the active state of previous step(s) to the following step(s). Transitions show the possible change in form of a true, Boolean statement (transition condition). The code of the transition has to be written so that the current result at the end of the code is of type BOOL.
2 OpenPCS Tools 2.10.6 SFC Editor Online When you have the SFC Editor in monitor mode, it will automatically display status information. Small red rectangles will be displayed in all active steps. This information is updated as frequently as possible. However, the target controller may be too quick for all intermediate states to be displayed. You can view the contents of steps and transitions while online, but not see status information for these.
English 2 OpenPCS Tools OpenPCS2008 2. No unique target Two Steps are named Init. Since the step is chosen as target, OpenPCS cannot decide which step should be used. It promts the following message in the output. 80 © 1994 – 2010 infoteam Software GmbH • www.infoteam.
2 OpenPCS Tools Error : The jump target "Init" is ambigous – the following 2 steps with the name "Init" exist: ...\CONTROLX\CHART.SFC(10,100,4) : Object : Step "Init" ...\CONTROLX\CHART.SFC(10,100,5) : Object : Step "Init" 3. No valid names English OpenPCS2008 Spaces are not allowed within the name of steps . Error : The name of the object "No Ladder" contains invalid charcters. 2.10.8 Selecting Elements 2.10.8.
English 2 OpenPCS Tools OpenPCS2008 2.10.8.3 Marking several elements In order to execute a function on several elements of the SFC-plan, all corresponding elements must be marked. Mark one element first, using mouse or keyboard. Hold the Shift-key pressed, and click another element with the mouse to select an entire region of the chart. or hold the Ctrl-key pressed and click other elements to add them to the selection In this version are no region marks possible by keyboard. 2.10.
2 OpenPCS Tools complex code, this will not only yield a cleaner structure of your application, but also reduce memory consumption and increase the ability to debug. 2.11 FBD Editor 2.11.1 Introduction FBD Editor The FBD-Editor (Function Block Diagram Editor) is an engineering tool used to create automation programs graphically. The FBD-Editor is hosted in the OpenPCS framework. In the upper part of the FBD-Editor, enter the Declarations of the POU.
English 2 OpenPCS Tools OpenPCS2008 The mouse cursor will change, click the chart where you want to insert the new block. To re-arrange blocks, select the blocks and drag-and-drop them to their new location. When adding new blocks or moving existing blocks, the FBD Editor will make room by moving aside existing blocks as appropriate. To remove blocks from your chart, select them and press DEL. 2.11.3 Connections To connect variables, functions, function blocks etc.
2 OpenPCS Tools 3. See the connection English OpenPCS2008 To select a connection just left click on one of its ends (margin bar or node). A selected connection can be deleted just with [DEL] or right click on margin bar or node and selecting ‘Delete’. Note: There are multiple connections possible starting from one source (it is not possible to merge multple connections). 2.11.
English 2 OpenPCS Tools OpenPCS2008 2.11.5 Advanced 2.11.5.1 Working with Networks You can structure your project with networks. Each network automatically gets a four digit number for identification shown on the top of each network. A click or double-click within that area allows you to type in a name to label the network. Using the right mouse button a pop-up menu occurs that allows you to add a new network, jump to the next or jump to the previous. 86 © 1994 – 2010 infoteam Software GmbH • www.
2 OpenPCS Tools English OpenPCS2008 2.11.5.2 Execution Order The networks are executed one after another beginning from top to bottom. In each network the arrangement of the blocks is directly related to the sequence of execution: Blocks are executed first column first from top to bottom, then second column top to bottom, and so on. To modify execution sequence, rearrange the blocks as required. © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 2 OpenPCS Tools OpenPCS2008 2.11.5.3 Replacement of Blocks The FBD editor supports the replacement of a firmware or user-defined block by a block of another type by selecting the block(s) and choosing Edit->Replace Function / Edit->Replace Function Block from the menu. A dialog box analogue to the Insert->Function / Insert->Function Block dialog will appear, allowing the user to select the desired new block type from a list of known firmware and user-defined blocks.
2 OpenPCS Tools 2.12 Cause & Effect Editor 2.12.1 C&E Editor: Introduction Cause & Effect Overview The Cause & Effect (C&E) matrix contains all causes and effects and their interconnections with each other. The C&E matrix is build similar to the C&E matrix of C&E methodology. English OpenPCS2008 Fig. 3.
English 2 OpenPCS Tools OpenPCS2008 in OpenPCS/SIL is organized via a template library. It is planned to offer a template network library within OpenPCS/SIL, that integrates at least all safety function blocks defined in the Technical Specification of PLCOpen [4]; see bellow for some safety function blocks. Fig. 4. Three examples from Safety Software Technical Specification [4]. All variables that are owner of a prefix S_ are SAFEBOOL variables.
2 OpenPCS Tools Function of Cause (mandatory) There has to be choosen a safety function from the combobox. English OpenPCS2008 If the function is specified the needed inputs apear in the left column. They are represented through default variable names. E.g.: After drag and drop of the variables from variable window onto the name of the variable the variable names and the addresses are assingned.
English 2 OpenPCS Tools OpenPCS2008 If the field negation is checked the calculated result of a cause is inverted 1. true to false 2. false to true 2.12.3 Create an Effect There are two fields, which are mandatory for creating a effect: Name and Address of an output variable. Name & Variable Address of Effect (mandatory) Both are specified at the same time through drag and drop of a variable from variable window onto the fields Effect or Output.
2 OpenPCS Tools 2.12.5 Collapsed Mode There is a collapsed mode for the Effect- and Causequadrant to give a better overview about the intersection quadrant: Choose „View ï Collapse“ to switch to the collapsed mode and choose „View ï Expand“ to switch back to the normal mode. The Shortcut are: „View ï Collapse“ è „Alt-V ï p” „View ï Expand “ è „Alt-V ï p” Within the collapsed mode it is not possible to edit a cause- or an effectline. It is only possible to edit the intersection quadrant.
English 2 OpenPCS Tools OpenPCS2008 item `PLC® Set variable`, or click directly on the variable in the T+C. Enter the new value and accept by `Set`-button. See also Force Variables 2.13.5 Force Variables Besides watching and setting values of variables, OpenPCS support ‘forcing’ of variables. If a variable is forced, the value will be reset to the value specified at the end of each cycle (before writing to the outputs).
2 OpenPCS Tools There is always a default Watch List file with the name .WL in the project root directory. While online, a Watch List is saved through the main menu command: SPS -> Save Watch List As… The saved Watch List will then show up in the Browser’s File pane. After saving, all subsequent modifications of the variable list will be stored in this Watch List. English OpenPCS2008 To restore a different saved Watch List simply open it by double-clicking it in the Browser.
English 2 OpenPCS Tools OpenPCS2008 The user can open the properties via right-clicking within the plot. The user can edit the colors and fonts of a plot and the general appearance of the analyzer. Under signals, the user can give graphs an offset and differ the design. The axis can be set up in the respective sections. Notes: To use the Control Data Analyzer the used PLC has to support TFR (Transient Fault Recorder).
2 OpenPCS Tools 2.14.3 Trigger The current trigger can be accessed via the context menu of the caption, the trigger button or the oscilloscope properties dialog. There are two different triggers: a fixed one and a delayed one. The fixed one is just a simple trigger, the delayed one consists of three simple triggers: A, B and Reset. The delayed one is only satisfied, if B happens after A before Reset happens. A simple trigger is satisfied depending on the set conditions and its mode.
English 2 OpenPCS Tools OpenPCS2008 To prevent SmartSIM from loading the program stored on disk, keep CTRL and SHIFT pressed at start of SmartSIM. 2.15.2 Interrupt Tasks The SmartSim also supports running interrupt tasks. A interrupt can be provoked by pressing a key on the keyboard. So the only thing you have to do is to bind a key to the interrupt task.
2 OpenPCS Tools English OpenPCS2008 Setting permissions for DCOM Default permissions have to be changed to establish communication. Select the COM Security tab Select Edit Default for Access Permissions Make sure the access permissions window contains at least the following entries: Everyone Interactive Network System Domain Administrators Domain Users If these entries are not shown, click the Add button, then click Advanced and Find Now.
English 2 OpenPCS Tools OpenPCS2008 Repeat steps 2. to 4. for Launch and Activation Permission. Afterwards close the My Computer Properties window. Now the setting changes are finished. The computer has to be restarted to accept changes. 2.17 Online Server 2.17.1 Online Server: Overview The Online Server is the gateway between all OpenPCS tools and your controller(s). It is started automatically in the background and routing all traffic and commands between all applications and the controller.
2 OpenPCS Tools English OpenPCS2008 Now enter the name of the connection to be created. Take care that the connection name has not got any spaces in it. Use the underscore (`_`) instead of space. Select a driver by clicking on the select button, the Driver Select window showing driver settings opens: Click the desired driver and then the OK button. The Connection Properties window now becomes active again. Click the settings button.
English 2 OpenPCS Tools OpenPCS2008 You can modify the settings individually. When you agree with the adjusted settings, just click OK, otherwise click cancel. If you want to place a remark, you can do this at the Connection Properties window. Finally, click OK from the Connection Properties window. 2.17.2.3 Delete Connection Select a connection by clicking on the connection’s name from the Available Connections list.
2 OpenPCS Tools English OpenPCS2008 To select the connection use Network Connection selection bar. 2.18 Hardware drivers 2.18.1 Hardware drivers: Overview With the tool AddDriver (AddDrvr.exe) you can automatically install driver packages into OpenPCS that are supplied by your OEM-manufacturer. These driver packages are MS-Cabinet files (extension .CAB) with defined content, which are shipped together with OpenPCS by your hardware manufacturer or, e.g. are offered in the internet. If AddDrvr.
English 104 2 OpenPCS Tools OpenPCS2008 The commands and options are preceded by either a slash (/) or a dash (-) and are not case sensitive. Multiple commands per call are allowed. Commands: 1. -s: performs a IL syntax check on the files following the command -c: compiles all files following the command 1. -p: creates prototypes for all program organization units specified in the list of files following the command 2.
2 OpenPCS Tools 2.19.3 Linker 2.19.3.1 Linker Command Line ITLink [ -r | -t ] -v -m {-g } {-s } { -o } {-x} The commands and options are preceded by either a slash (/) or a dash (–) and are not case sensitive. Multiple commands per call are not allowed. Commands: English OpenPCS2008 -r: link the files specified in the file list following the command to a resource object (*.pcd file).
English 2 OpenPCS Tools OpenPCS2008 The commands and options are preceded by either a slash (/) or a dash (–) and are not case sensitive. Multiple commands per call are not allowed. Commands: -p: build all resources in the specified project(s). This command must be followed by at least one project-file-path (VAR-file-path). -m: build the specified resources. This command must be followed by a list of resource file names and the specifier –v followed by the project-file-path.
2 OpenPCS Tools 2.20 Licence Editor 2.20.1 Licence Editor: Overview The Licence Editor is invoked automatically during Setup of OpenPCS. It can later be launched by selecting ‘Licence’ from the Help menu of the OpenPCS Browser: English OpenPCS2008 Enter your name and company information on top, and up to nine pairs of serial numbers and licence codes in the boxes below. Notes: (1) If you have got a valid licence, run this licence. (2) For details on licences installed, press ‘Info’. 2.20.
English 3 Advanced Topics OpenPCS2008 3 Advanced Topics 3.1 Runtime issues 3.1.1 Multitasking Multitasking is highly target dependent. The behavior described here is the standard as implemented by OpenPCS, but can be different for any particular target device. If in doubt, check with the supplier of your controller. OpenPCS supports all three tasks types defined by IEC61131-3: Cyclic tasks will be executed when no timer or interrupt tasks are ready to run.
3 Advanced Topics English OpenPCS2008 3.1.2 Interrupts Interrupt tasks are executed immediately after an interrupt rises. There are three different interrupt types pre-defined in OpenPCS supported by infoteam SmartSim and infoteam SmartPLC/OPC. Please see documentation of your OEM for supported interrupt types. Interrupt types: STARTUP: rises each time the PLC is started (Coldstart/Warmstart/Hotstart). STOP: rises each time the PLC is stopped. ERROR: rises each time an error is risen.
English 3 Advanced Topics OpenPCS2008 features available as options to OpenPCS. Contact your OEM or infoteam for availability. 3.1.5 Variable Address In some applications, it is necessary to determine at run-time the address of a variable, given its name. Some Human Machine Interfaces, and some Network interfaces rely on that being possible. OpenPCS can download symbolic information to support this. Compile Option ‘Mapfile ’ needs to be enabled.
3.2 3 Advanced Topics English OpenPCS2008 Native Code Compiler 3.2.1 Native Code OpenPCS supports UCODE and NATIVE CODE. Native Code is optional, but available for most platforms. While UCODE is optimized for portability between platforms, fast task switches and small memory footprint, NATIVE CODE is optimized for execution speed on one particular platform. On application level, the programmer can select which code to use via the Optimisation Settings on resource or task level.
English 3 Advanced Topics OpenPCS2008 real-divide), UCODE overhead may be comparably small, hence the speedup gained with native code may be small as well. The virtual UCODE machine within the run-time system will do some checks while executing the UCODE. In native code, most of this checking is omitted because it would add significant run-time overhead and the ultimate reason to use native code is speed improvement.
3 Advanced Topics 3.2.6 NCC Intel Protected Mode The NCC86 will check for invalid array index and division by zero exceptions. The NCC86 does implement the span segments feature. The NCC86 does implement the direct calls feature. 3.2.7 NCC Infineon C16x (huge model) The NCC167H does implement the direct calls feature. English OpenPCS2008 3.2.8 NCC Motorola 68K The NCC68K does implement the span segments feature. The NCC68K does implement the direct calls feature. 3.2.
English 3 Advanced Topics OpenPCS2008 See also Cross-Reference list for visualizing a Cross-Reference information. 3.3.3 Print IEC61131 Configuration In order to get a printed documentation of the configuration of your resource and tasks, select the configuration in the Browser’s resource view an choose "Print Configuration" in the context-menu. 3.3.4 CFC Crossreference The CFC cross-reference is a valuable aid in debugging and understanding execution of CFC charts.
3 Advanced Topics varname is just the name of the variable. scope is represents the declaration section of the variable. CFC Cross Reference sample We use a small sample to demonstrate the CFC cross reference. Set up a small CFC program, using two blocks (ADD and SUB), to add 23 to one input variable, then subtracting one from the result: English OpenPCS2008 Now move block ADD into a compound block A and block SUB into a compound block C.
English 3 Advanced Topics OpenPCS2008 With this small sample, output of the CFC cross-reference will look like: B_Out: FCT_10_10_10_1_ADD_OUT [SAMPLE.chart 1.Block A.Block B] page 4 line 5 D_1: FCT_10_30_10_1_SUB.IN0 [SAMPLE.chart 1.Block C.Block D] page 6 line 5 B_Out: FCT_10_10_10_1_ADD_OUT [SAMPLE.chart 1.Block A.Block B] page 4 line 5 D_1: FCT_10_30_10_1_SUB.IN0 [SAMPLE.chart 1.Block C.Block D] page 6 line 5 in1{VAR}: B_1: FCT_10_10_10_1_ADD.IN0 [SAMPLE.chart 1.Block A.
3 Advanced Topics With this, the following questions are easily answered: Looking at the ADD block: where does this output signal go to? Find the name of the output signal, B_Out. See cross-reference to find it goes to nameD_1 in block chart1.BlockC.BlockD. looking at the SUB-block: where does the input signal come from? Find the name of the input signal D_1, locate D_1 in the cross-reference and find it comes from B_Out.
English 3 Advanced Topics OpenPCS2008 Attention: Depending on the system configuration and installed applications with active document server, the files that can be edited by OpenPCS may vary from PC to PC. Warning: If the active document server, which is not part of OpenPCS, is not stable, this will also lead to an unstable performance of OpenPCS. 3.4 Libraries 3.4.1 Library: Overview Libraries are collections of functions and function blocks that can be re-used over different OpenPCS projects.
3 Advanced Topics Example: Start the Browser and create a new project named `MyLib` using ProjectàNew... Create a function block named `det_edge` (for edge detection): New à Functionblock à IL. Implement this function block as shown below: English OpenPCS2008 VAR_INPUT input : BOOL ; END_VAR VAR_OUTPUT output : BOOL ; END_VAR VAR tempvar : BOOL ; END_VAR LD input ANDN tempvar ST output LD input ST tempvar · Invoke a syntax check with FileàSyntaxcheck . 3.4.
English 3 Advanced Topics OpenPCS2008 Mark the Library "MyLib" in the Library-Pane and select Project->LibraryàUse in current project . Create a new POU of type PROGRAM, named `main`. Select Insertà Functionblocks.... to see your library functions. To use your function block DET_EDGE, implement program `main` as shown below: VAR sig1 AT %I0.0 : BOOL ; anEdge : DET_EDGE; count : UINT ; END_VAR CAL anEdge ( input := sig1 | :=output ) LDN anEdge.
3 Advanced Topics functions via predefined function blocks. This requires a PLC with a CANopen interface. CANopen services for PLC programs according to the IEC61131-3 standard are defined in the CiA (CAN in Automation e.V.) Draft Standard 405. These standards are the basis for providing these CANopen functions. English OpenPCS2008 Using Networked Variables Networked variables are the easiest way of data exchange in a CANopen network system.
English 3 Advanced Topics OpenPCS2008 PLC network variables are stored in the index range A000h – AFFFh within the Object Dictionary in accordance with the CiA Draft Standard 405. The following terms are important for further explanations of the integration of control units with decentralized I/O expansion modules: CANopen I/O module: The CANopen I/O module represents a device that provides certain resources, such as input and output channels to the network.
3 Advanced Topics 3.5.3 Configuration process The EDS file is the most important item for the configuration process of I/O units. The CANopen Configurator reads the EDS file and allows access to resources provided by the CANopen I/O module from the users application.
English 3 Advanced Topics OpenPCS2008 In contrast to I/O devices with static inputs and outputs, a PLC features dynamic objects, in other words, the current network variables defined in the corresponding PLC program. Because the manufacturer has no knowledge about objects created during runtime, corresponding object entries do not appear in the EDS file. Therefore, a Configurator is always required when linking dynamic objects. The results of the configuration process are then stored in the DCF file.
3 Advanced Topics These parameters are, for example, the transmission mode (synchronous, asynchronous), the assigned identifiers or the mapping. Furthermore, the Configurator enables the user to create a linking system that is essential for network variables between the PLC and the CANopen I/O modules. Symbolic names are assigned to process data (usually inputs and outputs) on the individual I/O module. This allows the PLC program to easily access these network variables at a later point.
English 3 Advanced Topics OpenPCS2008 free and syntax controlled variable editor is done with the menu Variable Editor> located in the ‘POE-Editor’ program. The same symbolic names that are defined for the process data in the corresponding DCF file must be used as names for the network variables. The variable name is the common relation between the IEC61131 PLC and CANopen. A data type that is compatible for both IEC61131 and CANopen must be chosen as type of the network variables.
3 Advanced Topics English OpenPCS2008 Process Synchronization Between CANopen and the PLC Program A CANopen service implemented asynchronously with an PLC program is processed completely in the following steps: After the PLC program has initialized all the input variables, it sets the input ENABLE to TRUE and gives the command that the CANopen component be called (call #1).
English 3 Advanced Topics OpenPCS2008 The output CONFIRM changes from FALSE to TRUE only after successful completion of the current CANopen service. Possible errors are shown on outputs ERROR and ERRORINFO. Thus it is required that an PLC program monitors the value of ERROR in additon to the output CONFIRM, in order to be able to evaluate errors that have occurred as well.
3 Advanced Topics Constants for the Data Type ‘CIA405_STATE‘ Constants State Value 16#0000 INIT 16#0001 RESET_COMM 16#0002 RESET_APP 16#0003 PRE_OPERATIONAL 16#0004 STOPPED 16#0005 OPERATIONAL 16#0006 UNKNOWN 16#0007 NOT_AVAIL English OpenPCS2008 To characterize the state that a CANopen device is suppose to switch to, the CiA Draft Standard 405 defines the specific data type ‘CIA405_TRANSITION_STATE‘. The constant values match the corresponding definition of the CiA Draft Standard 301.
English 3 Advanced Topics OpenPCS2008 constants '$''’ The Apostrophe ‘’’ '$$' The $ sign itself '$L' or '$l' Line Feed '$N' or New Line '$n' '$P' or Form Feed '$p' '$R' or '$r' Carriage Return '$T' or '$t' Tabulator Example Character Meaning and Length Constant 'A' Single character A, length=1 '' Blank character, length=1 '' No character, length=1 '$R$L' Carriage Return, Line Feed, length=2 '$0D$0A' Carriage Return, Line Feed, length=2 3.6.1.
Constant Data Type INT REAL Dual number Octal number Hexadecimal number BOOL STRING WSTRING TIME DATE Example 3 Advanced Topics Meaning -13 45165 or 45_165 +125 -13.12 123.45 0.123 -1.23E-3 2#0111_1110 or 126 8#123 or 83 16#123 or 291 Integer -13 Integer 45165 (both) Integer 125 Real –13,12 Real 123,45 Real 0,123 Real -0,00123 126 83 291 0 and 1 TRUE and FALSE 'ABC' “ABC” T#12.3ms or TIME#12.
English 3 Advanced Topics OpenPCS2008 Bitpattern2 AT %IW0.0 : WORD; END_VAR LD Bitpattern2.15 (* Copy bit 15 *) ST Bitpattern1.0 (* into bit 0 *) . . END_PROGRAM Please note that this feature might not be available on all hardware platforms for all data types due to implementation restrictions. 3.6.1.5 Passing Output Parameters IEC61131 defines two ways of passing parameters. OpenPCS provides, as a legal extension to IEC61131, a means to directly pass output parameters.
3 Advanced Topics local variables will not be kept from one call to the next. A function may call other functions, but it is not allowed to call instances of function blocks. 3.6.2 IEC61131-3 Compliance Statement 3.6.2.1 Compliance Statement The following tables have the same numbering as those in the IEC 11313/EN 61131-3 standard. Tables showing features not yet supported by this version of OpenPCS are not listed.
English 3 Advanced Topics 3 3.6.2.3 OpenPCS2008 Upper and lower case, numbers, leading or embedded underlines x Table 3: Comment features No. Description Yes 1 Comments x 3.6.2.4 Table 4: Numeric Literals No. Description Yes 1 Integer literals x 2 Real literals x 3 Real literals with exponents x 4 Base 2 literals x 5 Base 8 literals x 6 Base 16 literals x 7 Boolean zero and one x 8 Boolean FALSE and TRUE 3.6.2.
3.6.2.6 No. Table 6: Two character combinations in character strings Description 2 Dollar sign ($$) x 3 Single quote ($´) x 4 Line feed ($L or $l) x 5 New line ($N or $n) x 6 New page ($P or $p) x 7 Carriage return ($R or $r) x 8 Tab ($T or $t) x 3.6.2.7 No. 3 Advanced Topics Yes No Yes No English OpenPCS2008 Table 7: Duration literal features Description Duration literals without underlines: 1a 1b Short prefix Long prefix x x Duration literal with underlines 2a 2b 3.6.2.
English 3 Advanced Topics 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3.6.2.
TIME T#0s DATE TIME_OF_DAY DATE_AND_TIME D#0001-01-01 TOD#00:00:00 DT#0001-01-0100:00:00 STRING 3.6.2.11 `(the empty string) 3 Advanced Topics x x x x English OpenPCS2008 x Table 14: Data type initial value declaration features No.
English 3 Advanced Topics VAR_OUTPUT x VAR_IN_OUT x VAR_EXTERNAL x VAR_GLOBAL x VAR_ACCESS x RETAIN x CONSTANT x AT x 3.6.2.14 Table 17: Variable type assignment features No.
7 Retentive array declaration and initialization x 8 Initialization of structured variables x 9 Initialization of constants x 3.6.2.16 Table 19: Graphical negation of Boolean signals No. Description Yes 1 Negated input x 2 Negated output 3.6.2.17 No. 1 No x Table 20: Use EN input an ENO output Description Yes Use of EN and ENO 2 Use of EN and ENO 3 FBD without EN and ENO 3.6.2.18 No x x x Table 21: Typed and overloaded functions No.
English 3 Advanced Topics If you are using TIME-values, only TIME_TO_DINT and DINT TO_TIME are implemented. Other TIME-cast-functions are only available within the Ladder-Diagram-Editor. For no. 1, (*) is the input variable data type and (**) is the output variable data type. The following data types are supported: BOOL BYTE DINT DWORD INT REAL SINT STRING TIME UDINT UINT USINT WORD 3.6.2.20 Table 23: Standard functions of one numeric variable No.
14 SUB - x 15 DIV / x 16 MOD 17 EXPT 3.6.2.22 x ** 18n MOVE 18s x x := x Table 25: Standard bit shift functions No. Name Yes 1 SHL x 2 SHR x 3 ROR x 4 ROL x 3.6.2.23 Name Yes 5 AND x 6 OR x 7 XOR x 8 NOT x 3.6.2.24 1 No Table 27: Standard selection functions Name Yes SEL No x 2a MAX x 2b MIN x 3 LIMIT 4 MUX 3.6.2.25 No Table 26: Standard bitwise Boolean functions No. No.
English 3 Advanced Topics OpenPCS2008 7 EQ x 8 LE x 9 LT x 10 NE x 3.6.2.26 No. Table 29: Standard character string functions Name Yes 1 LEN x 2 LEFT x 3 RIGHT x 4 MID x 5 CONCAT x 6 INSERT x 7 DELETE x 8 REPLACE x 9 FIND x 3.6.2.27 No.
3 Advanced Topics 14 15 RTC 3.6.2.28 No. x Table 31: Functions of enumerated data types Name Yes No 1 SEL x 2 MUX x 3 EQ x 4 NE x 3.6.2.29 English OpenPCS2008 Table 33: Function block declaration features No.
English 3 Advanced Topics 9b OpenPCS2008 - falling edge inputs 3.6.2.30 Table 34: Standard bistable function blocks No. Name Yes 1 SR x 2 RS x 3 SEMA 3.6.2.31 No x Table 35: Standard edge detection function blocks No. Name Yes 1 R_TRIG x 2 F_TRIG x 3.6.2.32 No Table 36: Standard counter function blocks No. Name Yes 1 R_TRIG x 2 F_TRIG x 3.6.2.33 x No Table 37: Standard timer function blocks No.
3 Advanced Topics 4a Input/output declaration (textual) x 4b Input/output declaration (graphical) x 5a Function block instance name as input (textual) x 5b Function block instance name as input (graphical) x 6a Function block instance name as input/output (textual) x 6b Function block instance name as input/output (graphical) x 7a Function block instance name as external variable (textual) x Function block instance name as external variable (graphical) x 7b 8a 8b Textual declaratio
English 3 Advanced Topics 19 Use of directly represented variables x 20 VAR_GLOBAL .. END_VAR Declaration within a PROGRAM x 21 3.6.2.35 VAR_ACCESS .. END_VAR Declaration within a PROGRAM x Table 40: Step features No. Description Yes 1 Step graphical x Initial step graphical x 2 No Step textual x Initial Step textual x 3a Step flag general form x 3b Step flag - direct connection of Boolean variable x 4 Step elapsed time x 3.6.2.
No. Description 1 Boolean variable as action x 2l graphical declaration in LD language x 2s inclusion of SFC elements in action x 2f graphical declaration in FBD language x 3s textual declaration in ST language x 3i graphical declaration in IL language 3.6.2.38 Yes 3 Advanced Topics No x Table 43: Step/action association No. Description 1 action block x 2 concatenated action blocks x 3 textual step body 4 action block `d` field 3.6.2.
English 3 Advanced Topics 4 S (set stored) x 5 L (time limited) x 6 D (time delayed) x 7 P (pulse) x 8 SD (stored and time delayed) x 9 DS (delayed and stored) x 10 SL (stored and time limited) x 3.6.2.41 Table 46: Sequence evolution No.
4 AND N,( x 5 & N,( x 6 OR N,( x 7 XOR N,( x 8 ADD ( x 9 SUB ( x 10 MUL ( x 11 DIV ( x 12 GT ( x 13 GE ( x 14 EQ ( x 15 NE ( x 16 LE ( x 17 LT ( x 18 JMP C, N x 19 CAL C, N x 20 RET C, N x 21 ) 3.6.2.43 x Table 53: Function block invocation features for IL language No. Description Yes 1 CAL with input list x 2 CAL with load/store of inputs x 3 Use of input operators 3.6.2.
English 3 Advanced Topics OpenPCS2008 7 Divide x 8 Modulo x 9 Add x 10 Subtract x 11 Comparison x 12 Equality x 13 Inequality x 14 Boolean AND x 15 Boolean AND x 16 Boolean Exclusive XOR x 17 Boolean OR x 3.6.2.45 Table 56: ST language statements No. Description Yes 1 Assignment x 2 Function block invocation and FB output usage x 3 RETURN x 4 IF x 5 CASE x 6 FOR x 7 WHILE x 8 REPEAT x 9 EXIT x 10 Empty Statement x 3.6.2.46 No.
3 Advanced Topics Horizontal/vertical connection: 5 ISO/IEC 646 `plus` character 6 graphic or semigraphic x x Line crossing without connection: 7 ISO/IEC 646 characters 8 graphic or semigraphic x English OpenPCS2008 x Connected and non-connected corners: 9 ISO/IEC 646 characters 10 graphic or semigraphic x x Blocks with connecting lines 11 ISO/IEC 646 characters 12 graphic or semigraphic 13 Connectors using ISO/IEC 646 characters: 14 Connector, Continuation of a connected line x x
English 3 Advanced Topics OpenPCS2008 1 Left power rail x 2 Right power rail x 3.6.2.49 Table 60: Link Elements No. Description Yes 1 Horizontal link x 2 vertical link with attached horizontal links x 3.6.2.50 No. No Table 61: Contacts Description Yes No Normally open contact 1 x 2 x Normally closed contact 3 x 4 x Positive transition-sensing contact 5 x 6 x Negative transition-sensing contact 7 x 8 x 3.6.2.51 152 Table 62: Coils No.
3 Advanced Topics 8 Positive transition-sensing coil x 9 Negative transition-sensing coil x 3.6.2.52 Table 63: Reserved Names Names of data types cannot be used for file or variable names. The following names are also not allowed for variables and/or files: English OpenPCS2008 D L N P Q 3.6.2.53 FBD language Elements [Note: this chapter is empty because the corresponding chapter in IEC61131-3 does not list any features to be referenced here]. 3.6.2.54 Table D.
English 3 Advanced Topics 2.3.3 OpenPCS2008 Maximum - number of array subscripts - array size - number of structure elements - structure size - number of variables per declaration 6 < 4KB per POU < 8KB per POU 2.3.3.1 Maximum number of enumerated values < 64 KB per POU 2.3.3.2 Default maximum length of STRING variables Maximum permissible length of STRING variables 32 Maximum number of hierarchical levels 5 2.4.1.1 253 [see note 1] Logical or physical mapping 2.4.1.
2.5.1.5 Maximum number of inputs of extensible functions IL: 2, LD/FBD: unlimited 2.5.1.5.1 Effects of type conversions on accuracy Truncated 2.5.1.5.2 Accuracy of functions of one variable Currently not supported 3 Advanced Topics English OpenPCS2008 Implementation of arithmetic functions 2.5.2 Maximum number of function blocks and instantiations ca. 8000 [see note 2] 2.5.2.3.3 PVmin, PVmax of counters minimum/maximu m value of respective data type 2.5.
English 3 Advanced Topics OpenPCS2008 Task interval resolution Pre-emptive or non-preemptive scheduling 3.3.1 Maximum length of expressions Partial evaluation of Boolean expressions unlimited no 3.3.2 Maximum length of statements Unlimited 3.3.2.3 Maximum number of CASE selections Unlimited 4.1.1 Graphic/semigraphic representation Graphic Restrictions on network topology 4.1.
3 Advanced Topics a selection function Selector (K) out of range for MUX function 2.5.1.5.5 Invalid character position specified - English OpenPCS2008 Result exceeds maximum string length 2.5.1.5.6 Result exceeds range for data type Restriction to maximum value (see 2.2.3.1) 2.6.2 Zero or more than one initial step in the SFC network - User program attempts to modify step state or time 2.6.2.5 Simultaneously true, nonprioritized transitions in a selection divergence - 2.6.
English 3 Advanced Topics OpenPCS2008 without value assigned 3.3.2.4 Iteration fails to terminate - 4.1.1 Same identifier as connector label and element name - 4.1.4 Uninitialized feedback variable - 4.1.5 Numerical result exceeds range for data type - Division by 0 3.7 Online Features 3.7.1 Breakpoints OpenPCS supports Breakpoints in textual languages ST and IL. Breakpoints are currently not supported in Native Code, so set optimization to "size".
3 Advanced Topics As a restart is not necessary, variable values of program parts that are not affected by the changes will keep their current values (i.e. they will not be reset to their initial values). This, however, is dependent on the complexity of the changes. Impact of changes: Variables are only reset to their initial values if a initial value of a variable in their segment changes. So changes within the code or of the type, scope, name, ...
English 160 3 Advanced Topics OpenPCS2008 3.7.4 Error Logs A detailed Error Log can be uploaded from the controller via PLC -> Upload Error Log. The uploaded file will be named yymmdd_hhmmssErrorlog.txt and will be stored in the current project directory. Error Logs is an optional target system feature. © 1994 – 2010 infoteam Software GmbH • www.infoteam.
4 Reference 4 Reference 4.1 Keywords (by category) 4.1.1 IEC61131 Standard Function Blocks OpenPCS implements the following function blocks of IEC61131-3: CTD CTU CTUD F_TRIG R_TRIG RS SR TOF TON TP English OpenPCS2008 4.1.2 IEC61131-3 Standard Functions OpenPCS implements the following functions of IEC61131-3: ABS ACOS AND ASIN ATAN CONCAT COS DELETE EQ EXP FIND GE GT INSERT LE LEFT LEN LIMIT LN LOG LT MAX MID MIN MOD MUX NE © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 4 Reference OpenPCS2008 NEG OR REAL_TO_* RIGHT ROL ROR SHL SIN SHR SQRT TAN TIME_TO_* TRUNC XOR RIGHT 4.1.3 IEC61131-3 operations OpenPCS implements the following operations of IEC61131-3: ADD ADD (time) DIV DIV (time) MUL MUL (time) SUB SUB (time) 4.1.
4 Reference DWORD INT REAL SINT STRING TIME_OF_DAY TIME UDINT UINT WORD English OpenPCS2008 The following data types are defined by OpenPCS in addition to IEC611313: POINTER VARINFO 4.1.6 Declaration Keywords END_TYPE END_VAR RETAIN TYPE VAR_GLOBAL VAR_IN_OUT VAR_INPUT VAR_OUTPUT VAR 4.1.
English 4 Reference OpenPCS2008 S BOOL R BOOL Mathematical Operations: ADD SUB MUL DIV Load/Save Instructions: LD ANY LDN ANY_BIT ST ANY STN ANY_BIT Logical Operators: GT GE EQ NE LE LT 4.1.8 Structured Text Keywords OpenPCS uses the following keywords in Programming Language Structured Text: := (Assignment) BY CASE DO ELSE ELSIF END_CASE END_FOR END_IF END_REPEAT END_WHILE EXIT FOR IF OF REPEAT RETURN TO UNTIL WHILE 4.1.9 CANopen CAN_RECV_EMCY 164 © 1994 – 2010 infoteam Software GmbH • www.infoteam.
4 Reference CAN_RECV_EMCY_DEV CAN_NMT CAN_GET_STATE CAN_SDO_WRITE8 CAN_SDO_READ8 CAN_GET_CANOPEN_KERNEL_STATE CAN_GET_LOCAL_NODE_ID CAN_REGISTER_COBID CAN_PDO_READ8 CAN_PDO_WRITE8 CAN_SDO_READ_STR CAN_SDO_WRITE_STR CAN_WRITE_EMCY CAN_RECV_BOOTUP_DEV CAN_RECV_BOOTUP CAN_ENABLE_CYCLIC_SYNC CAN_SEND_SYNC English OpenPCS2008 4.1.
English 4 Reference OpenPCS2008 L(Action Qualifier) Lreal Lword N (Action Qualifier) On P(Action Qualifier) Priority PT PV Q(Parameter) Q1 QD QU R(Action Qualifier) R1 READ_ONLY READ_WRITE Release Resource RTC S(Action Qualifier) S1 SD SEL SEMA Single SL STEP Task TOD Transition ULINT USINT VAR_ACCESS WITH 4.2 Keywords (A..Z) 4.2.1 “)” (Right-parenthesis-operator) The right-parenthesis-operator executes an instruction, deferred by the leftparenthesis-modifier.
4 Reference ) ST f Notes: This is an instruction in language Instruction List It is defined by IEC61131-3 English OpenPCS2008 4.2.2 *_TO_BOOL 0 is converted to false, everthing else to true. The conversions String_to_bool and Real_to_bool are described in the respective sections. 4.2.3 *_TO_STRING Inputs original data type * Returns converted data type string The function block converts the first value of type * into the same value of type string.
English 4 Reference OpenPCS2008 Please note the following anomaly of the ABS function: The mathematical understanding of the ABS function is that it will never return a negative value. The signed integer data types in IEC61131-3 have a defined range of values which is asymmetric, e.g. SINT from -128..+127. As defined by IEC61131-3, the ABS function will return the same data type that it is provided as an input, e.g. when called with an SINT input, ABS will return an SINT output.
4 Reference TIME Addition of the two time values provided Addition of TIME values Notes: Standardization: this is an operation defined by IEC61131-3. 4.2.9 AND Inputs IN1: ANY_BIT Input 1 IN2: ANY_BIT Input 2 Returns ANY_BIT logical, bit by bit AND of Input 1 and Input 2 English OpenPCS2008 Notes: Standardization: this function is defined by IEC61131-3. The feature Append Input Connector is available for this function block 4.2.
English 4 Reference OpenPCS2008 4.2.14 ANY_INT ANY_INT is a ‘generic’ data type defined by IEC61131-3. You are not allowed to use this data type to declare variables. Wherever this data type is used, it is understood to mean any one of the following: SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT. 4.2.15 ANY_NUM ANY_NUM is a ‘generic’ data type defined by IEC61131-3. You are not allowed to use this data type to declare variables.
4 Reference x3: ARRAY[0..1, 0..2, 0..3] of INT := [[[1,2,3,4],[5,6,7,8],[9,10,11,12]],[[13,14,15,16],[17,18,19,20],[21,22,23,2 4]]]; END_VAR Note: OpenPCS uses 16bit signed integers to represent array subscripts for performance reasons. Array bounds may not exceed the [-32768;32767]range. English OpenPCS2008 4.2.18 ASIN Input In: REAL Returns REAL: arcus sine of input 4.2.19 Assignment An Assignment will assign the result of an expression to a variable. Example VAR a: INT; b: ARRAY [0..
English 4 Reference OpenPCS2008 VAR x2 at %qw1.0: word; END_VAR 4.2.21 ATAN Input In: REAL Returns REAL: arcus tangens of input 4.2.22 BOOL See Elementary Data Types Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.23 BOOL_TO_* Inputs original data type bool Returns converted data type * The function block converts the first value of type bool into the same value of type *.
4 Reference Standardization: this is a data type defined by IEC61131-3. 4.2.26 CAL The program will be continued at the function block whose name is passed as operand. The unconditioned invocation may only be used as the end of a sequence and is not permitted within bracketing operations. English OpenPCS2008 Notes: This is a keyword in language Instruction List. This is defined by IEC61131-3. See also EN. 4.2.
English 4 Reference OpenPCS2008 4.2.30 CAN_GET_CANOPEN_KERNEL_STATE Function block for state query of the CANopen kernel of the local PLC.
4 Reference UNKNOWN: The CANopen device on the given address supports neither Heartbeat nor Lifeguarding, thus the state cannot be monitored. This state is also reported on an PLC without a CANopen Master if either no PLC with a CANopen Master is available in the network that supports a state transmission or if the Master PLC in question is in a stop state (PLC program has been halted).
English 4 Reference OpenPCS2008 ERROR : WORD State or error code corresponding to the data type „CIA405_CANOPEN_KERNEL_ERROR“ ERRORINFO : DWORD Additional information on the error DATA0 – DATA7 : BYTE Data bytes of the received message DATALENGTH : USINT Length of the received message The function block CAN_PDO_READ8 reads a PDO or CAN Layer 2 message via the network layer. The message must be registered via CAN_REGISTER_COBID before.
4 Reference The function block CAN_RECV_BOOTUP_DEV is used for reading Bootup messages of any node from the receiving buffer of the network layer. If a message is received succesfully CONFIRM is set to TRUE, otherwise the buffer contains no message of any node. The function block always return the oldest message (FIFO-prinziple) und delets the read message in the buffer. This functiion block is only available on control units in “PLC with CANopen Master” mode. English OpenPCS2008 4.2.
English 4 Reference OpenPCS2008 The function block CAN_RECV_EMCY is used for reading the emergency messages of any nodes from the network layer‘s receiving buffer. If upon the return of the function block the output CONFIRM is set to TRUE, the output DEVICE reports the node address from which the message was received. The elements EMCY_ERR contain the emergency error information of the node corresponding to the CiA Draft Standard 301.
4 Reference by the PLC program. The function blocks CAN_RECV_EMCY_DEV and CAN_RECV_EMCY both access the same receiving buffer. This function block is only available on one control unit in "PLC with CANopen Master" mode 4.2.40 CAN_REGISTER_COBID Function block for registering or erasing the receipt of PDOs and CAN Layer 2 messages via the network layer.
English 4 Reference OpenPCS2008 CONFIRM : BOOL Output for signal service completion by the function block The function block CAN_SDO_READ8 is used to read the object entries of a node currently being used by the SDO transfer. The SDO transfer is always executed in the background. If the output CONFIRM is set to TRUE upon the return of the function block, the elements DATA0 through DATA7 receive the individual bytes of the object entry that was read.
4 Reference If CONFIRM is TRUE, the read string is stored in RXDATA and RXLENGTH contains ist length. 4.2.43 CAN_SDO_WRITE8 Function block for writing object entries of a node by way of an SDO transfer.
English 4 Reference OpenPCS2008 SDOTYPE : SUBINDEX Type of the SDO transfer.
4 Reference EMCY_ADD_INFO : WORD Additional information for diagnostic purpose ENABLE : BOOL Input for enabling or locking the function block NETNUMBER : USINT Network number Output ERROR : WORD Error code corresponding to the data type "CIA405_CANOPEN_KERNEL_ERROR" CONFIRM : BOOL utput for signal service completion by the function block The function block CAN_WRITE_EMCY is used for sending application specific Emergency-Messages through the network layer.
English 4 Reference OpenPCS2008 In this example, the value of ´number´ will be determined, and if it is equal to 10, ´amount´ will be incremented, if it is equal to ´11´, ´amount´ will be decreased. In any other case, ´amount´ will be set to equal ´number´. Notes: This is a keyword only for language ST. This is defined by IEC61131-3. 4.2.48 CD This is the name of a formal parameter of a standard function block (CTD), and as such defined to be a keyword. 4.2.
4 Reference In: REAL Returns REAL: cosine of input 4.2.55 CR CR is the abbreviation of Current Result, the virtual accumulator used in IEC61131-3 programming languages. English OpenPCS2008 4.2.56 CTD The function block "CTD" serves for counting down impulses received from the input operand "CD". On initialization, the counter will be set to "0". If the operand "LOAD" is "1", the value received by the operand "PV" will be taken over as a value into the counter.
English 4 Reference OpenPCS2008 Notes: Standardization: this function block is defined by IEC61131-3. 4.2.58 CTUD The function block "CTUD" serves for counting up and down impulses. On initialization, the counter will be set to the value "0". Every rising edge at the input operand "CU". will increase the counter by "1", while every rising edge at the input "CD" will decrease it by "1". If the operand "LOAD" is "1", the value received by the operand "PV" will be taken over as a value into the counter.
4 Reference 4.2.62 D(Action Qualifier) This is an Action qualifier, see Table 45 in the compliance statement. As OpenPCS only supports actions of type N, you will not need to use this keyword with OpenPCS. 4.2.63 DATE See Elementary Data Types English OpenPCS2008 Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.64 DATE_AND_TIME See Elementary Data Types Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.
English 4 Reference OpenPCS2008 4.2.68 DIV (time) Inputs In1: TIME time duration value In2: ANY_NUM divisor Returns TIME divided time value Division of TIME values Notes: Standardization: this is an operation defined by IEC61131-3. 4.2.69 DO See FOR and WHILE 4.2.70 DS This is an Action qualifier, see Table 45 in the compliance statement. As OpenPCS only supports actions of type N, you will not need to use this keyword with OpenPCS. 4.2.
4 Reference 2. If input and/or output variables are assigned in the same statement as the CAL instruction, these assignments are performed even if the CAL is not taken due to EN=FALSE. 3. By default, EN is TRUE 4.2.76 END_ACTION This keyword is defined by IEC61131-3 for the textual representation of programming language SFC. OpenPCS does not support the textual representation of SFC, hence you will not be able to enter this keyword. You will see this when printing SFC. English OpenPCS2008 4.2.
English 4 Reference OpenPCS2008 4.2.86 END_STEP This keyword is defined by IEC61131-3 for the textual representation of programming language SFC. OpenPCS does not support the textual representation of SFC, hence you will not be able to enter this keyword. You will see this when printing SFC. 4.2.87 END_STRUCT See STRUCT. 4.2.88 END_TRANSITION This keyword is defined by IEC61131-3 for the textual representation of programming language SFC.
4 Reference Notes: Standardization: this function is defined by IEC61131-3. The function Append Input Connector is not available with this function block 4.2.94 ET This is the name of a formal parameter of a standard function block (TOF), and as such defined to be a keyword. English OpenPCS2008 4.2.95 ETRC Generally an event task will be executed only once. Since the reaction on a special event can last longer than one cycle, it is necessary to restart the current task again.
English 4 Reference 10 11 OpenPCS2008 Invalid array index access Error while executing a firmware function block 4.2.96 EXIT Any of the loops can be ´left´ under program control before the loop condition dictates so. The EXIT instruction will jump to the first instruction after the innermost loop.
4 Reference VAR_INPUT X : BOOL R_EDGE; Y : BOOL F_EDGE; END_VAR VAR_OUTPUT Z : BOOL ; END_VAR English OpenPCS2008 Z := X AND Y ; (* ST language example *) END_FUNCTION_BLOCK 4.2.100 F_TRIG Inputs CLK: bool input operand whose falling edge is detected Outputs Q: bool Output operand; indicates the falling edge of ´CLK´ The function block ´F_TRIG´ detects the status of the input operand ´CLK´.
English 4 Reference OpenPCS2008 Invocation of the FIND function in the program ´search´ PROGRAM search VAR Basic_Text : STRING := 'StartupCondition'; Search_Text : STRING := 'Switch'; Position : INT; END_VAR LD Basic_Text FIND Search_Text ST Position (* Position: 4 *) END_PROGRAM Notes: Standardization: this function is defined by IEC61131-3. 4.2.
4 Reference Check of the termination criterion and termination if necessary. Execution of the instruction block. Increase/decrease of the control variable about the step size. Go to step 2. Notes: English OpenPCS2008 This is a keyword only for language ST. This is defined by IEC61131-3. 4.2.105 FROM See Transition. 4.2.106 Function IEC61131-3 defines three block types: PROGRAM, FUNCTION and FUNCTION BLOCK. See block types under ‘Advanced Topics’ for more details.
English 4 Reference OpenPCS2008 4.2.107 FUNCTION BLOCK IEC61131-3 defines three block types: PROGRAM, FUNCTION and FUNCTION_BLOCK. See block types under ‘Advanced Topics’ for more details. The keywords FUNCTION_BLOCK and END_FUNCTION_BLOCK are typically invisible within OpenPCS, as they are maintained by the editors internally. 4.2.108 GE Inputs IN1: ANY input 1 IN2: ANY input 2 Returns BOOL RUE if Input 1 is greater or equal than Input 2 Notes: Standardization: this function is defined by IEC61131-3. 4.
4 Reference 4.2.111 GetTaskInfo Output Count: DWORD; (*number of cycles this task is executed *) LastCT: TIME; (*time needed for last cycle*) AverageCT: TIME; (*average time needed for execution*) MinCT: TIME; (*minimum time needed for execution*) MaxCT: TIME; (*maximum time needed for execution*) State: DWORD; (*not yet used GetTaskInfo returns information about the execution time of the last cycle of the current task. This function block has no input parameters. 4.2.
English 4 Reference OpenPCS2008 GETTIME, GETTIMECS will return the same value when called multiple times within the same cycle. Example •Stop Watch• PROGRAM StopW VAR begin, result : TIME; END_VAR ... start: LD t#0ms GETTIMECS ST begin ... stop: LD begin GETTIMECS ST result END_PROGRAM 4.2.
4 Reference the memory location returned must not be stored and used in another but the current execution cycle. 4.2.116 GT Inputs IN1: ANY Input 1 IN2: ANY Input 2 Returns BOOL TRUE if Input 1 is greater than or equal to Input 2 English OpenPCS2008 Notes: Standardization: this function is defined by IEC61131-3. 4.2.
English 4 Reference OpenPCS2008 b: INT :=5; maximum: INT; END_VAR IF a>b THEN maximum :=a; IF (a>10) THEN a:=a-1; ELSE a:=a+1; END_IF; ELSE maximum :=b; END_IF; Notes: This is a keyword only for language ST. This is defined by IEC61131-3. 4.2.118 IL IL is the abbreviation of Instruction List, one of the programming languages of IEC61131-3. 4.2.119 IN This is the name of a formal parameter of a standard function block (TOF), and as such defined to be a keyword. 4.2.
4 Reference Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.123 Interval This keyword is defined by IEC61131-3 for the textual definition of configurations, resources and tasks. With OpenPCS, these are defined and configured using property-dialog boxes. You will see this keyword in OpenPCS only when printing the definition of a configuration. English OpenPCS2008 4.2.124 JMP The program flow continues at the position specified by the jump target.
English 4 Reference OpenPCS2008 type of the operand determines the permissible data type for consecutive operands. Notes: This is a keyword in language Instruction List. This is defined by IEC61131-3. 4.2.129 LD (Ladder Diagram) LD is the abbreviation of Ladder Diagram, one of the programming languages of IEC61131-3. 4.2.130 LDN The operand is evaluated, and the current result is loaded with the negated value. The operand is not modified.
4 Reference 4.2.134 LIMIT Inputs MN: Any_Num lower limit IN: Any_Num Test value MX: Any_Num Upper Limit Returns Any_Num One of the input values, see description The ´MN´ and ´MX´ values define the lowest and highest limit value. The function compares the test value ´IN´ with ´MN´ and ´MX´. If ´IN´ is between the two limit values, it is loaded into the working register. If ´IN´ is smaller than ´MN´, the ´MN´ value is output. If ´IN´ is greater than ´MX´, the ´MX´ value is loaded.
English 4 Reference OpenPCS2008 4.2.140 Lword This is the name of an elementary data type, which is defined by IEC61131-3, but not supported by OpenPCS. See Table 10 in the compliance statement. 4.2.141 MUX OpenPCS does not implement the MUX function. Notes: Standardization: this function is defined by IEC61131-3. The feature Append Input Connector is available for this function block 4.2.
4 Reference The ´MIN´ function determines which input operand has the smallest value. The selected operand is loaded into the working register. Notes: Standardization: this function is defined by IEC61131-3. The feature Append Input Connector is available for this function block 4.2.145 Input English OpenPCS2008 MOD In1: ANY_INT In2: ANY_INT Returns ANY_INT The first input will be divided by the second input. MOD delivers the residue to current result. 4.2.
English 4 Reference OpenPCS2008 4.2.149 N (Action Qualifier) This is an Action qualifier, see Table 45 in the compliance statement. As OpenPCS only supports actions of type N, you will not need to use this keyword with OpenPCS. 4.2.150 NCC NCC is an acronym for native code compiler. 4.2.151 NE Inputs IN1: ANY input 1 IN2: ANY input 2 Returns BOOL TRUE if Input 1 is not equal to Input 2 Notes: Standardization: this function is defined by IEC61131-3. 4.2.
4 Reference IN1: ANY_BIT Input 1 IN2: ANY_BIT Input 2 Returns ANY_BIT logical, bit by bit OR of Input 1 and Input 2 Notes: Standardization: this function is defined by IEC61131-3. The feature Append Input Connector is available for this function block English OpenPCS2008 4.2.158 ORN Inputs IN1: ANY_BIT Input 1 IN2: ANY_BIT Input 2 Returns ANY_BIT logical, bitwise OR of Input 1 and negated Input 2 Notes: Standardization: this function is defined by IEC61131-3.
English 4 Reference OpenPCS2008 4.2.163 PROGRAM IEC61131-3 defines three block types: PROGRAM, FUNCTION and FUNCTION BLOCK. See block types under ‘Advanced Topics’ for more details. The keywords PROGRAM and END_PROGRAM are typically invisible within OpenPCS, as they are maintained by the editors internally. 4.2.164 PT This is the name of a formal parameter of a standard function block (TOF), and as such defined to be a keyword. 4.2.
4 Reference Example: FUNCTION_BLOCK AND_EDGE VAR_INPUT X : BOOL R_EDGE; Y : BOOL F_EDGE; END_VAR English OpenPCS2008 VAR_OUTPUT Z : BOOL ; END_VAR Z := X AND Y ; (* ST language example *) END_FUNCTION_BLOCK 4.2.173 R_TRIG Inputs CLK: bool Input operand whose rising edge is detected Outputs Q: bool Output operand; indicates the rising edge of ´CLK´ The function block ´R_TRIG´ detects the status of the input operand ´CLK´.
English 4 Reference OpenPCS2008 4.2.177 REAL See Elementary Data Types Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.178 REAL_TO_* Inputs original data type real Returns converted data type * The function block converts the first value of type real into the same value of type *. The following data types can be converted: BOOL Values within the interval ±1,175494351e-38 are cast to false all other values to true. Examples: 1.1 -> true -22.33 -> true 1.
4 Reference 4.2.179 Release This is the name of a formal parameter of a standard function block (SEMA), and as such defined to be a keyword. 4.2.180 REPEAT In contrast to the other loop types, REPEAT will check the loop expression after execution of the loop. The syntax is: English OpenPCS2008 REPEAT instructions; UNTIL expression END_REPEAT; So, the REPEAT loop will always be executed at least once.
English 4 Reference OpenPCS2008 configured using property-dialog boxes. You will see this keyword in OpenPCS only when printing the definition of a configuration. 4.2.183 RESUME The Resume function block enables to resume the execution after its has been stopped, e.g. in an interrupt task for error handling. Outputs: Q: BOOL TRUE if succeeded 4.2.184 RET The “RET“ instruction causes an unconditioned return jump to the calling POU – if this POU is the program POU, a return jump to the system program.
4 Reference Notes: This is a keyword in language Instruction List. This is defined by IEC61131-3. 4.2.188 RETURN The RETURN instruction will cause the current POU to be left, transferring control back to the caller of the current POU. Note that on working with functions, the function value (variable with the name of the function) must be assigned. If output values of function blocks aren’t assigned by local values of the function block, they have the predefined values of their data types.
English 4 Reference OpenPCS2008 ANY_BIT IN, rotated right N bits The rightmost bits will be rotated in from left. Notes: Standardization: this function is defined by IEC61131-3. 4.2.192 RS Inputs Set: bool Set condition Reset1: bool Reset condition Outputs Q1: bool Output state of the bistable element The characteristic feature of the ´RS´ function module is to have a state corresponding to its output variable Q1 and to have a dominant input Reset1. a. If Reset1 is true: Q1 is always false. b.
4 Reference 4.2.194 S(Action Qualifier) This is an Action qualifier, see Table 45 in the compliance statement. As OpenPCS only supports actions of type N, you will not need to use this keyword with OpenPCS. 4.2.195 S(et) The operand is set, if the content of the CR equals “1“. If this precondition is not met, operands will not be changed. The CR is not modified. English OpenPCS2008 Notes: This is a keyword in language Instruction List. This is defined by IEC61131-3. 4.2.
English 4 Reference OpenPCS2008 N: UINT Number of bits to shift Returns ANY_BIT IN, shifted left N bits Rightmost bits will be filled with zeros Notes: Standardization: this function is defined by IEC61131-3. 4.2.203 SHR Inputs IN: ANY_BIT Bit Pattern N: UINT Number of bits to shift Returns ANY_BIT IN, shifted right N bits Leftmost bits will be filled with zeros Notes: Standardization: this function is defined by IEC61131-3 4.2.204 Input SIN In: REAL Returns REAL: sine of input 4.2.
4 Reference 4.2.209 SR Inputs Set1: bool Set condition Reset: bool Reset condition Outputs Q1: bool Output state of the bistable element English OpenPCS2008 The characteristic feature of the ´SR´ function module is to have a state corresponding to its output variable Q1 and to have a dominant input Set1. a. If Set1 is true: Q1 is always true. b. If Set1 is false: Q1 is true, if it was true before and Reset is false. Q1 is initially false.
English 4 Reference OpenPCS2008 4.2.212 STEP This keyword is defined by IEC61131-3 for the textual representation of programming language SFC. OpenPCS does not support the textual representation of SFC, hence you will not be able to enter this keyword. You will see this when printing SFC. 4.2.213 STN The negated content of the CR register is assigned to the operand. This overwrites the value of the operand. The data type of the operand must match the data type of the data element in the register.
4 Reference ‘-1.6’ -> 254 (USINT), 65534 (UINT), 4294967294 (UDINT); (A sint -2 has the bit pattern: 1111 1110 which is interpreted as 254) ’33.3’ -> 33 REAL Analog the above conversion. The e-Notation is permitted Examples: ‘-123.456’ -> -123.456 ‘0.23’ -> 0.23 ‘-1.2e-2’ -> ’ –0.012 English OpenPCS2008 4.2.
English 4 Reference OpenPCS2008 In1: TIME time duration value In2: TIME Returns TIME difference between the two time values provided Subtraction of TIME values Notes: Standardization: this is an operation defined by IEC61131-3. 4.2.219 Input TAN In: REAL Returns REAL: tangent of input 4.2.220 Task This keyword is defined by IEC61131-3 for the textual definition of configurations, resources and tasks. With OpenPCS, these are defined and configured using property-dialog boxes.
4 Reference DINT DWORD INT REAL SINT STRING UDINT UINT USINT WORD English OpenPCS2008 Notes: 1. Standardization: this function is defined by IEC61131-3. 2. Except TIME_TO_DINT and TIME_TO_REAL, all TIME convert functions are only available within the LadderDiagram-Editor. 4.2.225 TO See FOR 4.2.226 TOD TOD can be used as an abbreviation to TIME_OF_DAY when specifying the data type of a literal constant.
English 4 Reference OpenPCS2008 Q: bool binary state of the timer ET: time current time value Notes: Standardization: this function block is defined by IEC61131-3 4.2.228 TON The rising edge of the input operand "IN" will start the timer "TON", and it will run as long a time interval as specified by the operand "PT". While the timer is running, the output operand "Q" will have the value "0". If the time is up, the state will change to "1" and keep this value until the operand "IN" changes to "0".
4 Reference English OpenPCS2008 Inputs IN: bool start timer PT: time initial time value Outputs Q: bool binary state of timer ET: time elapsed time Notes: Standardization: this function block is defined by IEC61131-3. 4.2.230 Transition This keyword is defined by IEC61131-3 for the textual representation of programming language SFC. OpenPCS does not support the textual representation of SFC, hence you will not be able to enter this keyword. You will see this when printing SFC. 4.2.
English 4 Reference OpenPCS2008 Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.235 UINT See Elementary Data Types Notes: Standardization: this is a data type defined by IEC61131-3. 4.2.236 ULINT This is the name of an elementary data type, which is defined by IEC61131-3, but not supported by OpenPCS. See Table 10 in the compliance statement. 4.2.237 UNTIL See REPEAT 4.2.238 USINT See Elementary Data Types Notes: Standardization: this is a data type defined by IEC61131-3 4.2.
4 Reference This is defined by IEC61131-3. 4.2.243 VAR_IN_OUT See Declaration Sections Notes: This is a keyword only for declaration parts of POUs. English OpenPCS2008 This is defined by IEC61131-3. 4.2.244 VAR_GLOBAL See Declaration Sections Notes: This is a keyword only for declaration parts of POUs. This is defined by IEC61131-3. 4.2.245 VAR_EXTERNAL See Declaration Sections Notes: This is a keyword only for declaration parts of POUs. This is defined by IEC61131-3. 4.2.
English 4 Reference OpenPCS2008 i : INT := 3; END_VAR WHILE i > 0 DO i:=i-1; END_WHILE; Initially, ´i´ equals 3. 3 is greater than 0, so the expression after WHILE is true and the loop body executed. This will decrement the value of ´i´ to 2. 2 is still greater than 0, so the loop body will be executed again. Sometime later, the loop body will decrement ´i´ from 1 to 0. On the next check, the expression after WHILE will be false, hence the loop body will not be executed again.
4 Reference IN1: ANY_BIT Input 1 IN2: ANY_BIT Input 2 Returns ANY_BIT logical, bitwise XOR of Input 1 and inverted Input 2 Notes: Standardization: this function is defined by IEC61131-3. The feature Append Input Connector is available for this function block 4.3 English OpenPCS2008 Errors and Warnings 4.3.1 How to Read Error Message In the Output Window you will find any error messages from the compiler. Each error message line fits the following style: 1.
English 4 Reference OpenPCS2008 You are using an IEC 61131-3 compatible version. In this version nested comments are not allowed. 4.3.3.2 S1001 Invalid character. An unsupported character was used. See also Table 1: Character set features 4.3.3.3 S1002 End of file found in comment. The end of the file was reached before an open comment has been closed. Please close the comment before calling the syntax check. 4.3.3.4 S1003 Reserved keyword. A reserved keyword was used an identifier. 4.3.3.
4 Reference day of the month. I. e. if the respective month has less than 31 days, the maximum number of days in the month is the greatest valid value for the day literal. 4.3.3.10 S1010 Exponent too large. English OpenPCS2008 The numeric value for the exponent of a real literal must be an integer in the range [–37, 38] and for a LREAL literal an INT in the range [–307, 308]. 4.3.3.11 S1011 Incorrect direct address.
English 4 Reference OpenPCS2008 T#5h_75m is not allowed. The correct representation of this duration literal is: T#6h_15m. 4.3.3.15 S1015 Invalid seconds entry. The numeric value for the seconds unit of a TIME literal must be a fixed point number in the range [0, 60] if seconds are not the most significant unit of the duration literal. An overflow is only permitted if the seconds unit is the most significant unit of the TIME literal. Example: T#75s is permitted. T#5m_75s is not allowed.
4 Reference The numeric value of the given constant exceeds the range of values of type DINT/UDINT. 4.3.3.20 S1020 Numeric value too large/small. English OpenPCS2008 A constant’s value must be in the range of representable values for its type. The type of a signed integer constant depends on the type of the variable the constant is assigned to but must not exceed the range of a LINT (8 byte integer) constant. 4.3.3.21 S1021 Error while processing a floating-point function of the math library. 4.3.3.
English 4 Reference OpenPCS2008 The manufacturer shall specify the correspondence between the direct representation of a variable and the physical or logical location of the addressed item in memory, input or output. When a direct representation is extended with additional integer fields separated by periods, it shall be interpreted as a hierarchical physical or logical address with the leftmost field representing the highest level of the hierarchy, with successively lower levels appearing to the right.
4 Reference 4.3.3.30 S1030 Too many identifiers. The maximum number of identifiers has been exceeded. Maximum 65535 identifiers are supported. English OpenPCS2008 4.3.3.31 S1031 Unallowed usage of EN. Just allowed as an identifier for a bool variable in input section. A variable with the name ‘EN’ has been declared in the wrong variable section or with incorrect type. The name ‘EN’ (enable) is reserved for Boolean input variables.
English 4 Reference OpenPCS2008 Tips Make sure that an instance of the requested function block is declared in one of the variable declaration sections. Make sure the name of the name of the function block instance is spelled correctly. 4.3.3.34 S3001 Function not present. A call to an unknown function has been found. A function must be declared before it can be used. The parameters that a function uses must be specified in a declaration, or prototype, before the function can be used.
4 Reference Tips Make sure the identifier has not been defined twice in the same program unit. Make sure the identifier has not been used in a user type declaration, a global type declaration or as a function, function block or program name. English OpenPCS2008 4.3.3.38 S3005 This is not a function block instance. A variable with the name used in a CAL-statement has been found but is not an instance of a function block. Tips Make sure that the identifier is spelled correctly.
English 4 Reference OpenPCS2008 An access to a member of a struct or function block variable has been attempted, but the member specified by the identifier is not a parameter of the accessed function block or struct instance. Tips Make sure that the identifier is spelled correctly. Make sure that the right function block or struct instance is used. If the accessed variable is an instance of a function block make sure that the function block has a parameter with the name given by the identifier.
4 Reference This error occurs, if an identifier, which is not a variable name or an enum constant, is used where a variable name or a constant is expected. Example: TYPE Colors : (red, yellow, blue) := red; END_TYPE VAR Color : Colors := Colors; (* Error: Enum constant expected. EnumType is a type name *) END_VAR English OpenPCS2008 LD Colors (* Error: constant or variable name expected. EnumType is a type name *) ST Color 4.3.3.46 S3014 Numeric data type expected.
English 4 Reference OpenPCS2008 This error occurs if an illegal combination of time and date data types is used for the input parameters of a SUB operation. For allowed combination of the input and output data types for this operation see Table 30 Functions of time data types in the IEC 1131-3 Compliance Statement. Example: VAR TimeVar : TIME; DateVar : DATE; END_VAR LD DateVar SUB TimeVar (* Error: SUB is not defined for the this combination of input parameters *) ST DateVar 4.3.3.
4 Reference END_TYPE VAR Color : Colors := green; (* Error: green has not been declared as an enum constant *) END_VAR English OpenPCS2008 LD IntVar (* Error: IntVar has not been declared. *) ADD 5 ST IntVar 4.3.3.57 S3028 Comparison not defined for the data type of the current result. The comparison on the given position is not defined for the type of the current result. I. e. the type of the actual parameter is incompatible with the type of the first formal parameter.
English 4 Reference OpenPCS2008 END_TYPE VAR DayVar1 : Day_of_Week; DayVar2 : Day_of_Week; BoolVar : BOOL; END_VAR LD DayVar1 GT DayVar2 (* Error: comparisons on structured variables are not allowed *) ST boolVar 4.3.3.59 S3032 Self-referencing (i.e., recursive) declarations are not allowed. Recursion detected. A function cannot invoke itself recursively, neither directly nor indirectly (i.e. by invoking another function, that invokes one of the functions in the calling hierarchy).
4 Reference 4.3.3.62 S3035 Unallowed operand type for this function! Numeric operand or operand of date or time type expected. The operation at the given position is not defined for the type of the current result (i.e. the first actual parameter). English OpenPCS2008 Example: VAR BitMake: WORD; END_VAR LD BitMask (* Error: operand must be of type TIME, ANY_DATE or ANY_NUM *) SUB 3 ST BitMask 4.3.3.63 S3036 Integer constant is out of range.
English 4 Reference OpenPCS2008 4.3.3.66 S3039 Index is out of bounds. An access to a variable of an array type has been attempted with an index whose value is out of the range specified in the type or variable declaration. 4.3.3.67 S3040 Invalid data type. ANY_NUM required. The operation at the given position is not defined for the type of the current result (i.e. the first actual parameter).
4 Reference 4.3.3.71 S3046 Type names cannot be used as an instance names. A type name or the name of a program organization unit has been used in a declaration as a variable name. Program organization units and types defined on project level are known in the whole project scope and their names cannot be used as identifiers for local variables.
English 4 Reference OpenPCS2008 Local2 : int; END_VAR (* correct: parameter order matches declaration order *) Example(In1 := Local1, In2 := Local2); (* WRONG: does not match declaration order *) Example(In2 := Local2, In1 := Local1); 4.3.3.73 S3048 Possible string truncation in assignment. This warning is issued if the destination string in a string assignment has a shorter overall length than the source string. This check is done at compile time based on the declared lengths of both strings.
4 Reference VAR dirVar1, dirVar2, dirVar3 : at%I0.0; END_VAR 4.3.3.77 S4001 Too many variables (identifiers). Maximum is 60 identifiers. English OpenPCS2008 Too many identifiers in the identifier list of a variable declaration. Identifier lists with maximum 60 identifiers are supported. 4.3.3.78 S4003 Array too big. The element count of a dimension in an array declaration exceeds the maximum number of elements supported by OpenPCS. The maximum element count is determined by the supported index range. 4.
English 4 Reference OpenPCS2008 An empty structure has been declared. This is not allowed. A structure must contain at least one member variable. Example: Not allowed: TYPE Mystruct : struct end_struct; END_TYPE Allowed: TYPE Mystruct : STRUCT M1 : int; END_STRUCT END_TYPE 4.3.3.84 S4010 Simultaneous type declarations are not allowed. The type declaration on the specified position contains a list of identifiers. This is not allowed. Please write a declaration for any new type.
4 Reference A variable declaration part (VAR END_VAR) was found in a unit where it is not supported. Variable declaration parts are allowed in programs, functions and function blocks. 4.3.3.87 S4013 Valid only in PROGRAMs, FUNCTION_BLOCKs, and in FUNCTIONs. English OpenPCS2008 An input variable declaration (VAR_INPUT END_VAR) part was found in a program organization unit where it is not supported. 4.3.3.88 S4014 Valid only in PROGRAMs and in FUNCTION_BLOCKs.
English 4 Reference OpenPCS2008 The qualifier ‘RETAIN’ has been used in a variable declaration part in which it is not supported. 4.3.3.94 S4020 Valid only in PROGRAMs or in FUNCTION_BLOCKs and there within VAR_INPUT-Sections with Type 'BOOL' without Initialization. A variable has been declared with an edge qualifier in a program organization unit or variable declaration part where this is not supported. 4.3.3.95 S4021 Valid only within VAR_INPUT, VAR_OUTPUT, and VAR_IN_OUT-Sections.
4 Reference A : INT; END_VAR VAR_GLOBAL A : INT := 5 END_VAR English OpenPCS2008 4.3.3.99 S4033 Multiple initialization. A member of a struct variable has been initialized more than once. This error occurs when both an explicit struct initialization and a per element initialization are made.
English 4 Reference OpenPCS2008 The function type must be a predefined type or an identifier. This error occurs most commonly, when a reserved keyword, a IEC61131-3 character string or a number is used as a function type or if no function type has been defined. 4.3.3.102 S4036 FUNCTIONs need at least one input parameter VAR_INPUT. A function has been defined without an input parameter. In IEC61131-3 a function needs at least one input-parameter. 4.3.3.103 S5000 Wrong parameter type.
4 Reference An instance of a function block has been defined in a variable section with CONSTANT attribute. This is not allowed. Please remove the attribute or move the instance declaration in another variable section, which has no CONSTANT attribute. 4.3.3.107 S5004 Function blocks instances are invalid in 'FUNCTION'-POUs, STRUCTs, and in ARRAYs. English OpenPCS2008 An instance of a function block has been defined in a variable section of a function or as a member of a STRUCT or an ARRAY type.
English 4 Reference OpenPCS2008 LD Switch EQ TRUE JMPC NextStep LD TRUE JMP End (* The value loaded in the previous statement will be lost after the JMP-statement *) NextStep: LD FALSE END: ST Switch (* Error: Current result is undefined after a label *) (* Code *) END_PROGRAM 4.3.3.112 S5010 Invalid instruction within a parentheses computation. The instruction at the given position is not allowed between parentheses. Please replace the instruction or move it out of the parentheses.
4 Reference ST CurrentCountValue END_FUNCTION_BLOCK PROGRAM main VAR Counter : Count; StartValue : DINT; Result : DINT; English OpenPCS2008 END_VAR LD 5 ADD (StartValue ST Counter.StartValue EQ 1000 ST Counter.fReset CAL Counter (* Error: CAL is not allowed between parentheses *) LD Counter.CurrentCounter (* Error: Load is not allowed between parentheses *) ) ST Result END_PROGRAM. 4.3.3.113 S5011 ARRAYs of function block instances are invalid. Arrays of function blocks are not supported. 4.3.3.
English 4 Reference OpenPCS2008 VAR InVar : INT; END_VAR (* Code *) END_FUNCTION PROGRAM main VAR X : DINT; END_VAR LD x ADD 1000 Fun1 (* Error: result type of the preceding operation is DINT, the type of the first input parameter of Fun1 is INT *) ST x END_PROGRAM 4.3.3.116 S5014 Wrong number of parameters. Too many parameters found in a call of a function or a function block. 4.3.3.117 S5015 Invalid type for direct address. A located variable has been declared with an unsupported type.
4 Reference An array initialization has been assigned to a variable which is not of an array type. Example. VAR A : INT := [4]; (* not allowed *) END_VAR English OpenPCS2008 4.3.3.121 S5019 Initialization value and variable type incompatible. The type of the initialization value and the type of the variable are incompatible. Example: VAR X : INT := 65000; END_VAR 4.3.3.122 S5020 Too many initialization values.
English 4 Reference OpenPCS2008 This error occurs, when in a call of a function block instance a parameter is initialized twice. Example: FUNCTION_BLOCK Fb1 VAR_INPUT InParam1 : int; InParam2 : int; InParam3 : bool; END_VAR (* Code *) END_FUNCTION_BLOCK PROGRAM main VAR fbInst : fb1; END_VAR (* Code *) cal fbInst( InParam1 := 1, InParam1 := 2, InParam3 := true ) (* Code *) END_PROGRAM 4.3.3.125 S5023 Too much initialization data.
4 Reference The operation on the given position is not defined for the type of the current result. I. e. the type of the actual parameter is incompatible with the type of the first formal parameter. Example: VAR X : REAL; END_VAR LD 1 (* The constant 1 can be converted implicitly to any integer or any bit type *) LN (* Error: LN is only defined for ANY_REAL types *) ST X English OpenPCS2008 4.3.3.127 S5025 Unallowed parameter type for this function.
English 4 Reference OpenPCS2008 END_VAR LD 1 (* The constant 1 can be converted implicitly to any integer or any bit type *) MAX X (* Error: X is of type REAL *) ST X 4.3.3.130 S5028 Data type not allowed for this operation. This error occurs, if the type of an actual parameter is not allowed for the operation at the given position. Example: VAR StringVar : STRING; END_VAR LD 1 CONCAT ‘EXAMPLE’(* Error: CONCAT expects a STRING operand as first input parameter *) ST StringVar 4.3.3.
4 Reference ) (* Code *) END_PROGRAM 4.3.3.132 S5030 Variable is write-only. Read-access invalid. English OpenPCS2008 A read access has been attempted to a variable, that has only write access. 4.3.3.133 S5031 Bit access allowed only on bit data types. This error occurs if a bit selection is attempted on a variable that is not of a bit data type or of type BOOL. Example: VAR DintVar : DINT; BoolVar : BOOL; END_VAR LD DintVar.
English 4 Reference OpenPCS2008 This error occurs, if at least one of the IN_OUT parameters of a function block is not supplied with an actual parameter, when calling an instance of the respective function block. IN_OUT parameters are references and have to be supplied with an actual parameter in every call of a function block instance.
4 Reference InOutParam2 : BOOL; END_VAR (* Code *) END_FUNCTION_BLOCK PROGRAM main VAR fbInst : fb1; IntVar1 : INT; IntVar2 : INT; END_VAR (* Code *) cal fbInst( InOutParam1 := IntVar1, InOutParam2 := 5 ) (* Error: the actual parameter for the second IN_OUT parameter is a constant. *) English OpenPCS2008 cal fbInst( InOutParam1 := IntVar1, InOutParam2 := (IntVar1 ADD IntVar2) ) (* Error: the actual parameter for the second IN_OUT parameter is an expression.
English 4 Reference OpenPCS2008 This error occurs, if a local user defined type is used in the declaration of a global or external variable or in the declaration of a parameter. Global and external variables as well as parameters have to be of a predefined type or of a global type. Global types are either hardware dependent types, provided by the firmware or project global user defined types.
4 Reference This error occurs, if an access to an array element is attempted with more indices as dimensions provided in the type definition of the elements data type. Example: PROGRAM main TYPE ArrayType : Array[1..5, 1..20] of INT; (* Other type definitions *) END_TYPE VAR ArrayVar : ArrayType; IntVar : INT; (* Other variable definitions *) END_VAR LD ArrayVar[1, 2, 3] (* Error: Variables of type ArrayType have only 2 dimensions *) ST IntVar English OpenPCS2008 (* Code *) END_PROGRAM 4.3.3.
English 4 Reference OpenPCS2008 END_FUNCTION_BLOCK PROGRAM main VAR_GLOBAL OutputLocation AT%Q0.0 : BOOL; END_VAR VAR Switch : SetOutput; CurrentValue : BOOL; END_VAR LD CurrentValue NOT CAL Switch(Value := CurrentValue) END_PROGRAM. 4.3.3.141 S5039 '&x' is only allowed if x is a direct variable. The identifier preceded by the &-operator is not the name of a directly represented variable. Tips: Make sure that the name is spelled correctly. Make sure that the variable is a directly represented variable.
4 Reference 4.3.3.143 S5041 Values of type INT24 or REAL48 are invalid in this context. Operation not supported for this type. 4.3.3.144 S5042 Function block instances may not be 'RETAIN'. English OpenPCS2008 An instance of a function block has been defined in a variable section with RETAIN attribute. This is not supported. Please remove the attribute or move the instance declaration in another variable section, which has no RETAIN attribute. 4.3.3.
English 4 Reference OpenPCS2008 4.3.3.148 S6005 Too many types and function blocks. For the maximum number of type definitions please consult your hardware documentation. This error occurs, if too many types functions or function blocks have been used in the calling hierarchy of a program organization unit. For the maximum number of types, functions and function blocks supported see the Table D.1: Implementation-dependent parameters 4.3.4 Linker Messages 4.3.4.
4 Reference Tips: Check if the address is spelled correctly. Check if the syntax of the address description is correct. The syntax of the address description is hardware dependent, but must be a string formed of the percent sign "%" followed by a location prefix, a size prefix and one or more unsigned integers, separated by periods (.). The size prefix may be empty. For valid location and size prefixes consult your hardware documentation. English OpenPCS2008 4.3.4.
English 4 Reference OpenPCS2008 A directly represented variable with RETAIN attribute has been found. This is not supported by the hardware. Please move the variable declaration in another section or remove the attribute from the section. 4.3.4.10 L10034 Attribute CONST not supported for directly represented variables. A directly represented variable with CONST attribute has been found. This is not supported by the hardware.
4 Reference code compiler is installed. If you do not have a native code compiler please select another optimization in the "Edit Resource Specifications" dialog. For a native code compiler for your hardware please refer to your manufacturer. 4.3.4.16 L12001 Type conflict. Type of external the variable doesn't match with type of the global variable with the same name.
English 4 Reference OpenPCS2008 The object file (.crd) for the specified task has not been found. Please rebuild the whole resource. 4.3.4.22 L12008 Interpreter stack overflow in task . Interpreter call-stack-overflow. Please reduce the depth of the calling hierarchy of . 4.3.4.23 L12064 Error exporting OPC variables to OPC server configuration. Error code: %1. An OPC variable is erroneous. Please use a proper one. 4.3.4.24 L12065 Error initializing ConfOPC.DLL.
4 Reference 4.3.4.29 L12999 Invalid object version found. Object version found/expected: . The object file version and the compiler object version are different. The object file has been created with a different compiler version. Please recompile the whole resource. English OpenPCS2008 4.3.4.30 L13000 Load of resource global variable information failed. The object file with the resource global information has not been found. Please rebuild the whole resource. 4.3.4.
English 4 Reference OpenPCS2008 4.3.5 Compiler Messages 4.3.5.1 C10006 Data type 'REAL' is not supported. Data type ‚REAL’ is not supported by the active hardware. For a list of data types supported by OpenPCS see the IEC 1131-3 Compliance statement Please consult your hardware documentation for a list of data types supported by your hardware. 4.3.5.2 C10007 Data type 'DATE' is not supported. Data type ‚DATE’ is not supported.
4 Reference Please consult your hardware documentation for a list of data types supported by your hardware. 4.3.5.7 C10017 The sections 'VAR_INPUT', 'VAR_OUTPUT' and 'VAR_IN_OUT' are not supported in programs. English OpenPCS2008 VAR_INPUT, VAR_OUTPUT and VAR_IN_OUT sections in programs are not supported. For more information about supported variable types see the IEC 1131-3 Compliance statement. 4.3.5.8 C10019 Directly represented variables are not allowed in this POU.
English 4 Reference OpenPCS2008 4.3.5.13 C10026 Unsupported address. The address at the given position is not supported by the active hardware. Please consult your hardware documentation for a list of addresses supported by the hardware. 4.3.5.14 C10028 Inout-parameters of type struct are not supported. Structured in/out-parameters are not supported. Please define an input parameter and an output parameter of this kind. 4.3.5.15 C10031 RETAIN-variables are not supported by this hardware.
4 Reference This is not supported by the hardware. For more information about supported data types for your hardware, consult your hardware documentation. Example: TYPE DayOfWeek : STRUCT Name : STRING; DayNumber : UINT; END_STRUCT; English OpenPCS2008 DayDescriptions : ARRAY[1..100] OF DayOfWeek; (* Error: Day of Week is a complex data type. Arrays of complex data types are not supported by the hardware. *) Presence : STRUCT Name : STRING; OursPerDay : ARRAY[1..
English 4 Reference OpenPCS2008 A VAR_GLOBAL section has been found in a program organization unit where this section kind is not supported. Please change the section kind or move the variable declaration in a file, where global variables are supported. According to the IEC 61131-3 VAR_GLOBAL sections are supported only in PROGRAMs. However the hardware manufacturer may restrict the declaration of global variables to resource global variable files. I. e.
4 Reference 4.3.5.27 C10060 LD/ST of function block instances is not allowed. A LD or ST instruction with a function block instance as an operand has been found. This is not allowed. 4.3.5.28 C10063 An error occurred while opening a file. English OpenPCS2008 4.3.5.29 C10064 Internal Compiler Error No. %1. Please contact your manufacturer. An internal compiler error occurred. Please contact your manufacturer. 4.3.5.30 C10067 Struct declarations are not supported.
English 4 Reference OpenPCS2008 4.3.5.34 C10076 Lower array bound exceeds minimum array bound limit (dimension #). An lower array bound is out of the supported range [-32767, 32767]. dimension # is the erroneous dimension of the array, if multidimensional. 4.3.5.35 C10078 Invalid type of a global or directly represented variable. A directly represented variable of a complex or an user defined type has been declared. This is not supported. Global variable of structured types are also not supported. 4.3.5.
4 Reference LD DayIn.DayNumber EQ 1 LD ‘MONDAY’ ST DayOut.Name LD DayIn.DayNumber EQ 2 English OpenPCS2008 LD ‘TUESDAY’ ST DayOut.Name END_FUNCTION_BLOCK PROGRAM main VAR Day : DayOfWeek; DayNumber : UINT; END_VAR LD DayNumber ST Day.DayNumber CAL AdjustDayName(DayIn := Day | Day := DayOut) END_PROGRAM 4.3.5.38 C10092 Memory allocation failure. 4.3.5.39 C10093 Data Segment Out Of Memory To much data (e.g. variables) for program or function block so the data doesn’t fit into a 64 kB segment.
English 4 Reference OpenPCS2008 4.3.5.41 C10095 Code Segment Memory Allocation Failure This error occurs if the program code (UCode/Native Code) doesn’t fit into a 64 kB segment. The size for a segment is restricted to 64 kB. Remark: If this error occurs, it is possible to restruct the program (e.g. putting some parts of the code into Function Blocks) so that the program decreases down to 64 kB. 4.3.5.42 C10096 Data Segment size warning limit reached. Used X of Y bytes.
4 Reference 4.3.5.48 C10110 Nested functions are not supported. A function call has been passed as an actual parameter in the call of a function or a function block instance. This is not supported. Please save the return value of the function in a variable and pass this variable as an actual parameter to the called program organization unit. English OpenPCS2008 4.3.5.49 C10112 Type conflict.
English 4 Reference OpenPCS2008 4.3.5.55 C11007 Function has no input parameter. Is this intended? A function call to a function which has no parameters has been detected. Was this the intend? Functions do not contain internal state information and can be supplied only with input parameters. Generally the return value is computed by using the input parameters. Because of this reasons a function without input parameters usually doesn’t make sense. Please check if the called function makes sense. 4.3.
CTRL+F7: F9: F5: F11: F10: SHIFT+F11: ALT+ENTER: Rebuild Active Resource Toggle Breakpoint Go Step Into Step Over Step Out Resource Properties Window Submenu F6: ALT+1: ALT+2: ALT+3: ALT+4: Ctrl+Enter: Next Pane Project Document Test and Comissioning Output Fullscreen 4 Reference English OpenPCS2008 Insert->Variable Submenu ALT+SHIFT+V: All Variables ALT+SHIFT+I: Input Variables ALT+SHIFT+O: Output Variables ALT+SHIFT+N: In/Out Variables ALT+SHIFT+L: Local Variables ALT+SHIFT+G: Global Variables ALT+
English 284 4 Reference OpenPCS2008 CTRL+SHIFT+V: Switches between variable value and variable name at the margins in onlinemode © 1994 – 2010 infoteam Software GmbH • www.infoteam.
5 Index 5 Index ) ) (Right-paranthesis-operator) 166 * *_TO_** 167, 220 *_to_bool 167 *_TO_STRING 167 A About OPC 33 About OPC Server 98 About this manual 24 ABS 167 ABS_DINT 167 ABS_DINT_FBD 167 ABS_INT 167 ABS_INT_FBD 167 ABS_REAL 167 ABS_REAL_FBD 167 ABS_SINT 167 ABS_SINT_FBD 167 ABS_UDINT_FBD 167 ABS_UINT_FBD 167 ABS_USINT_FBD 167 ACOS 168 ACOS_REAL 168 ACOS_REAL_FBD 168 ACTION 168 Active Document Server 117 Active Resource 33 ADD 168 ADD (time) 168 Add files 37 Add Task 33 ADD_DINT 168 ADD_DINT_FBD
English 5 Index OpenPCS2008 BOOL_TO_UDINT_EN 172 BOOL_TO_uint 172 BOOL_TO_UINT_EN 172 BOOL_TO_usint 172 BOOL_TO_USINT_EN 172 BOOL_TO_WORD 172 BOOL_TO_WORD_EN 172 Breakpoints 158 Browser Introduction 25 Browser Options 38 Build active resource 34 BY 172 BYTE 172 BYTE_TO_BOOL 167, 172 BYTE_TO_BOOL_EN 167, 172 BYTE_TO_dint 172 BYTE_TO_DINT_EN 172 BYTE_TO_DWORD 172 BYTE_TO_DWORD_EN 172 BYTE_TO_int 172 BYTE_TO_INT_EN 172 BYTE_TO_REAL 172 BYTE_TO_REAL_EN 172 BYTE_TO_sint 172 BYTE_TO_SINT_EN 172 BYTE_TO_STRING_
CDA 20, 95 CDT 184 CFC Crossreference 114 CFC Editor Online 60 CFC/FBD Options 38 Character String Literals 129 Check over Variable 56 Check project consistency 30 CLK 184 Coils 54 Collapsed Mode 93 Comments in ST 52 Common errors 79 Common Shortcuts 282 Compiler Command Line 103 Compiler Overview 103 Compliance Statement 133 Compound Blocks Introduction 73 CONCAT 184 CONCAT_STRING 184 CONFIGURATION 184 Configuration process 123 Connect Causes and Effects 92 Connection flag 63 Connections 58 CONSTANT 184 Co
English 5 Index OpenPCS2008 DWORD_TO_REAL 188 DWORD_TO_REAL_EN 188 DWORD_TO_sint 188 DWORD_TO_SINT_EN 188 DWORD_TO_STRING_EN 167, 188 DWORD_TO_TIME_EN 188 DWORD_TO_udint 188 DWORD_TO_UDINT_EN 188 DWORD_TO_uint 188 DWORD_TO_UINT_EN 188 DWORD_TO_usint 188 DWORD_TO_USINT_EN 188 DWORD_TO_WORD 188 DWORD_TO_WORD_EN 188 E Edit connection properties 102 Edit resource 32 Editor depending Shortcuts 283 Elementary Data Types 43 Elements of a sequential function chart 75 ELSE 188 ELSIF 188 EN 188 END_ACTION 189 END
GE_UINT_FBD 196 GE_USINT_FBD 196 GE_WORD_FBD 196 GetDateStruct 196 GETSYSTEMDATEANDTIME 196 GetTaskInfo 196 GetTime 197 GetTimeCS 197 GetVarData 198 GetVarFlatAddress 198 Global Id 65 Going Online 34 GT 198 GT_BOOL_FBD 198 GT_BYTE_FBD 198 GT_DINT_FBD 198 GT_DWORD_FBD 198 GT_INT_FBD 198 GT_REAL_FBD 198 GT_SINT_FBD 198 GT_STRING_FBD 198 GT_TIME_FBD 198 GT_UDINT_FBD 198 GT_UINT_FBD 198 GT_USINT_FBD 198 GT_WORD_FBD 198 H Hardware 103 Hardware and Software Requirements 12 Hardware information 35 Help-Pane 29 Ho
English 290 5 Index OpenPCS2008 L12006 269 L12007 269 L12008 270 L12064 270 L12065 270 L12066 270 L12996 270 L12997 270 L12998 270 L12999 271 L13000 271 L13001 271 L14009 271 L14010 271 L15001 271 L20012 271 Ladder Editor introduction 53 Ladder Editor Online 56 Ladder Logic introduction 53 LD 201 LD (Ladder Diagram) 202 LDN 202 LE 202 LE_BOOL_FBD 202 LE_BYTE_FBD 202 LE_DINT_FBD 202 LE_DWORD_FBD 202 LE_INT_FBD 202 LE_REAL_FBD 202 LE_SINT_FBD 202 LE_STRING_FBD 202 LE_TIME_FBD 202 LE_UDINT_FBD 202 LE_UINT_F
MIN_DWORD 204 MIN_INT 204 MIN_INT_FBD 204 MIN_REAL 204 MIN_REAL_FBD 204 MIN_SINT 204 MIN_SINT_FBD 204 MIN_STRING 204 MIN_TIME 204 MIN_UDINT 204 MIN_UDINT_FBD 204 MIN_UINT_FBD 204 MIN_USINT 204 MIN_USINT_FBD 204 MIN_WORD 204 MOD 205 MOD_DINT 205 MOD_DINT_FBD 205 MOD_INT 205 MOD_INT_FBD 205 MOD_SINT 205 MOD_SINT_FBD 205 MOD_UDINT 205 MOD_UDINT_FBD 205 MOD_UINT 205 MOD_UINT_FBD 205 MOD_USINT 205 MOD_USINT_FBD 205 Monitoring code 18 More Information 24 MOVE 205 MOVE_DINT 205 MOVE_INT 205 MOVE_REAL 205 MOVE_SINT
English 5 Index OpenPCS2008 OR_WORD_FBD 206 ORN 207 ORN_BOOL_FBD 207 ORN_BYTE_FBD 207 ORN_DWORD_FBD 207 ORN_WORD_FBD 207 Oscilloscope 96 Others 165 Output Window 25 Overview SmartSIM 97 P P 207 Passing Output Parameters 132 performance 110 POINTER 207 Positioning of the caret 66 POU 207 Print Form 117 Print IEC61131 Configuration 114 Priority 207 PROGRAM 207 PT 208 PV 208 Q Q 208 Q1 208 QD 208 QU 208 Resource-Pane 26 Resources introduction 31 RESUME 211 RET 212 RETAIN 212 RETC 212 RETCN 212 RETURN 213
S1021 S1022 S1023 S1024 S1025 S1026 S1027 S1028 S1029 S1030 S1031 S1032 S3000 S3001 S3002 S3003 S3004 S3005 S3006 S3007 S3008 S3009 S3010 S3011 S3012 S3014 S3016 S3017 S3018 S3019 S3020 S3022 S3023 S3024 S3025 S3026 S3028 S3030 S3032 S3033 S3034 S3035 S3036 S3037 S3038 S3039 S3040 S3041 S3042 S3044 S3046 S3047 S3048 S3049 S3050 S4000 S4001 S4003 S4005 S4006 S4007 S4008 S4009 231 231 231 231 231 232 232 232 232 233 233 233 233 234 234 234 234 235 235 235 235 236 236 236 236 237 237 237 237 237 237 238 238 2
English 294 5 Index OpenPCS2008 S6004 265 S6005 266 Sample Program 14 Save System 160 SaveSystemCmd 160 SD 215 Search within project 31 SEL 215 Select Connection 102 SEMA 215 Set variables 93 SETSYSTEMDATEANDTIME 215 Setting fonts and color 39 SFC 215 SFC Editor Online 79 SFC introduction 75 SHL 215 SHL_BOOL 215 SHL_BOOL_FBD 215 SHL_BYTE 215 SHL_BYTE_FBD 215 SHL_DWORD 215 SHL_DWORD_FBD 215 SHL_WORD 215 SHL_WORD_FBD 215 SHR 216 SHR_BOOL 216 SHR_BOOL_FBD 216 SHR_BYTE 216 SHR_BYTE_FBD 216 SHR_DWORD 216 SHR_
Table 15 Location and size prefix features for directly represented variables 137 Table 16 Variable keywords for variable declaration 137 Table 17 Variable type assignement features 138 Table 18 Variable initial value assignement features 138 Table 19 Graphical negation of Boolean signals 139 Table 2 Identifier features 133 Table 20 Use EN input an ENO output 139 Table 21 Typed and overloaded functions 139 Table 22 Type conversion function features 139 Table 23 Standard functions of one numeric variable 140
English 296 5 Index OpenPCS2008 UDINT_TO_UINT_EN 223 udint_TO_usint 223 UDINT_TO_USINT_EN 223 udint_TO_WORD 223 UDINT_TO_WORD_EN 223 UINT 224 uint_TO_BOOL 167, 224 UINT_TO_BOOL_EN 167, 224 uint_TO_BYTE 224 UINT_TO_BYTE_EN 224 uint_TO_dint 224 UINT_TO_DINT_EN 224 uint_TO_DWORD 224 UINT_TO_DWORD_EN 224 uint_TO_int 224 UINT_TO_INT_EN 224 uint_TO_REAL 224 UINT_TO_REAL_EN 224 uint_TO_sint 224 UINT_TO_SINT_EN 224 UINT_TO_STRING_EN 167, 224 UINT_TO_TIME_EN 224 uint_TO_udint 224 UINT_TO_UDINT_EN 224 uint_TO_usin
XOR_DWORD_FBD 226 XOR_WORD_EN 226 XOR_WORD_FBD 226 XORN 226 Released with version 5 Index XORN_BOOL_FBD 226 XORN_BYTE_FBD 226 XORN_DWORD_FBD 226 XORN_WORD_FBD 226 English OpenPCS2008 6.1.0 © 1994 – 2010 infoteam Software GmbH • www.infoteam.
English 298 5 Index OpenPCS2008 Printed © 1994 – 2010 infoteam Software GmbH • www.infoteam.de 19.05.
infoteam Software GmbH Am Bauhof 9 91088 Bubenreuth Germany Phone +49 9131 7800 0 Fax +49 9131 7800 50 info@infoteam.de www.infoteam.