Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 9 von 21 ErsteErste ... 789101119 ... LetzteLetzte
Ergebnis 81 bis 90 von 206

Thema: ILC 150 ETH Webserver

  1. #81
    Registriert seit
    11.08.2012
    Ort
    Schieder-Schwalenberg
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Mobi
    Das war wohl der Fehler. Nachdem ich die Datei umbenannt hatte, lief es. Bedeuted das, ich kann Zugriffe auf die Steuerung NUR von dieser Seite aus machen?

    @Portisch
    Das funktioniert leider nicht. Ich habe die Zeile:
    xhttp.open("POST","/cgi-bin/ILRReadValues.exe",true);
    geändert in:
    xhttp.open("POST","http://192.168.0.2/cgi-bin/ILRReadValues.exe",true);
    Es passiert nichts, wenn ich auf den Button klicke.

    mfg Jens

  2. #82
    Registriert seit
    11.08.2012
    Ort
    Schieder-Schwalenberg
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich habe ein paar neue Erkenntnisse. Man kann Zugriffe auf die Steuerung von jeder Datei machen, die auf dem ILC liegt. Dazu muss man nur, wie von Portisch beschrieben, die IP-Adresse mit angeben.
    Ich hatte bei mir eine Stelle im Code übersehen und die Adresse dort nicht eingetragen, deshalb kam es zu dem Fehler.
    Als nächstes habe ich die Dateien von Festplatte aus gestartet. Von dort aus kann ich beliebige Werte zum ILC schreiben (writeVal.exe). Nur beim Lesen (ILRReadValues.exe) gibt es einen Fehler. Firebug meldet den Fehler, das das Objekt "xmlDoc" = null ist.
    Ich teste übrigens immer noch mit dem Code aus Post #3.

    Ihr müsst es doch auch irgendwie geschafft haben. Liegt es irgendwie an meinem Netzwerk? Das schreiben funktioniert doch auch?????

  3. #83
    Registriert seit
    11.08.2012
    Ort
    Schieder-Schwalenberg
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Kleiner Nachtrag: Mit dem Internet Explorer 8 geht es, mit Firefox, Opera und Chrome nicht!!! Selbe Seite, alles gleich: funktioniert...
    Das Problem muss also da liegen, wo im Code zwischen IE und Firefox unterschieden wird!!!

  4. #84
    Registriert seit
    26.02.2008
    Ort
    Kulmbach
    Beiträge
    151
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    habe die letzten Tage mal wieder etwas an meinem Android App zur Visualisierung/Bedienung gearbeitet, anbei deshalb ein paar Sreenshots.
    Kann jetzt Werte auslesen und auch schreiben, funktioniert soweit schon mal ganz gut.

    Hier ein paar erste Eindrücke:



    Schöne Grüße
    Daniel
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren Erste Ergebnisse Android App  

  5. #85
    Registriert seit
    11.08.2012
    Ort
    Schieder-Schwalenberg
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Daniel!

    Sieht gut aus, was Du machst.

    Warum machst Du das nicht als Webseite mit einem Framework wie JQeury Mobile? Dabei gibt es einige Vorteile:
    - Javascript läuft mittlerweile in jedem Browser (auch von Smartphones)
    - Die Seite kann auf dem ILC liegen und jeder im Netzwerk kann darauf zugreifen
    - Wahlweise kann die Seite aber auch auf der lokalen Festplatte eines Rechners im Netz liegen
    - Man kann die Seite mit Hilfe eines Wrappers (z.B. PhoneGap) in eine App konvertieren, dabei werden Apps für die meisten Smartphones generiert (Android, IOS, Symbian, Windows Phone, Bada, ...)

    Meine Tests verliefen bisher recht erfolgreich, obwohl es noch ein paar kleine Probleme gibt.

    Ideal wäre ein Tool (wie z.B. WebVisit von Phoenix), mit dem man Javascript-Webseiten automatisch für den ILC erstellen könnte.

    mfg Jens

  6. #86
    Registriert seit
    26.02.2008
    Ort
    Kulmbach
    Beiträge
    151
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jens,

    deine Idee hört sich auch nicht schlecht an, würde mich auch interessieren.
    Kannst du mir hierzu mal ein kleines Beispiel geben. Wie funktioniert dann deine Verbindung zur ILC? Ich sende zur Zeit immer einen xml-Request an die Steuerung, diese gibt mir dann die Werte zurück...

    Bist du dir sicher, dass JavaScript mittlerweile auf jedem Smartphone läuft. Bin mir da nicht so sicher...

    Meine App programmiere ich übrigens mit Basic4Android, falls du diese zu Testzwecken mal haben willst, kein Problem.

    Schöne Grüße
    Daniel
    Zitieren Zitieren Sehr interessant - Beispiel?  

  7. #87
    Portisch ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.09.2011
    Beiträge
    145
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Ich habe mir nun das JQeury Mobile etwas angesehen und habe auch Interesse daran!
    Ich will den Zugriff für SPS auf jeden Fall per Browser realisieren um Platform unabhängig bleiben zu können.

    @Jens944S2: kannst du mal eine Demo deiner Entwicklung zur Verfügung stellen?
    Also da wo lesen und setzen einer Variabel mit JQeury funktioniert?

    Am Anfang wollte ich ja alles per Java-Applet machen. Nachdem sich aber dann rausgestellt hat, dass z.B. Blackberry keine Java Applets unterstützt habe ich das wieder verworfen.

  8. #88
    Registriert seit
    11.08.2012
    Ort
    Schieder-Schwalenberg
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @Vaninger
    Javascript/Jquery/Jquery Mobile läuft eigentlich in jedem Browser. Getestet habe ich selbst schon auf IE, Firefox, Android, IOS, Opera, Symbian Browser. Das einzige Problem ist manchmal, die etwas unterschiedliche Darstellung einiger Elemente, was sich aber mit Jquery Mobile in Grenzen hält.

    @Portisch
    Java Applets kann man komplett vergessen, die laufen auf (so weit ich weiss) KEINEM Smartphone. Und damit es auf dem PC läuft, muss man die JAVA Runtime installiert haben.

    Beispielprojekt:
    Der Zugriff auf den ILC funktioniert per Javascript -> XMLHttpRequest. Die Infos, um den Zugriff zu machen, habe ich aus Post #3 aus diesem Thread und von hier: http://www.ilc150.net/PCWorxExamples/WEB/entry.txt
    Ich kann mal mein ganzes Projekt zur Verfügung stellen, falls es euch interessiert. Erst mal hier ein Basis-Beispiel für euch, um Variablen zu lesen/schreiben:

    Code:
    <!DOCTYPE html>
    <html> 
        <head> 
            <title>ILC Test</title> 
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">    
            <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0-alpha.1/jquery.mobile-1.2.0-alpha.1.min.css" />
            <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
            <script src="http://code.jquery.com/mobile/1.2.0-alpha.1/jquery.mobile-1.2.0-alpha.1.min.js"></script>
            
            <script type="text/javascript">
                var xmlReqList;
                // Function creates from Array of variables an XML file in WebVisit format
                function createGetHTTPlist(list)
                {
                    var xhttpsend="<body><version>1.0</version><client>IMasterPhoenix5_14_05</client><client_ver>5.14.0501</client_ver><item_list_size>";
                    var item_list=list.length;
                    var i;
                    xhttpsend = xhttpsend + item_list ;
                    xhttpsend = xhttpsend + "</item_list_size><item_list></item_list></body>";
                    xmlReq=loadXMLString(xhttpsend);
                    for (i in list){
                        newel=xmlReq.createElement("i");
                        x=xmlReq.getElementsByTagName("item_list");
                        x[0].appendChild(newel);
                        newel=xmlReq.createElement("n");
                        newtext=xmlReq.createTextNode(list[i]);
                        newel.appendChild(newtext);
                        x=xmlReq.getElementsByTagName("i");
                        x[i].appendChild(newel);
                    }
                    return(xmlDoc);
                }
            
                //Create from String an XML file with browser detection
                function loadXMLString(txt)
                {
                if (window.DOMParser)
                  {
                  parser=new DOMParser();
                  xmlDoc=parser.parseFromString(txt,"text/xml");
                  }
                else // Internet Explorer
                  {
                  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                  xmlDoc.async="false";
                  xmlDoc.loadXML(txt);
                  }
                return xmlDoc;
                }
            
                // Send the xHTTPRequest to the server in the browser adress
                function fhttprequest(xmlReqList)
                {
                    if (window.XMLHttpRequest)
                      {
                        xhttp=new XMLHttpRequest();
                        xhttp.open("POST","http://192.168.0.11/cgi-bin/ILRReadValues.exe",true);
                        xhttp.send(xmlReqList);
                        if (window.XMLHttpRequest){
                            xhttp.onreadystatechange = function() {
                            if(this.readyState == 4) {
                                GetData(this);
                                }
                            }
                        }
                      }
                    else // Internet Explorer 5/6
                      {
                        msXHTTP = new ActiveXObject("Microsoft.XMLHTTP");//Msxml2.XMLHTTP.3.0");
                        msXHTTP.onreadystatechange = doHttpReadyStateChange;
                        msXHTTP.open("POST","http://192.168.0.11/cgi-bin/ILRReadValues.exe",true);
                        msXHTTP.send(xmlReqList);
                      }
                }
                // Only need for old IExplorer Get Event new data
                function doHttpReadyStateChange() {
                   if (xhttp.readyState == 4) {
                      GetData(this);
                   }
                }
                function fuGetData() {
                    // Create List of variables and convert by function "createGetHTTPlist" into xml
                    xmlList = createGetHTTPlist(["@GV.PLC_SYS_TICK_CNT","@GV.ONBOARD_OUTPUT_BIT0"]);
                    // Send xml request
                    fhttprequest(xmlList);
                }
            
                //Is executed if the confirmation from the webserver is recived
                function GetData(xhttp){
                    xmlDoc=xhttp.responseXML; //Convert respnse into xml document
        
                    document.getElementById("idPlcSysTickCnt").innerHTML = xmlDoc.getElementsByTagName("v")[0].childNodes[0].nodeValue; //Get first variable value
                    document.getElementById("OnboardInput1").innerHTML = xmlDoc.getElementsByTagName("v")[1].childNodes[0].nodeValue;
                }
            
                function SetData(vValue){
        
                    if (window.XMLHttpRequest)
                      {
                      xhttpSet1=new XMLHttpRequest();
                      }
                    else // Internet Explorer 5/6
                      {
                      xhttpSet1=new ActiveXObject("Microsoft.XMLHTTP");
                      }
                     var command="http://192.168.0.11/cgi-bin/writeVal.exe?" + "@GV.ONBOARD_OUTPUT_BIT0" + "+" + vValue
                    xhttpSet1.open("GET",command,false);
        
                    xhttpSet1.send(command);
                }
                </script>
    
        </head> 
        <body> 
            <div data-role="page"  data-theme="a">
                <div data-role="header"></div><!-- Ende header -->
                <div data-role="content">
                    <h2>ILC Test</h2>
                    <button id="btnSetOnboardOutput1ON" data-icon="refresh" data-iconpos="right">Set onboard output 1: ON</button>
                    <button id="btnSetOnboardOutput1OFF" data-icon="refresh" data-iconpos="right">Set onboard output 1: OFF</button>
    
                    <button id="btnGetValues" data-icon="refresh" data-iconpos="right">Get Values</button>
                    <br/><br/>
                    <a>PLC SysTick Cnt = </a><a id="idPlcSysTickCnt"></a></br>
                    <a>Onboard Input 1= </a><a id="OnboardInput1"></a></br>
    
                </ div ><!-- Ende content --> 
            </ div ><!-- Ende page -->
            
            <script type="text/javascript">
                //Events
                $('#btnSetOnboardOutput1ON').mousedown(function(e){ e.preventDefault();SetData(1)});
                $('#btnSetOnboardOutput1OFF').mousedown(function(e){ e.preventDefault();SetData(0)});
                $('#btnGetValues').mousedown(function(e){ e.preventDefault();fuGetData()});
            </script>
    
        </body>    
    </html>
    Den Code in eine entry.html speichern und per FTP in das /webs/ Verzeichnis des ILC's kopieren. Die IP-Adresse im Code muss natürlich durch die passende ersetzt werden. Das Netzwerk, indem der ILC hängt, muss im Internet sein, damit die Jquery/Jquery Mobile Bibliotheken heruntergeladen werden können.

    mfg Jens

  9. #89
    Registriert seit
    11.08.2012
    Ort
    Schieder-Schwalenberg
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Übrigens: Ich habe noch folgende Probleme bei der Realisierung per Jquery Mobile:

    1.: Ich möchte die Bibliotheken gerne aus dem Flash vom ILC laden (damit der ILC nicht immer eine Internet-Verbindung braucht) Allerdings wird dann die CSS-Datei nicht richtig geladen. Es ist scheinbar NICHT möglich, irgendeine CSS-Datei, welche im Flash des ILC liegt, in eine HTML-Seite auf dem ILC einzubinden.
    Ich vermute, es liegt an dem Webserver des ILC. Andere Dateien (Bilder, *.js, *.html, ...) funktionieren.

    2.: Wenn die Webseiten auf dem ILC liegen, funktioniert der Zugriff auf die Variablen einwandfrei. Liegen die Seiten jedoch entfernt, auf einem PC, geht es nicht mehr. Außer mit dem Internet-Explorer, damit gehts.
    Meine Vermutung ist, das Firefox den Zugriff absichtlich blockiert, wegen Sicherheitsbeschränkungen (cross domain request).

  10. #90
    Registriert seit
    26.02.2008
    Ort
    Kulmbach
    Beiträge
    151
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Jens,
    ganzes Beispiel wäre klasse, dann kann man die Funktionsweise am Besten nachvollziehen...

    Schöne Grüße
    Daniel
    Zitieren Zitieren Beispiel Datei wäre super  

Ähnliche Themen

  1. Phoenix Contact ILC 150 ETH FTP Upload
    Von cag im Forum PHOENIX CONTACT
    Antworten: 7
    Letzter Beitrag: 10.11.2011, 19:14
  2. Phoenix ILC 170 ETH + IL ETH BK + IB IL AI 4/U
    Von valik.vak im Forum PHOENIX CONTACT
    Antworten: 24
    Letzter Beitrag: 17.06.2011, 11:22
  3. ILC 150 ETH an Fritzbox 7270
    Von Mobi im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 19.05.2011, 13:36
  4. Phoenix ILC 150 ETH + Stromüberwachung
    Von underxpressure im Forum PHOENIX CONTACT
    Antworten: 11
    Letzter Beitrag: 03.12.2010, 13:48
  5. ILC 150 ETH mit Webvisit+Ipad
    Von simonhu im Forum Sonstige Steuerungen
    Antworten: 8
    Letzter Beitrag: 06.10.2010, 09:06

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •