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.
- 1 01_pnio_io_mirror
- 2 01_pnio_io_mirror_renesas
- 3 02_eip_io_data
- 4 02_eip_io_data_renesas
- 5 05_pnio_01_simple_io
- 6 05_pnio_01_simple_io_renesas
- 7 06_eip_io_data_static_ip
- 8 07_pnio_dsn
- 9 09_ecat_slave
- 10 10_pnio_process_alarm
- 11 11_firmware_update
- 12 13_firmware_update_callback
- 13 17_mbtcp_simple_io
- 14 18_opcua_basic
- 15 19_opcua_extended
- 16 http_01_get
- 17 http_02_post
- 18 http_03_list_res
- 19 http_04_auth
- 20 http_05_template_cm
- 21 http_06_template_list
- 22 http_07_template_table
- 23 net_01_udp_receive
- 24 net_02_tcp_client
- 25 net_03_tcp_server
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.