Version 2.1.0.0

Summary

General

  • Bug fixing (HTTP, TCP Client, IP address check, EtherNet/IP, PROFINET, EtherCAT)

  • Examples

    • New example for IP management via HTTP and TCP proxy

uGOAL

EtherNet/IP

PROFINET

  • Conformance against Conformance Test Specification 2.4

  • Support for dynamic module configuration (module pulling and plugging)

  • Simplified API for module creation and definition of transport (cyclic channel, RPC)

  • Alarm Queue support

  • MRP

  • Support for definition of modules with either cyclic channel or RPC transport, thus increase maximum module size to 1434 bytes

EtherCAT

  • support for definition of PDOs with either cyclic channel or RPC transport, thus increase maximum PDO size > 64 byte (1408 Byte)

  • Add API to disable EoE

Detailed Changelog

Features

Issue key

Summary

Description

P2015013-1865

permitting RPCs from GOAL main task only (clone)

Triggering RPC from high priority timers or interrupts relocates the GOAL loop from GOAL main task into these "area". In result, the whole system may block.

A task check shall ensure, that RPCs are requested from GOAL main task only.

P2015013-1843

EtherCAT: align handling of numerical and non numerical objects in goal wrapper function goal_ecatObjValGet (clone)

 

P2015013-1834

PROFINET: Integration of MRP 

Add MRP entries to GSDML file.
Add MRP Feature to firmware build.
Add MRP activation to application example.

P2015013-1811

PROFINET: Add missing functions to wrapper (Alarm queue) (clone)

The alarm queue handling is not available on multicore targets, because the functions are missed in RPC wrapper.

P2015013-1809

EtherNet/IP: Allow definitions of assemblies with arbitrary size using RPC transport (clone)

Allow definitions of assemblies with arbitrary size using RPC transport.

P2015013-1808

EtherCAT: Allow definition of objects mappable in PDOs with RPC transport (clone)

Allow definition of objects mappable in PDOs with RPC transport.

P2015013-1807

EtherCAT: Add API to configure EoE (clone)

Extended EtherCAT API to configure EoE.

P2015013-1802

EtherNet/IP: Integration of ACD

The Stack is now supporting Address Conflict Detection.

P2015013-1769

Example for tcp proxy forwarding

A new application example shows usage of tcp channels to forward a tcp based service from the host (raspberry pi, SSH).

P2015013-1746

PROFINET: Cleanup wrapper - remove profinet stack headers from dependencies

Simplify the profinet wrapper by removing dependencies from the profinet stack.

P2015013-1745

PROFINET: Add dynamic module configuration to wrapper

Allow dynamic module configuration for PROFINET applications.

P2015013-1686

Example for IP configuration via web server

A new application example shows usage of web server and IP configuration.

P2015013-1248

EIP CTC Wrapper: add Virtual Class Support 

Virtual classes are now available on multicore targets.

P2015013-1046

PROFINET: Hide MI DM in GOAL PROFINET API

Implement additional configuration flag which enables the following automapping:

  • emulation of cyclic data exchange via Input/Output data API

  • emulation of IOCS/IOPS set/get

  • emulation of DCP blink via Data Provider

  • disable emulated RPC calls if possible (eg. disable DCP blink if Data Provider is mapped)

  • emulate NEW_IO_DATA callback if cycle counter changes (if Data Provider is mapped), otherwise emulate on every update

  • add DM mapping/removal to plug/pull actions

P2015013-1014

MCTC: Re-add removed statistic counters (clone)

 

Bugs

Issue key

Summary

Description

P2015013-1866

PROFINET: False handling of record read PDInterfaceMrpDataAdjust (clone)

In case of MRProle = MRP disabled the record length should be zero.

P2015013-1864

deviating device information in EEPROM binary and xml file

The strings for product type, product name and vendor name do not match in EEPROM and xml file. Furthermore, the RevisionID differs.

P2015013-1854

EtherNet/IP: initial run state is not propagated by run/idle callback

The application provides a run/idle callback, which is only triggered if the originator establishs a connection in idle state.

P2015013-1849

EtherNet/IP: empty assembly config on multi core targets

If the device receives an assembly configuration from a EIP master, the application is unable to read it on multi core targets. The returned assembly configuration is always zero.

The implemented method for reading the config assembly in the examples provided with version 2.0 did not work. Reading of configuration assembly data should be done using the function *_goal_eipAssemblyObjectRead_*. Beside that this assembly should be mapped to RPC because of the update cycle of the content. Examples have been adapted.

P2015013-1847

EtherCAT: potential crash in PDO mapping with gaps (clone)

If the PDO mapping check gets a gap entry, i.e. a NULL pointer, the interal size of this pointer is not updated. This may lead to a crash.

 

 

To fix that, the size is set also in the case of a gap.

P2015013-1840

EtherCAT: the RPC function goal_ecatObjValGet is unable to get proper values (clone)

The function doesn't correctly handle the RPC stack and thus fails to get proper values.

P2015013-1829

EtherNet/IP: Request lengths are not checked at TCPIP attributes

Add a length check to evaluate the received requests.

P2015013-1827

EtherNet/IP: DHCP process restarts if TCPIP configuration will set like before

Check TCPIP configuration for changes before applying.

P2015013-1823

HTTP: URL string not assigned for POST requests with several chunks

If CC receives a POST request with several chunks and the POST request is not a multipart-formdata, the URL string in the application callback info which CC sends to AC is the null. In case of POST request with multipart-formdata this error does not occur.

P2015013-1821

Validation of IP address not complete (clone)

IP settings are not completely checked for validity. Following checks have been added to make sure the device always is in operational state:

  • Invalid entries from RFC 6890 are not allowed

  • IP and Gatway must not be a broadcast address

  • IP and Gatway must not be a local address (127.0.0.0/8)

  • valid IP / Netmask combination

  • Gateway address must be in the same network as the device

  • Addressed from class D network are not allowed

  • Netmask must a valid combination of bitwise 1s and 0s

  • Reserved entries from RFC 5735

 

P2015013-1818

HTTP: formdata in POST message is incorrectly recognized

If first boundary string after header end was not found in the first chunk, the last boundary string can be contained in the last formdata.

P2015013-1812

EtherNet/IP: Cycle is not propagated to AC (using generic data provider)

The generic data provider contains a field cntUpdate, which should be used to signalize the current cycle to the application controller. Each time the PLC updates assembly data this counter should be changed. Thus the application controller can detect the actual PLC cycle.

P2015013-1810

EtherNet/IP: Increase possible size of assemblies of connections (clone)

Check if DM can used complete for data exchange.

P2015013-1806

PROFINET rpc callback ALARM_ACK_TIMEOUT possibly leads to loss of communication (clone)

When PROFINET alarms are not acknowledged a communication loss may occur.

P2015013-1800

connection reset or aborted at registering an another session (clone)

Check the received request to change the IP-Address, if the IP-Address must be changed or is still the same. If the IP is the same, the Interface must not be restarted.

P2015013-1799

no response to an invalid set request for TCPIP class attribute 4 (clone)

Check the received request to change the IP-Address, if the IP-Address must be changed or is still the same. If the IP is the same, the Interface must not be restarted.

P2015013-1789

Invalid delay of for unicast identity responses (clone)

Split the single Socket, which receives both - unicast and broadcast - and add a second additional socket, which handles only unicast-frames. The Stack can now decide based on the given socket, if the received frame is a unicast- or a broadcastframe and must be delayed or not.

P2015013-1788

EtherNet/IP: Missing error propagation when objects mapped to data mapper exceed the maximum size

Check return-value of the function, which registers the Datamapper partition. Return error, if the partition size exceeds the maxmum size.

P2015013-1787

EtherCAT Wrapper: Missing error propagation when objects mapped to data mapper exceed the maximum size

Process return value of the function.

P2015013-1786

PROFINET Wrapper: Missing error propagation when objects mapped to data mapper channel are exceed the maximum size

Process return value of the function.

P2015013-1767

TCP Client: reconnection of TCP client is not posible

A reconnection (reactivation) of the TCP client does not reopen the connection to the server.

P2015013-1766

TCP Client: if connection fails a data channel offline occurs

The TCP client leads to a SPI communication stall if the TCP server is not reachable.

P2015013-1765

HTTP: form data using "POST" leads to crash on STM32 AC when using Safari Browser

Depending on browser or target HTTP post handles data differently.

P2015013-1763

HTTP: segmentation fault if no template handling function is registered (clone)

A systematic failure occurs when invalid parameters are passed to the api function for registering templates. This should be checked for validity.

P2015013-1761

CCM RPC: Writing of virtual variables results in overflow, only possible with data length 0

Usage of the correct length information fixed writing of virtual cm variables.

P2015013-1760

HTTP: POST url-encoded data is not received by the AC

data is received when compiling AC/CC for linux, however on the target it behaves differently

P2015013-1759

HTTP: Template replacement only happens in first fragment of HTTP data (clone)

Template replacement only happens in the first bytes of the http content. This seams to relate to the RPC fragmentation, thus only the first fragment is processed.

P2015013-1678

Failstate not entered when process data watchdog occurs

One warning messageis reported with every run of the CTT Test File TF1200[4][10]. The Warning states that DuT remains in OP (AL Status = 0x08) state after the process data communication is stopped:The expected response of the DuT in case of stopped process data communication when in OP, is a transition to ErrSafeOp with AL Status = 0x14, and setting the local Outputs to a safe state. The test case is build according to ETG.1000-part 6, Table 103, case #49 ( ). Depending on the application the safe state may be defined differently. Please check if upon process data loss the safe state of DuT is defined correctly.

P2015013-1579

occactional CRC errors during SPI transmission when using simple API

could not be reproduced with standard software

P2015013-1369

Plugfest-Test fail P12.5. (EO/IO test case)

Adapter Device Tests : P12.5 - EO/IO : Class 1 Connection Interaction - Exclusive Owner / Input Only - connection time out occurs

P2015013-1368

Plugfest-Test fail P9.6.1

Fix the flashing cycle of the MS-LED and NS-LED while major recoverable und unrecoverable fault.

P2015013-1347

EtherNet/IP: After switch from PNIO to EIP IP settings may be inconsistent

EIP has additional settings for network settings. If in between EIP operation PNIO stack is run, those settings may be inconsistent to the settings of GOAL. One situation should be catched:

  • EIP starts with IP 0.0.0.0 and DHCP disabled -> enable DHCP and store settings