WinCC Unified Skript zur Schalterverriegelung

Gillton

Level-2
Beiträge
15
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde gerne für eine Realitätsgetreue Visualisierung die Positionswerte zweier Schalter verriegeln.
Hierbei habe ich ein Globales Skript erstellt, welches die Werte der Variablen überprüft und ggf. anpasst.
Zusätzlich sollen die 2 Ein/Ausgabefelder auf den aktuellen Wert gesetzt werden, damit keine Verwirrung aufkommt.

Allerdings ist das Skript derzeit nicht funktional. Habe ich etwas bei der Erstellung eines globalen Skriptes übersehen, oder ist mein Code Murks?

export function SSB_SSC() {
// Die Positionen der Schalter SSB und SSC werden verriegelt
// SSB darf nicht höher als SSC sein, SSC darf nicht niedriger als SSB sein.
// Zudem dürfen beide Schalter nicht auf derselben Schalterposition sein
// Sollte dies vorkommen, werden beide Schalterpositionen zurückgesetzt.

let ssb_pos = Tags("ANALOG ALLG VOM MP_Anlage_DBW20");
let ssc_pos = Tags("ANALOG ALLG VOM MP_Anlage_DBW18");
let ssb_r = Tags("ANALOG ALLG VOM MP_Anlage_DBW20").Read();
let ssc_r = Tags("ANALOG ALLG VOM MP_Anlage_DBW18").Read();
let max_aggr = Tags("ANALOG ALLG VOM MP_Anlage_DBW2").Read();

// Eingabefelder der 2 Positionen
var ssb_inout = UI.FindItem("A_B_KS");
var ssc_inout = UI.FindItem("B_C_KS");

if (ssb_r >= 1 && ssb_r < max_aggr && ssc_r >= 1 && ssc_r < max_aggr) // Wenn Schalter zwischen 1 und (max. - 1) ist
{
if (ssb_r > ssc_r || ssc_r > ssb_r || ssb_r == ssc_r )
{
ssb_pos.Write(0);
ssc_pos.Write(0);
ssb_inout.ProcessValue = 0;
ssc_inout.ProcessValue = 0;
}
}
}
 
Würde die Abfragen in der SPS machen.Dann Istzustand anzeigen und Sollzustand eingeben.Bei Frg. mit Bestätigung umschalten.
Sollzustand = Istzustand.
Ich bin kein HMI Spezialist, aber ich meine es gibt solche Freigabe bits für eingabe felder.
 
Vielleicht eine Wahrheitstabelle aufstellen?Dann kann man im Sollfeld eine Freigabe erteilen wenn eine gültige Kombination eingegeben wurde und damit die Übernahme freigeben.Wahrscheinlich darf man aber nur ein Schalter verändern?Das wäre dann ebenfalls zu prüfen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das habe ich übersehen danke!
if (ssb_r > ssc_r || ssc_r < ssb_r || ssb_r == ssc_r )

Es ist mir nicht möglich, diese Anpassung im PLC vorzunehmen. Diese Notlösung gilt auch nur für dieses Projekt.
Schalter SSB muss immer links von SSC und darf nicht auf derselben Position sein.
Da es hierbei nur um das HMI geht, dürfen beide Schalterpositionen verändert werden.
Anhang anzeigen 80663

Die Logik meines Skriptes war:
Wenn sich die Werte der Schalterpositionen im Arbeitsbereich befinden und die Bedingungen erfüllt sind, wird der eingegebene Wert überschrieben. Danach kann die Eingabe erneut erfolgen, bis die Werte für die Positionen übereinstimmen.
Sobald das läuft hätte ich noch eine Meldung angezeigt, welche auf die Bedingungen hinweist
(SSB > SSC, SSC < SSB, SSB == SSC)
 
Zuletzt bearbeitet:
Würde die Abfragen in der SPS machen.Dann Istzustand anzeigen und Sollzustand eingeben.Bei Frg. mit Bestätigung umschalten.
Sollzustand = Istzustand.
Ich bin kein HMI Spezialist, aber ich meine es gibt solche Freigabe bits für eingabe felder.
Logik gehört in die Steuerung und nicht in die Visualisierung, die Visualisierung gibt nur wieder, was in der Steuerung geschieht
 
Sieht nach einer Sammelschiene(Einstrichzeichnung) mit 3 Strängen aus.Längs die Schalter der die Stränge verbindet.
Also das über eine Visu zu steuern, würde ich mich nicht getrauen.Also wenn hier falsch geschaltet wird unsynchronisiert fliegt dir die Anlage in die Luft.Wenn jamand schalten würde bekämst du das unsynchronisiert sowieso nicht mit.Das muss ja alles in Echtzeit erfolgen.
 
Was ich nicht verstehe; Du sprichst von Positionen, was verstehst du hierunter?

Wenn ich mir das so ansehe, dann will ich auf den entsprechenden LS klicken und dann erwarte ich ein PopUp in dem ich den LS dann steuern kann.
 
@Gillton
Ich halte es für Vandalismus, Beiträge komplett durch "gelöst" zu ersetzen. Das ist egozentrisch und widerspricht dem Sinn eines Forums.

Bist Du mit der öffentlichen Diskussion nicht einverstanden, musst Du hier ja nicht dabei sein.
Inwiefern ist das Löschen der von mir erstellten Inhalte Vandalismus? Der Beitrag verlief im nichts und ich habe keine "Lösung" erhalten und diese vor anderen verborgen.

Ich hatte ein Problem und habe eine Frage dazu gestellt. Diese Frage wurde z.T komplett umgangen und es wurden Antworten gegeben, die nichts mit dem Thema zu tun hatten. Die Frage war, wie man das beschriebene Problem mit einem Skript löst, nicht ob es sicher ist X zu machen oder ob es schön ist. Anschließend habe ich mit meinem Vorgesetzten gesprochen und habe mit ihm eine Lösung in einem Baustein implementiert.

Da niemand auf das eigentliche Thema einging und ich nicht wollte, dass Leute das Forum durchsuchen, auf den Thread stoßen und sehen, das jeder am Thema vorbei diskutiert, hatte ich alles gelöscht, da man den Post selbst nicht löschen oder schließen kann.

Zitat: "kostenlos Wissen abgreifen aber nicht teilen wollen "

Wenn sich Leute dafür entscheiden, ihr Wissen zu teilen, ist dies öffentlich zugänglich oder? Ich bin neu in dem Thema und kann derzeit noch nicht viel sinnvolles teilen. Aber so wie hier gerade die Leute panisch reagieren lasse ich es wohl lieber.

Falls dennoch jemand die Lösung haben möchte:

Da an anderen Bereichen die Freigabe, Steuerung und Überwachung von Schalter und deren Schalterstellungen erfolgt, musste bei meinem Problem nur dafür gesorgt werden, dass Schalter B immer links von C projektiert wird. C darf nur rechts von B sein und beide dürfen nicht auf einer Position projektiert werden.

---------------------|SSB|-------------------------------------|SSC|---------------------


1724304455771.png
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Inwiefern ist das Löschen der von mir erstellten Inhalte Vandalismus? Der Beitrag verlief im nichts und ich habe keine "Lösung" erhalten und diese vor anderen verborgen.

Ich hatte ein Problem und habe eine Frage dazu gestellt. Diese Frage wurde z.T komplett umgangen und es wurden Antworten gegeben, die nichts mit dem Thema zu tun hatten. Die Frage war, wie man das beschriebene Problem mit einem Skript löst, nicht ob es sicher ist X zu machen oder ob es schön ist. Anschließend habe ich mit meinem Vorgesetzten gesprochen und habe mit ihm eine Lösung in einem Baustein implementiert.

Da niemand auf das eigentliche Thema einging und ich nicht wollte, dass Leute das Forum durchsuchen, auf den Thread stoßen und sehen, das jeder am Thema vorbei diskutiert, hatte ich alles gelöscht, da man den Post selbst nicht löschen oder schließen kann.

Zitat: "kostenlos Wissen abgreifen aber nicht teilen wollen "

Wenn sich Leute dafür entscheiden, ihr Wissen zu teilen, ist dies öffentlich zugänglich oder? Ich bin neu in dem Thema und kann derzeit noch nicht viel sinnvolles teilen. Aber so wie hier gerade die Leute panisch reagieren lasse ich es wohl lieber.

Falls dennoch jemand die Lösung haben möchte:

Da an anderen Bereichen die Freigabe, Steuerung und Überwachung von Schalter und deren Schalterstellungen erfolgt, musste bei meinem Problem nur dafür gesorgt werden, dass Schalter B immer links von C projektiert wird. C darf nur rechts von B sein und beide dürfen nicht auf einer Position projektiert werden.

---------------------|SSB|-------------------------------------|SSC|---------------------


Anhang anzeigen 80692
Es scheint so als müsstest du noch einiges über den Umgang in einen Forum lernen,
es ist normal das mal am Thema vorbei Diskutiert wird, wenn es Ausartet greifen wir
schon ein, grundsätzlich wollen wir das aber vermeiden.
Allerdings wurde in diesem Thread eher auf Fachlicher Ebene Diskutiert!!
Es ist auch normal das mal Beiträge nicht richtig sind, das gehört in einer Diskussion
dazu. Nur das entfernen von Beiträgen in einen laufenden Thema, passt nicht und das
ist durchaus Vandalismus, auch wenn die Beiträge ins nichts verlaufen.
Vielleicht kommt morgen jemand rein und präsentiert die Lösung.
 
Da an anderen Bereichen die Freigabe, Steuerung und Überwachung von Schalter und deren Schalterstellungen erfolgt, musste bei meinem Problem nur dafür gesorgt werden, dass Schalter B immer links von C projektiert wird. C darf nur rechts von B sein und beide dürfen nicht auf einer Position projektiert werden.

---------------------|SSB|-------------------------------------|SSC|---------------------


Anhang anzeigen 80692
Ist doch schön dass du es selbst lösen konntest. Schreib das doch einfach als Beitrag und dann ist es doch gut. Inhalte löschen ist immer so.. naja. Hier gibts immer wieder Themen die 10+ Jahre alt sind und hier im Forum auf Lösungsansätze stößt. Vielleicht ist jemand in 3-5 Jahren sehr froh wenn er deinen Beitrag findet.

Würde hier jedes gelöste Thema gelöscht werden, wäre ziemlich wenig los.
 
Zurück
Oben