Documentation search search close
CONTENTS
https://www.speedgoat.com/help/slrt/page/icon_documentation.jpg
v10.0.1.x for R2026a
View other versions

IO751 Usage Notes

IO751 Usage Notes — Usage information about the I/O module

Description

This section provides further information on how to configure the IO751 PROFINET Controller module.

SYCON.net

During initialization of the real-time application, the IO751 Setup block reads a configuration file from the hard drive of the target machine and configures the PROFINET Controller protocol stack. Use the SYCON.net configuration tool to create such a file.

[Tip]Tip

Download the SYCON.net configuration tool from the Speedgoat Customer Portal. Login to your Speedgoat account. In the Downloads section, navigate to Software and click SYCON.net (v1.500 Build 231214).

I/O Module Configuration for Unsynchronized Communication (RT)

In addition to this short introduction, please read the SYCON.net help documentation for detailed information about how to set up a PROFINET network and export the module configuration file.

  1. Open SYCON.net and create a new project

  2. In the right window, select the Fieldbus tab, navigate to PROFINET IO > Master, select the CIFX RE/PNM V3 item and drag it to the bus line in the Network View window

  3. In the main menu bar, navigate to Network and click Import Device Descriptions. Select the PROFINET GSDML (*.xml) files of the devices in your PROFINET network

  4. In the right window, select the Fieldbus tab, navigate to PROFINET > Slave, select the device you want to add and drag it to the controller bus line in the Network View window. Repeat this step for all devices connected with the IO751 module

  5. Double-click the device node in the Network View window, navigate to Configuration > Modules and use the Add Module and Add Submodule buttons to add the modules and submodules the GSDML provides to the slots and subslots of the device. The modules configuration must match the configuration of the real device. Repeat this step for all PROFINET device nodes

  6. Double-click the controller node in the Network View window, navigate to Controller Network Settings and change the IP Settings for the controller if required. During runtime, the PROFINET controller searches the configured PROFINET devices by name and assigns automatically generated IP addresses to the devices found. The IP address generation is based on the controller's IP address entered in the IP Settings menu

  7. In the left-hand navigation, click Device Table. In the Name of station column, enter the names of the PROFINET devices connected with the module. If unknown, use a scanner tool such as PRONETA to obtain the station names

  8. In the left-hand navigation, click IP Address Table. In the Mode column, select Inherit(Standard) for each device and do not change the IP addresses

  9. In the left-hand navigation, click Stations Timing. In the RT mode column, select Unsynchronized (RT) for all devices. Specify the Updating time for each device in the range 1 to 512 milliseconds and leave the automatically calculated Watchdog time. The Updating time is the interval between two cyclic frames sent from the controller to the device (applies to the frames sent from the device to the controller as well)

  10. In the left-hand navigation, click Controller Settings. Use the Start of bus communication parameter to determine when the module should start the communication with the connected devices

    • Automatically by device: The I/O module starts the communication immediately after the initialization of the real-time application on the target. The communication is maintained even if the real-time application stops

    • Controlled by application: After the initialization of the real-time application on the target (model download), the communication of the I/O module with the network is off. The device starts the communication when the real-time application starts. The device stops the communication when the real-time application stops

  11. Click the Apply button, close the window, and save the project

  12. Right-click the controller node in the Network View window, navigate to Additional Functions > Export and click DBM/nxd. Save the file to a destination of your choice. Paste the path in the Configuration File parameter of the IO751 Setup block

I/O Module Configuration for Synchronized Communication (IRT)

To enable synchronized communication, further parameters must be set in addition to the basic configuration described in the previous section. In IRT mode, the PROFINET devices are synchronized with the network clock driven by the sync master (the PROFINET controller). This enables the synchronization between the application running on the PROFINET controller and the applications running on the PROFINET devices. In addition, for devices which have isochronous submodules, a simultaneous acquisition of setpoints that originate from a specific cycle of the controller application can be achieved. IRT can only be activated for devices which are IRT-capable and whose GSDML files contain the necessary attributes. A mixed communication between RT and IRT is possible but requires special network switches.

  1. Double-click the controller node in the Network View window and navigate to Stations Timing. In the RT mode column, select Synchronized (IRT) for the devices for which IRT communication should be activated. Enter the Basic send-clock in the range 0.25 to 4.0 ms and specify the Updating time for the IRT-enabled devices in the same range. The Updating Times of all devices must be a multiple of the Basic send-clock .

    Isochronous mode is automatically selected if an IRT-capable submodule is activated in the Isochronous modules dialog

  2. In the left-hand navigation, click Isochronous modules and select the submodules for which you want to activate isochronous data exchange

  3. Switch to the Topology View tab at the bottom of the main window. In this view, connect the ports as per the real-world setup. Clicking on a connection opens the dialog for the cable length and delay time.

    Click the controller tile and select the Synchronized (IRT) master for the Synchronization role in the parameter list on the right.

    Select the Synchronized (IRT) slave for the IRT-enabled devices

  4. Export the configuration file as described in the previous section

  5. To synchronize the real-time application running on the target machine with the base clock, place the related IO751 Send and Receive blocks in a function-call subsystem connected to an Interrupt Setup block. In the Interrupt Setup block, select the same Module ID as in the IO751 Setup block. Refer to the Utilities documentation for more information about this block

How to Use the IO751 Send and Receive Blocks

The IO751 module autonomously exchanges data with the connected devices based on the Updating Time defined in the Stations Timing dialog and the data items selected in the Modules dialog of the device nodes. The IO751 Send and Receive blocks access the process data the module shares with the real-time application. The Send block copies data from its input port to the module's output area (data sent to the remote devices), and the Receive block copies data from the input area to its output port (data received from the remote devices). The layout of both areas is available in the Address Table dialog.

Inside both process data areas, the module arranges the data items consecutively according to the device order in the Device Table dialog. Each device and its data items are represented by specific offsets in the Address Table. The Send and Receive blocks copy a specific number of bytes from/to offset 0 of the respective area (inputs/outputs) according to the Number of Bytes parameter in the block mask. For the Receive block, best practice is to output the whole range of input data items and use Byte Unpacking blocks to extract the data. For this purpose, the Length and Offset columns show the lengths and offsets of the items. The overall number of bytes can be derived from the last row: total number of bytes = offset + length. Pass this number to the Number of Bytes parameter of the Receive block. In the screenshot above, the total number of input bytes is 42. The same applies to the Send block. Here, refer to the output area and use Byte Packing blocks to assemble the data to send.

The actual process data items have the Process Data type in the Type column. In addition, each submodule can feature consumer and provider status information, which indicates a low quality or a faulty status of the submodule. You can read and write this information in Simulink as well.

[Tip]Tip

You can autogenerate the entire data assembly and extraction part for your model including Send, Receive, Packing and Unpacking blocks with the help of the createFromSycon function.

Front Plate Description

IO751 PCI and PCIe modules

The IO751 acts as one PROFINET Controller exclusively. The two RJ45 connectors simply serve to build up a line-based network structure. Plug the cable from the previous PROFINET Device into the first socket. Connect the second socket with the next PROFINET Device. The LEDs described below indicate the communication status of the single PROFINET Controller.

The rotary switch has no functional role.

IO751 mPCIe module

Note that in some real-time target machines, the mPCIe module is reversed; that is, the Error LED appears on the right.

LED Status Description

SYSSF/COM1BF/COM2Meaning
OffOffOffPower supply for the device is missing or hardware defect
On, yellowOffOffNo second stage bootloader found in Flash memory
Flashing green/yellow, cyclicOffOffNo firmware file found in Flash file system
On, greenOn, redOffPROFINET IO Controller is not configured
On, greenOffOn, red

No Ethernet port has a link. E.g., no cable connected to any of the Ethernet ports

On, greenOffFlashing, red, 2 HzPROFINET IO Controller is not online (Bus is switched to Off)
On, greenOff or On, redFlashing, 1 HzNot all configured devices are in data exchange
On, greenOn, red-

One IO Device connected to the PROFINET IO Controller reports a problem

On, greenOffOff

All devices are in data exchange and no problem has been reported by any device

On, greenFlashing, red, 1 Hz, 3 sOff

A PROFINET DCP Set Signal has been received

On, greenFlashing, red, 2 HzFlashing, red, 2 Hz

The PROFINET IO Controller has detected an address conflict. Another device in the network is using the same Name of Station or IP address as the PROFINET IO Controller

Or

Watchdog error

On, greenOn, red

On, red

No valid Master license

Note that only the IO751 PCI and PCIe modules have the SYS LED. This LED does not feature on the IO751 mPCIe module.

Protocol Stack Status Codes

For the list of status codes, please refer to the Status Codes for Protocols Supported with the IO64x/IO75x Modules.

PROFINET Status Codes

Status codes defined by the PROFINET protocol standard and used by the IO751 Record Read and Write blocks. The status code is structured into four bytes:

  • Byte 1

    This field defines the domain in which the error occurred.

    CodeUseDescription
    0x20 - 0x3FManufacturer-specific: for Log BookTo be used when the application generates a log book entry. Meaning of the values is manufacturer-specific (Defined by manufacturer of the device.)
    0x81PNIO: for all errors not covered elsewhereUsed for all errors not covered by the other domains
    0xCFRTA error: used in RTA error PDUsUsed in alarm error telegrams (Low Level)
    0xDAAlarmAck: used in RTA data PDUsUsed in alarm data telegrams (High Level)
    0xDBIODConnectRes: RPC Connect ResponseUsed to indicate errors that occurred when handling a Connect request.
    0xDCIODReleaseRes: RPC Release ResponseUsed to indicate errors that occurred when handling a Release request.
    0xDDIODControlRes: RPC Control ResponseUsed to indicate errors that occurred when handling a Control request
    0xDEIODReadRes: RPC Read ResponseUsed to indicate errors that occurred when handling a Read request
    0xDFIODWriteRes: RPC Write ResponseUsed to indicate error occurred when handling a Write response
  • Byte 2

    This field defines the context in which the error occurred.

    CodeUseDescription
    0x80PNIORW: Application errors of the services Read and WriteUsed in the context of Read and Write services handled by either the PROFINET Device stack or by the Application
    0x81PNIO: Other ServicesUsed in context with any other services
    0x82Manufacturer-Specific: LogBook EntriesUsed in context with LogBook entries generated by the stack or by the application
  • Byte3 and Byte4 in case of Byte2 == PNIORW

    If Byte2 is set to PNIORW, Byte4 is encoded user-specific and Byte3 is split into an error class nibble and a nibble holding the actual error code.

    Class (Bit 7-4)MeaningError (Bit 3-0)Meaning
    0xAApplication0x0Read Error
      0x1Write Error
      0x2Module Failure
      0x7Busy
      0x8Version Conflict
      0x9Feature Not Supported
      0xA-0xFUser-specific
    0xBAccess0x0Invalid Index
      0x1Write Length Error
      0x2Invalid Slot/Subslot
      0x3Type Conflict
      0x4Invalid Area/Api
      0x5State Conflict
      0x6Access Denied
      0x7Invalid Range
      0x8Invalid Parameter
      0x9Invalid Type
      0xABackup
      0xB-0xFUser-specific
    0xCResource0x0Read Constrain Conflict
      0x1Write Constrain Conflict
      0x2Resource Busy
      0x3Resource Unavailable
      0x8-0xFUser-specific
    0xD-0xFUser-specific0x0-0xFUser-specific
  • Byte3 and Byte4 in case of Byte2 == PNIO

    The meaning of Byte3 and Byte4 for Byte2 = PNIO is shown in the following table.

    Byte3MeaningByte4Meaning
    0x01Connect Parameter Error. Faulty ARBlockReq0x00-0x0DError in one of the Block Parameters
    0x02Connect Parameter Error. Faulty IOCRBlockReq0x00-0x1CError in one of the Block Parameters
    0x03Connect Parameter Error. Faulty ExpectedSubmoduleBlockReq0x00-0x10Error in one of the Block Parameters
    0x04Connect Parameter Error. Faulty AlarmCRBlockReq0x00-0x0FError in one of the Block Parameters
    0x05Connect Parameter Error. Faulty PrmServerBlockReq0x00-0x08Error in one of the Block Parameters
    0x06Connect Parameter Error. Faulty MCRBlockReq0x00-0x08Error in one of the Block Parameters
    0x07Connect Parameter Error. Faulty ARRPCBlockReq0x00-0x04Error in one of the Block Parameters
    0x08Read Write Record Parameter Error. Faulty Record0x00-0x0CError in one of the Block Parameters
    0x09Connect Parameter Error Faulty IRInfoBlock0x00-0x05Error in one of the Block Parameters
    0x0AConnect Parameter Error Faulty SRInfoBlock0x00-0x05Error in one of the Block Parameters
    0x0BConnect Parameter Error Faulty ARFSUBlock0x00-0x05Error in one of the Block Parameters
    0x14IODControl Parameter Error. Faulty ControlBlockConnect0x00-0x09Error in one of the Block Parameters
    0x15IODControl Parameter Error. Faulty ControlBlockPlug0x00-0x09Error in one of the Block Parameters
    0x16IOXControl Parameter Error. Faulty ControlBlock after a connection establishment0x00-0x07Error in one of the Block Parameters
    0x17IOXControl Parameter Error. Faulty ControlBlock a plug alarm0x00-0x07Error in one of the Block Parameters
    0x18IODControl Parameter Error Faulty ControlBlockPrmBegin0x00-0x09Error in one of the Block Parameters
    0x19IODControl Parameter Error Faulty SubmoduleListBlock0x00-0x07Error in one of the Block Parameters
    0x28Release Parameter Error. Faulty ReleaseBlock0x00-0x07Error in one of the Block Parameters
    0x32Response Parameter Error. Faulty ARBlockRes0x00-0x08Error in one of the Block Parameters
    0x33Response Parameter Error. Faulty IOCRBlockRes0x00-0x06Error in one of the Block Parameters
    0x34Response Parameter Error. Faulty AlarmCRBlockRes0x00-0x06Error in one of the Block Parameters
    0x35Response Parameter Error. Faulty ModuleDiffBlock0x00-0x0DError in one of the Block Parameters
    0x36Response Parameter Error. Faulty ARRPCBlockRes0x00-0x04Error in one of the Block Parameters
    0x37Response Parameter Error Faulty ARServerBlockRes0x00-0x05Error in one of the Block Parameters
    0x3CAlarmAck Error Codes0x00Alarm Type Not Supported
      0x01Wrong Submodule State
    0x3DCMDEV0x00State conflict
      0x01Resource
      0x02-0xFFState machine specific
    0x3ECMCTL0x00State conflict
      0x01Timeout
      0x02No data send
    0x3FCTLDINA0x00No DCP active
      0x01DNS Unknown_RealStationName
      0x02DCP No_RealStationName
      0x03DCP Multiple_RealStationName
      0x04DCP No_StationName
      0x05No_IP_Addr
      0x06DCP_Set_Error
    0x40CMRPC0x00ArgsLength invalid
      0x01Unknown Blocks
      0x02IOCR Missing
      0x03Wrong AlarmCRBlock count
      0x04Out of AR Resources
      0x05AR UUID Unknown
      0x06State conflict
      0x07Out of Provider, Consumer or Alarm Resources
      0x08Out of memory
      0x09PDev already owned
      0x0AARset State conflict during connection establishment
      0x0BARset Parameter conflict during connection establishment
    0x41ALPMI0x00Invalid state
      0x01Wrong ACK-PDU
    0x42ALPMR0x00Invalid state
      0x01Wrong Notification PDU
    0x43LMPM0x00–0xFFEthernet Switch Errors
    0x44MAC0x00-0xFF 
    0x45RPC0x01CLRPC_ERR_REJECTED: EPM or Server rejected the call.
      0x02CLRPC_ERR_FAULTED: Server had fault while executing the call
      0x03CLRPC_ERR_TIMEOUT: EPM or Server did not respond
      0x04CLRPC_ERR_IN_ARGS; Broadcast or maybe “ndr_data” too large
      0x05CLRPC_ERR_OUT_ARGS: Server sent back more than “alloc_len”
      0x06CLRPC_ERR_DECODE: Result of EPM Lookup could not be decoded
      0x07CLRPC_ERR_PNIO_OUT_ARGS: Out-args not “PN IO signature”, too short or inconsistent
      0x08CLRPC_ERR_PNIO_APP_TIMEOUT: RPC call was terminated after RPC application timeout
    0x46APMR0x00Invalid state
      0x01LMPM signaled an error
    0x47APMS0x00Invalid state
      0x01LMPM signaled an error
      0x02Timeout
    0x48CPM0x00Invalid state
    0x49PPM0x00Invalid state
    0x4ADCPUCS0x00Invalid state
      0x01LMPM signaled an error
      0x02Timeout
    0x4BDCPUCR0x00Invalid state
      0x01LMPM signaled an error
    0x4CDCPMCS0x00Invalid state
      0x01LMPM signaled an error
    0x4DDCPMCR0x00Invalid state
      0x01LMPM signaled an error
    0x4EFSPM0x00-0xFFFAL Service Protocol Machine error
    0x64CTLSM0x00Invalid state
      0x01CTLSM signaled error
    0x65CTLRDI0x00Invalid state
      0x01CTLRDI signaled an error
    0x66CTLRDR0x00Invalid state
      0x01CTLRDR signaled an error
    0x67CTLWRI0x00Invalid state
      0x01CTLWRI signaled an error
    0x68CTLWRR0x00Invalid State
      0x01CTLWRR signaled an error
    0x69CTLIO0x00Invalid state
      0x01CTLIO signaled an error
    0x6ACTLSU0x00Invalid state
      0x01AR add provider or consumer failed
      0x02AR alarm-open failed
      0x03AR alarm-ack-send
      0x04AR alarm-send
      0x05AR alarm-ind
    0x6BCTLRPC0x00Invalid state
      0x01CTLRPC signaled an error
    0x6CCTLPBE0x00Invalid state
      0x01CTLPBE signaled an error
    0xC8CMSM0x00Invalid state
      0x01CMSM signaled an error
    0xCACMRDR0x00Invalid state
      0x01CMRDR signaled an error
    0xCCCMWRR0x00Invalid state
      0x01AR is not in state Primary. (Write not allowed)
      0x02CMWRR signaled an error
    0xCDCMIO0x00Invalid state
      0x01CMIO signaled an error
    0xCECMSU0x00Invalid state
      0x01AR add provider or consumer failed
      0x02AR alarm-open failed
      0x03AR alarm-send
      0x04AR alam-ack-send
      0x05AR alarm-ind
    0xD0CMINA0x00Invalid state
      0x01CMINA signaled an error
    0xD1CMPBE0x00Invalid state
      0x01CMPBE signaled an error
    0xD2 CMDMC 0x00Invalid state
      0x01CMDMC signaled an error
    0xFDUsed by RTA for protocol error (RTA_ERR_CLS_PROTOCOL)0x00Reserved
      0x01error within the coordination of sequence numbers (RTA_ERR_CODE_SEQ)
      0x02instance closed (RTA_ERR_ABORT)
      0x03AR out of memory (RTA_ERR_ABORT)
      0x04AR add provider or consumer failed (RTA_ERR_ABORT)
      0x05AR consumer DHT / WDT expired (RTA_ERR_ABORT)
      0x06AR cmi timeout (RTA_ERR_ABORT)
      0x07AR alarm-open failed (RTA_ERR_ABORT)
      0x08AR alarm-send.cnf(-) (RTA_ERR_ABORT)
      0x09AR alarm-ack- send.cnf(-) (RTA_ERR_ABORT)
      0x0AAR alarm data too long (RTA_ERR_ABORT)
      0x0BAR alarm.ind(err) (RTA_ERR_ABORT)
      0x0CAR rpc-client call.cnf(-) (RTA_ERR_ABORT)
      0x0DAR abort.req (RTA_ERR_ABORT)
      0x0EAR re-run aborts existing (RTA_ERR_ABORT)
      0x0FAR release.ind received (RTA_ERR_ABORT)
      0x10AR device deactivated (RTA_ERR_ABORT)
      0x11AR removed (RTA_ERR_ABORT)
      0x12AR protocol violation (RTA_ERR_ABORT)
      0x13AR name resolution error (RTA_ERR_ABORT)
      0x14AR RPC-Bind error (RTA_ERR_ABORT)
      0x15AR RPC-Connect error (RTA_ERR_ABORT)
      0x16AR RPC-Read error (RTA_ERR_ABORT)
      0x17AR RPC-Write error (RTA_ERR_ABORT)
      0x18AR RPC-Control error (RTA_ERR_ABORT)
      0x19AR forbidden pull or plug after check.rsp and before in- data.ind (RTA_ERR_ABORT)
      0x1AAR AP removed (RTA_ERR_ABORT)
      0x1BAR link down (RTA_ERR_ABORT)
      0x1CAR could not register multicast-mac address (RTA_ERR_ABORT)
      0x1Dnot synchronized (cannot start companion-ar) (RTA_ERR_ABORT)
      0x1Ewrong topology (cannot start companion-ar) (RTA_ERR_ABORT)
      0x1Fdcp, station-name changed (RTA_ERR_ABORT)
      0x20dcp, reset to factory-settings (RTA_ERR_ABORT)
      0x21cannot start companion-AR because a 0x8ipp submodule in the first AR... (RTA_ERR_ABORT)
      0x22no irdata record yet (RTA_ERR_ABORT)
      0x23PDEV (RTA_ERROR_ABORT)
      0x24PDEV, no port offers required speed / duplexity (RTA_ERR_ABORT)
      0x25IP-suite [of the IOC] changed by means of DCP set(IPParameter) or local engineering (RTA_ERR_ABORT)
      0x26IOCARSR RDHT expired (RTA_ERROR_ABORT)
      0xC9AR removed by reason of watchdog timeout in the Application task (RTA_ERROR_ABORT)
      0xCAAR removed by reason of pool underflow in the Application task (RTA_ERROR_ABORT)
      0xCBAR removed by reason of unsuccessful packet sending (Queue) inside OS in the Application task (RTA_ERROR_ABORT)
      0xCCAR removed by reason of unsuccessful memory allocation in the Application task (RTA_ERROR_ABORT)
    0xFFUser-specific0x00-0xFEUser-specific
      0xFFRecommended for “User abort” without further detail