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.
This example implements a PROFINET slave including a http management interface.
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"
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.
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.
This example implements a EtherNet/IP slave including a http management interface.
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"
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" |
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.
This example implements a PROFINET slave.
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"
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.
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.
This example implements a EtherNet/IP slave including a http management interface.
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"
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.
This example implements a PROFINET slave using the PROFINET design tool. The project file is supplied.
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"
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).
This example implements an EtherCAT slave.
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"
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.
This example implements a PROFINET slave and shows generation of process alarms.
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"
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.
This example implements firmware update of the ccm module over RPC/SPI.
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).
This example demonstrates usage of the optional event callback for firmware update.
This example configures the IP address of the module to 192.168.0.100/24.
This application registers for firmware update events. It thus gets informed about events when the firmware of the communication module is updated.
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
.
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.
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.
This example shows usage of the web server. It shows implementing GET-request support.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
Open the URL HTTP://<DEVICE-IP>:8081, where a simple web page is shown.
This example shows usage of the web server. It shows implementing POST-request support.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
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.
This example shows usage of the web server. It shows supporting of hirachical urls.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. It provides several sub pages shown on the main page.
This example shows usage of the web server. It shows supporting of basic authentication.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
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. |
This example shows usage of the web server. It shows implementing GET-request support with templating for CM variables.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
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.
This example shows usage of the web server. It shows implementing GET-request support with templating for a list.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
Open the URL HTTP://<DEVICE-IP>:8080, where a simple web page is shown. It demonstrates template replacement of template usage with list support.
This example shows usage of the web server. It shows implementing GET-request support with templating for a table.
This example uses the configured IP address of the cc module. Check the Management Tool to get the IP address.
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.
This example shows usage of the UDP. It shows implementing a echo server on a specific UDP port.
This example sets the IP address 192.168.0.100/24.
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! |
This example shows usage of the TCP as a client. It shows how to connect to a TCP server.
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.
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 |
This example shows usage of the TCP as a server.
This example sets the IP address 192.168.0.100/24.
Using netcat a connection to the TCP server can be established. Just type some text, and the server will send the following messages.
netcat 192.168.0.100 1234 Testing the echo server using TCP! Testing the echo server using TCP! |