Diese Seite verwendet Cookies. Mit der weiteren Nutzung der Seite erklären Sie sich damit einverstanden. Ausblenden Mehr Informationen

PLC Engine Collect Datenblatt

PLC Engine Collect Datenblatt

Erstellt von Werner Krings, Tani GmbH
Erstelldatum: 1.7.2019, zuletzt überarbeitet: 14.7.2021

Technische Daten PLC Engine

PLC Engine bietet die Datenverarbeitung in Produktionsanlagen. Sie verbindet Steuerungen, Leitrechner, Datenbanken und Geräte miteinander. Sie bereitet die Daten auf, verteilt sie zwischen den angeschlossenen Systemen. Sie sammelt Daten auch über lange Zeit, wertet die aus und erstellt Übersichten für OEE Anwendungen.
Zusätzlich können alle Daten über OPC bearbeitet werden. Das sind aufbereitetete Daten, alle Daten der angeschlossenen Steuerungen und Geräte, Daten aus den angeschlossenen Datenbanken.

PLC Engine ist das ideale Modul für Einsätze zu Industrie 4.0.

Diese wichtigen Anwendungen können Sie mit der PLC Engine umsetzen
Optimize OPC Communication Beschleunigt die SPS Kommunikation durch logische Optimierung der Anfragen. Oft betrifft diese Logik Fehlermeldungen aus den Steuerungen. Die Stördaten brauchen nur dann geholt werden wenn eine neue Störung anliegt. Ohne Eingriff in Ihr Scada System arbeitet Ihre Anlage schneller. Geringere Belastung der Steuerung mit Kommunikation ist der Grund.
Copy PLC Data
Datenaustausch zwischen Steuerungen und Geräten ohne SPS oder PC Programmierung. So gehts: PLC Engine list Daten aus einer Steuerung oder einem Gerät und schreibt die in eine oder mehrere andere Steuerungen. Daten werden normalerweise geschrieben wenn sie sich geändert haben. Mittels konfigurierbarer Trigger werden abhängige Daten nur bei Bedarf gelesen und in die andere Steuerung geschrieben. Die Daten werden falls notwendig im Format gewandelt - wichtig wenn die Steuerungen unterschiedlich sind wie Siemens S7 und Rockwell Compaxt Logix.
Aufwendigere Dinge arbeiten ebenfalls: Sammeln von Daten auf einer oder mehrerer Steurungen und Geräten, die Daten aufbereiten und das Ergebnis an eine Steuerung oder ein Gerät senden. Natürlich nutzt jedes OPC fähige System diese aufbereiteten Daten ebenfalls.
Collect Data
Daten sammeln und Aufbereiten.
PLC Engine liest Daten aus einer oder mehreren Steuerungen.
Diese Daten werden gesammelt und falls gewünscht umgerechnet oder normalisiert.
Sind alle Daten eingetroffen so werden sie weitergegeben an andere Steuerungen, über OPC bereitgestellt und wenn gewünscht intern weiterverarbeitet.
Während der logischen Abarbeitung sind die Datenzugriffe gesperrt.
Synchrone Daten Leseanfragen auf diesen Bereich warten solange bis alle Daten angekommen sind.
Konfigurierbare Fehlerbehandlungen sind möglich: Ist eine der Steuerungen nicht erreichbar so werden entweder die Daten konstant vorbelegt oder an eine angegebene Stelle in den Daten eine Fehlernummer gegeben.
PLC to Database
Daten mit Standard Datenbanken austauschen. Sie lesen Daten aus Steuerungen und schreiben sie - eventuell mit Umrechnungen - in Datenbanken. Ebenso können Sie Daten aus Datenbanken in Steuerungen verteilen. Die Datenbankdaten stehen auch über OPC bereit.
Overall Equipement Effectiveness
Sammeln von Daten für OEE über lange Zeit in die lokale oder eine externe Datenbank. Damit erstellen Sie einfach OEE Anwendungen. Über die integrierten Webseiten zeigen Sie die aufbereiteten Daten direkt als Datenkurven. Sie können die Daten zusätzlich über OPC lesen und weiterverarbeiten. Weit zurückliegende Daten können verdichtet werden, legen Sie genau fest wann und wieviel verdichtet wird.

Funktionsumfang

Mit Logiktabellen legen Sie fest was Sie brauchen:

Online Diagnosen zur schnellen Inbetriebnahme

Konfiguration

Die Konfiguration erfolgt grafisch oder mit einfachen Listen.

Viele Assistenten erleichtern das Einrichten.

Das Beispiel ist ein Loggen von Barcodes mit Zusatzinformationen und einem Zeitstempel in eine CSV Datei.

Logging to CSV file


Das Beispiel liest über einen Barcode die Druckdaten aus der Datenbank und sendet die an den Drucker.

Read database with a barcode, add print data and send them to the printer

Umfangreiche Diagnosen unterstützen die Inbetriebnahme. Nutzen Sie zur Inbetriebnahme die vielen Statusanzeigen.

Online diagnostics of logging to CSV file

Der Diagnoselogger erlaubt länger laufende Analysen.

Diagnostics logger

OPC Schnittstellen

Die maximale Anzahl von OPC Clients hängt nur vom Resourcenbedarf ab. Ein PC Baujahr 2017 kann mehrere hundert Verbindungen bearbeiten.
Alle OPC Schnittstellen arbeiten lokal innerhalb eines PC oder über Netzwerk
OPC UA unterstützt das schnelle Binärprotokoll. Security wird in allen Varianten unterstützt. Multicast Discovery wird unterstützt.
Es werden DataAccess DataItems genutzt die jedes bis zu 200K lang sein können.
Bei Classic OPC wird DCOM über Netz ausdrücklich nicht empfohlen, es wird aber unterstützt.

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

Datenverkehr zwischen den OPC Schnittstellen (tunneling) ist möglich. Damit wird die OPC DA Tunnel realisiert.

MQTT Schnittstellen

MQTT stammt aus der Internet der Dinge Welt. Es ist einfach, schnell.
Ein Gerät kann gleichzeitig auf mehrere Partner Daten senden.
Sie können Client und Broker gleichzeitig betreiben.

SPS Schnittstellen

Alle Steuerungen werden über Netzwerk angeschlossen. Oft ist das Ethernet, WLAN oder andere Netze. Alle Seriell Ethernet und MPI Ethernet Wandler für Steuerungen werden unterstützt.

Konfigurationsschnittstellen

Die Konfiguration wird über die mitgelieferte Konfigurationssoftware oder über OPC mit dem System Topic vorgenommen.
Die Konfigurationsverbindung wird mit TLS 1.2 verschlüsselt. Diese Verschlüsselung kann für die Nutzung in Ländern mit Verschlüsselungsverbot abgeschaltet werden.

Netzwerkredundanz bei Verbindungen zu Steuerungen und Geräten

Verbindungen zu Geräten und Steuerungen unterstützen Netzwerk Redundanz.
Möglich sind Doppel und Dreierredundanz.
Die Redundanzarten Dynamisch und Statisch sind möglich.
Bei Dynamischer Redundanz ist eine beliebige Unterverbindung der Master. Bei Unterbrechung wird eine andere Verbindung Master.
Bei Statischer Redundanz ist die erste Verbindung Master. Fällt die aus so wird auf eine Slave Verbindung geschaltet. Sobald die Master Verbindung wieder arbeitet wird auf diese zurückgeschaltet.

Die Verbindungen der Redundanz sollen auf unterschiedlichen Netzwerkkarten und in unterschiedlichen IP Subnetzen betrieben werden.

SPS Typen und SPS Protokolle

Kommuniziert über Ethernet

BACnet

BACnet wird über IP / UDP genutzt.
Maximale Länge von Zeichenketten: 256 Byte
Unterstützte Zeichensätze: UTF-8, UTF-16, Latin-1
Statustexte werden unterstützt (state_text)
Unions ("Choice") und Strukturen ("Sequence") sind für wichtige Elemente vorhanden. Alle nicht implementierten werden nicht angeboten.
Emum Werte werden standardmäßig aus UINT32 angeboten. Einige spezielle Enum werden auch als Bool dargestellt.
Werte der Typen "Octet-String" und "Bit-String" können nur als Ganzes geschrieben werden, kein Schreiben von Einzelelementen ist möglich.

BBMD (BACnet Broadcast Management Device) Details

BBMD dient dem Verbindungsaufbau und der Gerätesuche wenn die Stationen nicht in der gleichen Kollisionsdomäne liegen. BACnet nutzt Broadcast zum Verbindungsaufbau. In umfangreicheren Umgebungen mit Unternetzen verwaltet BBMD diese Broadcasts.
Es gibt mehrere Verfahren BBMD zu nutzen, alle werden unterstützt:

Zusätzlich kann BBMD genutzt werden um ältere serielle Installationen an IP Netze anzukoppeln.

COV (Change Of Values) Details

COV ist das Evenetsystem von BACnet. Events werden beim Browsen angeboten, sie werden abonniert. Sendet das Gerät die Daten so wird das Event gesendet.
Da BACnet mit UDP arbeitet kann der COV Empfang nicht garantiert werden. Deshalb bietet Tani optional eine Überwachung an. Die nutzt das Wiederverbindungs Timeout der Verbindung. Wird in der angegebenen Zeit kein Event empfangen so wird das Element aktiv nachgefragt. Hat sich der Wert dieser Nachfrage nicht geändert so wird kein Event ausgelöst.

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

KNX and EIB

KNX wird für IP / TCP und IP / UDP angeboten.
Der Symbolimport wird für die standardisierten ESF Dateien angeboten.

Datenbanken

PLC Engine ist ein Datenbank Client. Es meldet sich mit Benutzer und Kennwort an der Datenbank an.
Die Standard SQL Befehle INSERT INTO, UPDATE, SELECT, DELETE, FUNCTION und PROCEDURE werden über die Wizards genutzt. Weitere Befehle werden mit direkter Konfiguration genutzt.
Unterstützt werden:

Mehrere Datenbanken können gleichzeitig angesprochen werden.
In einer Datenbank können gleichzeitig mehrere Unterdatenbanken genutzt werden.
Beim Einrichten werden die Datenbanken gebrowst. Das erfordert je nach Datenbanktyp oder Datenbankschnittstelle Benutzer und Kennwort oder weitere Infomrationen.
Die Datenbank selbst muss eingerichtet und soweit konfiguriert sein das der Zugriff möglich ist.
PLC-Engine benötigt auf jeder Datenbank einen Account.

Arbeitet PLC Engine auf einem Rechner so können die auf diesem Rechner installierten Datenbanken mit genutzt werden.
Auf PLC Engine Device ist eine My SQL Datenbank eingerichtet. Diese Datenbank wird komplett von PLC Engine gemanaged.

Diagnoselogger

Der OPC Server enthält einen Logger zur Diagnose bei Inbetriebnahmen. Dieser Logger kann konfiguriert werden. Werden in großen Anlagen alle SPS Daten geloggt so kann die Rechnerbelastung groß werden.

Grenzen

Maximale Anzahl konfigurierbarer Client Verbindungen: 4000.
Maximale Datenelementlänge eines Elements: 4GB.
Maximale Anzahl Elemente je Verbindung: 1 Million.
Maximale Anzahl der Summe aller Elemente (Items): 16 Millionen.
Maximale OPC Gruppen je Verbindung: 100.
Maximale Anzahl Verbindungen je passivem Port ist 999.
Die OPC synchronen Funktionen liefern direkt einen Fehler wenn die SPS Verbindung nicht steht.
Änderungen in der SPS Konfiguration werden alle 10 Sekunden geprüft falls die Steuerung keine Überprüfung bei jedem Datenschreiben anbietet.
Felder können jedes bis zu 64Kb lang sein.
Mehrdimenionale Felder können bis zu sechs Dimensionen haben.

Maximale Anzahl konfigurierbarer Logiktabellen: 60000.
Maximale Länge einer Logiktabelle: 4GB.
Maximale Anzahl Eingänge an einem Logikelement 60000.
Felder können jedes bis zu 64Kb lang sein.
Datei Lese und Schreiboperationen unterstützen bis zu 64K lange Daten je Aufruf. Fortlaufende Dateioperationen wie etwas an eine Datei anfügen wird so nur durch den Plattenplatz begrenzt.
Mehrdimenionale Felder können bis zu sieben Dimensionen haben.

Virtuelle Verbindungen

Eine virtuelle Verbindung wird überwiegend als Ziel von Variablenunlenkungen genutzt.
Jede virtuelle Verbindung hat eine individuelle Rechnreeinstellung wie alle anderen Verbindungen ebenfalls. Wie bei den Logiktabellen und der Status Variable Funktion wird das Recht der Quellverbindung nicht beachtet.
Symbole werden über den Symboleditor bearbeitet.
Ein und das selbe SPS Element darf in einer virtuellen verbindung nur einmal benutzt werden.

Je nach Lizenz können weniger Elemente oder Längen möglich sein.

Geschwindigkeit

Der Datendurchsatz wird von der SPS Geschwindigkeit oder der Reaktionszeit der Applikation die OPC nutzt bestimmt.
Leseanfragen an die SPS werden so weit die SPS das zulässt optimiert. Dazu werden die angeforderten Elemente zu Blöcken zusammengefasst wenn das geht - bei Ein und Ausgängen geht das nicht. Diese Optimierung kann abgeschaltet werden, ebenso kann pro SPS Verbindung dieses Datenzusammenfassen eingestellt werden.
Schreibanfragen werden je nach Konfiguration entweder zusammengefasst, oder die Reihenfolge der Schreibaufträge wird so eingehalten wie die OPC Client Applikation schreibt.
An den OPC Schnittstellen werden alle Optimierungen genutzt die die jeweilige OPC Schnittstelle kennt.
Die normale Zeit beim zyklischen Anfragen der SPS beträgt 50ms. Sie ist schneller wenn das Steuerungs Abfrageintervall auf 0 gesetzt wird
Zu OPC werden nur Daten gesendet die sich in der SPS zwischen zwei Leseanfragen geändert haben.

Der Durchsatz einer Logiktabelle wird bis 10 Millisekunden Schritte normalerweise eingehalten. Sehr viele Logiktabellen mit jeweils sehr viel mathematischen Funktionen können dazu führen das 10ms überschritten werden. Das ist vor Allem bei Enbedded Geräten ohne mathematischen Koprozessor der Fall.
Natürlich kann keine Abarbeitung schneller ablaufen als die angeschlossenen Geräte und Steuerungen Daten liefern. Das gilt auch für den Datenbankzugriff.

Funktionen

Logiktabellen

Logiktabellen sind für lineare Abläufe gebaut. Schleifen sind nicht möglich.

Schrittketten

Jede Schrittkette kann maximal 65535 Schritte enthalten

Fehlerbelandlung in Logiktabellen

Alle Logikelemente deren Funktion fehlschlagen kann liefern ein OK Bit. Es liegt in der Anwendung diese OK Bits zu nutzen um Laufzeitfehler zu behandeln.

Variablen und Strukturen

Strukturen können keine Schleifen enthalten.
Eine Struktur oder Variable kann bis 4GB groß werden.

Status Diagnoselisten

Die Status Diagnosewerte können bei Feldern nur bis maximal 100 Elemente bearbeiten. Wird ein Feld länger so werden die ersten 100 Werte gezeigt, ein Schreiben ist dann nicht möglich.

Feld und Textoptimierungen

Die ab Version 1.8 vorhandenen OPC Feldoptimierungen verhindern das zu häufige Lesen der langen Datenfelder, nur der Index wird zyklisch abgefragt. Diese Optimierung hilft nur dann wenn sich der Index nicht allzuoft ändert.

Speicherbedarf

Rechenzeitbedarf

Die genutzte CPU Zeit hängt von der Auslastung ab. Meist wird auf die Daten der Steuerungen oder Daten von der OPC Applikation gewartet.
Alle Software arbeitet intern ereignisgesteuert. Das dient dem Durchsatz und minimiert die CPU Belastung.
Mehrere CPU im PC werden unterstützt. Maximal werden 10 CPU genutzt, die Haupt Verarbeitungslast wird von drei CPUs geleistet.

Installation

Die Installation installiert je nach Produkt und Auswahl mehrere Programmteile. Beim Uninstall werden nicht automatisch alle Teile gelöscht. Alle Uninstaller werden aber im Menü und unter Software angeboten, gegebenenfalls müssen die Produkte einzeln entfernt werden.
Die Anwender Einstellungen werden beim Uninstall nicht gelöscht.

Betriebssysteme