iRJ45 / SoM - GOAL examples

The following are a selection of available applications for the application controller as counterpart to the SoM. For a more detailed description see the application notes for EtherNet/IP and Profinet.

 

01_pnio_io_mirror

Purpose

This example implements a PROFINET slave including a http management interface.

Configuration

By default no IP address is set. Using a configuration tool (e.g. Industrial communication explorer) a valid configuration must be provided.

The device configuration is following:

Slot

Subslot

Module

1

1

„I Signed8" – 1 Byte Input data

2

1

„O Signed8" – 1 Byte Output data

3

1

„I Signed16" – 2 Byte Input data

4

1

„O Signed16" – 2 Byte Output data

Table 37 Example configuration

Record Index

Data

0x7000

3 byte of parameter data (read/write)

The GSDML file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\01_pnio_io_mirror\gsdml"

Usage Hints

This example shows how to implement a basic PROFINET slave. It also shows handling of process data by mapping the output data of module „O Signed8" to the input data of module „I Signed8" and mapping output data of module „O Signed16" to the input data of the module "I Signed16".

Beside that a management interface under HTTP://<DEVICE-IP> is provided, where under "Device Management" access from the Management Tool or Firmware update can be enabled and disabled.
Beside that the example shows implementation of application specific record data (parameters).
This example also controls the LEDs on the shield module.

01_pnio_io_mirror_renesas

This example is equal to example 01_pnio_io_mirror, however it uses different Vendor and Device id (Renesas). The GSDML file which contains "Renesas" must be utilised.

02_eip_io_data

Purpose

This example implements a EtherNet/IP slave including a http management interface.

Configuration

This example requires a DHCP server to obtain an IP address. The device configuration is following:

Assembly ID

Size

Properties

150

32

Output Data

100

32

Input Data

151

10

Configuration Data

Table 38 Example configuration

The EDS file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\02_eip_io_data"

Usage Hints

This example shows how to implement a basic EtherNet/IP slave. It also shows handling of process data by mapping the output data of Assembly 150 to the input data of Assembly 100.

Beside that a management interface under HTTP://<DEVICE-IP> is provided, where under "Device Management" access from the Management Tool or Firmware update can be enabled and disabled.
This example also controls the LEDs on the shield module.

The example http content contains an upload page, which allows posting arbitrary data of a maximum of 15000 bytes to the device. The page is not visible via a web browser, however using the command line tool curl the feature is usable:

# upload data curl -v http://192.168.0.100/upload.html -F file="This is a test" # download the data curl -v "http://192.168.0.100/upload.html?data"

02_eip_io_data_renesas

This example is equal to example 02_eip_io_data, however it uses different Vendor and Device id (Renesas). The EDS file which contains "Renesas" must be utilized.

05_pnio_01_simple_io

Purpose

This example implements a PROFINET slave.

Configuration

By default no IP address is set. Using a configuration tool (e.g. Industrial Communication Explorer) a valid configuration must be provided. The device configuration is following:

Slot

Subslot

Module

1

1

„64 bytes Input" – 64 byte input data

2

1

„64 bytes Output" – 64 Byte Output data

Table 39 Example configuration

The GSDML file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\05_pnio_01_simple_io\gsdml"

Usage Hints

This example shows how to implement a basic profinet slave. It also shows handling of process data by mapping the output data of module „64 bytes output" to the input data of module „64 bytes input".
Beside that a management interface under HTTP://<DEVCIE-IP> is provided, where under "Device Management" access from the Management Tool or Firmware update can be enabled and disabled.

05_pnio_01_simple_io_renesas

This example is equal to example 05_pnio_01_simple_io, however it uses different Vendor and Device id (Renesas). The GSDML file which contains "Renesas" must be utilized.

06_eip_io_data_static_ip

This example implements a EtherNet/IP slave including a http management interface.

Configuration

This example configures a static IP address at startup, which is 192.168.0.100. Any reconfiguration with the management tool will be overwritten after restart. The device configuration is following:

Assembly ID

Size

Properties

150

32

Output Data

100

32

Input Data

151

10

Configuration Data

Table 40 Example configuration

The EDS file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\02_eip_io_data"

Usage Hints

This example shows how to implement a basic EtherNet/IP slave. It also shows handling of process data by mapping the output data of Assembly 150 to the input data of Assembly 100.

Beside that a management interface under HTTP://<DEVICE-IP> is provided, where under "Device Management" access from the Management Tool or Firmware update can be enabled and disabled.
This example also controls the LEDs on the shield module.

07_pnio_dsn

Purpose

This example implements a PROFINET slave using the PROFINET design tool. The project file is supplied.

Configuration

By default no IP address is set. Using a configuration tool (e.g. Industrial Communication Explorer) a valid configuration must be provided. The device configuration is following:

Slot

Subslot

Module

1

1

„I Signed8" – 1 Byte Input data

2

1

„O Signed8" – 1 Byte Output data

3

1

„I Signed16" – 2 Byte Input data

4

1

„O Signed16" – 2 Byte Output data

Table 41 Example configuration

The GSDML file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\07_pnio_dsn\gsdml"
The Design tool project file is located beside the generated gsdml file:
"goal\appl\2015013_irj45\ac\07_pnio_dsn\gsdml\irj45.dsntool"

Usage Hints

This example shows how to implement a basic profinet slave. It only contains the generated stub code from the design tool, application functions need to be added (refer to example 01_pnio_io_mirror).

09_ecat_slave

Purpose

This example implements an EtherCAT slave.

Configuration

Index

SubIndex

Name

DataType

Description

0x200c

0x00

application object

UINT32

example object

0x200d

0x00

application object

UINT32

example object

0x200e

0x00

application object

UINT32

example object

0x200f

0x00

application object

UINT32

example object

0x6200

0x01

Write State 8 Output Lines (SI1)

UINT8

digital output data

0x6200

0x02

Write State 8 Output Lines(SI2)

UINT8

digital output data

0x6411

0x01

Write Analog Output 16 Bit (SI1)

UINT16

analog output data

0x6411

0x02

Write Analog Output 16 Bit (SI2)

UINT16

analog output data

0x6000

0x01

Read State 8 Input Lines (SI1)

UINT8

digital input data

0x6000

0x02

Read State Input Lines (SI2)

UINT8

digital input data

0x6401

0x01

Read Analog Input 16 Bit (SI1)

UINT16

analog input data

0x6401

0x02

Read Analog Input 16 Bit (SI2)

UINT16

analog input data

Table 42 EtherCAT example mappable objects

By default all PDOs are active (objects 0x1C12, 0x1C13):

  • TxPDOs: 0x1A00, 0x1A01

  • RxPDOs: 0x1600, 0x1601

The default PDO mapping is following:

  • RxPDO 0x1A00:

    • Object 0x6000:0x01 (digital Inputs 1 – 8)

  • RxPDO 0x1A01:

    • Empty

  • TxPDO 0x1600:

    • Object 0x6200:0x01 (digitl Outputs 1-8)

  • TxPDO 0x1601:

    • Empty

The ESI file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\09_ecat_slave\esi\09_ecat_slave_port.xml"

Usage Hints

Regarding detailed application function of the application please check application note "1000 – ethercat evaluation". The application configures the ccm module so log messages from the communication controller are transferred to the application controller and thus can be seen on the ACs uart log.

10_pnio_process_alarm

Purpose

This example implements a PROFINET slave and shows generation of process alarms.

Configuration

By default no IP address is set. Using a configuration tool (e.g. Industrial Communication Explorer) a valid configuration must be provided. The device configuration is following:

Slot

Subslot

Module

1

1

„64 bytes Input" – 64 byte input data

2

1

„64 bytes Output" – 64 Byte Output data

Table 42 Example configuration

The GSDML file for this example is located beside the application code:
"goal\appl\2015013_irj45\ac\10_pnio_process_alarm\gsdml"

Usage Hints

This example continuously generates process alarms to the PLC. Thus this example cannot be used with the current version of the Management Tool. A profinet capable PLC is required to handle the process alarms.

11_firmware_update

Purpose

This example implements firmware update of the ccm module over RPC/SPI.

Usage Hints

The application is intended for linux based systems, since it loads the firmware data from a file. For embedded systems without filesystem a mechanism for storage and retrieval of the firmware data needs to be implemented (see function appl_setup).

13_firmware_update_callback

Purpose

This example demonstrates usage of the optional event callback for firmware update.

Configuration

This example configures the IP address of the module to 192.168.0.100/24.

Usage Hints

This application registers for firmware update events. It thus gets informed about events when the firmware of the communication module is updated.

17_mbtcp_simple_io

Modbus Simple I/O Example with basic Data Types: This example defines regions for every writeable data type and creates several data objects. Read-only objects (Input Register and Discrete Inputs) are provided by the application itself, read/write objects are provided by the stack.

The Data Regions are defined at the file goal_appl.h by APPL_COIL_REGION_START and APPL_HOLD_REG_REGION_START. The Indices of the Objects are defined similiarly by for e.g., APPL_DISC_INPUT_X.

18_opcua_basic

This application provides a simple demo for an OPC UA server. It features several data objects, methods and events. Please see the main documentation for specific OPC UA information.

19_opcua_extended

This application provides an extended demo for an OPC UA server used for the official conformance test. It features almost every data object, methods and events. Please see the main documentation for specific OPC UA information.

http_01_get

Purpose

This example shows usage of the web server. It shows implementing GET-request support.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

Open the URL HTTP://<DEVICE-IP>:8081, where a simple web page is shown.

http_02_post

Purpose

This example shows usage of the web server. It shows implementing POST-request support.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. There a small amount of data can be uploaded to the application.

http_03_list_res

Purpose

This example shows usage of the web server. It shows supporting of hirachical urls.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. It provides several sub pages shown on the main page.

http_04_auth

This example shows usage of the web server. It shows supporting of basic authentication.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

This example creates 4 pages with separate authentication data:

URL

Credentials

HTTP://<DEVICE-IP>:8080

index:level0

HTTP://<DEVICE-IP>:8080/page1.html

page1:level1

HTTP://<DEVICE-IP>:8080/page2.html

page2:level2

HTTP://<DEVICE-IP>:8080/page3.html

page3:level3

When opening one of the listed urls the provides login credentials are required.

This example modifies credentials of authentication level 0. If those settings are stored permanently in the CC module, firmware update will fail with default credentials. Reset settings to default value "" using the Management Tool.

http_05_template_cm

Purpose

This example shows usage of the web server. It shows implementing GET-request support with templating for CM variables.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. It demonstrates template replacement of template usage with CM variable reference.
The string [CM:12, 0] will be replaced with the IP address of the device.

http_06_template_list

This example shows usage of the web server. It shows implementing GET-request support with templating for a list.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. It demonstrates template replacement of template usage with list support.

http_07_template_table

Purpose

This example shows usage of the web server. It shows implementing GET-request support with templating for a table.

Configuration

This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.

Usage Hints

Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. It demonstrates template replacement of template usage with table support.
A table of sensors with different sensor values is generated.

net_01_udp_receive

Purpose

This example shows usage of the UDP. It shows implementing a echo server on a specific UDP port.

Configuration

This example sets the IP address 192.168.0.100/24.

Usage Hints

Using netcat the udp server can be tested. Just type some text, and the server will reply this message.

netcat -u 192.168.0.100 1234 Testing the echo server using UDP! Testing the echo server using UDP!

net_02_tcp_client

Purpose

This example shows usage of the TCP as a client. It shows how to connect to a TCP server.

Configuration

This example sets the IP address 192.168.0.100/24.
It expects a TCP server on a remote server with IP address 192.168.0.10 on port 1234.

Usage Hints

Using netcat a tcp server can be provided. Once the application runs, the client will send the following messages.

netcat -l 192.168.0.10 1234 TESTSTRING 0TESTSTRING 1TESTSTRING 2TESTSTRING 3TESTSTRING 4

net_03_tcp_server

Purpose

This example shows usage of the TCP as a server.

Configuration

This example sets the IP address 192.168.0.100/24.

Usage Hints

Using netcat a connection to the TCP server can be established. Just type some text, and the server will send the following messages.