Details on the PROFIsafe driver
Limitations
PROFINET
- 
                    max. 256 IO-Devices per IO controller 
- 
                    max. 254 Byte per sub-slot (transfer area) 
- 
                    max. 64 sub-slots 
PROFIsafe
- 
                    max. 32767 F-addresses per IO controller 
- 
                    max. 8 bytes per sub-slot (transfer area) 
- 
                    max. 32 sub-slots 
Debug flags
Following debug flags can be used to detect possible error causes during driver runtime:
| Debug level | Description | 
|---|---|
| 25 (DBG_DRV_USR1) | Information on PROFINET data exchange. | 
| 26 (DBG_DRV_USR2) | Information on PROFIsafe data exchange. | 
| 27 (DBG_DRV_USR3) | Information on configuration and callbacks. | 
| rec | Information on exchanging PROFINET data records (regarding configuration and status information). | 
HARD_FAIL / SAFECONDITION of the driver
In case an error that leads to a HARD_FAIL occurs
- the driver will shut down,
- the invalid bit of all input data point elements will be set,
- the status on the internal data point element .State.Profisafe will be set to 5 (Error).
This state is the SAFECONDITION of the driver.
Error codes
| Error code | Description | 
|---|---|
| 0x010 | IRT data may be inconsistent | 
| 0x011 | No submodules to be updated | 
| 0x012 | Data was written with local state PNIO_S_BAD because not all components of splitted module have local state PNIO_S_GOOD | 
| 0x101 | Parameter handle is illegal | 
| 0x102 | Parameter buffer is NULL pointer | 
| 0x103 | Parameter length is wrong | 
| 0x104 | Parameter address is wrong | 
| 0x105 | Parameter remote state is NULL pointer | 
| 0x106 | Parameter cbf is illegal | 
| 0x107 | Parameter type has no valid value | 
| 0x108 | Parameter ExtPar has no valid value | 
| 0x109 | Parameter PNIO_ADDR::IODataType is wrong | 
| 0x10A | Parameter CpIndex is wrong, probably driver is not loaded | 
| 0x10B | Parameter IOlocState has no valid value | 
| 0x10C | Parameter RecordIndex has no valid value | 
| 0x10D | Parameter timeout has no valid value | 
| 0x10E | Parameter annotation has no valid value | 
| 0x10F | Parameter state has no valid value | 
| 0x110 | Parameter pCbf has no valid value | 
| 0x111 | Parameter MaxAR has no valid value | 
| 0x112 | Parameter AccessType has no valid value | 
| 0x113 | An invalid pointer was passed | 
| 0x114 | An invalid argument was passed | 
| 0x115 | Wrong measuer number in cycle statistics, must be -1 (actual measured up to 49 | 
| 0x116 | Wrong Offset for cycle info buffer (must be 0 to 19) | 
| 0x117 | Address used by io router | 
| 0x201 | Unknown handle | 
| 0x202 | Maximal number of opens reached, close unused applications | 
| 0x203 | Fatal error, reboot your system | 
| 0x204 | Parameter mode has no valid value | 
| 0x205 | Register OPFAULT callback before register STARTOP callback | 
| 0x206 | Register NEWCYCLE callback before register STARTOP callback | 
| 0x207 | Network protocol not available, check card configuration | 
| 0x208 | Pnio stack not available, try again later | 
| 0x301 | Device data not available, because device because device is not connected to controller | 
| 0x302 | Fatal error, no more operation system resources available | 
| 0x303 | Action was already performed | 
| 0x304 | No configuration for this index available | 
| 0x305 | PNIO_set_mode not allowed, use PNIO_CEP_MODE_CTRL by PNIO_controller_open | 
| 0x306 | PNIO_device_activate not allowed, use PNIO_CEP_MODE_CTRL by PNIO_controller_open | 
| 0x307 | License server not running, check your installation | 
| 0x308 | Wrong length value | 
| 0x309 | Wrong calling sequence | 
| 0x30A | Invalid configuration, check your configuration | 
| 0x30B | Address unknown in configuration, check your configuration | 
| 0x30C | No resource too many requests been processed | 
| 0x30D | Configuration update is in progress or CP is in STOP state, try again later | 
| 0x30E | No communication with firmware, reset cp or try again later | 
| 0x30F | No synchronous function allowed, use PNIO_CEP_SYNC_MODE by PNIO_controller_open or PNIO_device_open | 
| 0x310 | Interface-submodule cannot be removed because it is owned by an AR | 
| 0x311 | Failed to start thread, probably by lack of pthread resources | 
| 0x312 | Failed to start realtime thread, probably you need root capability to do it | 
| 0x313 | Failed to ioctl driver, probably API version mismatch | 
| 0x314 | Exception occurred, save exception info and reset cp | 
| 0x315 | No cycle data available | 
| 0x316 | Request belongs to an old session | 
| 0x317 | Wrong format of alarm data | 
| 0x318 | Operation was aborted | 
| 0x319 | Data is corrupted or has wrong format | 
| 0x31A | Error by flash operations | 
| 0x31B | Wrong length of request block at firmware interface, firmware not compatible to host sw | 
| 0x31C | Reset request was sent to firmware, but firmware startup cannot be verified | 
| 0x31D | Failed to start thread for handling asynchronous buffer exchange | 
| 0x31E | Pnio lib in host could not attach to PPA register set | 
| 0x31F | No callback registered | 
| 0x320 | Update time is out of expected range | 
| 0x321 | Update of firmware requires a host restart | 
| 0x323 | Location format invalid | 
| 0x324 | Location level invalid | 
| 0x325 | Annotation too large | 
| 0x326 | Order ID too large | 
| 0x327 | Both hardware versions set | 
| 0x328 | Hardware version long too large | 
| 0x329 | Both software versions set | 
| 0x32A | Software version long too large | 
| 0x32B | Serial number too large | 
