HTML-Seite um auf Webvisualisierungsseiten von zwei SPS zu wechseln

  • Zitat

    könnte man mit php und URL-Check was machen... hab da was gelesen... man müsste dann aber vermutlich ein separates php-File schreiben und das einbinden oder?

    Ja, wenn Du einen Webserver zur Verfügung hast, wäre das eine Möglichkeit. Allerdings sind meine Kenntnisse in Javascript und HTML besser als in PHP. Vielleicht mal eine Weile warten, ob sich jemand meldet, der in PHP besser ist. Andernfalls werde ich versuchen, es zu recherchieren.

  • naja wie man das genau macht wäre mir eigentlich egal... das Ergebnis zählt :)


    kann man im html evtl. auch ein script schreiben, das einen Ping macht? Vllt geht das so?

  • Wenn ich das richtig verstehe, hast Du vorhin den Zugriff auf das Web Based Managment getestet (ich lese da "wbm" in der URL). Was wir noch nicht versucht haben ist, den selben Test für webvisu.html zu machen. Das könntest Du noch tun.


    Wenn ich das richtig verstehe, sind beide Seiten, wbm und webvisu, so eine Art Admin- oder Info-Oberfläche für die SPS. Wenn diese erreichbar sind, sagt das noch nichts über den Status der SPSen aus? D. h. ein ping o. ä. auf wbm oder webvisu würde uns nicht weiterhelfen. Um den Status der SPSen zu ermitteln, müsste man den Inhalt einer der Seiten auswerten. Normaler Weise kein Problem, wenn da die SOP nicht wäre. Und ich vermute, diese Seiten kannst Du nicht ändern. Es ist nämlich möglich, auch einen Cross-Origin-Zugriff freizugeben. Oder haben die SPS auch eine IP, mit der man sie direkt anpingen könnte?


    Etwas anderes, dem man nachgehen könnte: Häufig gibt es auch eine API, mit der man Infos abfragen und auswerten kann. Du könntest nachforschen, ob das auch beim Management deiner SPSen möglich ist: Doku lesen oder beim Hersteller oder beim Entwickler nachfragen.

  • Also:


    Das grundlegende Problem ist ja, dass ich die "webvisu.htm" erreichen möchte. Ist das nicht möglich, weil die CPU auf Stop ist oder ausgeschaltet, möchte ich auf die webvisu.htm der zweiten sps schalten.


    die webvisu.htm ist die Bedienoberfläche für mein SPS-Programm.


    die wbm ist die Konfigurationsseite der SPS => hier kann ich die IP-Adresse (Ja hat eine eigene) und verschiedene Einstellungen der SPS vornehmen (als Grundsystem läuft hier LINUX).


    Das Problem mit dem Ping ist -wie du schon gesagt hast- dass hier ein Stop des Programms nicht berücksichtigt würde, da der Ping trotzdem funktionieren würde.


    Wenn ich versuche den obigen Code mit der webvisu.htm zu starten wird das Frame korrekt angezeigt. In der Konsole erhalte ich folgende Meldung:

  • Der Text im Bild sagt auch wieder, dass wegen SOP kein Zugriff auf den Inhalt des iFrame möglich ist.

    Wenn man statt dessen PHP verwendet, um die Seite z. B. mit file_get_contents zu lesen, greift zwar die SOP nicht aber man bekommt nur das nackte HTML ohne Inhalte, die dynamisch z. B. mit Javascript erzeugt oder geändert werden.


    Was ist mit meinem Hinweis bzgl. einer JSON-API?

  • Hmh ok...gestaltet sich alles schwierig :)

    Das mit der API muss ich nachlesen, komme aber heute leider nicht mehr dazu...

    Denke aber da müsste was gehen..

  • Hi,

    so... ich verwende als Hardware aktuell eine Wago PFC200 750-8214

    für eine Wago 750-841 habe ich ein Beispiel gefunden, dass die Wago über SSI anspricht... kann man damit was anfangen?

    Man kann scheinbar über SSI die Ein und Ausgänge direkt steuern. Wie das genau zu realisieren ist weiß ich leider nicht...


    Noch ein anderer Gedanke... wenn ich jetzt ne AIP von der speziellen Hardware verwende, würde meine html-Seite ja vermutlich bei anderer Hardware nicht funktionieren... würde das gerne irgendwie universell hinbekommen (falls Hardware geändert wird, was vermutlich noch passiert)


    Könnte man eventuell Netzglobale Variablen (z.B. Lifecounter), die via UDP verschickt werden auf einer html-Seite auslesen?


    Es muss doch irgendwie ne Möglichkeit geben, zu kontrollieren ob die Seite aufgerufen werden konnte oder nicht, ohne sich da groß zu verbiegen :wacko:



  • Jetzt hätte ich noch eine andere Idee... weiß nur nicht ob das so Sinn macht :)


    In dem Code, den wir bis jetzt haben, wird das iFrame1 geöffnet. Wenn das erfolgreich war und die Website läuft, könnte ich doch auch einfach das Öffnen des zweiten iFrames überspringen oder? Ansonsten öffnet er ja sowieso das zweit iFrame.


    Könnte man dann das so machen, dass man auf "error" gar nicht überprüfen muss, sondern auf "success" oder so?

  • Zitat

    Könnte man dann das so machen, dass man auf "error" gar nicht überprüfen muss, sondern auf "success" oder so?

    Selbstverständlich, das "success" wie Du es jetzt nennst, ist das "load" das wir früher hatten. Und damit waren wir ja nicht zum Ziel gekommen.


    Das Kernproblem ist ja folgendes: LAN kann OK sein, Ping ist erfolgreich und Webserver kann verfügbar sein, HTML-Seite wird erfolgreich geladen; dennoch kann es sein, dass die SPS auf Stop steht und nicht verfügbar ist. D. h. die ersten beiden Kriterien sind nicht das was wir brauchen. Wir müssten an den Status der SPS heran kommen. Dazu wäre es notwendig, den Inhalt der HTML-Seite zu analysieren was an der SOP scheitert. SOP greift nicht, wenn wir die Seite mit PHP laden, aber damit haben wir keine Zugriff auf dynamisch erzeugte Inhalte.

  • Und kann ich via html z.B. Netzglobale Daten auslesen, die über UDP kommen? Oder OPC? Dann könnte man z.B. nen LifeCounter auswerten...

  • Da bin ich jetzt leider überfragt, bei Javascript, HTML und CSS bin ich gut dabei, aber Netzwerksachen waren noch nie meine Stärke.

    Ich habe auch mal einen Blick auf die Website des Herstellers geworden und es gibt dort Supportadressen, sowohl Telefon als auch Email. Versuche doch dort mal, dein Vorhaben zu beschreiben, vielleicht haben sie eine Lösung.

  • PS: Der Code aus deinem Posting #27 sieht ganz viel versprechend aus, denn er liest offenbar Zustände aus. Allerdings steht das Wesentliche in HTML-Kommentaren. Möglicher Weise wird dort ein Browser-Plugin verwendet oder ein Precompiler. Wo hast Du den Code denn her? Möglicher Weise gibt es dort weiter führende Infos.

  • Da bin ich jetzt leider überfragt, bei Javascript, HTML und CSS bin ich gut dabei, aber Netzwerksachen waren noch nie meine Stärke.

    Ich habe auch mal einen Blick auf die Website des Herstellers geworden und es gibt dort Supportadressen, sowohl Telefon als auch Email. Versuche doch dort mal, dein Vorhaben zu beschreiben, vielleicht haben sie eine Lösung.

    Jo werde ich da auch nochmal versuchen.


    Wegen meinem Code von #27

    Der ist aus nem anderem Forum. Der Beitrag ist jedoch schon einige Jahre alt :( Aber kann ich mal versuchen ob sich da noch jemand meldet :)


    Dir nochmal vielen Dank für die Hilfe!

  • Das ist bedauerlich. Was heißt denn "bekomm ich nichts"? Haben sie nicht geantwortet oder wussten sie keine Lösung?


    Ich konnte mich dunkel erinnern, dass es in Chrome möglich ist, die SOP zu deaktivieren und das hat sich bestätigt:

    https://stackoverflow.com/ques…e-origin-policy-in-chrome

    Diese HTML-Seiten sind ja offenbar nicht für die Öffentlichkeit und wenn es möglich ist, für die Personen, die es brauchen, den Browser so zu starten, könnte das noch eine Möglichkeit sein.

  • Hallo,


    Entschuldigung für die späte Rückmeldung. Hatte letzte Woche leider keine Möglichkeit an dem Projekt weiterzuarbeiten.


    Der Support sagte mir, dass Sie das "Problem" so lösen, dass Sie einfach einen zweiten Favorit anlegen und dieser dann Manuell ausgewählt werden müsste. Für alles andere haben Sie leider nichts, was Sie mir anbieten könnten...


    Bei Chrome habe ich halt das Problem, dass nicht jeder Chrome benutzt und ich das ganze so universell wie möglichen machen soll/möchte.

    So langsam sehe ich schwarz für meine Wünsche :(

  • So ich gleich nochmal.


    In nem anderen Forum kam folgende Idee:

    Idee: Console Log des referenzierten IFrames abfangen, parsen und falls da die Stop Message kommt umschalten mit Timeout


    leider bis dato noch keine weitere Beschreibung.


    Kannst du damit was anfangen? Ist Vermutlich genau das mit dem Event, was wir gemacht hatten oder?

  • Interessante Idee und man findet einige Anleitungen, wie man das machen kann. Ich fürchte nur, dass man dabei Zugriff auf den Inhalte des iFrame braucht, womit wir wieder dort wären, wo wir mit anderen Ansätzen auch waren: Dies wird durch die SOP blockiert.


    Ich habe jedoch noch eine andere Idee: Du hattest da ja zwei HTML-Seiten, wo man die SPS visualisieren oder konfigurieren konnte. Wenn man davon den Quelltext analysiert, könnte man u. U. den Code herausziehen, um den Status direkt von der SPS auszulesen. Poste doch mal den HTML- und Javascript-Code der Visualisierungs-Seite. U. U. besser als PN weil man nicht weiß, ob der Hersteller damit einverstanden ist, wenn man dies öffentlich macht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!