Este sitio utiliza cookies. Al utilizar el sitio usted acepta el uso de cookies. Despedir Más información

PLC Engine Collect Data Sheet

PLC Engine Collect Data Sheet

Created by Werner Krings, Tani GmbH
Date: 25.08.2016

Technical Data PLC Engine

At a Glance

The PLC Engine allows data processing in production lines. It connects controllers, devices, SCADA systems and databases from various manufacturers. It processes the data and dispatches them between the connected devices and other systems. It collects data, manages them and creates overviews for OEE applications.
Additional all the data can be handled over OPC. This are processed data and all data from the connected controllers, devices, OPC systems and databases.

PLC Engine is the perfect component for using it for communications in Industrie 4.0.

You will implement important use cases with PLC Engine
Optimize PLC Communication
Boosts the PLC communication with logical optimizing of the requests. Often this will happen to error texts from the controllers. The messages need to be fetched normally if the corresponding error number is changing and a new error condition becomes true. Without any change to Your SCADA system the communication speeds up. The main reason is less load on the communication line.
Copy PLC Data
Exchanges data between controllers and devices without PLC programming or SCADA functionality. That's how it's done: PLC Engine is reading the data from a controller or device and writes them into another controller or device. The writing normally takes place if the data are changing. With configurable triggers data which are depending on other data conditions for the writing can be defined. The data will converted if necessary. This is important if both controllers are different: One Siemens S7, the other a Rockwell Control Logix.
More complex handling is possible, too: Collecting of data from one or multiple controllers, do some calculation with the data, and write the result to a controller or device. Of course, any OPC compatible system can use the same data also.
Collect Data
Collects and processes data
PLC Engine is reading data from one or more controllers.
The data are collected and possibly calculated or normalized.
If all data are in place they are ready to process for other systems or OPC access.
During the logical processing the data are blocked for access.
Syncronous data access are waiting until the collection is finished.
Configurable error conditions are configurable: If one of the controllers is not available constant data are used, or an error number is processed.
PLC to Database
Exchanges data with common databases. You can read data from controllers and write them directly into common databases - with optional calculations. Data readed from databases can be written into controllers, too. All the data are available for OPC systems also.
Overall Equipement Effectiveness
Collects data over long time for OEE into a local or external database. So easily OEE applications can be build. The integrated websites are offering the collected and calculated data directly as curves or other. Additionally the data can be handled over OPC.


The configuration mostly works in graphical style. Lot of wizards simplify tis. Diagnostics boost the startup in plants. Use Your smartphone or tablet and all of the status displays. You can define break points. The execution will stop at the defined condition. The diagnostics logger handles longer running information collecting.

OPC Interfaces

The maximum number of OPC clients is depending on used resources only. A PC from 2014 can handle multiple hundred connections.
All OPC interfaces are working locally in one PC or over network.
in case of Classic OPC Classic please do not use DCOM over networks, but it will be supported.
OPC UA supports the fast binary protocol. Security is not supported. Data access data items are supported up to 200K each.

OPC UA functionality and limitations

The OPC UA implementation conforms to the specification 1.04.
The OPC UA Standard Model is supported, some extensions exist.
An internal discovery server is active on standard, it supports multicast discovery also. It can be used as a global discovery server. Alternatively an external discovery server can be configured.

The session timeout will be limited to one hour.
The server and client certificate will be renewed if the Tani self signed certificate is used. All other certificates remain unaffected on expiring. The certificate validity is checked all 12h. It will be renewed seven days before it expires. Running connections will not be affected, new connections will use the new certificate.
AddNodes is supported with the following restrictions:

Traffic between different OPC interfaces (tunneling) is supported.

Controller Interfaces

All controllers will be connected over network. Often this is Ethernet, WLAN or other networks.

Configuration Interfaces

The configuration can be done with the shipped configuration software or over OPC with the System topic.
The connection  for the configuration is encrypted with TLS 1.2. The encryption can be switched off for usage in countries where encryption is forbidden.

Netzword Redundancy for connections to controllers and devices

Connections to devices and controllers are supporting network redundancy.
Double and triple redundancy can be selected.
Two redundancy operation modi are possible.
In dynamic redundancy any of the connections is working as master. If it breaks another connection becomes the master connection.
In static redundancy the first connection is the master. If it breaks another connection becomes the master. If the first connection works again it will become the master connection again.

The connections of the redundancy should work on different netaork adapters.The adapters need different IP subnets for proberly work..

Controller Types and Controller Protocols

Se comunica a través de Ethernet


BACnet will be used over IP / UDP.
Maximum length of strings: 256 Byte
Status text elements are supported (state_text)
Supported charsets: UTF-8, UTF-16, Latin-1
Unions ("Choice") and structures ("Sequence") are existing for important values. All unimplemented instances will not be shown.
Enum values are represented as UINT32. Some special enum are handled as bool.
Values in "Octet-String" and "Bit-String" can be written in whole only.

BACnet - Writing values with priority-array

These object types have a priority-array in addition to their present-value property: The BACnet spec says: The Tani implementation works as follows:

This mechanism was chosen to allow choosing the write priority via OPC without changing the read syntax for present-value property. This also allows writing NULL values via OPC.


PLC Engine is a database client. It connects with user and password to the database.
The standard SQL statements INSERT INTO, UPDATE, SELECT and DELETE will be used over the wizards. Other statements will be configured directly.
Supported are:

Multiple databases can be handled simultanously.
In one database multiple sub databases can be used. During the configuration the databases will be browsed.
PLC-Engine will need an account on each database.

For using PLC Engine on a PC the locally installed databases can be used also.
On PLC Engine Device a My SQL database is installed. This database will be managed completely by PLC Engine.


The OPC Server contains a logger for diagnostics purposes during plant startup. The logger can be configured. The system load can be big if all controller ; data are logged.


Maximum number of configurable connections: 1000.
Maximum length of a single item: 4GB.
Maximum number of elements each connection: 4 Million.
Maximum number of elements (Items): 16 Million.
Maximum OPC groups each connection: 100.
Maximum number of passive connection for each port is 999.
The OPC synchronous functions returning a bad quality immediately if the PLC connection is not established.
Changes in controller configuration will be checked all 10 seconds.
Fields can be up to 64K in length each.
Multi dimensional arrays can have up to three dimensions.

Fields can be up to 64K in length each.The maximum amount of configurable logic tables is 60000.
The maximum length of one logic table is 4GB.
Maximum number of entries on a logic element 60000.
File operations can handle up to 64K in each request. Adding data to a file is limited only by the space on the disk.
Multi dimensional arrays can have up to three dimensions.

Depending on the license the limits can be less.


The throughput will be mainly limited by the controller speed or the reaction time of OPC applications.
Read requests to the controller will be optimized as much the controller is supporting this. For that elements will be collected to blocks reading more than requested, but not for inputs and outputs. These optimizing can be affected by configuration separately for each connection. Optimizing can be switched off, too.
Write requests to the controller are collected or handled in that order the application did called the system.
On OPC all optimizing the individual OPC uses is supported.
The normal time in cyclic controller requests is 50ms.It can be faster if the controller polling interval is set to zero.
Only data are sent to OPC which did change in the controller between two read requests.
The throughput of one logic table normally will be handled below 10ms. Lot amounts of logic tables containing much of mathematics functions may rise the 10ms. This is true especially on embedded devices without a mathematical co processor.
No handling can be faster than the controller and device data acquisition. The same is true for database access.


Logic tables

Logic tables are constructed for linear logic. Loops are not possible.

Sequence chains

A sequence chain supports the maximum of 65535 steps each.

Error Handling in Logic Tables

All logic elements which functions can fail are supporting an OK bit. The user need handle this preventing unexpected run-time behavior.

Variables and Structures

Structures can not contain loops.
A structure or variable can be up to 4GB in its size.

Status Diagnostics Lists

The status diagnostics lists are supporting arrays up to 100 values each. If an array is longer than 100 values the first 100 elements are shown only. Writing this array is not possible.

Field and text optimizings

The from version 1.8 existing field optimizings will prevent reading the long fields too often, the index is requested on standard only.This optimizing bases of the fact that the index does net changed too frequently.

Usage of memory

Usage of computation time

The consumed computation time is depending on the load with communication. Most the time it will be waited for controller data or OPC application reaction.
All software is working with events. This maximizes the throughput and minimizes the usage of computation time.
Multiple CPU are supported. Up to ten CPU will be used, the main work will be handled by three CPU.


The installation does depending on the product install multiple parts separately. On uninstall not all products are deleted automatically. But all installed products can be deleted over the menu or the software part in the system control manager.
The user settings will be preserved and not deleted during uninstall.

Operating systems