lub
Dzięki funkcji Sprawdź projekt, za pomocą kreatora można przeprowadzić kilka sprawdzeń projektu. Kreator Sprawdzania projektu prowadzi przez proces sprawdzania projektu pod kątem ogólnych zasad projektowania KNX.
To jest test offline. ETS nie połączy się z magistralą.
Sprawdzenie projektu można wywołać przez kliknięcie na 3 pionowe kropki na pasku narzędzi.
Istnieje 5 różnych poziomów, które są sprawdzane w projekcie.
- Sprawdzanie urządzenia
- Sprawdzanie adresów grupowych
- Sprawdzenie topologii
- Sprawdzanie informacji o produkcie
- Sprawdza projekty zaimportowane z wcześniejszych wersji ETS
Sprawdzanie urządzenia
Co weryfikuje Sprawdzanie urządzeń?
- Czy co najmniej jeden obiekt grupowy urządzeń jest powiązany z jakimś adresem grupowym
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| device.ActiveComObjectInstances.Count > 0 | Czy jakikolwiek aktywny obiekt grupy jest powiązany z adresem grupy? | Ostrzeżenie: Urządzenie "{device.DisplayName}" nie ma obiektu grupy powiązanego z adresem grupy. |
- Czy wszystkie identyfikatory urządzeń są zgodne z wtyczkami ETS3
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| device.Description.length > 80? | Błąd: Długość opisu jest większa niż 80 znaków. Może to powodować problemy z wtyczkami ETS3 | |
| device.Name.length > 50? | Błąd: Długość nazwy jest większa niż 50 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| foreach comObject.Description.length > 80? | Błąd: Długość opisu jest większa niż 80 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. |
Sprawdzanie adresów grupowych
Co weryfikuje Sprawdzanie adresów grupowych?
- Czy wykorzystane są wszystkie adresy grupowe (powiązane z co najmniej jednym obiektem grupowym)
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| Adres grupy jest powiązany z segmentem PL | dla każdego połączenia adresu grupy z ustawioną flagą connector.Acknowledge, obliczana jest liczba wywołań grupowych. W tym celu zapisywany jest adres domeny segmentu nadrzędnego (connector.ParentDevice.Segment), a wartość jest zwiększana, jeśli istnieje inny konektor z ustawioną flagą potwierdzenia. Jeśli wartość jest większa niż 1, tworzony jest wpis raportu. | Dla adresu grupowego "{groupAddress.DisplayName}" istnieje zbyt wiele powiązanych urządzeń, które wysyłają telegram LL-Ack. |
| groupAddress.ObjectSize != null | groupAddress.Connectors.Count < 2 | Tylko jeden obiekt grupy jest powiązany z adresem grupy "{groupAddress.DisplayName}". |
| groupAddress.ObjectSize != null | groupAddress.Connectors.Count < 1 | Żaden obiekt grupy nie jest powiązany z adresem grupy "{groupAddress.DisplayName}". |
| groupAddress.ObjectSize == null | Żaden obiekt grupy nie jest powiązany z adresem grupy "{groupAddress.DisplayName}". |
- Czy rozszerzone adresy grupowe są powiązane z urządzeniami z wtyczkami
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| GroupAddress.Address >0x7FFF and groupAddress.Connectors.Count > 0 and groupAddress.Connector.ParentDevice.HasDownloadPlugin |
Ostrzeżenie: Obiekt urządzenia {connector.ParentComObjectInstance.Number} jest powiązany z 16-bitowym adresem grupy {groupAddress.AddressString} {groupAddress.Name}. |
- Czy wszystkie identyfikatory adresów grupowych są kompatybilne z wtyczkami ETS3
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
|
groupAddress.Description.length > 80? groupRange.Description.length > 80? |
Błąd: Długość opisu jest większa niż 80 znaków. Może to powodować problemy z wtyczkami ETS3 | |
|
groupAddress.Name.length > 50? groupRange.Name.length > 50? |
Błąd: Długość nazwy jest większa niż 50 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. |
Sprawdzenie topologii
Co weryfikuje Sprawdzanie Topologii?
- Porównuje wymagania prądowe urządzenia i prąd dostarczany przez zasilacze TP
- Jeśli zużycie energii jest podane we właściwościach urządzenia, to jest wykorzystane; w przeciwnym razie przyjmuje się średnio 10mA
- Jeśli wydajność prądowa jest podana we właściwościach zasilaczy, to jest wykorzystana; w przeciwnym razie przyjmuje się średnio 320mA
- Ilość zasilaczy i dławików w segmentach TP
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| line.MainSegment.IsTpSegment i line.Devices.Any() |
dla każdej linii obliczana jest liczba zasilaczy. Jeśli powerSupplyCount == 0, tworzony jest komunikat informacyjny. |
Info: Brak przewidywanego zasilania dla linii "{line.DisplayName}". |
| line.MainSegment.IsTpSegment i line.Devices.Any() | dla każdej linii obliczana jest liczba zasilaczy. Jeśli powerSupplyCount > 2, pojawi się komunikat o błędzie. | Błąd: Więcej niż 2 zasilacze przewidziane dla linii "{line.DisplayName}". |
| line.MainSegment.IsTpSegment i line.Devices.Any() | Dla każdej linii obliczana jest liczba zasilaczy i dławików. Jeśli powerSupplyCount != chokeCount, tworzony jest komunikat ostrzegawczy. | Ostrzeżenie: Liczba dławików w wierszu "{line.DisplayName}" nie odpowiada liczbie zasilaczy. |
- Czy brakuje sprzęgieł w segmentach głównych
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| Więcej niż jedna linia z głównym segmentem TP i urządzeniami |
jeśli w line.MainSegment nie ma żadnego łącznika, wyświetlany jest komunikat o błędzie |
Błąd: Linia "{line.DisplayName}" nie ma sprzęgła liniowego |
| Więcej niż jeden !area.MainLine.MainSegment.IsIpSegment i area.MainLine.Devices.Any() | jeśli żadne sprzęgło nie jest obecne area.MainLine.MainSegment, wyświetlany jest komunikat o błędzie | Błąd: Obszar "{area.DisplayName}" nie ma sprzęgła obszarowego. |
| line.MainSegment.IsPlSegment || line.MainSegment.IsRfSegment |
line.MainSegment.IsPlSegment: Proszę sprawdzić, czy istnieje urządzenie z maską w wersji 0x1900, jeśli nie, zostanie wyświetlony komunikat o błędzie. line.MainSegment.IsRfSegment: Proszę sprawdzić, czy istnieje urządzenie z maską w wersji 0x2920. Jeśli nie, wyświetlony zostanie komunikat o błędzie. |
Błąd: If line.IsMainLine Obszar "{area.DisplayName}" nie ma sprzęgła mediów w głównej linii {line.DisplayName}. w przeciwnym razie: Linia "{line.DisplayName}" nie posiada sprzęgła mediów. |
- Czy brakuje sprzęgieł segmentowych w podsegmentach
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| jeśli istnieje repeater TP (bez funkcji sprzęgła segmentowego) | Ostrzeżenie: Linia "{segment.DisplayName}" jest podłączona przez repeater bez możliwości filtrowania. Proszę rozważyć zastąpienie go sprzęgłem segmentowym, aby zmniejszyć ruch na magistrali. | |
| jeśli istnieje starsze sprzęgło mediów (bez funkcji łączenia segmentów) | Ostrzeżenie: Linia "{segment.DisplayName}" jest połączona za pośrednictwem sprzęgła mediów, które może być zaimplementowane jako sprzęgło na linii głównej lub szkieletowej i nie może być sparametryzowane jako sprzęgło segmentowe. Proszę sprawdzić dokumentację urządzenia. |
|
| nie wykryto sprzęgła | Błąd: Linia "{segment.DisplayName}" nie ma sprzęgła segmentowego. |
- Czy linia szkieletowa powinna być IP
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
|
Sprawdzane jest, czy istnieje linia z line.Address == 0 && Line.ParentArea.Address == 0, w przeciwnym razie tworzony jest komunikat o błędzie |
Ostrzeżenie: Brak linii szkieletowej. Zaleca się utworzenie linii szkieletowej i ustawienie jej na "IP |
|
|
Jeśli istnieje linia szkieletowa, sprawdzane jest również, czy istnieje urządzenie o adresie == 0 i maskVersion == 0x091a. istnieje jedno takie sprzęgło z ApplicationProgramIpConfig == ApplicationProgramIpConfig.Custom i drugie sprzęgło z ApplicationProgramIpConfig != ApplicationProgramIpConfig.Custom. Jeśli tak, pojawi się komunikat o błędzie. |
Ostrzeżenie: Linia szkieletowa nie jest typu "IP", chociaż w projekcie istnieją tylko routery IP z niestandardowym zarządzaniem. Zaleca się ustawienie linii szkieletowej na "IP |
- Czy spełnione są wymagania dla topologii z routerami KNX/IP
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| W line.Devices znajduje się urządzenie o adresie == 0, device.IsCoupler i device.MaskVersion == 0x091a. |
linia nie jest linią główną: dla routera IP x.y.0 nie może istnieć router x.0.0 |
Błąd: Istnieje sprzęgło obszarowe, podczas gdy poniżej tego sprzęgła obszarowego istnieje również sprzęgło liniowe typu "IP" (router KNX/IP). Jest to niedozwolone |
| W line.Devices znajduje się urządzenie o adresie == 0, device.IsCoupler i device.MaskVersion == 0x091a. | linia nie jest linią główną: dla routera x.y.0 IP, typem medium linii głównej będzie IP, jeśli istnieje | Błąd: Sprzęgło liniowe typu "IP" (router KNX/IP) istnieje poniżej linii głównej, która nie ma typu medium "IP". Typ medium linii głównej musi być ustawiony na "IP", jeśli router KNX/IP jest skonfigurowany poniżej |
| W line.Devices znajduje się urządzenie o adresie == 0, device.IsCoupler i device.MaskVersion == 0x091a. | line.Address != 0: dla x.y.0 router IP z y != 0, nie może istnieć żaden inny router x.y.0 nie będący routerem IP. | Błąd: W tym samym obszarze mieszają się sprzęgła liniowe typu "IP" (routery KNX/IP) i sprzęgła inne niż IP. Jest to niedozwolone |
| W line.Devices znajduje się urządzenie o adresie == 0, device.IsCoupler i device.MaskVersion == 0x091a. | W przypadku routera IP x.y.0 lub routera IP x.0.0 typem medium linii szkieletowej jest IP, jeśli istnieje | Błąd: Istnieje sprzęgło typu "IP" (router KNX/IP), a linia szkieletowa (0.0) nie ma medium typu "IP". Typ medium linii szkieletowej musi być ustawiony na "IP", jeśli skonfigurowany jest router KNX/IP. |
| W line.Devices znajduje się urządzenie o adresie == 0, device.IsCoupler i device.MaskVersion == 0x091a. | jeśli installation.BackboneLine.MainSegment.IsTpSegment i istnieje line.MainSegment.IsIpSegment, tworzony jest komunikat o błędzie | Błąd: Typ medium linii {line.DisplayName} nie może być IP, ponieważ linia szkieletowa jest typu medium TP. |
| W line.Devices znajduje się urządzenie o adresie == 0, device.IsCoupler i device.MaskVersion == 0x091a. | Proszę sprawdzić, czy pod linią główną TP znajdują się linie IP. | Błąd: Typ medium linii {0} nie może być IP, ponieważ główna linia jest typu medium TP. |
- Czy wszystkie identyfikatory topologii są kompatybilne z wtyczkami ETS3
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| line.Name.length > 50? | Błąd: Długość nazwy jest większa niż 50 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| area.Name.length > 50? | Błąd: Długość nazwy jest większa niż 50 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| buildingPart.Name.length > 50? | Błąd: Długość nazwy jest większa niż 50 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| trade.Name.length > 50? | Błąd: Długość nazwy jest większa niż 50 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| line.Description.length > 80? | Błąd: Długość opisu jest większa niż 80 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| area.Description.length > 80? | Błąd: Długość opisu jest większa niż 80 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| buildingPart.Description.length > 80? | Błąd: Długość opisu jest większa niż 80 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| trade.Description.length > 80? | Błąd: Długość opisu jest większa niż 80 znaków. Może to skutkować problemami z plug-inami aplikacji ETS3. | |
| buildingPart.Number.Length > 20? | Błąd: Długość numeru jest większa niż 20 znaków. Może to powodować problemy z wtyczkami ETS3 | |
| trade.Number.Length > 20? | Błąd: Długość numeru jest większa niż 20 znaków. Może to powodować problemy z wtyczkami ETS3 |
Sprawdzanie informacji o produkcie
W niektórych przypadkach dostępna jest aktualizacja wpisu produktu KNX, zawierająca ulepszenia lub poprawki błędów dla tej samej wersji produktu. Za pomocą tego sprawdzenia można wydrukować listę, która pokazuje wszystkie takie urządzenia. Wykaz zawiera również „odciski palców” urządzeń (mogą one być wykorzystywane przez producentów w celu rozróżnienia kilku wariantów urządzenia, nawet jeśli wersja jest taka sama).
Sprawdza projekty importowane z wcześniejszych wersji ETS
Co weryfikuje sprawdzenie projektów importowanych z wcześniejszych wersji ETS?
- Czy wszystkie adresy urządzeń są prawidłowe
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| device.Address != null i device.line != null | device.Address < 0 || device.Address > 255 | Błąd: Adres "{device.Address}" z "{device.DisplayName}" jest poza zakresem. |
| device.Address != null i device.line != null | device.Address jest unikalny w linii | Błąd: Adres "{device.Address}" nie jest unikalny. |
| device.Address != null i device.line != null | !device.Hardware.HasIndividualAddress | Błąd: Urządzenie "{device.DisplayName}" nie może mieć adresu, ale ma adres "{device.Address}". |
| device.Address != null i device.line != null | device.Address == 0 && !device.IsCoupler | Błąd: Adres urządzenia 0 jest zarezerwowany dla sprzęgieł |
| device.Address == null || device.Line == null | device.Hardware.HasIndividualAddress | Błąd: "{device.DisplayName}" nie ma adresu |
- Czy adresy obszarów i linii są prawidłowe
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
| area.Address > 15 | Błąd: Adres "{area.Address}" z "{area.Name}" jest poza zakresem. | |
| Czy projekt obejmuje obszar o tym samym adresie? | Błąd: Adres "{area.Address}" nie jest unikalny |
- Czy zakresy grup są prawidłowe
| Warunek wstępny | Sprawdzenie | Komunikat, jeśli kontrola nie powiedzie się |
|---|---|---|
|
Adres grupowy (adres zakresu grupy) jest prawidłowy?
|
Błąd: Adres "{groupAddress.Address}" z "{groupAddress.DisplayName}" jest poza zakresem. lub Adres "{groupRange.Address}" z "{groupRange.DisplayName}" jest poza zakresem. |
|
| Czy projekt ma adres grupowy / zakres adresów grupowych z tym samym adresem? |
Błąd: Adres "{groupAddress.Address}" nie jest unikalny. lub Adres "{groupRange.Address}" nie jest unikalny. |
|
| Trzypoziomowy styl adresów grupowych: Czy istnieje adres 0/0/0? | Błąd: Adres grupy 0/0/0 jest nieprawidłowy. |
- Liczba wzmacnaiczy starego typu
Wynik jest wyświetlany w tym samym oknie i można go zapisać, skopiować do schowka i wydrukować.
Wszystkie sprawdzenia mogą być wyłączone globalnie, a poszczególne etapy mogą być wyłączone w odpowiedniej karcie.