Web-Visualisierung über Browser

Axan

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS-Forum Community,

ich verwende einen WAGO 750-880 Ethernet Controller für eine Steuerung, die ich auf Rechner 1 (Windows XP mit 32 Bit System) mit CoDeSys 2.3 programmiert und erfolgreich getestet habe. Anschließend habe ich mit Rechner 2 (Windows 10 mit 64 Bit System) auf die Web-Visualisierung zugegriffen, was nach einigen Startschwierigkeiten mit Java (32 Bit, Version 8, Update 151) dann funktioniert hat. (Die Ausnahmeregelung im Java Control Panel ließ den Zugriff auf die Web-Visualisierung zu.) Weiterhin habe ich das Häckchen für die Web-Visualisierung bei den Zielsystemeinstellungen gesetzt und kann auch die Visualisierung sehen. Die Java-Version habe ich am 11.12.17 heruntergeladen und neu installiert, sodass zumindest eine veraltete Version ausgeschlossen werden kann.

Das Problem besteht darin, dass ich in der Web-Visualisierung nur teilweise Reaktionen bekomme. Der Wechsel über einen Knopf zu einer anderen Visualisierung im gleichen Projekt mit der "currentvisu" Variable funktioniert zwar, jedoch kann ich keine Ausgänge ansteuern. Es scheint so, als ob man sich eingeloggt hätte, aber dann nicht gestartet hätte, um einen Vergleich zu CoDeSys zu ziehen.Hat jemand einen guten Tipp auf Lager?
 
Zuletzt bearbeitet:
Geht es um binäre Ausgänge? Dann musst Du unter Eingabe auswählen, ob er beim Drücken die Variable umschalten oder tasten soll und natürlich die Variable angeben. Mach doch mal Screenshots von den Einstellungen des Elements.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Screenshots der Einstellungen des Elements

Hallo Oliver,
Vielen Dank für die schnelle Antwort. Anbei sind die gewünschten Screenshots. Der Knopf tastet die Variable PLC_PRG.xVisuDo16. (leider etwas abgeschnitten im Bild.) Diese Variable triggert dann den Baustein für die fallende Flanke und dann wiederum einen RS-Baustein, der dann den eigentlich Ausgang ansteuert.

Einstellung Interlock Knopf.pngEinstellung Interlock PLC_PRG.png
 
Geht die Variable nie auf TRUE oder einmal auf TRUE und dann nie wieder auf FALSE?
Ich weiß, dass bei Codesys selber das Programm mit dem Namen PLC_PRG auch ohne explizit angelegten Task ausgeführt wird, wie das bei WAGO ist weiß ich allerdings nicht. Wird PLC_PRG tatsächlich ausgeführt?
 
Am Anfang sind beide Variablen auf FALSE. Wenn man dann xVisuDo16 über den Knopf tastet, dann wechselt xDo16 von FALSE auf TRUE. Wenn man dann wieder xVisuDo16 tastet, dann wechselt xDo16 von TRUE auf FALSE. Dieser Vorgang lässt sich dann beliebig oft wiederholen, man hat einen bistabilen Zustand. Das funktioniert wunderbar, wenn man die Visualisierung über CoDeSys direkt ansteuert. Wenn man allerdings die Visualisierung über die Web-Visualisierung aufruft, dann geht das leider nicht.
 
Ich hatte diese Struktur aus einem vorgefertigten Projekt übernommen. Außerdem hatte ich es zwischendurch mal in der Tat mit der Option Variable toggeln probiert, doch dann hatte ich Probleme, wenn mehrere Programme auf denselben Ausgang geschrieben haben.
Und ja, es kommen Signale über die Webvisu in der SPS an. Ich habe einen weiteren Knopf, der auf eine andere Visualisierung (PLC_VISU_B) wechselt. Der funktioniert, jedoch springt nach kurzer Zeit die Web-Visualisierung wieder auf die Startvisualisierung (PLC_VISU) zurück.
Und nein, der Zustand von xVisuDo16 ändert sich nicht, wenn ich den Taster länger drücke.
 
Hallo,

das klingt in Summe alles andere als normal- vorallem das er immer wieder auf die PLC_Visu zurückspringt. Ich hatte mal ein ähnliches Verhalten, dabei war das Boot-Projekt beschädigt/fehlerhaft.

Nach Möglilchkeit solltest du die Steuerung einmal komplett zurücksetzen/ Reset(Ursprung) und dannach das Projekt komplett bereinigen, neu Übersetzen, laden und explizit "Bootprojekt erzeugen". Ggf. vorher noch die Retain-Daten sichern.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sagas,

ich habe deine Anweisungen befolgt und es hat tatsächlich etwas Fortschritt gebracht. Beim Wechsel auf PLC_VISU_B bleibt er erstmal dort und springt nicht wieder zurück.

Daher habe ich jetzt zur Kontrolle noch folgendes Experiment gemacht:

Soll-Zustand:
Knopf 1 soll xDo16 toggeln.
Knopf 2 soll xDo17 tasten.


Da andere Programme auf xDo16 zugreifen, benötige ich folgende Programmierung:


Programmierung:
Knopf 1 tastet xVisuDo16. Mit TRIG-Baustein und RS-Baustein wird xDo16 bistabil getoggelt.
Knopf 2 tastet xDo17 direkt.


Ist-Zustand:
In CoDeSys: (Eingeloggt + Start)
Knopf 1 tastet xVisuDo16 -> Ausgang xDo16 reagiert bistabil. -> Ok.
Knopf 2 tastet xDo17 -> Ausgang xDo17 zieht kurz an und fällt sofort wieder ab, egal wie lange man drückt. -> Ok.


In WebVisu über Browser:
Knopf 1 reagiert überhaupt nicht. -> Nicht Ok.
Knopf 2 tastet xDo17 -> Ausgang xDo17 zieht an und fällt erst dann wieder ab, wenn man die Taste wieder loslässt. -> Nicht ok, soll kurz anziehen und dann sofort wieder abfallen.


In CoDeSys: (Eingeloggt und kein Start!)
Knopf 1 reagiert überhaupt nicht. -> Ok. (Soll ja auch nicht reagieren, solange das Programm nicht läuft.)
Knopf 2 tastet xDo17 -> Ausgang xDo17 zieht an und fällt erst dann wieder ab, wenn man die Taste wieder loslässt. -> Nicht ok. Es sollte doch überhaupt nicht reagieren?

Die Ähnlichkeit zwischen dem Fall Web-Visu und dem Fall CoDeSys (Eingeloggt und kein Start!) scheint mir auffällig ähnlich zu sein.
 
Wenn das Programm nicht gestartet ist, kann natürlich nur die Variable gesetzt werden. Aber dein r_trig und dein RS werden nicht abgearbeitet.
Und dann würde ich erst mal versuchen, die Funktion mit Variablen zu testen, die nicht anderswo im Programm noch beschrieben werden. Ist ein Unding, sowas zu tun und erschwert natürlich jegliche Fehlersuche. Besser also mit Hilfsvariablen arbeiten und an einer zentralen Stelle dann aus allen Hilsvariablen dein do. schreiben
 
Hallo Sagas,

ich habe deine Anweisungen befolgt und es hat tatsächlich etwas Fortschritt gebracht. Beim Wechsel auf PLC_VISU_B bleibt er erstmal dort und springt nicht wieder zurück.

Daher habe ich jetzt zur Kontrolle noch folgendes Experiment gemacht:

Soll-Zustand:
Knopf 1 soll xDo16 toggeln.
Knopf 2 soll xDo17 tasten.


Da andere Programme auf xDo16 zugreifen, benötige ich folgende Programmierung:


Programmierung:
Knopf 1 tastet xVisuDo16. Mit TRIG-Baustein und RS-Baustein wird xDo16 bistabil getoggelt.
Knopf 2 tastet xDo17 direkt.


Ist-Zustand:
In CoDeSys: (Eingeloggt + Start)
Knopf 1 tastet xVisuDo16 -> Ausgang xDo16 reagiert bistabil. -> Ok.
Knopf 2 tastet xDo17 -> Ausgang xDo17 zieht kurz an und fällt sofort wieder ab, egal wie lange man drückt. -> Ok.


In WebVisu über Browser:
Knopf 1 reagiert überhaupt nicht. -> Nicht Ok.
Knopf 2 tastet xDo17 -> Ausgang xDo17 zieht an und fällt erst dann wieder ab, wenn man die Taste wieder loslässt. -> Nicht ok, soll kurz anziehen und dann sofort wieder abfallen.


In CoDeSys: (Eingeloggt und kein Start!)
Knopf 1 reagiert überhaupt nicht. -> Ok. (Soll ja auch nicht reagieren, solange das Programm nicht läuft.)
Knopf 2 tastet xDo17 -> Ausgang xDo17 zieht an und fällt erst dann wieder ab, wenn man die Taste wieder loslässt. -> Nicht ok. Es sollte doch überhaupt nicht reagieren?

Die Ähnlichkeit zwischen dem Fall Web-Visu und dem Fall CoDeSys (Eingeloggt und kein Start!) scheint mir auffällig ähnlich zu sein.
Hi,

Das die Variable mit Tasten erst wieder aus geht wenn du den Button los lässt ist bei Codesys normal. Welche Variablen probierst du damit zu manipulieren? Evtl. Wird deine Variable von einer anderen Stelle beschrieben und auf False gehalten?

@Oliver auch bei WAGO wird ohne Task Konfiguration standardmäßig PLC_PRG ausgeführt.

Gruß

Mavorkit

Gesendet von meinem SM-G389F mit Tapatalk
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo NieZuSpaet,

aus deinem Post lese ich heraus, dass man anscheinend sehr wohl das Programm aus der Web-Visualisierung heraus starten kann und auch starten muss. Die doppelte Belegung von Variablen ist meinem relativ frischen Einstieg geschuldet, hier fehlt mir noch einiges an Wissen und Erfahrung. Daher die Frage an dich: Wie kann man das Programm aus der Web-Visualisierung heraus starten?
 
Hallo Mavorkit,

mit Hilfe von Knopf 2 wird die Variable xDo17 geschaltet. Diese ist in der Steuerungskonfiguration für Kanal %Q1.1 angelegt worden und ist vom Datentyp BOOL. Einen weiteren Zugriff auf xDo17 gibt es zwar im Rahmen des Programms NOT AUS, dieses wird aber dank einer IF-Abfrage nur durchlaufen, wenn vorher der entsprechende NOT AUS Knopf gedrückt wurde.
 
Hallo Axan,
ich habe deine Aussagen
In CoDeSys: (Eingeloggt + Start)
und
In CoDeSys: (Eingeloggt und kein Start!)
so gedeutet, das einmal das Programm (also die CoDeSys-Runtime) gestartet ist und einmal eben nicht. Im zweiten Fall kannst du schon Eingänge und Variablen von einer Visualisierung aus steuern, aber da das Programm nicht abgearbeitet wird, wird auch die Flankenauswertung nicht gemacht. Heißt, du kannst zwar xVisuDo16 auf true und false setzen, mehr wird aber nicht passieren.

Jetzt noch mal die Frage an dich: was meinst du damit:
Daher die Frage an dich: Wie kann man das Programm aus der Web-Visualisierung heraus starten?
Vielleicht reden wir auch aneinander vorbei...
Gruß
Holger
 
Hallo NieZuSpaet,

damit meine ich folgendes: Ich habe den intuitiven Verdacht, dass die Web-Visualisierung sich genau so verhält wie die Testumgebung bei CoDeSys. Man muss sich bei CoDeSys auch zuerst auf die Steuerung einloggen ( Alt + F8 ) und dann nochmal explizit die Ausführung starten (F5). Daher hatte ich die Vermutung, dass beim Aufrufen der Web-Visualisierung durch die IP-Adresse das Einloggen gemacht wird und man nun anschließend ebenfalls explizit die Ausführung starten muss. Jetzt kann man natürlich nicht F5 drücken, weil dies ja im Browser zum Aktualisieren der Seite führt...

Viele Grüße

Axan
 
Hallo Oliver,

Da hast du Recht. Es schadet allerdings meiner Steuerung nicht, wenn es sofort wieder abfällt. Die Zeit muss nur ausreichen, um ein Selbsthalterelais wieder anzuziehen. Bisher konnte ich diese Funktion in meiner Steuerung nur bedingt testen, da ich dafür eine Reihe von 4 induktiven Näherungssensoren brauche, die für die endgültige Anwendung bereits fest verbaut sind.

Viele Grüße

Axan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Axan,
das Programm benötigt natürlich ein Bootprojekt und die Steuerung muss das Projekt automatisch starten. Ich arbeite nur mit TwinCat aber das sollte in den Projekteinstellungen bei CodeSys das Gleiche sein.
Was du in deiner Testumgebung mit F5 machst, sollte die Steuerung auch allein tun. Schliesslich soll sie ja immer laufen.
Eigentlich solltest du auch gleichzeitig in der Entwicklungsumgebung eingelogt sein können und über den Browser die WebVisu bedienen können.
 
Ich glaube Dein Post #16 zeigt jetzt auf wo Dein Problem ist. Du lädst das Projekt zwar auf die Steuerung, startest dieses dann aber nicht. Dies muss jedoch sein damit die Webvisu läuft. Soweit Du ein Bootprojekt erzeugt hast musst Du die Steuerung so konfigurieren das diese automatisch gestartet wird. Das die Buttons zum Umschalten der Visu auch funktionieren wenn die SPS im Stop ist liegt meines Wissens daran, das diese Funktionalität direkt im Webserver abgearbeitet wird und dieser läuft unabhängig von der SPS.
 
Hallo Mavorkit,

mit Hilfe von Knopf 2 wird die Variable xDo17 geschaltet. Diese ist in der Steuerungskonfiguration für Kanal %Q1.1 angelegt worden und ist vom Datentyp BOOL. Einen weiteren Zugriff auf xDo17 gibt es zwar im Rahmen des Programms NOT AUS, dieses wird aber dank einer IF-Abfrage nur durchlaufen, wenn vorher der entsprechende NOT AUS Knopf gedrückt wurde.
Hi Axan,

Sorry für die späte Antwort. Ich würde auch über If schleifen Ausgangsvariablen nie doppelt beschreiben, sondern immer eine Logik davor schalten (and, or...). Solche Dinge ersparen lange suchen nach Fehlern, die durch Parallelzugriffe verursacht werden. Wenn du mit einem Signalimpuls eine Variable schalten möchtest, nimm doch einfach ein RS-Baustein. Wenn du mit nur einem Signal Ein und ausschalten möchtest, würde ich dir einen Stromstoß Baustein empfehlen oder an den RS an beide Eingänge ein and mit der selben Flanken Auswertung und dem Ausgang negiert.

Zu den anderen Themen ist es grundsätzlich so:

Das Programm wird übersetzt, danach übertragen. Das kannst du auch mit dem Verbinden Button beides machen.
Damit dein Programm bearbeitet wird, musst du dir Steuerung starten. Diese Bearbeitung wird nur durch den Stopp Button, den Hardware Knopf an der PLC oder die fehlende Spannung unterbrochen.
Sonderfall ist beim Ausfall der Spannung, dort startet der PLC nach dem Einschalten der Spannung wieder. Damit hier dein Programm erhalten bleibt muss während du Verbunden bist auf online und Bootprojekt erzeugen.
Beim Ausloggen wird also das Programm nicht gestoppt.
Im Stopp läuft die Visu, kann auch bedient werden aber es gibt keine Ausgabe.

Ich hoffe das hilft dir weiter, wenn nicht kannst du mir auch gerne Mal dein Programm schicken und ich schau drüber.


Gruß

Mavorkit

Gesendet von meinem SM-G389F mit Tapatalk
 
Zurück
Oben