oder
Mit der Projektüberprüfungsfunktion können mehrere Projektüberprüfungen mit Hilfe eines Assistenten durchgeführt werden. Der Assistent für Projektüberprüfung führt Sie durch den Prozess der Überprüfung Ihres Projekts auf gängige KNX-Planungs- und Projektierungsregeln.
Dies ist ein Offline-Test. ETS benötigt keine Verbindung zum Bus.
Die Projektprüfung kann über die 3 Punkte in der Symbolleiste aufgerufen werden.
Es gibt 5 verschiedene Ebenen, die in einem Projekt geprüft werden.
- Geräteüberprüfung
- Gruppenadressenüberprüfung
- Topologieüberprüfung
- Produktinformationen überprüfen
- Prüft nach Projekten, die aus früheren ETS-Versionen importiert wurden
Geräte-Überprüfung
Was überprüft die Geräteprüfung?
- Ob mindestens ein Kommunikationsobjekt eines Geräts mit einer Gruppenadresse verbunden ist
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| device.ActiveComObjectInstances.Count > 0 | Ist ein aktives Kommunikationsobjekt mit einer Gruppenadresse verbunden? | Warnung: Das Gerät "{device.DisplayName}" hat kein Kommunikationsobjekt, das mit einer Gruppenadresse verbunden ist. |
- Ob alle Gerätebezeichner kompatibel zu ETS3-Plugins sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| device.Description.length > 80? | Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte Probleme mit ETS3-Plug-ins verursachen | |
| device.Name.length > 50? | Fehler: Die Länge des Namens ist größer als 50 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| foreach comObject.Description.length > 80? | Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. |
Gruppenadressenüberprüfung
Was überprüft die Gruppen-Adresseprüfung?
- Ob alle Gruppenadressen verwendet werden (verbunden mit mindestens einem Gruppenobjekt)
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| Die Gruppenadresse ist mit einem PL-Segment verbunden | für jeden Anschluss der Gruppenadresse, bei dem das Flag connector.Acknowledge gesetzt ist, wird die Anzahl der Gruppenanrufer berechnet. Zu diesem Zweck wird die Domänenadresse des übergeordneten Segments (connector.ParentDevice.Segment) gespeichert und der Wert inkrementiert, wenn es einen weiteren Connector gibt, bei dem das Acknowledge-Flag gesetzt ist. Wenn der Wert größer als 1 ist, wird ein Berichtseintrag erstellt. | Für die Gruppenadresse "{groupAddress.DisplayName}" sind zu viele Geräte zugeordnet, die das LL-Ack-Telegramm senden. |
| groupAddress.ObjectSize != null | groupAddress.Connectors.Count < 2 | Nur ein Kommunikationsobjekt ist mit der Gruppenadresse "{groupAddress.DisplayName}" verknüpft |
| groupAddress.ObjectSize != null | groupAddress.Connectors.Count < 1 | Es sind keine Kommunikationsobjekte mit der Gruppenadresse "{groupAddress.DisplayName}" verknüpft |
| groupAddress.ObjectSize == null | Es sind keine Kommunikationsobjekte mit der Gruppenadresse "{groupAddress.DisplayName}" verknüpft |
- Ob erweiterte Gruppenadressen mit Plug-in-Geräten verbunden sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| GroupAddress.Address >0x7FFF und groupAddress.Connectors.Count > 0 und groupAddress.Connector.ParentDevice.HasDownloadPlugin |
Warnung: Das Geräteobjekt {connector.ParentComObjectInstance.Number} ist mit der 16-Bit-Gruppenadresse {groupAddress.AddressString} {groupAddress.Name}verbunden. |
- Ob alle Gruppenadressenbezeichner mit ETS3-Plugins kompatibel sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
|
groupAddress.Description.length > 80? groupRange.Description.length > 80? |
Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte Probleme mit ETS3-Plug-ins verursachen | |
|
groupAddress.Name.length > 50? groupRange.Name.length > 50? |
Fehler: Die Länge des Namens ist größer als 50 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. |
Topologieüberprüfung
Was überprüft die Topologieprüfung?
- Vergleicht die Stromanforderungen mit der zur Verfügung stehenden TP-Stromversorgung
- Wenn der Stromverbrauch aus den Eigenschaften der Geräte verfügbar ist, wird dieser verwendet; ansonsten wird durchschnittlich 10mA verwendet
- Wenn der Strom aus den Geräteigenschaften der Netzteile verfügbar ist, wird sie verwendet; ansonsten wird durchschnittlich 320mA verwendet
- Anzahl der Stromversorgungen und Drosseln in TP-Segmenten
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| line.MainSegment.IsTpSegment und line.Devices.Any() |
für jede Linie wird die Anzahl der Spannungsversorgungen berechnet. Wenn powerSupplyCount == 0 ist, wird eine Info-Meldung erstellt. |
Infos: Für die Linie "{line.DisplayName}" ist keine Spannungversorgung vorgesehen |
| line.MainSegment.IsTpSegment und line.Devices.Any() | für jede Linie wird die Anzahl der Spannungsversorgungen berechnet. Wenn der powerSupplyCount > 2 ist, wird eine Fehlermeldung erstellt. | Fehler: Mehr als 2 Spannungsversorgungen projektiert für Linie "{line.DisplayName}" |
| line.MainSegment.IsTpSegment und line.Devices.Any() | oder jeder Zeile wird die Anzahl der Spannungsversorgungen und Drosseln berechnet. Wenn powerSupplyCount != chokeCount ist, wird eine Warnmeldung erstellt. | Warnung: Die Anzahl der Drosseln in der Linie "{line.DisplayName}" stimmt nicht mit der Anzahl der Spannungsversorgungen überein. |
- Ob Koppler fehlen in den Hauptsegmenten
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| Mehr als eine Linie mit TP-Hauptsegment und Geräten |
wenn kein Koppler in line.MainSegment vorhanden ist, wird eine Fehlermeldung angezeigt |
Fehler: Linie "{line.DisplayName}" hat keinen Linienkoppler |
| Mehr als ein !area.MainLine.MainSegment.IsIpSegment und area.MainLine.Devices.Any() | wenn kein Koppler vorhanden ist area.MainLine.MainSegment, wird eine Fehlermeldung angezeigt | Fehler: Bereich "{area.DisplayName}" hat keinen Bereichskoppler. |
| line.MainSegment.IsPlSegment || line.MainSegment.IsRfSegment |
line.MainSegment.IsPlSegment: Prüfung ob ein Gerät mit der Maskenversion 0x1900 existiert. Wenn nicht, wird eine Fehlermeldung angezeigt line.MainSegment.IsRfSegment: Prüfung ob ein Gerät mit der Maskenversion 0x2920 existiert. Wenn nicht, wird eine Fehlermeldung angezeigt. |
Fehler: Wenn line.IsMainLine Der Bereich "{area.DisplayName}" hat keinen Medienkoppler in der Hauptlinie {line.DisplayName}. sonst: Die Linie "{line.DisplayName}" hat keinen Medienkoppler. |
- Ob Segmentkoppler fehlen in den Teilsegmenten
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| wenn ein TP-Verstärker (ohne Segmentkopplerfunktion) vorhanden ist | Warnung: Die Linie "{segment.DisplayName}" ist über einen Verstärker ohne Filtermöglichkeiten gekoppelt. Erwägen Sie, ihn durch einen Segmentkoppler zu ersetzen, um den Busverkehr zu reduzieren. | |
| wenn alter Medienkoppler (ohne Segmentkopplerfunktion) vorhanden ist | Warnung: Die Linie "{segment.DisplayName}" ist über einen Medienkoppler gekoppelt, der als Koppler auf der Hauptlinie oder dem Backbone implementiert werden könnte und nicht für die Segmentkopplung vorbereitet werden kann. Prüfen Sie die Gerätedokumentation. |
|
| kein Koppler erkannt | Fehler: Die Linie "{segment.DisplayName}" hat keinen Segmentkoppler. |
- Ob die Backbone-Linie IP sein soll
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
|
Es wird geprüft, ob eine Linie mit line.Address == 0 && Line.ParentArea.Address == 0 existiert, andernfalls wird eine Fehlermeldung erzeugt |
Warnung: Es ist keine Backbone-Linie vorhanden. Es wird empfohlen, eine Backbone-Linie zu erstellen und diese auf 'IP' einzustellen |
|
|
Wenn eine Backbone-Linie vorhanden ist, wird auch geprüft, ob ein Gerät mit Adresse == 0 und maskVersion == 0x091a vorhanden ist. ein solcher Koppler mit ApplicationProgramIpConfig == ApplicationProgramIpConfig.Custom und ein weiterer Koppler mit ApplicationProgramIpConfig != ApplicationProgramIpConfig.Custom existieren. Wenn ja, wird eine Fehlermeldung erstellt. |
Warnung: Die Backbone-Linie ist nicht vom Typ 'IP', obwohl im Projekt nur IP-Router mit benutzerdefinierter Verwaltung existieren. Es wird empfohlen, die Backbone-Linie auf 'IP' einzustellen |
- Wenn die Voraussetzungen für Topologien mit KNX/IP-Routern erfüllt sind: Diese Prüfung gilt nur für vorhandene KNX/IP-Router.
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| Es gibt ein Gerät mit Adresse == 0 und device.IsCoupler und device.MaskVersion == 0x091a in line.Devices. |
Die Linie ist keine Hauptlinie: für x.y.0 IP-Router darf kein x.0.0-Router existieren |
Fehler: Es existiert ein Bereichskoppler, während unterhalb dieses Bereichskopplers auch ein Linienkoppler vom Typ 'IP' (KNX/IP-Router) existiert. Dies ist nicht erlaubt |
| Es gibt ein Gerät mit Adresse == 0 und device.IsCoupler und device.MaskVersion == 0x091a in line.Devices. | Linie ist keine Hauptlinie: für x.y.0 IP-Router muss der Medientyp der Hauptlinie IP sein, wenn er existiert | Fehler: Ein Linienkoppler vom Typ 'IP' (KNX/IP-Router) existiert unterhalb einer Hauptlinie, die nicht den Medientyp 'IP' hat. Der Medientyp der Hauptlinie muss auf 'IP' eingestellt werden, wenn unten ein KNX/IP-Router konfiguriert ist |
| Es gibt ein Gerät mit Adresse == 0 und device.IsCoupler und device.MaskVersion == 0x091a in line.Devices. | line.Address != 0: für x.y.0 IP-Router mit y != 0, darf kein anderer Nicht-IP-Router x.y.0 existieren | Fehler: Innerhalb desselben Bereichs werden Linienkoppler vom Typ 'IP' (KNX/IP-Router) und Nicht-IP-Koppler gemischt. Dies ist nicht erlaubt |
| Es gibt ein Gerät mit Adresse == 0 und device.IsCoupler und device.MaskVersion == 0x091a in line.Devices. | Für x.y.0 IP-Router oder x.0.0 IP-Router muss der Medientyp der Backbone-Linie IP sein, wenn er existiert | Fehler: Es existiertein Koppler vom Typ 'IP' (KNX/IP-Router) und die Backbone-Linie (0.0) hat nicht den Medientyp 'IP'. Der Medientyp der Backbone-Linie muss auf 'IP' eingestellt werden, wenn ein KNX/IP-Router konfiguriert ist |
| Es gibt ein Gerät mit Adresse == 0 und device.IsCoupler und device.MaskVersion == 0x091a in line.Devices. | wenn installation.BackboneLine.MainSegment.IsTpSegment und dort line.MainSegment.IsIpSegment vorhanden ist, wird eine Fehlermeldung erstellt | Fehler: Der Medientyp der Linie {line.DisplayName} darf nicht IP sein, weil die Backbone-Linie vom Medientyp TP ist |
| Es gibt ein Gerät mit Adresse == 0 und device.IsCoupler und device.MaskVersion == 0x091a in line.Devices. | Prüfung ob es IP-Linien unter der TP-Hauptlinie gibt | Fehler: Der Medientyp der Linie {0} darf nicht IP sein, weil die Hauptllinie vom Medientyp TP ist. |
- Ob alle Topologiebezeichner kompatibel zu ETS3-Plugins sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| line.Name.length > 50? | Fehler: Die Länge des Namens ist größer als 50 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| area.Name.length > 50? | Fehler: Die Länge des Namens ist größer als 50 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| buildingPart.Name.length > 50? | Fehler: Die Länge des Namens ist größer als 50 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| trade.Name.length > 50? | Fehler: Die Länge des Namens ist größer als 50 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| line.Description.length > 80? | Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| area.Description.length > 80? | Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| buildingPart.Description.length > 80? | Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| trade.Description.length > 80? | Fehler: Die Länge der Beschreibung ist größer als 80 Zeichen. Dies könnte zu Problemen mit ETS3-Plug-ins führen. | |
| buildingPart.Number.Length > 20? | Fehler: Die Länge der Nummer ist größer als 20 Zeichen. Dies könnte Probleme mit ETS3-Plug-ins verursachen | |
| trade.Number.Length > 20? | Fehler: Die Länge der Nummer ist größer als 20 Zeichen. Dies könnte Probleme mit ETS3-Plug-ins verursachen |
Produktinformationen-Überprüfung
In einigen Fällen steht ein Update eines KNX-Produkteintrags zur Verfügung, der Verbesserungen oder Fehlerkorrekturen für die gleiche Produktversion enthält. Mit Hilfe dieser Überprüfung kann eine Liste mit all diesen Geräten ausgedruckt werden. Die Liste enthält auch die "Fingerabdrücke" der Geräte (diese können von den Herstellern verwendet werden, um zwischen verschiedenen Variationen eines Geräts zu unterscheiden, auch wenn die Version die gleiche ist).
Prüft nach Projekten, die aus früheren ETS-Versionen importiert wurden
Was überprüft die Prüfung von Projekten, die aus früheren ETS-Versionen importiert wurde?
- Ob alle Geräteadressen gültig sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| device.Address != null und device.line != null | gerät.Adresse < 0 || gerät.Adresse > 255 | Fehler: Die Adresse "{device.Address}" von "{device.DisplayName}" liegt außerhalb des Bereichs. |
| device.Address != null und device.line != null | device.Address ist einmalig in der Linie | Fehler: Die Adresse "{device.Address}" ist nicht einmalig. |
| device.Address != null und device.line != null | !device.Hardware.HasIndividualAddress | Fehler: Das Gerät "{device.DisplayName}" darf keine Adresse haben, hat aber die Adresse "{device.Address}". |
| device.Address != null und device.line != null | device.Address == 0 && !device.IsCoupler | Fehler: Die Geräteadresse 0 ist für Koppler reserviert |
| device.Address == null || device.Line == null | device.Hardware.HasIndividualAddress | Fehler: "{device.DisplayName}" hat keine Adresse |
- Ob die Adressen der Bereiche und Linien gültig sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
| area.Address > 15 | Fehler: Die Adresse "{area.Address}" von "{area.Name}" liegt außerhalb des Bereichs. | |
| Hat das Projekt einen Bereich mit der gleichen Adresse? | Fehler: Die Adresse "{area.Address}" ist nicht einmalig |
- Ob die Gruppenbereiche gültig sind
| Voraussetzung | Check | Meldung wenn Prüfung fehlschlägt |
|---|---|---|
|
Ist die Gruppenadresse (group range address) gültig?
|
Fehler: Die Adresse "{groupAddress.Address}" von "{groupAddress.DisplayName}" liegt außerhalb des Bereichs. oder Die Adresse "{groupRange.Address}" von "{groupRange.DisplayName}" liegt außerhalb des Bereichs. |
|
| Hat das Projekt eine groupAddress / group Range mit der gleichen Adresse? |
Fehler: Die Adresse "{groupAddress.Address}" ist nicht eindeutig. oder Die Adresse "{groupRange.Address}" ist nicht eindeutig. |
|
| Dreistufiger Gruppenstil: Hat die Gruppe Adresse die Adresse 0/0/0? | Fehler: Die Gruppenadresse 0/0/0 ist nicht gültig. |
- Anzahl der Legacy-Repeater
Das Ergebnis wird in dem gleichen Fenster dargestellt. Es kann gespeichert, in die Zwischenablage kopiert und ausgedruckt werden.
Alle Prüfungen können global deaktiviert werden und die einzelnen Schritte der Prüfungen können im jeweiligen Reiter deaktiviert werden.