Registerkarte: Softwaremetriken zur Bestimmung der Lizenz
Eine Metrik ist in diesem Umfeld der "Wert" (Anzahl) der für die Lizenzberechnung relevanten Einheiten. Abhängig vom Produkt kann dies beispielsweise die Größe des Benutzercodes in Bytes oder die Anzahl der Achsen, der E/A-Kanäle oder der Feldbus-Instanzen sein.
Die Registerkarte des Geräteeditors zeigt in einer Baumstruktur die für die Applikation vorliegenden Metriken an. Damit können Sie die aktuell gemessenen Werte einsehen und kontrollieren, ob nicht mehr Code auf eine Steuerung geladen wird, als die Lizenz erlaubt. Die Lizenz wird pro Steuerung erteilt und befindet sich deshalb auf der Steuerung. Dort erfolgt auch die Lizenzprüfung.
Die Metriken werden während des Downloads auf die Steuerung übertragen. Sie werden aktualisiert, wenn Sie den Befehl für die aktive Applikation ausführen.
Aktuelle Metriken vom Gerät lesen | Ermittelt und überträgt die Metriken von der Steuerung und zeigt sie unter der Spalte Wert auf Gerät an. |
Code erzeugen, um Metriken zu berechnen | Zur Berechnung der Metriken muss der Code erzeugt werden. |
Lizenzen anzeigen | Öffnet den Dialog Lizenzen Der Dialog zeigt die für das Projekt erforderliche Lizenz. Der Befehl Alles im Store öffnen und Dialog schließen öffnet das vorgeschlagene Produkt im CODESYS Store International. Wenn Sie das Produkt im CODESYS Store North America anzeigen wollen, müssen Sie in den CODESYS-Optionen den Store North America auswählen. |
Metrik | Metriktypen pro Applikation |
Wert im Projekt | Anzahl der verwendeten Tags im Entwicklungssystem. Der Wert wird während der Codegenerierung (Befehl ) gemessen. Details zur Berechnung finden Sie im Abschnitt Berechnung der Werte Hinweis: Wenn Sie die Übersetzungsinformation der Applikation löschen, werden die Werte auf 0 zurückgesetzt. |
Max. erlaubt durch die Lizenz | Erlaubte Maximalwerte pro Applikation gemäß der Lizenz auf der Steuerung |
Wert auf Gerät | Tatsächlich gemessener Wert, ausgelesen aus der Steuerung Hinweis: Um diesen Werte zu ermitteln, muss die Kommunikation funktionieren. |
Berechnung der Werte
Metrik | Wertermittlung |
|---|---|
Größe des Benutzercodes | Wert in Bytes Es wird nur vom Anwender programmierter Code (Implementierung) bewertet. Code, der nicht mit dem IEC-Compiler kompiliert wurde, wird nicht bewertet. Die Anzahl und Größe von Variablen in der Deklaration ist nicht relevant. Vom Anwender entwickelte IEC-Bibliotheken werden bei der Codegröße bewertet. Standard- und Systembibliotheken und Kommunikationsstacks der CODESYS GmbH werden nicht bewertet. |
Task Group Assignment | Für die Konfiguration von IEC-Taskgruppen in der Taskkonfiguration wird in vielen Fällen eine sogenannten „Task Group Assignment“-Lizenz benötigt, wenn die IEC-Tasks auf verschiedenen CPU-Kernen ausgeführt werden. nein: Bei folgenden Konfigurationen wird keine Lizenz benötigt:
ja: Bei folgenden Konfigurationen wird eine Lizenz benötigt:
|
Feldbus, E/A-Kanäle | Anzahl der gemappten Kanäle mit Basisdatentyp ( WichtigWenn Sie die Option Variablen immer aktualisieren aktiviert haben, werden alle Kanäle bei der Berechnung berücksichtigt, unabhängig davon, ob sie einer konkreten IEC-Variable zugeordnet sind oder nicht. |
Instanzen von CANopen, Modbus, PROFIBUS, SAE J1939 | Verwendete Feldbusstack-Instanzen dieses Typs Ein Master/Controller oder ein Slave/Gerät wird als eine Instanz in der Gerätekonfiguration gezählt. Die Geräte, die im Gerätebaum mit diesen Mastern/Slaves verknüpft sind, werden nicht gezählt. Diese werden über die E/A-Kanäle gezählt. Feldbus-Gateways werden ebenfalls als Instanz gezählt (Ausnahme: CANopen-Gateway). Für weitere Informationen siehe: Feldbusse - Lizenzierung |
Instanzen von EtherCAT, EtherNet/IP, PROFINET | |
Anzahl der Visualisierungstags | |
SoftMotion | |
Kommunikation |
Informationen zu den Lizenzpaketen der applikationsbasierten Lizenzen finden Sie im CODESYS Store.
Die Lizenzierung von Feldbussen erfolgt auf Basis der Anzahl der angelegten Instanzen des jeweiligen Feldbustyps. Jede erzeugte Feldbus-Stack‑Instanz wird zu den Softwaremetriken addiert, die zur Bestimmung Ihrer Lizenz benötigt wird.
Ein im Gerätebaum angelegter Client (Master, Controller) eines Feldbusses
Ein im Gerätebaum angelegter eigenständige remote Server oder lokale Server (Slave, Gerät)
Feldbus-Stack‑Instanzen, die programmatisch über die jeweilige Bibliothek erzeugt werden
Feldbus‑Gateways, mit Ausnahme von CANopen‑Gateways
Alle Server (Slaves) im Gerätebaum, die unter einem Client (Master) konfiguriert sind. Diese werden über die verwendeten E/A‑Kanäle berücksichtigt.
Die Anzahl der Instanzen entspricht somit der Anzahl der tatsächlich verwendeten Feldbus-Stack‑Instanzen eines Typs.
Am Beispiel eines Modbusses wird erklärt, wie die Anzahl der Instanzen ermitteln wird, um die für Sie passende Lizenz ermitteln zu können.

Im Gerätebaum ergeben sich folgende Instanzen:
(1) | Unterhalb eines Client-Geräts sind zwei Server-Geräte eingefügt. Der Client wird als Instanz gezählt, die beiden ihm zugewiesenen Server nicht. In Summe ergeben sich 1 Instanz |
(2) | Eine Instanz wird lokal als Server instanziiert. Die Daten können von mehreren Clients abgerufen werden. Der Server wird als 1 Instanz gezählt. |
(3) | Ein TCP-Client, dem remote TCP-Server zugeordnet sind, wird als eine Instanz gezählt. Die eingehängten remote TCP-Server gelten nicht als Instanz und werden daher nicht gezählt. Der TCP-Client wird als 1 Instanz gezählt. |
(4) | Diese lokalen TCP-Server sind jeweils eine Instanz. Deren Daten können von mehreren TCP-Clients abgerufen werden. In Summe ergeben sich 2 Instanzen. |
(5) | |
Ergebnis: Für diese Beispielkonfiguration werden 5 Instanzen gezählt. | |
PROGRAM PLC_PRG VAR FB_Client_TCP: ModbusFB.ClientTCP; // = Modbus_Client_TCP - count license + FB_Server_TCP_Local: ModbusFB.ServerTCP;// = Modbus_Server_TCP_Local - count license + FB_Server_TCP_Local2: ModbusFB.ServerTCP;// = Modbus_Server_TCP_Local2 - count license + FB_Read_Write: ModbusFB.ClientRequestReadWriteMultipleRegisters; // = Modbus-Server Remote FB_Read: ModbusFB.ClientRequestReadHoldingRegisters; // = Modbus-Server Remote FB_Write: ModbusFB.ClientRequestWriteMultipleRegisters ; // = Modbus-Server Remote END_VAR
Die im Beispiel erzeugten Modbus-Instanzen von Server und Client sind programmatisch über die ModbusFB-Bibliothek erzeugt (Deklaration).
Hier sind deklariert:
2 Instanzen eines Servers
1 Instanz eines Clients
Ergebnis: Hier im Beispiel werden 3 Instanzen gezählt.

Zur Aktualisierung der Anzeige muss das Projekt übersetzt werden: Im Beispiel sind insgesamt 8 Instanzen in der Registerkarte Softwaremetriken zur Bestimmung der Lizenz im Bereich Instanzen von CANopen, Modbus, PROFIBUS,SAE J1939 zu sehen.
Es werden insgesamt 8 Instanzen des Modbus gezählt, es ergibt sich im Beispiel das benötigte Lizenzpaket:
CODESYS Control Standard M