Snap7 trifft auf Javascript

mathiak

Level-1
Beiträge
16
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich möchte euch gerne mein jetziges Freizeitprojekt vorstellen.
Und zwar handelt es sich dabei um ein Node.js Wrapper für die snap7 Bibliothek. Für alle, die sich jetzt fragen was Node.js ist, hier ein kurzer Wiki Auszug
Node.js ist eine serverseitige Plattform zum Betrieb von Netzwerkanwendungen. Insbesondere lassen sich Webserver damit realisieren. Node.js basiert auf der JavaScript-Laufzeitumgebung „V8“, die ursprünglich für den Chrome-Browser entwickelt wurde, und bietet daher eine ressourcensparende Architektur, die eine besonders große Anzahl gleichzeitig bestehender Netzwerkverbindungen ermöglicht.

Javascript hat natürlich in erster Linie nichts mit Hochsprachen zu tun, aber das Addon selber ist in C++ geschrieben. Da ich nicht viel Zeit habe, kein gelernter Programmierer bin und das Projekt weit davon entfernt ist fertig zu sein, ist natürlich jede Hilfe willkommen :)

Und was kann man damit nun anfangen? Zum Beispiel mit wenigen Zeilen Javascript ein paar Daten der SPS lesen oder schreiben
Code:
[B]var[/B] snap7 [B]=[/B] require([COLOR=#DD1144]'node-snap7'[/COLOR]);

[B]var[/B] s7client [B]=[/B] [B]new[/B] snap7.S7Client();
s7client.ConnectTo([COLOR=#DD1144]'192.168.1.222'[/COLOR], [COLOR=#009999]0[/COLOR], [COLOR=#009999]1[/COLOR], [B]function[/B](err) {
    [B]if[/B](err)
        [B]return[/B] console.log([COLOR=#DD1144]' >> Connection failed. Code #'[/COLOR] [B]+[/B] err [B]+[/B] [COLOR=#DD1144]' - '[/COLOR] [B]+[/B] s7client.ErrorText(err));

    [COLOR=#999988][I]// Read the first byte from PLC process outputs...[/I][/COLOR]
    s7client.ABRead([COLOR=#009999]0[/COLOR], [COLOR=#009999]1[/COLOR], [B]function[/B](err, res) {
        [B]if[/B](err)
            [B]return[/B] console.log([COLOR=#DD1144]' >> ABRead failed. Code #'[/COLOR] [B]+[/B] err [B]+[/B] [COLOR=#DD1144]' - '[/COLOR] [B]+[/B] s7client.ErrorText(err));

        [COLOR=#999988][I]// ... and write it to stdout[/I][/COLOR]
        console.log(res)
    }); 
[COLOR=#333333][FONT=Consolas]});
[/FONT][/COLOR]

oder eine kleine Weboberfläche erstellen

node-snap7.jpg

Projektrepo: https://github.com/mathiask88/node-snap7

Gruß,
Mathias
 
Zuletzt bearbeitet:
Hallo Mathias,

hört sich super an.

Damit kann man dann von einem Gerät im lokalen Netzwerk wie z.B. dem eigenen PC eine Verbindung zur angeschlossenen S7 herstellen?

Ist es auch möglich irgendwo auf einem Server eine Web-Visualisierung zu erstellen und dann über den Rechner des Benutzers eine Verbindung mit der direkt an diesen angeschlossenen SPS aufzubauen?

Gruß, Tobias
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Tobias,

die SPS muss sich im Netzwerk des Servers bzw des PCs auf dem die node.js anwendung ausgeführt wird befinden.

Ich weise auch nochmal darauf hin, dass sich das Projekt im Entwicklungsstadium befindet, heißt einige Funktionen sind noch nicht implementiert und bereits verfügbare Funktionen nicht ausreichend getestet. Daher rate ich ausdrücklich von produktiven Einsätzen ab. Das heißt jetzt nicht dass gar nichts funktioniert ;) nur eben dass mit Fehlern zu rechnen ist. Und um Fehler zu finden muss es natürlich benutzt werden.

Gruß,
Mathias
 
Hallo,

danke für die schnelle Antwort!

Die Sache mit dem Verbinden über die WebApp ist mein großes Problem. Wenn irgendjemand einen Tipp hierzu hat: Ich bin für jeden Hinweis dankbar.

Gruß, Tobi
 
Zurück
Oben