Data Source: Echo

The Echo data source allows Sym3 Integrator to communicate with the FactoryTalk Logix Echo emulated ControlLogix and GuardLogix controller.

The Echo data source is only available in Integrator, not in Operator.

Table Of Contents

Locating Required Echo Files
Create A New Data Source
Setting Up The Data Source
Creating A Controller
Finding A Controller’s GUID
Operation
Types
Addresses
Update Rates
Limits
Logging

Locating Required Echo Files

For the Echo data source to operate, it requires the location of several DLLs that allow communication with the Echo software. These are installed along with the Echo software. In particular:

  • RockwellAutomation.FactoryTalkLogixEcho.Api.Client.dll
  • RockwellAutomation.FactoryTalkLogixEcho.Api.Interfaces.dll

Along with several DLLs that those DLLs depend upon:

  • Grpc.Core.Api.dll
  • Grpc.Core.dll
  • System.Memory.dll
  • Google.Protobuf.dll
  • System.Runtime.CompilerServices.Unsafe.dll

The default path is set to “C:\Program Files (x86)\Rockwell Software\FactoryTalk Logix Echo\LogixDesigner”

If these files are somewhere else on your system, you can change the path in the advance settings tab. (File > Settings… > Advanced)

If this path is changed, close Integrator and reopen it to apply the changes.

Create A New Data Source

A Data Source can be defined in Sym3, right click on Project Explorer > Data Sources then select ‘Echo (Allen-Bradley FactoryTalk Logix Echo)’ from the ‘New Source’ menu.

Note: Browsing is not supported for Echo data sources.

Setting Up The Data Source

The property panel of the Echo data source has one unique parameter:

  • Controller GUID: The GUID that identifies the controller that this data source instance will communicate with.

Creating A Controller

The Echo data source communicates with a controller. These are managed in the FactoryTalk Logix Echo Dashboard software, which must be running on the same machine as Integrator for the data source to operate correctly. To create a new controller, right click the “Chassis” section in the “Devices” panel. Choose either “Add controller” or “Add controller from ACD”.

Finding A Controller’s GUID

Each Echo data source in Sym3 is linked to a controller by its associated GUID. To find a GUID for a given controller, right click the controller name as it appears under the “Chassis” section on the “Devices” panel and choose “View SD Card”

An Explorer window will be opened to a path that will end with “FactoryTalk Logix Echo\Controllers\XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX\Root\sd” where XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX is the GUID of the controller. This is the GUID that should be given as the “Controller GUID” for the appropriate Sym3 Data Source.

Operation

The Echo data source, after intialization performs two operations repeatedly:

  1. Read tags, notifying Sym3 of any changed tags.
  2. If any tags have new values (e.g. SetTagValue was called with an Echo tag), those new values are sent to the Echo device.

The amount of time that elapses between the start of one loop and the next is dependent on the update rate of the tags. This is 500 ms by default, but it can be configured to be as low as zero ms (that is, the only delay between iterations is how long it takes to read and write the tags).

Types

The Echo data source supports the following Sym3 types:

  • Boolean
  • Char
  • Byte
  • Short
  • Word
  • Long
  • DWord
  • Float
  • Double
  • String

If the integer a tag is pointing to is larger than the integer type that is set in Sym3, then that value is truncated.

Logix Echo doesn’t support double precision (eight byte) floating point values, so Double types are given to the Logix Echo as if they were Floats.

Strings are ASCII encoded, non-ASCII characters are unsupported.

Addresses

Sym3 tags are connected to the tags defined in the project associated with the associated Logix Designer project associated with the emulated Logix Echo controller via their address.

The address should match the name of the tag in the Logix Designer project’s “controller tags” section. If the tag is in an array, the address should end in an indexer (e.g. “Tag_Array[42]” to look up the 43rd element of the array “Tag_Array”). If the tag is in a user defined data type, the address should use periods to look up the members (e.g. “Tag_Type.Arr[2].Ok”).

Update Rates

Sym3 tags can be assigned an update rate by clicking on the tag in the Tag Manager and editing it in the Property Editor panel. It defines how often, in milliseconds, the data source will update that tag.

A single Echo data source can have tags of multiple different update rates. All tags with the same update rates will be processed at once, with update rate milliseconds in between them.

For example, Take a project with 10 tags with an update rate of 200, and 5 tags with an update rate of 100.

On project start up, both the 200 ms and 100 ms tags will be processed. After 100 ms, the 5 100 ms tags will be processed again. 100 ms later (200 ms from start up) both the 10 200 ms tags and the 5 100 ms tags will be processed.

The update rate can be set as low as zero, at which point the Echo data source will process the 0 ms tags at any given opportunity (slower tag groups will still be processed as usual).

Care should be taken with low update rate tags. If a tag changes frequently and has an assigned simulation script handler, Sym3 will likely spend most of its time repeatedly calling that scripting handler, leading to degradation of performance of the entire simulation. The lower the update rates used, the more CPU time the Echo data source will require.

Limits

A single Sym3 project can have 254 Echo data sources. A single Echo data source can have a maximum of 16,777,215 associated tags. These limits are theoretical maximums; hardware limitations (CPU, memory) will make the (system-specific) effective maximums smaller than those given.

The maximum length of a string is 82. If a longer string is written, it will be truncated to 82 bytes in length.

Logging

The Echo data source creates two logs, located in the Integrator log folder (default path: “C:\ProgramData\Sym3\Sym3 Integrator\Logs”):

  • Sym3.Echo.LiveValueProvider.log
  • Sym3.Echo.EchoCore.log

The default log level for these logs is WARN.

Additional logging can be enabled by setting their log level to DEBUG. The logging config files are installed alongside Integrator (default path: “C:\Program Files\Sym3\Sym3 Integrator”).

The EchoLiveValueProvider log level can be configured in the file “BCS.Sym3.Integrator.log4cxx.config” by changing WARN to DEBUG in the “Echo.LiveValueProvider” logger node.

The EchoCore log level can be configured in the file “BCS.Sym3.Integrator.log.config” by changing WARN to DEBUG in the “Sym3.Echo.EchoCore” logger node.

To edit these files, you must edit them as an administrator.