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 - Setup v2

IO751 - Setup v2 — Configure the IO751 IO module

Library

Simulink Real-Time - Speedgoat

Description

The Setup block configures the protocol stack of the related I/O module and enables the send and receive blocks to exchange data on the network.

During initialization of the real-time application, the block reads a configuration file from the hard drive of the target machine and configures the PROFINET Controller protocol stack. This file is automatically packed into the real-time application by the build process and unpacked during the initialization of the real-time application on the target. Please read the usage notes to learn how to use the SYCON.net configuration tool to create such a file.

Ports

This driver block has no input or output ports.

Parameters

Tab: Configuration
Module ID

The Module ID has two functions:

  • It logically connects the Setup block and its I/O blocks

  • It also informs the auto-search feature of the PCI Slot parameter. If only one I/O module of this family is installed, the Module ID must be set to 1. To see how each I/O module maps to a Module ID, use this Speedgoat API:

    speedgoat.getIoInterfaces("TargetName", "mySpeedgoat")

This Setup block belongs to two families of I/O modules that use the same hardware for multiple protocols. Across both families, the Module ID must be unique.

  • IO64X/IO75X (single-node modules): IO641, IO642, IO643, IO644, IO750, IO751, IO752, IO753, IO754, IO755, IO756, IO758

  • IO64X-32/IO75X-32 (multi-node modules): IO642-32, IO752-32, IO754-32, IO756-32

If the PCI Slot parameter is set to -1 (auto-search), the Module ID must be in the range 1:n, where 'n' cannot be larger than the number of modules of this type installed in the target machine. Not all installed I/O modules need to be used.

To use this Setup block with a multi-node I/O module (IO75X-32 family), the Module ID must be defined as a two-element vector. The second vector element is the sub-module ID. It describes the specific node (1:32) within the I/O module. The 32 nodes are internally connected to form two linear networks (daisy-chain), where the first and the last node of both chains are externally accessible. If one node is not configured (has no Setup block), the chain terminates at this point. The sub-module IDs must therefore start at node 1, 16, 17 or 32 and not have any gaps.

[Note]Note

When using I/O modules of both families simultaneously (single-node and multi-node I/O modules), always use explicit addressing in the PCI Slot parameter. Ignore the Module IDs returned by the getIoInterfaces function and instead assign unique Module IDs accross all modules used.

PCI Slot (-1: auto-search)

There are two approaches for mapping the block to a specific I/O module installed in your target machine. All modules of the same family (see Module ID above) must be configured using the same method.

  • Auto-Search: with the default value -1 the I/O module will be automatically located in the target machine. If you have multiple modules of the same family, the Module ID defines which module is associated with this block. To see how each I/O module maps to a Module ID, use this Speedgoat API:
    speedgoat.getIoInterfaces("TargetName", "mySpeedgoat")
  • Explicit Addressing: to explicitly define the logical address of the I/O module in the target machine, you can provide the PCI bus and slot numbers as a vector: [bus, slot]. To determine these numbers, run the following command in the MATLAB command window:
    speedgoat.getIoInterfaces("TargetName", "mySpeedgoat", "Advanced", true)
    Note that the PCI address can change whenever an I/O module is added or removed. Usually, auto-search is the best option.
Configuration File

The path to the SYCON.net configuration file on the host PC. Enter an absolute path to the file or use a function to obtain a relative path.

'C:\projects\config.nxd'
[pwd, '\..\config.nxd']

Type: char

Select

Instead of typing the path to the configuration file manually, click this button and simply select the configuration file.

Optimize Acyclic Data Transfer

This parameter impacts the Record Read and Write blocks. Reading and writing records of external PROFINET devices is referred to as "acyclic communication".

If cleared (default), acyclic messages are processed in real-time according to the Sample time entered in the Send and Receive blocks. In this mode, cyclic and acyclic messaging share the same real-time thread. To prevent runtime violations (e.g., CPU overloads), Record blocks are processed sequentially; therefore, only one Record can be read/written per real-time step. The more Record blocks in the model, the longer it takes to send all record requests and receive the corresponding record responses.

For example, with a sample time of 10 ms in the Send, Receive, and Record blocks, it will take 30 ms for three Record Read blocks to output new data (i.e., Record block 1: 10 ms, Record block 2: 10 ms, Record block 3: 10 ms), assuming all remote devices respond within 10 ms.

If selected, acyclic data throughput can be increased. Both the cyclic and acyclic messaging are moved to a free-running background thread with lower priority. Record read/write requests are sent out as fast as possible, depending on the source connected to the Enable input port and the sample time of the Record block.

With a sample time of 10 ms in the Send, Receive, and Record blocks, the three Record blocks will output new data right in the next 10 ms step, assuming the remote devices respond within 10/3 ms.

Note: due to the fact that the cyclic data exchange is also handled in that background thread, the additional data buffering required for consistency may introduce latencies in cyclic signal paths.

[Caution]Caution

In IRT mode, you must not select this checkbox or use Record blocks at all!