Ta strona wykorzystuje cookies. Dalsze korzystanie z serwisu oznacza zgodę na ich wykorzystanie Zamknij Więcej informacji

PLC Engine Collect Data Sheet

PLC Engine Collect Data Sheet

Created by Werner Krings, Tani GmbH
Creation date: 2019.7.1, last modified 2021.7.14

Technical Data PLC Engine

PLC Engine umożliwia przetwarzanie danych w produkcji. Łączy sterowniki, inne urządzenia, systemy SCADA i bazy danych różnych producentów. Przetwarza dane i przesyła je pomiędzy połączonymi urządzeniami i systemami. Gromadzi dane, zarządza nimi i tworzy zestawienia dla aplikacji OEE.
Dodatkowo, wszystkie dane mogą zostać przekazane za pomocą OPC. Są to przetworzone dane oraz dane z podłączonych sterowników, urządzeń, systemów OPC oraz baz danych.

PLC Engine jest idealnym narzędziem do komunikacji w Przemyśle 4.0.

Przykładowe zastosowania PLC Engine

Optymalizacja komunikacji OPC Przyspieszenie komunikacji PLC poprzez logiczną optymalizację zapytań. Często ta logika odnosi się do komunikatów o błędach. Komunikaty muszą być pobierane normalnie, jeżeli odpowiedni numer błędu się zmienia i nowy warunek błędu staje się prawdą. Komunikacja przyspiesza bez zmian w systemie SCADA. Głównym powodem jest mniejsze obciążenie na linii komunikacyjnej.
Kopiowanie danych PLC
Wymiana danych między sterownikami i urządzeniami bez konieczności programowania PLC i bez funkcjonalności SCADA. Jak to działa?: PLC Engine czyta dane ze sterownika lub urządzenia i zapisuje je do innego sterownika lub urządzenia. Zapis odbywa się zwykle wtedy, gdy dane się zmieniają. Dzięki konfigurowalnym wyzwalaczom (triggerom), interesujące nas dane zostaną odczytane i zapisane do innego sterownika tylko gdy będzie to pożądane (wyeliminowanie zbędnej komunikacji). W razie potrzeby, dane zostaną przekonwertowane na inny format. Jest to ważne, jeśli komunikujące się ze sobą sterowniki są różne, np. Siemens Simatic S7 i Rockwell Control Logix.
Bardziej kompleksowa obsługa jest również możliwa: Zbieranie danych z jednego lub wielu sterowników, przetworzenie tych dancyh i zapis wyniku do sterownika lub urządzenia. Oczywiście, każdy system zgodny z OPC może również użyć tych danych.
Zbieranie danych
Zbieranie i przetwarzanie danych.
PLC Engine odczytuje dane z z jednego lub większej liczby urządzeń.
Dane są zbierane i mogą być przeliczone lub znormalizowane.
Jeżeli wszystkie dane są na miejscu, są gotowe do przetworzenia w innych systemach i dostępne przez OPC.
Podczas przetwarzania logicznego dostęp do danych jest blokowany.
Synchroniczne żądania odczytu danych czekają, aż wszystkie dane zostaną zebrane.
Warunki błędów są konfigurowalne: Jeśli jeden ze sterowników nie jest dostępny, stosowane są dane stałe lub podawany jest numeru błędu. .
z PLC do bazy danych
Wymiana dancyh z popularnymi bazami dancyh. Można odczytywać dane ze sterowników i zapisywać je bezpośrednio do baz danych - z opcjonalnymi obliczeniami. Dane odczytane z bazy danych mogą być również zapisane w sterownikach. Wszystkie dane dostępne są również dla klientów OPC.
wskaźnik OEE Overall Equipement Effectiveness
Zbieranie danych przez długi czas dla OEE do lokalnej lub zewnętrznej bazy dancyh. Umożliwia to łatwe zbudowanie aplikacji OEE. Zintegrowane strony internetowe oferują zebrane i przetworzone dane bezpośrednio w postaci wykresów lub innej. Dodatkowo, dane mogą być przekazywane przez OPC.

Konfiguracja

Konfiguracja odbywa się głównie w trybie graficznym. Dostępne kreatory dodatkowo ją upraszczają. Kompleksowa diagnostyka przyspiesza uruchomienie systemu w zakładzie. Za pomocą smartfona lub tabletu możemy obserwować wszystkie statusy. Można zdefiniować punkty przerwy. Wykonanie zostanie zatrzymane w określonym stanie. Rejestrator pozwala na analizę długoterminową.

Interfejsy OPC

Maksymalna liczba klientów OPC jest zależna tylko od zasobów komputera. Komputer PC z 2014 roku może obsługiwać kilkaset połączeń.
Wszystkie interfejsy OPC działają lokalnie w jednym komputerze lub przez sieć
W przypadku OPC Classic, nie jest zalecane korzystanie z technologii DCOM w sieci, ale takie połączenie jest obsługiwane.
OPC UA wspiera szybki protokół binarny. Bezpieczeństwo nie jest zapewniane. Wykorzystywane są DataAccess / DataItems do 200K długości.

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:

The security certificate key minimum length are

Możliwa jest wymiana danych pomiędzy różnymi interfejsami OPC (tunelowanie).

Controller Interfaces

All controllers will be connected over network. Often this is Ethernet, WLAN or other networks. All serial Ethernet and MPI Ethernet gateways for industrial controllers usage are supported.

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.

Network 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..

Obsługiwane sterowniki PLC i urządzenia

Komunikacja w każdym przypadku realizowana jest w sieci Ethernet

BACnet

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.

BBMD (BACnet Broadcast Management Device) details

BBMD will be used during the connection establishing and the device search if the devices do not be all in the same collision domain. BACnet uses broadcast during ist connection establishing.
There are several procedures in BBMD:

Additionally BBMD can be used connecting older serial only installations to the IP network.

COV (Change Of Values) details

COV represents the event subsystem of BACnet. Events will be offered in browsing the variables, they will be subscribed. If the device will send the data the event will be generated.
Because BACnet is working with UDP the COV receive can not be guaranteed. Tani is offering an option: If no event will be received during the reconnection time from the configured connection it will be polled. If the value did not change no event is send for this polling.

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.

Implemented Properties

The following object properties are implemented:

Object TypePropertyBACnet TypeOPC TypeRemarks
allallBACnetObjectIdentifierUInt32
allallBit StringArray of Boolean
allallBooleanBoolean
allallCharacter StringString
allallDoubleDouble
allallEnumeratedUInt32
allallOctet StringArray of UInt8
allallRealFloat
allallSignedInt32
allallUnsignedUInt32
allChange of State Time (16)BACnetDateTimeDateTime
allEvent Time Stamps (130)Sequence of BACnetTimeStampArray of Structure "Timestamp"
allObject Type (79)BACnetObjectTypeUInt32
allTime of Active Time Reset (114)BACnetDateTimeDateTime
allTime of State Count Reset (115)BACnetDateTimeDateTime
Access Door (30)Door Alarm State (226)BACnetDoorAlarmStateUInt32
Access Door (30)Present Value (85)BACnetDoorValueUInt32
Access Door (30)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "UnsignedPriorityValue"see section "Priority Array"
Access Door (30)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Analog Input (0)Present Value (85)RealFloat
Analog Input (0)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Analog Output (1)Present Value (85)RealFloat
Analog Output (1)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "AnalogPriorityValue"see section "Priority Array"
Analog Output (1)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Analog Value (2)Present Value (85)RealFloat
Analog Value (2)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "AnalogPriorityValue"see section "Priority Array"
Analog Value (2)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Averaging (18)Maximum Value Timestamp (149)BACnetDateTimeDateTime
Averaging (18)Minimum Value Timestamp (150)BACnetDateTimeDateTime
Binary Input (3)Present Value (85)BACnetBinaryPVUInt32
Binary Input (3)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Binary Output (4)Present Value (85)BACnetBinaryPVUInt32
Binary Output (4)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "UnsignedPriorityValue"see section "Priority Array"
Binary Output (4)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Binary Value (5)Present Value (85)BACnetBinaryPVUInt32
Binary Value (5)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "UnsignedPriorityValue"see section "Priority Array"
Binary Value (5)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Device (8)Last Restore Time (87)BACnetTimeStampStructure "Timestamp"
Device (8)Local Date (56)DateStructure "Date"
Device (8)Local Time (57)TimeStructure "Time"
Device (8)Object List (76)Sequence of BACnetObjectIdentifierArray of UInt32
Device (8)Protocol Object Types Supported (96)BACnetObjectTypesSupportedArray of Boolean
Device (8)Protocol Services Supported (97)BACnetServicesSupportedArray of Boolean
Device (8)Segmentation Supported (107)BACnetSegmentationUInt32
Device (8)System Status (112)BACnetDeviceStatusUInt32
Device (8)Time of Device Restart (203)BACnetTimeStampStructure "Timestamp"
Event Enrollment (9)Object Property Reference (78)BACnetDeviceObjectPropertyReferenceStructure "DeviceObjectPropertyReference"
File (10)Modification Date (149)BACnetDateTimeDateTime
Life Safety Point (21)Present Value (85)BACnetLifeSafetyStateUInt32
Life Safety Point (21)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Life Safety Zone (22)Present Value (85)BACnetLifeSafetyStateUInt32
Life Safety Zone (22)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Load Control (28)Actual Shed Level (212)BACnetShedLevelStructure "Shed Level"
Load Control (28)Duty Window (213)UnsignedUInt32
Load Control (28)Expected Shed Level (214)BACnetShedLevelStructure "Shed Level"
Load Control (28)Present Value (85)BACnetShedStateUInt32
Load Control (28)Requested Shed Level (218)BACnetShedLevelStructure "Shed Level"
Load Control (28)Shed Duration (219)UnsignedUInt32
Load Control (28)Start Time (142)BACnetDateTimeDateTime
Loop (12)Controlled Variable Reference (19)BACnetDeviceObjectPropertyReferenceStructure "DeviceObjectPropertyReference"
Loop (12)Manipulated Variable Reference (60)BACnetDeviceObjectPropertyReferenceStructure "DeviceObjectPropertyReference"
Loop (12)Setpoint Reference (109)BACnetSetpointReferenceStructure "SetpointReference"
Loop (12)Present Value (85)RealFloat
Loop (12)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Multi State Input (13)Alarm Values (7)Sequence of UnsignedArray of UInt32
Multi State Input (13)Fault Values (39)Sequence of UnsignedArray of UInt32
Multi State Input (13)Present Value (85)UnsignedUInt32
Multi State Input (13)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Multi State Output (14)Present Value (85)UnsignedUInt32
Multi State Output (14)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "UnsignedPriorityValue"see section "Priority Array"
Multi State Output (14)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Multi State Value (19)Alarm Values (7)Sequence of UnsignedArray of UInt32
Multi State Value (19)Fault Values (39)Sequence of UnsignedArray of UInt32
Multi State Value (19)Present Value (85)UnsignedUInt32
Multi State Value (19)Priority Array (87)BACnetPriorityArrayArray(1..16) of Structure "UnsignedPriorityValue"see section "Priority Array"
Multi State Value (19)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Schedule (17)Effective Period (32)BACnetDateRangeStructure "DateRange"
Schedule (17)List of Object Property References (54)Sequence of BACnetDeviceObjectPropertyReferenceArray of Structure "DeviceObjectPropertyReference"
Schedule (17)Present Value (85)ABSTRACT-SYNTAX.&TypeStructure "Any"
Schedule (17)Schedule Default (174)ABSTRACT-SYNTAX.&TypeStructure "Any"
Schedule (17)Weekly Schedule (123)Sequence Size(7) Of BACnetDailySchedule7 sub-objects ("Monday", "Tuesday", ...) of Structure "TimeValue"
Pulse Converter (24)Present Value (85)RealFloat
Pulse Converter (24)Status Flags (111)BACnetStatusFlagsArray(0..3) of Boolean
Structured View (29)Subordinate List (211)Sequence of BACnetDeviceObjectReferenceArray of Structure "DeviceObjectReference"
Trend Log (20)Log Device Object Property (132)BACnetDeviceObjectPropertyReferenceStructure "DeviceObjectPropertyReference"
Trend Log (20)Start Time (142)BACnetDateTimeDateTime
Trend Log (20)Stop Time (143)BACnetDateTimeDateTime

Obsługiwane bazy danych

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.

Logger for diagnostics

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 in big plants are logged.

Limits

Maximum number of configurable client connections: 4000.
Maximum length of a single item: 4GB.
Maximum number of elements each connection: 1 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 if the PLC does not offer a mechanism for this check during write.
Fields can be up to 64K in length each.
Multi dimensional arrays can have up to six 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 seven dimensions.

Depending on the license the limits can be less.

Speed

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.

Functions

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.

Installation

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.

Obsługiwane systemy operacyjne