0% found this document useful (0 votes)
36 views247 pages

Original Programming Manual Classiccontroller Cr0032: Runtime System V02.01.06 Codesys V2.3

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
36 views247 pages

Original Programming Manual Classiccontroller Cr0032: Runtime System V02.01.06 Codesys V2.3

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 247

Original Programming Manual

ClassicController

CR0032

Runtime system v02.01.06


CODESYS® v2.3

English
2015-09-29
7390660_09_UK

1
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Contents

Contents

1 About this manual 5


1.1 Copyright ..............................................................................................................................5
1.2 Overview: documentation modules for ecomatmobile devices ............................................6
1.3 CODESYS programming manual ........................................................................................6
1.4 What do the symbols and formats mean? ...........................................................................7
1.5 How is this documentation structured? ................................................................................8
1.6 History of the instructions (CR0032) ..................................................................................9

2 Safety instructions 10
2.1 Please note! .......................................................................................................................10
2.2 What previous knowledge is required? ..............................................................................11
2.3 Start-up behaviour of the controller....................................................................................11

3 System description 12
3.1 Information concerning the device .....................................................................................12
3.2 Hardware description .........................................................................................................12
3.2.1 Hardware structure ..................................................................................................................... 13
3.2.2 Operating principle of the delayed switch-off .............................................................................. 15
3.2.3 Relays: important notes! ............................................................................................................. 16
3.2.4 Monitoring concept ..................................................................................................................... 17
3.2.5 Inputs (technology) ..................................................................................................................... 21
3.2.6 Outputs (technology) .................................................................................................................. 24
3.2.7 Note on wiring ............................................................................................................................ 27
3.2.8 Safety instructions about Reed relays ........................................................................................ 27
3.2.9 Feedback in case of externally supplied outputs ........................................................................ 28
3.2.10 Status LED ................................................................................................................................. 30
3.3 Interface description ...........................................................................................................31
3.3.1 Serial interface ........................................................................................................................... 31
3.3.2 USB interface ............................................................................................................................. 31
3.3.3 CAN interfaces ........................................................................................................................... 32
3.4 Software description ..........................................................................................................33
3.4.1 Software modules for the device ................................................................................................ 33
3.4.2 Programming notes for CODESYS projects ............................................................................... 36
3.4.3 Operating states ......................................................................................................................... 40
3.4.4 Operating modes ........................................................................................................................ 44
3.4.5 Performance limits of the device ................................................................................................ 46

4 Configurations 47
4.1 Set up the runtime system .................................................................................................47
4.1.1 Reinstall the runtime system ...................................................................................................... 48
4.1.2 Update the runtime system......................................................................................................... 49
4.1.3 Verify the installation .................................................................................................................. 49
4.2 Set up the programming system ........................................................................................50
4.2.1 Set up the programming system manually ................................................................................. 50
4.2.2 Set up the programming system via templates........................................................................... 53
4.3 Function configuration in general .......................................................................................54
4.3.1 Configuration of the inputs and outputs (default setting) ............................................................ 54
4.3.2 System variables ........................................................................................................................ 54
4.4 Function configuration of the inputs and outputs ...............................................................55
4.4.1 Configure inputs ......................................................................................................................... 56
4.4.2 Configure outputs ....................................................................................................................... 59
4.5 Variables ............................................................................................................................63
4.5.1 Retain variables.......................................................................................................................... 63
4.5.2 Network variables ....................................................................................................................... 63

2
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Contents

5 ifm function elements 64


5.1 ifm libraries for the device CR0032 ....................................................................................64
5.1.1 Library ifm_CR0032_V020106.LIB ............................................................................................. 65
5.1.2 Library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB ................................................................ 67
5.1.3 Library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB .................................................................. 67
5.1.4 Library ifm_CR0032_J1939_Vxxyyzz.LIB .................................................................................. 68
5.1.5 Library ifm_hydraulic_32bit_Vxxyyzz.LIB ................................................................................... 68
5.2 ifm function elements for the device CR0032 ....................................................................69
5.2.1 Function elements: CAN layer 2 ................................................................................................. 69
5.2.2 Function elements: CANopen master......................................................................................... 78
5.2.3 Function elements: CANopen slave ........................................................................................... 88
5.2.4 Function elements: CANopen SDOs .......................................................................................... 96
5.2.5 Function elements: SAE J1939 ................................................................................................ 101
5.2.6 Function elements: serial interface ........................................................................................... 114
5.2.7 Function elements: Optimising the PLC cycle .......................................................................... 119
5.2.8 Function elements: processing input values ............................................................................. 125
5.2.9 Function elements: adapting analogue values ......................................................................... 128
5.2.10 Function elements: counter functions for frequency and period measurement ........................ 133
5.2.11 Function elements: PWM functions .......................................................................................... 147
5.2.12 Function elements: hydraulic control ........................................................................................ 157
5.2.13 Function elements: controllers.................................................................................................. 172
5.2.14 Function elements: software reset............................................................................................ 179
5.2.15 Function elements: measuring / setting of time ........................................................................ 181
5.2.16 Function elements: device temperature.................................................................................... 184
5.2.17 Function elements: saving, reading and converting data in the memory .................................. 186
5.2.18 Function elements: data access and data check ...................................................................... 198

6 Diagnosis and error handling 205


6.1 Diagnosis .........................................................................................................................205
6.2 Fault .................................................................................................................................205
6.3 Reaction in case of an error .............................................................................................206
6.4 Relay: important notes! ....................................................................................................206
6.5 Response to system errors ..............................................................................................207
6.6 CAN / CANopen: errors and error handling .....................................................................207

7 Annex 208
7.1 System flags.....................................................................................................................208
7.1.1 System flags: CAN ................................................................................................................... 209
7.1.2 System flags: SAE-J1939 ......................................................................................................... 210
7.1.3 System flags: error flags (standard side) .................................................................................. 211
7.1.4 System flags: LED (standard side) ........................................................................................... 212
7.1.5 System flags: voltages (standard side) ..................................................................................... 213
7.1.6 System flags: 16 inputs and 16 outputs (standard side) ........................................................... 214
7.2 Address assignment and I/O operating modes................................................................215
7.2.1 Address assignment inputs / outputs ........................................................................................ 215
7.2.2 Possible operating modes inputs/outputs ................................................................................. 218
7.2.3 Addresses / variables of the I/Os .............................................................................................. 220
7.3 Error tables .......................................................................................................................224
7.3.1 Error flags ................................................................................................................................. 224
7.3.2 Errors: CAN / CANopen............................................................................................................ 224

3
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Contents

8 Glossary of Terms 226

9 Index 239

10 Notizen • Notes • Notes 243

11 ifm weltweit • ifm worldwide • ifm à l’échelle internationale 247

4
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
About this manual Copyright

1 About this manual

Copyright ............................................................................................................................................... 5
Overview: documentation modules for ecomatmobile devices ............................................................. 6
CODESYS programming manual .......................................................................................................... 6
What do the symbols and formats mean? ............................................................................................. 7
How is this documentation structured? ................................................................................................. 8
History of the instructions (CR0032) ................................................................................................... 9
202
>

1.1 Copyright
6088

© All rights reserved by ifm electronic gmbh. No part of this manual may be reproduced and used
without the consent of ifm electronic gmbh.
All product names, pictures, companies or other brands used on our pages are the property of the respective rights owners:
• AS-i is the property of the AS-International Association, (→ www.as-interface.net)
• CAN is the property of the CiA (CAN in Automation e.V.), Germany (→ www.can-cia.org)
• CODESYS™ is the property of the 3S – Smart Software Solutions GmbH, Germany (→ www.codesys.com)
• DeviceNet™ is the property of the ODVA™ (Open DeviceNet Vendor Association), USA (→ www.odva.org)
• EtherNet/IP® is the property of the →ODVA™
• IO-Link® (→ www.io-link.com) is the property of the →PROFIBUS Nutzerorganisation e.V., Germany
• Microsoft® is the property of the Microsoft Corporation, USA (→ www.microsoft.com)
• PROFIBUS® is the property of the PROFIBUS Nutzerorganisation e.V., Germany (→ www.profibus.com)
• PROFINET® is the property of the →PROFIBUS Nutzerorganisation e.V., Germany
• Windows® is the property of the →Microsoft Corporation, USA

5
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
About this manual Overview: documentation modules for ecomatmobile devices

>

1.2 Overview: documentation modules for ecomatmobile devices


17405

The documentation for ecomatmobile devices consists of the following modules:


1. Data sheet
Contents Technical data in a table
Source → www.ifm.com > select your country > [Data sheet search] > CR0032 > [Technical data in PDF format]

2. Installation instructions / operating instructions


Contents Instructions for installation, electrical installation, (commissioning*), technical data
Source The instructions are supplied with the device
They are also found on ifm's homepage:
→ www.ifm.com > select your country > [Data sheet search] > CR0032 > [Operating instructions]

3. Programming manual + online help


Contents Description of the configuration and the functions of the device software
Source → www.ifm.com > select your country > [Data sheet search] > CR0032 > [Operating instructions]

4. System manual "Know-how ecomatmobile"


Contents Know-how about the following topics:
• Overview Templates and demo programs
• CAN, CANopen
• Control outputs
• User flash memory
• Visualisations
• Overview of the files and libraries used
Source → www.ifm.com > select your country > [Data sheet search] > CR0032 > [Operating instructions]
*) The descriptions in brackets are only included in the instructions of certain devices.
>

1.3 CODESYS programming manual


17542

In the additional "Programming Manual for CODESYS V2.3" you obtain more details about the use of
the programming system.
This manual can be downloaded free of charge from ifm's website:
→ www.ifm.com > Select your country > [Service] > [Download] > [Systems for mobile machines]
You also find manuals and online help for ecomatmobile at:
→ ecomatmobile DVD "Software, tools and documentation"

6
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
About this manual What do the symbols and formats mean?

>

1.4 What do the symbols and formats mean?


203

The following symbols or pictograms illustrate the notes in our instructions:

WARNING
Death or serious irreversible injuries may result.

CAUTION
Slight reversible injuries may result.

NOTICE
Property damage is to be expected or may result.

Important notes concerning malfunctions or disturbances


Other remarks
► ... Request for action
> ... Reaction, result
→ ... "see"
abc Cross-reference
123 Decimal number
0x123 Hexadecimal number
0b010 Binary number
[...] Designation of pushbuttons, buttons or indications

7
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
About this manual How is this documentation structured?

>

1.5 How is this documentation structured?


204
1508

This documentation is a combination of different types of manuals. It is for beginners and also a
reference for advanced users. This document is addressed to the programmers of the applications.
How to use this manual:
• Refer to the table of contents to select a specific subject.
• Using the index you can also quickly find a term you are looking for.
• At the beginning of a chapter we will give you a brief overview of its contents.
• Abbreviations and technical terms → Annex.
In case of malfunctions or uncertainties please contact the manufacturer at:
→ www.ifm.com > Select your country > [Contact].
We want to become even better! Each separate section has an identification number in the top right
corner. If you want to inform us about any inconsistencies, indicate this number with the title and the
language of this documentation. Thank you very much for your support!
We reserve the right to make alterations which can result in a change of contents of the
documentation. You can find the current version on ifm's website at:
→ www.ifm.com > Select country > [Data sheet search] > (Article no.) > [Operating instructions]

8
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
About this manual History of the instructions (CR0032)

>

1.6 History of the instructions (CR0032)


9186

What has been changed in this manual? An overview:


Theme Change
Date
2010-11-10 Terminating resistors correction in topic 1244
2011-02-14 TIMER_READ_US (FB) conversion of max. counter value corrected
2011-04-05 Memory POUs FRAMREAD, FRAMWRITE, permitted values of the parameters SRC, LEN, DST
FLASHREAD, FLASHWRITE
2011-04-13 CANopen overview new: CANopen tables in the annex
2011-12-13 INPUT_ANALOG parameter MODE
2012-10-04 diverse corrections
2013-01-23 Various Instructions revised,
various corrections
2013-06-24 various new document structure
2014-04-28 Various function blocks More precise description of the function block input
CHANNEL
2014-06-24 FB PID2 Graphic corrected
2014-06-30 Name of the documentation "System manual" renamed as "Programming manual"
2014-07-04 Device output ERROR (clamp 13) Output is not available. Reference note removed.
2014-07-31 FB PHASE Description of parameters of outputs C, ET corrected
2014-07-31 FB OUTPUT_CURRENT_CONTROL If preset value = 0 mA >> control to 0 "within 100 ms"
instead of "at once"
2014-08-26 Description of inputs, outputs highside / lowside replaced by positive / negative
switching
2014-11-12 Chapter "Outputs (technology)" Section "Diagnostics of the binary outputs"
supplemented or corrected
2014-11-12 Runtime system V03 • new structure of several FBs
• system flags
2015-01-13 Structure of documentation for error codes, system • error flags:
flags now only in the annex, chapter System flags
• CAN / CANopen errors and error handling:
now only in the system manual "Know-How"
• error codes, EMCY codes:
now in the annex, chapter Error tables
2015-03-10 Available memory Description improved
2015-05-26 FB J1939_x_GLOBAL_REQUEST More precise description
2015-06-10 Various function blocks Description of the FB input CHANNEL corrected
2015-07-27 FB GET_IDENTITY added with output SERIALNUMBER
>

9
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Safety instructions Please note!

2 Safety instructions

Please note! ......................................................................................................................................... 10


What previous knowledge is required? ............................................................................................... 11
Start-up behaviour of the controller ..................................................................................................... 11
213
>

2.1 Please note!


214
11212

No characteristics are warranted with the information, notes and examples provided in this manual.
With the drawings, representations and examples given no responsibility for the system is assumed
and no application-specific particularities are taken into account.
► The manufacturer of the machine/equipment is responsible for ensuring the safety of the
machine/equipment.
► Follow the national and international regulations of the country in which the machine/installation is
to be placed on the market!

WARNING
Non-observance of these instructions can lead to property damage or personal injury!
ifm electronic gmbh does not assume any liability in this regard.
► The acting person must have read and understood the safety instructions and the corresponding
chapters in this manual before working on and with this device.
► The acting person must be authorised to work on the machine/equipment.
► The acting person must have the qualifications and training required to perform this work.
► Adhere to the technical data of the devices!
You can find the current data sheet on ifm's homepage at:
→ www.ifm.com > Select your country > [Data sheet search] > (article number.) > [Technical data
in PDF format]
► Note the installation and wiring information as well as the functions and features of the devices!
→ supplied installation instructions or on ifm's homepage:
→ www.ifm.com > Select your country > [Data sheet search] > (article number.) > [Operating
instructions]
► Please note the corrections and notes in the release notes for the existing documentation,
available on the ifm website:
→ www.ifm.com > Select your country > [Data sheet search] > (article number.) > [Operating
instructions]
5020

NOTICE
The driver module of the serial interface can be damaged!
Disconnecting or connecting the serial interface while live can cause undefined states which damage
the driver module.
► Do not disconnect or connect the serial interface while live.

10
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Safety instructions What previous knowledge is required?

>

2.2 What previous knowledge is required?


215

This document is intended for people with knowledge of control technology and PLC programming
with IEC 61131-3.
To program the PLC, the people should also be familiar with the CODESYS software.
The document is intended for specialists. These specialists are people who are qualified by their
training and their experience to see risks and to avoid possible hazards that may be caused during
operation or maintenance of a product. The document contains information about the correct handling
of the product.
Read this document before use to familiarise yourself with operating conditions, installation and
operation. Keep the document during the entire duration of use of the device.
Adhere to the safety instructions.
>

2.3 Start-up behaviour of the controller


6827
15233
11575

WARNING
Danger due to unintentional and dangerous start of machine or plant sections!
► When creating the program, the programmer must ensure that no unintentional and dangerous
start of machines or plant sections after a fault (e.g. e-stop) and the following fault elimination can
occur!
 Realise restart inhibit!
► In case of an error, set the outputs concerned to FALSE in the program!

A restart can, for example, be caused by:


• voltage restoration after power failure
• reset after watchdog response because of too long a cycle time
• error elimination after an E-stop
To ensure a safe behaviour of the controller:
► monitor the voltage supply in the application program.
► In case of an error switch off all relevant outputs in the application program.
► Additionally monitor relay contacts which can cause hazardous movements in the application
program (feedback).
► If necessary, ensure that welded relay contacts in the application project cannot trigger or continue
hazardous movements.
► Additionally monitor relay contacts which can cause hazardous movements in the application
program (feedback).
► If necessary, ensure that welded relay contacts in the application project cannot trigger or continue
hazardous movements.
>

11
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Information concerning the device

3 System description

Information concerning the device ...................................................................................................... 12


Hardware description........................................................................................................................... 12
Interface description ............................................................................................................................ 31
Software description ............................................................................................................................ 33
975
>

3.1 Information concerning the device


2135

This manual describes of the ecomatmobile family for mobile machines of ifm electronic gmbh:
• ClassicController: CR0032
>

3.2 Hardware description

Hardware structure .............................................................................................................................. 13


Operating principle of the delayed switch-off ...................................................................................... 15
Relays: important notes! ...................................................................................................................... 16
Monitoring concept .............................................................................................................................. 17
Inputs (technology) .............................................................................................................................. 21
Outputs (technology) ........................................................................................................................... 24
Note on wiring...................................................................................................................................... 27
Safety instructions about Reed relays ................................................................................................. 27
Feedback in case of externally supplied outputs ................................................................................ 28
Status LED .......................................................................................................................................... 30
14081

12
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.1 Hardware structure


15332
>

Conditions
19658

The device does not start until sufficient voltage is applied to the supply connection VBBS (e.g. supply
of the relays on the standard side) and to clamp 15.
In vehicles clamp 15 is the plus cable switched by the ignition lock.
>

Relays
19661

The ClassicController has 2 internal output relays which can each separate 8 outputs from the terminal
voltage VBBx (x = O | R).
The relays are only activated under the following condition:
• the global bit ERROR = FALSE
AND
• the bit RELAIS_VBBx = TRUE
In an active condition the relay contacts connect the outputs to the terminal voltage VBBx.
Activate the corresponding outputs no earlier than > 45 ms after power-on of the relays!
>

Prinziple block diagram


19662

Figure: principle block diagram of supply and relays

13
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Available memory
13736
>

FLASH-Speicher
8136

FLASH memory (non-volatile, slow memory) 2 176 kByte


overall existing in the device
Thereof the following memory areas are reserved for ...
maximum size of the application program 1 280 kByte
data other than the application program 128 kByte
user can write data such as files, bitmaps, fonts
data other than the application program 64 kByte
read data with FLASHREAD (→ page 191) or write data with FLASHWRITE
(→ page 192)
(files: 128 bytes less for header)
The remaining rest of the memory is reserved for system internal purposes.
>

SRAM
8360

SRAM (volatile, fast memory) 2 216 kByte


overall existing in the device
SRAM indicates here all kinds of volatile and fast memories.
Thereof the following memory areas are reserved for ...
data reserved by the application program 192 kByte
The remaining rest of the memory is reserved for system internal purposes.
>

FRAM
19547

FRAM (non-volatile, fast memory) 128 kByte


overall existing in the device
FRAM indicates here all kinds of non-volatile and fast memories.
Thereof the following memory areas are reserved for ...
variables in the application program, declared as VAR_RETAIN 4 kByte
as remanent defined flags (from %MB0...) 4 kByte
 Set the end of the memory area by FB MEMORY_RETAIN_PARAM (→ page 189)!
remanent memory freely available to the user 16 kByte
Access is made via FRAMREAD (→ page 194) and FRAMWRITE (→ page 195)
remanent memory freely available to the user 64 kByte
Access is made via the address operator
The remaining rest of the memory is reserved for system internal purposes.

14
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.2 Operating principle of the delayed switch-off


993

If the ecomatmobile controllers are disconnected from the supply voltage (ignition off), all outputs are
normally switched off at once, input signals are no longer read and processing of the controller
software (runtime system and application program) is interrupted. This happens irrespective of the
current program step of the controller.
If this is not requested, the controller must be switched off via the program. After switch-off of the
ignition this enables, for example, saving of memory states.
The ClassicControllers can be switched off via the program by means of a corresponding connection
of the supply voltage inputs and the evaluation of the related system flags. The block diagram in the
chapter Hardware structure (→ page 13) shows the context of the individual current paths.
>

Connect terminal VBB15 to the ignition switch


2418

The internal PLC electronics is initialised via the terminal VBB15 if at terminal VBBS supply voltage is
applied.
These terminals VBB15 and VBBS are monitored internally. The applied terminal voltage VBB15 can
be monitored via the system flag CLAMP_15_VOLTAGE. The applied terminal voltage VBBS can be
monitored via the system flag SUPPLY_VOLTAGE.
>

Latching
2419

Power-on of the controller:


• voltage is applied to VBB15 (clamp 15*) by means of the ignition switch.
• The system flag CLAMP_15_VOLTAGE recognises the voltage that has been applied and
activates the system flag SUPPLY_SWITCH.
• SUPPLY_SWITCH activates the connection to the potential VBBS.
> The ignition switch is bypassed. Latching of the control voltage is established.
Power-off of the controller via clamp 15:
• The system flag CLAMP_15_VOLTAGE recognises the switching off of the supply voltage on
terminal VBB15.
► Reset the system flag SUPPLY_SWITCH in the application program.
> Latching via VBBS is removed and the controller switches off completely.
*) In vehicles clamp 15 is the plus cable switched by the ignition lock.

15
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.3 Relays: important notes!


12976

Assignment relays – potentials: → data sheet


Max. total current per relay contact (= per output group): → data sheet

NOTICE
Risk of destruction of the relay contacts!
In an emergency situation, "sticking" relay contacts can no longer separate the outputs from the power
supply!
If VBBS (VBBrel) and clamp 15 are separated from the power supply at the same time, but the
potentials VBBx stay connected to it, then the relays can drop even before the outputs are deactivated
by the system.
In this case the relays separate the outputs from the power supply under load. This significantly
reduces the life cycle of the relays.
► If VBBx is permanently connected to the power supply:
• also connect VBBS (VBBrel) permanently and
• switch off the outputs via the program with the help of clamp 15.

16
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.4 Monitoring concept

Monitoring of the supply voltages VBBx .............................................................................................. 18


Operating principle of the monitoring concept ..................................................................................... 19
Reference voltage output .................................................................................................................... 20
991

The controller monitors the supply voltages and the system error flags. Depending on the status...
• the controller switches off the internal relays
> the outputs are de-energised, but retain their logic state
or:
• the runtime system deactivates the controller
> the program stops
> the outputs change to logic "0"
> the status LED goes out

17
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Monitoring of the supply voltages VBBx


6752

In case of a fault we differentiate 2 scenarios:


>

Terminal voltage VBBx falls below the limit value of 5.25 V


15752

> The controller detects undervoltage. The outputs supplied by the terminal voltage VBBx are
deactivated.
> If the terminal voltage recovers and returns to the normal range (> 10 V), the outputs are
reactivated.
13975

WARNING
Dangerous restart possible!
Risk of personal injury! Risk of material damage to the machine/plant!
If in case of a fault an output is switched off via the hardware, the logic state generated by the
application program is not changed.
► Remedy:
• Reset the output logic in the application program!
• Remove the fault!
• Reset the outputs depending on the situation.
>

Terminal voltage VBBS falls below the limit value of 10 V


20638

> The controller continues to operate until the voltage has dropped so far that the internal voltages
created from it also drop.

Below 10 V no retain data is saved. → flag RETAIN_WARNING

> In case of a drop of the internal voltages the controller goes into reset.
Execution of the runtime and application programs is interrupted.
This happens irrespective of the current program step of the PLC.
> A restart of the controller is not carried out before the supply voltages are above the limit value
again.

18
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Operating principle of the monitoring concept


2421

WARNING
Danger due to unintentional switch-off of all outputs!
If monitoring routines detect a system error:
> the device deactivates the energy for all outputs.

During program processing the output relays are completely controlled via the software by the user.
So a parallel contact of the safety chain, for example, can be evaluated as an input signal and the
output relay can be switched off accordingly. To be on the safe side, the corresponding applicable
national regulations must be complied with.
If an error occurs during program processing, the relays can be switched off using the system flag bit
ERROR to disconnect critical plant sections.

Manual setting of a flag bit ERROR_VBB... has NO effects on the relays!


11575

WARNING
Danger due to unintentional and dangerous start of machine or plant sections!
► When creating the program, the programmer must ensure that no unintentional and dangerous
start of machines or plant sections after a fault (e.g. e-stop) and the following fault elimination can
occur!
 Realise restart inhibit!
► In case of an error, set the outputs concerned to FALSE in the program!

If a watchdog error occurs, ...


> the program processing is interrupted automatically
> the outputs become currentless and go to logical "0"
> the controller is reset
> the controller then starts again as after power on.

19
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Reference voltage output


2250
13934

The reference voltage output is used to supply sensors with a stable voltage which is not subjected to
the fluctuations of the supply voltage.
13402

NOTICE
Reference voltage output can get damaged!
► Do NOT apply any external voltage!

Via the binary system variables REFERENCE_VOLTAGE_5 or REFERENCE_VOLTAGE_10 the


voltage is set on the reference voltage output [VREF OUT]:
Reference voltage
REFERENCE_VOLTAGE_10 REFERENCE_VOLTAGE_5
[VREF OUT]
FALSE FALSE 0V
FALSE TRUE 5V
TRUE FALSE 10 V
TRUE TRUE 0V

► If reference voltage = 10 V selected:


supply the controller with min. 13 V!
► Voltage monitoring on the reference voltage output with system variable REF_VOLTAGE.
> If system variable ERROR = TRUE:
the reference voltage output is deactivated (output = 0 V).

20
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.5 Inputs (technology)

Analogue inputs ................................................................................................................................... 21


Digital inputs ........................................................................................................................................ 22
Input group I0 (I00...15) ....................................................................................................................... 23
14090
>

Analogue inputs
2426

The analogue inputs can be configured via the application program. The measuring range can be set
as follows:
• current input 0...20 mA
• voltage input 0...10 V
• voltage input 0...32 V
The voltage measurement can also be carried out ratiometrically (0...1000 ‰, adjustable via function
blocks). This means potentiometers or joysticks can be evaluated without additional reference voltage.
A fluctuation of the supply voltage has no influence on this measured value.
As an alternative, an analogue channel can also be evaluated binarily.

In case of ratiometric measurement the connected sensors should be supplied with VBBS of the
device. So, faulty measurements caused by offset voltage are avoided.
8971

In = pin multifunction input n


(CR) = device
(1) = input filter
(2) = analogue current measuring
(3a) = binary-input plus switching
(3b) = binary-input minus switching
(4a) = analogue voltage measuring 0...10 V
(4b) = analogue voltage measuring 0...32 V
(5) = voltage
(6) = reference voltage

Figure: principle block diagram multifunction input

21
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Digital inputs
1015
7345

The binary input can be operated in following modes:


• binary input plus switching (BL) for positive sensor signal
• binary input minus switching (BH) for negative sensor signal
Depending on the device the binary inputs can configured differently. In addition to the protective
mechanisms against interference, the binary inputs are internally evaluated via an analogue stage.
This enables diagnosis of the input signals. But in the application software the switching signal is
directly available as bit information

In = pin binary-input n
(CR) = device
(1) = input filter
(2a) = input minus switching
(2b) = input plus switching
(3) = voltage

Figure: basic circuit of binary input minus switching / plus switching for negative and positive sensor signals

In = pin binary input n In = pin binary input n


(S) = sensor (S) = sensor

Basic circuit of binary input plus switching (BL) Basic circuit of binary input minus switching (BH)
for positive sensor signal: for negative sensor signal:
Input = open  signal = low (GND) Input = open  signal = high (supply)

For some of these inputs (→ data sheet) the potential can be selected to which it will be switched.

22
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Input group I0 (I00...15)


20390

These inputs are a group of multifunction channels.


These inputs can be used as follows (each input separately configurable):
• analogue input 0...20 mA
• analogue input 0...10 V
• analogue input 0...32 V
• voltage measurement ratiometric 0...1000 ‰
• binary input minus switching (BH) for negative sensor signal
• binary input plus switching (BL) for positive sensor signal
• fast input for e.g. incremental encoders and frequency or interval measurement
→ chapter Possible operating modes inputs/outputs (→ page 218)
Sensors with diagnostic capabilities to NAMUR can be evaluated.
All inputs show the same behaviour concerning function and diagnosis.
Detailed description → chapter Address assignment inputs / outputs (→ page 215)
In the application program, the system variables ANALOG00...ANALOGxx can be used for customer-
specific diagnostics.
If the analogue inputs are configured for current measurement, the device switches to the safe voltage
measurement range (0...32 V DC) and the corresponding error bit in the flag byte
ERROR_CURRENT_Ix is set when the final value (21.7 mA) is exceeded. When the value is again
below the limit value, the input automatically switches back to the current measuring range.
► Configuration of each input is made via the application program:
• FB INPUT_ANALOG (→ page 126) > input MODE
• Configuration byte Ixx_MODE
• Fast inputs with the following FBs:
FAST_COUNT (→ page 134) Counter block for fast input pulses
FREQUENCY (→ page 136) Measures the frequency of the signal arriving at the selected channel
FREQUENCY_PERIOD (→ page 138) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
INC_ENCODER (→ page 140) Up/down counter function for the evaluation of encoders
PERIOD (→ page 142) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
PHASE (→ page 146) Reads a pair of channels with fast inputs and compares the phase position of the signals

15380

Example with configuration byte Ixx_MODE:


The assignment sets the selected input to the
operating mode IN_DIGITAL_H with diagnosis:

13956

> The result of the diagnostics is for example shown by the following system flags:
System flags (symbol name) Type Description
ERROR_BREAK_Ix DWORD input group x: wire break error
(0...x, value depends on the device, or (resistance input): short to supply
→ data sheet) [Bit 0 for input 0] ... [bit z for input z] of this group
Bit = TRUE: error
Bit = FALSE: no error
ERROR_SHORT_Ix DWORD input group x: short circuit error
(0...x, value depends on the device, [Bit 0 for input 0] ... [bit z for input z] of this group
→ data sheet) Bit = TRUE: error
Bit = FALSE: no error

23
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.6 Outputs (technology)

Binary outputs ...................................................................................................................................... 24


PWM outputs ....................................................................................................................................... 24
Output group Q0 (Q00...15) ................................................................................................................ 25
14093
>

Binary outputs
14094

The following operating modes are possible for the device outputs (→ data sheet):
• binary output, plus switching (BH) with/without diagnostic function
• binary output minus switched (BL) without diagnostic function
15450

Qn = pin output n Qn = pin output n


(L) = load (L) = load

Basic circuit of output plus switching (BH) Basic circuit of output minus switching (BL)
for positive output signal for negative output signal
>

PWM outputs
14095

The following operating modes are possible for the device outputs (→ data sheet):
• PWM output, plus switching (BH) without diagnostic function
15451

Qn = pin output n
(L) = load

Basic circuit of output plus switching (BH)


for positive output signal

24
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Output group Q0 (Q00...15)


2244

These outputs are a group of multifunction channels.


These outputs provide several function options (each output separately configurable):
• binary output, plus switching (BH), partly also minus switching (BL)
• analogue current-controlled output (PWMi)
• analogue output with pulse-width modulation (partly as H-bridge)
→ chapter Possible operating modes inputs/outputs (→ page 218)
If the outputs are not used as PWM outputs, the diagnosis is carried out via the integrated current
measurement channels which are also used for the current-controlled output functions.
► Configuration of each output is made via the application program:
indicate the load currents → FB OUTPUT_CURRENT (→ page 152)
PWM output: → FB PWM1000 (→ page 155)
control H-bridge → FB OUTPUT_BRIDGE (→ page 148)
► Configure the current measuring range for outputs Q00…Q03 and Q08…Q11
(either 2 A or 4 A):
→ function block SET_OUTPUT_MODE > input CURRENT_RANGE
When using the H-bridge current control is not supported.
In case of a fault (e.g. short circuit) the outputs are switched off in 2 groups via the relay contacts.
13975

WARNING
Dangerous restart possible!
Risk of personal injury! Risk of material damage to the machine/plant!
If in case of a fault an output is switched off via the hardware, the logic state generated by the
application program is not changed.
► Remedy:
• Reset the output logic in the application program!
• Remove the fault!
• Reset the outputs depending on the situation.

The outputs in the PWM mode support no diagnostic functions.

When used as digital output, configuration is carried out for each output using the system variables
Qxx_MODE. If the diagnosis is to be used, it must be activated in addition.
Wire break and short circuit of the output signal are (combined per output group) indicated separately
via the system variables ERROR_BREAK_Qx or ERROR_SHORT_Qx. The individual output error bits
can be masked in the application program, if necessary.

NOTE
To protect the internal measuring resistors, OUT_OVERLOAD_PROTECTION should always be
active (default setting). Depending on the selected current measuring range protection is given from
2.25 A or 4.5 A. The FB is not supported in the PWM mode and can be deactivated, if necessary.
For the limit values please make sure to adhere to the data sheet!
Depending on the operating temperature, a short circuit might no longer reliably be detected when the
short circuit current has reached a certain value since the output drivers are automatically and
temporarily deactivated for protection against self-destruction.
Wire break and short circuit detection are active when ...
• the output is configured as "binary plus switching" (BH) AND
• the output is switched ON.
>

25
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

Diagnosis: binary outputs (via current measurement)


19398
19396

The diagnostics of these outputs is made via internal current measurement in the output:

Figure: principle block diagram


(1) Output channel
(2) Read back channel for diagnostics
(3) Pin output n
(4) Load

>

Diagnosis: overload (via current measurement)


19437
15249

Overload can only be detected on an output with current measurement.


Overload is defined as ...
"a nominal maximum current of 12.5 %".
>

Diagnosis: wire break (via current measurement)


19400

Wire-break detection is done via the read back channel. When the output is switched (Qn=TRUE) wire
break is detected when no current flows on the resistor Ri (no voltage drops). Without wire break the
load current flows through the series resistor Ri generating a voltage drop which is evaluated via the
read back channel.
>

Diagnosis: short circuit (via current measurement)


19401

Short-circuit detection is done via the read back channel. When the output is switched (Qn=TRUE) a
short circuit against GND is detected when the supply voltage drops over the series resistor Ri.

26
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.7 Note on wiring


1426

The wiring diagrams (→ installation instructions of the devices, chapter "Wiring") describe the standard
device configurations. The wiring diagram helps allocate the input and output channels to the IEC
addresses and the device terminals.
The individual abbreviations have the following meaning:
A Analogue input
BH Binary high side input: minus switching for negative sensor signal
Binary high side output: plus switching for positive output signal
BL Binary low side input: plus switching for positive sensor signal
Binary low side output: minus switching for negative output signal
CYL Input period measurement
ENC Input encoder signals
FRQ Frequency input
H bridge Output with H-bridge function
PWM Pulse-width modulated signal
PWMi PWM output with current measurement
IH Pulse/counter input, high side: minus switching for negative sensor signal
IL Pulse/counter input, low side: plus switching for positive sensor signal
R Read back channel for one output

Allocation of the input/output channels: → Catalogue, mounting instructions or data sheet


>

3.2.8 Safety instructions about Reed relays


7348

For use of non-electronic switches please note the following:

Contacts of Reed relays may be clogged (reversibly) if connected to the device inputs without
series resistor.

► Remedy: Install a series resistor for the Reed relay:


Series resistor = max. input voltage / permissible current in the Reed relay
Example: 32 V / 500 mA = 64 Ohm
► The series resistor must not exceed 5 % of the input resistance RE of the device input (→ data
sheet). Otherwise, the signal will not be detected as TRUE.
Example:
RE = 3 000 Ohm
⇒ max. series resistor = 150 Ohm

27
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.9 Feedback in case of externally supplied outputs


2422

In some applications actuators are not only controlled by outputs of the PLC but additionally by
external switches. In such cases the externally supplied outputs must be protected with blocking
diodes (→ see graphics below).

NOTICE
Destruction of outputs if there is inadmissible feedback!
If actuators are externally controlled, the corresponding potential bar of the same output group must
not become potential-free (e.g. for RELAIS = FALSE).
Otherwise the terminal voltage VBBx is fed back to the potential bar of the output group via the
protective diode integrated in the output driver of the external connected output. A possibly other set
output of this group thus triggers its connected load. The load current destroys the output which feeds
back.
► Protect externally supplied outputs by means of blocking diodes!

Example:
The flag RELAIS switches off the
supply VBBO of the output group.
Without blocking diodes the external
switch S1 feeds the supply VBBO via
the internal protective diode (red)
from output Q1 to the internal
potential bar of the outputs.
If output Q2 = TRUE (→ graphic), K2
will receive voltage via the protective
diode Q1 despite RELAIS = FALSE
(red lines). Due to overload this
protective diode burns out and the
output Q1 is destroyed!

Graphic: example wiring with blocking diodes


due to the danger of feedback

Remedy:
Insert the blocking diodes V1 and V2
(→ green arrows)!
Successful:
If RELAIS = FALSE, K2 remains
switched off, even if Q2 = TRUE.

28
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

NOTE
Help for externally supplied outputs
► The externally supplied outputs must be decoupled via diodes so that no external voltage is
applied to the output terminal.

29
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Hardware description

>

3.2.10 Status LED


1430

The operating states are indicated by the integrated status LED (default setting).
LED colour Flashing frequency Description
off permanently out no operating voltage
yellow briefly on initialisation or reset checks
green / black 5 Hz no runtime system loaded
green / black 2 Hz application RUN
green permanently on application STOP
red / black 2 Hz application RUN with error
red briefly on fatal error
fatal error (if input TEST = active)
red permanently on
ERROR STOP / STYSTEM STOP

The operating states STOP and RUN can be changed by the programming system.
>

Control the LED in the application program


13142

With this device the status LED can also be set by the application program. To do so, the following
system variables are used (→ chapter System flags (→ page 208)):
System flags (symbol name) Type Description
LED WORD LED color for "LED switched on":
0x0000 = LED_GREEN (preset)
0x0001 = LED_BLUE
0x0002 = LED_RED
0x0003 = LED_WHITE
0x0004 = LED_BLACK
0x0005 = LED_MAGENTA
0x0006 = LED_CYAN
0x0007 = LED_YELLOW
LED_X WORD LED color for "LED switched off":
0x0000 = LED_GREEN
0x0001 = LED_BLUE
0x0002 = LED_RED
0x0003 = LED_WHITE
0x0004 = LED_BLACK (preset)
0x0005 = LED_MAGENTA
0x0006 = LED_CYAN
0x0007 = LED_YELLOW
LED_MODE WORD LED flashing frequency:
0x0000 = LED_2HZ (flashes at 2 Hz; preset)
0x0001 = LED_1HZ (flashes at 1 Hz)
0x0002 = LED_05HZ (flashes at 0.5 Hz)
0x0003 = LED_0HZ (lights permanently with value in LED)
0x0004 = LED_5HZ (flashes at 5 Hz)

NOTE
► Do NOT use the LED color RED in the application program.
> In case of an error the LED color RED is set by the runtime system.
BUT: If the colors and/or flashing modes are changed in the application program, the above table
with the default setting is no longer valid.

30
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Interface description

>

3.3 Interface description

Serial interface..................................................................................................................................... 31
USB interface ...................................................................................................................................... 31
CAN interfaces .................................................................................................................................... 32
14098
>

3.3.1 Serial interface


14099

This device features a serial interface.


The serial interface can generally be used in combination with the following functions:
• program download
• debugging
• free use of the application

NOTE
The serial interface is not available to the user by default, because it is used for program download
and debugging.
The interface can be freely used if the user sets the system flag bit SERIAL_MODE=TRUE.
Debugging of the application program is then only possible via one of the 4 CAN interfaces or via
USB.

Connections and data → data sheet


>

3.3.2 USB interface


14100

This device features a USB interface for program download and debugging.
Connections and data → data sheet
Install the USB driver on the PC → installation instructions / operating instructions
Settings in CODESYS for [Online] > [Communication Parameters...] via USB:
Device Runtime system version Parameter Value
CR0032 < V03.00.00 Baud rate 115200
CR0032 > V03.00.01 Baud rate 4800...57600
CR0033, CR0133 < V02.00.01 Baud rate 115200
CR0033, CR0133 > V02.00.02 Baud rate 4800...57600
CR0232, CR0233 all Baud rate 115200
CR0234, CR0235 all Baud rate 4800...57600
CR7n32 < V01.00.04 Baud rate 115200

CR7n32 > V01.00.05 Baud rate 4800...57600

CR0n3n, CR7n32 all Motorola byteorder No


CR0n3n, CR7n32 all Flow Control On

31
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Interface description

>

3.3.3 CAN interfaces

CAN: interfaces and protocols ............................................................................................................. 32


14101

Connections and data → data sheet


>

CAN: interfaces and protocols


13820
14587

The devices are equipped with several CAN interfaces depending on the hardware design. Basically,
all interfaces can be used with the following functions independently of each other:
• Layer 2: CAN at level 2 (→ chapter Function elements: CAN layer 2 (→ page 69))
• CANopen master (→ chapter Function elements: CANopen master (→ page 78))
• CANopen slave (→ chapter Function elements: CANopen slave (→ page 88))
• CANopen network variables (via CODESYS)
• SAE J1939 (for drive management, → chapter Function elements: SAE J1939 (→ page 101))
• bus load detection
• error frame counter
• download interface
• 100 % bus load without package loss
11793

The following CAN interfaces and CAN protocols are available in this ecomatmobile device:
CAN interface CAN 1 CAN 2 CAN 3 CAN 4

Default download ID ID 127 ID 126 ID 125 ID 124

CAN Layer 2 CAN Layer 2 CAN Layer 2 CAN Layer 2


CAN protocols CANopen CANopen CANopen CANopen
SAE J1939 SAE J1939 SAE J1939 SAE J1939

Standard baud rate = 125 Kbits/s

Which CANopen compatible interface works with which CANopen protocol is decided by the order
in which you append the subelements in the PLC configuration:
CODESYS > [PLC Configuration] > [CR0032 Configuration Vxx] > [Append subelement] >
[CANopen master] or [CANopen slave]

32
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

3.4 Software description

Software modules for the device ......................................................................................................... 33


Programming notes for CODESYS projects ....................................................................................... 36
Operating states .................................................................................................................................. 40
Operating modes ................................................................................................................................. 44
Performance limits of the device ......................................................................................................... 46
14107
>

3.4.1 Software modules for the device

Bootloader ........................................................................................................................................... 34
Runtime system ................................................................................................................................... 34
Application program............................................................................................................................. 34
Libraries ............................................................................................................................................... 35
14110

The software in this device communicates with the hardware as below:


software module Can user change the module? By means of what tool?
Application program CODESYS,
yes
with libraries MaintenanceTool
Upgrade yes
Runtime system *) MaintenanceTool
Downgrade yes
Bootloader no ---
(Hardware) no ---
*) The runtime system version number must correspond to the target version number in the CODESYS target system setting.
→ chapter Set up the target (→ page 51)

Below we describe this software module:

33
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Bootloader
14111

On delivery ecomatmobile controllers only contain the boot loader.


The boot loader is a start program that allows to reload the runtime system and the application
program on the device.
The boot loader contains basic routines...
• for communication between hardware modules,
• for reloading the operating system.
The boot loader is the first software module to be saved on the device.
>

Runtime system
14112

Basic program in the device, establishes the connection between the hardware of the device and the
application program.
On delivery, there is normally no runtime system loaded in the controller (LED flashes green at 5 Hz).
Only the bootloader is active in this operating mode. It provides the minimum functions for loading the
runtime system, among others support of the interfaces (e.g. CAN).
Normally it is necessary to download the runtime system only once. Then, the application program can
be loaded into the controller (also repeatedly) without affecting the runtime system.
The runtime system is provided with this documentation on a separate data carrier. In addition, the
current version can be downloaded from the website of ifm electronic gmbh:
→ www.ifm.com > Select your country > [Service] > [Download]
>

Application program
14118

Software specific to the application, implemented by the machine manufacturer, generally containing
logic sequences, limits and expressions that control the appropriate inputs, outputs, calculations and
decisions.
8340

WARNING
The user is responsible for the reliable function of the application programs he designed. If necessary,
he must additionally carry out an approval test by corresponding supervisory and test organisations
according to the national regulations.

34
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Libraries
14117

ifm electronic offers several libraries (*.LIB) to match each device containing program modules for
the application program. Examples:
Library Use
ifm_CR0032_Vxxyyzz.LIB device-specific library
Must always be contained in the application program!
ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB (optional)
x = 1...4 = number of the CAN interface if a CAN interface of the device is to be operated as a CANopen
master
ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB (optional)
x = 1...4 = number of the CAN interface if a CAN interface of the device is to be operated as a CANopen
slave
ifm_CR0032_J1939_Vxxyyzz.LIB (optional)
if a CAN interface of the device is to communicate with a Diesel
engine
→ chapter ifm libraries for the device CR0032 (→ page 64)

35
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

3.4.2 Programming notes for CODESYS projects

FB, FUN, PRG in CODESYS .............................................................................................................. 37


Note the cycle time! ............................................................................................................................. 37
Creating application program .............................................................................................................. 38
Save boot project................................................................................................................................. 39
Using ifm downloader .......................................................................................................................... 39
Using ifm maintenance tool ................................................................................................................. 39
7426

Here you receive tips how to program the device.


► See the notes in the CODESYS programming manual
→ www.ifm.com > select your country > [Data sheet search] > CR0032 > [Operating instructions]
→ ecomatmobile DVD "Software, tools and documentation".

36
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

FB, FUN, PRG in CODESYS


8473

In CODESYS we differentiate between the following types of function elements:


FB = function block
• An FB can have several inputs and several outputs.
• An FB may be called several times in a project.
• An instance must be declared for each call.
• Permitted: Call FB and FUN in FB.
FUN = function
• A function can have several inputs but only one output.
• The output is of the same data type as the function itself.
PRG = program
• A PRG can have several inputs and several outputs.
• A PRG may only be called once in a project.
• Permitted: Call PRG, FB and FUN in PRG.

NOTE
Function blocks must NOT be called in functions!
Otherwise: During execution the application program will crash.
All function elements must NOT be called recursively, nor indirectly!
An IEC application must contain max. 8,000 function elements!

Background:
All variables of functions...
• are initialised when called and
• become invalid after return to the caller.
Function blocks have 2 calls:
• an initialisation call and
• the actual call to do something.
Consequently that means for the FB call in a function:
• every time there is an additional initialisation call and
• the data of the last call gets lost.
>

Note the cycle time!


8006

For the programmable devices from the controller family ecomatmobile numerous functions are
available which enable use of the devices in a wide range of applications.
As these units use more or fewer system resources depending on their complexity it is not always
possible to use all units at the same time and several times.

NOTICE
Risk that the device acts too slowly!
Cycle time must not become too long!
► When designing the application program the above-mentioned recommendations must be
complied with and tested.
► If necessary, the cycle time must be optimised by restructuring the software and the system set-
up.

37
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Creating application program


8007

The application program is generated by the CODESYS programming system and loaded in the
controller several times during the program development for testing:
In CODESYS: [Online] > [Login] > load the new program.
For each such download via CODESYS the source code is translated again. The result is that each
time a new checksum is formed in the controller memory. This process is also permissible for safety
controllers until the release of the software.

Graphics: Creation and distribution of the software

38
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Save boot project


7430

Always save the related boot project together with your application project in the device. Only then
will the application program be available after a power failure in the device.

NOTE
Note: The boot project is slightly larger than the actual program.
However: Saving the boot project in the device will fail if the boot project is larger than the available
IEC code memory range. After power-on the boot project is deleted or invalid.

► CODESYS menu [Online] > [Create boot project]


This is necessary after each change!
> After a reboot, the device starts with the boot project last saved.
> If NO boot project was saved:
• The device remains in the STOP operation after reboot.
• The application program is not (no longer) available.
• The LED lights green.
>

Using ifm downloader


8008

The ifm downloader serves for easy transfer of the program code from the programming station to the
controller. As a matter of principle each application software can be copied to the controllers using the
ifm downloader. Advantage: A programming system with CODESYS licence is not required.
Here you will find the current ifm downloader (min. V06.18.26):
ecomatmobile DVD "Software, tools and documentation" under the tab 'R360 tools [D/E]'
>

Using ifm maintenance tool


8492

The ifm Maintenance Tool serves for easy transfer of the program code from the programming station
to the controller. As a matter of principle each application software can be copied to the controllers
using the ifm Maintenance Tool. Advantage: A programming system with CODESYS licence is not
required.
Here you will find the current ifm Maintenance Tool:
→ www.ifm.com > Select your country > [Service] > [Download] > [Systems for mobile machines]
→ ecomatmobile DVD "Software, tools and documentation" under the tab 'R360 tools [D/E]'

39
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

3.4.3 Operating states

Operating states: runtime system is not available............................................................................... 40


Operating states: application program is not available ....................................................................... 41
Operating states: application program is available ............................................................................. 42
Bootloader state .................................................................................................................................. 43
INIT state (Reset) ................................................................................................................................ 43
STOP state .......................................................................................................................................... 43
RUN state ............................................................................................................................................ 43
SYSTEM STOP state .......................................................................................................................... 43
14120

After power on the ecomatmobile device can be in one of five possible operating states:
• BOOTLOADER
• INIT
• STOP
• RUN
• SYSTEM STOP (after ERROR STOP)
>

Operating states: runtime system is not available


19217

Figure: operating states (here: runtime system is not available)

40
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Operating states: application program is not available


19218

Figure: operating states (here: application program is not available)

41
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Operating states: application program is available


19219

Figure: operating states (here: application program is available)

42
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

Bootloader state
1080

No runtime system was loaded. The ecomatmobile controller is in the boot loading state. Before
loading the application software the runtime system must be downloaded.
> The LED flashes green (5 Hz).
>

INIT state (Reset)


1076

Premise: a valid runtime system is installed.


This state is passed through after every power on reset:
> The runtime system is initialised.
> Various checks are carried out, e.g. waiting for correctly power supply voltage.
> This temporary state is replaced by the RUN or STOP state.
> The LED lights yellow.
Change out of this state possible into one of the following states:
• RUN
• STOP
>

STOP state
1078

This state is reached in the following cases:


• From the RESET state if:
• no program is loaded or
• the last state before the RESET state was the STOP state
• From the RUN state by the STOP command
• only for the operating mode = Test (→ chapter TEST mode (→ page 44))
> The LED lights green.
>

RUN state
1077

This state is reached in the following cases:


• From the RESET state if:
• the last state before the RESET state was the RUN state
• From the STOP state by the RUN command
• only for the operating mode = Test (→ chapter TEST mode (→ page 44))
> The LED flashes green (2 Hz).
>

SYSTEM STOP state


19222

The ecomatmobile controller goes to this state if a non tolerable error (ERROR STOP) was found.
This state can only be left by a power-off-on reset.
> The LED lights red.

43
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

3.4.4 Operating modes


1083

Independent of the operating states the ecomatmobile controller can be operated in different modes.
>

TEST mode
1084

NOTICE
Loss of the stored software possible!
In the test mode there is no protection of the stored runtime system and application software.

NOTE
► Connect the TEST connection to the supply voltage only AFTER you have connected the OPC
client!
> Otherwise a fatal error will occur.

This operating mode is reached by applying supply voltage to the test input
(→ installation instructions > chapter "Technical data" > chapter "Wiring").
The ecomatmobile controller can now receive commands via one of the interfaces in the RUN or
STOP mode and, for example, communicate with the programming system.
Only in the TEST mode the software can be downloaded to the controller.
The state of the application program can be queried via the flag TEST.
Summary Test input is active:
• Programming mode is enabled
• Software download is possible
• Status of the application program can be queried
• Protection of stored software is not possible

44
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

SERIAL_MODE
2548

The serial interface is available for the exchange of data in the application. Debugging the application
software is then only possible via all 4 CAN interfaces or via USB interface.
This function is switched off as standard (FALSE). Via the flag SERIAL_MODE the state can be
controlled and queried via the application program or the programming system.
→ chapter Function elements: serial interface (→ page 114)
>

DEBUG mode
1086

If the input DEBUG of SET_DEBUG (→ page 202) is set to TRUE, the programming system or the
downloader, for example, can communicate with the controller and execute system commands (e.g.
for service functions via the GSM modem CANremote).
In this operating mode a software download is not possible because the test input (→ chapter TEST
mode (→ page 44)) is not connected to supply voltage.

45
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
System description Software description

>

3.4.5 Performance limits of the device


7358

Note the limits of the device! → Data sheet

>

Watchdog behaviour
11786

In this device, a watchdog monitors the program runtime of the CODESYS application.
If the maximum watchdog time (approx. 100 ms) is exceeded:
> the device performs a reset and reboots.
This you can read in the flag LAST_RESET.
>

CODESYS functions
2254

You should note the following limits:


• Up to 2 048 blocks (PB, FB...) are supported.
• Flags available for user → chapter Available memory (→ page 14).
Description of the retain flags → for the corresponding FBs.
>

46
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the runtime system

4 Configurations

Set up the runtime system ................................................................................................................... 47


Set up the programming system ......................................................................................................... 50
Function configuration in general ........................................................................................................ 54
Function configuration of the inputs and outputs ................................................................................ 55
Variables .............................................................................................................................................. 63
1016

The device configurations described in the corresponding installation instructions or in the Annex
(→ page 208) to this documentation are used for standard devices (stock items). They fulfil the
requested specifications of most applications.
Depending on the customer requirements for series use it is, however, also possible to use other
device configurations, e.g. with respect to the inputs/outputs and analogue channels.
>

4.1 Set up the runtime system

Reinstall the runtime system ............................................................................................................... 48


Update the runtime system ................................................................................................................. 49
Verify the installation ........................................................................................................................... 49
14091

47
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the runtime system

>

4.1.1 Reinstall the runtime system


14092
2733

On delivery of the ecomatmobile device no runtime system is normally loaded (LED flashes green at
5 Hz). Only the bootloader is active in this operating mode. It provides the minimum functions for
loading the runtime system (e.g. RS232, CAN).
Normally it is necessary to download the runtime system only once. The application program can then
be loaded to the device (also several times) without influencing the runtime system.
The runtime system is provided with this documentation on a separate data carrier. In addition, the
current version can be downloaded from the website of ifm electronic gmbh at:
→ www.ifm.com > Select your country > [Service] > [Download]
2689

NOTE
The software versions suitable for the selected target must always be used:
• runtime system (ifm_CR0032_Vxxyyzz.H86),
• PLC configuration (ifm_CR0032_Vxx.CFG),
• device library (ifm_CR0032_Vxxyyzz.LIB ) and
• the further files.
V version
xx: 00...99 target version number
yy: 00...99 release number
zz: 00...99 patch number

The basic file name (e.g. "CR0032") and the software version number "xx" (e.g. "02") must always
have the same value! Otherwise the device goes to the STOP mode.
The values for "yy" (release number) and "zz" (patch number) do not have to match.
4368

The following files must also be loaded:


• the internal libraries (created in IEC 1131) required for the project,
• the configuration files (*.CFG) and
• the target files (*.TRG).

It may happen that the target system cannot or only partly be programmed with your currently
installed version of CODESYS. In such a case, please contact the technical support department of ifm
electronic gmbh.
The runtime system is transferred to the device using the separate program "ifm downloader". (The
downloader is on the ecomatmobile DVD "Software, tools and documentation" or can be downloaded
from ifm's website, if necessary): → www.ifm.com > Select your country > [Service] > [Download].
Normally the application program is loaded to the device via the programming system. But it can also
be loaded using the ifm downloader if it was first read from the device (→ upload).

48
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the runtime system

>

4.1.2 Update the runtime system


13269

An older runtime system is already installed on the device. Now, you would like to update the runtime
system on the device?
14158

NOTICE
Risk of data loss!
When deleting or updating the runtime system all data and programs on the device are deleted.
► Save all required data and programs before deleting or updating the runtime system!
3084

When the operating system software or the CODESYS runtime system is considerably improved, ifm
releases a new version. The versions are numbered consecutively (V01, V02, V03, ...).
Please see the respective documentation for the new functions of the new software version. Note
whether special requirements for the hardware version are specified in the documentation.
If you have a device with an older version and if the conditions for the hardware and your project are
OK, you can update your device to the new software version.
For this operation, the same instructions apply as in the previous chapter 'Reinstall the runtime
system'.
>

4.1.3 Verify the installation


14407
14406

► After loading of the runtime system into the controller:


• check whether the runtime system was transmitted correctly!
• check whether the right runtime system is on the controller!
► 1st check:
use the ifm downloader or the maintenance tool to verify whether the correct version of the
runtime system was loaded:
• read out the name, version and CRC of the runtime system in the device!
• Manually compare this information with the target data!
► 2nd check (optional):
verify in the application program whether the correct version of the runtime system was loaded:
• read out the name and version of the runtime system in the device!
• Compare this data with the specified values!
The following FB serves for reading the data:
GET_IDENTITY (→ page 201) Reads the specific identifications stored in the device:
• hardware name and hardware version of the device
• name of the runtime system in the device
• version and revision no. of the runtime system in the device
• name of the application (has previously been saved by means of SET_IDENTITY
(→ page 203))
• serial number of the device

49
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the programming system

>

4.2 Set up the programming system

Set up the programming system manually .......................................................................................... 50


Set up the programming system via templates ................................................................................... 53
3968
>

4.2.1 Set up the programming system manually

Set up the target .................................................................................................................................. 51


Activate the PLC configuration (e.g. CR0033) .................................................................................... 52
3963

50
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the programming system

>

Set up the target


2687
11379

When creating a new project in CODESYS the target file corresponding to the device must be loaded.
► Select the requested target file in the dialogue window [Target Settings] in the menu
[Configuration].
> The target file constitutes the interface to the hardware for the programming system.
> At the same time, several important libraries and the PLC configuration are loaded when selecting
the target.
► If necessary, in the window [Target settings] > tab [Network functionality] > activate [Support
parameter manager] and / or activate [Support network variables].
► If necessary, remove the loaded (3S) libraries or complement them by further (ifm) libraries.
► Always complement the appropriate device library ifm_CR0032_Vxxyyzz.LIB manually!
2689

NOTE
The software versions suitable for the selected target must always be used:
• runtime system (ifm_CR0032_Vxxyyzz.H86),
• PLC configuration (ifm_CR0032_Vxx.CFG),
• device library (ifm_CR0032_Vxxyyzz.LIB ) and
• the further files.
V version
xx: 00...99 target version number
yy: 00...99 release number
zz: 00...99 patch number

The basic file name (e.g. "CR0032") and the software version number "xx" (e.g. "02") must always
have the same value! Otherwise the device goes to the STOP mode.
The values for "yy" (release number) and "zz" (patch number) do not have to match.
4368

The following files must also be loaded:


• the internal libraries (created in IEC 1131) required for the project,
• the configuration files (*.CFG) and
• the target files (*.TRG).

It may happen that the target system cannot or only partly be programmed with your currently
installed version of CODESYS. In such a case, please contact the technical support department of ifm
electronic gmbh.

51
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the programming system

>

Activate the PLC configuration (e.g. CR0033)


15824

During the configuration of the programming system (→ previous section) the PLC configuration was
also carried out automatically.
► The menu item [PLC Configuration] is reached via the tab [Resources].
Double-click on [PLC Configuration] to open the corresponding window.
► Click on the tab [Resources] in CODESYS:

► In the left column double-click on [PLC Configuration].


> Display of the current PLC configuration (example → following figure):

Based on the configuration the user can find the following in the program environment:
• all important system and error flags
Depending on the application and the application program, these flags must be processed and
evaluated. Access is made via their symbolic names.
• The structure of the inputs and outputs
These can directly be designated symbolically (highly recommended!) in the window [PLC
Configuration] (→ figure below) and are available in the whole project as [Global Variables].

52
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Set up the programming system

>

4.2.2 Set up the programming system via templates


13745

ifm offers ready-to-use templates (program templates), by means of which the programming system
can be set up quickly, easily and completely.
970

When installing the ecomatmobile DVD "Software, tools and documentation", projects with
templates have been stored in the program directory of your PC:
…\ifm electronic\CoDeSys V…\Projects\Template_DVD_V…
► Open the requested template in CODESYS via:
[File] > [New from template…]
> CODESYS creates a new project which shows the basic program structure. It is strongly
recommended to follow the shown procedure.

53
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration in general

>

4.3 Function configuration in general


3971
>

4.3.1 Configuration of the inputs and outputs (default setting)


2249

• All inputs and outputs are in the binary mode (plus switching!) when delivered.
• The diagnostic function is not active.
• The overload protection is active.
>

4.3.2 System variables


2252
13519
15576

All system variables (→ chapter System flags (→ page 208)) have defined addresses which cannot be
shifted.
> To indicate and process a watchdog error or causes of a new start the system variable
LAST_RESET is set.
> Indication of the selected I/O configuration via mode bytes

54
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

4.4 Function configuration of the inputs and outputs

Configure inputs .................................................................................................................................. 56


Configure outputs ................................................................................................................................ 59
1394

For some devices of the ecomatmobile controller family, additional diagnostic functions can be
activated for the inputs and outputs. So, the corresponding input and output signal can be monitored
and the application program can react in case of a fault.
Depending on the input and output, certain marginal conditions must be taken into account when
using the diagnosis:
► It must be checked by means of the data sheet if the device used has the described input and
output groups (→ data sheet).
• Constants are predefined (e.g. IN_DIGITAL_H) in the device libraries (ifm_CR0032_Vxxyyzz.LIB
) for the configuration of the inputs and outputs.
For details → Possible operating modes inputs/outputs (→ page 218).

55
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

4.4.1 Configure inputs

Safety instructions about Reed relays ................................................................................................. 56


Fast inputs ........................................................................................................................................... 57
Configure the software filters of the inputs .......................................................................................... 58
Configure the hardware filter ............................................................................................................... 58
3973

Valid operating modes → chapter Possible operating modes inputs/outputs (→ page 218)
>

Safety instructions about Reed relays


7348

For use of non-electronic switches please note the following:

Contacts of Reed relays may be clogged (reversibly) if connected to the device inputs without
series resistor.

► Remedy: Install a series resistor for the Reed relay:


Series resistor = max. input voltage / permissible current in the Reed relay
Example: 32 V / 500 mA = 64 Ohm
► The series resistor must not exceed 5 % of the input resistance RE of the device input (→ data
sheet). Otherwise, the signal will not be detected as TRUE.
Example:
RE = 3 000 Ohm
⇒ max. series resistor = 150 Ohm

56
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

Fast inputs
2193

The devices dispose of fast counting/pulse inputs for an input frequency up to 30 kHz (→ data sheet).
The input resistance of the fast inputs switches automatically depending on the applied mode or
function block:
Input resistance for mode / FB
3.2 kohms (standard) FAST_COUNT, FREQUENCY, INC_ENCODER, PERIOD and similar FBs
50.7 kohms Measurement input 32 V

If, for example, mechanical switches are connected to these inputs, there may be faulty signals in
the controller due to contact bouncing.
 If necessary, filter these "false signals" using the filters Ixx_DFILTER.
(→ chapter System flags (→ page 208)) (not available for all inputs)
Appropriate function blocks are e.g.:
FAST_COUNT (→ page 134) Counter block for fast input pulses
FREQUENCY (→ page 136) Measures the frequency of the signal arriving at the selected channel
FREQUENCY_PERIOD (→ page 138) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
INC_ENCODER (→ page 140) Up/down counter function for the evaluation of encoders
PERIOD (→ page 142) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
PERIOD_RATIO (→ page 144) Measures the frequency and the cycle period (cycle time) in [µs] during the indicated periods at
the indicated channel. In addition, the mark-to-space ratio is indicated in [‰].
PHASE (→ page 146) Reads a pair of channels with fast inputs and compares the phase position of the signals

When using these units, the parameterised inputs and outputs are automatically configured, so the
programmer of the application does not have to do this.

57
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

Configure the software filters of the inputs


6883

A software filter that filters the measured input voltage on the analogue inputs can be configured via
the system variables Ixx_FILTER. The filter behaves like a conventional low-pass filter, the limit
frequency is set by the value entered in the system variable. Values of 0...8 are possible.
Table: limit frequency software low-pass filter on analogue input
Ixx_FILTER Filter frequency [Hz] Signal rise time Remarks
0 Filter deactivated
1 390 1 ms
2 145 2.5 ms
3 68 5 ms
4 34 10 ms Recommended, default setting
5 17 21 ms
6 8 42 ms
7 4 84 ms
8 2 169 ms
>9 34 10 ms → Default setting

After changing the filter setting, the value of this input or output is not output correctly at once.
Only after the signal rise time (→ table) will the value be correct again.
The signal rise time is the time taken by a signal at the output of the filter to rise from 10 % to 90 % of the final value if an
input step is applied. The signal fall time is the time taken by a signal to decrease from 90 % to 10 %.

>

Configure the hardware filter


9154

A digital hardware filter can be configured on the fast counter and pulse inputs via the system variable
Ixx_DFILTER. The value in µs (max. 100 000) indicates how long a binary level must be applied
without interruption before it is adopted. Default = 0 µs.

The level change of the input signal is delayed by the value set in the filter.

The filter has an effect on the detected signals only for the following function blocks:
FAST_COUNT (→ page 134) Counter block for fast input pulses
FREQUENCY (→ page 136) Measures the frequency of the signal arriving at the selected channel
FREQUENCY_PERIOD (→ page 138) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
INC_ENCODER (→ page 140) Up/down counter function for the evaluation of encoders
PERIOD (→ page 142) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
PERIOD_RATIO (→ page 144) Measures the frequency and the cycle period (cycle time) in [µs] during the indicated periods at
the indicated channel. In addition, the mark-to-space ratio is indicated in [‰].

Digital filters are not available for all fast counter and pulse inputs.

58
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

4.4.2 Configure outputs

Allowable configurations for Q00_MODE...Q15_MODE ..................................................................... 59


Configure the software filters of the outputs ........................................................................................ 60
Binary and PWM outputs ..................................................................................................................... 61
3976

Valid operating modes → chapter Possible operating modes inputs/outputs (→ page 218)
>

Allowable configurations for Q00_MODE...Q15_MODE


6903

Overload Diagnosis -- 4 A ¹) 2A -- LS HS Config. value


7 6 5 4 3 2 1 0 [hex] [dec]
0 0 0 0 1 0 0 1 09 9
0 0 0 1 0 0 0 1 11 17
0 1 0 0 1 0 0 1 49 73
0 1 0 1 0 0 0 1 51 81
1 0 0 0 1 0 0 1 89 137
1 0 0 1 0 0 0 1 91 145
1 1 0 0 1 0 0 1 C9 201
1 1 0 1 0 0 0 1 D1 209
0 0 0 0 0 0 1 0 02 2

= this configuration value is default


¹) only possible for outputs Q00...Q03 + Q08...Q11

59
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

Configure the software filters of the outputs


6882

Via the system variables Qxx_FILTER a software filter which filters the measured current values can
be configured. The filter behaves like a conventional low-pass filter, the limit frequency is set by the
value entered in the system variable.
Table: Limit frequency software low-pass filter for the current measurement on the output
Qxx_FILTER Filter frequency [Hz] Signal rise time Remarks
0 Filter deactivated
1 580 0.6 ms
2 220 1.6 ms
3 102 3.5 ms
4 51 7 ms Recommended, default setting
5 25 14 ms
6 12 28 ms
7 6 56 ms
8 3 112 ms
>9 51 7 ms → Default setting

After changing the filter setting, the value of this input or output is not output correctly at once.
Only after the signal rise time (→ table) will the value be correct again.
The signal rise time is the time taken by a signal at the output of the filter to rise from 10 % to 90 % of the final value if an
input step is applied. The signal fall time is the time taken by a signal to decrease from 90 % to 10 %.

60
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

Binary and PWM outputs


2423

The following operating modes are possible for the device outputs (→ data sheet):
• binary output, plus switching (BH) with/without diagnostic function
• binary output, plus switching (BH), partly also minus switching (BL)
• PWM output, plus switching (BH) without diagnostic function
• PWM output pair H-bridge without diagnostic function
PWM outputs can be operated with and without current control function.
Current-controlled PWM outputs are mainly used for triggering proportional hydraulic functions.
14713

WARNING
Property damage or bodily injury possible due to malfunctions!
The following applies for outputs in PWM mode:
• there is no diagnostic function
• no ERROR flags are set
• the overload protection OUT_OVERLOAD_PROTECTION is NOT active
15450

Qn = pin output n Qn = pin output n


(L) = load (L) = load

Basic circuit of output plus switching (BH) Basic circuit of output minus switching (BL)
for positive output signal for negative output signal
13975

WARNING
Dangerous restart possible!
Risk of personal injury! Risk of material damage to the machine/plant!
If in case of a fault an output is switched off via the hardware, the logic state generated by the
application program is not changed.
► Remedy:
• Reset the output logic in the application program!
• Remove the fault!
• Reset the outputs depending on the situation.

NOTE
► Do NOT reconfigure the outputs during operation!
It is not allowed to change from PWM output to binary output.
> Otherwise the outputs may react unpredictably.

61
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Function configuration of the inputs and outputs

>

Availability of PWM
12058

Number of available of which current- PWM frequency


Device
PWM outputs controlled (PWMi) [Hz]
CRn032, CR0033 16 16 20...250
CRn232, CR0233 32 32 20...250
>

Current control with PWM (= PWMi)


13829

Current measurement of the coil current can be carried out via the current measurement channels
integrated in the controller. This allows for example that the current can be re-adjusted if the coil heats
up. Thus the hydraulic relationships in the system remain the same.
In principle, the current-controlled outputs are protected against short circuit.

62
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Configurations Variables

>

4.5 Variables

Retain variables ................................................................................................................................... 63


Network variables ................................................................................................................................ 63
3130

In this chapter you will learn more about how to handle variables.
>

4.5.1 Retain variables


15454

Variables declared as RETAIN generate remanent data. Retain variables keep the values saved in
them when the device is switched on/off or when an online reset is made.

The contents of the retain variables are lost if the device is in the STOP state during power-off!
14166

Typical applications for retain variables are for example:


• operating hours which are counted up and retained while the machine is in operation,
• position values of incremental encoders,
• preset values entered in the monitor,
• machine parameters,
i.e. all variables whose values must not get lost when the device is switched off.
All variable types, also complex structures (e.g. timers), can be declared as retain.
► To do so, activate the control field [RETAIN] in the variable declaration (→ window).

>

4.5.2 Network variables


9856

Global network variables are used for data exchange between controllers in the network. The values
of global network variables are available to all CODESYS projects in the whole network if the variables
are contained in their declaration lists.
► Integrate the following library/libraries into the CODESYS project:
 3S_CANopenNetVar.lib
>

63
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm libraries for the device CR0032

5 ifm function elements

ifm libraries for the device CR0032 ..................................................................................................... 64


ifm function elements for the device CR0032 ..................................................................................... 69
13586

All CODESYS function elements (FBs, PRGs, FUNs) are stored in libraries. Below you will find a list of
all the ifm libraries you can use with this device.
This is followed by a description of the function elements, sorted by topic.
>

5.1 ifm libraries for the device CR0032

Library ifm_CR0032_V020106.LIB...................................................................................................... 65
Library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB ........................................................................ 67
Library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB .......................................................................... 67
Library ifm_CR0032_J1939_Vxxyyzz.LIB ........................................................................................... 68
Library ifm_hydraulic_32bit_Vxxyyzz.LIB ............................................................................................ 68
14235

64
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm libraries for the device CR0032

>

5.1.1 Library ifm_CR0032_V020106.LIB


18422

This is the device library. This ifm library contains the following function blocks:
Function element Short description
CANx (→ page 70) Initialises CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_BAUDRATE (→ page 71) Sets the transmission rate for the bus participant on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_BUSLOAD (→ page 72) Determines the current bus load on CAN interface x and counts the occurred error frames
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_DOWNLOADID (→ page 73) Sets the download identifier for CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_ERRORHANDLER (→ page 74) Executes a "manual" bus recovery on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_RECEIVE (→ page 75) CAN interface x: Configures a data receive object and reads out the receive buffer of the data
object
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_SDO_READ (→ page 97) CAN interface x: Reads the SDO with the indicated indices from the node
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_SDO_WRITE (→ page 99) CAN interface x: writes the SDO with the indicated indices to the node
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_TRANSMIT (→ page 77) Transfers a CAN data object (message) to the CAN interface x for transmission at each call
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CHECK_DATA (→ page 199) Generates a checksum (CRC) for a configurable memory area and checks the data of the
memory area for undesired changes
DELAY (→ page 173) Delays the output of the input value by the time T (dead-time element)
FAST_COUNT (→ page 134) Counter block for fast input pulses
FLASHREAD (→ page 191) Transfers different data types directly from the flash memory to the RAM
FLASHWRITE (→ page 192) Writes different data types directly into the flash memory
FRAMREAD (→ page 194) Transfers different data types directly from the FRAM memory to the RAM
FRAM indicates here all kinds of non-volatile and fast memories.
FRAMWRITE (→ page 195) Writes different data types directly into the FRAM memory
FRAM indicates here all kinds of non-volatile and fast memories.
FREQUENCY (→ page 136) Measures the frequency of the signal arriving at the selected channel
FREQUENCY_PERIOD (→ page 138) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
GET_IDENTITY (→ page 201) Reads the specific identifications stored in the device:
• hardware name and hardware version of the device
• name of the runtime system in the device
• version and revision no. of the runtime system in the device
• name of the application (has previously been saved by means of SET_IDENTITY
(→ page 203))
• serial number of the device
INC_ENCODER (→ page 140) Up/down counter function for the evaluation of encoders
INPUT_ANALOG (→ page 126) Current and voltage measurement on the analogue input channel
MEMCPY (→ page 196) Writes and reads different data types directly in the memory
MEMORY_RETAIN_PARAM (→ page 189) Determines the remanent data behaviour for various events
MEMSET (→ page 197) Writes in a specified data area
NORM (→ page 129) Normalises a value [WORD] within defined limits to a value with new limits
NORM_DINT (→ page 131) Normalises a value [DINT] within defined limits to a value with new limits
NORM_REAL (→ page 132) Normalises a value [REAL] within defined limits to a value with new limits

65
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm libraries for the device CR0032

Function element Short description


OUTPUT_BRIDGE (→ page 148) H-bridge on a PWM channel pair
OUTPUT_CURRENT (→ page 152) Measures the current (average via dither period) on an output channel
OUTPUT_CURRENT_CONTROL (→ page 153) Current controller for a PWMi output channel
PERIOD (→ page 142) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
PERIOD_RATIO (→ page 144) Measures the frequency and the cycle period (cycle time) in [µs] during the indicated periods at
the indicated channel. In addition, the mark-to-space ratio is indicated in [‰].
PHASE (→ page 146) Reads a pair of channels with fast inputs and compares the phase position of the signals
PID1 (→ page 174) PID controller
PID2 (→ page 176) PID controller
PT1 (→ page 178) Controlled system with first-order delay
PWM1000 (→ page 155) Initialises and configures a PWM-capable output channel
the mark-to-space ratio can be indicated in steps of 1 ‰
SERIAL_PENDING (→ page 115) Determines the number of data bytes stored in the serial receive buffer
SERIAL_RX (→ page 116) Reads a received data byte from the serial receive buffer at each call
SERIAL_SETUP (→ page 117) Initialises the serial RS232 interface
SERIAL_TX (→ page 118) Transmits one data byte via the serial RS232 interface
SET_DEBUG (→ page 202) organises the DEBUG mode or the monitoring mode (depending on the TEST input)
SET_IDENTITY (→ page 203) Sets an application-specific program identification
SET_INTERRUPT_I (→ page 120) Conditional execution of a program part after an interrupt request via a defined input channel
SET_INTERRUPT_XMS (→ page 123) Conditional execution of a program part at an interval of x milliseconds
SET_PASSWORD (→ page 204) Sets a user password for access control to program and memory upload
SOFTRESET (→ page 180) leads to a complete reboot of the device
TEMPERATURE (→ page 185) Reads the current temperature in the device
TIMER_READ (→ page 182) Reads out the current system time in [ms]
Max. value = 49d 17h 2min 47s 295ms
TIMER_READ_US (→ page 183) Reads out the current system time in [µs]
Max. value = 1h 11min 34s 967ms 295µs

66
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm libraries for the device CR0032

>

5.1.2 Library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB


13707

x = 1...4 = number of the CAN interface


This library contains function blocks for operation of the device as a CANopen master.
This ifm library contains the following function blocks:
Function element Short description
CANx_MASTER_EMCY_HANDLER (→ page 79) Handles the device-specific error status of the CANopen master on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_MASTER_SEND_EMERGENCY (→ page 80) Sends application-specific error status of the CANopen master on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_MASTER_STATUS (→ page 82) Status indication on CAN interface x of the device used as CANopen master
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
>

5.1.3 Library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB


13709

x = 1...4 = number of the CAN interface


This library contains function blocks for operation of the device as a CANopen slave.
This ifm library contains the following function blocks:
Function element Short description
CANx_SLAVE_EMCY_HANDLER (→ page 89) Handles the device-specific error status of the CANopen slave on CAN interface x:
• error register (index 0x1001) and
• error field (index 0x1003) of the CANopen object directory
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_SLAVE_NODEID (→ page 90) Enables setting of the node ID of a CANopen slave on CAN interface x at runtime of the
application program
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_SLAVE_SEND_EMERGENCY (→ page 91) Sends application-specific error status of the CANopen slave on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_SLAVE_SET_PREOP (→ page 93) Switches the operating mode of this CANopen slave from "OPERATIONAL" to "OPERATIONAL"
on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
CANx_SLAVE_STATUS (→ page 94) Shows the status of the device used as CANopen slave on CAN interface x
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)

67
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm libraries for the device CR0032

>

5.1.4 Library ifm_CR0032_J1939_Vxxyyzz.LIB


13711

This library contains function blocks for engine control.


This ifm library contains the following function blocks:
Function element Short description
J1939_x (→ page 102) CAN interface x: protocol handler for the communication profile SAE J1939
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
J1939_x_GLOBAL_REQUEST (→ page 103) CAN interface x: handles global requesting and receipt of data from the J1939 network
participants
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
J1939_x_RECEIVE (→ page 105) CAN interface x: Receives a single message or a message block
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
J1939_x_RESPONSE (→ page 108) CAN interface x: handles the automatic response to a request message
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
J1939_x_SPECIFIC_REQUEST (→ page 110) CAN interface x: automatic requesting of individual messages from a specific J1939 network
participant
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
J1939_x_TRANSMIT (→ page 112) CAN interface x: sends individual messages or message blocks
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
>

5.1.5 Library ifm_hydraulic_32bit_Vxxyyzz.LIB


13729

This library contains function blocks for hydraulic controls.


This ifm library contains the following function blocks:
Function element Short description
CONTROL_OCC (→ page 158) OCC = Output Current Control
Scales the input value [WORD] to an indicated current range
JOYSTICK_0 (→ page 160) Scales signals [INT] from a joystick to clearly defined characteristic curves, standardised to 0...
1000
JOYSTICK_1 (→ page 163) Scales signals [INT] from a joystick D standardised to 0... 1000
JOYSTICK_2 (→ page 167) Scales signals [INT] from a joystick to a configurable characteristic curve; free selection of the
standardisation
NORM_HYDRAULIC (→ page 170) Normalises a value [DINT] within defined limits to a value with new limits

68
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2 ifm function elements for the device CR0032

Function elements: CAN layer 2 .......................................................................................................... 69


Function elements: CANopen master ................................................................................................. 78
Function elements: CANopen slave .................................................................................................... 88
Function elements: CANopen SDOs ................................................................................................... 96
Function elements: SAE J1939 ......................................................................................................... 101
Function elements: serial interface.................................................................................................... 114
Function elements: Optimising the PLC cycle ................................................................................... 119
Function elements: processing input values ..................................................................................... 125
Function elements: adapting analogue values .................................................................................. 128
Function elements: counter functions for frequency and period measurement ................................ 133
Function elements: PWM functions ................................................................................................... 147
Function elements: hydraulic control ................................................................................................. 157
Function elements: controllers .......................................................................................................... 172
Function elements: software reset .................................................................................................... 179
Function elements: measuring / setting of time................................................................................. 181
Function elements: device temperature ............................................................................................ 184
Function elements: saving, reading and converting data in the memory .......................................... 186
Function elements: data access and data check .............................................................................. 198
13988
3826

Here you will find the description of the ifm function elements suitable for this device, sorted by topic.
>

5.2.1 Function elements: CAN layer 2

CANx ................................................................................................................................................... 70
CANx_BAUDRATE.............................................................................................................................. 71
CANx_BUSLOAD ................................................................................................................................ 72
CANx_DOWNLOADID ........................................................................................................................ 73
CANx_ERRORHANDLER ................................................................................................................... 74
CANx_RECEIVE ................................................................................................................................. 75
CANx_TRANSMIT ............................................................................................................................... 77
13754

Here, the CAN function blocks (layer 2) for use in the application program are described.

69
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx
2159
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2162

CANx initialises the xth CAN interface


x = 1...n = number of the CAN interface (depending on the device, → Data sheet).
The download ID must be different for every interface.
The baud rates of the individual CANx can be set to different values.
► The input INIT is only set for one cycle during reboot or restart of the interface!

A change of the download ID and/or baud rate only becomes valid after power off/on.

If the unit is not executed, the interface works with 11-bit identifiers.
>

Parameters of the inputs


2163

Data type Description


Parameter
INIT BOOL TRUE (in the 1st cycle):
Function block is initialised
FALSE: during further processing of the program
EXTENDED_MODE BOOL := FALSE TRUE: identifier of the CAN interface operates with 29 bits
FALSE: identifier of the CAN interface operates with 11 bits
DOWNLOAD_ID BYTE Download ID of CAN interface x
x = 1...n = number of the CAN interface (depending on the device,
→ Data sheet)
valid = 1...127
preset = 127 - (x-1)
BAUDRATE WORD := 125 Baud rate [kbits/s]
valid = 20, 50, 100, 125, 250, 500, 1000

70
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_BAUDRATE
11834
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
11839

CANx_BAUDRATE sets the transmission rate for the bus participant.


The function block is used to set the transmission rate for the device. To do so, the corresponding
value in Kbits/s is entered at the input BAUDRATE.

The new value will become effective on RESET (voltage OFF/ON or soft reset).
>

Parameters of the inputs


655

Data type Description


Parameter
ENABLE BOOL TRUE (in the 1st cycle):
Adopt and activate parameters
else: this function is not executed
BAUDRATE WORD := 125 Baud rate [kbits/s]
valid = 20, 50, 100, 125, 250, 500, 1000

71
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_BUSLOAD
2178
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2180

Determines the current bus load on the CAN bus and counts the occurred error frames.
CANx_BUSLOAD determines the bus load via the number and length of the messages transferred via
the CAN bus during the time indicated in PERIOD by taking the current baud rate into account. The
value BUSLOAD is updated after the time indicated in PERIOD has elapsed.
If the bit RESET is permanently FALSE, the number of the error frames occurred since the last
RESET is indicated.

NOTE
If the communication on the CAN bus is carried out via the CANopen protocol, it is useful to set the
value of PERIOD to the duration of the SYNC cycle.
The measurement period is not synchronised with the CANopen SYNC cycle.

>

Parameters of the inputs


2181

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
INIT BOOL TRUE (only for 1 cycle):
configuration of the measurement duration PERIOD
FALSE: during further processing of the program
RESET BOOL TRUE: Set ERRORFRAME to "0"
FALSE: function element is not executed
PERIOD WORD Time in [ms] to determine the bus load
allowed = 20...1 000 ms
>

Parameters of the outputs


2182

Data type Description


Parameter
ERRORFRAMES WORD Number of error frames occurred on the CAN bus since the last reset
BUSLOAD BYTE Current bus load in [%]

72
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_DOWNLOADID
11841

= CANx Download-ID
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
11846

CANx_DOWNLOADID sets the download identifier for the CAN interface x.


The function block can be used to set the communication identifier for program download and
debugging. The new value is entered when the input ENABLE is set to TRUE.

The new value will become effective on RESET (voltage OFF/ON or soft reset).
>

Parameters of the inputs


649

Data type Description


Parameter
ENABLE BOOL TRUE (in the 1st cycle):
Adopt and activate parameters
else: this function is not executed
ID BYTE Set download ID of CAN interface x
x = 1...n = number of the CAN interface (depending on the device,
→ Data sheet)
allowed = 1...127
preset = 127 - (x-1)

73
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_ERRORHANDLER
2174
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2329
13991

If the automatic bus recover function is to be used (default setting) the function
CANx_ERRORHANDLER must not be integrated and instanced in the program!

CANx_ERRORHANDLER executes a "manual" bus recovery on the CAN interface x.


► After a recognised CAN bus-off, call the function block for one cycle with BUSOFF_RECOVER =
TRUE to make sure that the controller can send and receive on the CAN bus again.
► Then reset the error bit CANx_BUSOFF for this CAN interface in the application program.
> The CAN interface is operative again.
>

Parameters of the inputs


2177

Data type Description


Parameter
BUSOFF_RECOVER BOOL TRUE (only 1 cycle):
> remedy 'bus off' status
> reboot of the CAN interfacex
FALSE: function element is not executed

74
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_RECEIVE
627
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
13338

CANx_RECEIVE configures a data receive object and reads the receive buffer of the data object.
► The FB must be called once for each data object during initialisation, in order to inform the CAN
controller about the identifiers of the data objects.
► In the further program cycle CANx_RECEIVE is called for reading the corresponding receive
buffer, also repeatedly in case of long program cycles.
► Set in the FB CANx, if CANx_RECEIVE shall receive normal or extended frames.
> If CANx_RECEIVE is configured for receiving a normal frame, the frame with this ID will not be
sent to a possibly existing CANopen stack.
> If an ID outside of the permissible range is set (depending on the setting in CANx), the function
block is not executed.
► The programmer must ensure by evaluating the byte AVAILABLE that newly received data objects
are retrieved from the buffer and further processed.
Receive buffer: max. 16 software buffer per identifier.
> Each call of the FB decrements the byte AVAILABLE by 1.
If the value of AVAILABLE is = 0, there is no data in the buffer.
► Only in case of extended frame:
By evaluating the output OVERFLOW, an overflow of the data buffer can be detected.
OVERFLOW = TRUE at least 1 data object has been lost.
(In case of standard frame the CANopen stack is not involved.)
>

Parameters of the inputs


2172

Data type Description


Parameter
CONFIG BOOL TRUE (in the 1st cycle):
configure data object
FALSE: during further processing of the program
CLEAR BOOL TRUE: delete receive buffer
FALSE: function element is not executed
ID DWORD Number of the data object identifier:
normal frame (211 IDs):
0...2 047 = 0x0000 0000...0x0000 07FF
extended Frame (229 IDs):
0...536 870 911 = 0x0000 0000...0x1FFF FFFF

75
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the outputs


19810

Data type Description


Parameter
DATA ARRAY [0..7] OF BYTE received data, (1...8 bytes)
DLC BYTE Number of bytes received in the DATA array with RDO
allowed: 0...8
RTR BOOL = FALSE Received message was a Remote Transmission Request
(wird hier nicht unterstützt)
AVAILABLE BYTE Number of remaining data bytes
allowed = 0...16
0 = no valid data available
OVERFLOW BOOL TRUE: Overflow of the data buffer  loss of data!
FALSE: Data buffer is without data loss

76
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_TRANSMIT
609
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2166

CANx_TRANSMIT transmits a CAN data object (message) to the CAN controller for transmission.
The FB is called for each data object in the program cycle, also repeatedly in case of long program
cycles. The programmer must ensure by evaluating the output RESULT that his transmit order was
accepted. Simplified it can be said that at 125 kbits/s one transmit order can be executed per 1 ms.
The execution of the FB can be temporarily blocked (ENABLE = FALSE) via the input ENABLE. So,
for example a bus overload can be prevented.
To put it simply, at 125 kbits/s one transmit order can be executed per 1 ms.
Several data objects can be transmitted virtually at the same time if a flag is assigned to each data
object and controls the execution of the FB via the ENABLE input.
Transmit buffer: max. 16 software buffers and 1 hardware buffer for all identifiers together.
>

Parameters of the inputs


2167

Data type Description


Parameter
ID DWORD Number of the data object identifier:
normal frame (211 IDs):
0...2 047 = 0x0000 0000...0x0000 07FF
extended Frame (229 IDs):
0...536 870 911 = 0x0000 0000...0x1FFF FFFF
DLC BYTE Number of bytes received in the DATA array with SRDO
allowed: 0...8
DATA ARRAY [0..7] OF BYTE data to be sent (1...8 bytes)
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
>

Parameters of the outputs


2168

Data type Description


Parameter
RESULT BOOL TRUE (only for 1 cycle):
Function block accepted transmit order
FALSE: Transmit order was not accepted

77
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.2 Function elements: CANopen master

CANx_MASTER_EMCY_HANDLER .................................................................................................. 79
CANx_MASTER_SEND_EMERGENCY ............................................................................................. 80
CANx_MASTER_STATUS .................................................................................................................. 82
1870

ifm electronic provides a number of FBs for the CANopen master which will be explained below.

78
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_MASTER_EMCY_HANDLER
2006
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2009

CANx_MASTER_EMCY_HANDLER manages the device-specific error status of the master. The FB


must be called in the following cases:
• the error status is to be transmitted to the network and
• the error messages of the application are to be stored in the object directory.
The current values from the error register (index 0x1001/01) and error field (index 0x1003/0-5) of the
CANopen object directory can be read via the FB.

If application-specific error messages are to be stored in the object directory,


CANx_MASTER_EMCY_HANDLER must be called after (repeatedly) calling
CANx_MASTER_SEND_EMERGENCY (→ page 80).

>

Parameters of the inputs


2010

Data type Description


Parameter
CLEAR_ERROR_FIELD BOOL FALSE  TRUE (edge):
• transmit content of ERROR_FIELD to function block output
• delete content of ERROR_FIELD in object directory
else: this function is not executed
>

Parameters of the outputs


2011

Data type Description


Parameter
ERROR_REGISTER BYTE Shows content of OBV index 0x1001 (error register)
ERROR_FIELD ARRAY [0..5] OF WORD Shows the content of the OBV index 0x1003 (error field)
ERROR_FIELD[0]: number of stored errors
ERROR_FIELD[1...5]: Stored errors, the most recent error is shown on
index [1]

79
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_MASTER_SEND_EMERGENCY
2012
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2015

CANx_MASTER_SEND_EMERGENCY transmits application-specific error states. The FB is called if


the error status is to be transmitted to other devices in the network.

If application-specific error messages are to be stored in the object directory,


CANx_MASTER_EMCY_HANDLER (→ page 79) must be called after (repeatedly) calling
CANx_MASTER_SEND_EMERGENCY.

>

Parameters of the inputs


2016

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
ERROR BOOL Using this input, the information whether the error associated to the
configured error code is currently present is transmitted.
FALSE  TRUE (edge):
sends the next error code
if input was not TRUE in the last second
TRUE  FALSE (edge)
AND the fault is no longer indicated:
after a delay of approx. 1 s:
> zero error message is sent
else: this function is not executed
ERROR_CODE WORD The error code provides detailed information about the detected error.
The values should be entered according to the CANopen specification.
ERROR_REGISTER BYTE ERROR_REGISTER indicates the error type.
The value indicated here is linked by a bit-by-bit OR operation with all
the other error messages that are currently active. The resulting value
is written into the error register (index 100116/00) and transmitted with
the EMCY message.
The values should be entered according to the CANopen specification.
MANUFACTURER_ERROR_FIELD ARRAY [0..4] OF BYTE Here, up to 5 bytes of application-specific error information can be
entered. The format can be freely selected.

80
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Example: CANx_MASTER_SEND_EMERGENCY
2018

In this example 3 error messages will be generated subsequently:


1. ApplError1, Code = 0xFF00 in the error register 0x81
2. ApplError2, Code = 0xFF01 in the error register 0x81
3. ApplError3, Code = 0xFF02 in the error register 0x81
CAN1_MASTER_EMCY_HANDLER sends the error messages to the error register "Object 0x1001" in
the error array "Object 0x1003".

81
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_MASTER_STATUS
2692
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2024

Status indication of the device used with CANopen.


CANx_MASTER_STATUS shows the status of the device used as CANopen master. Further
possibilities:
• monitoring the network status
• monitoring the status of the connected slaves
• resetting or starting the slaves in the network.
The FB simplifies the use of the CODESYS CANopen master libraries. We urgently recommend to
carry out the evaluation of the network status and of the error messages via this FB.

82
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


19891

Data type Description


Parameter
GLOBAL_START BOOL TRUE: All connected network participants (slaves)
are started simultaneously during network initialisation
( state OPERATIONAL).
FALSE: The connected network participants are started
one after the other.
CLEAR_RX_OVERFLOW_FLAG BOOL FALSE  TRUE (edge):
Clear error flag RX_OVERFLOW
else: this function is not executed
CLEAR_RX_BUFFER BOOL FALSE  TRUE (edge):
Delete data in the receive buffer
else: this function is not executed
CLEAR_TX_OVERFLOW_FLAG BOOL FALSE  TRUE (edge):
Clear error flag TX_OVERFLOW
else: this function is not executed
CLEAR_TX_BUFFER BOOL FALSE  TRUE (edge):
Delete data in the transmit buffer
else: this function is not executed
CLEAR_OD_CHANGED_FLAG BOOL FALSE  TRUE (edge):
Delete flag OD_CHANGED
else: this function is not executed
CLEAR_ERROR_CONTROL BOOL FALSE  TRUE (edge):
Delete the guard error list (ERROR_CONTROL)
else: this function is not executed
RESET_ALL_NODES BOOL FALSE  TRUE (edge):
All connected network participants (slaves)
are reset via NMT command
else: this function is not executed
START_ALL_NODES BOOL FALSE  TRUE (edge):
All connected network participants (slaves)
are started via NMT command
else: this function is not executed
NODE_STATE_SLAVES Array [0.. MAX_NODEINDEX] The status information of the slaves in the CANopen network is to be
of CANx_NODE_STATE written into this array. The behaviour of the slaves can be controlled
by means of access to certainly values.
MAX_NODEINDEX is a constant, which is calculated by CODESYS
during the compiling of the application.

Determine the address by means of the operator ADR and


assigne it to the FB!
Example code → chapter Example: CANx_MASTER_STATUS
(→ page 85)
EMERGENCY_OBJECT_SLAVES Array [0.. MAX_NODEINDEX] Shows the last error messages of all network nodes.
of
CANx_EMERGENCY_MESSA Determine the address by means of the operator ADR and
GE assigne it to the FB!

→ chapter Access to the structures at runtime of the


application (→ page 87)

83
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the outputs


2696

Data type Description


Parameter
NODE_ID BYTE current node ID of the CANopen slave
BAUDRATE WORD current baudrate of the CANopen node in [kBaud]
NODE_STATE INT Current status of CANopen master
SYNC BOOL SYNC signal of the CANopen master
TRUE: In the last cycle a SYNC signal was sent
FALSE: In the last cycle no SYNC signal was sent
RX_OVERFLOW BOOL TRUE: Error: receive buffer overflow
FALSE: no overflow
TX_OVERFLOW BOOL TRUE: Error: transmission buffer overflow
FALSE: no overflow
OD_CHANGED BOOL TRUE: Data in the object directory of the CANopen master
have been changed
FALSE: no data change
ERROR_CONTROL ARRAY [0..7] OF BYTE The array contains the list (max. 8) of missing network nodes (guard
or heartbeat error)

→ chapter Access to the structures at runtime of the


application (→ page 87)
GET_EMERGENCY STRUCT At the output the data for the structure
CANx_EMERGENY_MESSAG CANx_EMERGENCY_MESSAGE are available.
E The last received EMCY message in the CANopen network is always
displayed.
To obtain a list of all occurred errors, the array
"EMERGENCY_OBJECT_SLAVES" must be evaluated.
FIRST_NODE_INDEX INT Section where the node numbers of the nodes (slaves) connected to
LAST_NODE_INDEX INT this CAN bus are located
>

Internal structure parameters


2698

Here you can see the structures of the arrays used in this function block.
Using Controller CR0032 as an example, the following code fragments show the use of the function
block CANx_MASTER_STATUS→ chapter Example: CANx_MASTER_STATUS (→ page 85).
>

Structure of CANx_EMERGENCY_MESSAGE
13996

The structure is defined by the global variables of the library


ifm_CR0032_CANopenMaster_Vxxyyzz.LIB.
Data type Description
Parameter
NODE_ID BYTE Node ID of the participant the EMCY has been received from
ERROR_CODE WORD Error code indicating which error has occurred.
→ CANopen specification CiA Draft Standard 301 Version 4
ERROR_REGISTER BYTE Value in the error register (index 0x1001/00) of the sending participant
MANUFACTURER_ERROR_FIELD ARRAY [0..4] OF BYTE Manufacturer-specific data field in EMCY message

84
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Structure of CANx_NODE_STATE
13997

The structure is defined by the global variables of the library


ifm_CR0032_CANopenMaster_Vxxyyzz.LIB.
Data type Description
Parameter
NODE_ID BYTE Node ID of the CANopen slave the status information and
configuration flags in the structure belong to
NODE_STATE BYTE Current state of the CANopen slave seen from the perspective of the
CANopen stack of the CANopen master
LAST_STATE BYTE The last known state of the CANopen slave
0 = receive bootup message from CANopen slave
4 = CANopen slave in PRE-OPERATIONAL state
and is configured via SDO access
5 = CANopen slave in OPERATIONAL state
127 = CANopen slave in PRE-OPERATIONAL state
RESET_NODE BOOL Flag for manual reset of CANopen slave
(NMT command = Reset_Node)
START_NODE BOOL Flag for manual start of CANopen slave
(NMT command = start)
PREOP_NODE BOOL Flag to manually set the CANopen slave to the PRE-OPERATIONAL
state
NMT command = enter PRE-OPERATIONAL)
SET_TIMEOUT_STATE BOOL Flag used to manually skip initialisation of a CANopen slave if the
following applies:
• slave does not exist in network
• and slave is not configured as optional
SET_NODE_STATE BOOL Flag for manual initialisation of a CANopen slave
When accessing object 0x1000, the slave had identified itself as a
device type other than the one indicated in the EDS file incorporated in
the CODESYS configuration of the controller.
>

Example: CANx_MASTER_STATUS
2031
>

Slave information
2699

To be able to access the information of the individual CANopen nodes, you must create an array for
the corresponding structure. The structures are contained in the library. You can see them under [Data
types] in the library manager.
The number of the array elements is determined by the global variable MAX_NODEINDEX which is
automatically generated by the CANopen stack. It contains the number of the slaves minus 1 indicated
in the network configurator.

The numbers of the array elements do not correspond to the node ID. The identifier can be read
from the corresponding structure under NODE_ID.

85
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Programm-Beispiel zu CAN1_MASTER_STATUS
20651

Declaration of the variables:

Example of the program:

>

Structure node status


2034

86
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Structure Emergency_Message
2035

>

Access to the structures at runtime of the application


2036

At runtime you can access the corresponding array element via the global variables of the library and
therefore read the status or EMCY messages or reset the node.

If ResetSingleNodeArray[0].RESET_NODE is set to TRUE for a short time in the example given


above, the first node is reset in the configuration tree.
concerning the possible error codes → system manual "Know-How ecomatmobile"
→ chapter CAN / CANopen: errors and error handling.

87
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.3 Function elements: CANopen slave

CANx_SLAVE_EMCY_HANDLER ...................................................................................................... 89
CANx_SLAVE_NODEID ..................................................................................................................... 90
CANx_SLAVE_SEND_EMERGENCY ................................................................................................ 91
CANx_SLAVE_SET_PREOP .............................................................................................................. 93
CANx_SLAVE_STATUS ..................................................................................................................... 94
1874

ifm electronic provides a number of FBs for the CANopen slave which will be explained below.

88
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SLAVE_EMCY_HANDLER
2050
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2053

CANx_SLAVE_EMCY_HANDLER handles the device-specific error status of the CANopen slave:


• error register (index 0x1001) and
• error field (index 0x1003) of the CANopen object directory.
► Call the function block in the following cases:
• the error status is to be transmitted to the CAN network and
• the error messages of the application program are to be stored in the object directory.

Do you want to store the error messages in the object directory?


► After (repeated) handling of CANx_SLAVE_SEND_EMERGENCY (→ page 91) call
CANx_SLAVE_EMCY_HANDLER once!

>

Parameters of the inputs


2054

Data type Description


Parameter
CLEAR_ERROR_FIELD BOOL FALSE  TRUE (edge):
• transmit content of ERROR_FIELD to function block output
• delete content of ERROR_FIELD in object directory
else: this function is not executed
>

Parameters of the outputs


2055

Data type Description


Parameter
ERROR_REGISTER BYTE Shows content of OBV index 0x1001 (error register)
ERROR_FIELD ARRAY [0..5] OF WORD Shows the content of the OBV index 0x1003 (error field)
ERROR_FIELD[0]: number of stored errors
ERROR_FIELD[1...5]: Stored errors, the most recent error is shown on
index [1]

89
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SLAVE_NODEID
2044

= CANx Slave Node-ID


x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2049

CANx_SLAVE_NODEID enables the setting of the node ID of a CANopen slave at runtime of the
application program.
Normally, the FB is called once during initialisation of the controller, in the first cycle. Afterwards, the
input ENABLE is set to FALSE again.
>

Parameters of the inputs


2047

Data type Description


Parameter
ENABLE BOOL FALSE  TRUE (edge):
Adopt and activate parameters
else: this function is not executed
NODEID BYTE node ID = ID of the node
permissible values = 0...127

90
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SLAVE_SEND_EMERGENCY
2056
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2059

CANx_SLAVE_SEND_EMERGENCY transmits application-specific error states. These are error


messages which are to be sent in addition to the device-internal error messages (e.g. short circuit on
the output).
► Call the FB if the error status is to be transmitted to other devices in the network.
>

Parameters of the inputs


2060

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
ERROR BOOL Using this input, the information whether the error associated to the
configured error code is currently present is transmitted.
FALSE  TRUE (edge):
sends the next error code
if input was not TRUE in the last second
TRUE  FALSE (edge)
AND the fault is no longer indicated:
after a delay of approx. 1 s:
> zero error message is sent
else: this function is not executed
ERROR_CODE WORD The error code provides detailed information about the detected error.
The values should be entered according to the CANopen specification.
ERROR_REGISTER BYTE ERROR_REGISTER indicates the error type.
The value indicated here is linked by a bit-by-bit OR operation with all
the other error messages that are currently active. The resulting value
is written into the error register (index 100116/00) and transmitted with
the EMCY message.
The values should be entered according to the CANopen specification.
MANUFACTURER_ERROR_FIELD ARRAY [0..4] OF BYTE Here, up to 5 bytes of application-specific error information can be
entered. The format can be freely selected.

91
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Example: CANx_SLAVE_SEND_EMERGENCY
2062

In this example 3 error messages will be generated subsequently:


1. ApplError1, Code = 0xFF00 in the error register 0x81
2. ApplError2, Code = 0xFF01 in the error register 0x81
3. ApplError3, Code = 0xFF02 in the error register 0x81
CAN1_SLAVE_EMCY_HANDLER sends the error messages to the error register "Object 0x1001" in
the error array "Object 0x1003".

92
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SLAVE_SET_PREOP
2700
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2703

CANx_SLAVE_SET_PREOP switches the operating mode of this CANopen slave from


"OPERATIONAL" to "PRE-OPERATIONAL".
Normally, the controller only switches off the outputs in case of a fault. Under certain conditions it
might be necessary that the application sets the operating mode of the device working as a slave to
"PRE-OPERATIONAL". This is done via the FB described here.
>

Parameters of the inputs


2704

Data type Description


Parameter
ENABLE BOOL FALSE  TRUE (edge):
Set slave to PRE-OPERATIONAL
else: this function is not executed

93
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SLAVE_STATUS
2706
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2707

CANx_SLAVE_STATUS shows the status of the device used as CANopen slave.


We urgently recommend carrying out the evaluation of the network status via this function block.
>

Parameters of the inputs


2708

Data type Description


Parameter
CLEAR_RX_OVERFLOW_FLAG BOOL FALSE  TRUE (edge):
Clear error flag RX_OVERFLOW
else: this function is not executed
CLEAR_RX_BUFFER BOOL FALSE  TRUE (edge):
Delete data in the receive buffer
else: this function is not executed
CLEAR_TX_OVERFLOW_FLAG BOOL FALSE  TRUE (edge):
Clear error flag TX_OVERFLOW
else: this function is not executed
CLEAR_TX_BUFFER BOOL FALSE  TRUE (edge):
Delete data in the transmit buffer
else: this function is not executed
CLEAR_RESET_FLAGS BOOL FALSE  TRUE (edge):
Clear flag RESET_NODE
Clear flag RESET_COM
else: this function is not executed
CLEAR_OD_CHANGED_FLAGS BOOL FALSE  TRUE (edge):
Clear flag OD_CHANGED
Clear flag OD_CHANGED­_INDEX
else: this function is not executed

94
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the outputs


2068

Data type Description


Parameter
NODE_ID BYTE current node ID of the CANopen slave
BAUDRATE WORD current baudrate of the CANopen node in [kBaud]
NODE_STATE BYTE Current status of CANopen slave
0 = Bootup message sent
4 = CANopen slave in PRE-OPERATIONAL state
and is configured via SDO access
5 = CANopen slave in OPERATIONAL state
127 = CANopen slave in PRE-OPERATIONAL state
SYNC BOOL SYNC signal of the CANopen master
TRUE: In the last cycle a SYNC signal was received
FALSE: In the last cycle no SYNC signal was received
SYNC_ERROR BOOL TRUE: Error: the SYNC signal of the master was not received
or received too late
(after expiration of ComCyclePeriod)
FALSE: no SYNC error
GUARD_HEARTBEAT_ERROR BOOL TRUE: Error: the guarding or heartbeat signal of the master
was not received or received too late
FALSE: no guarding or heartbeat error
RX_OVERFLOW BOOL TRUE: Error: receive buffer overflow
FALSE: no overflow
TX_OVERFLOW BOOL TRUE: Error: transmission buffer overflow
FALSE: no overflow
RESET_NODE BOOL TRUE: the CANopen stack of the slave was reset
by the master
FALSE: the CANopen stack of the slave was not reset
RESET_COM BOOL TRUE: the communication interface of the CAN stack was
reset by the master
FALSE: the communication interface was not reset
OD_CHANGED BOOL TRUE: Data in the object directory of the CANopen master
have been changed
FALSE: no data change
OD_CHANGED_INDEX INT Index of the object directory entry changed last

95
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.4 Function elements: CANopen SDOs

CANx_SDO_READ ............................................................................................................................. 97
CANx_SDO_WRITE ............................................................................................................................ 99
2071

Here you will find ifm function elements for CANopen handling of Service Data Objects (SDOs).

96
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SDO_READ
621
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
624

CANx_SDO_READ reads the →SDO (→ page 237) with the indicated indexes from the node.
Prerequisite: Node must be in the mode "PRE-OPERATIONAL" or "OPERATIONAL".
By means of these, the entries in the object directory can be read. So it is possible to selectively read
the node parameters.

Example:

97
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


625

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
NODE BYTE ID of the node
permissible values = 1...127 = 0x01...0x7F
IDX WORD index in object directory
SUBIDX BYTE sub-index referred to the index in the object directory
DATA DWORD Addresse of the receive data array
valid length = 0...255
Determine the address by means of the operator ADR and
assigne it to the FB!
>

Parameters of the outputs


626

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)
LEN WORD length of the entry in "number of bytes"
The value for LEN must not be greater than the size of the receive
array. Otherwise any data is overwritten in the application.

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 FB execution completed without error – data is valid
2 02 function block is active (action not yet completed)
3 03 Error, no data received during monitoring time

98
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CANx_SDO_WRITE
615
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
618

CANx_SDO_WRITE writes the →SDO (→ page 237) with the specified indexes to the node.
Prerequisite: the node must be in the state "PRE-OPERATIONAL" or "OPERATIONAL".
Using this FB, the entries can be written to the object directory. So it is possible to selectively set the
node parameters.

The value for LEN must be lower than the length of the transmit array. Otherwise, random data will
be sent.

Example:

99
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


619

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
NODE BYTE ID of the node
permissible values = 1...127 = 0x01...0x7F
IDX WORD index in object directory
SUBIDX BYTE sub-index referred to the index in the object directory
LEN WORD length of the entry in "number of bytes"
The value for LEN must not be greater than the size of the transmit
array. Otherwise any data is sent.
DATA DWORD Address of the transmit data array
permissible length = 0...255
Determine the address by means of the operator ADR and
assigne it to the FB!
>

Parameters of the outputs


620

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 FB execution completed without error – data is valid
2 02 function block is active (action not yet completed)
3 03 Error, data cannot be transmitted

100
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.5 Function elements: SAE J1939

J1939_x ............................................................................................................................................. 102


J1939_x_GLOBAL_REQUEST ......................................................................................................... 103
J1939_x_RECEIVE ........................................................................................................................... 105
J1939_x_RESPONSE ....................................................................................................................... 108
J1939_x_SPECIFIC_REQUEST ....................................................................................................... 110
J1939_x_TRANSMIT......................................................................................................................... 112
2273

For SAE J1939, ifm electronic provides a number of function elements which will be explained in the
following.

101
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

J1939_x
2274
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_J1939_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2276

J1939_x serves as protocol handler for the communication profile SAE J1939.
To handle the communication, the protocol handler must be called in each program cycle. To do so,
the input ENABLE is set to TRUE.
Once set, ENABLE must remain TRUE!
The protocol handler is started if the input START is set to TRUE for one cycle.
Using MY_ADDRESS, a device address is assigned to the controller. It must differ from the addresses
of the other J1939 bus participants. It can then be read by other bus participants.
>

Parameters of the inputs


469

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
START BOOL TRUE (only for 1 cycle):
Start J1939 protocol at CAN interface x
FALSE: during further processing of the program
MY_ADDRESS BYTE J1939 address of the device

102
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

J1939_x_GLOBAL_REQUEST
2282
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_J1939_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2301

J1939_x_GLOBAL_REQUEST is responsible for the automatic requesting of individual messages


from all (global) active J1939 network participants. To do so, the parameters PG, PF, PS and the
address of the array DST in which the received data is stored are assigned to the FB.

Info
PGN = [Page] + [PF] + [PS]
PDU = [PRIO] + [PGN] + [J1939 address] + [data]
13790

NOTICE
Risk of inadmissible overwriting of data!
► Create a receiver array with a size of 1 785 bytes.
This is the maximum size of a J1939 message.
► Check the amount of received data:
the value must not exceed the size of the array created to receive data!

► For every requested message use an own instance of the FB!


► To the destination address DST applies:
Determine the address by means of the operator ADR and assigne it to the FB!
► In addition, the priority (typically 3, 6 or 7) must be assigned.

► Given that the request of data can be handled via several control cycles, this process must be
evaluated via the RESULT byte.
• RESULT = 2: the POU is waiting for data of the participants.
• RESULT = 1: data was received by a participant.
The output LEN indicates how many data bytes have been received.
Store / evaluate this new data immediately!
When a new message is received, the data in the memory address DST is overwritten.
• RESULT = 0: no participant on the bus sends a reply within 1.25 seconds.
The FB returns to the non-active state.
Only now may ENABLE be set again to FALSE!
► For the reception of data from several participants at short intervals:
call the POU several times in the same PLC cycle and evaluate it at once!

103
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


463

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
PRIO BYTE message priority (0…7)
PG BYTE Data page
Value of defined PGN (Parameter Group Number)
allowed = 0...1 (normally = 0)
PF BYTE PDU format byte
Value of defined PGN (Parameter Group Number)
PDU2 (global) = 240...255
PS BYTE PDU specific byte
Value of defined PGN (Parameter Group Number)
GE (Group Extension) = 0...255
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!

Info
PGN = [Page] + [PF] + [PS]
PDU = [PRIO] + [PGN] + [J1939 address] + [data]

>

Parameters of the outputs


464

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)
SA BYTE J1939 address of the answering device
LEN WORD number of received bytes

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 FB execution completed without error – data is valid
2 02 function block is active (action not yet completed)
3 03 Error

104
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

J1939_x_RECEIVE
2278
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_J1939_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2288

J1939_x_RECEIVE serves for receiving one individual message or a block of messages.


To do so, the FB must be initialised for one cycle via the input CONFIG. During initialisation, the
parameters PG, PF, PS, RPT, LIFE and the memory address of the data array DST are assigned.

Once the following parameters have been configured they can no longer be modified in the
running application program: PG, PF, PS, RPT, LIFE, DST.
13790

NOTICE
Risk of inadmissible overwriting of data!
► Create a receiver array with a size of 1 785 bytes.
This is the maximum size of a J1939 message.
► Check the amount of received data:
the value must not exceed the size of the array created to receive data!

► To the destination address DST applies:


Determine the address by means of the operator ADR and assigne it to the FB!
Once RPT has been set it can no longer be modified!
► The receipt of data must be evaluated via the RESULT byte. If RESULT = 1 the data can be read
from the memory address assigned via DST and can be further processed.
> When a new message is received, the data in the memory address DST is overwritten.
> The number of received message bytes is indicated via the output LEN.
> If RESULT = 3, no valid messages have been received in the indicated time window (LIFE • RPT).

This block must also be used if the messages are requested using the FBs J1939_..._REQUEST.

105
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

106
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


457

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
CONFIG BOOL TRUE (in the 1st cycle):
configure data object
FALSE: during further processing of the program
PG BYTE Data page
Value of defined PGN (Parameter Group Number)
allowed = 0...1 (normally = 0)
PF BYTE PDU format byte
Value of defined PGN (Parameter Group Number)
PDU1 (specific) = 0...239
PDU2 (global) = 240...255
PS BYTE PDU specific byte
Value of defined PGN (Parameter Group Number)
If PF = PDU1  PS = DA (Destination Address)
(DA = J1939 address of external device)
If PF = PDU2  PS = GE (Group Extension)
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!
RPT TIME Monitoring time
Within this time window the messages must be received
cyclically.
> Otherwise, there will be an error message.
RPT = T#0s  no monitoring
Once RPT has been set it can no longer be modified!
LIFE BYTE tolerated number of J1939 messages not received
>

Parameters of the outputs


458

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)
DEVICE BYTE J1939 address of the sender
LEN WORD number of received bytes

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 FB execution completed without error – data is valid
3 03 Error, no data received during monitoring time

107
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

J1939_x_RESPONSE
2280
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_J1939_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2299

J1939_x_RESPONSE handles the automatic response to a request message.


This FB is responsible for the automatic sending of messages to "Global Requests" and "Specific
Requests". To do so, the FB must be initialised for one cycle via the input CONFIG.
The parameters PG, PF, PS, RPT and the address of the data array SRC are assigned to the FB.
► To the source address SRC applies:
Determine the address by means of the operator ADR and assigne it to the FB!
► In addition, the number of data bytes to be transmitted is assigned.
>

Parameters of the inputs


451

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
CONFIG BOOL TRUE (in the 1st cycle):
configure data object
FALSE: during further processing of the program
PG BYTE Data page
Value of defined PGN (Parameter Group Number)
allowed = 0...1 (normally = 0)
PF BYTE PDU format byte
Value of defined PGN (Parameter Group Number)
PDU1 (specific) = 0...239
PDU2 (global) = 240...255
PS BYTE PDU specific byte
Value of defined PGN (Parameter Group Number)
If PF = PDU1  PS = DA (Destination Address)
(DA = J1939 address of external device)
If PF = PDU2  PS = GE (Group Extension)
SRC DWORD start address in source memory

Determine the address by means of the operator ADR and


assigne it to the FB!
LEN WORD number (> 1) of the data bytes to be transmitted

108
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the outputs


13993

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 Data transfer completed without errors
2 02 function block is active (action not yet completed)
3 03 Error, data cannot be transmitted

109
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

J1939_x_SPECIFIC_REQUEST
2281
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_J1939_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2300

J1939_x_SPECIFIC_REQUEST is responsible for the automatic requesting of individual messages


from a specific J1939 network participant. To do so, the logical device address DA, the parameters
PG, PF, PS and the address of the array DST in which the received data is stored are assigned to the
FB.

Info
PGN = [Page] + [PF] + [PS]
PDU = [PRIO] + [PGN] + [J1939 address] + [data]
13790

NOTICE
Risk of inadmissible overwriting of data!
► Create a receiver array with a size of 1 785 bytes.
This is the maximum size of a J1939 message.
► Check the amount of received data:
the value must not exceed the size of the array created to receive data!

► To the destination address DST applies:


Determine the address by means of the operator ADR and assigne it to the FB!
► In addition, the priority (typically 3, 6 or 7) must be assigned.
► Given that the request of data can be handled via several control cycles, this process must be
evaluated via the RESULT byte. All data has been received if RESULT = 1.
> The output LEN indicates how many data bytes have been received.

110
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


445

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
PRIO BYTE message priority (0…7)
DA BYTE J1939 address of the requested device
PG BYTE Data page
Value of defined PGN (Parameter Group Number)
allowed = 0...1 (normally = 0)
PF BYTE PDU format byte
Value of defined PGN (Parameter Group Number)
PDU1 (specific) = 0...239
PDU2 (global) = 240...255
PS BYTE PDU specific byte
Value of defined PGN (Parameter Group Number)
If PF = PDU1  PS = DA (Destination Address)
(DA = J1939 address of external device)
If PF = PDU2  PS = GE (Group Extension)
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!

Info
PGN = [Page] + [PF] + [PS]
PDU = [PRIO] + [PGN] + [J1939 address] + [data]

>

Parameters of the outputs


446

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)
LEN WORD number of received bytes

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 FB execution completed without error – data is valid
2 02 function block is active (action not yet completed)
3 03 Error

111
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

J1939_x_TRANSMIT
279
x = 1...n = number of the CAN interface (depending on the device, → Data sheet)
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_J1939_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2298

J1939_x_TRANSMIT is responsible for transmitting individual messages or blocks of messages. To do


so, the parameters PG, PF, PS, RPT and the address of the data array SRC are assigned to the FB.

Info
PGN = [Page] + [PF] + [PS]
PDU = [PRIO] + [PGN] + [J1939 address] + [data]

► To the source address SRC applies:


Determine the address by means of the operator ADR and assigne it to the FB!
► In addition, the number of data bytes to be transmitted and the priority (typically 3, 6 or 7) must be
assigned.
► Given that the transmission of data is processed via several control cycles, the process must be
evaluated via the RESULT byte. All data has been transmitted if RESULT = 1.
If more than 8 bytes are to be sent, a "multi package transfer" is carried out.

112
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


439

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
PRIO BYTE message priority (0…7)
PG BYTE Data page
Value of defined PGN (Parameter Group Number)
allowed = 0...1 (normally = 0)
PF BYTE PDU format byte
Value of defined PGN (Parameter Group Number)
PDU1 (specific) = 0...239
PDU2 (global) = 240...255
PS BYTE PDU specific byte
Value of defined PGN (Parameter Group Number)
If PF = PDU1  PS = DA (Destination Address)
(DA = J1939 address of external device)
If PF = PDU2  PS = GE (Group Extension)
SRC DWORD start address in source memory

Determine the address by means of the operator ADR and


assigne it to the FB!
LEN WORD number of data bytes to be transmitted
allowed = 1...1 785 = 0x0001...0x06F9
RPT TIME Repeat time during which the data messages are to be transmitted
cyclically
RPT = T#0s  sent only once

Info
PGN = [Page] + [PF] + [PS]
PDU = [PRIO] + [PGN] + [J1939 address] + [data]

>

Parameters of the outputs


440

Data type Description


Parameter
RESULT BYTE feedback of the function block
(possible messages → following table)

Possible results for RESULT:


Value
Description
dec | hex
0 00 FB is inactive
1 01 FB execution completed without error – data is valid
2 02 function block is active (action not yet completed)
3 03 Error, data cannot be transmitted

113
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.6 Function elements: serial interface

SERIAL_PENDING ........................................................................................................................... 115


SERIAL_RX ....................................................................................................................................... 116
SERIAL_SETUP ................................................................................................................................ 117
SERIAL_TX ....................................................................................................................................... 118
13011

NOTE
The serial interface is not available to the user by default, because it is used for program download
and debugging.
The interface can be freely used if the user sets the system flag bit SERIAL_MODE=TRUE.
Debugging of the application program is then only possible via one of the 4 CAN interfaces or via
USB.

The function blocks listed below allow you to use the serial interface in the application program.

114
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SERIAL_PENDING
314

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
12994

SERIAL_PENDING determines the number of data bytes stored in the serial receive buffer.
In contrast to SERIAL_RX the content of the buffer remains unchanged after this function has been
called.
The SERIAL FBs form the basis for the creation of an application-specific protocol for the serial
interface.
To do so, set the system flag bit SERIAL_MODE=TRUE!

NOTE
The serial interface is not available to the user by default, because it is used for program download
and debugging.
The interface can be freely used if the user sets the system flag bit SERIAL_MODE=TRUE.
Debugging of the application program is then only possible via one of the 4 CAN interfaces or via
USB.

>

Parameters of the outputs


12996

Data type Description


Parameter
NUMBER WORD Number of data bytes received (1...1 000)

115
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SERIAL_RX
308

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
12997

SERIAL_RX reads a received data byte from the serial receive buffer at each call.
If more than 1000 data bytes are received, the buffer overflows and data is lost. This is indicated by
the bit OVERFLOW.
If 7-bit data transmission is used, the 8th bit contains the parity and must be suppressed by the user if
necessary.
The SERIAL FBs form the basis for the creation of an application-specific protocol for the serial
interface.
To do so, set the system flag bit SERIAL_MODE=TRUE!

NOTE
The serial interface is not available to the user by default, because it is used for program download
and debugging.
The interface can be freely used if the user sets the system flag bit SERIAL_MODE=TRUE.
Debugging of the application program is then only possible via one of the 4 CAN interfaces or via
USB.

>

Parameters of the inputs


312

Data type Description


Parameter
CLEAR BOOL TRUE: delete receive buffer
FALSE: function element is not executed
>

Parameters of the outputs


12931

Data type Description


Parameter
Rx BYTE Byte data received from the receive buffer
AVAILABLE WORD Number of received bytes available in the receive buffer BEFORE the
call of the function block:
0 = no data received
1...1 000 = number of bytes in the receive buffer
OVERFLOW BOOL TRUE: Overflow of the data buffer  loss of data!
FALSE: Data buffer is without data loss

116
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SERIAL_SETUP
302

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
13000

SERIAL_SETUP initialises the serial RS232 interface.


The function block does not necessarily need to be executed in order to be able to use the serial
interface. Without function block call the default settings below apply.
Using ENABLE=TRUE for one cycle, the function block sets the serial interface to the indicated
parameters. The changes made with the help of the function block are saved non-volatily.

NOTE
The serial interface is not available to the user by default, because it is used for program download
and debugging.
The interface can be freely used if the user sets the system flag bit SERIAL_MODE=TRUE.
Debugging of the application program is then only possible via one of the 4 CAN interfaces or via
USB.

>

Parameters of the inputs


13002

Data type Description


Parameter
ENABLE BOOL TRUE (only for 1 cycle):
Initialise interface
FALSE: during further processing of the program
BAUD RATE DWORD Baud rate
Permissible values → data sheet
Preset value → data sheet
DATABITS BYTE := 8 Number of data bits
allowed = 7 or 8
PARITY BYTE := 0 Parity
allowed: 0=none, 1=even, 2=odd

With parameter setting DATABITS = 7 and PARITY = 0:


function block operates with PARITY = 1
STOPBITS BYTE := 1 Number of stop bits
allowed = 1 or 2

117
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SERIAL_TX
296

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
13003

SERIAL_TX transmits one data byte via the serial RS232 interface.
The FiFo transmission memory contains 1 000 bytes.
Using the input ENABLE the transmission can be enabled or disabled.
The SERIAL FBs form the basis for the creation of an application-specific protocol for the serial
interface.
To do so, set the system flag bit SERIAL_MODE=TRUE!

NOTE
The serial interface is not available to the user by default, because it is used for program download
and debugging.
The interface can be freely used if the user sets the system flag bit SERIAL_MODE=TRUE.
Debugging of the application program is then only possible via one of the 4 CAN interfaces or via
USB.

>

Parameters of the inputs


300

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
DATA BYTE value to be transmitted

118
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.7 Function elements: Optimising the PLC cycle

Function elements: processing interrupts ......................................................................................... 119


8609

Here we show you functions to optimise the PLC cycle.


>

Function elements: processing interrupts

SET_INTERRUPT_I .......................................................................................................................... 120


SET_INTERRUPT_XMS ................................................................................................................... 123
1599

The PLC cyclically processes the stored application program in its full length. The cycle time can vary
due to program branchings which depend e.g. on external events (= conditional jumps). This can have
negative effects on certain functions.
By means of systematic interrupts of the cyclic program it is possible to call time-critical processes
independently of the cycle in fixed time periods or in case of certain events.
Since interrupt functions are principally not permitted for SafetyControllers, they are thus not available.

119
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SET_INTERRUPT_I
2381

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
281
11573

SET_INTERRUPT_I handles the execution of a program part by an interrupt request via an input
channel.
In the conventional PLC the cycle time is decisive for real-time monitoring. So the PLC is at a
disadvantage as compared to customer-specific controllers. Even a "real-time operating system" does
not change this fact when the whole application program runs in one single block which cannot be
changed.
A possible solution would be to keep the cycle time as short as possible. This often leads to splitting
the application up to several control cycles. This, however, makes programming complex and difficult.
Another possibility is to call a certain program part only upon request by an input pulse independently
of the control cycle:
The time-critical part of the application is integrated by the user in a block of the type PROGRAM
(PRG). This block is declared as the interrupt routine by calling SET_INTERRUPT_I once (during
initialisation). As a consequence, this program block will always be executed if an edge is detected on
the input CHANNEL. If inputs and outputs are used in this program part, these are also read and
written in the interrupt routine, triggered by the input edge. Reading and writing can be stopped via the
FB inputs READ_INPUTS, WRITE_OUTPUTS and ANALOG_INPUTS.
So in the program block all time-critical events can be processed by linking inputs or global variables
and writing outputs. So FBs can only be executed if actually called by an input signal.

NOTE
The program block should be skipped in the cycle (except for the initialisation call) so that it is not
cyclically called, too.
The input (CHANNEL) monitored for triggering the interrupt cannot be initialised and further processed
in the interrupt routine.
The runtime of the main cycle plus the sum of the duration of all program parts called via interrupt
must always be within the max. permissible cycle time!
The user is responsible for data consistency between the main program and the program parts
running in the interrupt mode!

120
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

19866

Interrupt priorities:
• All program parts called via interrupt have the same priority of execution. Several simultaneous
interrupts are processed sequentially in the order of their occurrence.
• If a further edge is detected on the same input during execution of the program part called via
interrupt, the interrupt is listed for processing and the program is directly called again after
completion. As an option, interfering multiple pulses can be filtered out by setting the glitch filter.
• The program running in the interrupt mode can be disrupted by interrupts with a higher priority
(e.g. CAN).
• If several interrupts are present on the same channel, the last initialised FB (or the PRG) will be
assigned the channel. The previously defined FB (or the PRG) is then no longer called and no
longer provides data.
971

NOTE
The uniqueness of the inputs and outputs in the cycle is affected by the interrupt routine. Therefore
only part of the inputs and outputs is serviced. If initialised in the interrupt program, the following
inputs and outputs will be read or written.
Inputs, digital:
%IX0.0...%IX0.7 (Controller: CR0n3n, CR7n3n)
%IX0.12...%IX0.15, %IX1.4...%IX1.8 (all other ClassicController, ExtendedController, SafetyController)
%IX0.0, %IX0.8 (SmartController: CR250n)
IN08...IN11 (CabinetController: CR030n)
IN0...IN3 (PCB controller: CS0015)
Inputs, analogue:
%IX0.0...%IX0.7 (Controller: CR0n3n, CR7n3n)
All channels (selection bit-coded) (all other controller)
Outputs, digital:
%QX0.0...%QX0.7 (ClassicController, ExtendedController, SafetyController)
%QX0.0, %QX0.8 (SafetyController: CR7nnn)
OUT00...OUT03 (CabinetController: CR030n)
OUT0...OUT7 (PCB controller: CS0015)
Global variants, too, are no longer unique if they are accessed simultaneously in the cycle and by the
interrupt routine. This problem applies in particular to larger data types (e.g. DINT).
All other inputs and outputs are processed once in the cycle, as usual.

121
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2383

Data type Description


Parameter
ENABLE BOOL TRUE (only for 1 cycle):
initialisation of the function block
FALSE: unit is not executed
CHANNEL BYTE Number of interrupt input
0 = IN08
• CabinetController: CR030n ...
3 = IN11
0 = %IX1.4
• ClassicController: CR0020, CR0505
...
• ExtendedController: CR0200
3 = %IX1.7
0 = IN00
• ClassicController: CR0032, CR0033
...
• ExtendedController: CR0232, CR0233
7 = IN07
0 = %IX0.0
• SmartController: CR250n
1 = %IX0.8
0 = IN0
• PCB controller: CS0015
...
• PDM360smart: CR1071
3 = IN3
MODE BYTE Type of edge at the input CHANNEL which triggers the interrupt
1 = rising edge (standard value)
2 = falling edge
3 = rising and falling edge
> 3 = standard value
READ_INPUTS BOOL TRUE: read the inputs 0...7 before calling the program
and write into the input flags I00...I07
FALSE: only read the channel indicated under CHANNEL
and write to the corresponding input flag Ixx
WRITE_OUTPUTS BOOL TRUE: write the current values of the output flags Q00...Q07
to the outputs after completion of the program sequence
FALSE: do not write outputs
ANALOG_INPUTS BOOL TRUE: read inputs 0...7 and write the unfiltered, uncalibrated
analogue values to the flags ANALOG_IRQ00...07
FALSE: do not write flags ANALOG_IRQ00...07

122
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SET_INTERRUPT_XMS
272

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
275

SET_INTERRUPT_XMS handles the execution of a program part at an interval of x ms.


In the conventional PLC the cycle time is decisive for real-time monitoring. So, the PLC is at a
disadvantage as compared to customer-specific controllers. Even a "real-time operating system" does
not change this fact when the whole application program runs in one single block which cannot be
changed.
A possible solution would be to keep the cycle time as short as possible. This often leads to splitting
the application up to several control cycles. This, however, makes programming complex and difficult.
Another possibility is to call a certain program part at fixed intervals (every xAnother possibility is to
call a certain program part at fixed intervals (every x ms) independently of the control cycle.
The time-critical part of the application is integrated by the user in a block of the type PROGRAM
(PRG). This block is declared as the interrupt routine by calling SET_INTERRUPT_XMS once (during
initialisation). As a consequence, this program block is always processed after the REPEATTIME has
elapsed (every x ms). If inputs and outputs are used in this program part, they are also read and
written in the defined cycle. Reading and writing can be stopped via the FB inputs READ_INPUTS,
WRITE_OUTPUTS and ANALOG_INPUTS.
So, in the program block all time-critical events can be processed by linking inputs or global variables
and writing outputs. So, timers can be monitored more precisely than in a "normal cycle".

NOTE
To avoid that the program block called by interrupt is additionally called cyclically, it should be skipped
in the cycle (with the exception of the initialisation call).
Several timer interrupt blocks can be active. The time requirement of the interrupt functions must be
calculated so that all called functions can be executed. This in particular applies to calculations,
floating point arithmetic or controller functions.
The user is responsible for data consistency between the main program and the program parts
running in the interrupt!
Please note: In case of a high CAN bus activity the set REPEATTIME may fluctuate.

123
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

971

NOTE
The uniqueness of the inputs and outputs in the cycle is affected by the interrupt routine. Therefore
only part of the inputs and outputs is serviced. If initialised in the interrupt program, the following
inputs and outputs will be read or written.
Inputs, digital:
%IX0.0...%IX0.7 (Controller: CR0n3n, CR7n3n)
%IX0.12...%IX0.15, %IX1.4...%IX1.8 (all other ClassicController, ExtendedController, SafetyController)
%IX0.0, %IX0.8 (SmartController: CR250n)
IN08...IN11 (CabinetController: CR030n)
IN0...IN3 (PCB controller: CS0015)
Inputs, analogue:
%IX0.0...%IX0.7 (Controller: CR0n3n, CR7n3n)
All channels (selection bit-coded) (all other controller)
Outputs, digital:
%QX0.0...%QX0.7 (ClassicController, ExtendedController, SafetyController)
%QX0.0, %QX0.8 (SafetyController: CR7nnn)
OUT00...OUT03 (CabinetController: CR030n)
OUT0...OUT7 (PCB controller: CS0015)
Global variants, too, are no longer unique if they are accessed simultaneously in the cycle and by the
interrupt routine. This problem applies in particular to larger data types (e.g. DINT).
All other inputs and outputs are processed once in the cycle, as usual.

>

Parameters of the inputs


2382

Data type Description


Parameter
ENABLE BOOL TRUE (only for 1 cycle):
initialisation of the function block
FALSE: unit is not executed
REPEATTIME TIME Duration in [ms] between end of program and reboot
The duration between two calls is determined as the sum of
REPEATTIME and runtime of the program called via interrupt.
READ_INPUTS BOOL TRUE: read the inputs 0...7 before calling the program
and write into the input flags I00...I07
FALSE: no update of the inputs
WRITE_OUTPUTS BOOL TRUE: write the current values of the output flags Q00...Q07
to the outputs after completion of the program sequence
FALSE: do not write outputs
ANALOG_INPUTS BOOL TRUE: read inputs 0...7 and write the unfiltered, uncalibrated
analogue values to the flags ANALOG_IRQ00...07
FALSE: do not write flags ANALOG_IRQ00...07

124
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.8 Function elements: processing input values

INPUT_ANALOG ............................................................................................................................... 126


1602
1302

In this chapter we show you ifm FBs which allow you to read and process the analogue or digital
signals at the device input.

NOTE
The analogue raw values shown in the PLC configuration of CODESYS directly come from the ADC.
They are not yet corrected!
Therefore different raw values can appear in the PLC configuration for identical devices.
Error correction and normalisation are only carried out by ifm function blocks. The function blocks
provide the corrected value.

125
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

INPUT_ANALOG
2245

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2361
12916

INPUT_ANALOG enables current and voltage measurements on the input channels (allowed for all
inputs).
The function block provides the current analogue value at the selected analogue channel. The
analogue values are provided as standardised values. At the same time the uncalibrated raw values
are provided via the system flags ANALOGxx.
► For frequency and period measurements as well as counter functions: set MODE=1
(= IN_DIGITAL_H)!
The measurement and the output value results from the operating mode indicated via MODE:
12917

MODE FB Output
Input operating mode Unit
dec | hex OUT
0 00 deactivated --- ---
1 01 binary input, minus switching (BH) 0/1 ---
2 02 binary input, plus switching (BL) 0/1 ---
4 04 current input 0…20 000 µA
8 08 voltage input 0…10 000 mV
16 10 voltage input 0…32 000 mV
32 20 voltage input, ratiometric 0…1 000 ‰
64 40 diagnosis --- ---
128 80 fast input 0/1 ---
18414

If inputI15 is not used:


 Configure input I15 as binary input!

126
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2362

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
MODE BYTE operating mode of the input channel:
010 = 0016 IN_NOMODE (off; preset is active)
110 = 0116 IN_DIGITAL_H preset
210 = 0216 IN_DIGITAL_L
410 = 0416 IN_CURRENT 0…20 000 µA
810 = 0816 IN_VOLTAGE10 0…10 000 mV
1610 = 1016 IN_VOLTAGE30 0…30 000 mV
3210 = 2016 IN_RATIO 0...1 000 ‰
6410 = 4016 IN_DIAGNOSTIC
12810 = 8016 IN_FAST

CHANNEL BYTE Number of input channel (0...15)


0...15 for the inputs I00...I15
For the function block xxx_E (if available) applies:
0...15 for the inputs I00_E...I15_E
>

Parameters of the outputs


2363

Data type Description


Parameter
OUT WORD Output value according to MODE
in case of an invalid setting: OUT = "0"
ERROR BYTE 00 = okay
01 = over-current for IN_CURRENT
02 = short circuit to VBB for IN_DIGITAL_H,
OUT_DIAGNOSTIC
03 = wire break for IN_DIGITAL_H,
OUT_DIAGNOSTIC

127
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.9 Function elements: adapting analogue values

NORM ................................................................................................................................................ 129


NORM_DINT ..................................................................................................................................... 131
NORM_REAL .................................................................................................................................... 132
1603

If the values of analogue inputs or the results of analogue functions must be adapted, the following
FBs will help you.

128
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

NORM
401

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
404

NORM normalises a value within defined limits to a value with new limits.
The FB normalises a value of type WORD within the limits of XH and XL to an output value within the
limits of YH and YL. This FB is for example used for generating PWM values from analogue input
values.

NOTE
► The value for X must be in the defined input range between XL and XH!
There is no internal plausibility check of the value X.
> Due to rounding errors the normalised value can deviate by 1.
> If the limits (XH/XL or YH/YL) are defined in an inverted manner, normalisation is also done in an
inverted manner.

>

Parameters of the inputs


405

Data type Description


Parameter
X WORD input value
XH WORD Upper limit of input value range [increments]
XL WORD Lower limit of input value range [increments]
YH WORD Upper limit of output value range
YL WORD Lower limit of output value range
>

Parameters of the outputs


406

Data type Description


Parameter
Y WORD output value

129
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Example: NORM (1)


407

lower limit value input 0 XL


upper limit value input 100 XH
lower limit value output 0 YL
upper limit value output 2000 YH
then the FB converts the input signal for example as follows:
from X = 50 0 100 75
   
to Y = 1000 0 2000 1500
>

Example: NORM (2)


408

lower limit value input 2000 XL


upper limit value input 0 XH
lower limit value output 0 YL
upper limit value output 100 YH
then the FB converts the input signal for example as follows:
from X = 1000 0 2000 1500
   
to Y = 50 100 0 25

130
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

NORM_DINT
2217

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2355

NORM_DINT normalises a value within defined limits to a value with new limits.
The FB normalises a value of type DINT within the limits of XH and XL to an output value within the
limits of YH and YL. This FB is for example used for generating PWM values from analogue input
values.

NOTE
► The value for X must be in the defined input range between XL and XH!
There is no internal plausibility check of the value X.
► The result of the calculation (XH-XL)•(YH-YL) must remain in the value range of data type DINT
(-2 147 483 648...2 147 483 647)!
> Due to rounding errors the normalised value can deviate by 1.
> If the limits (XH/XL or YH/YL) are defined in an inverted manner, normalisation is also done in an
inverted manner.

>

Parameters of the inputs


2359

Data type Description


Parameter
X DINT current input value
XH DINT upper limit of input value range
XL DINT lower limit of input value range
YH DINT upper limit of output value range
YL DINT lower limit of output value range
>

Parameters of the outputs


2360

Data type Description


Parameter
Y DINT output value

131
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

NORM_REAL
2218

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2358

NORM_REAL normalises a value within defined limits to a value with new limits.
The FB normalises a value of type REAL within the limits of XH and XL to an output value within the
limits of YH and YL. This FB is for example used for generating PWM values from analogue input
values.

NOTE
► The value for X must be in the defined input range between XL and XH!
There is no internal plausibility check of the value X.
► The result of the calculation (XH-XL)•(YH-YL) must remain in the value range of data type REAL
(-3,402823466•1038...3,402823466•1038)!
> Due to rounding errors the normalised value can deviate by 1.
> If the limits (XH/XL or YH/YL) are defined in an inverted manner, normalisation is also done in an
inverted manner.

>

Parameters of the inputs


2356

Data type Description


Parameter
X REAL Input value
XH REAL Upper limit of output value range
XL REAL Lower limit of the input value range
YH REAL Upper limit of the output value range
YL REAL Lower limit of output value range
>

Parameters of the outputs


2357

Data type Description


Parameter
Y REAL Output value

132
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.10 Function elements: counter functions for frequency and period measurement

FAST_COUNT................................................................................................................................... 134
FREQUENCY .................................................................................................................................... 136
FREQUENCY_PERIOD .................................................................................................................... 138
INC_ENCODER ................................................................................................................................ 140
PERIOD ............................................................................................................................................. 142
PERIOD_RATIO ................................................................................................................................ 144
PHASE .............................................................................................................................................. 146
2322

Depending on the ecomatmobile device up to 16*) fast inputs are supported which can process input
frequencies of up to 30 kHz. In addition to frequency measurement, the inputs can also be used for
the evaluation of incremental encoders (counter function).
*) ExtendedController: up to 32 fast inputs
Due to the different measuring methods errors can occur when the frequency is determined.
The following FBs are available for easy evaluation:
Function element Permissible values Explanation
Measurement of the frequency on the indicated channel.
FREQUENCY 0.1...30 000 Hz
Measurement error is reduced in case of high frequencies
Measurement of frequency and period duration (cycle time) on the indicated
PERIOD 0.1...5 000 Hz
channel
Measurement of frequency and period duration (cycle time) as well as mark-to-
PERIOD_RATIO 0.1...5 000 Hz
space ratio [‰] on the indicated channel
The FB combines the two FBs FREQUENCY and PERIOD or PERIOD_RATIO.
FREQUENCY_PERIOD 0.1...30 000 Hz
Automatic selection of the measuring method at 5 kHz
PHASE 0.1...5 000 Hz Reading of a channel pair and comparison of the phase position of the signals
INC_ENCODER 0.1...30 000 Hz Up/down counter function for the evaluation of encoders
FAST_COUNT 0.1...30 000 Hz Counting of fast pulses

Important when using the fast inputs as "normal" digital inputs:


► The increased sensitivity to noise pulses must be taken into account (e.g. contact bouncing for
mechanical contacts).
► The input signal must be debounced, if necessary! → chapter Configure the hardware filter
(→ page 58)
• The standard digital input can evaluate signals up to 50 Hz.

133
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FAST_COUNT
567

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
6830

FAST_COUNT operates as counter block for fast input pulses.


During ENABLE=TRUE the function block detects rising edges at the FRQ input channels.
Maximum input frequency → data sheet.
If resetting and newly setting ENABLE, the counter continues to count from the value that was valid at
the last reset of ENABLE.
When setting INIT (rising edge) the count value CV is set to 0.
When resetting the parameter INIT the counter counts from 0.

Do not use this function block on one input together with one of the following function blocks!
• FREQUENCY (→ page 136)
• FREQUENCY_PERIOD (→ page 138)
• INC_ENCODER (→ page 140)
• PERIOD (→ page 142)
• PERIOD_RATIO (→ page 144)
• PHASE (→ page 146)

134
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


571

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> counter stopped
INIT BOOL FALSE  TRUE (edge):
unit is initialised
FALSE: during further processing of the program
CHANNEL BYTE number of the fast input channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
MODE_UP_DOWN BOOL TRUE: counter counts downwards
FALSE: counter counts upwards
LOAD BOOL TRUE: start value PV is loaded in CV
FALSE: function element is not executed
PV DWORD Start value (preset value) for the counter
>

Parameters of the outputs


572

Data type Description


Parameter
CV DWORD current counter value
Behaviour in case of overflow:
• the counter stops at 0 when counting downwards
• there is an overflow when counting upwards

135
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FREQUENCY
537

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2325
20675

The FB measures the frequency of the signal arriving at the selected CHANNEL. To do so, the FB
evaluates the positive edge of the signal.
Depending on the TIMEBASE, frequency measurements can be carried out in a wide value range.
High frequencies require a short time base, low frequencies a correspondingly longer time base. Limit
values:
TIMEBASE permissible, measureable frequency
57 000 ms
1 149 Hz
(= maximum value)
30 000 Hz
2 184 ms
(= maximum value)

The frequency is provided directly in [Hz].

For frequency measuring: ensure that the function block does not receive more than 65 535
positive edges within the value of TIMEBASE!
Otherwise, the internal counting register may overflow and lead to incorrect results.

Do not use this function block on one input together with one of the following function blocks!
• FAST_COUNT (→ page 134)
• FREQUENCY_PERIOD (→ page 138)
• INC_ENCODER (→ page 140)
• PERIOD (→ page 142)
• PERIOD_RATIO (→ page 144)
• PHASE (→ page 146)

136
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2599

Data type Description


Parameter
INIT BOOL TRUE (only for 1 cycle):
Function block and interface are initialised
FALSE: measurement in process
or:measurement begins if previously INIT=TRUE
CHANNEL BYTE number of the fast input channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
TIMEBASE TIME Time basis for frequency measurement (max. 57 s)
>

Parameters of the outputs


542

Data type Description


Parameter
F REAL frequency of the input signal in [Hz]

137
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FREQUENCY_PERIOD
2206

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2335
20676

FREQUENCY_PERIOD measures the frequency and period duration (cycle time) in [µs] on the
indicated channel (allowed for all inputs). Maximum input frequency → data sheet.
The FB combines PERIOD/PERIOD_RATIO and FREQUENCY in a common function. The measuring
method is automatically selected at approx. 5 kHz:
• below 5.2 kHz the FB behaves like PERIOD or PERIOD_RATIO
• above 5.5 kHz the FB behaves like FREQUENCY.
This FB measures the frequency and the cycle time of the signal at the selected CHANNEL. To
calculate, all positive edges are evaluated and the average value is determined by means of the
number of indicated PERIODS.
For an input frequency > 5 kHz and an active FREQUENCY mode the ratio cannot be measured.
The maximum measuring range is approx. 15 min.

For frequency measuring: ensure that the function block does not receive more than 65 535
positive edges within the value of TIMEBASE!
Otherwise, the internal counting register may overflow and lead to incorrect results.

NOTE
Do not use this function block on one input together with one of the following function blocks!
• FAST_COUNT (→ page 134)
• FREQUENCY (→ page 136)
• INC_ENCODER (→ page 140)
• PERIOD (→ page 142)
• PERIOD_RATIO (→ page 144)
• PHASE (→ page 146)

138
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2336

Data type Description


Parameter
INIT BOOL TRUE (only for 1 cycle):
Function block and interface are initialised
FALSE: measurement in process
or:measurement begins if previously INIT=TRUE
CHANNEL BYTE number of the fast input channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
PERIODS BYTE Number of periods to be averaged (1...16)
0 : Outputs C and F are not updated
> 16 : is limited to 16
TIMEBASE TIME Time basis for frequency measurement (max. 57 s)
RATIO_ENABLE BOOL TRUE: Ratio measurement provided to RATIO1000
FALSE: No ratio measurement provided
>

Parameters of the outputs


2337

Data type Description


Parameter
C DWORD Cycle time of the detected periods in [µs]
permissible = 33...10 000 000 = 0x21...0x989680
F REAL frequency of the input signal in [Hz]
ET TIME for measuring the interval:
(can be used for very slow signals)
RATIO_ENABLE = TRUE:
time elapsed since the last change of edge on the input
RATIO_ENABLE = FALSE:
time elapsed since the last rising edge on the input
for other measurements:
ET = 0
RATIO1000 WORD for measuring the interval:
Mark-to-space ratio in [‰]
Preconditions:
• pulse duration > 100 µs
• frequency < 5 kHz
for other measurements:
RATIO1000 = 0

139
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

INC_ENCODER
525

= Incremental Encoder
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2602

INC_ENCODER offers up/down counter functions for the evaluation of encoders.


Each input pair to be evaluated by means of the function block is formed by two frequency inputs.
Limit frequency = 30 kHz
max. number of units to be connected: 4 encoders (ExtendedController: max. 8 encoders)
Set preset value:
1. Enter value in PRESET_VALUE
2. Set PRESET to TRUE for one cycle
3. Reset PRESET to FALSE
The function block counts the pulses at the inputs as long as INIT=FALSE and PRESET=FALSE.
The current counter value is available at the output COUNTER.
The outputs UP and DOWN indicate the current counting direction of the counter. The outputs are
TRUE if the counter has counted in the corresponding direction in the preceding program cycle. If the
counter stops, the direction output in the following program cycle is also reset.

Do not use this function block on one input together with one of the following function blocks!
• FAST_COUNT (→ page 134)
• FREQUENCY (→ page 136)
• FREQUENCY_PERIOD (→ page 138)
• PERIOD (→ page 142)
• PERIOD_RATIO (→ page 144)
• PHASE (→ page 146)

140
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


529

Data type Description


Parameter
INIT BOOL TRUE (only for 1 cycle):
Function block is initialised
FALSE: during further processing of the program
CHANNEL BYTE number of the input channel pair x
(0...x, value depends on the device, → data sheet)
0 = channel pair 0 = inputs I00(_E) + I01(_E)
1 = channel pair 1 = inputs I02(_E) + I03(_E)
2 = channel pair 2 = inputs I04(_E) + I05(_E)
3 = channel pair 3 = inputs I06(_E) + I07(_E)
PRESET_VALUE DINT counter start value
PRESET BOOL FALSE  TRUE (edge):
PRESET_VALUE is loaded to COUNTER
TRUE: Counter ignores the input pulses
FALSE: Counter counts the input pulses
>

Parameters of the outputs


530

Data type Description


Parameter
COUNTER DINT Current counter value
UP BOOL TRUE: counter counts upwards in the last cycle
FALSE: counter counts not upwards in the last cycle
DOWN BOOL TRUE: counter counts downwards in the last cycle
FALSE: counter counts not downwards in the last cycle

141
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PERIOD
370

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2330
20677

PERIOD measures the frequency and period duration (cycle time) in [µs] on the indicated channel
(allowed for all inputs). Maximum input frequency → data sheet.
This FB measures the frequency and the cycle time of the signal at the selected CHANNEL. To
calculate, all positive edges are evaluated and the average value is determined by means of the
number of indicated PERIODS.
In case of low frequencies there will be inaccuracies when using FREQUENCY (→ page 136). To avoid
this, PERIOD can be used. The cycle time is directly indicated in [µs].
The maximum measuring range is 10 seconds.

Do not use this function block on one input together with one of the following function blocks!
• FAST_COUNT (→ page 134)
• FREQUENCY (→ page 136)
• FREQUENCY_PERIOD (→ page 138)
• INC_ENCODER (→ page 140)
• PERIOD_RATIO (→ page 144)
• PHASE (→ page 146)

142
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2600

Data type Description


Parameter
INIT BOOL FALSE  TRUE (edge):
unit is initialised
FALSE: during further processing of the program
CHANNEL BYTE number of the fast input channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
PERIODS BYTE Number of periods to be averaged (1...16)
0 : Outputs C and F are not updated
> 16 : is limited to 16
>

Parameters of the outputs


375

Data type Description


Parameter
C DWORD Cycle time of the detected periods in [µs]
allowed = 200...10 000 000 = 0xC8...0x989680 (= 10 seconds)
F REAL frequency of the input signal in [Hz]
ET TIME time elapsed since the last rising edge on the input
(can be used for very slow signals)

143
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PERIOD_RATIO
364

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2332
20678

PERIOD_RATIO measures the frequency and the period duration (cycle time) in [µs] over the
indicated periods on the indicated channel (allowed for all inputs). In addition, the mark-to-period ratio
is indicated in [‰]. Maximum input frequency → data sheet.
This FB measures the frequency and the cycle time of the signal at the selected CHANNEL. To
calculate, all positive edges are evaluated and the average value is determined by means of the
number of indicated PERIODS. In addition, the mark-to-period ratio is indicated in [‰].
For example: In case of a signal ratio of 25 ms high level and 75 ms low level the value RATIO1000 is
provided as 250 ‰.
In case of low frequencies there will be inaccuracies when using FREQUENCY (→ page 136). To avoid
this, PERIOD_RATIO can be used. The cycle time is directly indicated in [µs].
The maximum measuring range is 10 seconds.

Do not use this function block on one input together with one of the following function blocks!
• FAST_COUNT (→ page 134)
• FREQUENCY (→ page 136)
• FREQUENCY_PERIOD (→ page 138)
• INC_ENCODER (→ page 140)
• PERIOD (→ page 142)
• PHASE (→ page 146)

144
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2601

Data type Description


Parameter
INIT BOOL FALSE  TRUE (edge):
unit is initialised
FALSE: during further processing of the program
CHANNEL BYTE number of the fast input channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
PERIODS BYTE Number of periods to be averaged (1...16)
0 : Outputs C and F are not updated
> 16 : is limited to 16
>

Parameters of the outputs


369

Data type Description


Parameter
C DWORD Cycle time of the detected periods in [µs]
allowed = 200...10 000 000 = 0xC8...0x989680 (= 10 seconds)
F REAL frequency of the input signal in [Hz]
ET TIME Time passed since the last change of state on the input (can be used
in case of very slow signals)
RATIO1000 WORD for measuring the interval:
Mark-to-space ratio in [‰]
Preconditions:
• pulse duration > 100 µs
• frequency < 5 kHz
for other measurements:
RATIO1000 = 0

145
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PHASE
358

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'.

Symbol in CODESYS:

>

Description
2338
20679

PHASE reads a pair of channels with fast inputs and compares the phase position of the signals.
Maximum input frequency → data sheet.
This FB compares a pair of channels with fast inputs so that the phase position of two signals towards
each other can be evaluated. An evaluation of the cycle period is possible even in the range of
seconds (max. 10 seconds).

Do not use this function block on one input together with one of the following function blocks!
• FAST_COUNT (→ page 134)
• FREQUENCY (→ page 136)
• FREQUENCY_PERIOD (→ page 138)
• INC_ENCODER (→ page 140)
• PERIOD (→ page 142)
• PERIOD_RATIO (→ page 144)

>

Parameters of the inputs


2339

Data type Description


Parameter
INIT BOOL TRUE (only for 1 cycle):
Function block and interface are initialised
FALSE: during further processing of the program
CHANNEL BYTE number of the input channel pair x
(0...x, value depends on the device, → data sheet)
0 = channel pair 0 = inputs I00(_E) + I01(_E)
1 = channel pair 1 = inputs I02(_E) + I03(_E)
2 = channel pair 2 = inputs I04(_E) + I05(_E)
3 = channel pair 3 = inputs I06(_E) + I07(_E)
>

Parameters of the outputs


363

Data type Description


Parameter
C DWORD period duration of the first input's signal of the channel pair in [µs]
P INT angle of the phase shaft
valid measurement: 1...358 °
ET TIME Time elapsed since the last positive edge at the second pulse input of
the channel pair

146
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.11 Function elements: PWM functions

OUTPUT_BRIDGE ............................................................................................................................ 148


OUTPUT_CURRENT ........................................................................................................................ 152
OUTPUT_CURRENT_CONTROL .................................................................................................... 153
PWM1000 .......................................................................................................................................... 155
13758

Here, you will find ifm function blocks that allow you to operate the outputs with Pulse-Width
Modulation (PWM).

147
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

OUTPUT_BRIDGE
2198

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'. (not for CR0133)

Symbol in CODESYS:

>

Description
2203

OUTPUT_BRIDGE controls the H-bridges on the PWM channels.


By means of this FB the outputs can easily be used as H-bridge. To do so, two successive output
channels are combined to one bridge by means of a minus switching driver. If DIRECTION = FALSE,
for the first output the plus switching driver is triggered via a PWM signal and the minus switching
driver of the second output is switched.

NOTE
When using the H-bridge current control is not supported.
Outputs which are operated in the PWM mode do not support any diagnostic functions and no
ERROR flags are set. This is due to the structure of the outputs.
The function OUT_OVERLOAD_PROTECTION is not active in this mode!
The flag in mode byte will be resetted by function OUTPUT_BRIDGE
If VALUE = 0, output will not be fully deactivated. In principle the output will be active during a timer
tick of the PWM timer (typically approx. 50 µs).
► FB must be called in each cycle.

Assignment of the output channels usable as an H-bridge → data sheet.

148
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

15672

NOTE
Is the measuring range for ACTUAL_CURRENT to be changed (to 4 A) at the function block
OUTPUT_BRIDGE during operation?
► For both related outputs, during the init phase, call the function block SET_OUTPUT_MODE
before calling the function block OUTPUT_BRIDGE!
► When calling the function block SET_OUTPUT_MODE, at the function block OUTPUT_BRIDGE,
take into account the parameter DIRECTION!
Changing the measuring range is permitted only for the output operated in B(H), i.e.:
FB OUTPUT_BRIDGE:
H bridge change the measuring range for output ...
DIRECTION
1 Q01(_E)
0
2 Q09(_E)
1 Q03(_E)
1
2 Q11(_E)
>

Principle of the H-bridge


9990
16411

Here you can see how a h-bridge can be run via PWM outputs at a ifm controller.
Basic circuit of a H-bridge with PWM control:

T1 and T2 together are e.g. output Qx.


Also T3 and T4 belongs together, e.g. for Qy.
Therfore you only need two pins for connecting the DC motor.

149
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

Program example:

150
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2204

Data type Description


Parameter
INIT BOOL TRUE (only for 1 cycle):
Function block is initialised
FALSE: during further processing of the program
CHANNEL BYTE Name of output pair:
1 = bridge 1 at Q01 + Q03
2 = bridge 2 at Q09 + Q11
For the function block xxx_E (if available) applies:
1 = bridge 1 at Q01_E + Q03_E
2 = bridge 2 at Q09_E + Q11_E
PWM_FREQUENCY WORD PWM frequency [Hz] for load on input
> function block limited to value of 20...2 000 = 0x0014...0x07D0
VALUE WORD PWM value (mark-to-space ratio) in [‰]
allowed = 0...1 000 = 0x0000...0x03E8
Values > 1 000 are regarded as = 1 000
DIRECTION BOOL Direction of rotation of the motor:
TRUE: Counter-clockwise (ccw):
Bridge 1: current flow Q01(_E)  Q03(_E)
Bridge 2: current flow Q09(_E)  Q11(_E)
FALSE: Clockwise (cw):
Bridge 1: current flow Q01(_E)  Q03(_E)
Bridge 2: current flow Q09(_E)  Q11(_E)
BRAKE_ASSISTANT BOOL TRUE: When changing the rotational direction:
the function block switches both outputs to ground
to brake the motor
as long as CHANGEOVER_TIME is running.
FALSE: function element is not executed
CHANGEOVER_TIME WORD Space time in [ms] during which the motor is not triggered in the case
of a change of the rotational direction
(> cycle time, at least 10 ms)
values < 10 ms work as = 10 ms
>

Parameters of the outputs


2205

Data type Description


Parameter
ACTUAL_CURRENT WORD Output current in [mA]

151
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

OUTPUT_CURRENT
382

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'. (not for CR0133)

Symbol in CODESYS:

>

Description
385

OUTPUT_CURRENT handles the current measurement in conjunction with an active PWM channel.
The FB provides the current output current if the outputs are used as PWM outputs or as plus
switching. The current measurement is carried out in the device, i.e. no external measuring resistors
are required.
>

Parameters of the inputs


17894

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
OUTPUT_CHANNEL BYTE Number of the current-controlled output channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
DITHER_RELATED BOOL Current is determined as an average value via...
TRUE: one dither period
FALSE: one PWM period
>

Parameters of the outputs


387

Data type Description


Parameter
ACTUAL_CURRENT WORD Output current in [mA]

152
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

OUTPUT_CURRENT_CONTROL
2196

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'. (not for CR0133)

Symbol in CODESYS:

>

Description
2200

OUTPUT_CURRENT_CONTROL operates as current controller for the PWM outputs.


The setting parameters KI and KP represent the I-component and the P-component of the controller. It
is recommended to set KI=50 and KP=50 as start values so as to determine the best setting of the
controller. Depending on the requested controller behaviour the values can gradually be incremented
(controller is stronger / faster) or decremented (controller is weaker / slower).
At the preset value DESIRED_CURRENT=0 the output is controlled down to 0 mA within about
100 ms with the setting parameters being ignored.
Depending on the controller hardware used, a different teach performance has to be noted.

NOTE
► When defining the parameter DITHER_VALUE make sure that the resulting PWM ratio in the
operating range of the loop control remains between 0...1000 %:
• PWM ratio + DITHER_VALUE < 1000 ‰ and
• PWM ratio - DITHER_VALUE > 0 ‰.
Outside of this permissible range the current specified in the parameter DESIRED_CURRENT
cannot be reached.
Outside this permissible area, DITHER_VALUE is internally reduced to the maximum possible
value temporarily, so that the average value of the PWM ratio corresponds to the required value.
> When the dither is activated, changes to PWM_FREQUENCY, DITHER_VALUE and
DITHER_FREQUENCY become effective only when the current dither period has been
completed.
> If the current indicated in the parameter DESIRED_CURRENT cannot be reached because the
PWM ratio is already at 100 %, this is indicated by the system variable ERROR_CONTROL_Qx.
> If KI = 0, there is no loop control.
> If during the loop control a PWM_RATIO = 0 results, the output is not deactivated completely. In
principle the output will be active during a timer tick of the PWM timer (typically approx. 50 µs).
► The initialisation of the FB (INIT = TRUE) may only be carried out once per PLC cycle.
► Calling this FB with an output configured as B(L) is not permitted.
► An output defined as PWM output can no longer be used as binary output afterwards.
> If the flowing current in the switched-on condition exceeds the measuring range, control will no
longer be possible because the AD converter is at the end of the measuring range and therefore
provides wrong values (the max. value).
>

153
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2201

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
INIT BOOL TRUE (only for 1 cycle):
Function block is initialised
FALSE: during further processing of the program
OUTPUT_CHANNEL BYTE Number of the current-controlled output channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
DESIRED_CURRENT WORD Desired current value of the output in [mA]
allowed = 0...2 000 / 0...4 000
(dependent on output and configuration)
PWM_FREQUENCY WORD PWM frequency [Hz] for load on input
> function block limited to value of 20...2 000 = 0x0014...0x07D0
DITHER_FREQUENCY WORD dither frequency in [Hz]
value range = 0...FREQUENCY / 2
FREQUENCY / DITHER_FREQUENCY must be even-numbered!
The FB increases all other values to the next matching value.
DITHER_VALUE WORD peak-to-peak value of the dither in [‰]
permissible values = 0...1 000 = 0000...03E8
KP BYTE proportional component of the output signal
KI BYTE Integral component of the output signal
if KI = 0 no rule
>

Parameters of the outputs


2202

Data type Description


Parameter
PWM_RATIO WORD For monitoring purposes: display PWM pulse ratio 0...999 %

154
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PWM1000
326

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

For the extended side of the ExtendedControllers the FB name ends with '_E'. (not for CR0133)

Symbol in CODESYS:

>

Description
2311

PWM1000 handles the initialisation and parameter setting of the PWM outputs.
The FB enables a simple use of the PWM function in the device. For each channel an own PWM
frequency, the mark-to-period ratio and the dither can be set.
The PWM frequency FREQUENCY can be directly indicated in [Hz] and the mark-to-period ratio
VALUE in steps of 1 ‰.
If VALUE = 0, output will not be fully deactivated. In principle the output will be active during a timer
tick of the PWM timer (typically approx. 50 µs).
► When defining the parameter DITHER_VALUE make sure that the resulting PWM ratio in the
operating range of the loop control remains between 0...1000 %:
• PWM ratio + DITHER_VALUE < 1000 ‰ and
• PWM ratio - DITHER_VALUE > 0 ‰.
Outside of this permissible range the current specified in the parameter DESIRED_CURRENT
cannot be reached.
Outside this permissible area, DITHER_VALUE is internally reduced to the maximum possible
value temporarily, so that the average value of the PWM ratio corresponds to the required value.
► Activate the function block permanently!
► Calling this FB with an output configured as B(L) is not permitted.

NOTE
The function change of a channel defined as PWM function during operation is not possible. The
PWM function remains set until a hardware reset is carried out on the controller → power off and on
again.
For high PWM frequencies differences can occur between the set ratio and the ratio on the output due
to the system.

Changes during the runtime:


Always when the input CHANGE is set to TRUE, the FB adopts the value ...
• FREQUENCY after the current PWM period
• VALUE after the current PWM period
• DITHER_VALUE after the current dither period
• DITHER_FREQUENCY after the current dither period

155
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2312

Data type Description


Parameter
INIT BOOL TRUE (only 1 cycle):
Function block is initialised
Adopting new value from FREQUENCY
FALSE: during further processing of the program
FREQUENCY WORD PWM frequency in [Hz]
> function block limited to value of 20...2 000 = 0x0014...0x07D0
CHANNEL BYTE Number of the PWM output channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
VALUE WORD PWM value (mark-to-space ratio) in [‰]
allowed = 0...1 000 = 0x0000...0x03E8
Values > 1 000 are regarded as = 1 000
CHANGE BOOL TRUE: adoption of the new value of ...
• FREQUENCY: after the current PWM period
• VALUE: after the current PWM period
• DITHER_VALUE: after the current dither period
• DITHER_FREQUENCY: after the current dither period
FALSE: the changed PWM value has no influence on the output
DITHER_VALUE WORD peak-to-peak value of the dither in [‰]
permissible values = 0...1 000 = 0000...03E8
DITHER_FREQUENCY WORD dither frequency in [Hz]
value range = 0...FREQUENCY / 2
FREQUENCY / DITHER_FREQUENCY must be even-numbered!
The FB increases all other values to the next matching value.

156
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.12 Function elements: hydraulic control

CONTROL_OCC ............................................................................................................................... 158


JOYSTICK_0 ..................................................................................................................................... 160
JOYSTICK_1 ..................................................................................................................................... 163
JOYSTICK_2 ..................................................................................................................................... 167
NORM_HYDRAULIC ......................................................................................................................... 170
13760

The library ifm_HYDRAULIC_32bit_Vxxyyzz.Lib contains the following function blocks:


CONTROL_OCC (→ page 158) OCC = Output Current Control
Scales the input value [WORD] to an indicated current range
JOYSTICK_0 (→ page 160) Scales signals [INT] from a joystick to clearly defined characteristic curves, standardised to 0...
1000
JOYSTICK_1 (→ page 163) Scales signals [INT] from a joystick D standardised to 0... 1000
JOYSTICK_2 (→ page 167) Scales signals [INT] from a joystick to a configurable characteristic curve; free selection of the
standardisation
NORM_HYDRAULIC (→ page 170) Normalises a value [DINT] within defined limits to a value with new limits

The following function blocks are needed from the library UTIL.Lib (in the CODESYS package):
• RAMP_INT
• CHARCURVE
These function blocks are automatically called and configured by the function blocks of the hydraulics
library.
The following function blocks are needed from the library:ifm_CR0032_Vxxyyzz.LIB
OUTPUT_CURRENT (→ page 152) Measures the current (average via dither period) on an output channel
OUTPUT_CURRENT_CONTROL (→ page 153) Current controller for a PWMi output channel

These function blocks are automatically called and configured by the function blocks of the hydraulics
library.

157
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CONTROL_OCC
2735

Unit type = function block (FB)


Unit is contained in the library ifm_HYDRAULIC_32bit_Vxxyyzz.Lib

Symbol in CODESYS:

>

Description
2737

CONTROL_OCC scales the input value X to a specified current range.


Each instance of the FB is called once in each PLC cycle.
This function block uses the following function blocks from the library:ifm_CR0032_Vxxyyzz.LIB
• OUTPUT_CURRENT_CONTROL (→ page 153)
• OUTPUT_CURRENT (→ page 152)
The controller controls on the basis of the cycle period of the PWM signal.
The setting parameters KI and KP represent the integral and the proportional component of the
controller. It is recommended to set KI=50 and KP=50 as start values so as to determine the best
setting of the controller.
► Increasing the values for KI and / or KP:  controller becomes more sensitive / faster
Decreasing the values for KI and / or KP:  controller becomes less sensitive / slower
> At the output DESIRED_CURRENT=0 the output is immediately switched to 0 mA and is not
adjusted downward to 0 mA in accordance with the set parameters.
The controller has a fast compensation mechanism for voltage drops of the supply voltage. In addition
to the controller behaviour of the controller and on the basis of the voltage drop, the ratio of the PWM
is increased such that the controller reaches as quickly as possible the desired value.
The input X of CONTROL_OCC should be supplied by the output of the JOYSTICK FBs.

158
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2739

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
INIT BOOL FALSE  TRUE (edge):
unit is initialised
FALSE: during further processing of the program
R_RAMP INT Rising edge of the ramp in [increments/PLC cycle]
0 = no ramp
F_RAMP INT Falling edge of the ramp in [increments/PLC cycle]
0 = no ramp
TIMEBASE TIME Reference for rising and falling edge of the ramp:
t#0s = rising/falling edge in [increments/PLC cycle]
Fast controllers have very short cycle times!
otherwise = rising/falling edge in [increments/TIMEBASE]
X WORD input value
XH WORD Upper limit of input value range [increments]
XL WORD Lower limit of input value range [increments]
MAX_CURRENT WORD Max. valve current in [mA]
MIN_CURRENT WORD Min. valve current in [mA]
TOLERANCE BYTE Tolerance for min. valve current in [increments]
When the tolerance is exceeded, jump to MIN_CURRENT is effected
CHANNEL BYTE Number of the current-controlled output channel (0...15)
0...15 for the outputs Q00...Q15
For the function block xxx_E (if available) applies:
0...15 for the outputs Q00_E...Q15_E
PWM_FREQUENCY WORD PWM frequency [Hz] for load on input
DITHER_FREQUENCY WORD dither frequency in [Hz]
value range = 0...FREQUENCY / 2
FREQUENCY / DITHER_FREQUENCY must be even-numbered!
The FB increases all other values to the next matching value.
DITHER_VALUE BYTE peak-to-peak value of the dither in [%]
permissible values = 0...100 = 0x00...0x64
KP BYTE proportional component of the output signal
KI BYTE integral component of the output signal

For KP, KI applies: recommended start value = 50


>

Parameters of the outputs


602

Data type Description


Parameter
DESIRED_CURRENT WORD Desired current value in [mA] for OCC
(for monitoring purposes)
ACTUAL_CURRENT WORD Output current in [mA]
BREAK BOOL Error: cable interrupted at output
SHORT BOOL Error: short circuit in cable at output

159
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

JOYSTICK_0
6250

Unit type = function block (FB)


Unit is contained in the library ifm_hydraulic_32bit_Vxxyyzz.Lib
0

Symbol in CODESYS:

>

Description
432

JOYSTICK_0 scales signals from a joystick to clearly defined characteristic curves, standardised
to 0...1000.
For this FB the characteristic curve values are specified (→ figures):
• Rising edge of the ramp = 5 increments/PLC cycle
Fast Controllers have a very short cycle time!
• Falling edge of the ramp = no ramp

The parameters XL_POS (XL+), XH_POS (XH+), XL_NEG


(XL-) and XH_NEG (XH-) are used to evaluate the joystick
movements only in the requested area.
The values for the positive and negative area may be different.
The values for XL_NEG and XH_NEG are negative here.

Mode 0:
characteristic curve linear for the range XL to XH

160
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

Mode 1:
Characteristic curve linear with dead band
Values fixed to:
Dead band:
0…10% of 1000 increments

Mode 2:
2-step linear characteristic curve with dead band
Values fixed to:
Dead band:
0…10% of 1000 increments
Step:
X = 50 % of 1000 increments
Y = 20 % of 1000 increments

Characteristic curve mode 3:


Curve rising (line is fixed)

161
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


433

Data type Description


Parameter
X INT Input value [increments]

XH_POS INT Max. preset value positive direction [increments]


(negative values also permissible)
XL_POS INT Min. preset value positive direction [increments]
(negative values also permissible)
XH_NEG INT Max. preset value negative direction [increments]
(negative values also permissible)
XL_NEG INT Min. preset value negative direction [increments]
(negative values also permissible)
MODE BYTE Mode selection characteristic curve:
0 = linear
(X|OUT = 0|0 ... 1000|1000)
1 = linear with dead band
(X|OUT = 0|0 ... 100|0 ... 1000|1000)
2 = 2-step linear with dead band
(X|OUT = 0|0 ... 100|0 ... 500|200 ... 1000|1000)
3 = curve rising (line is fixed)
>

Parameters of the outputs


6252

Data type Description


Parameter
OUT1 WORD Standardised output value: 0…1000 increments
e.g. for valve left
OUT2 WORD Standardised output value: 0…1000 increments
e.g. for valve right
OUT3 INT Standardised output value -1000…0…1000 increments
e.g. for valve on output module (e.g. CR2011 or CR2031)
WRONG_MODE BOOL Error: invalid mode
ERR1 BYTE Error code for rising edge
(referred to the internally used function blocks CHARCURVE and
RAMP_INT from util.lib)
(possible messages → following table)
ERR2 BYTE Error code for falling edge
(referred to the internally used function blocks CHARCURVE and
RAMP_INT from util.lib)
(possible messages → following table)

Possible results for ERR1 and ERR2:


Value Description
dec | hex
0 00 no error
1 01 Error in array: wrong sequence
2 02 Error: Input value IN is not contained in value range of array
4 04 Error: invalid number N for array

162
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

JOYSTICK_1
6255

Unit type = function block (FB)


Unit is contained in the library ifm_hydraulic_32bit_Vxxyyzz.Lib

Symbol in CODESYS:

>

Description
425

JOYSTICK_1 scales signals from a joystick to configurable characteristic curves, standardised to


0...1000.
For this FB the characteristic curve values can be configured (→ figures):

Mode 0:
Linear characteristic curve
100 % = 1000 increments

Mode 1:
Characteristic curve linear with dead band
Value for the dead band (DB) can be set in % of 1000
increments
100 % = 1000 increments
DB = Dead_Band

163
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

Mode 2:
2-step linear characteristic curve with dead band
Values can be configured to:
Dead band:
0…DB in % of 1000 increments
Step:
X = CPX in % of 1000 increments
Y= CPY in % of 1000 increments
100 % = 1000 increments
DB = Dead_Band
CPX = Change_Point_X
CPY = Change_Point_Y

Characteristic curve mode 3:


Curve rising (line is fixed)

164
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


6256

Data type Description


Parameter
X INT Input value [increments]

XH_POS INT Max. preset value positive direction [increments]


(negative values also permissible)
XL_POS INT Min. preset value positive direction [increments]
(negative values also permissible)
XH_NEG INT Max. preset value negative direction [increments]
(negative values also permissible)
XL_NEG INT Min. preset value negative direction [increments]
(negative values also permissible)
R_RAMP INT Rising edge of the ramp in [increments/PLC cycle]
0 = no ramp
F_RAMP INT Falling edge of the ramp in [increments/PLC cycle]
0 = no ramp
TIMEBASE TIME Reference for rising and falling edge of the ramp:
t#0s = rising/falling edge in [increments/PLC cycle]
Fast controllers have very short cycle times!
otherwise = rising/falling edge in [increments/TIMEBASE]
MODE BYTE Mode selection characteristic curve:
0 = linear
(X|OUT = 0|0 ... 1000|1000)
1 = linear with dead band
(X|OUT = 0|0 ... DB|0 ... 1000|1000)
2 = 2-step linear with dead band
(X|OUT = 0|0 ... DB|0 ... CPX|CPY ... 1000|1000)
3 = curve rising (line is fixed)
DEAD_BAND BYTE Adjustable dead band
in [% of 1000 increments]
CHANGE_POINT_X BYTE For mode 2: ramp step, value for X
in [% of 1000 increments]
CHANGE_POINT_Y BYTE For mode 2: ramp step, value for Y
in [% of 1000 increments]

165
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the outputs


6252

Data type Description


Parameter
OUT1 WORD Standardised output value: 0…1000 increments
e.g. for valve left
OUT2 WORD Standardised output value: 0…1000 increments
e.g. for valve right
OUT3 INT Standardised output value -1000…0…1000 increments
e.g. for valve on output module (e.g. CR2011 or CR2031)
WRONG_MODE BOOL Error: invalid mode
ERR1 BYTE Error code for rising edge
(referred to the internally used function blocks CHARCURVE and
RAMP_INT from util.lib)
(possible messages → following table)
ERR2 BYTE Error code for falling edge
(referred to the internally used function blocks CHARCURVE and
RAMP_INT from util.lib)
(possible messages → following table)

Possible results for ERR1 and ERR2:


Value Description
dec | hex
0 00 no error
1 01 Error in array: wrong sequence
2 02 Error: Input value IN is not contained in value range of array
4 04 Error: invalid number N for array

166
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

JOYSTICK_2
6258

Unit type = function block (FB)


Unit is contained in the library ifm_hydraulic_32bit_Vxxyyzz.Lib

Symbol in CODESYS:

>

Description
418

JOYSTICK_2 scales the signals from a joystick to a configurable characteristic curve. Free selection of
the standardisation.
For this FB, the characteristic curve is freely configurable (→ figure):

Characteristic curve freely configurable

167
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


6261

Data type Description


Parameter
X INT Input value [increments]

XH_POS INT Max. preset value positive direction [increments]


(negative values also permissible)
XL_POS INT Min. preset value positive direction [increments]
(negative values also permissible)
XH_NEG INT Max. preset value negative direction [increments]
(negative values also permissible)
XL_NEG INT Min. preset value negative direction [increments]
(negative values also permissible)
R_RAMP INT Rising edge of the ramp in [increments/PLC cycle]
0 = no ramp
F_RAMP INT Falling edge of the ramp in [increments/PLC cycle]
0 = no ramp
TIMEBASE TIME Reference for rising and falling edge of the ramp:
t#0s = rising/falling edge in [increments/PLC cycle]
Fast controllers have very short cycle times!
otherwise = rising/falling edge in [increments/TIMEBASE]
VARIABLE_GAIN ARRAY [0..10] OF POINT Pairs of values describing the curve
The first pairs of values indicated in N_POINT are used. n = 2…11
Example: 9 pairs of values declared as variable VALUES:
VALUES : ARRAY [0..10] OF POINT :=
(X:=0,Y:=0),(X:=200,Y:=0), (X:=300,Y:=50),
(X:=400,Y:=100), (X:=700,Y:=500),
(X:=1000,Y:=900), (X:=1100,Y:=950),
(X:=1200,Y:=1000), (X:=1400,Y:=1050);
There may be blanks between the values.
N_POINT BYTE Number of points (pairs of values in VARIABLE_GAIN) by which the
curve characteristic is defined: n = 2…11

168
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the outputs


420

Data type Description


Parameter
OUT1 WORD Standardised output value: 0…1000 increments
e.g. for valve left
OUT2 WORD Standardised output value: 0…1000 increments
e.g. for valve right
OUT3 INT Standardised output value -1000…0…1000 increments
e.g. for valve on output module (e.g. CR2011 or CR2031)
ERR1 BYTE Error code for rising edge
(referred to the internally used function blocks CHARCURVE and
RAMP_INT from util.lib)
(possible messages → following table)
ERR2 BYTE Error code for falling edge
(referred to the internally used function blocks CHARCURVE and
RAMP_INT from util.lib)
(possible messages → following table)

Possible results for ERR1 and ERR2:


Value Description
dec | hex
0 00 no error
1 01 Error in array: wrong sequence
2 02 Error: Input value IN is not contained in value range of array
4 04 Error: invalid number N for array

169
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

NORM_HYDRAULIC
394

Unit type = function block (FB)


Unit is contained in the library ifm_hydraulic_32bit_Vxxyyzz.Lib

Symbol in CODESYS:

>

Description
397

NORM_HYDRAULIC standardises input values with fixed limits to values with new limits.
This function block corresponds to NORM_DINT from the CODESYS library UTIL.Lib.
The function block standardises a value of type DINT, which is within the limits of XH and XL, to an
output value within the limits of YH and YL.
Due to rounding errors deviations from the standardised value of 1 may occur. If the limits (XH/XL or
YH/YL) are indicated in inversed form, standardisation is also inverted.
If X is outside the limits of XL…XH, the error message will be X_OUT_OF_RANGE = TRUE.

Typical characteristic curve of a hydraulic valve:


The oil flow will not start before 20% of the coil current has
been reached.
At first the oil flow is not linear.

Characteristics of the function block

170
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


398

Data type Description


Parameter
X DINT current input value
XH DINT Max. input value [increments]
XL DINT Min. input value [increments]
YH DINT Max. output value [increments], e.g.:
valve current [mA] / flow [l/min]
YL DINT Min. output value [increments], e.g.:
valve current [mA], flow [l/min]
>

Parameters of the outputs


399

Data type Description


Parameter
Y DINT output value
X_OUT_OF_RANGE BOOL Error: X is beyond the limits of XH and XL
>

Example: NORM_HYDRAULIC
400

Parameter Case 1 Case 2 Case 3


Upper limit value input XH 100 100 2000
Lower limit value input XL 0 0 0
Upper limit value output YH 2000 0 100
Lower limit value output YL 0 2000 0
Non standardised value X 20 20 20
Standardised value Y 400 1600 1
• Case 1:
Input with relatively coarse resolution.
Output with high resolution.
1 X increment results in 20 Y increments.
• Case 2:
Input with relatively coarse resolution.
Output with high resolution.
1 X increment results in 20 Y increments.
Output signal is inverted as compared to the input signal.
• Case 3:
Input with high resolution.
Output with relatively coarse resolution.
20 X increments result in 1 Y increment.

171
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.13 Function elements: controllers

Setting rule for a controller ................................................................................................................ 172


DELAY ............................................................................................................................................... 173
PID1 ................................................................................................................................................... 174
PID2 ................................................................................................................................................... 176
PT1 .................................................................................................................................................... 178
1634

The section below describes in detail the units that are provided for set-up by software controllers in
the ecomatmobile device. The units can also be used as basis for the development of your own
control functions.
>

Setting rule for a controller


1627

For controlled systems, whose time constants are unknown the setting procedure to Ziegler and
Nickols in a closed control loop is of advantage.
>

Setting control
1628

At the beginning the controlling system is operated as a purely P-controlling system. In this respect the
derivative time TV is set to 0 and the reset time TN to a very high value (ideally to ∞) for a slow system.
For a fast controlled system a small TN should be selected.
Afterwards the gain KP is increased until the control deviation and the adjustment deviation perform
steady oscillation at a constant amplitude at KP = KPcritical. Then the stability limit has been reached.
Then the time period Tcritical of the steady oscillation has to be determined.
Add a differential component only if necessary.
TV should be approx. 2...10 times smaller than TN.
KP should be equal to KD.
Idealised setting of the controlled system:
Control unit KP = KD TN TV
P 2.0 • KPcritical –– ––

PI 2.2 • KPcritical 0.83 • Tcritical ––


PID 1.7 • KPcritical 0.50 • Tcritical 0.125 • Tcritical

For this setting process it has to be noted that the controlled system is not harmed by the
oscillation generated. For sensitive controlled systems KP must only be increased to a value at which
no oscillation occurs.

>

Damping of overshoot
1629

To dampen overshoot PT1 (→ page 178) (low pass) can be used. In this respect the preset value XS is
damped by the PT1 link before it is supplied to the controller function.
The setting variable T1 should be approx. 4...5 times greater than TN of the controller.

172
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

DELAY
585

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
588

DELAY delays the output of the input value by the time T (dead-time element).

Figure: Time characteristics of DELAY

The dead time is influenced by the duration of the PLC cycle.


The dead time my not exceed 100 • PLC cycle time (memory limit!).
In case a longer delay is set, the resolution of the values at the output of the FB will be poorer, which
may cause that short value changes will be lost.

To ensure that the FB works correctly: FB must be called in each cycle.

>

Parameters of the inputs


2615

Data type Description


Parameter
X REAL Input value
T TIME Delay time (dead time)
allowed: 0...100 • cycle time
>

Parameters of the outputs


2616

Data type Description


Parameter
Y REAL Input value, delayed by the time T

173
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PID1
19235

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
19237

PID1 handles a PID controller.


The change of the manipulated variable of a PID controller has a proportional, integral and differential
component.
OVERFLOW = TRUE is signalled when the 'I' part reaches an internal limitation because a control
deviation could not be corrected.
OVERFLOW remains TRUE as long as the limitation is active.
>

Parameters of the inputs


19238

Data type Description


Parameter
X REAL Input value
XS REAL preset value
KP REAL Proportional component of the output signal
(only positive values permissible)
KI REAL Integral component of the output signal
(only positive values permissible)
KD REAL Differential component of the output signal
(only positive values permissible)
Y_MAX REAL maximum control value
RESET BOOL TRUE: reset the function element
FALSE: function element is not executed
>

Parameters of the outputs


19241

Data type Description


Parameter
Y REAL Output value
OVERFLOW BOOL TRUE: Overflow of the data buffer  loss of data!
FALSE: Data buffer is without data loss

174
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Recommended settings
19242

► Start values:
KP = 0
KD = 0
► Adapt KI to the process.
► Then modify KP and KI gradually.

175
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PID2
344

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
6262

PID2 handles a PID controller.


The change of the manipulated variable of a PID controller has a proportional, integral and differential
component. The manipulated variable changes first by an amount which depends on the rate of
change of the input value (D component). After the end of the derivative action time TV the
manipulated variable returns to the value corresponding to the proportional component and changes in
accordance with the reset time TN.
The manipulated variable Y is already standardised to PWM1000 (→ page 155).
Rules:
• Negative values for KP, KI and KD are not permitted.
• In case of TN = 0, the I value is not calculated
• In case of XS > XMAX, XS is limited to XMAX.
• In case of X > XMAX, Y is set to 0.
• If X > XS, the manipulated variable is increased.
• If X < XS, the manipulated variable is reduced.
A reference variable is internally added to the manipulated variable.
Y = Y + 65 536 – (XS / XMAX • 65 536).
The manipulated variable Y has the following time characteristics.

Figure: Typical step response of a PID controller

176
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


12963

Data type Description


Parameter
X WORD input value
XS WORD preset value
XMAX WORD maximum preset value
KP REAL Proportional component of the output signal
(only positive values permissible)
KI REAL Integral component of the output signal
(only positive values permissible)
TN TIME integral action time (integral component)
KD REAL Differential component of the output signal
(only positive values permissible)
TV TIME derivative action time (differential component)
RESET BOOL TRUE: reset the function element
FALSE: function element is not executed
>

Parameters of the outputs


349

Data type Description


Parameter
Y WORD Manipulated variable (0...1000 ‰)
>

Recommended setting
350

► Select TN according to the time characteristics of the system:


fast system = small TN
slow system = large TN
► Slowly increment KP gradually, up to a value at which still definitely no fluctuation will occur.
► Readjust TN if necessary.
► Add differential component only if necessary:
Select a TV value approx. 2...10 times smaller than TN.
Select a KD value more or less similar to KP.
Note that the maximum control deviation is + 127. For good control characteristics this range should
not be exceeded, but it should be exploited to the best possible extent.

177
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

PT1
338

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
341

PT1 handles a controlled system with a first-order time delay.


This FB is a proportional controlled system with a time delay. It is for example used for generating
ramps when using the PWM FBs.

The output of the FB can become instable if T1 is shorter than the SPS cycle time.

The output variable Y of the low-pass filter has the following time characteristics (unit step):

Figure: Time characteristics of PT1


>

Parameters of the inputs


2618

Data type Description


Parameter
X DINT current input value
T1 TIME Delay time (time constant)
>

Parameters of the outputs


2619

Data type Description


Parameter
Y DINT output value

178
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.14 Function elements: software reset

SOFTRESET ..................................................................................................................................... 180


1594

Using this FB the control can be restarted via an order in the application program.

179
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SOFTRESET
260

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
263

SOFTRESET leads to a complete reboot of the device.


The FB can for example be used in conjunction with CANopen if a node reset is to be carried out. FB
SOFTRESET executes an immediate reboot of the controller. The current cycle is not completed.
Before reboot, the retain variables are stored.
The reboot is logged in the error memory.

In case of active communication: the long reset period must be taken into account because
otherwise guarding errors will be signalled.

>

Parameters of the inputs


264

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified

180
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.15 Function elements: measuring / setting of time

TIMER_READ ................................................................................................................................... 182


TIMER_READ_US ............................................................................................................................ 183
1601

Using the following function blocks of ifm electronic you can...


• measure time and evaluate it in the application program,
• change time values, if required.

181
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

TIMER_READ
236

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
239

TIMER_READ reads the current system time.


When the supply voltage is applied, the device generates a clock pulse which is counted upwards in a
register. This register can be read using the FB call and can for example be used for time
measurement.

The system timer goes up to 0xFFFF FFFF at the maximum (corresponds to 49d 17h 2min 47s
295ms) and then starts again from 0.

>

Parameters of the outputs


241

Data type Description


Parameter
T TIME Current system time [ms]

182
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

TIMER_READ_US
657

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
660

TIMER_READ_US reads the current system time in [µs].


When the supply voltage is applied, the device generates a clock pulse which is counted upwards in a
register. This register can be read by means of the FB call and can for example be used for time
measurement.

Info
The system timer runs up to the counter value 4 294 967 295 µs at the maximum and then starts
again from 0.
4 294 967 295 µs = 1h 11min 34s 967ms 295µs

>

Parameters of the outputs


662

Data type Description


Parameter
TIME_US DWORD current system time [µs]

183
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.16 Function elements: device temperature

TEMPERATURE ............................................................................................................................... 185


2364

184
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

TEMPERATURE
2216

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2365

TEMPERATURE reads the current temperature in the device.


The FB can be called cyclically and indicates the current device temperature (-40...125 °C) on its
output.
>

Parameters of the inputs


2366

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
>

Parameters of the outputs


2367

Data type Description


Parameter
TEMPERATURE INT Current internal temperature of the device [°C]

185
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.17 Function elements: saving, reading and converting data in the memory

Storage types for data backup .......................................................................................................... 187


File system ........................................................................................................................................ 187
Automatic data backup ...................................................................................................................... 188
Manual data storage .......................................................................................................................... 190
13795

186
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Storage types for data backup


13805

The device provides the following memory types:


>

Flash memory
13803

Properties:
• non-volatile memory
• writing is relatively slow and only block by block
• before re-writing, memory content must be deleted
• fast reading
• limited writing and reading frequency
• really useful only for storing large data quantities
• secure data with FLASHWRITE
• read data with FLASHREAD
>

FRAM memory
13802
FRAM indicates here all kinds of non-volatile and fast memories.
Properties:
• fast writing and reading
• unlimited writing and reading frequency
• any memory area can be selected
• secure data with FRAMWRITE
• read data with FRAMREAD
>

File system
2690

The file system coordinates the storage of the information in the memory. The size of the file system is
128 kbytes.
The file names of the data system are limited:
max. length for Controller: CR0n3n, CR7n3n: 15 characters
max. for all other units: 11 characters
Behaviour of the file system in the Controller: CR0n3n, CR7n3n:
• The controller always tries to write the file, even if the same file name already exists. The file might
be saved several times. Only the current file is used. Via the download (see below) this multiple
filing can be prevented.
• Individual files cannot be overwritten or deleted.
• The file system is completely deleted during each download (boot project download or RAM
download). Then e.g. a symbol file or a project file (FBs in CODESYS) can be written.
• The file system is also deleted during a [Reset (Original)] (CODESYS function in the menu
[Online]).

187
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Automatic data backup

MEMORY_RETAIN_PARAM ............................................................................................................ 189


14168
2347

The ecomatmobile controllers allow to save data (BOOL, BYTE, WORD, DWORD) non-volatilely
(= saved in case of voltage failure) in the memory. If the supply voltage drops, the backup operation is
automatically started. Therefore it is necessary that the data is defined as RETAIN variables
(→ CODESYS).
A distinction is made between variables declared as RETAIN and variables in the flag area which can
be configured as a remanent block with MEMORY_RETAIN_PARAM (→ page 189).
Details → chapter Variables (→ page 63)
The advantage of the automatic backup is that also in case of a sudden voltage drop or an interruption
of the supply voltage, the storage operation is triggered and thus the current values of the data are
saved (e.g. counter values).

If supply voltage < 8 V, retain data is no longer backed up!


In this case, flag RETAIN_WARNING = TRUE.

188
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

MEMORY_RETAIN_PARAM
2372

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2374

MEMORY_RETAIN_PARAM determines the remanent data behaviour for various events. Variables
declared as VAR_RETAIN in CODESYS have a remanent behaviour from the outset.
Remanent data keep their value (as the variables declared as VAR_RETAIN) after an uncontrolled
termination as well as after normal switch off and on of the controller. After a restart the program
continues to work with the stored values.
For groups of events that can be selected (with MODE), this function block determines how many
(LEN) data bytes (from flag byte %MB0) shall have retain behaviour even if they have not been
explicitly declared as VAR_RETAIN.
Event MODE = 0 MODE = 1 MODE = 2 MODE = 3
Power OFF  ON Data is newly initialised Data is remanent Data is remanent Data is remanent
Soft reset Data is newly initialised Data is remanent Data is remanent Data is remanent
Cold reset Data is newly initialised Data is newly initialised Data is remanent Data is remanent
Reset default Data is newly initialised Data is newly initialised Data is remanent Data is remanent
Load application program Data is newly initialised Data is newly initialised Data is remanent Data is remanent
Load runtime system Data is newly initialised Data is newly initialised Data is newly initialised Data is remanent

If MODE = 0, only those data have retain behaviour as with MODE=1 which have been explicitly
declared as VAR_RETAIN.
If the FB is never called, the flag bytes act according to MODE = 0. The flag bytes which are above the
configured area act according to MODE = 0, too.
Once a configuration has been made, it remains on the device even if the application or the runtime
system is reloaded.
>

Parameters of the inputs


2375

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
LEN WORD Number of data bytes from flag address %MB0 onwards to show
remanent behaviour
allowed = 0...4 096 = 0x0...0x1000
LEN > 4 096 will be corrected automatically to LEN = 4 096
MODE BYTE Events for which these variables shall have retain behaviour
(0...3; → table above)
For MODE > 3 the last valid setting will remain

189
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Manual data storage

FLASHREAD ..................................................................................................................................... 191


FLASHWRITE ................................................................................................................................... 192
FRAMREAD ...................................................................................................................................... 194
FRAMWRITE ..................................................................................................................................... 195
MEMCPY ........................................................................................................................................... 196
MEMSET ........................................................................................................................................... 197
13801

Besides the possibility to store data automatically, user data can be stored manually, via function block
calls, in integrated memories from where they can also be read.
By means of the storage partitioning (→ chapter Available memory (→ page 14)) the programmer
can find out which memory area is available.

190
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FLASHREAD
561

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
564

FLASHREAD enables reading of different types of data directly from the flash memory.
> The FB reads the contents as from the address of SRC from the flash memory. In doing so, as
many bytes as indicated under LEN are transmitted.
> The contents are read completely during the cycle in which the FB is called up.
► Please make sure that the target memory area in the RAM is sufficient.
► To the destination address DST applies:
Determine the address by means of the operator ADR and assigne it to the FB!
>

Parameters of the inputs


2318

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
SRC DWORD relative start address in memory
allowed = 0...65 535 = 0x0...0x0000 FFFF

If start address is outside the permissible range:


> no data transfer
LEN DWORD number of data bytes (max. 65 536 = 0x0001 0000)

If the indicated number of bytes exceeded the flash memory


space, the data would only be transmitted to the end of the flash
memory space.
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!

191
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FLASHWRITE
555

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
19245

► Activate the TEST input to use the function block! Otherwise, a watchdog error occurs.
Test input is active:
• Programming mode is enabled
• Software download is possible
• Status of the application program can be queried
• Protection of stored software is not possible
558

WARNING
Danger due to uncontrollable process operations!
The status of the inputs/outputs is "frozen" during execution of FLASHWRITE.
► Do not execute this FB when the machine is running!

FLASHWRITE enables writing of different data types directly into the flash memory.
Using this FB, large data volumes are to be stored during set-up, to which there is only read access in
the process.
► If a page has already been written (even if only partly), the entire flash memory area needs to be
deleted before new write access to this page. This is done by write access to the address 0.
► Never write to a page several times! Always delete everything first!
Otherwise, traps or watchdog errors occur.
► Do not delete the flash memory area more often than 100 times. Otherwise, the data
consistency in other flash memory areas is no longer guaranteed.
► During each SPS cycle, FLASHWRITE may only be started once!
► To the destination address DST applies:
Determine the address by means of the operator ADR and assigne it to the FB!
> The FB writes the contents of the address SRC into the flash memory. In doing so, as many bytes
as indicated under LEN are transmitted.
If start address SRC is outside the permissible range: no data transfer!

192
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Parameters of the inputs


2603

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
DST DWORD Relative start address in memory
allowed = 0...65 535 = 0x0...0x0000 FFFF

Determine the address by means of the operator ADR and


assigne it to the FB!
LEN DWORD number of data bytes (max. 65 536 = 0x0001 0000)

If the indicated number of bytes exceeded the flash memory


space, the data would only be transmitted to the end of the flash
memory space.
SRC DWORD source address

193
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FRAMREAD
549

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
552

FRAMREAD enables quick reading of different data types directly from the FRAM memory ¹).
The FB reads the contents as from the address of SRC from the FRAM memory. In doing so, as many
bytes as indicated under LEN are transmitted.
If the FRAM memory area were to be exceeded by the indicated number of bytes, only the data up to
the end of the FRAM memory area will be read.
► To the destination address DST applies:
Determine the address by means of the operator ADR and assigne it to the FB!
¹) FRAM indicates here all kinds of non-volatile and fast memories.
>

Parameters of the inputs


2606

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
SRC DWORD relative start address in memory
allowed = 0... 16 383 = 0x0000 0000...0x0000 3FFF
LEN DWORD number of data bytes
allowed = 0...16 384 = 0x0000 0000...0x0000 4000
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!

194
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

FRAMWRITE
543

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
546

FRAMWRITE enables the quick writing of different data types directly into the FRAM memory ¹).
The FB writes the contents of the address SRC to the non-volatile FRAM memory. In doing so, as
many bytes as indicated under LEN are transmitted.
If the FRAM memory area were to be exceeded by the indicated number of bytes, only the data up to
the end of the FRAM memory area will be written.
► To the source address SRC applies:
Determine the address by means of the operator ADR and assigne it to the FB!
If the target address DST is outside the permissible range: no data transfer!
¹) FRAM indicates here all kinds of non-volatile and fast memories.
>

Parameters of the inputs


2605

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
DST DWORD Relative start address in memory
allowed = 0... 16 383 = 0x0...0x0000 3FFF
LEN DWORD number of data bytes
allowed = 0...16 384 = 0x0000 0000...0x0000 4000
SRC DWORD start address in source memory

Determine the address by means of the operator ADR and


assigne it to the FB!

195
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

MEMCPY
409

= memory copy
Unit type = function block (FB)
Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
15944
412

MEMCPY enables writing and reading different types of data directly in the memory.
The FB writes the contents of the address of SRC to the address DST.
► To the addresses SRC and DST apply:
Determine the address by means of the operator ADR and assigne it to the FB!
> In doing so, as many bytes as indicated under LEN are transmitted. So it is also possible to
transmit exactly one byte of a word variable.
> If the memory area into which the data are to be copied is not entirely in a permissible memory
area, the data will not be copied and a parameter error will be signalled.
DST memory area Device Memory size
Application data (all) 192 Kbytes
CR0032, CR0232, CR0234, CR7n32 32 Kbytes
Retain data
CR0033, CR0133, CR0233, CR0235 64 Kbytes
>

Parameters of the inputs


413

Data type Description


Parameter
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!
SRC DWORD start address in source memory

Determine the address by means of the operator ADR and


assigne it to the FB!
LEN WORD number (> 1) of the data bytes to be transmitted

196
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

MEMSET
2348

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
2350

MEMSET enables writing to a defined data area.


The FB writes the content of DATA into the memory as from the address of DST as many bytes as
indicated under LEN.
► For the destination address DST applies:
Determine the address by means of the operator ADR and assigne it to the FB!
> If the memory area into which the data are to be copied is not entirely in a permissible memory
area, the data will not be copied and a parameter error will be signalled.
DST memory area Device Memory size
Application data (all) 192 Kbytes
CR0032, CR0232, CR0234, CR7n32 32 Kbytes
Retain data
CR0033, CR0133, CR0233, CR0235 64 Kbytes
>

Parameters of the inputs


2351

Data type Description


Parameter
DST DWORD destination address

Determine the address by means of the operator ADR and


assigne it to the FB!
DATA BYTE Value to be written
LEN WORD number of data bytes to be overwritten with DATA

197
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

5.2.18 Function elements: data access and data check

CHECK_DATA .................................................................................................................................. 199


GET_IDENTITY ................................................................................................................................. 201
SET_DEBUG ..................................................................................................................................... 202
SET_IDENTITY ................................................................................................................................. 203
SET_PASSWORD............................................................................................................................. 204
1598

The FBs described in this chapter control the data access and enable a data check.

198
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

CHECK_DATA
603

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
606

CHECK_DATA generates a checksum (CRC) for a configurable memory area and checks the data of
the memory area for undesired changes.
► Create a separate instance of the function block for each memory area to be monitored.
► Determine the address by means of the operator ADR and assigne it to the FB!
► In addition, indicate the number of data bytes LENGTH (length from the STARTADR).
Undesired change: Error!
If input UPDATE = FALSE and data in the memory is changed inadvertently, then RESULT = FALSE.
The result can then be used for further actions (e.g. deactivation of the outputs).
Desired change:
Data changes in the memory (e.g. of the application program or ecomatmobile device) are only
permitted if the output UPDATE is set to TRUE. The value of the checksum is then recalculated. The
output RESULT is permanently TRUE again.
>

Parameters of the inputs


2612

Data type Description


Parameter
STARTADR DWORD Start address of the monitored data memory
(WORD address as from %MW0)

Determine the address by means of the operator ADR and


assigne it to the FB!
LENGTH DWORD length of the monitored data memory in [byte]
UPDATE BOOL TRUE: Data was changed
> function block calculates new checksum
FALSE: Data was not changed
> function block checks memory area
>

Parameters of the outputs


2613

Data type Description


Parameter
RESULT BOOL TRUE: CRC checksum OK:
intentional data change or no change
FALSE: CRC checksum faulty:
data was changed inadvertently
CHECKSUM DWORD Current CRC checksum

199
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

Example: CHECK_DATA
4168

In the following example the program determines the checksum and stores it in the RAM via pointer pt:

The method shown here is not suited for the flash memory.

200
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

GET_IDENTITY
19287

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB
New output SERIALNUMBER exist in:
• CR0032 from RTS V02.01.06
• CR0033 from RTS V01.00.09
• CR0133 from RTS V01.00.09
• CR0232 from RTS V01.00.03
• CR0233 from RTS V01.00.09

Symbol in CODESYS:

>

Description
19288

GET_IDENTITY reads the specific identifications stored in the device:


• hardware name and hardware version of the device
• name of the runtime system in the device
• version and revision no. of the runtime system in the device
• name of the application (has previously been saved by means of SET_IDENTITY (→ page 203))
• serial number of the device
>

Parameters of the inputs


2609

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
>

Parameters of the outputs


19289

Data type Description


Parameter
DEVICENAME STRING(31) hardware name
as a string of max. 31 characters, e.g.: "CR0403"
FIRMWARE STRING(31) Name of the runtime system in the device
as character string of max. 31 characters
e.g.: "CR0403"
RELEASE STRING(31) software version
as a character string of max. 31 characters
APPLICATION STRING(79) Name of the application
as a string of max. 79 characters
e.g.: "Crane1704"
SERIALNUMBER STRING(31) Serial number of the device
as character string of max. 31 characters
e.g.: "12345678"

201
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SET_DEBUG
290

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
293

SET_DEBUG handles the DEBUG mode without active test input (→ chapter TEST mode (→ page 44)).
If the input DEBUG of the FB is set to TRUE, the programming system or the downloader, for
example, can communicate with the device and execute system commands (e.g. for service functions
via the GSM modem CANremote).

In this operating mode a software download is not possible because the test input is not connected
to supply voltage. Only read access is possible.

>

Parameters of the inputs


294

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
DEBUG BOOL TRUE: debugging via the interfaces possible
FALSE: debugging via the interfaces not possible

202
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SET_IDENTITY
11927

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
287

SET_IDENTITY sets an application-specific program identification.


Using this FB, a program identification can be created by the application program. This identification
(i.e. the software version) can be read via the software tool DOWNLOADER.EXE in order to identify
the loaded program.
The following figure shows the correlations of the different identifications as indicated by the different
software tools. (Example: ClassicController CR0020):
Boot loader Runtime system Application
Identity Identity
BOOTLD_H 020923 CR0020 SET_IDENTITY
Extended identity  V2.0.0 041004  Nozzle in front *)
CR0020 00.00.01 Hardware version
CR0020 00.00.01
Software version
Nozzle in front *)

 
Downloader reads:
Downloader reads: CR0020
BOOTLD_H 020923 V2.0.0 041004
CR0020 00.00.01 ifm electronic gmbh
Nozzle in front *)

CANopen tool reads:


Hardware version
OBV 1009
CR0020 00.00.01

*) 'Nozzle in front' is substitutionally here for a customised text.


>

Parameters of the inputs


11928

Data type Description


Parameter
ENABLE BOOL TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
ID STRING(79) Any desired text with a maximum length of 79 characters

203
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
ifm function elements ifm function elements for the device CR0032

>

SET_PASSWORD
266

Unit type = function block (FB)


Unit is contained in the library ifm_CR0032_Vxxyyzz.LIB

Symbol in CODESYS:

>

Description
269

SET_PASSWORD sets a user password for the program and memory upload with the
DOWNLOADER.
If the password is activated, reading of the application program or the data memory with the software
tool DOWNLOADER is only possible if the correct password has been entered.
If an empty string (default condition) is assigned to the input PASSWORD, an upload of the application
software or of the data memory is possible at any time.
A new password can be set only after resetting the previous password.

The password is reset when loading a new application program.

>

Parameters of the inputs


2353

Data type Description


Parameter
ENABLE BOOL FALSE  TRUE (edge):
Initialise block (only 1 cycle)
> Read block inputs
TRUE: execute this function element
FALSE: unit is not executed
> Function block inputs are not active
> Function block outputs are not specified
PASSWORD STRING(16) password
If PASSWORD = "", than access is possible without enter of a
password
>

204
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Diagnosis and error handling Diagnosis

6 Diagnosis and error handling

Diagnosis ........................................................................................................................................... 205


Fault ................................................................................................................................................... 205
Reaction in case of an error .............................................................................................................. 206
Relay: important notes! ..................................................................................................................... 206
Response to system errors ............................................................................................................... 207
CAN / CANopen: errors and error handling ...................................................................................... 207
19598

The runtime-system (RTS) checks the device by internal error checks:


• during the boot phase (reset phase)
• during executing the application program
→ chapter Operating states (→ page 40)
In so doing a high operating reliability is provided, as much as possible.
>

6.1 Diagnosis
19601

During the diagnosis, the "state of health" of the device is checked. It is to be found out if and what
→faults are given in the device.
Depending on the device, the inputs and outputs can also be monitored for their correct function.
- wire break,
- short circuit,
- value outside range.
For diagnosis, configuration and log data can be used, created during the "normal" operation of the
device.
The correct start of the system components is monitored during the initialisation and start phase.
Errors are recorded in the log file.
For further diagnosis, self-tests can also be carried out.
>

6.2 Fault
19602

A fault is the state of an item characterized by the inability to perform the requested function, excluding
the inability during preventive maintenance or other planned actions, or due to lack of external
resources.
A fault is often the result of a failure of the item itself, but may exist without prior failure.
In →ISO 13849-1 "fault" means "random fault".

205
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Diagnosis and error handling Reaction in case of an error

>

6.3 Reaction in case of an error


19603
12217

When errors are detected the system flag ERROR can also be set in the application program. Thus, in
case of a fault, the controller reacts as follows:
> the operation LED lights red,
> the output relays switch off,
> the outputs protected by the relays are disconnected from power,
> the logic signal states of the outputs remain unchanged.

NOTE
If the outputs are switched off by the relays, the logic signal states remain unchanged.
► The programmer must evaluate the ERROR bit and thus also reset the output logic in case of a
fault.

Complete list of the device-specific error codes and diagnostic messages


→ chapter System flags (→ page 208).
>

6.4 Relay: important notes!


14034

NOTICE
Premature wear of the relay contacts possible.
► In normal operation, only switch the relays without load!
For this purpose, set all relevant outputs to FALSE via the application program!

206
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Diagnosis and error handling Response to system errors

>

6.5 Response to system errors


14033

The programmer has the sole responsibility for the safe processing of data in the application
software.

► Process the specific error flags and/or error codes in the application program!
An error description is provided via the error flag / error code.
This error flag / error code can be further processed if necessary.
After analysis and elimination of the error cause:
► as a general rule, reset all error flags via the application program.
Without explicit reset of the error flags the flags remain set with the corresponding effect on the
application program.
>

6.6 CAN / CANopen: errors and error handling


19604

→ System manual "Know-How ecomatmobile"


→ chapter CAN / CANopen: errors and error handling
>

207
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

7 Annex

System flags ...................................................................................................................................... 208


Address assignment and I/O operating modes ................................................................................. 215
Error tables ........................................................................................................................................ 224
1664

Additionally to the indications in the data sheets you find summary tables in the annex.
>

7.1 System flags

System flags: CAN ............................................................................................................................ 209


System flags: SAE-J1939 .................................................................................................................. 210
System flags: error flags (standard side)........................................................................................... 211
System flags: LED (standard side) .................................................................................................... 212
System flags: voltages (standard side) ............................................................................................. 213
System flags: 16 inputs and 16 outputs (standard side) ................................................................... 214
12167

The addresses of the system flags can change if the PLC configuration is extended.
► While programming only use the symbol names of the system flags!

→ System manual "Know-How ecomatmobile"


→ chapter Error codes and diagnostic information

208
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

>

7.1.1 System flags: CAN


12820

System flags (symbol name) Type Description


CANx_BAUDRATE WORD CAN interface x: set baud rate in [kBaud]
CANx_BUSOFF BOOL CAN interface x: Error "CAN-Bus off"
Reset of the error code alse resets the flag
CANx_DOWNLOADID BYTE CAN interface x: set download identifier
CANx_ERRORCOUNTER_RX BYTE CAN interface x: Error counter receiver
Reset of the flag is possible via write access
CANx_ERRORCOUNTER_TX BYTE CAN interface x: error counter transmission
A reset of the flag is possible via write access
CANx_LASTERROR BYTE CAN interface x:
Error number of the last CAN transmission:
0 = no error Initial value
1 = stuff error more than 5 identical bits in series on the bus
2 = form error received message had wrong format
3 = ack error sent message was not confirmed
4 = bit1 error a recessive bit was sent outside the arbitration area, but a
dominant bit was read on the bus
5 = bit0 error it was tried to send a dominant bit, but a recessive level was
read
OR: a sequence of 11 recessive bits was read during bus-
off recovery
6 = CRC error checksum of the received message was wrong
CANx_WARNING BOOL CAN interface x: warning threshold reached (> 96)
A reset of the flag is possible via write access

CANx stands for x = 1...4 = number of the CAN interface

209
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

>

7.1.2 System flags: SAE-J1939


12815

System flags (symbol name) Type Description


J1939_RECEIVE_OVERWRITE BOOL Setting only applies to J1939 data that has not been transmitted
via a J1939 transport protocol.
TRUE:
The old data is overwritten by the new data if the old data has
not yet been read from the function block instance
FALSE:
New data is rejected as long as the old data has not been read
from the function block instance

New data can arrive before the old data has been read out if
the IEC cycle is longer than the refresh rate of the J1939 data
J1939_TASK BOOL Using J1939_TASK, the time requirement for sending J1939
messages is met.
If J1939 messages are to be sent with a repetition time
< 50 ms, the runtime system automatically sets
J1939_TASK=TRUE.
For applications for which the time requirement is > PLC cycle
time:
 Reduce system load with J1939_TASK=FALSE!
TRUE: J1939 task is active (= initial value)
The task is called every 2 ms.
The J1939 stack sends its messages in the
required time frame
FALSE: J1939 task is not active

210
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

>

7.1.3 System flags: error flags (standard side)


12821

System flags (symbol name) Type Description


ERROR BOOL TRUE = set group error message, switch off relay
ERROR_BREAK_Ix WORD input group x: wire break error
(0...x, value depends on the device, [Bit 0 for input 0] ... [bit z for input z] of this group
→ data sheet) Bit = TRUE: error
Bit = FALSE: no error
ERROR_BREAK_Qx WORD output group x: wire break error
(0...x, value depends on the device, [Bit 0 for output 0] ... [bit z for output z] of this group
→ data sheet) Bit = TRUE: error
Bit = FALSE: no error
ERROR_CONTROL_Qx WORD output group x:error current control
(0...x, value depends on the device, final value cannot be reached
→ data sheet) [Bit 0 for output 0] ... [bit z for output z] of this group
Bit = TRUE: error
Bit = FALSE: no error
ERROR_CURRENT_Ix WORD input group x: over-current error
(0...x, value depends on the device, [Bit 0 for input 0] ... [bit z for input z] of this group
→ data sheet) Bit = TRUE: error
Bit = FALSE: no error
ERROR_IO BOOL Group error message input / output error
TRUE: Error
FALSE: No error
ERROR_POWER BOOL Overvoltage error for VBBS / clamp 15:
TRUE: Value out of range
or: difference (VBB15 - VBBS) too great
> general error
FALSE: Value OK
ERROR_SHORT_Ix WORD input group x: short circuit error
(0...x, value depends on the device, [Bit 0 for input 0] ... [bit z for input z] of this group
→ data sheet) Bit = TRUE: error
Bit = FALSE: no error
ERROR_SHORT_Qx WORD output group x: short circuit error
(0...x, value depends on the device, [Bit 0 for output 0] ... [bit z for output z] of this group
→ data sheet) Bit = TRUE: error
Bit = FALSE: no error
ERROR_TEMPERATURE BOOL Temperature error
TRUE: Value out of range
> general error
FALSE: Value OK
ERROR_VBBx BOOL Supply voltage error on VBBx (x = O | R):
TRUE: Value out of range
> general error
FALSE: Value OK
LAST_RESET BYTE Cause for the last reset:
00 = reset of the application
01 = power-on reset
02 = watchdog reset
03 = soft reset
04 = unknown cause

211
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

>

7.1.4 System flags: LED (standard side)


12817

System flags (symbol name) Type Description


LED WORD LED color for "LED switched on":
0x0000 = LED_GREEN (preset)
0x0001 = LED_BLUE
0x0002 = LED_RED
0x0003 = LED_WHITE
0x0004 = LED_BLACK
0x0005 = LED_MAGENTA
0x0006 = LED_CYAN
0x0007 = LED_YELLOW
LED_X WORD LED color for "LED switched off":
0x0000 = LED_GREEN
0x0001 = LED_BLUE
0x0002 = LED_RED
0x0003 = LED_WHITE
0x0004 = LED_BLACK (preset)
0x0005 = LED_MAGENTA
0x0006 = LED_CYAN
0x0007 = LED_YELLOW
LED_MODE WORD LED flashing frequency:
0x0000 = LED_2HZ (flashes at 2 Hz; preset)
0x0001 = LED_1HZ (flashes at 1 Hz)
0x0002 = LED_05HZ (flashes at 0.5 Hz)
0x0003 = LED_0HZ (lights permanently with value in LED)
0x0004 = LED_5HZ (flashes at 5 Hz)

212
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

>

7.1.5 System flags: voltages (standard side)


12822

System flags (symbol name) Type Description


CLAMP_15_VOLTAGE WORD voltage applied to clamp 15 in [mV]
REF_VOLTAGE WORD Voltage on reference voltage output in [mV]
REFERENCE_VOLTAGE_5 BOOL Reference voltage output with 5 V activated
REFERENCE_VOLTAGE_10 BOOL Reference voltage output with 10 V activated
RELAIS_VBBy BOOL TRUE: relay for VBBy activated
y=O|R voltage is applied to output group x
(x = 1 | 2)
FALSE: relay for VBBy deactivated
no voltage is applied to output group x
SERIAL_MODE BOOL Activate serial interface (RS232) for use in the application
TRUE:
The RS232 interface can be used in the application, but no
longer for programming, debugging or monitoring of the device.
FALSE:
The RS232 interface cannot be used in the application.
Programming, debugging or monitoring of the device is possible.
SUPPLY_SWITCH BOOL Bit for switching off the supply latching VBBS. Resetting the flag
is only accepted by the runtime system if the voltage at
clamp 15 < 4 V, otherwise the flag is activated again.
Separation of VBBS is done before the next PLC cycle starts.
Depending on the charging status of the internal capacitors it
may take some time until the device switches off.
TRUE: Supply of the device via VBBS is active
FALSE: Supply of the device via VBBS is deactivated
SUPPLY_VOLTAGE WORD supply voltage at VBBS in [mV]
TEST BOOL TRUE: Test input is active:
• Programming mode is enabled
• Software download is possible
• Status of the application program can be queried
• Protection of stored software is not possible
FALSE: application is in operation
VBBx_RELAIS_VOLTAGE WORD Supply voltage on VBBx to relay contact in [mV]
x=O|R
VBBx_VOLTAGE WORD Supply voltage on VBBx in [mV]
x=O|R

213
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex System flags

>

7.1.6 System flags: 16 inputs and 16 outputs (standard side)


13119

System flags (symbol name) Type Description


ANALOGxx WORD Analogue input xx:
xx = 00...15 filtered A/D converter raw value (12 bits) without calibration or
standardisation
ANALOG_IRQxx WORD analogue input channel xx:
xx = 00...07 raw value of the voltage
Use in the function block SET_INTERRUPT_I (→ page 120) or
SET_INTERRUPT_XMS (→ page 123)
CURRENTxx WORD PWM output xx:
xx = 00...15 filtered A/D converter raw values (12 bits) of the current
measurement without calibration or standardisation
Ixx BOOL Status on binary input xx
xx = 00...15 Condition: input is configured as binary input
(MODE = IN_DIGITAL_H or IN_DIGITAL_L)
TRUE: Voltage on binary input > 70 % of VBBS
FALSE: Voltage on binary input < 30 % of VBBS
or: not configured as binary input
or: wrong configuration
Ixx_DFILTER DWORD Pulse input xx:
xx = 00...11 pulse duration in [µs] which is to be ignored as a glitch.
Acquisition of the input signal is delayed by the set time.
allowed = 0...100 000 µs
preset = 0 µs = no filter
Ixx_FILTER BYTE:=4 Binary and analogue input xx:
xx = 00...15 limit frequency (or signal rise time) of the first-order software
low-pass filter
0 = 0x00 = no filter
1 = 0x01 = 390 Hz (1 ms)
2 = 0x02 = 145 Hz (2.5 ms)
3 = 0x03 = 68 Hz (5 ms)
4 = 0x04 = 34 Hz (10 ms) (preset)
5 = 0x05 = 17 Hz (21 ms)
6 = 0x06 = 8 Hz (42 ms)
7 = 0x07 = 4 Hz (84 ms)
8 = 0x08 = 2 Hz (169 ms)
higher = → preset value
Ixx_MODE BYTE Operating mode of the input lxx
xx = 00...15 → chapter Possible operating modes inputs/outputs (→ page 218)
Qxx BOOL Status on binary output xx:
xx = 00...15 Condition: output is configured as binary output
TRUE: output activated
FALSE: output deactivated (= initial value)
or: not configured as binary output
Qxx_FILTER BYTE Output xx:
xx = 00...15 limit frequency of the first-order software low-pass filter for the
current measurement
0 = 0x00 = no filter
1 = 0x01 = 580 Hz (0.6 ms)
2 = 0x02 = 220 Hz (1.6 ms)
3 = 0x03 = 102 Hz (3.5 ms)
4 = 0x04 = 51 Hz (7 ms) (preset)
5 = 0x05 = 25 Hz (14 ms)
6 = 0x06 = 12 Hz (28 ms)
7 = 0x07 = 6 Hz (56 ms)
8 = 0x08 = 3 Hz (112 ms)
higher = → preset value
Qxx_MODE BYTE Operating mode of the output Qxx
xx = 00...15 → chapter Possible operating modes inputs/outputs (→ page 218)

214
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

7.2 Address assignment and I/O operating modes

Address assignment inputs / outputs ................................................................................................ 215


Possible operating modes inputs/outputs ......................................................................................... 218
Addresses / variables of the I/Os ...................................................................................................... 220
1656

→ also data sheet


>

7.2.1 Address assignment inputs / outputs

Inputs: address assignment (standard side) (16 inputs) ................................................................... 216


Outputs: address assignment (standard side) (16 outputs) .............................................................. 217
2371

215
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

Inputs: address assignment (standard side) (16 inputs)


6892
Abbreviations →chapter Note on wiring (→ page 27)
Operating modes of the inputs/outputs →chapter Possible operating modes inputs/outputs (→ page 218)

IEC address Symbolic address


%IX0.0 I00
%IW2 ANALOG00
%IX0.1 I01
%IW3 ANALOG01
%IX0.2 I02
%IW4 ANALOG02
%IX0.3 I03
%IW5 ANALOG03
%IX0.4 I04
%IW6 ANALOG04
%IX0.5 I05
%IW7 ANALOG05
%IX0.6 I06
%IW8 ANALOG06
%IX0.7 I07
%IW9 ANALOG07

%IX0.8 I08
%IW10 ANALOG08
%IX0.9 I09
%IW11 ANALOG09
%IX0.10 I10
%IW12 ANALOG10
%IX0.11 I11
%IW13 ANALOG11
%IX0.12 I12
%IW14 ANALOG12
%IX0.13 I13
%IW15 ANALOG13
%IX0.14 I14
%IW16 ANALOG14
%IX0.15 I15
%IW17 ANALOG15

216
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

Outputs: address assignment (standard side) (16 outputs)


6893
Abbreviations →chapter Note on wiring (→ page 27)
Operating modes of the inputs/outputs →chapter Possible operating modes inputs/outputs (→ page 218)

IEC address Symbolic address


%QX0.1 Q01
%IW19 CURRENT01
%QX0.2 Q02
%IW20 CURRENT02
%QX0.3 Q03
%IW21 CURRENT03
%QX0.4 Q04
%IW22 CURRENT04
%QX0.5 Q05
%IW23 CURRENT05
%QX0.6 Q06
%IW24 CURRENT06
%QX0.7 Q07
%IW25 CURRENT07

%QX0.8 Q08
%IW26 CURRENT08
%QX0.9 Q09
%IW27 CURRENT09
%QX0.10 Q10
%IW28 CURRENT10
%QX0.11 Q11
%IW29 CURRENT11
%QX0.12 Q12
%IW30 CURRENT12
%QX0.13 Q13
%IW31 CURRENT13
%QX0.14 Q14
%IW32 CURRENT14
%QX0.15 Q15
%IW33 CURRENT15

217
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

7.2.2 Possible operating modes inputs/outputs

Inputs: operating modes (standard side) (16 inputs)......................................................................... 218


Outputs: operating modes (standard side) (16 outputs).................................................................... 219
2386
>

Inputs: operating modes (standard side) (16 inputs)


2380

Possible configuration combinations (where permissible) are created by adding the configuration
values.
= this configuration value is default

Value
Inputs Possible operating mode Set with function block FB input
dec hex
I00…I15 IN_NOMODE Off INPUT_ANALOG MODE 0 00

IN_DIGITAL_H Plus INPUT_ANALOG MODE 1 01

IN_DIGITAL_L Minus INPUT_ANALOG MODE 2 02


IN_CURRENT 0…20 000 µA INPUT_ANALOG MODE 4 04
IN_VOLTAGE10 0…10 000 mV INPUT_ANALOG MODE 8 08
IN_VOLTAGE30 0…30 000 mV INPUT_ANALOG MODE 16 10
IN_RATIO 0…1 000 ‰ INPUT_ANALOG MODE 32 20
IN_DIAGNOSTIC bei IN_DIGITAL_H internal 64 40
IN_FAST bei IN_DIGITAL_H internal 128 80
IN_FAST 0…30 000 Hz FREQUENCY Frequency measurement
Period duration
0.1...5 000 Hz PERIOD
measurement
Period duration and ratio
0.1...5 000 Hz PERIOD_RATIO
measurement
0…30 000 Hz FAST_COUNT Counters
0…30 000 Hz INC_ENCODER Detect encoder

Set operating modes with the following function block:


FAST_COUNT (→ page 134) Counter block for fast input pulses
FREQUENCY (→ page 136) Measures the frequency of the signal arriving at the selected channel
INC_ENCODER (→ page 140) Up/down counter function for the evaluation of encoders
INPUT_ANALOG (→ page 126) Current and voltage measurement on the analogue input channel
PERIOD (→ page 142) Measures the frequency and the cycle period (cycle time) in [µs] at the indicated channel
PERIOD_RATIO (→ page 144) Measures the frequency and the cycle period (cycle time) in [µs] during the indicated periods at
the indicated channel. In addition, the mark-to-space ratio is indicated in [‰].

218
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

Outputs: operating modes (standard side) (16 outputs)


15500

Possible configuration combinations (where permissible) are created by adding the configuration
values.
= this configuration value is default

Value
Outputs Possible operating mode set with
dec hex
Q00…Q15 OUT_NOMODE Off Qxx_MODE 0 00
OUT_DIGITAL_H Plus Qxx_MODE 1 01
OUT_DIGITAL_L Minus Qxx_MODE 2 02
OUT_CURRENT_RANGE1 2A Qxx_MODE 8 08
OUT_CURRENT_RANGE2 4A Qxx_MODE 16 10
OUT_DIAGNOSTIC Qxx_MODE 64 40
OUT_OVERLOAD_PROTECTION Qxx_MODE 128 80
>

Outputs: permitted operating modes


15526

Operating mode Q00 Q01 Q02 Q03 Q04 Q05 Q06 Q07
OUT_NOMODE off X X X X X X X X
OUT_DIGITAL_H plus X X X X X X X X
OUT_DIGITAL_L minus -- X -- X -- -- -- --
OUT_CURRENT_RANGE1 2A X X X X X X X X
OUT_CURRENT_RANGE2 4A X X X X -- -- -- --
OUT_DIAGNOSTIC X X X X X X X X
OUT_OVERLOAD_PROTECTION X X X X X X X X
PWM X X X X X X X X
H bridge -- X -- X -- -- -- --

Operating mode Q08 Q09 Q10 Q11 Q12 Q13 Q14 Q15
OUT_NOMODE off X X X X X X X X
OUT_DIGITAL_H plus X X X X X X X X
OUT_DIGITAL_L minus -- X -- X -- -- -- --
OUT_CURRENT_RANGE1 2A X X X X X X X X
OUT_CURRENT_RANGE2 4A X X X X -- -- -- --
OUT_DIAGNOSTIC X X X X X X X X
OUT_OVERLOAD_PROTECTION X X X X X X X X
PWM X X X X X X X X
H bridge -- X -- X -- -- -- --

219
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

7.2.3 Addresses / variables of the I/Os

Inputs: addresses and variables (standard side) (16 inputs) ............................................................ 220
Outputs: addresses and variables (standard side) (16 outputs) ....................................................... 222
2376
>

Inputs: addresses and variables (standard side) (16 inputs)


6897

IEC address I/O variable Remark


%IB0 I0 Input byte 0 (%IX0.0...%IX0.7)
%QB4 I00_MODE Configuration byte for %IX0.0
%QB5 I01_MODE Configuration byte for %IX0.1
%QB6 I02_MODE Configuration byte for %IX0.2
%QB7 I03_MODE Configuration byte for %IX0.3
%QB8 I04_MODE Configuration byte for %IX0.4
%QB9 I05_MODE Configuration byte for %IX0.5
%QB10 I06_MODE Configuration byte for %IX0.6
%QB11 I07_MODE Configuration byte for %IX0.7
%QB36 I00_FILTER Filter byte for %IX0.0 / %IW2
%QB37 I01_FILTER Filter byte for %IX0.1 / %IW3
%QB38 I02_FILTER Filter byte for %IX0.2 / %IW4
%QB39 I03_FILTER Filter byte for %IX0.3 / %IW5
%QB40 I04_FILTER Filter byte for %IX0.4 / %IW6
%QB41 I05_FILTER Filter byte for %IX0.5 / %IW7
%QB42 I06_FILTER Filter byte for %IX0.6 / %IW8
%QB43 I07_FILTER Filter byte for %IX0.7 / %IW9
%QD17 I00_DFILTER Filter value counting / pulse input 0
%QD18 I01_DFILTER Filter value counting / pulse input 1
%QD19 I02_DFILTER Filter value counting / pulse input 2
%QD20 I03_DFILTER Filter value counting / pulse input 3
%QD21 I04_DFILTER Filter value counting / pulse input 4
%QD22 I05_DFILTER Filter value counting / pulse input 5
%QD23 I06_DFILTER Filter value counting / pulse input 6
%QD24 I07_DFILTER Filter value counting / pulse input 7
%QD25 I08_DFILTER Filter value counting / pulse input 8
%QD26 I09_DFILTER Filter value counting / pulse input 9
%QD27 I10_DFILTER Filter value counting / pulse input 10
%QD28 I11_DFILTER Filter value counting / pulse input 11

%IB1 I1 Input byte 1 (%IX0.8...%IX0.15)


%QB12 I08_MODE Configuration byte for %IX0.8
%QB13 I09_MODE Configuration byte for %IX0.9
%QB14 I10_MODE Configuration byte for %IX0.10

220
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

IEC address I/O variable Remark


%QB15 I11_MODE Configuration byte for %IX0.11
%QB16 I12_MODE Configuration byte for %IX0.12
%QB17 I13_MODE Configuration byte for %IX0.13
%QB18 I14_MODE Configuration byte for %IX0.14
%QB19 I15_MODE Configuration byte for %IX0.15
%QB44 I08_FILTER Filter byte for %IX0.8 / %IW10
%QB45 I09_FILTER Filter byte for %IX0.9 / %IW11
%QB46 I10_FILTER Filter byte for %IX0.10 / %IW12
%QB47 I11_FILTER Filter byte for %IX0.11/ %IW13
%QB48 I12_FILTER Filter byte for %IX0.12 / %IW14
%QB49 I13_FILTER Filter byte for %IX0.13 / %IW15
%QB50 I14_FILTER Filter byte for %IX0.14 / %IW16
%QB51 I15_FILTER Filter byte for %IX0.15 / %IW17

%IW0 Input word (%IX0.00...%IX0.15)


%MW3976 ERROR_CURRENT_I0 Error word over-current (%MX3976.0...%MX3976.15)
%MW3977 ERROR_SHORT_I0 Error word short circuit (%MX3977.0...%MX3977.15)
%MW3978 ERROR_BREAK_I0 Error word wire break (%MX3978.0...%MX3978.15)

221
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

>

Outputs: addresses and variables (standard side) (16 outputs)


6898

IEC address I/O variable Remark


%QB0 Output byte 0 (%QX0.0...%QX0.7)
%QB20 Q00_MODE Configuration byte for %QX0.0 / PWM0
%QB21 Q01_MODE Configuration byte for %QX0.1 / PWM1
%QB22 Q02_MODE Configuration byte for %QX0.2 / PWM2
%QB23 Q03_MODE Configuration byte for %QX0.3 / PWM3
%QB24 Q04_MODE Configuration byte for %QX0.4 / PWM4
%QB25 Q05_MODE Configuration byte for %QX0.5 / PWM5
%QB26 Q06_MODE Configuration byte for %QX0.6 / PWM6
%QB27 Q07_MODE Configuration byte for %QX0.7 / PWM7
%QB52 Q00_FILTER Filter byte for %IW18
%QB53 Q01_FILTER Filter byte for %IW19
%QB54 Q02_FILTER Filter byte for %IW20
%QB55 Q03_FILTER Filter byte for %IW21
%QB56 Q04_FILTER Filter byte for %IW22
%QB57 Q05_FILTER Filter byte for %IW23
%QB58 Q06_FILTER Filter byte for %IW24
%QB59 Q07_FILTER Filter byte for %IW25
%IW18 CURRENT00 Output current (raw value) on Q00
%IW19 CURRENT01 Output current (raw value) on Q01

%IW20 CURRENT02 Output current (raw value) on Q02


%IW21 CURRENT03 Output current (raw value) on Q03
%IW22 CURRENT04 Output current (raw value) on Q04
%IW23 CURRENT05 Output current (raw value) on Q05
%IW24 CURRENT06 Output current (raw value) on Q06
%IW25 CURRENT07 Output current (raw value) on Q07

%QB1 Output byte 1 (%QX0.8...%QX0.15)


%QB28 Q08_MODE Configuration byte for %QX0.8 / PWM8
%QB29 Q09_MODE Configuration byte for %QX0.9 / PWM9
%QB30 Q10_MODE Configuration byte for %QX0.10 / PWM10
%QB31 Q11_MODE Configuration byte for %QX0.11 / PWM11
%QB32 Q12_MODE Configuration byte for %QX0.12 / PWM12
%QB33 Q13_MODE Configuration byte for %QX0.13 / PWM13
%QB34 Q14_MODE Configuration byte for %QX0.14 / PWM14
%QB35 Q15_MODE Configuration byte for %QX0.15 / PWM15
%QB60 Q08_FILTER Filter byte for %IW26
%QB61 Q09_FILTER Filter byte for %IW27
%QB62 Q10_FILTER Filter byte for %IW28
%QB63 Q11_FILTER Filter byte for %IW29
%QB64 Q12_FILTER Filter byte for %IW30

222
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Address assignment and I/O operating modes

IEC address I/O variable Remark


%QB65 Q13_FILTER Filter byte for %IW31
%QB66 Q14_FILTER Filter byte for %IW32
%QB67 Q15_FILTER Filter byte for %IW33
%IW26 CURRENT08 Output current (raw value) on Q08
%IW27 CURRENT09 Output current (raw value) on Q09
%IW28 CURRENT10 Output current (raw value) on Q10
%IW29 CURRENT11 Output current (raw value) on Q11
%IW30 CURRENT12 Output current (raw value) on Q12
%IW31 CURRENT13 Output current (raw value) on Q13
%IW32 CURRENT14 Output current (raw value) on Q14
%IW33 CURRENT15 Output current (raw value) on Q15

%QW0 Output word 0 (%QX0.0...%QX0.15)


%MW3973 ERROR_SHORT_Q0 Error word short circuit (%QX0.0...%QX0.15)
%MW3974 ERROR_BREAK_Q0 Error word wire break (%QX0.0...%QX0.15)
%MW3975 ERROR_CONTROL_Q0 Error word current control (%QX0.0...%QX0.15)

223
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Error tables

>

7.3 Error tables

Error flags .......................................................................................................................................... 224


Errors: CAN / CANopen .................................................................................................................... 224
19606
>

7.3.1 Error flags


19608

→ chapter System flags (→ page 208)


>

7.3.2 Errors: CAN / CANopen


19610
19604

→ System manual "Know-How ecomatmobile"


→ chapter CAN / CANopen: errors and error handling
>

EMCY codes: CANx


13094

The indications for CANx also apply to each of the CAN interfaces.

EMCY code Object


Manufactor specific information
object 0x1003 0x1001
Byte 0 Byte 1 Byte 2
Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Description
[hex] [hex] [hex]
00 80 11 -- -- -- -- -- CANx monitoring SYNC error (only slave)
00 81 11 -- -- -- -- -- CANx warning threshold (> 96)
10 81 11 -- -- -- -- -- CANx receive buffer overrun
11 81 11 -- -- -- -- -- CANx transmit buffer overrun
30 81 11 -- -- -- -- -- CANx guard/heartbeat error (only slave)

224
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Annex Error tables

>

EMCY codes: I/Os, system (standard side)


2668

The following EMCY messages are sent automatically, if the FB CANx_MASTER_EMCY_HANDLER


(→ page 79) is called cyclically.
EMCY code Object
Manufactor specific information
object 0x1003 0x1001
Byte 0 Byte 1 Byte 2
Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Description
[hex] [hex] [hex]
00 21 03 I07...I00 I15...I08 Inputs interruption
08 21 03 I07...I00 I15...I08 Inputs short circuit
10 21 03 I07...I00 I15...I08 Overcurrent 0…20 mA
00 23 03 Q07…Q00 Q15…Q08 Outputs interruption
08 23 03 Q07…Q00 Q15…Q08 Outputs short circuit
00 31 05 Terminal voltage VBBS
00 33 05 Terminal voltage VBBO
08 33 05 Terminal voltage VBBR
00 42 09 Excess temperature

225
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

8 Glossary of Terms
A
Address
This is the "name" of the bus participant. All participants need a unique address so that the signals can
be exchanged without problem.
>

Application software
Software specific to the application, implemented by the machine manufacturer, generally containing
logic sequences, limits and expressions that control the appropriate inputs, outputs, calculations and
decisions.
>

Architecture
Specific configuration of hardware and/or software elements in a system.
>

B
Baud
Baud, abbrev.: Bd = unit for the data transmission speed. Do not confuse baud with "bits per second"
(bps, bits/s). Baud indicates the number of changes of state (steps, cycles) per second over a
transmission length. But it is not defined how many bits per step are transmitted. The name baud can
be traced back to the French inventor J. M. Baudot whose code was used for telex machines.
1 MBd = 1024 x 1024 Bd = 1 048 576 Bd
>

Boot loader
On delivery ecomatmobile controllers only contain the boot loader.
The boot loader is a start program that allows to reload the runtime system and the application
program on the device.
The boot loader contains basic routines...
• for communication between hardware modules,
• for reloading the operating system.
The boot loader is the first software module to be saved on the device.
>

Bus
Serial data transmission of several participants on the same cable.
>

C
CAN
CAN = Controller Area Network
CAN is a priority-controlled fieldbus system for large data volumes. There are several higher-level
protocols that are based on CAN, e.g. 'CANopen' or 'J1939'.
>

CAN stack
CAN stack = software component that deals with processing CAN messages.

226
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

CiA
CiA = CAN in Automation e.V.
User and manufacturer organisation in Germany / Erlangen. Definition and control body for CAN and
CAN-based network protocols.
Homepage → www.can-cia.org
>

CiA DS 304
DS = Draft Standard
CANopen device profile for safety communication
>

CiA DS 401
DS = Draft Standard
CANopen device profile for binary and analogue I/O modules
>

CiA DS 402
DS = Draft Standard
CANopen device profile for drives
>

CiA DS 403
DS = Draft Standard
CANopen device profile for HMI
>

CiA DS 404
DS = Draft Standard
CANopen device profile for measurement and control technology
>

CiA DS 405
DS = Draft Standard
CANopen specification of the interface to programmable controllers (IEC 61131-3)
>

CiA DS 406
DS = Draft Standard
CANopen device profile for encoders
>

CiA DS 407
DS = Draft Standard
CANopen application profile for local public transport
>

Clamp 15
In vehicles clamp 15 is the plus cable switched by the ignition lock.
>

COB ID
COB = Communication Object
ID = Identifier
ID of a CANopen communication object
Corresponds to the identifier of the CAN message with which the communication project is sent via the
CAN bus.

227
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

CODESYS
CODESYS® is a registered trademark of 3S – Smart Software Solutions GmbH, Germany.
'CODESYS for Automation Alliance' associates companies of the automation industry whose hardware
devices are all programmed with the widely used IEC 61131-3 development tool CODESYS®.
Homepage → www.codesys.com
>

CSV file
CSV = Comma Separated Values (also: Character Separated Values)
A CSV file is a text file for storing or exchanging simply structured data.
The file extension is .csv.
Example: Source table with numerical values:
value 1.0 value 1.1 value 1.2 value 1.3
value 2.0 value 2.1 value 2.2 value 2.3
value 3.0 value 3.1 value 3.2 value 3.3

This results in the following CSV file:


value 1.0;value 1.1;value 1.2;value 1.3
value 2.0;value 2.1;value 2.2;value 2.3
value 3.0;value 3.1;value 3.2;value 3.3
.

>

Cycle time
This is the time for a cycle. The PLC program performs one complete run.
Depending on event-controlled branchings in the program this can take longer or shorter.
>

D
Data type
Depending on the data type, values of different sizes can be stored.
Data type min. value max. value size in the memory
BOOL FALSE TRUE 8 bits = 1 byte
BYTE 0 255 8 bits = 1 byte
WORD 0 65 535 16 bits = 2 bytes
DWORD 0 4 294 967 295 32 bits = 4 bytes
SINT -128 127 8 bits = 1 byte
USINT 0 255 8 bits = 1 byte
INT -32 768 32 767 16 bits = 2 bytes
UINT 0 65 535 16 bits = 2 bytes
DINT -2 147 483 648 2 147 483 647 32 bits = 4 bytes
UDINT 0 4 294 967 295 32 bits = 4 bytes
REAL -3.402823466 • 1038 3.402823466 • 1038 32 bits = 4 bytes
ULINT 0 18 446 744 073 709 551 615 64 Bit = 8 Bytes
STRING number of char. + 1
>

DC
Direct Current

228
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

Diagnosis
During the diagnosis, the "state of health" of the device is checked. It is to be found out if and what
→faults are given in the device.
Depending on the device, the inputs and outputs can also be monitored for their correct function.
- wire break,
- short circuit,
- value outside range.
For diagnosis, configuration and log data can be used, created during the "normal" operation of the
device.
The correct start of the system components is monitored during the initialisation and start phase.
Errors are recorded in the log file.
For further diagnosis, self-tests can also be carried out.
>

Dither
Dither is a component of the →PWM signals to control hydraulic valves. It has shown for
electromagnetic drives of hydraulic valves that it is much easier for controlling the valves if the control
signal (PWM pulse) is superimposed by a certain frequency of the PWM frequency. This dither
frequency must be an integer part of the PWM frequency.
>

DLC
Data Length Code = in CANopen the number of the data bytes in a message.
For →SDO: DLC = 8
>

DRAM
DRAM = Dynamic Random Access Memory.
Technology for an electronic memory module with random access (Random Access Memory, RAM).
The memory element is a capacitor which is either charged or discharged. It becomes accessible via a
switching transistor and is either read or overwritten with new contents. The memory contents are
volatile: the stored information is lost in case of lacking operating voltage or too late restart.
>

DTC
DTC = Diagnostic Trouble Code = error code
In the protocol J1939 faults and errors well be managed and reported via assigned numbers – the
DTCs.
>

E
ECU
(1) Electronic Control Unit = control unit or microcontroller
(2) Engine Control Unit = control device of a engine
>

EDS-file
EDS = Electronic Data Sheet, e.g. for:
• File for the object directory in the CANopen master,
• CANopen device descriptions.
Via EDS devices and programs can exchange their specifications and consider them in a simplified
way.

229
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

Embedded software
System software, basic program in the device, virtually the →runtime system.
The firmware establishes the connection between the hardware of the device and the application
program. The firmware is provided by the manufacturer of the controller as a part of the system and
cannot be changed by the user.
>

EMC
EMC = Electro Magnetic Compatibility.
According to the EC directive (2004/108/EEC) concerning electromagnetic compatibility (in short EMC
directive) requirements are made for electrical and electronic apparatus, equipment, systems or
components to operate satisfactorily in the existing electromagnetic environment. The devices must
not interfere with their environment and must not be adversely influenced by external electromagnetic
interference.
>

EMCY
abbreviation for emergency
Message in the CANopen protocol with which errors are signalled.
>

Ethernet
Ethernet is a widely used, manufacturer-independent technology which enables data transmission in
the network at a speed of 10...10 000 million bits per second (Mbps). Ethernet belongs to the family of
so-called "optimum data transmission" on a non exclusive transmission medium. The concept was
developed in 1972 and specified as IEEE 802.3 in 1985.
>

EUC
EUC = Equipment Under Control.
EUC is equipment, machinery, apparatus or plant used for manufacturing, process, transportation,
medical or other activities (→ IEC 61508-4, section 3.2.3). Therefore, the EUC is the set of all
equipment, machinery, apparatus or plant that gives rise to hazards for which the safety-related
system is required.
If any reasonably foreseeable action or inaction leads to →hazards with an intolerable risk arising from
the EUC, then safety functions are necessary to achieve or maintain a safe state for the EUC. These
safety functions are performed by one or more safety-related systems.
>

F
FiFo
FIFO (First In, First Out) = Operating principle of the stack memory: The data packet that was written
into the stack memory first, will also be read first. Each identifier has such a buffer (queue).
>

Flash memory
Flash ROM (or flash EPROM or flash memory) combines the advantages of semiconductor memory
and hard disks. Similar to a hard disk, the data are however written and deleted blockwise in data
blocks up to 64, 128, 256, 1024, ... bytes at the same time.
Advantages of flash memories
• The stored data are maintained even if there is no supply voltage.
• Due to the absence of moving parts, flash is noiseless and insensitive to shocks and magnetic
fields.

230
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

Disadvantages of flash memories


• A storage cell can tolerate a limited number of write and delete processes:
• Multi-level cells: typ. 10 000 cycles
• Single level cells: typ. 100 000 cycles
• Given that a write process writes memory blocks of between 16 and 128 Kbytes at the same time,
memory cells which require no change are used as well.
>

FRAM
FRAM, or also FeRAM, means Ferroelectric Random Access Memory. The storage operation and
erasing operation is carried out by a polarisation change in a ferroelectric layer.
Advantages of FRAM as compared to conventional read-only memories:
• non-volatile,
• compatible with common EEPROMs, but:
• access time approx. 100 ns,
• nearly unlimited access cycles possible.
>

H
Heartbeat
The participants regularly send short signals. In this way the other participants can verify if a
participant has failed.
>

HMI
HMI = Human Machine Interface
>

I
ID
ID = Identifier
Name to differentiate the devices / participants connected to a system or the message packets
transmitted between the participants.
>

IEC 61131
Standard: Basics of programmable logic controllers
• Part 1: General information
• Part 2: Production equipment requirements and tests
• Part 3: Programming languages
• Part 5: Communication
• Part 7: Fuzzy Control Programming
>

IEC user cycle


IEC user cycle = PLC cycle in the CODESYS application program.
>

Instructions
Superordinate word for one of the following terms:
installation instructions, data sheet, user information, operating instructions, device manual, installation
information, online help, system manual, programming manual, etc.

231
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

Intended use
Use of a product in accordance with the information provided in the instructions for use.
>

IP address
IP = Internet Protocol.
The IP address is a number which is necessary to clearly identify an internet participant. For the sake
of clarity the number is written in 4 decimal values, e.g. 127.215.205.156.
>

ISO 11898
Standard: Road vehicles – Controller area network
• Part 1: Data link layer and physical signalling
• Part 2: High-speed medium access unit
• Part 3: Low-speed, fault-tolerant, medium dependent interface
• Part 4: Time-triggered communication
• Part 5: High-speed medium access unit with low-power mode
>

ISO 11992
Standard: Interchange of digital information on electrical connections between towing and towed
vehicles
• Part 1: Physical and data-link layers
• Part 2: Application layer for brakes and running gear
• Part 3: Application layer for equipment other than brakes and running gear
• Part 4: Diagnostics
>

ISO 16845
Standard: Road vehicles – Controller area network (CAN) – Conformance test plan
>

J
J1939
→ SAE J1939
>

L
LED
LED = Light Emitting Diode.
Light emitting diode, also called luminescent diode, an electronic element of high coloured luminosity
at small volume with negligible power loss.
>

Link
A link is a cross-reference to another part in the document or to an external document.
>

LSB
Least Significant Bit/Byte

232
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

M
MAC-ID
MAC = Manufacturer‘s Address Code
= manufacturer's serial number.
→ID = Identifier
Every network card has a MAC address, a clearly defined worldwide unique numerical code, more or
less a kind of serial number. Such a MAC address is a sequence of 6 hexadecimal numbers, e.g. "00-
0C-6E-D0-02-3F".
>

Master
Handles the complete organisation on the bus. The master decides on the bus access time and polls
the →slaves cyclically.
>

Misuse
The use of a product in a way not intended by the designer.
The manufacturer of the product has to warn against readily predictable misuse in his user
information.
>

MMI
→ HMI (→ page 231)
>

MRAM
MRAM = Magnetoresistive Random Access Memory
The information is stored by means of magnetic storage elements. The property of certain materials is
used to change their electrical resistance when exposed to magnetic fields.
Advantages of MRAM as compared to conventional RAM memories:
• non volatile (like FRAM), but:
• access time only approx. 35 ns,
• unlimited number of access cycles possible.
>

MSB
Most Significant Bit/Byte
>

N
NMT
NMT = Network Management = (here: in the CANopen protocol).
The NMT master controls the operating states of the NMT slaves.
>

Node
This means a participant in the network.
>

Node Guarding
Node = here: network participant
Configurable cyclic monitoring of each →slave configured accordingly. The →master verfies if the
slaves reply in time. The slaves verify if the master regularly sends requests. In this way failed network
participants can be quickly identified and reported.

233
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

O
Obj / object
Term for data / messages which can be exchanged in the CANopen network.
>

Object directory
Contains all CANopen communication parameters of a device as well as device-specific parameters
and data.
>

OBV
Contains all CANopen communication parameters of a device as well as device-specific parameters
and data.
>

OPC
OPC = OLE for Process Control
Standardised software interface for manufacturer-independent communication in automation
technology
OPC client (e.g. device for parameter setting or programming) automatically logs on to OPC server
(e.g. automation device) when connected and communicates with it.
>

Operational
Operating state of a CANopen participant. In this mode →SDOs, →NMT commands and →PDOs can
be transferred.
>

P
PC card
→PCMCIA card
>

PCMCIA card
PCMCIA = Personal Computer Memory Card International Association, a standard for expansion
cards of mobile computers.
Since the introduction of the cardbus standard in 1995 PCMCIA cards have also been called PC card.
>

PDM
PDM = Process and Dialogue Module.
Device for communication of the operator with the machine / plant.
>

PDO
PDO = Process Data Object.
The time-critical process data is transferred by means of the "process data objects" (PDOs). The
PDOs can be freely exchanged between the individual nodes (PDO linking). In addition it is defined
whether data exchange is to be event-controlled (asynchronous) or synchronised. Depending on the
type of data to be transferred the correct selection of the type of transmission can lead to considerable
relief for the →CAN bus.
According to the protocol, these services are unconfirmed data transmission: it is not checked whether
the receiver receives the message. Exchange of network variables corresponds to a "1 to
n connection" (1 transmitter to n receivers).

234
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

PDU
PDU = Protocol Data Unit.
The PDU is an item of the →CAN protocol →SAE J1939. PDU indicates a part of the destination or
source address.
>

PES
Programmable Electronic System ...
• for control, protection or monitoring,
• dependent for its operation on one or more programmable electronic devices,
• including all elements of the system such as input and output devices.
>

PGN
PGN = Parameter Group Number
PGN = PDU format (PF) + PDU source (PS)
The parameter group number is an item of the →CAN protocol →SAE J1939. PGN collects the
address parts PF and PS.
>

Pictogram
Pictograms are figurative symbols which convey information by a simplified graphic representation.
(→ chapter What do the symbols and formats mean? (→ page 7))
>

PID controller
The PID controller (proportional–integral–derivative controller) consists of the following parts:
• P = proportional part
• I = integral part
• D = differential part (but not for the controller CR04nn, CR253n).
>

PLC configuration
Part of the CODESYS user interface.
► The programmer tells the programming system which hardware is to be programmed.
> CODESYS loads the corresponding libraries.
> Reading and writing the periphery states (inputs/outputs) is possible.
>

Pre-Op
Pre-Op = PRE-OPERATIONAL mode.
Operating status of a CANopen participant. After application of the supply voltage each participant
automatically passes into this state. In the CANopen network only →SDOs and →NMT commands
can be transferred in this mode but no process data.
>

Process image
Process image is the status of the inputs and outputs the PLC operates with within one →cycle.
• At the beginning of the cycle the PLC reads the conditions of all inputs into the process image.
During the cycle the PLC cannot detect changes to the inputs.
• During the cycle the outputs are only changed virtually (in the process image).
• At the end of the cycle the PLC writes the virtual output states to the real outputs.

235
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

PWM
PWM = pulse width modulation
The PWM output signal is a pulsed signal between GND and supply voltage.
Within a defined period (PWM frequency) the mark-to-space ratio is varied. Depending on the mark-to-
space ratio, the connected load determines the corresponding RMS current.
>

R
ratiometric
Measurements can also be performed ratiometrically. If the output signal of a sensor is proportional to
its suppy voltage then via ratiometric measurement (= measurement proportional to the supply) the
influence of the supply's fluctuation can be reduced, in ideal case it can be eliminated.
→ analogue input
>

RAW-CAN
RAW-CAN means the pure CAN protocol which works without an additional communication protocol
on the CAN bus (on ISO/OSI layer 2). The CAN protocol is international defined according to
ISO 11898-1 and garantees in ISO 16845 the interchangeability of CAN chips in addition.
>

remanent
Remanent data is protected against data loss in case of power failure.
The →runtime system for example automatically copies the remanent data to a →flash memory as
soon as the voltage supply falls below a critical value. If the voltage supply is available again, the
runtime system loads the remanent data back to the RAM memory.
The data in the RAM memory of a controller, however, is volatile and normally lost in case of power
failure.
>

ro
RO = read only for reading only
Unidirectional data transmission: Data can only be read and not changed.
>

RTC
RTC = Real Time Clock
Provides (batter-backed) the current date and time. Frequent use for the storage of error message
protocols.
>

Runtime system
Basic program in the device, establishes the connection between the hardware of the device and the
application program.
>

rw
RW = read/ write
Bidirectional data transmission: Data can be read and also changed.

236
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

S
SAE J1939
The network protocol SAE J1939 describes the communication on a →CAN bus in commercial
vehicles for transmission of diagnosis data (e.g.engine speed, temperature) and control information.
Standard: Recommended Practice for a Serial Control and Communications Vehicle Network
• Part 2: Agricultural and Forestry Off-Road Machinery Control and Communication Network
• Part 3: On Board Diagnostics Implementation Guide
• Part 5: Marine Stern Drive and Inboard Spark-Ignition Engine On-Board Diagnostics Implementation
Guide
• Part 11: Physical Layer – 250 kBits/s, Shielded Twisted Pair
• Part 13: Off-Board Diagnostic Connector
• Part 15: Reduced Physical Layer, 250 kBits/s, Un-Shielded Twisted Pair (UTP)
• Part 21: Data Link Layer
• Part 31: Network Layer
• Part 71: Vehicle Application Layer
• Part 73: Application Layer – Diagnostics
• Part 81: Network Management Protocol
>

SD card
An SD memory card (short for Secure Digital Memory Card) is a digital storage medium that operates
to the principle of →flash storage.
>

SDO
SDO = Service Data Object.
The SDO is used for access to objects in the CANopen object directory. 'Clients' ask for the requested
data from 'servers'. The SDOs always consist of 8 bytes.
Examples:
• Automatic configuration of all slaves via →SDOs at the system start,
• reading error messages from the →object directory.
Every SDO is monitored for a response and repeated if the slave does not respond within the
monitoring time.
>

Self-test
Test program that actively tests components or devices. The program is started by the user and takes
a certain time. The result is a test protocol (log file) which shows what was tested and if the result is
positive or negative.
>

Slave
Passive participant on the bus, only replies on request of the →master. Slaves have a clearly defined
and unique →address in the bus.
>

stopped
Operating status of a CANopen participant. In this mode only →NMT commands are transferred.
>

Symbols
Pictograms are figurative symbols which convey information by a simplified graphic representation.
(→ chapter What do the symbols and formats mean? (→ page 7))

237
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Glossary of Terms

>

System variable
Variable to which access can be made via IEC address or symbol name from the PLC.
>

T
Target
The target contains the hardware description of the target device for CODESYS, e.g.: inputs and
outputs, memory, file locations.
Corresponds to an electronic data sheet.
>

TCP
The Transmission Control Protocol is part of the TCP/IP protocol family. Each TCP/IP data connection
has a transmitter and a receiver. This principle is a connection-oriented data transmission. In the
TCP/IP protocol family the TCP as the connection-oriented protocol assumes the task of data
protection, data flow control and takes measures in the event of data loss. (compare: →UDP)
>

Template
A template can be filled with content.
Here: A structure of pre-configured software elements as basis for an application program.
>

U
UDP
UDP (User Datagram Protocol) is a minimal connectionless network protocol which belongs to the
transport layer of the internet protocol family. The task of UDP is to ensure that data which is
transmitted via the internet is passed to the right application.
At present network variables based on →CAN and UDP are implemented. The values of the variables
are automatically exchanged on the basis of broadcast messages. In UDP they are implemented as
broadcast messages, in CAN as →PDOs.
According to the protocol, these services are unconfirmed data transmission: it is not checked whether
the receiver receives the message. Exchange of network variables corresponds to a "1 to
n connection" (1 transmitter to n receivers).
>

Use, intended
Use of a product in accordance with the information provided in the instructions for use.
>

W
Watchdog
In general the term watchdog is used for a component of a system which watches the function of other
components. If a possible malfunction is detected, this is either signalled or suitable program
branchings are activated. The signal or branchings serve as a trigger for other co-operating system
components to solve the problem.
>

wo
WO = write only
Unidirectional data transmission: Data can only be changed and not read.

238
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Index

CHECK_DATA.....................................................................................199
9 Index CiA .......................................................................................................227
CiA DS 304 ..........................................................................................227
A CiA DS 401 ..........................................................................................227
CiA DS 402 ..........................................................................................227
About this manual ....................................................................................5
CiA DS 403 ..........................................................................................227
Access to the structures at runtime of the application ..........................87
CiA DS 404 ..........................................................................................227
Activate the PLC configuration (e.g. CR0033) ......................................52
CiA DS 405 ..........................................................................................227
Adapt process values ..........................................................................128
CiA DS 406 ..........................................................................................227
Address ................................................................................................226
CiA DS 407 ..........................................................................................227
Address assignment ............................................................................215
Clamp 15..............................................................................................227
Address assignment and I/O operating modes ...................................215
COB ID.................................................................................................227
Address assignment inputs / outputs ..................................................215
CODESYS ...........................................................................................228
Address assignment of the inputs .......................................................216
CODESYS functions..............................................................................46
Address assignment of the outputs .....................................................217
CODESYS programming manual ............................................................6
Addresses / variables of the I/Os ........................................................220
Conditions ..............................................................................................13
Addresses / variables of the inputs .....................................................220
Configuration of the inputs and outputs (default setting) ......................54
Addresses / variables of the outputs ...................................................222
Configurations........................................................................................47
Allowable configurations for Q00_MODE...Q15_MODE .......................59
Configure inputs.....................................................................................56
Analogue inputs .....................................................................................21
Configure outputs ..................................................................................59
Annex ...................................................................................................208
Configure the hardware filter .................................................................58
Application program ...............................................................................34
Configure the software filters of the inputs ............................................58
Application software.............................................................................226
Configure the software filters of the outputs..........................................60
Architecture..........................................................................................226
Connect terminal VBB15 to the ignition switch .....................................15
Automatic data backup ........................................................................188
Control the LED in the application program ..........................................30
Availability of PWM ................................................................................62
CONTROL_OCC .................................................................................158
Available memory ..................................................................................14
Copyright..................................................................................................5
B Creating application program ................................................................38
CSV file ................................................................................................228
Baud.....................................................................................................226
Current control with PWM (= PWMi) .....................................................62
Binary and PWM outputs .......................................................................61
Cycle time ............................................................................................228
Binary outputs ........................................................................................24
Boot loader ..........................................................................................226 D
Bootloader..............................................................................................34
Damping of overshoot .........................................................................172
Bootloader state.....................................................................................43
Data access and data check ...............................................................198
Bus .......................................................................................................226
Data type..............................................................................................228
C DC ........................................................................................................228
Debug ....................................................................................................45
CAN .....................................................................................................226
DEBUG mode ........................................................................................45
interfaces and protocols ................................................................................ 32
DELAY .................................................................................................173
CAN / CANopen
Diagnosis .................................................................................... 205, 229
errors and error handling............................................................................. 207
binary outputs (via current measurement) .................................................... 26
CAN interfaces.......................................................................................32
overload (via current measurement) ............................................................. 26
CAN stack ............................................................................................226
short circuit (via current measurement) ........................................................ 26
CANx......................................................................................................70 wire break (via current measurement) .......................................................... 26
CANx_BAUDRATE ................................................................................71 Diagnosis and error handling...............................................................205
CANx_BUSLOAD ..................................................................................72 Digital inputs ..........................................................................................22
CANx_DOWNLOADID ..........................................................................73 Dither ...................................................................................................229
CANx_ERRORHANDLER .....................................................................74 DLC ......................................................................................................229
CANx_MASTER_EMCY_HANDLER ....................................................79 DRAM ..................................................................................................229
CANx_MASTER_SEND_EMERGENCY ...............................................80 DTC......................................................................................................229
CANx_MASTER_STATUS ....................................................................82
CANx_RECEIVE....................................................................................75 E
CANx_SDO_READ................................................................................97
ECU .....................................................................................................229
CANx_SDO_WRITE ..............................................................................99
EDS-file ................................................................................................229
CANx_SLAVE_EMCY_HANDLER ........................................................89
Embedded software .............................................................................230
CANx_SLAVE_NODEID........................................................................90
EMC .....................................................................................................230
CANx_SLAVE_SEND_EMERGENCY ..................................................91
EMCY...................................................................................................230
CANx_SLAVE_SET_PREOP ................................................................93
EMCY codes
CANx_SLAVE_STATUS .......................................................................94 CANx ........................................................................................................... 224
CANx_TRANSMIT .................................................................................77 I/Os, system (standard side) ....................................................................... 225

239
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Index

Error flags ............................................................................................224 H-bridge


Error tables ..........................................................................................224 Principle ....................................................................................................... 149
Errors Heartbeat .............................................................................................231
CAN / CANopen .......................................................................................... 224 History of the instructions (CR0032) .....................................................9
Ethernet ...............................................................................................230 HMI ......................................................................................................231
EUC .....................................................................................................230 How is this documentation structured? ...................................................8
Example
CANx_MASTER_SEND_EMERGENCY ...................................................... 81 I
CANx_MASTER_STATUS ........................................................................... 85 ID .........................................................................................................231
CANx_SLAVE_SEND_EMERGENCY ......................................................... 92
IEC 61131 ............................................................................................231
CHECK_DATA ............................................................................................ 200
IEC user cycle ......................................................................................231
NORM (1) .................................................................................................... 130
NORM (2) .................................................................................................... 130 ifm function elements.............................................................................64
NORM_HYDRAULIC .................................................................................. 171 ifm function elements for the device CR0032 .......................................69
ifm libraries for the device CR0032 .......................................................64
F ifm weltweit • ifm worldwide • ifm à l’échelle internationale.................247
Fast inputs .............................................................................................57 INC_ENCODER...................................................................................140
FAST_COUNT .....................................................................................134 Information concerning the device ........................................................12
Fault .....................................................................................................205 INIT state (Reset) ..................................................................................43
FB, FUN, PRG in CODESYS ................................................................37 Input group I0 (I00...15) .........................................................................23
Feedback in case of externally supplied outputs ..................................28 INPUT_ANALOG .................................................................................126
FiFo ......................................................................................................230 Inputs
address assignment (standard side) (16 inputs) ........................................ 216
File system ...........................................................................................187
addresses and variables (standard side) (16 inputs) ................................. 220
Flash memory ............................................................................. 187, 230
operating modes (standard side) (16 inputs) .............................................. 218
FLASHREAD .......................................................................................191
Inputs (technology) ................................................................................21
FLASH-Speicher ....................................................................................14
Instructions ..........................................................................................231
FLASHWRITE......................................................................................192
Intended use ........................................................................................232
FRAM .............................................................................................14, 231
Interface description ..............................................................................31
FRAM memory.....................................................................................187
Internal structure parameters ................................................................84
FRAMREAD.........................................................................................194
Interrupt processing .............................................................................119
FRAMWRITE .......................................................................................195
IP address............................................................................................232
FREQUENCY ......................................................................................136
ISO 11898 ............................................................................................232
FREQUENCY_PERIOD ......................................................................138
ISO 11992 ............................................................................................232
Function configuration .....................................................................54, 55
ISO 16845 ............................................................................................232
Function configuration in general ..........................................................54
Function configuration of the inputs and outputs ..................................55 J
Function elements
J1939 ...................................................................................................232
adapting analogue values ........................................................................... 128
CAN layer 2 ................................................................................................... 69 J1939_x ...............................................................................................102
CANopen master ........................................................................................... 78 J1939_x_GLOBAL_REQUEST ...........................................................103
CANopen SDOs ............................................................................................ 96 J1939_x_RECEIVE .............................................................................105
CANopen slave ............................................................................................. 88 J1939_x_RESPONSE .........................................................................108
controllers .................................................................................................... 172 J1939_x_SPECIFIC_REQUEST .........................................................110
counter functions for frequency and period measurement......................... 133 J1939_x_TRANSMIT...........................................................................112
data access and data check ....................................................................... 198
JOYSTICK_0 .......................................................................................160
device temperature ..................................................................................... 184
JOYSTICK_1 .......................................................................................163
hydraulic control .......................................................................................... 157
measuring / setting of time .......................................................................... 181
JOYSTICK_2 .......................................................................................167
Optimising the PLC cycle ............................................................................ 119
processing input values............................................................................... 125
L
processing interrupts ................................................................................... 119 Latching .................................................................................................15
PWM functions ............................................................................................ 147 LED ................................................................................................30, 232
SAE J1939................................................................................................... 101 Libraries .................................................................................................35
saving, reading and converting data in the memory .................................. 186
Library ifm_CR0032_CANopenxMaster_Vxxyyzz.LIB ..........................67
serial interface ............................................................................................. 114
Library ifm_CR0032_CANopenxSlave_Vxxyyzz.LIB ............................67
software reset .............................................................................................. 179
Library ifm_CR0032_J1939_Vxxyyzz.LIB .............................................68
G Library ifm_CR0032_V020106.LIB........................................................65
Library ifm_hydraulic_32bit_Vxxyyzz.LIB ..............................................68
GET_IDENTITY ...................................................................................201
Link ......................................................................................................232
H LSB ......................................................................................................232

Hardware description.............................................................................12 M
Hardware structure ................................................................................13
MAC-ID ................................................................................................233

240
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Index

manual .................................................................................................190 Performance limits of the device ...........................................................46


Manual data storage ............................................................................190 PERIOD ...............................................................................................142
Master ..................................................................................................233 PERIOD_RATIO ..................................................................................144
MEMCPY .............................................................................................196 PES ......................................................................................................235
Memory, available..................................................................................14 PGN .....................................................................................................235
MEMORY_RETAIN_PARAM ..............................................................189 PHASE .................................................................................................146
MEMSET..............................................................................................197 Pictogram .............................................................................................235
Misuse..................................................................................................233 Pictograms ...............................................................................................7
MMI ......................................................................................................233 PID controller .......................................................................................235
Monitoring concept ................................................................................17 PID1 .....................................................................................................174
Monitoring of the supply voltages VBBx................................................18 PID2 .....................................................................................................176
MRAM ..................................................................................................233 PLC configuration ..........................................................................51, 235
MSB .....................................................................................................233 Please note! ...........................................................................................10
Possible operating modes inputs/outputs ...........................................218
N Pre-Op .................................................................................................235
Network variables ..................................................................................63 Previous knowledge...............................................................................11
NMT .....................................................................................................233 Principle of the H-bridge ......................................................................149
No runtime system .................................................................................43 Prinziple block diagram .........................................................................13
Node ....................................................................................................233 Process image .....................................................................................235
Node Guarding ....................................................................................233 Process input values ...........................................................................125
NORM ..................................................................................................129 Programm-Beispiel zu CAN1_MASTER_STATUS ...............................86
NORM_DINT .......................................................................................131 Programming notes for CODESYS projects .........................................36
NORM_HYDRAULIC ...........................................................................170 PT1 ......................................................................................................178
NORM_REAL ......................................................................................132 PWM ....................................................................................................236
Note on wiring ........................................................................................27 PWM outputs .........................................................................................24
Note the cycle time! ...............................................................................37 PWM1000 ............................................................................................155
Notizen • Notes • Notes .......................................................................243
R
O ratiometric ............................................................................................236
Obj / object...........................................................................................234 RAW-CAN ............................................................................................236
Object directory....................................................................................234 Reaction in case of an error ................................................................206
OBV .....................................................................................................234 Recommended setting.........................................................................177
OPC .....................................................................................................234 Recommended settings .......................................................................175
Operating modes ...................................................................................44 Reference voltage output ......................................................................20
Operating modes of the inputs / outputs .............................................218 Reinstall the runtime system .................................................................48
Operating principle of the delayed switch-off ........................................15 Relay
Operating principle of the monitoring concept.......................................19 important notes! ........................................................................................... 206
Operating states ....................................................................................40 Relays ....................................................................................................13
application program is available ................................................................... 42 important notes! ............................................................................................. 16
application program is not available ............................................................. 41 remanent..............................................................................................236
runtime system is not available ..................................................................... 40 Reset......................................................................................................43
Operational ..........................................................................................234 Response to system errors..................................................................207
Output group Q0 (Q00...15)...................................................................25 Retain variables .....................................................................................63
OUTPUT_BRIDGE ..............................................................................148 ro ..........................................................................................................236
OUTPUT_CURRENT ..........................................................................152 RTC......................................................................................................236
OUTPUT_CURRENT_CONTROL ......................................................153 Run ........................................................................................................43
Outputs RUN state ..............................................................................................43
address assignment (standard side) (16 outputs) ...................................... 217 Runtime system .............................................................................34, 236
addresses and variables (standard side) (16 outputs) ............................... 222 rw .........................................................................................................236
operating modes (standard side) (16 outputs) ........................................... 219
permitted operating modes ......................................................................... 219 S
Outputs (technology) .............................................................................24
SAE J1939 .................................................................................. 101, 237
Overview
Safety instructions .................................................................................10
documentation modules for ecomatmobile devices ....................................... 6
Safety instructions about Reed relays .............................................27, 56
P Save boot project ...................................................................................39
Save, read and convert data ...............................................................186
PC card ................................................................................................234
SD card ................................................................................................237
PCMCIA card .......................................................................................234
SDO .....................................................................................................237
PDM .....................................................................................................234
Self-test ................................................................................................237
PDO .....................................................................................................234
Serial interface .......................................................................................31
PDU .....................................................................................................235
SERIAL_MODE .....................................................................................45

241
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Index

SERIAL_PENDING..............................................................................115 T
SERIAL_RX .........................................................................................116
SERIAL_SETUP ..................................................................................117 Target...................................................................................................238
SERIAL_TX .........................................................................................118 TCP ......................................................................................................238
Set up the programming system ...........................................................50 TEMPERATURE..................................................................................185
Set up the programming system manually ............................................50 Template ..............................................................................................238
Set up the programming system via templates .....................................53 Terminal voltage VBBS falls below the limit value of 10 V....................18
Set up the runtime system .....................................................................47 Terminal voltage VBBx falls below the limit value of 5.25 V .................18
Set up the target ....................................................................................51 Test ........................................................................................................44
SET_DEBUG .......................................................................................202 TEST mode............................................................................................44
SET_IDENTITY ...................................................................................203 TIMER_READ......................................................................................182
SET_INTERRUPT_I ............................................................................120 TIMER_READ_US...............................................................................183
SET_INTERRUPT_XMS .....................................................................123
SET_PASSWORD ...............................................................................204
U
Setting control ......................................................................................172 UDP .....................................................................................................238
Setting rule...........................................................................................172 Update the runtime system....................................................................49
Setting rule for a controller ..................................................................172 USB interface.........................................................................................31
Slave ....................................................................................................237 Use, intended.......................................................................................238
Slave information ...................................................................................85 Using ifm downloader ............................................................................39
SOFTRESET .......................................................................................180 Using ifm maintenance tool ...................................................................39
Software controller configuration ...........................................................51
Software description ..............................................................................33
V
Software modules for the device ...........................................................33 Variables ................................................................................................63
Software reset......................................................................................179 Verify the installation .............................................................................49
SRAM.....................................................................................................14
Start-up behaviour of the controller .......................................................11 W
Status LED.............................................................................................30 watchdog........................................................................................46, 238
STOP state ............................................................................................43 Watchdog .............................................................................................238
Stopp......................................................................................................43 Watchdog behaviour..............................................................................46
stopped ................................................................................................237 What do the symbols and formats mean?...............................................7
Storage types for data backup ............................................................187 What previous knowledge is required? .................................................11
Structure Emergency_Message ............................................................87 Wiring .....................................................................................................27
Structure node status ............................................................................86 wo ........................................................................................................238
Structure of CANx_EMERGENCY_MESSAGE ....................................84
Structure of CANx_NODE_STATE .......................................................85
Symbols ...............................................................................................237
System description ................................................................................12
System flags ........................................................................................208
16 inputs and 16 outputs (standard side) ................................................... 214
CAN ............................................................................................................. 209
error flags (standard side) ........................................................................... 211
LED (standard side) .................................................................................... 212
SAE-J1939 .................................................................................................. 210
voltages (standard side) .............................................................................. 213
SYSTEM STOP state ............................................................................43
System time .........................................................................................181
System variable ...................................................................................238
System variables ...................................................................................54

242
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Notizen • Notes • Notes

10 Notizen • Notes • Notes

243
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Notizen • Notes • Notes

244
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Notizen • Notes • Notes

245
ifm Programming Manual ecomatmobile ClassicController (CR0032) Runtime System v02.01.06 2015-09-30
Notizen • Notes • Notes

246
11 ifm weltweit • ifm worldwide •
ifm à l’échelle internationale
Version: 2015-03-06 8310

www.ifm.com • Email: [email protected]


Service hotline: 0800 / 16 16 16 (only Germany, Mo-Fr 07.00...18.00 h)
ifm Niederlassungen • Sales offices • Agences
D ifm electronic gmbh Vertrieb Deutschland
Niederlassung Nord • 31135 Hildesheim • Tel. 0 51 21 / 76 67-0
Niederlassung West • 45128 Essen • Tel. 02 01 / 3 64 75 -0
Niederlassung Mitte-West • 58511 Lüdenscheid • Tel. 0 23 51 / 43 01-0
Niederlassung Süd-West • 64646 Heppenheim • Tel. 0 62 52 / 79 05-0
Niederlassung Baden-Württemberg • 73230 Kirchheim • Tel. 0 70 21 / 80 86-0
Niederlassung Bayern • 82178 Puchheim • Tel. 0 89 / 8 00 91-0
Niederlassung Ost • 07639 Tautenhain • Tel. 0 36 601 / 771-0
ifm electronic gmbh • Friedrichstraße 1 • 45128 Essen

A ifm electronic gmbh • 1120 Wien • Tel. +43 16 17 45 00


OFF ifm efector pty ltd. • Mulgrave Vic 3170 • Tel. +61 3 00 365 088
B, L ifm electronic N.V. • 1731 Zellik • Tel. +32 2 / 4 81 02 20
BR ifm electronic Ltda. • 03337-000, Sao Paulo SP • Tel. +55 11 / 2672-1730
CH ifm electronic ag • 4 624 Härkingen • Tel. +41 62 / 388 80 30
CN ifm electronic (Shanghai) Co. Ltd. • 201203 Shanghai • Tel. +86 21 / 3813 4800
CND ifm efector Canada inc. • Oakville, Ontario L6K 3V3 • Tel. +1 800-441-8246
CZ ifm electronic spol. s.r.o. • 25243 Průhonice • Tel. +420 267 990 211
DK ifm electronic a/s • 2605 BROENDBY • Tel. +45 70 20 11 08
E ifm electronic s.a. • 08820 El Prat de Llobregat • Tel. +34 93 479 30 80
F ifm electronic s.a. • 93192 Noisy-le-Grand Cedex • Tél. +33 0820 22 30 01
FIN ifm electronic oy • 00440 Helsinki • Tel . +358 75 329 5000
GB, IRL ifm electronic Ltd. • Hampton, Middlesex TW12 2HD • Tel. +44 208 / 213-0000
GR ifm electronic Monoprosopi E.P.E. • 15125 Amaroussio • Tel. +30 210 / 6180090
H ifm electronic kft. • 9028 Györ • Tel. +36 96 / 518-397
I ifm electronic s.a. • 20041 Agrate-Brianza (MI) • Tel. +39 039 / 68.99.982
IL Astragal Ltd. • Azur 58001 • Tel. +972 3 -559 1660
IND ifm electronic India Branch Office • Kolhapur, 416234 • Tel. +91 231-267 27 70
J efector co., ltd. • Chiba-shi, Chiba 261-7118 • Tel. +81 043-299-2070
MAL ifm electronic Pte. Ltd • 47100 Puchong Selangor • Tel. +603 8063 9522
MEX ifm efector S. de R. L. de C. V. • Monterrey, N. L. 64630 • Tel. +52 81 8040-3535
N Sivilingeniør J. F. Knudtzen A/S • 1396 Billingstad • Tel. +47 66 / 98 33 50
NL ifm electronic b.v. • 3843 GA Harderwijk • Tel. +31 341 / 438 438
P ifm electronic s.a. • 4410-136 São Félix da Marinha • Tel. +351 223 / 71 71 08
PL ifm electronic Sp. z o.o. • 40-106 Katowice • Tel. +48 32-608 74 54
RA, ROU ifm electronic s.r.l. • 1107 Buenos Aires • Tel. +54 11 / 5353 3436
ROK ifm electronic Ltd. • 140-884 Seoul • Tel. +82 2 / 790 5610
RP Gram Industrial, Inc. • 1770 Mantilupa City • Tel. +63 2 / 850 22 18
RUS ifm electronic • 105318 Moscow • Tel. +7 495 921-44-14
S ifm electronic a b • 41250 Göteborg • Tel. +46 31 / 750 23 00
SGP ifm electronic Pte. Ltd. • Singapore 609 916 • Tel. +65 6562 8661/2/3
SK ifm electronic s.r.o. • 835 54 Bratislava • Tel. +421 2 / 44 87 23 29
THA SCM Allianze Co., Ltd. • Bangkok 10 400 • Tel. +66 02 615 4888
TR ifm electronic Ltd. Sti. • 34381 Sisli/Istanbul • Tel. +90 212 / 210 50 80
UA TOV ifm electronic • 02660 Kiev • Tel. +380 44 501 8543
USA ifm efector inc. • Exton, PA 19341 • Tel. +1 610 / 5 24-2000
ZA ifm electronic (Pty) Ltd. • 0157 Pretoria • Tel. +27 12 345 44 49
Technische Änderungen behalten wir uns ohne vorherige Ankündigung vor.
We reserve the right to make technical alterations without prior notice.
Nous nous réservons le droit de modifier les données techniques sans préavis.

247

You might also like