From a65092148fabb3b8b6d4ced799149ab7aa65d844 Mon Sep 17 00:00:00 2001 From: peterbarancek <62284244+peterbarancek@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:07:04 +0100 Subject: [PATCH] + view for SignalTower +localisations --- .../ctrl/src/AxoSignalTower/AxoSignalTower.st | 15 + .../AxoSignalTower/AxoSignalTowerView.razor | 448 ++++++++++++++++++ .../AxoSignalTowerView.razor.cs | 32 ++ .../AxoSignalTowerView.razor.css | 7 + .../Resources/Strings.de-DE.resx | 73 +++ .../Resources/Strings.de.resx | 73 +++ .../Resources/Strings.es-ES.resx | 73 +++ .../Resources/Strings.es.resx | 73 +++ .../Resources/Strings.hu-HU.resx | 73 +++ .../Resources/Strings.pl-PL.resx | 73 +++ .../Resources/Strings.resx | 73 +++ .../Resources/Strings.sk-SK.resx | 73 +++ .../Resources/Strings.sk.resx | 73 +++ 13 files changed, 1159 insertions(+) create mode 100644 src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor create mode 100644 src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.cs create mode 100644 src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.css diff --git a/src/components.elements/ctrl/src/AxoSignalTower/AxoSignalTower.st b/src/components.elements/ctrl/src/AxoSignalTower/AxoSignalTower.st index 9cf939e64..444bd247d 100644 --- a/src/components.elements/ctrl/src/AxoSignalTower/AxoSignalTower.st +++ b/src/components.elements/ctrl/src/AxoSignalTower/AxoSignalTower.st @@ -6,10 +6,25 @@ NAMESPACE AXOpen.Components.Elements CLASS AxoSignalTower EXTENDS AXOpen.Core.AxoComponent VAR PUBLIC + + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Lights")]} + {#ix-set:AttributeName = "<#Red Light#>"} Red : AXOpen.Components.Elements.AxoDo; + {#ix-attr:[ComponentDetails("Lights")]} + {#ix-set:AttributeName = "<#Green Light#>"} Green : AXOpen.Components.Elements.AxoDo; + {#ix-attr:[ComponentDetails("Lights")]} + {#ix-set:AttributeName = "<#Blue Light#>"} Blue : AXOpen.Components.Elements.AxoDo; + {#ix-attr:[ComponentDetails("Lights")]} + {#ix-set:AttributeName = "<#Yellow Light#>"} Yellow : AXOpen.Components.Elements.AxoDo; + + {#ix-attr:[ComponentDetails("Horn")]} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#Horn#>"} Horn : AXOpen.Components.Elements.AxoDo; END_VAR diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor b/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor new file mode 100644 index 000000000..c80ae799c --- /dev/null +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor @@ -0,0 +1,448 @@ +@namespace AXOpen.Components.Elements +@using AXOpen.Core +@using AXOpen.Core.Blazor +@using AXSharp.Presentation.Blazor.Controls +@using AXSharp.Presentation.Blazor.Controls.RenderableContent +@inherits AxoComponentViewBase + + + +
+ @Localizer["SignalTower"] + @CurrentStateDisplay +
+ @if (IsRedOn) + { +
+ } + @if (IsYellowOn) + { +
+ } + @if (IsGreenOn) + { +
+ } + @if (IsBlueOn) + { +
+ } + @if (IsHornOn) + { +
+ } +
+ @HornStatusText +
+
+ + +
+
@Localizer["SignalTowerControls"]
+ +
+
+
@Localizer["LightOutputs"]
+
+ + + + +
+
+ +
+
@Localizer["HornControl"]
+ +

@Localizer["HornToggleHint"]

+
+
+ +
+ + + +
+
@Localizer["ManualOverride"]
+

@Localizer["ManualOverrideHint"]

+
+
+
+
+ + +
+
@Localizer["SignalTowerStatus"]
+ +
+
+
+
@Localizer["CurrentState"]
+

@CurrentStateDisplay

+

@HornStatusText

+
+
+
+
+
+
+ @foreach (var channel in ChannelDescriptors) + { +
+
+ @Localizer[channel.LocalizationKey] +
+ } +
+
+ +
+ @foreach (var channel in ChannelDescriptors) + { +
+
+ @Localizer[channel.LocalizationKey] +
+
+
+ @(channel.IsOn ? Localizer["On"].Value : Localizer["Off"].Value.ToUpperInvariant()) +
+
+ } +
+
+
+ + +
+
@Localizer["Diagnostics"]
+ + @if (Component is not null) + { +
+
@Localizer["MessengerOverview"]
+
+ + + + + +
+
+ } + +
+ + + +
+
@Localizer["MonitorDiagnostics"]
+

@Localizer["MonitorDiagnosticsHint"]

+
+
+
+
+ + +
+
+
+
+
+
+
+
+ @*
+ @Localizer["SignalTower"] + @Localizer["LightsActive"]: @ActiveLightCount +
*@ +
+
+ @* @CurrentStateDisplay *@ + @HornStatusText.ToUpperInvariant() +
+
+ +
+
+ +@code { + private bool IsRedOn => Component?.Red?._signal?.LastValue ?? false; + private bool IsGreenOn => Component?.Green?._signal?.LastValue ?? false; + private bool IsBlueOn => Component?.Blue?._signal?.LastValue ?? false; + private bool IsYellowOn => Component?.Yellow?._signal?.LastValue ?? false; + private bool IsHornOn => Component?.Horn?._signal?.LastValue ?? false; + + private bool IsAnyLightOn => IsRedOn || IsYellowOn || IsGreenOn || IsBlueOn; + + private int ActiveLightCount + { + get + { + var count = 0; + if (IsRedOn) + { + count++; + } + if (IsYellowOn) + { + count++; + } + if (IsGreenOn) + { + count++; + } + if (IsBlueOn) + { + count++; + } + + return count; + } + } + + private bool HasMultipleLights => ActiveLightCount > 1; + + private string CurrentStateDisplay + { + get + { + var parts = new List(); + if (IsRedOn) + { + parts.Add(Localizer["Red"].Value); + } + if (IsYellowOn) + { + parts.Add(Localizer["Yellow"].Value); + } + if (IsGreenOn) + { + parts.Add(Localizer["Green"].Value); + } + if (IsBlueOn) + { + parts.Add(Localizer["Blue"].Value); + } + if (IsHornOn) + { + parts.Add(Localizer["Horn"].Value); + } + + return parts.Count > 0 ? string.Join(" · ", parts) : Localizer["Off"].Value; + } + } + + private string HornStatusText => IsHornOn ? Localizer["HornOn"].Value : Localizer["HornOff"].Value; + + private string HornBadgeClass => IsHornOn ? "badge-info" : "badge-ghost"; + + private string StatusBadgeClass + { + get + { + if (HasMultipleLights && IsHornOn) + { + return "badge-secondary"; + } + if (HasMultipleLights) + { + return "badge-warning"; + } + if (IsRedOn) + { + return "badge-danger"; + } + if (IsYellowOn) + { + return "badge-warning"; + } + if (IsGreenOn) + { + return "badge-success"; + } + if (IsBlueOn) + { + return "badge-info"; + } + if (IsHornOn) + { + return "badge-info"; + } + + return "badge-ghost"; + } + } + + private string BackgroundColorClass + { + get + { + if (HasMultipleLights && ActiveLightCount >= 3) + { + return "bg-gradient-to-r from-red-500 via-yellow-400 to-blue-500"; + } + if (IsRedOn && IsGreenOn) + { + return "bg-gradient-to-r from-red-500 via-amber-400 to-green-500"; + } + if (IsRedOn && IsBlueOn) + { + return "bg-gradient-to-r from-red-500 via-purple-500 to-blue-500"; + } + if (IsYellowOn && IsGreenOn) + { + return "bg-gradient-to-r from-yellow-400 via-lime-400 to-green-500"; + } + if (IsYellowOn && IsBlueOn) + { + return "bg-gradient-to-r from-yellow-400 via-sky-400 to-blue-500"; + } + if (IsGreenOn && IsBlueOn) + { + return "bg-gradient-to-r from-green-500 via-cyan-500 to-blue-500"; + } + if (IsRedOn) + { + return "bg-red-500"; + } + if (IsYellowOn) + { + return "bg-yellow-500"; + } + if (IsGreenOn) + { + return "bg-green-500"; + } + if (IsBlueOn) + { + return "bg-blue-500"; + } + + return "bg-gray-700"; + } + } + + private string ShadowClass + { + get + { + if (HasMultipleLights) + { + return "shadow-lg shadow-orange-400/40"; + } + if (IsRedOn) + { + return "shadow-lg shadow-red-500/50"; + } + if (IsYellowOn) + { + return "shadow-lg shadow-yellow-500/50"; + } + if (IsGreenOn) + { + return "shadow-lg shadow-green-500/50"; + } + if (IsBlueOn) + { + return "shadow-lg shadow-blue-500/50"; + } + + return string.Empty; + } + } + + private string ColorTextClass + { + get + { + if (HasMultipleLights) + { + return "text-orange-500"; + } + if (IsRedOn) + { + return "text-red-500"; + } + if (IsYellowOn) + { + return "text-yellow-500"; + } + if (IsGreenOn) + { + return "text-green-500"; + } + if (IsBlueOn) + { + return "text-blue-500"; + } + + return "text-text/60"; + } + } + + private string BorderClass + { + get + { + if (HasMultipleLights) + { + return "border-orange-400/50"; + } + if (IsRedOn) + { + return "border-red-500/50"; + } + if (IsYellowOn) + { + return "border-yellow-500/50"; + } + if (IsGreenOn) + { + return "border-green-500/50"; + } + if (IsBlueOn) + { + return "border-blue-500/50"; + } + + return "border-border"; + } + } + + private string RedBarClass => IsRedOn ? "bg-red-500 bar-pulse" : "bg-slate-700"; + private string YellowBarClass => IsYellowOn ? "bg-yellow-400 bar-pulse" : "bg-slate-700"; + private string GreenBarClass => IsGreenOn ? "bg-green-500 bar-pulse" : "bg-slate-700"; + private string BlueBarClass => IsBlueOn ? "bg-blue-500 bar-pulse" : "bg-slate-700"; + + private IEnumerable ChannelDescriptors => new[] + { + new ChannelDescriptor("Red", IsRedOn, "bg-red-500 animate-pulse shadow-lg shadow-red-500/50", "text-red-500"), + new ChannelDescriptor("Yellow", IsYellowOn, "bg-yellow-500 animate-pulse shadow-lg shadow-yellow-500/50", "text-yellow-500"), + new ChannelDescriptor("Green", IsGreenOn, "bg-green-500 animate-pulse shadow-lg shadow-green-500/50", "text-green-500"), + new ChannelDescriptor("Blue", IsBlueOn, "bg-blue-500 animate-pulse shadow-lg shadow-blue-500/50", "text-blue-500"), + new ChannelDescriptor("Horn", IsHornOn, "bg-info animate-pulse shadow-lg shadow-info/50", "text-info") + }; + + private record ChannelDescriptor(string LocalizationKey, bool IsOn, string DotClasses, string TextClass); + + public override void ConfigurePolling() + { + if (Component is null) + { + return; + } + + StartPolling(Component.Red._signal, 500); + StartPolling(Component.Yellow._signal, 500); + StartPolling(Component.Green._signal, 500); + StartPolling(Component.Blue._signal, 500); + StartPolling(Component.Horn._signal, 500); + } +} diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.cs b/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.cs new file mode 100644 index 000000000..f1e5b5834 --- /dev/null +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.cs @@ -0,0 +1,32 @@ +using AXOpen.Core.Blazor; + +namespace AXOpen.Components.Elements +{ + public partial class AxoSignalTowerView : AxoComponentViewBase + { + } + + public class AxoSignalTowerStatusView : AxoSignalTowerView + { + public AxoSignalTowerStatusView() + { + this.ViewType = eViewType.Status; + } + } + + public class AxoSignalTowerCommandView : AxoSignalTowerView + { + public AxoSignalTowerCommandView() + { + this.ViewType = eViewType.Command; + } + } + + public class AxoSignalTowerSpotView : AxoSignalTowerView + { + public AxoSignalTowerSpotView() + { + this.ViewType = eViewType.Spot; + } + } +} diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.css b/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.css new file mode 100644 index 000000000..28a4bf34f --- /dev/null +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/AxoSignalTower/AxoSignalTowerView.razor.css @@ -0,0 +1,7 @@ +.axo-signal-tower-spot{display:flex;gap:.5rem;align-items:center} +.axo-signal-light{width:.75rem;height:.75rem;border-radius:50%;opacity:.5;transition:all .2s ease} +.axo-signal-light--on{opacity:1;box-shadow:0 0 8px rgba(255,255,255,.4)} +.axo-signal-light--off{opacity:.35;filter:grayscale(60%)} +.axo-signal-horn{width:.75rem;height:.75rem;border-radius:2px;opacity:.5;transition:all .2s ease} +.axo-signal-horn--on{opacity:1;box-shadow:0 0 8px rgba(255,215,0,.5);background:linear-gradient(180deg,#facc15,#eab308)} +.axo-signal-horn--off{opacity:.35;background:#64748b} diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de-DE.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de-DE.resx index 18bb4d7e7..c2aa7713f 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de-DE.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de-DE.resx @@ -240,4 +240,77 @@ Bereit + + + Signalturm + + + Signalturm-Steuerung + + + Signalturm-Status + + + Leuchten + + + Lichtausgänge + + + Leuchten aktiv + + + Signalhorn + + + Hornsteuerung + + + Schalten Sie das akustische Horn, wenn ein hörbarer Alarm erforderlich ist. + + + Horn EIN + + + Horn AUS + + + Manuelle Bedienung + + + Verwenden Sie diese Bedienelemente während der Inbetriebnahme oder Wartung. Für den Automatikbetrieb verlassen Sie sich auf SPS-Sequenzen. + + + Diagnose + + + Meldungsübersicht + + + Diagnose überwachen + + + Die Meldungen stammen aus der SPS-Logik; beheben Sie die gemeldeten Probleme, bevor Sie in den Automatikmodus zurückkehren. + + + Aktueller Zustand + + + EIN + + + AUS + + + Rot + + + Gelb + + + Grün + + + Blau + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de.resx index 72c6b0f40..bf51d3e77 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.de.resx @@ -240,4 +240,77 @@ Bereit + + + Signalturm + + + Signalturm-Steuerung + + + Signalturm-Status + + + Leuchten + + + Lichtausgänge + + + Leuchten aktiv + + + Signalhorn + + + Hornsteuerung + + + Schalten Sie das akustische Horn, wenn ein hörbarer Alarm erforderlich ist. + + + Horn EIN + + + Horn AUS + + + Manuelle Bedienung + + + Verwenden Sie diese Bedienelemente während der Inbetriebnahme oder Wartung. Für den Automatikbetrieb verlassen Sie sich auf SPS-Sequenzen. + + + Diagnose + + + Meldungsübersicht + + + Diagnose überwachen + + + Die Meldungen stammen aus der SPS-Logik; beheben Sie die gemeldeten Probleme, bevor Sie in den Automatikmodus zurückkehren. + + + Aktueller Zustand + + + EIN + + + AUS + + + Rot + + + Gelb + + + Grün + + + Blau + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es-ES.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es-ES.resx index 6fe28db13..799e28b6c 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es-ES.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es-ES.resx @@ -240,4 +240,77 @@ Listo + + + Torre de señal + + + Controles de la torre de señal + + + Estado de la torre de señal + + + Luces + + + Salidas de luces + + + Luces activas + + + Sirena + + + Control de la sirena + + + Active la salida acústica cuando se requiera alerta audible. + + + Sirena ENCENDIDA + + + Sirena APAGADA + + + Anulación manual + + + Use estos controles durante la puesta en marcha o mantenimiento. Para operación automática, confíe en las secuencias del PLC. + + + Diagnósticos + + + Resumen de mensajes + + + Supervisar diagnósticos + + + Los mensajes provienen de la lógica del PLC; resuelva los problemas antes de volver al modo automático. + + + Estado actual + + + ENCENDIDO + + + APAGADO + + + Rojo + + + Amarillo + + + Verde + + + Azul + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es.resx index 61a22a837..11ad0aa1a 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.es.resx @@ -240,4 +240,77 @@ Listo + + + Torre de señal + + + Controles de la torre de señal + + + Estado de la torre de señal + + + Luces + + + Salidas de luces + + + Luces activas + + + Sirena + + + Control de la sirena + + + Active la salida acústica cuando se requiera alerta audible. + + + Sirena ENCENDIDA + + + Sirena APAGADA + + + Anulación manual + + + Use estos controles durante la puesta en marcha o mantenimiento. Para operación automática, confíe en las secuencias del PLC. + + + Diagnósticos + + + Resumen de mensajes + + + Supervisar diagnósticos + + + Los mensajes provienen de la lógica del PLC; resuelva los problemas antes de volver al modo automático. + + + Estado actual + + + ENCENDIDO + + + APAGADO + + + Rojo + + + Amarillo + + + Verde + + + Azul + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.hu-HU.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.hu-HU.resx index 56896f772..bb5416cc1 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.hu-HU.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.hu-HU.resx @@ -240,4 +240,77 @@ Kész + + + Jelzőtorony + + + Jelzőtorony vezérlők + + + Jelzőtorony állapot + + + Fények + + + Fény kimenetek + + + Aktív fények + + + Sziréna + + + Sziréna vezérlés + + + A hangjelző kimenet kapcsolása, ha hallható riasztás szükséges. + + + Sziréna BE + + + Sziréna KI + + + Kézi felülvezérlés + + + Ezeket a vezérlőket beüzemeléskor vagy karbantartáskor használja. Automatikus működéshez PLC szekvenciákat használjon. + + + Diagnosztika + + + Üzenetek áttekintése + + + Diagnosztika monitorozása + + + Az üzenetek a PLC logikából származnak; a problémák elhárítása után térjen vissza automatikus módba. + + + Aktuális állapot + + + BE + + + KI + + + Piros + + + Sárga + + + Zöld + + + Kék + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.pl-PL.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.pl-PL.resx index 9dd1806fe..8ed4adb60 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.pl-PL.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.pl-PL.resx @@ -240,4 +240,77 @@ Gotowy + + + Kolumna sygnalizacyjna + + + Sterowanie kolumną sygnalizacyjną + + + Stan kolumny sygnalizacyjnej + + + Lampy + + + Wyjścia lamp + + + Aktywne lampy + + + Syrena + + + Sterowanie syreną + + + Przełącz wyjście akustyczne, gdy wymagany jest sygnał dźwiękowy. + + + Syrena WŁĄCZONA + + + Syrena WYŁĄCZONA + + + Ręczne sterowanie + + + Używaj tych elementów podczas uruchomienia lub konserwacji. Do pracy automatycznej używaj sekwencji PLC. + + + Diagnostyka + + + Przegląd komunikatów + + + Monitoruj diagnostykę + + + Komunikaty pochodzą z logiki PLC; usuń problemy przed powrotem do trybu automatycznego. + + + Aktualny stan + + + WŁĄCZONE + + + WYŁĄCZONE + + + Czerwony + + + Żółty + + + Zielony + + + Niebieski + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.resx index 69b9ab430..593ca3847 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.resx @@ -185,4 +185,77 @@ Ready + + + Signal Tower + + + Signal Tower Controls + + + Signal Tower Status + + + Lights + + + Light Outputs + + + Lights active + + + Horn + + + Horn Control + + + Toggle the acoustic horn output when audible alert is required. + + + Horn ON + + + Horn OFF + + + Manual override + + + Use these controls during commissioning or maintenance. For automatic operation rely on PLC sequences. + + + Diagnostics + + + Messenger Overview + + + Monitor diagnostics + + + Messenger messages originate from the PLC logic; resolve reported issues before returning to automatic mode. + + + Current State + + + ON + + + Off + + + Red + + + Yellow + + + Green + + + Blue + diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk-SK.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk-SK.resx index 414f75b0b..b9b6ffdc3 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk-SK.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk-SK.resx @@ -240,4 +240,77 @@ Pripravené + + + Signalizačný stĺp + + + Ovládanie signalizačného stĺpa + + + Stav signalizačného stĺpa + + + Svetlá + + + Výstupy svetiel + + + Aktívne svetlá + + + Siréna + + + Ovládanie sirény + + + Prepínať akustický výstup, keď je požadovaný zvukový alarm. + + + Siréna ZAPNUTÁ + + + Siréna VYPNUTÁ + + + Manuálne ovládanie + + + Použite tieto ovládacie prvky počas uvádzania do prevádzky alebo údržby. Na automatickú prevádzku sa spoliehajte na sekvencie PLC. + + + Diagnostika + + + Prehľad správ + + + Monitorovať diagnostiku + + + Správy pochádzajú z logiky PLC; odstráňte problémy pred návratom do automatického režimu. + + + Aktuálny stav + + + ZAP + + + VYP + + + Červená + + + Žltá + + + Zelená + + + Modrá + \ No newline at end of file diff --git a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk.resx b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk.resx index 64081dd35..916b924b8 100644 --- a/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk.resx +++ b/src/components.elements/src/AXOpen.Components.Elements.blazor/Resources/Strings.sk.resx @@ -240,4 +240,77 @@ Pripravený + + + Signalizačný stĺp + + + Ovládanie signalizačného stĺpa + + + Stav signalizačného stĺpa + + + Svetlá + + + Výstupy svetiel + + + Aktívne svetlá + + + Siréna + + + Ovládanie sirény + + + Prepínať akustický výstup, keď je požadovaný zvukový alarm. + + + Siréna ZAPNUTÁ + + + Siréna VYPNUTÁ + + + Manuálne ovládanie + + + Použite tieto ovládacie prvky počas uvádzania do prevádzky alebo údržby. Na automatickú prevádzku sa spoliehajte na sekvencie PLC. + + + Diagnostika + + + Prehľad správ + + + Monitorovať diagnostiku + + + Správy pochádzajú z logiky PLC; odstráňte problémy pred návratom do automatického režimu. + + + Aktuálny stav + + + ZAP + + + VYP + + + Červená + + + Žltá + + + Zelená + + + Modrá + \ No newline at end of file