Profinet Io-Device v4 and v5 Protocol API 05 en
Profinet Io-Device v4 and v5 Protocol API 05 en
PROFINET IO-Device
V4.6.0 / V5.4.0
Table of contents
1 Introduction............................................................................................................................................. 7
1.1 About this document ...................................................................................................................... 7
1.2 List of revisions .............................................................................................................................. 7
1.3 Functional overview ....................................................................................................................... 8
1.4 System requirements ..................................................................................................................... 8
1.4.1 System requirements for firmware generation V4 ............................................................................. 8
1.4.2 System requirements for firmware generation V5 ............................................................................. 8
1.5 Target group ................................................................................................................................... 8
1.6 Specification ................................................................................................................................... 9
1.6.1 Technical data ................................................................................................................................... 9
1.6.2 Limitations ....................................................................................................................................... 12
1.7 References to documents ............................................................................................................ 13
2 Getting started ...................................................................................................................................... 14
2.1 Configuration methods ................................................................................................................. 14
2.2 Input and output data conventions ............................................................................................... 14
2.3 Overview of loadable firmware ..................................................................................................... 15
3 Exchanging cyclic data........................................................................................................................ 16
3.1 General concepts ......................................................................................................................... 16
3.2 Behavior regarding I/O data and IOPS ........................................................................................ 17
4 Stack features ....................................................................................................................................... 19
4.1 Structure of the PROFINET IO-Device firmware ......................................................................... 19
4.2 Configuration ................................................................................................................................ 20
4.2.1 Sequence of configuration evaluation ............................................................................................. 20
4.2.2 Configuration lock ............................................................................................................................ 20
4.2.3 Setting Parameters by means of DCP ............................................................................................. 20
4.3 Ethernet MAC addresses ............................................................................................................. 21
4.4 Identification & Maintenance 5 (I&M5) ......................................................................................... 22
4.4.1 API for the use of I&M5 ................................................................................................................... 22
4.4.2 Usage of OEM Vendor ID and OEM Device ID ............................................................................... 23
4.5 Device data .................................................................................................................................. 24
4.6 Status information ........................................................................................................................ 25
4.6.1 Communication state ....................................................................................................................... 25
4.7 Event mechanism......................................................................................................................... 25
4.8 Multiple ARs ................................................................................................................................. 26
4.8.1 Ownership ....................................................................................................................................... 26
4.8.2 Possibilities and Limitations for the Feature Shared Device ............................................................ 27
4.9 Asset Management ...................................................................................................................... 28
4.10 PROFIenergy ASE ....................................................................................................................... 29
4.11 System Redundancy .................................................................................................................... 30
4.11.1 System Redundancy service ........................................................................................................... 31
4.11.2 Application interface ........................................................................................................................ 32
4.11.3 Switchover sequence ...................................................................................................................... 33
4.11.4 Redundancy data hold time (RDHT) ............................................................................................... 37
4.12 Dynamic Reconfiguration ............................................................................................................. 39
4.13 Synchronization signal ................................................................................................................. 47
4.14 Isochronous application ............................................................................................................... 47
4.14.1 Overview ......................................................................................................................................... 47
4.14.2 Isochrounous model ........................................................................................................................ 47
4.14.3 GSDML related parameters............................................................................................................. 48
4.14.4 Isochronous mode data ................................................................................................................... 50
4.14.5 Isochronous Process ....................................................................................................................... 51
4.14.5.1 Output Process ............................................................................................................... 52
4.14.5.2 Input Process.................................................................................................................. 53
4.14.6 netX Synchronization....................................................................................................................... 54
4.14.6.1 Hardware-assisted synchronization ................................................................................ 54
4.14.6.2 Software-assisted synchronization ................................................................................. 57
5 Requirements to the application......................................................................................................... 58
5.1 What the application always has to do......................................................................................... 58
5.2 Device handle .............................................................................................................................. 58
5.3 Handling I/O data ......................................................................................................................... 59
1 Introduction
Compatibility between PROFINET IO-Device firmware and Maintenance Firmware for netX90
This compatibility statement is important for use case C firmware for netX 90 which uses a Flash
file system: To ensure proper usage of Flash sectors during file write operations, a Flash
Translation Layer (FTL) has been integrated in the operating system of the firmware. The Flash file
system layout has changed and is not compatible to earlier versions.
Note: Starting with firmware V5.3.0.0, the firmware requires a Flash file system in the new
format and Maintenance Firmware V1.3.0.0 (or higher).
In case you intent to update the PROFINET IO-Device firmware from version 5.1/5.2 to version 5.3,
this requires
1. to update the Maintenance Firmware to V1.3.0.0 (or higher),
2. to update the PROFINET IO-Device firmware to V5.3.0.0 (or higher) and finally
3. to reformat the file system using a full format request (HIL_FORMAT_REQ).
The full format request is a system service in the PROFINET IO-Device firmware to V5.3.0.0 (or
higher).
1.6 Specification
Feature Value
Maximum number of total cyclic input data 1440 bytes (including IOPS and IOCS)
Maximum number of total cyclic output data 1440 bytes (including IOPS and IOCS)
Maximum number of submodules Depends on the firmware, can be configured via "Number of
configurable submodules" in tag list. Up to 256 in general and may be
smaller number for specific firmware.
Note: If the application uses max. 2 APIs, the "Number of configurable
submodules" can be used. Each further API reduces the total number
of usable submodules by 1.
Multiple Application Relations (AR) Depends on the firmware, can be configured via “Number of additional
IO Connections (ARs)” in tag list. Up to 4 IO-ARs and one Supervisor-
DA AR in general and may be smaller for numbers specific firmware.
Acyclic communication (Record objects) Read/Write Record, max supported size can be configured via taglist.
Alarm types Process Alarm, Diagnostic Alarm, Return Of Submodule Alarm, Plug
Alarm (implicit), Pull Alarm (implicit), Update Alarm, Status Alarm,
Upload and Retrieval Notification Alarm
Diagnosis entries Depends on the firmware, can be configured via “Number of available
Diagnosis buffers” in tag list. Up to 256 application diagnosis records
of type Channel or Extended Channel Diagnosis in general and may
be smaller number for specific firmware.
Identification & Maintenance (I&M) I&M0 Read: Either built in for Slot 0 / Subslot 1 or pass through to
application for any submodule.
I&M1-5 Read/Write: Either built in for Slot 0 / Subslot 1 or pass
through to application for any submodule. I&M4 and I&M5 are
disabled by default.
I&M0FilterData: Either one submodule in Slot 0 / Subslot 1 or if
handled by application, max. 128 submodules.
Topology recognition LLDP, SNMP V1, Physical Device Record Objects
Minimum cycle time (MinDeviceInterval) Firmware generation V4
RT_CLASS_1: 1 ms (min. SendClockFactor 32)
RT_CLASS_3: 250 µs (min. SendClockFactor 8)
Firmware generation V5
netX90 Use case A firmware:
RT_CLASS_3: 250 µs (min. SendClockFactor 8)
netX90 Use case C firmware:
RT_CLASS_3: 1 ms (min. SendClockFactor 32)
Note (Firmware generation V4 and V5): The network cycle time of
250 µs can be used with asynchroneous applications only, which do
not update the dual-port memory on every network cycle.
(Isochroneous) applications are not supported for 250 µs network
cycle time, only for 500 µs, 1 ms, 2 ms and 4 ms.
Media redundancy MRP client
Additional supported features Shared Device
Fast Startup
Asset management
PROFIenergy ASE
Baud rate 100 MBit/s
Feature Value
Data transport layer Ethernet II, IEEE 802.3, MAUType 16
PROFINET IO specification V2.4, PNIO_Version 2.41
legacy startup of specification V2.2 is supported
Conformance Class C
Application IP stack API The lwIP IP stack can be used by the application via Socket API
Packets. The number of sockets available to the Application as well
as the number of parallel useable services can be configured via
taglist.
Application Raw Ethernet API Sending and Receiving Raw Ethernet Frames as Application is
supported.
Minimum RDHT (SystemRedundancy only) 200 ms
TCP ports 80 (webserver), default
UDP ports 161 (SNMP)
25383 (Hilscher netIdent)
34964 (PROFINET RPC Endpointmapper)
49152 (PROFINET RPC Device)
Table 2: Technical data
The maximum values for number of submodules, Multiple Application Relations, Acyclic
communication, and Diagnosis entries are configuration parameters in the tag list of a firmware.
Each of these features require resources and have to be set in order to not exceed the available
resource (e.g. RAM) of a device.
The same applies for the socket related quantity structures to be used by application which is part
of the tag list as well.
All these configuration parameters compete with each other against the same limited available
memory.
netX Available with standard Available with standard feature set and
feature set additional features System Redundancy
and Dynamic Reconfiguration
netX 50 no no
netX 51 yes yes
netX 52 yes no
netX 90 no no
netX 100 yes yes
netX 500 yes yes
Table 3: Availability of PROFINET IO-Device stack V4
netX Available with standard Available with standard Available with standard feature set and
feature set feature set for single port additional features System Redundancy
and Dynamic Reconfiguration
netX 50 no no no
netX 51 no no no
netX 52 no no no
netX 90 yes yes yes
netX 100 no no no
netX 500 no no no
Table 4: Availability of PROFINET IO-Device stack V5
PROFINET IO-Device stack including the features System Redundancy and Dynamic
Reconfiguration
The PROFINET IO-Device firmware including the features System Redundancy and Dynamic
Reconfiguration additionally support:
Feature Value
Additional supported features System Redundancy: S2 – single NAP, min. RDHT 200 ms
Dynamic Reconfiguration
Table 5: Technical data (additional features)
1.6.2 Limitations
RT over UDP not supported.
Multicast communication not supported.
Only one device instance is supported.
DHCP is not supported.
The amount of configured IO-data influences the minimum cycle time that can be reached.
Only 1 Input-CR and 1 Output-CR per AR are supported.
The amount of usable submodules is reduced by 1 for each used different API (in case more
than 2 APIs are used in parallel).
Little endian byte order not supported.
System Redundancy (SR-AR) and Dynamic Reconfiguration (formerly known as
Configuration-in-Run, CiR) are not supported. (*)
The usage of PROFINET CombinedObjectContainer
is not supported at all (for standard firmware)
is not supported for user application parameters (for SystemRedundancy enabled
firmware) (*)
SharedInput is not supported.
MRPD is not supported.
DFP and other HighPerformance-profile related features are not supported.
Submodules cannot be configured or used by an AR in subslot 0.
The stack does not support usage of PDEV submodules (InterfaceSubmodule or
PortSubmodule) outside of slot 0. In addition the InterfaceSubmodule is only supported in
subslot 0x8000 and the PortSubmodules are only supported in subslots 0x8001 and 0x8002.
In case of using a firmware including the feature System Redundancy, the combination of the
features “System Redundancy” and “Shared Device” is not supported. Recommendation: Set
“NumberOfAdditional IO ARs” in tag list to 1.
Applications implementing an application profile with a defined API != 0 (e.g. Profidrive, IO
Link) need to handle I&M data on their own.
FiberOptic Ethernet Physics are not supported. Neither Profinet specific “POF” nor real
optical fiber is supported. Only copper-based Ethernet 100BASETXFD (MAUType 16) is
supported.
Configuration with iniBatch configuration file (inibatch.nxd) is not supported. This
configuration file is generated by configuration software “netX Configuration Tool” that is not
supported.
(*) A separate PROFINET IO-Device firmware is available that support the features System
Redundancy and Dynamic Reconfiguration. To use the firmware requires a separate license
agreement.
Firmware with “Standard feature set and additional features System Redundancy and Dynamic
Reconfiguration”
[10] PROFIBUS International: System Redundancy, Common profile for PROFINET, Order No.
7.122.
2 Getting started
2.1 Configuration methods
The PROFINET IO Device stack requires configuration parameters. The stack offers the following
configuration methods:
The application can set the configuration parameters using the Set Configuration service to
transfer the parameters within one (or serveral) packets to the stack.
You can use SYCON.net configuration software to set the configuration parameters.
However, this is not supported in the following cases:
netX 52-based loadable firmware
netX 90 use case A firmware
Note: The table above only lists the file names of loadable firmware for NXLFW-PNS and
NXLFW-PNS SR products and does not list the loadable firmware for CIFX, COMX
products, etc.
Important: Due to the concept of a cyclic process data image, we strongly recommend designing
the application in a way that the consumer data can be read cyclically and that the
provider data can be written regardless of the state of communication. If no
communication is active, the stack will set the consumer data to zero.
Note: If the application cannot be designed in a way that the process data can be read or
written cyclically or if the cycle is slow (larger than 50 ms), the consumer data must be
read when the PNS_IF_IO_EVENT_CONSUMER_UPDATE_REQUIRED occurs, and the
provider data must be written when the
PNS_IF_IO_EVENT_PROVIDER_UPDATE_REQUIRED event is signaled.
Important: The application has to use the IOXS interface (Set IOXS Config service on page 99 to
be able to detect invalid data because zero values can also be valid data.
IOPS Description
Bits 5 and 6 - Instance These bits indicate the instance that has detected the invalid data.
If DataState is set to good, bits 5-6 can be ignored.
00 - Detected by subslot.
01 - Detected by slot.
10 - Detected by IO-Device.
11 - Detected by IO-Controller.
Bit 7 - DataState 0 - Bad, data not valid.
1 - Good, data is valid.
Table 9: IOPS - DataState – mode Bytewise
4 Stack features
AP task
The DPM interface of the PROFINET IO-Device.
4.2 Configuration
The stack uses the MAC addresses from the Device Data Provider (DDP) which is part of the
operating system. The DDP uses the following sources:
Flash Device Label: The stack reads all MAC addresses from the Flash Device Label
located in the Flash memory (either integrated in netX 90 or attached to netX 51 or netX 52)
and uses them. A Flash Device Label offers up to four (netX 51 and netX 52) or eight (netX
90) MAC addresses.
Application: The application can change each MAC address using the Device Data Provider
Set service before configuring the firmware. In this case, the following prerequisites must be
met: The tag list parameter “DDP mode” in the firmware file must be set to “passive” and
downloaded to the device. The application can use the Device Data Provider Set service only
if the Device Data Provider is in the state “passive”. For more details about the Device Data
Provider state, see reference [8] (on page 13).
Security Memory (firmware generation 4 only): The operating system reads the (start)
MAC address from the Security Memory. Up to four MAC addresses are available: the start
MAC address and the three following MAC addresses (start MAC address + 1, start MAC
address + 2, and start MAC address + 3).
Minimal applications
do not use mailbox-based communication,
perform configurations via database (generated e.g. by SYCON.net),
use startup parameters to set OEM Vendor ID and OEM Device ID.
For LFW applications, a special tool is available for adjustment of startup parameters.
Note: For general information on the PROFINET IO feature Information and Maintenance
(I&M), see references [2] and [3] (on page 13).
The Flash Device Label offers the possibility to store OEM-specific device data. The following table
lists the mapping of the OEM-specific device data to PROFINET.
Note: If OEM-specific device data is required to be used, all enabling bits (bits 0 – 3) have to
be set. It is not possible to set a single parameter only, all parameters have to be set
simultaneously.
State Description
OFFLINE The IO Device has no valid configuration.
STOP The IO Device has no communication to the IO Controller. Connection
establishment is not in progress. The Bus state of the IO Device may be
set to on or off.
IDLE The communication establishment is in progress (at least one CMDEV
state is > W_CIND and no CMDEV state is INDATA).
OPERATE The I/O connection is established and valid I/O data is exchanged
between the Controller and the Device (at least one CMDEV state is
INDATA).
Table 13: Communication state
4.8.1 Ownership
The PROFINET Device stack supports multiple ARs at the same time. This allows you to use
several controllers to access different output or input submodules of one device at the same time.
In term of the PROFINET specification this is called Shared Device. Of course, a Shared Output is
not defined as it makes no sense to access an output submodule from more than one controller at
the same time. In order to solve the problem of which controller gets the right to write the outputs of
a submodule and perform parameterization, the PROFINET specification V2.3 defines a new state
machine, the Ownership-State machine (OWNSM). Depending on the submodule-specific
Ownership, the following access rights are defined:
AR is the owner of the submodule: The submodule puts its input process data to this AR,
takes the output process data from this AR and accepts parameter read and writes on this
AR.
AR is not the owner of the submodule: The submodule ignores output process data from
this AR and rejects parameter reads and writes on this AR.
The ownership itself is assigned according to the rule “First Come First Serve” e.g. the first AR will
get the ownership of all requested submodules, the second AR will get the ownership of requested
submodules not already owned by the first AR. If the first AR is disconnected, the second AR will
get the ownership of all requested submodules not yet assigned to this AR (This is called a
Release). There is only one exception from this rule: If a Supervisor AR connects, it takes over the
ownership of all requested submodules if the owning ARs allow Ownership Takeover (Depends on
AR Properties in Connect.req of the AR). Furthermore, if a Supervisor AR is active and was not
allowed to take over the ownership of a submodule and the owning AR disconnects, the Supervisor
AR will always get the ownership of the submodule (Supervisor AR has higher Priority than “First
Come First Serve” Principle).
Note: The multi AR feature renders the definition of a “communicating state” ad absurdum.
The application usually has no information about which of the submodules is used by
any AR. Therefore it is strongly recommended to cyclically update the process data
from/to the physical submodules, regardless of any communication state. If the
application insists on knowing if a submodule is in data exchange or not, the IOxS
status of the submodule should be examined.
Note: When using PROFINET IRT it is not possible to use Shared Device for IRT.
The netX-based IO-Device only supports exactly 1 IRT IO AR. Additional RT IO ARs are possible.
Note: As each netX chip type has different calculation power this chapter differs the netX chip
type.
For the following tables it is assumed that two 20 byte input submodules and two 20 byte output
submodules are used per IO AR.
Please note, that the amount of submodules influences the reachable cycle time.
The stack supports the System Redundancy feature as defined by the PROFINET specification
V2.34.
System Redundancy ensures a reliable and smooth communication between IO-Controller
application and IO-Device application in case of a controller failure or during maintenance. For
detailed information on PROFINET System Redundancy, refer to reference [10].
Number of ARs
To support System Redundancy, the device must support at least two ARs. For the value in
GSDML NumberOfAR and the tag list parameter “Number of additional IO connections”, see
section PROFINET tag list parameter (page 268).
The resources of the ARset (including resources of the two SR-ARs) are reserved as soon as the
first SR-AR is established, i.e. if NumberOfAR is set to 2, the device will reject the AR
establishment of a new IO-AR even if only one SR-AR is established.
Note: The combination of the features “System Redundancy” and “Shared Device” is not
supported. Recommendation: Set “NumberOfAdditional IO ARs” in tag list to 1.
Device type
The Hilscher stack supports only device type S2.
Explanation:
The connection establishment of the first SR-AR is identical to the connection establishment
of an IO AR expect the AR type value.
The stack does not report the connection establishment of the second SR-AR to the
application.
Only one device handle is used for both SR-ARs, independently of which SR-AR is currently
the primary one.
The stack informs the application about ARset status changes (e.g. if primary SR-AR exists)
and the amount of established SR-ARs using ARset Status Indication service.
Note: The application must update its provider data even if no Primary exists!
Note: SR Events (e.g. PrimaryReq, BackupReq) are transferred cyclically. Changes of its
value leads to an internal stack event.
Switch to primary
In case of a transition from backup to primary:
The IO-Controller sends a primary request to start the transition.
The IO-Device always uses the SR-AR with the most recent primary request as primary SR-
AR.
The primary SR-AR now has the full ownership privileges:
Access to I/O data
Write record data requests are allowed
Alarms are no longer blocked
The application has to update the input data (provider data) before acknowledging the primary
request.
Switch to backup
In case a transition from primary to backup, which happens if the IO-Controller forces it or if a
failure of the primary SR-AR occurs:
Output data (consumer data) is frozen and still valid
The RDHT is running because no primary SR-AR exists
If the RDHT expires, the error “RDHT expired” will abort the (whole) SR-ARset.
Note: In this case, the stack does not report any indication to the application because the
ARset status has not been changed: It is still primary.
Figure 7: PrimaryFault
The stack supports the Dynamic Reconfiguration (DR) feature as defined by the PROFINET
specification V2.34. Dynamic Reconfiguration uses the features
Parameter Begin service for changes of device parameters during operation.
Dynamic Reconfiguration service for changes e.g. of elements that have failed to work or
communication parameters during operation.
Dynamic Reconfiguration allows a change of application relationship configuration such as AR
parameters, selected submodules, and its parameters.
During the DR sequence, the IO Controller uses the PrmBegin service to change the parameters
being related to AR and submodules.
For detailed information on the Dynamic Reconfiguration feature, refer to reference [!!!].
Initial state
Prerequisite for starting a DR sequence is that two SR-ARs have been established and that one of
them has the status Primary.
Step 1
The IO Controller application releases the backup SR-AR
Step 2
The previously released backup SR-AR will now be established using a different AR configuration
(ConfigID2). The primary SR-AR (Controller 1) still controls the IO-Device.
During establishment of the new SR-AR, the IO-Device does not report configuration changes to
the application.
Step 3
Now, when the SR-AR with the new configuration (ConfigID2) is completely established, the IO
Controller application initiates a switchover. The new SR-AR becomes the new primary and the
other SR-AR the backup.
Step 4
The following steps will be performed only if the submodule configuration is changed.
The IO Device will check the expected submodules and perform the appropriate action if a change
is detected.
Step 4.1
If a submodule is added to the SR-ARset configuration:
Step 4.2
If a submodule is removed from the SR-ARset configuration:
Step 4.3
If a submodule is exchanged:
Step 5
The IO Controller application uses PrmBegin sequence to change submodule parameters.
Step 6
Finally, the IO Controller application releases the backup SR-AR (ConfigID 1)
From the point of view of the IO Controller application, the DR sequence is finished.
Note: This chapter uses the descriptive conventions given in section Input and output data
conventions (page 14).
The figure above shows an isochronous process where the sampling times of the inputs (1) and
and update times of the outputs (8) are synchronised through the IO-Device application and the IO-
Controller application.
The inputs are acquired and processed by the device application and then sent to the controller
whose application calculates the new output values (may be also forwarded to other IO-Devices in
case of an isochronous distributed application).
Steps 4, 5 and 6, which are part of the IO-Controller isochronous process. The following sections
do not consider these steps further.
Note: A precondition for isochronous operation is IRT communication (RTC3), where data
exchange is synchronized at reserved time interval (red phase).
CertificationInfo
ApplicationClass "Isochronous" shall containns the token "Isochronous" if the applikation supports
isochronous operation and at least one of the configurable
submodules may be operated synchronously.
DeviceAccessPoint
IsochroneModeInRT_Classes “RT_CLASS_3” Has to contain the token "Isochronous" if the applikation supports
isochronous operation and at least one of the configurable
submodules may be operated synchronously.
IsochroneMode
T_DC_Base 1 ... 1024 The time factor for the application cycle granularity. The Time Data
Cycle Base is specified in multiples of 31.25 microseconds.
The smallest possible value has to be declared.
Time Data Cycle = T_DC_Base * 31.25 microseconds
T_DC_Min 1 ... 1024 The time factor for the smallest possible application data cycle.
The Time Data Cycle Minimum is specified in multiples of
T_DC_Base.
Time Data Cycle Minimum =
T_DC_Min * T_DC_Base * 31.25 microseconds
T_DC_Max 1 ... 1024 The time factor for the largest possible application cycle. The Time
Data Cycle Minimum is specified in multiples of T_DC_Base.
Time Data Cycle Maximum =
T_DC_Max * T_DC_Base * 31.25 microseconds
T_IO_Base 1 ... 32000000 The time factor for the granularity for the devices input/output delay
time in units of 1 nanosecond. It is the time base of following
parameters: T_IO_Input, T_IO_Output (parameters of Isochronous
Mode Record).
T_IO_InputMin, T_IO_OutputMin.
The smallest possible value has to be declared. Time IO Base =
T_IO_Base * 1 nanosecond
T_IO_InputMin 1 ... 32000000 The time factor for the smallest possible time that is necessary to
get and update the input values of an individual input submodule,
in units of T_IO_Base.
Time IO Input Minimum =
T_IO_InputMin * T_IO_Base * 31.25 microseconds
T_IO_OutputMin 1 ... 32000000 The time factor for the smallest possible time that is necessary to
get and update the output values of an individual output
submodule, in units of T_IO_Base. T_IO_OutputMin is releated to
the start of the next data cycle.
Time IO Output Maximum =
T_IO_OutputMax * T_IO_Base * 31.25 microseconds
sochroneModeRequired True, False This attribute indicates whether the related submodule may only be
operated in isochronous mode.
Table 16: Isochronous mode specific GSDML parameters
Data
Slot number Unsigned16 1 ... 0xFFFF The slot the addressed submodule is assigned to. 0xDF80B200
Subslot Unsigned16 1 ... 0xFFFF The subslot the addressed submodule is assigned to. 0xDF80B200
Number
Controller Unsigned16 1 ... 1024 The time factor for the IO-Controller application cycle 0xDF80B800
Application time that is necessary to process input and output
Cycle Factor data (isochronous task) in units of T_DC.
(CACF) IO-Controller application cycle = CACF * T_DC
Time Data Unsigned16 1 ... 1024 The time factor for the data cycle in units of 0xDF80B800
Cycle (T_DC) 31.25 ms.
Data Cycle = T_DC * T_DC_Base * 31.25 ms.
Time IO Input Unsigned32 1 ...32000000 The point of time when the input values has to be 0xDF80B800
fetched in units of T_IO_BASE.
Time IO Input is related to the start of the next data
cycle.
Time IO Ouput Unsigned32 1 … 32000000 The point of time when the output values are taken 0xDF80B800
over in units of T_IO_BASE.
Time IO Ouput is related to the start of the "current"
data cycle.
Time IO Input Unsigned32 1 ... 32000000 The point of time when the input values has to be 0xDF80B80
Valid available for sending in units of T_IO_BASE.
Time IO Input Valid is related to the start of the next
data cycle.
Time IO Ouput Unsigned32 1 ... 32000000 The point of time when the output values are 0xDF80B800
Valid available for processing in units of T_IO_BASE. Time
IO Ouput Valid is related to the start of the "current"
data cycle.
Table 17: Structure of Isochrone Mode Data Record
Note: PNIO Status has to be set according to [ErrorCode1 and ErrorCode2 for ErrorDecode
= PNIORW].
Instead of “Invalid Parameter” (0xDF80B800) the application may also use the error code
“Invalid Range” (0xDF80B700).
Note: All Ouput-timings are related to the start of the "current" Data Cycle.
Note: The outputs are applied exactly at the time instant T_IO_Output (6), independently on
the point in time when they are get valid at the Application process.
Step Description
1 Processing of output data in the isochronous application of the IO-Controller
2 After IRT red phase (after reciving IRT Frames) output data is forwarded to profinet stack for further
processing. The time needer for is called “IO Input Valid”
3 Process and copy output data into the consumer data image of DPM
4 Toggel the DPM handshake flag to confirm the update of output data
5 The point of time when the new output data get be available to process
6 At the point of time, the output values get valid. This step includes e.g digital- analog conversion and
transferring the data to the peripheries or on a back plane bus for internal processing
Table 18: The individual steps of the ouput process within the isochronous application
Note: All input-timings are related to the start of the next Data Cycle.
Note: The inputs are read exactly at the same time instant T_IO_Input (1), independently on
the point in time when they are sent to the Controller as the input values.
Step Description
1 At this point (releated to the start of the next data cycle) the application should acquire mesuered values from
available input modules and peripheries
2 Point of time to process the input values to prepare it for transmission
3 Toggel Output handshak to transfer cyclic output data from isochronous application to the profinet stack
4 The point of time when the new input data get be available to further process at the level of the
communication interface.
5 The time at which the new input data shall be available to transfer to IO-Controller. It will be transmitted at the
begginnig of the next cycle time
6 Input data will be processed by the isochronous task at the IO-Controller application
Table 19: The individual steps of the input process within the isochronous application
Note Due to the considerable jitter, DPM Sync handshakes have to be used for informative
purposes only, i.e. as a supplement to the hardware synchronization.
By default, xC trigger signals will be cnfigured and started automatically by the PROFINET stack at
start up using the following default settings:
Variable Defualt value Description
ulCycleTime 4 ms "xC Trigger 0" and "xC Trigger 1" Sync signals are triggered in a cycle of 4 ms if
no Sync Data available.
ulOffset 0 The signal is fix generated at the begin of a network cycle
Table 21: Default configuration of trigger events
Once the application configures the trigger unit, the automatic reconfiguration of trigger events by
stack is disabled.
Synchronization pins
The physical synchronization pins are activated in any type of the application. The physical signals
for "xC Trigger 0" and "xC Trigger 1" are available on the netX pins. netX 51 and netX 90 can
provide synchronization pins on any MMIO pin according to the configuration of the multiplex
matrix:
Signal Signal name Multiplex Matrix Configuration
netX 100 and netX 500
For more details, see [4] and the appropriate chapter of the Programming reference guide of the
respective chip.
Note The length of impulse on the physical synchronization pins "XC Trigger 0" and "xC
Trigger 1" is not configurable. The default used impulse length is 31.25 µs.
An example how the sync signals are generated by using the following Trigger Event
Configuration:
Variable xC Trigger 0 xC Trigger 1
ulCycleTime 1ms 1ms
ulOffset 200us 600us
Table 23: Example of the configuration of trigger events
Note: DPM Sync Handshakes might only be generated if the Sync Trigger Event is
configured see section Set Trigger Type service (page 103).
Requirements
For PNSV4:
a non-volatile memory has to be connected to the netX
a Flash-based file system
For PNSV5: The protocol stack requires access to non-volatile memory. For netX 90, the internal
non-volatile memory is used.
Configuration
In the tag list “Remanent Data Responsibility” the tag “Remanent Data stored by Host” has to be
set to disabled in the firmware file. This is the default setting in a firmware.
Requirement
For PNSV4: The application has to use the Load Remanent Data service (page 101) and to
support the Store Remanent Data service (page 136).
For PNSV5: The application has to use the Channel Component Information service
(GENAP_GET_COMPONENT_IDS_REQ) to get the information about the required size for remanent
data of each protocol stack component. The application has to use the Set Remanent Data service
(HIL_SET_REMANENT_DATA_REQ) and to support the Store Remanent Data service
(HIL_STORE_REMAMENT_DATA_IND).
Firmware configuration
In the tag list “Remanent Data Responsibility” the tag “Remanent Data stored by Host” has to be
set to enabled in the firmware file.
Configuration
For PNSV4: The application has to send the Load Remanent Data service to the stack, before the
application sends the Set Configuration service.
For PNSV5: The application has to use the Set Remanent Data service
(HIL_SET_REMANENT_DATA_REQ) to provide the remanent data to each protocol stack
component any time the host application starts up for the first time (e.g. if coming from power up)
and before the application sends the Set Configuration service on page 69. For a sequence
diagram, see section Configuring the PROFINET IO-Device stack (page 67).
During runtime
For PNSV4: The stack indicates to the application the Store Remanent Data service and provides
the remanent data as a block towards the application. The application has to store the remanent
data with each indication.
For PNSV5: The stack component indicates to the application the Store Remanent Data service
(HIL_STORE_REMAMENT_DATA_IND) each time remanent data has been changed. The stack
component provides the remanent data as a block towards the application. The application has to
store the remanent data with each indication.
6 Application interface
Note: In order to simplify the host application development, the default configuration of the
Hilscher PROFINET Device stack uses an operation mode where it assumes valid data
whenever the DPM Output Area/Provider Data Area is updated. If explicit provider
and/or consumer status processing is required, the application developer has to
configure the stack using the Set IOXS Config service (page 99).
Note: Remind that process data sent to the PROFINET IO Controller, which is typically called
Inputs, is to be placed within the DPM output area. This naming issue might lead to
confusion.
Note: Remind that process data received from the PROFINET Controller, which is typically
called Outputs is to be placed within the DPM input area. This naming issue might lead
to confusion.
The red color indicates data associated with input submodules. Slot 0 refers to the DAP and PDEV
submodules which are also input submodules and must always be present.
Note: If the host application uses consumer data states, it is important to understand that the
consumer data state of a submodule is to be placed in the opposite process data
image compared to the process data itself. This is because the consumer data states
act as a kind of confirmation for the sender of the data by the receiver.
In order to configure the structure of the process data image, the following steps must be
performed:
1. This step is optional and only required if the process data states of the provider and/or
consumer are prepared by the host application. This step enables the IOPS and/or IOCS
blocks, which are disabled by default. If these blocks are used, the host application must
configure the start offsets of them. These offsets are specified relative to the beginning of
the corresponding process data image. For this purpose, the application can use Set IOXS
Config service. These offsets are specified in units of bytes.
2. This step of configuring the process data images is to specify the location of the process data
and the data states within their corresponding areas. These parameters are part of the Set
Configuration service (page 69) and/or Plug Submodule service. Always specify the offset of
the process data in bytes relative to the beginning of the corresponding process data
memory. The offsets of the data states are always relative to the beginning of the
corresponding data state block. These offsets are either in units of bytes or in units of bits.
This depends on the mode configured in the step before.
Note: After the application has sent the Set Configuration request to the stack, the application
must send a Channel Initialization request (ChannelInit) to the protocol stack in order to
confirm the validity of the new configuration. The stack will use the changed
configuration only after it has received the Channel Initialization request.
Packet description
Overview
The packet data contains
Length information
Device parameter, structure PNS_IF_DEVICE_PARAMETER_T containing system flags, ids,
Name of Station, …
Module configuration
Number of APIs, structure PNS_IF_MODULE_CFG_REQ_DATA_T
API definition for first API, structure PNS_IF_API_STRUCT_T
Submodules for first API, array of structure PNS_IF_SUBMODULE_STRUCT_T[n] (n
submodules)
Optional: API definition for second API, structure PNS_IF_API_STRUCT_T
Optional: Submodules for second API, array of structure
PNS_IF_SUBMODULE_STRUCT_T[]
Optional: Further APIs with both "API definition" and "submodules"
Device parameter
tDeviceParameters has the following structure:
typedef __HIL_PACKED_PRE struct PNS_IF_DEVICE_PARAMETER_Ttag
{
uint32_t ulSystemFlags; /** flags to use are defined in this file */
uint32_t ulWdgTime; /** DPM watchdog time*/
uint32_t ulVendorId; /** the Vendor ID */
uint32_t ulDeviceId; /** the Device ID */
uint32_t ulMaxAr; /** currently unused */
uint32_t ulCompleteInputSize; /** max. combined amount of Input bytes */
uint32_t ulCompleteOutputSize; /** max. combined amount of Output bytes */
uint32_t ulNameOfStationLen; /** length of NameOfStation */
uint8_t abNameOfStation[PNS_IF_MAX_NAME_OF_STATION]; /** the NameOfStation */
uint32_t ulTypeOfStationLen; /** length of TypeOfStation */
uint8_t abTypeOfStation[PNS_IF_MAX_TYPE_OF_STATION]; /** the TypeOfStation */
uint8_t abDeviceType[PNS_IF_MAX_DEVICE_TYPE_LEN +3]; /** the DeviceType - ignore the
last 3 padding bytes ! */
uint8_t abOrderId[PNS_IF_MAX_ORDER_ID]; /** OrderID, set to 0 */
Note: The “Number of configurable submodules” configured via the tag list depends on the
number of used APIs: If the application uses max. 2 APIs, the “Number of configurable
submodules” can be used. Each further API reduces the total number of usable
submodules by 1.
ulDPMOffsetOut uint32_t Offset in DPM output area or in Output image (in pbProvImage, see Set
IO Image service) where provided data of the submodule are taken from.
This data is sent by the IO-Device and received by the IO-Controller.
Set this value to 0, if ulProvDataLen is 0.
usOffsetIOPSProvider uint16_t Offset of the IO provider state (provider) for this submodule. The offset is
relative to the beginning of the IOPS block in DPM output area. Note 12
usOffsetIOPSConsumer uint16_t Offset of the IO provider state (consumer) for this submodule. The offset is
relative to the beginning of the IOPS block in the DPM input area. Note 2
usOffsetIOCSProvider uint16_t Offset of the IO consumer state (provider) for this submodule. The offset is
relative to the beginning of IOCS block in DPM output area. Note 2
usOffsetIOCSConsumer uint16_t Offset of the IO consumer state (consumer) for this submodule relative to
the beginning of the IOCS block in DPM input area. Note 2
ulReserved uint32_t 0 Reserved for future use. Set to zero.
Note 1: If the IOPS mode is set to “bitwise mode”, the application has to ensure that the offset addresses do not
overlap. The stack will not check them for overlapping in this mode.
Note 2: If the IOCS mode is set to “bitwise mode”, the application has to ensure that the offset addresses do not
overlap. The stack will not check them for overlapping in this mode.
Table 29: Structure PNS_IF_SUBMODULE_STRUCT_T
If you configure more than one API (m > 1), then one PNS_IF_API_STRUCT_T and an array
PNS_IF_SUBMODULE_STRUCT_T[n] has to follow for each additional API. The value n can be set
individually for each API.
Packet description
Note: The new configuration is not processed until a channel init is performed!
If the user application is registered at the protocol stack, it will receive the following indications (if
the event triggering any of these indications occurs):
Save Station Name indication (page 152)
Save IP Address indication (page 154)
Reset Factory Settings service (page 157)
AR Check indication (page 117)
Check Indication (page 122)
Connect Request Done indication (page 126)
Parameterization Speedup Support indication (page 184)
Parameter End indication (page 129)
Store Remanent Data Indication
AR InData indication (page 134)
APDU Status Changed indication (page 161)
Read Record indication (page 139)
Write Record indication (page 144)
Read I&M indication (page 167)
Write I&M indication (page 173)
Alarm Indication (page 163)
AR Abort Indication (page 149)
Start LED Blinking service (page 155)
Stop LED Blinking indication (page 156)
Link Status Changed Indication (For PNSV4, see reference [7]. For PNSV5, see reference
[8])
Error Indication (page 166)
Event Indication (page 185)
Note: It is required that the application returns all indications it receives as valid responses to
the stack. Especially, it is not allowed to change any field in packet header except
ulSta, ulCmd, ulLen, and in case of fragmentation ulExt. Otherwise, the stack will
not be able to handle and assign the response successfully.
For a description of this service, see reference [8] (on page 13).
After Register Application, the stack will send a Link Status Changed Indication to the application
(see Figure 26 on page 80).
Note: This service has to be used before using the Set Configuration service (page 69) to
configure the stack if stack is not configured with database.
Note: If the firmware is configured with database, the two following rules must also be met:
1. The database has to contain the option “Start behavior” set to “application
controlled”.
2. This service has to be used before setting “Bus On”.
Note: This packet must be sent prior to the Set Configuration Service packet if stack is not
configured with database, otherwise it will be rejected and the well-defined Hilscher
default values will be used.
Note: If the firmware is configured with Sycon.net, the two following rules must also be met:
1. The database must use the option "application controlled startup".
2. This service has to be used before setting "Bus On".
Packet description
/* Request packet */
typedef __HIL_PACKED_PRE struct PNS_IF_SET_OEM_PARAMETERS_TYPE_1_Ttag
{
uint8_t abSerialNumber[16];
uint16_t usProfileId;
uint16_t usRevisionCounter;
uint16_t usProfileSpecificType;
} __HIL_PACKED_POST PNS_IF_SET_OEM_PARAMETERS_TYPE_1_T;
#define PNS_IF_SET_OEM_MINDEVICE_INTERVAL_MIN 8
#define PNS_IF_SET_OEM_MINDEVICE_INTERVAL_MAX 4096
#define PNS_IF_SET_OEM_MINDEVICE_INTERVAL_IRT_MAX 32
Coding of ulIMFlag
Bit Description
D0 Set to 1 using PNS_IF_STACK_HANDLE_IM_1 to enable I&M1 data set.
I&M1 always has to be enabled.
D1 Set to 1 using PNS_IF_STACK_HANDLE_IM_2 to enable I&M2 data set.
I&M2 always has to be enabled.
D2 Set to 1 using PNS_IF_STACK_HANDLE_IM_3 to enable I&M3 data set.
I&M3 always has to be enabled.
D3 If this flag is set using PNS_IF_STACK_HANDLE_IM_4, the stack will enable I&M4 data set.
0 = I&M4 data set is disabled.
1 = I&M4 data set is enabled.
D4 If this flag is set using PNS_IF_STACK_HANDLE_IM_5, the stack will enable I&M5 data set.
0 = I&M5 data set is disabled.
1 = I&M5 data set is enabled.
D5 – D15 Reserved, set to zero.
Table 35: Coding of ulIMFlag
Note: This service is intended to be used by Isochrone Mode applications for IRT.
Note: The application can use this service only if the stack is in state unconfigured.
IRT mode
In case of IRT operation of the IO Device, the stack uses the “cycle counter” value from the last
received frame of the IO Controller for the “current local cycle counter” before copying it into the
input data memory. In case of error (e.g. no cyclic frame received), the stack copies an
incremented value of the “current local cycle counter” to the input data memory. As soon as the
communication returns to normal operation, the stack continues to use the “cycle counter” value
from the last received frame of the IO Controller for the “current local cycle counter”.
Note: In IRT operation mode, the “current local cycle counter” is equal to the “cycle counter”
of the IO Controller. Thus in IRT operation mode the cycle counter represents the
“current IRT cycle” counter at any time.
RT mode
Note: In case of RT operation of the IO Device, the value of the “current local cycle counter”
is NOT identical to the “cycle counter” of the IO Controller. This service is not useful for
RT mode.
Note: In case this service is active, a ChannelInit will not deactivate this service. To
deactivate this service, the application has to write offset 0xFFFF.
Note: If the application wants to change the offset address, the application has to write offset
0xFFFF to deactivate this service first. Afterwards, the application can write the new
offset value and reactivates this service.
Note: The application can use this service only if the stack is in state unconfigured.
IO Supervisor Device Access AR: By default, the stack supports “IO Supervisor DA AR”, even if
“IO Supervisor AR support” is disabled. The “IO Supervisor DA AR” can be disabled separately via
the tag list parameter “Number of parallel DA ARs”.
Note: This service is available only in a firmware/stack which includes the features System
Redundancy and Dynamic Reconfiguration. For an overview, see section Overview of
loadable firmware (page 15).
Note: The application can use this service if the stack is configured with a database file, the
start behavior is set in the database “Application Controlled Startup” and bus
communication is still deactivated (bus-off).
Using this service in combination with mailbox configuration (via Set Configuration
Service) is not intended).
Note: All PROFINET Security Classes require signed GSDML files in order to fullfil the
requirement of the Security Class. It is not sufficient to simply enable the Security Class
in the firmware. In addition, the Device vendor needs to sign its GSDML file
accordingly.
Packet description
Packet description
uint32_t ulIOCSMode;
uint32_t ulConsImageIOCSOffset;
uint32_t ulReserved2;
uint32_t ulProvImageIOCSOffset;
} __HIL_PACKED_POST PNS_IF_SET_IOXS_CONFIG_DATA_T;
Packet description
Note: The request may be rejected by the stack with error code “invalid length” or “invalid
parameter version” after a firmware update. The remanent data contains a fingerprint of
the firmware version and its content may change in future versions of the stack. To
avoid problems with invalid parameters this security check was implemented.
In this case, the application has to continue with startup and ignore the return value.
Important: This packet must be sent prior to the Set Configuration request packet, otherwise this
packet will be rejected and the default values will be used.
Important: This packet must be sent to the stack either once or never at all. Multiple use of this
packet is not allowed.
Packet description
Packet description
Note: The Please not that the configuration of the consumer and provider data update trigger
mode are restricted. The Profinet stack does not support the time synchronisation of
Input and Output Tigger modes (HIL_TRIGGER_TYPE_PDOUT_TIMED_LATCH,
HIL_TRIGGER_TYPE_PDIN_TIMED_ACTIVATION).
Note: Please note that the protocol stack only support the Host controlled Mode. In this case,
the host application initially has access to DPM area and therefore has to request the
trigger event on every cycle so that the events can be triggered by the stack as
expected
The application has to set three parameters for controlling the triggering of the handshake, namely
usPdInHskTriggerType, usPdOutHskTriggerType and usSyncHskTriggerType.
The following table lists the values the application can use with the PROFINET IO-Device stack.
Parameter Supported by the PROFINET IO-Device stack
usPdInHskTriggerType HIL_TRIGGER_TYPE_PDIN_NONE (only for PNSV5)
HIL_TRIGGER_TYPE_PDIN_RX_DATA_RECEIVED
usPdOutHskTriggerType HIL_TRIGGER_TYPE_PDOUT_NONE (only for PNSV5)
HIL_TRIGGER_TYPE_PDOUT_READY_FOR_TX_DATA
usSyncHskTriggerType HIL_TRIGGER_TYPE_SYNC_NONE
HIL_TRIGGER_TYPE_SYNC_TIMED_ACTIVATION
HIL_TRIGGER_TYPE_SYNC_TIMED_LATCH
Table 52: Values Set Trigger Type service supported by the PROFINET IO-Device stack
Note: In case the cifX toolkit is used, “Request update of DPM input area” will triggered when
the update of the DPM input area is confirmed by the stack.
Note: The software-assisted synchronisation using DPM Sync Handshak only offers a limited
possibility to report a sync event.This is because there is only one sync handshake per
communication channel and there is no way to identify the trigger event source (Input
or Output event ) via DPM.
The following diagram shows when the stack triggers the Sync event.
To configure sync event timing (Cycle time and Offset), the application has to use the service,
otherwise the stack uses the default value specified in "netX Synchronization".
In order to ensure accurate process synchronization and to avoid missing data cycles the
application, the application shall request the sync (toggel HSYNCF_CH0) immediately after the
sync event is reported.
When enabling this functionality, the stack will re-configure the xC trigger Unit so that the
xC_Trigger signals “xC_Trigger 0" and "xC Trigger 1" are triggered at the configured offsets.
Note: This service is independent of the Isochronous mode. It can also be used even if no
IRT connection established or the IO-Device is not synchron to the IO-Controller (acts
like a free running HW-Timer)
Note: The Configuration of trigger events shall be done after receiving Parameter End
Indication
Packet description
Note: The Please note that "T_IO_Input" refers to the start of the next Data Cycle. To
configure trigger event to fetch Input data, The application has to callculate the offset at
which the event shall be reported as follow: ulOffset = (T_DC * 31,25) - T_IO_Input
Bus On State
If auto start is disabled, the application has to switch the device to Bus On. If auto start is enabled,
the device automatically reaches the Bus On state. In Bus On state, the device waits for incoming
events from the network.
NameOfStation
If the device is activated for the first time, usually NameOfStation has not been configured yet in
the device. The NameOfStation stored in the device must match to the configuration of the
controller in order that the controller can communicate with the device. Therfore the
NameOfStation needs to be set by the engineering tool to the device or will be assigned by the
controller according to the topology. For details about allowed characters, see section Name
encoding (page 309).
The following figure shows the sequence of DCP Set NameOfStation if using an engineering tool.
Figure 31: Initial configuration: DCP Set NameOfStation (by engineering tool)
In case, the controller has the topology information of the network, the controller can set the
NameOfStation. The following figure shows the sequence of DCP Set NameOfStation by the
controller.
IP parameters
In the next step, the controller will verify the IP parameters of the device and adapt them according
to its configuration.
The next figure shows the DCP protocol to set IP parameters.
AR establishment
After the IP parameters have been set in the device, the IP stack of the device is active and the
RPC layer accepts incoming requests from the network. The controller will now establish an AR. If
the application registered at the stack previously, several indications will be generated. The
application has to handle these indications properly in order to establish the connection
successfully.
AR establishment: Connect
The very first indication will be the AR Check indication (see section AR Check service (page 117).
This informative indication signifies the beginning of the AR establishment phase.
In the next step, the stack compares the module configuration requested by the controller with the
current module configuration of the stack. Depending on the stack configuration parameters, the
stack will now generate a Check Indication (see section Check Indication service (page 120) for
each used, wrong, unused or missing (sub) module. If desired, the application has the opportunity
to reconfigure the stack. In order to do so, the application should use the Plug/Pull services before
returning the Check Response back to the stack. Additionally, the Check Response provides the
ability to report a substitute (sub) module.
After all Check Indications have been processed, the stack will issue a Connect Request Done
indication (see section Connect Request Done service (page 126) to the application. This
indication signifies the end of the first phase to the application. The application now has the option
to configure the stack. As soon as the application has sent the Connect Request Done response,
the stack will generate the Connect.cnf to the PROFINET Controller.
For advanced start-up: The stack sends a Parameterization Speedup indication to the application
before it has received a ParamEnd control message from the IO-Controller if this AR uses
FastStartUp.
For legacy start-up: As soon as the PROFINET Controller has finished writing the parameters, it
will generate a ParamEnd control message. At first, the stack will check if this AR uses
FastStartUp (FSU). This will be indicated to the application by issuing a Parameterization Speedup
indication with non-zero UUID.
If the application has received a Parameterization Speedup indication with non-zero UUID, the
application must store the UUID and the parameter records into a non-volatile memory in order to
restore them on next power up. Use the UUID value to detect parameter changes in that case.
Finally, the AR InData indication (see section AR InData service (page 134) informs the application
about the fact that the first cyclic frame from the IO-Controller has been received after the
Application Ready confirmation. The AR is now established and valid data exchange takes place.
Note: As the stack supports multiple ARs, multiple connection establishment sequences may
occur in the same time. In order to differentiate between these ARs, use the device
handle parameter of the indications.
Packet description
/** The following fields are not supported by PNSv3 implementation and only valid for
PNSv4 implementation */
/** The following fields shall only be evaluated if usARType == 0x20 (IOCARSR: System
redundancy or dynamic reconfiguration). */
/* AR ARUUID */
HIL_UUID_T tARUUID;
/* RedundancyDataHoldTimer of the whole AR-Set */
uint16_t usRdhtValue;
} __HIL_PACKED_POST PNS_IF_AR_CHECK_IND_DATA_T;
typedef __HIL_PACKED_PRE struct PNS_IF_AR_CHECK_IND_Ttag
usARType
Value AR Type
0x01 IO Controller AR with RT
0x06 IO Supervisor AR
Supervisor DA AR (ulARProperties.DeviceAccess = 1)
Supervisor AR (ulARProperties.DeviceAccess = 0)
0x10 IO Controller AR with IRT
0x20 SystemRedundancy AR
Table 56: AR Types
ulARProperties
Packet description
Note: A Check Indication Service may also be issued after an Extended Plug Submodule
request. In that case, the recently plugged submodule has been associated with a new
AR, which expects another submodule.
Note: A Check Indication Service may also be issued after a submodule AR ownership
change. In that case, a submodule has been associated with an existing AR, which
expects another submodule.
In most applications, the device will not adapt to the controllers configuration, e.g. (modular) I/O
devices, sensors, gateways etc. The sequence for this is shown in the following figure:
Packet description
Packet description
Packet description
Packet description
Note: Before the stack will signal Application Ready to the IO-Controller, the application must
provide valid I/O data to the stack. Therefore the application is required to write the I/O
data after returning the Parameter End response with fSendApplicationReady set
to true.
Note: For this service, a timeout is implemented in the stack. If the application does not
answer within the timeout the stack will automatically generate a negative response the
IO-Controller.
Packet description
Note: It is not allowed to send Application ready on the network until the IOPS and IOCS of
all submodules are set to good or a diagnosis has been added for bad submodules.
Packet description
Note: If the application does not signal Application Ready to the Stack/ Controller at all, cyclic
process data cannot be exchanged. Therefore, the Application is required to indicate
Application Ready at some time point (Many Controllers abort the Application Relation
if ApplicationReady is not signaled within a timeout).
Note: If the Application handles the Provider-State on itself, it is important to set up the
Provider States before sending Application Ready. The IO-Controller will evaluate the
Provider States on Application Ready and will ignore all Submodules with Bad Provider
State for Cyclic Process Data Exchange
Note: As Application Ready also signals valid process data to the IO-Controller, the stack is
required to update its internal buffer at least once from the DPM Output Area / Provider
Image. Therefore the Application shall either use xChannelIOWrite (DPM) or the
UpdateProviderData callback function (Linkable Object) to allow the Stack to do so.
Even if the Device has no Input data this shall be done. Calling xChannelIOWrite may
be called with data length zero (Just to toggle the handshake flags). It may happen that
xChannelIOWrite reports an error (COM-Flag not set) which can be ignored.
Packet description
Packet description
Packet description
Packet description
For PNSV4:
The stack indicates the presence of remanent data to the application (ulCmd is 0x1FEA). The
application is responsible for storing this data into a permanent storage. After the next power cycle,
the application has to restore all remanent data using the Load Remanent Data service (page 101).
For PNSV5:
A stack component indicates (HIL_STORE_REMAMENT_DATA_IND = 0x2F8E) the presence of
remanent data to the application. The application is responsible for storing this data into a
permanent storage. After the next power cycle, the application has to restore all remanent data
using the Set Remanent Data service (HIL_SET_REMAMENT_DATA_REQ). For a description of this
packet, see reference [8] (on page 13).
Packet description
Packet description
Note: If the netX COM LEDs are present, these are managed by the protocol stack and this
service is informative in this case. In all other cases the implementation is mandatory
and relevant for certification.
Note: For this service, the stack uses a timeout. If the application does not answer within the
timeout period, the stack automatically generates a negative response the IO-
Controller.
Note: The LFW target by default supports up to 4 KB of response data payload for read
records. For this, the data must be transferred using packet fragmentation. This also
requires an entry within the tag list.
Due to the limited mailbox size of the Dual-Port Memory, the application has to use fragmentation.
For PNSV4: The handling of packet fragmentation is described in section “General packet
fragmentation” in reference [7]. For PNSV5: The handling of packet fragmentation is described in
section “Communication channel packet fragmentation” in reference [8] and [9].
Packet Description
Note: The data provided by device to the PROFINET network via the read record response
(abRecordData[]) are delivered in big-endian representation. Big-endian means,
that the highest value byte is stored first, i.e. at the lowest memory address (Motorola
format).
Packet description
Note: The LFW target supports by default up 4 KB of indication data payload for write
records. For this, the data must be transferred using the fragmentation transfer. The
application might pre-calculate the size of the unfragmented packet using the data field
ulLentoWrite which is transferred in the first fragment. This also requires an entry
within the tag list.
Due to the limited mailbox size of the Dual-Port Memory, the application has to use fragmentation.
For PNSV4: The handling of packet fragmentation is described in section “General packet
fragmentation” in reference [7]. For PNSV5: The handling of packet fragmentation is described in
section “Communication channel packet fragmentation” in reference [8] and [9].
Note: The data received from the PROFINET network via the write record indication
(abRecordData[]) are delivered in big-endian representation. Big-endian means,
that the highest value byte is stored first, i.e. at the lowest memory address (Motorola
format).
Packet description
Packet description
Important: An application should NOT use the receipt of this indication as cause to trigger actions
like „Channel int“, „Pull (sub)module“ or „System reset“. Otherwise certification oft he
device will not be possible.
Note: If bit “Generate Check Indications for unused modules” (D13) in ulSystemFlags of Set
Configuration service (page 69) is set and the Shared Device function is used then the
stack sends Check Indications after an AR Abort Indication.
Note: Typically, the IO data is already marked as invalid (set to 0 if IOxS is not used) by
protocol stack.
Packet description
Packet description
Note: The application can configure the stack to save the NameOfStation on its own. See bit
D17 in System flags V3. If the application does not use this elegant solution to deal
with the NameOfStation, the following applies:
If the flag bRemanent is not set, the application must delete the permanently stored
Station Name and use an empty Station Name after the next power-up cycle.
Note: The DCP Set Station Name response is sent to the network after the application
responds to the Save Station Name service. The protocol stack will automatically
generate a positive response to the network in case the application does not answer to
the service in time. However, it is required that the application responds to the
indication.
Packet description
Packet description
Note: The application can configure the stack to save the IP parameters by itself,
see bit D17 in System flags V3.If the application does not use this elegant solution to
deal with the NameOfStation, the following applies:
If the flag bRemanent is not set the application shall set the permanently stored IP
parameters to 0.0.0.0 and use IP 0.0.0.0 after the next power-up cycle.
Note: The DCP Set IP Address response is sent to the network after the application responds
to the Save IP Address Service. The protocol stack will automatically generate a
positive response to the network in case the application does not answer to the service
in time. However, it is required that the application responds to the indication.
Packet description
Packet description
Note: If the netX COM LEDs are present, these are managed by the protocol stack and this
service is informative in this case. In all other cases the implementation is mandatory
and relevant for certification.
Packet description
Packet description
Note: If the netX COM LEDs are present, these are managed by the protocol stack and this
service is informative in this case. In all other cases the implementation is mandatory
and relevant for certification.
Note: If the stack is used as LOM and is configured to use LEDs and if a valid Blinking LED-
Name (see section Start LED Blinking service on page 155) is given the stack will
automatically blink with the LED and this indication is only informative.
Packet description
Packet description
Note: PROFINET specifies that the reception of a Reset to factory settings Request shall
automatically stop any running cyclic communication. The stack does this automatically
and indicates this to the application by the Abort Indication service.
Note: If the stack is configured using a SYCON.net database, then the stack will
automatically change the IP parameters and NameOfStation stored in the database to
the default values.
Note: If the stack is configured using the Set Configuration service the internally stored
parameters will also be changed by the stack in the way that e.g. after a ChannelInit
the default values will be used.
Note: The DCP Set Reset Factory response is sent to the network after the application
responds to the Reset Factory Settings Service. The protocol stack will automatically
generate a positive response to the network in case the application does not answer to
the service in time. However, it is required that the application responds to the
indication.
Packet description
Note: GSDML attribute ResetToFactoryModes has following relation to the reset code:
ResetToFactoryModes = usResetCode / 2
Packet description
Packet description
Packet description
Important: The data received from the PROFINET network via the alarm indication
(abAlarmData[1024]) are delivered in big-endian representation. Big-endian
means, that the highest value byte is stored first, i.e. at the lowest memory address
(Motorola format).
Packet description
Packet description
Packet description
Packet description
Note: In order to fulfill PROFINET conformance needs, the user has to implement at least
handling of I&M0, I&M1, I&M2, I&M3 and I&M0 Filter data.
In addition, I&M0 shall be readable on every submodule. If I&M1-5 are supported, they
shall be readable on every submodule, even if they are only writable on a specific
device-representing submodule.
Note: In order to fulfill PROFINET conformance needs, the user has to set the flag
PNS_IF_IM0_FILTER_DATA_DEVICE_REF for one submodule when handling the
type PNS_IF_IM_TYPE_IM0FILTER.
Packet description
Packet description
I&M0FilterData is a special record identifying which submodules of an IO-Device carry distinct I&M
data. I&M0FilterData shall also deliver one submodule acting as device representative which
means that this submodule’s I&M data is valid for the whole IO-Device.
The I&M0FilterData response of application may contain one or more submodules in
PNS_IF_READ_IM_RES_DATA_T element atIM0FilterData. The confirmation packet lengths need
to be set according to the amount of submodules contained in the packet.
The application has to order the submodules in the sequence “API, Slot and Subslot”. In case the
application does not use this order sequence, an invalid response coding may be seen on the
network.
I&M0FilterData supports a maximum of 128 submodules.
Note: By default read of I&M4 or I&M5 are not forwarded to application but rejected by
protocol stack with error code “invalid index”. If the application requires to support
I&M4/I&M5, the application has to enable the support using the Set OEM Parameters
service (page 82).
Writing of I&M1, I&M2 and I&M3 records shall be supported at least for one submodule
by each PROFINET IO Device.
Writing I&M5 is never allowed, but the protocol stack needs to know the proper error
code (Access denied or invalid index). Therefore, in case of write for I&M5 the
indication is generated without write data by the protocol stack. The application has
always to respond using the appropriate error code.
Packet description
Packet description
The following figure shows the stack will use multiple Get Asset indications to retrieve the
information from the application. As soon as no further asset management data is available, the
application has to return the Get Asset response without asset management data content. This will
indicate to the stack that all asset management data has been delivered and the read response
can be generated.
Packet description
Parameter usEntryNumber
This parameter specifies the number of the first asset to return in the response packet. The data
model used to represent the asset information is a simple list of assets. This field specifies the
index of the first list entry the protocol stack expects in the response. The application is expecting
to deliver up to four asset entries from the asset list starting with the entry at index
usEntryNumber. The index count starts with the first corresponding EntryNumber of the queried
PROFINET record index, see Table 111 (page 176).
Packet description
Note: The detailed description of the coding of all data elements (Table 114) with the initial
combination of the letters "xxAM_" and "xxIM_" lists the PROFINET specification
IEC 61158-5-10 and IEC 61158-6-10. See section “I&M services and asset
management”. The stack uses these elements for data transmission.
enum
{
PNS_IF_ASSET_LOCATION_STRUCTURE_LEVEL = 0x01,
PNS_IF_ASSET_LOCATION_STRUCTURE_SLOTSUBSLOT = 0x02,
};
union PNS_IF_ASSET_LOCATION_Ttag
{
PNS_IF_ASSET_LOCATION_LEVEL_T tLevel;
PNS_IF_ASSET_LOCATION_SLOTSUBSLOT_T tSlotSubslot;
};
Note: If the application does not use any user records, no special action is required on this
indication.
Packet description
Packet description
Note: If an event indication is pending at the host application, (no event response returned to
firmware yet) new events are not reported using another event indication but counted.
These unreported events will be reported after the event response has been sent to the
firmware. This prevents flooding the host application with events.
Packet description
Packet description
Packet description
bARsetStatus
This parameter represents the ARset status and can have one of the following values:
Value Description
PNS_IF_AR_SET_STATUS_DISCONNECTED No active SR-ARs
PNS_IF_AR_SET_STATUS_CONNECTED_BACKUP No primary SR-AR exists
PNS_IF_AR_SET_STATUS_CONNECTED_PRIMARY Primary SR-AR exists
Table 123: ARset Status
Packet description
Packet description
Packet description
Note: This service is available only in a firmware/stack which includes the features System
Redundancy and Dynamic Reconfiguration. For an overview, see section Overview of
loadable firmware (page 15).
Packet description
Packet description
Packet description
Packet description
Bit Description
D12 A PROFINET Maintenance Demanded Record exists
D11 A PROFINET Maintenance Required Record exists
D10 A PROFINET Diagnosis Record with severity fault exists
D9 Fatal Error occurred
D8 Configuration is locked
D7 Network Communication is enabled
D6 Network Communication is allowed
D5 Module 0 and Submodule 1 are plugged
D4 Module 0 is plugged
D3 At least one API is present
D2 Reserved
D1 PROFINET Stack is started
D0 Device Information is set
Table 133: Meaning of single Bits in ulPnsState
ulLinkState
This parameter denotes the link state. The following values are supported:
Value Meaning
0 No information available
1 Physical link works correctly
2 Low speed of physical link
3 No physical link present
Table 134: Values and their corresponding Meanings of ulLinkState
Value Meaning
0 Not configured
1 Configured with DBM Files
2 Error during configuration with DBM Files
3 Configured by application
4 Configuration by application is running
5 Error during configuration by Application
6 Configured with Warmstart-Parameters
7 Configuration with Warmstart-Parameters is running
8 Error during Configuration with Warmstart-Parameters
Table 135: Values and their corresponding Meanings of ulLinkState
ulCommunicationState
This parameter denotes the communication state. It contains information regarding the current
network status of the communication channel. Depending on the implementation, all or a subset of
the definitions below is supported.
0x0001 OFFLINE
0x0002 STOP
0x0003 IDLE
0x0004 OPERATE
Note: The information provided with this service is not intended to be used by the application.
This packet is intended for support purposes only, is used to help debugging Ethernet
problems, and analyzed by Hilscher.
Packet description
Packet description
Note: If the device handle refers to an SR-AR Set, all SR-ARs of this set are aborted.
Note: Be aware that in consequence of AR abort, a certification tool will report fails in testing.
This service is intended for usage in special situations only and should not be used in
regular environment: Use this service with care.
Packet description
/* Request packet */
typedef __HIL_PACKED_PRE struct
{
HIL_PACKET_HEADER_T tHead;
PNS_IF_ABORT_CONNECTION_REQ_DATA_T tData;
} __HIL_PACKED_POST PNS_IF_ABORT_CONNECTION_REQ_T;
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Packet description
Note 1: Usage of this service is not recommended. Generic diagnosis cannot be handled
automatically by Engineering systems. The PI Diagnosis Guideline recommends not
using this service.
It should be used in justified exceptions to this rule only.
Note 2: Generic Diagnoses contain application-specific amount of user data. Thus the memory
must be allocated dynamically at runtime and cannot be predicted. In turn the
successful creation of a generic diagnosis entry depends on the following runtime
properties:
- Available dynamic memory
- Memory Fragmentation due to runtime memory allocation
They should be used in justified exceptions to this rule only.
Note 3: In case the application uses the Add Generic Diagnosis service on a Submodule with
an existing generic diagnosis which has the same usUserStructId as the service
request, then the existing Diagnosis record will be updated with new diagnosis data
instead of creating a new record.
Packet description
usDiagDataLen
Note: The PROFINET specification guarantees a total diagnosis data length of 200 byte to be
exchangeable between IO-Device and IO-Controller. IO-Controllers may support more
than 200 byte but the IO-Device cannot rely on it. For this reason, we highly
recommend to you not to generate any diagnosis data that exceeds 200 bytes.
The 200 bytes include 28 bytes for submodule and protocol-related parameters. This means that
the pure application data including the User Structure Identifier is limited to 174 byte in this case.
Note that the User Structure Identifier is part of the 28 bytes and that it is already included in the
PNS_IF_ADD_GENERIC_DIAG_REQ_DATA_T structure and therefore should not be used with
diagnosis data length of more than 172 bytes.
Packet description
Packet description
Packet description
Note: This service is only usable for the user application if the user application handles IOxS,
as well. If IOxS is not handled by the application, the stack will not allow the usage of
this service.
Note: The submodule state is bound to the submodule and is only changed by the user
application. Thus if the state is set to “ApplicationReady pending” and the AR is
terminated and reestablished afterwards, the submodule will be reported with
“ApplicationReady pending” by the protocol stack.
Note: The request packet has a limited size, depending on maximal DPM packet length. The
maximal count of configured submodules is limited to 98. If more submodules are
configured, the error code ERR_HIL_FAIL in ulSta will be returned.
Note: A submodule in the state “ApplicationReady pending” shall have its IOPS set to “bad”.
In consequence if the submodule state changes back to “good” the IOPS needs to be
changed to “good” by the application. This will automatically trigger generation of a
ReturnOfSubmodule Alarm by the protocol stack.
Packet description
Valu Name
e
0 PNS_IF_SET_SUBM_STATE_SUBM_OKAY The submodule state is okay, it is
ready
for valid data exchange.
1 PNS_IF_SET_SUBM_STATE_SUBM_SUPERO The submodule is locked by
RD_LOCKED application
2 PNS_IF_SET_SUBM_STATE_SUBM_APPL_R The submodule is not ready for
EADY_PENDING valid
data exchange
Table 163: Values of usSubmState
Packet description
Note: The protocol stack ignores the submodule reference parameters for global parameters.
Packet description
Packet description
uint16_t usPadding;
/** api of the associated submodule */
uint32_t ulApi;
/** slot of the associated submodule */
uint16_t usSlot;
/** subslot of the associated submodule */
uint16_t usSubslot;
/** update interval of this submodules process data in nanoseconds */
uint32_t ulUpdateInterval;
/** send base clock for the associated iocr */
uint16_t usSendClock;
/** send clock reduction for the associated iocr */
uint16_t usReductionRatio;
/** missing frames until timeout of the associated iocr */
uint16_t usDataHoldFactor;
} __HIL_PACKED_POST PNS_IF_PARAM_SUBMODULE_CYCLE_T;
#define MAX_DIAGNOSIS_ENTRIES_CNT 32
union PNS_IF_PARAM_Ttag
{
PNS_IF_PARAM_COMMON_T tCommon;
PNS_IF_PARAM_MRP_T tMrp;
PNS_IF_PARAM_SUBMODULE_CYCLE_T tSubmoduleCycle;
PNS_IF_PARAM_ETHERNET_T tEthernetPrm;
PNS_IF_DIAGNOSIS_T tDiagnosisData;
PNS_IF_PARAM_IM0_DATA_T tIM0Prm;
PNS_IF_PARAM_IM5_DATA_T tIM5Prm;
PNS_IF_PARAM_PORT_STATISTIC_DATA_T tPortStatistic;
};
Coding of atDiagnosis
Variable Type Value / Description
Range
usSubslot uint16_t Subslot the diagnosis alarm belongs to
usChannelProp uint16_t Diagnosis channel properties, see Table 214 (page 305).
usChannelErrType uint16_t Diagnosis error type, see Table 218 on page 307,
usExtChannelErrType uint16_t Diagnosis extended error type, see Table 219 on page 307.
Table 174: PNS_IF_DIAGNOSIS_ENTRY_T - Diagnosis entry
Note: By default, all PE entity services are deactivated. In order to activate the PE entity
services, use the Set OEM Parameters service (page 82) with ulParamType set to 10.
Packet description
Packet description
Note: By default, all PE entity services are deactivated. In order to activate the PE entity
services, use the Set OEM Parameters service (page 82) with ulParamType set to 10.
This service exists for symmetric reasons only and thus this service is not intended to be used as
there is no real use case for it.
Packet description
Packet description
Note: By default, all PE entity services are deactivated. In order to activate the PE entity
services, use the Set OEM Parameters service (page 82) with ulParamType set to 10.
Packet description
Packet description
Packet description
typedef enum {
PNS_IF_ALARM_USER_STRUCTURE_ID_MANUF_SPEC_STAR = 0x0000,
PNS_IF_ALARM_USER_STRUCTURE_ID_MANUF_SPEC_END = 0x7FFF,
} PNS_IF_ALARM_USER_STRUCTURE_ID_E;
/** Structure definition of Upload & Retrieval alarm item data .*/
typedef __HIL_PACKED_PRE struct PNS_IF_UPLOAD_RETRIEVAL_DATA_Ttag
{
/** Alarm subtype see \ref PNS_IF_ALARM_UPLOADT_RETRIEVAL_SUBTYPE_Etag*/
uint8_t bAlarmSubtype;
/** This part of Upload & Retrieval alarm data has a dynamic structure.
* It shall contain device specific records data.
* The Length of this structure will be derived from usAlarmDataLen */
PNS_IF_UPLOAD_RETRIEVAL_RECORD_DATA_T tRecords[];
}__HIL_PACKED_POST PNS_IF_UPLOAD_RETRIEVAL_DATA_T;
/* alarm data */
typedef union PNS_IF_ALARM_DATA_Ttag
{
uint8_t abManufacturerData[PNS_IF_MAX_ALARM_DATA_LEN]; /* ATTENTION: Recommended not to
use more than 172 byte of data for compatibility reasons */
PNS_IF_UPLOAD_RETRIEVAL_DATA_T tUploadRetrieval;
PNS_IF_PROCESS_ALARM_CHANNEL_DATA_T tProcessAlarmChannelData; /* only used for USI
0x8320 */
/* Request packet */
typedef __HIL_PACKED_PRE struct PNS_IF_SEND_ALARM_REQ_DATA_Ttag
{
/* API of the submodule that issues the alarm */
uint32_t ulApi;
/* Slot of the submodule that issues the alarm */
uint32_t ulSlot;
/* Subslot of the submodule that issues the alarm */
uint32_t ulSubslot;
/* AlarmHandle freely chosen by application for identification purpose */
uint32_t hAlarmHandle;
/* AlarmType to generate, see PNS_IF_USER_ALARMTYPES_E */
uint16_t usAlarmType;
/* User structure identifier of the alarm will only be used in case
* of manufacturer specific alarm type */
uint16_t usUserStructId;
/* length of the alarm data (thus length of content in abAlarmData) */
uint16_t usAlarmDataLen;
/* alarm data */
PNS_IF_ALARM_DATA_T tAlarmData;
} __HIL_PACKED_POST PNS_IF_SEND_ALARM_REQ_DATA_T;
Note: The PROFINET specification guarantees a total alarm length of 200 byte to be
exchangeable between IO-Device and IO-Controller. IO-Controllers may support more
than 200 byte but the IO-Device cannot rely on it. For this reason, we highly
recommend to you not to generate any alarm that exceeds 200 bytes.
The 200 bytes include 28 bytes for submodule and protocol-related parameters. This means that
the pure application data including the User Structure Identifier is limited to 174 byte in this case.
Note that the User Structure Identifier is part of the 28 bytes and that it is already included in the
PNS_IF_SEND_PROCESS_ALARM_REQ_DATA_T structure and therefore should not be used with
alarm data length of more than 172 bytes.
tAlarmData
abManufacturerData
This parameter can be used to report optional manufacturer data. It shall only be used in
conjunction with following alarm types:
Process alarm
Status alarm
Update alarm
Isochronous mode problem alarm
Manufacturer specific alarm
tUploadRetrieval
This parameter shall only be used if the alarm type is set to “Upload and Retrieval alarm”.
With this parameter, the application indicates the existence of device specific record objects that
shall be stored outside of IO Device or retrieval request of already stored record objects.
Packet description
8 PROFINET Certification
Before any PROFINET device appears on the market it has to pass PROFINET certification tests
to prove the conformance according to one of the defined PROFINET conformance classes (A, B
or C).
To achieve conformance class A (without SNMP) or B (with SNMP) the PROFINET Real Time
(RT) protocol behavior and the behavior on network load have to be tested on the device.
If a PROFINET device shall conform to conformance class C, it has to fulfill some additional
requirements including PROFINET Isochronous Real Time (IRT). This chapter explains common
requirements to a PROFINET device for all types of the certification tests.
For detailed information about PROFINET Certification please also refer to reference [3].
8.1.1 Description
The common PROFINET RT certification tests have to be passed by all IO Device
implementations. These test cases cover the following functionality
basic state machine behavior
different parts of protocol (coding)
reaction of device on erroneous configurations and situations
acyclic services
cyclic data and data-status (IOXS)
8.2.1 Description
The common PROFINET IRT certification tests have to be passed by all IO Device
implementations. These test cases cover the following functionality
basic IRT-related state machine behavior
synchronization related tests
different parts of protocol (coding)
reaction of the device on erroneous configurations and situations
cyclic data and data status (IOXS)
netX 90
PortSubmoduleItem
MaxPortRxDelay="220"
MaxPortTxDelay="116"
netX 4000
PortSubmoduleItem
MaxPortRxDelay="340"
MaxPortTxDelay="92"
8.3.1 Description
Starting with certification for PROFINET specification V2.3 (expressed in GSDML file of the IO-
Device by using PNIO_Version=”V2.31”) it is mandatory to execute special network load tests
during certification.
These tests verify the correct behavior of the PROFINET IO device during different network loads.
The following classes of network load are defined:
network load class I
network load class II
network load class III
The device has to pass at least the tests for “network load class I” to fulfill the certification
requirements.
8.4.1 Overview
Identification & Maintenance (I&M) is an integral part of each PROFINET Device implementation. It
provides standarized information about a device and its parts. The I&M Information is accessible
through PROFINET Record Objects and is always bound to a submodule belonging to the item to
be described. An item means here the PROFINET Device itself or a part of this device e.g. a
plugable module for modular devices. Submodules can provide own I&M objects or share the I&M
objects of other submodules. The I&M objects can be grouped into three kinds of information as
described as follows.
I&M0
I&M0 is a read only information which describes the associated item. The following fields are
defined:
I&M5
Finally, the I&M5 record provides information about the PROFINET protocol implementation itself.
It is quite similar to I&M0 but describes the PROFINET protocol implementation instead. Thus it is
typically handled by the PROFINET Protocol implementation itself.
I&M0 filter
Addtionally to these submodule specific I&M objects, each PROFINET device must support the
global I&M Filter Data object, the so called "I&M0FilterData". This is a read-only object which is
used to determine which submodules are associated with dedicated I&M objects.
For certification it is required that at exactly one is marked as “device representative” in I&M0 Filter
Data object.
Figure 47: Structural organization of I&M records within a Device and the access paths
Structural organization of I&M Records within a Device and the Access Paths
According to I&M a submodule can be characterized as follows:
Module Representative: The submodule is a representative for the module. This means
that the submodule provides the I&M information of the superordinate module.
Device Representative: The submodule is a representative for the device. In this case the
submodule provides the I&M information of the superordinate device. Exactly one submodule
of the device must have this property. Typical the DAP submodule is chosen for this purpose.
Mode “Stack handles I&M requests”: If the stack is configured to handle the I&M (internally), the
following parameters will be used within the I&M0 object:
Parameter Source of value
Vendor ID Vendor ID in Set Configuration service or configuration database.
Can be overwritten by tag list if configuration database is used.
Order ID Order ID in Set Configuration service or configuration database.
Serial Number The serial number is used from the Device Data Provider (read from the Flash Device Label
during startup). If required, the application can change the serial number using Device Data
Provider services.
Hardware Revision Hardware revision in Set Configuration Service. If a configuration database is used the
hardware revision from Security Memory / Flash device label is used. This is the hardware
revision of the Hilscher communication module if applicable.
Software Revision Software revision in Set Configuration Service. If a Configuration Database is used the
PROFINET Protocol implementations software revision will be used.
Revision Counter Internally stored and incremented with each change of I&M1 to I&M4.
Mode “Application handles I&M requests”: If the mode ”Application handles I&M requests“ is
set, all I&M requests will be forwarded via PROFINET to the application using the ”I&M Read“ and
”I&M Write“ service. The application must store the data of I&M write services permanently, so that
the I&M1 to I&M4 objects and the I&M0 revision counter can be recovered after a power cycle. I&M
0-3 is supported on the DAP submodule (Slot 0, subslot 1) by default.
The application must fill the I&M0 Filter data structure with a list of the submodules that are
associated with dedicated I&M data. Exactly one of these submodules must be characterized as
device representative. Characterization as a module representative is optional and sensible only if
the module has more than one submodule. Then the stack will internally create up to three lists
based on the information provided by the application.
Note: Despite the allowed parameter value ranges in the tables of this section, additional
limitations arise from the available RAM memory. The full parameter value range might
not be available for all devices and firmware.
Note: Despite the allowed parameter value ranges in the tables of this section, additional
limitations arise from the available RAM memory. The full parameter value range might
not be available for all devices and firmware.
Note: By default, all manufacturer-specific parameters defined in the GSDML file can be
changed during the Dynamic Reconfiguration sequence. However, if a change of
parameters leads to an I/O bump, the GSDML keyword ChangeableWithBump has to
be present and set to True.
The fields define a hierarchy on the error codes. The ordering is as follows: ErrorCode,
ErrorDecode, ErrorCode1 and ErrorCode2. The meaning of lower order fields depends on the
values of the higher order fields. The special value 0x00000000 means no error or success.
Note: As the ErrorCode2 field can be freely chosen in this case, the application may use it to
provide more detailed information about the error (e.g. why writing the record into the
module was not possible, which value of the parameter was wrong…)
11.6 Generic AP
12 Coding of Diagnosis
The following tables represent diagnosis specific object and structure defined in PROFINET
specification (IEC 61158-6-10).
Bit No Description
D0 - D7 Data type of this channel, see Table 215 on page 305.
D8 Accumulative. It should be set if the diagnosis is accumulated from several channels
D9 – D10 Maintenance, see Table 216 on page 305.
D11 – D12 Specifier. It will be handled by the Stack and shall not be set by application.
D13 - D15 Direction, see Table 217 on page 306.
Table 214: Coding of the field Channel Properties
Note: values 0x8000 – 0x800E will be triggered by the Stack internally and shall not be set by
application
Coding of Extended error Type in conjunction with Remote Mismatch error type
Value Description
0x8000 Peer Chassis ID mismatch
0x8001 Peer Port ID mismatch
0x8002 RT Class 3 mismatch
0x8003 Peer MAUType mismatch
0x8004 Peer MRP-Domain ID mismatch
0x8005 No peer detected
0x8007 Peer CableDelay mismatch
0x8008 Peer PTCP mismatch
Other Reserved
Table 221: Coding of Extended error Type in conjunction with Remote Mismatch error type
Coding of Extended error Type in conjunction with Sync Mismatch error type
Value Description
0x8000 No Sync Message Received
0x8001 Jitter out of Boundary”
Other Reserved
Table 222: Coding of Extended error Type in conjunction with Sync Mismatch error type
Coding of Extended error Type in conjunction with Fiber optic mismatch error type
Value Description
0x8000 Power budget mismatch
Other Reserved
Table 223: Coding of Extended error Type in conjunction with Fiber optic mismatch error type
13 Appendix
Important notes
Utmost care was/is given in the preparation of the documentation at hand consisting of a user's
manual, operating manual and any other document type and accompanying texts. However, errors
cannot be ruled out. Therefore, we cannot assume any guarantee or legal responsibility for
erroneous information or liability of any kind. You are hereby made aware that descriptions found
in the user's manual, the accompanying texts and the documentation neither represent a
guarantee nor any indication on proper use as stipulated in the agreement or a promised attribute.
It cannot be ruled out that the user's manual, the accompanying texts and the documentation do
not completely match the described attributes, standards or any other data for the delivered
product. A warranty or guarantee with respect to the correctness or accuracy of the information is
not assumed.
We reserve the right to modify our products and the specifications for such as well as the
corresponding documentation in the form of a user's manual, operating manual and/or any other
document types and accompanying texts at any time and without notice without being required to
notify of said modification. Changes shall be taken into account in future manuals and do not
represent an obligation of any kind, in particular there shall be no right to have delivered
documents revised. The manual delivered with the product shall apply.
Under no circumstances shall Hilscher Gesellschaft für Systemautomation mbH be liable for direct,
indirect, ancillary or subsequent damage, or for any loss of income, which may arise after use of
the information contained herein.
Liability disclaimer
The hardware and/or software was created and tested by Hilscher Gesellschaft für
Systemautomation mbH with utmost care and is made available as is. No warranty can be
assumed for the performance or flawlessness of the hardware and/or software under all application
conditions and scenarios and the work results achieved by the user when using the hardware
and/or software. Liability for any damage that may have occurred as a result of using the hardware
and/or software or the corresponding documents shall be limited to an event involving willful intent
or a grossly negligent violation of a fundamental contractual obligation. However, the right to assert
damages due to a violation of a fundamental contractual obligation shall be limited to contract-
typical foreseeable damage.
It is hereby expressly agreed upon in particular that any use or utilization of the hardware and/or
software in connection with
Flight control systems in aviation and aerospace;
Nuclear fission processes in nuclear power plants;
Medical devices used for life support and
Vehicle control systems used in passenger transport
shall be excluded. Use of the hardware and/or software in any of the following areas is strictly
prohibited:
For military purposes or in weaponry;
For designing, engineering, maintaining or operating nuclear systems;
In flight safety systems, aviation and flight telecommunications systems;
In life-support systems;
In systems in which any malfunction in the hardware and/or software may result in physical
injuries or fatalities.
You are hereby made aware that the hardware and/or software was not created for use in
hazardous environments, which require fail-safe control mechanisms. Use of the hardware and/or
software in this kind of environment shall be at your own risk; any liability for damage or loss due to
impermissible use shall be excluded.
Warranty
Hilscher Gesellschaft für Systemautomation mbH hereby guarantees that the software shall run
without errors in accordance with the requirements listed in the specifications and that there were
no defects on the date of acceptance. The warranty period shall be 12 months commencing as of
the date of acceptance or purchase (with express declaration or implied, by customer's conclusive
behavior, e.g. putting into operation permanently).
The warranty obligation for equipment (hardware) we produce is 36 months, calculated as of the
date of delivery ex works. The aforementioned provisions shall not apply if longer warranty periods
are mandatory by law pursuant to Section 438 (1.2) BGB, Section 479 (1) BGB and Section 634a
(1) BGB [Bürgerliches Gesetzbuch; German Civil Code] If, despite of all due care taken, the
delivered product should have a defect, which already existed at the time of the transfer of risk, it
shall be at our discretion to either repair the product or to deliver a replacement product, subject to
timely notification of defect.
The warranty obligation shall not apply if the notification of defect is not asserted promptly, if the
purchaser or third party has tampered with the products, if the defect is the result of natural wear,
was caused by unfavorable operating conditions or is due to violations against our operating
regulations or against rules of good electrical engineering practice, or if our request to return the
defective object is not promptly complied with.
PROFINET IO-Device V4.6.0 / V5.4.0 | Protocol API
DOC171101API05EN | Revision 5 | English | 2021-10 | Released | Public © Hilscher, 2006‑2021
Appendix 315/323
Costs of support, maintenance, customization and product care
Please be advised that any subsequent improvement shall only be free of charge if a defect is
found. Any form of technical support, maintenance and customization is not a warranty service, but
instead shall be charged extra.
Additional guarantees
Although the hardware and software was developed and tested in-depth with greatest care,
Hilscher Gesellschaft für Systemautomation mbH shall not assume any guarantee for the suitability
thereof for any purpose that was not confirmed in writing. No guarantee can be granted whereby
the hardware and software satisfies your requirements, or the use of the hardware and/or software
is uninterruptable or the hardware and/or software is fault-free.
It cannot be guaranteed that patents and/or ownership privileges have not been infringed upon or
violated or that the products are free from third-party influence. No additional guarantees or
promises shall be made as to whether the product is market current, free from deficiency in title, or
can be integrated or is usable for specific purposes, unless such guarantees or promises are
required under existing law and cannot be restricted.
Confidentiality
The customer hereby expressly acknowledges that this document contains trade secrets,
information protected by copyright and other patent and ownership privileges as well as any related
rights of Hilscher Gesellschaft für Systemautomation mbH. The customer agrees to treat as
confidential all of the information made available to customer by Hilscher Gesellschaft für
Systemautomation mbH and rights, which were disclosed by Hilscher Gesellschaft für
Systemautomation mbH and that were made accessible as well as the terms and conditions of this
agreement itself.
The parties hereby agree to one another that the information that each party receives from the
other party respectively is and shall remain the intellectual property of said other party, unless
provided for otherwise in a contractual agreement.
The customer must not allow any third party to become knowledgeable of this expertise and shall
only provide knowledge thereof to authorized users as appropriate and necessary. Companies
associated with the customer shall not be deemed third parties. The customer must obligate
authorized users to confidentiality. The customer should only use the confidential information in
connection with the performances specified in this agreement.
The customer must not use this confidential information to his own advantage or for his own
purposes or rather to the advantage or for the purpose of a third party, nor must it be used for
commercial purposes and this confidential information must only be used to the extent provided for
in this agreement or otherwise to the extent as expressly authorized by the disclosing party in
written form. The customer has the right, subject to the obligation to confidentiality, to disclose the
terms and conditions of this agreement directly to his legal and financial consultants as would be
required for the customer's normal business operation.
Export provisions
The delivered product (including technical data) is subject to the legal export and/or import laws as
well as any associated regulations of various countries, especially such laws applicable in
Germany and in the United States. The products / hardware / software must not be exported into
such countries for which export is prohibited under US American export control laws and its
supplementary provisions. You hereby agree to strictly follow the regulations and to yourself be
responsible for observing them. You are hereby made aware that you may be required to obtain
governmental approval to export, reexport or import the product.
PROFINET IO-Device V4.6.0 / V5.4.0 | Protocol API
DOC171101API05EN | Revision 5 | English | 2021-10 | Released | Public © Hilscher, 2006‑2021
Appendix 316/323
SNMP
For SNMP functionality the PROFINET IO RT/IRT Device Protocol stack uses third party software
that is licensed under the following licensing conditions:
/***********************************************************
Copyright 1988, 1989 by Carnegie Mellon University
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of CMU not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
***********************************************************/
13.7 Contacts
Headquarters
Germany
Hilscher Gesellschaft für
Systemautomation mbH
Rheinstrasse 15
65795 Hattersheim
Phone: +49 (0) 6190 9907-0
Fax: +49 (0) 6190 9907-50
E-Mail: info@hilscher.com
Support
Phone: +49 (0) 6190 9907-99
E-Mail: de.support@hilscher.com
Subsidiaries
China Japan
Hilscher Systemautomation (Shanghai) Co. Ltd. Hilscher Japan KK
200010 Shanghai Tokyo, 160-0022
Phone: +86 (0) 21-6355-5161 Phone: +81 (0) 3-5362-0521
E-Mail: info@hilscher.cn E-Mail: info@hilscher.jp
Support Support
Phone: +86 (0) 21-6355-5161 Phone: +81 (0) 3-5362-0521
E-Mail: cn.support@hilscher.com E-Mail: jp.support@hilscher.com
France Korea
Hilscher France S.a.r.l. Hilscher Korea Inc.
69800 Saint Priest Seongnam, Gyeonggi, 463-400
Phone: +33 (0) 4 72 37 98 40 Phone: +82 (0) 31-789-3715
E-Mail: info@hilscher.fr E-Mail: info@hilscher.kr
Support
Phone: +33 (0) 4 72 37 98 40 Switzerland
E-Mail: fr.support@hilscher.com Hilscher Swiss GmbH
4500 Solothurn
India Phone: +41 (0) 32 623 6633
Hilscher India Pvt. Ltd. E-Mail: info@hilscher.ch
Pune, Delhi, Mumbai Support
Phone: +91 8888 750 777 Phone: +49 (0) 6190 9907-99
E-Mail: info@hilscher.in E-Mail: ch.support@hilscher.com
Italy USA
Hilscher Italia S.r.l. Hilscher North America, Inc.
20090 Vimodrone (MI) Lisle, IL 60532
Phone: +39 02 25007068 Phone: +1 630-505-5301
E-Mail: info@hilscher.it E-Mail: info@hilscher.us
Support Support
Phone: +39 02 25007068 Phone: +1 630-505-5301
E-Mail: it.support@hilscher.com E-Mail: us.support@hilscher.com