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

Page 2 of 2 FirstFirst 12
Results 11 to 13 of 13

Thread: FAQ: alles rund um TwinCAT 2

  1. #11
    Chräshe's Avatar
    Chräshe is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    19.05.2008
    Posts
    781
    Danke
    156
    Erhielt 200 Danke für 141 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Datei-Funktionsbausteine zum lesen und schreiben von Dateien.

    Hier ein paar Links:
    FB_FileOpen Öffnen einer Datei.
    FB_FilePuts Einen Nullterminierten-String in eine Text-Datei schreiben.
    FB_FileClose Schließen einer Datei.
    ...
    Beispiel: Dateizugriff aus der SPS
    CSV-Format Hilfsbausteine (ganz unten)

    So weit ich mich noch erinnere, musst du aufpassen, dass immer nur eine File-Funktion aktiv ist.
    Sonst kommt da eventuell was durcheinander. Viellicht ist das auch inzwischen intern abgefangen – das hab ich nicht mehr geprüft.

    Zu beachten ist bei WinCE-Betriebssystemen, dass sich die Laufwerksbuchstaben zum normalen Windows unterscheiden:
    Code:
    
    'C:\';           (* XP/W7 PC *) 
    '\Hard Disk\';   (* WinCE CF-Karte *) 
    '\Hard Disk2\';  (* WinCE lokaler USB-Stick *)

  2. #12
    Join Date
    27.10.2011
    Location
    Belgien
    Posts
    19
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Default

    ftp.beckhoff.com/belgium > TwinCAT Cursus
    Sehr gute Anfängerdocumenten für SPS, NC-PTP und ADS.
    Beckhoff Support Engineer

  3. Folgender Benutzer sagt Danke zu Magik_Niq für den nützlichen Beitrag:

    Klingone22 (22.09.2013)

  4. #13
    Join Date
    15.02.2011
    Location
    Stromness, Scotland, UK
    Posts
    339
    Danke
    25
    Erhielt 35 Danke für 34 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    TwinCAT Webserver erklärt

    Einführung
    Mit dem JavaScript Zugriff auf ein TwinCAT System, kann eine eigene webbasierte Visualisierung erstellt werden. Es werden keine zusätzlichen Lizenzen benötigt. Die Installation besteht aus drei Schritten. Zuerst muss der IIS (Internet Information Service) von Windows installiert und konfiguriert werden, welcher als Webserver zur später die Visualisierung hostet. Danach muss ein Zugang zum ISS erstellt werden, sofern ein Zugriff von ausserhalb (Internet) erfolgen soll. Jetzt erst wird JavaScript programmiert, um aus TwinCAT die gewünschten Werte zu erhalten.

    Schritt 1, IIS installieren
    Alle nötigen Schritte hat Beckhoff im Infosys zusammengefasst. Es empfiehlt sich, die Anleitung ganz genau zu befolgen. Der IIS kann auch auf einem anderen Rechner als der SPS installiert und genutzt werden. Die Steuerung sollte jedoch sich im gleichen lokalen Netz befinden.
    Win7: http://infosys.beckhoff.com/content/...7.htm?id=17781
    Win XP: http://infosys.beckhoff.com/content/...p.htm?id=17782
    Win CE : http://infosys.beckhoff.com/content/...e.htm?id=17783
    Sind die Tests gemäss Infosys erfolgreich verlaufen, kann zu Schritt 2 übergegangen werden.

    Schritt 2, Netzwerkkonfiguration
    Wer die Webvisu nur im lokalen Netz nutzen möchte, kann diesen Schritt überspringen. Soll die WebVisu übers Internet erreichbar sein, sind netzwerkseitig ein paar Überlegungen und Einstellungen nötig. Da die meisten wohl keine fixen IPs haben, muss ein dynamischer DNS (oft DynDNS oder DDNS genannt) her. Einige Router-Hersteller bieten diesen Service standardmässig an. (Weitere Infos zu DDNS gibt’s zuhauf bei Google) Danach muss ein Portforwarding auf dem Router aktiviert werden. Und zwar leitet der Router die Anfrage vom Internet (Welche ja an den Router gesendet wurde) an den Rechner/SPS mit den IIS weiter. Dazu wird eingehender Port geöffnet und an den lokalen Rechner an Port 80 weitergeleitet. Ab sofort ist der IIS aus dem Internet erreichbar! (Bitte denkt an die Sicherheit um den Zugriff zu kontrollieren!)

    Schritt 3 – Erstellen der JavaScript und HTML Dateien
    Hier soll zuerst auf die JavaScript Bibliothek von Beckhoff eingegangen werden. Dazu bitte die Demo-Datei herunterladen und das Programm laden. Danach werden wir hier Schritt für Schritt die Konfiguration durchgehen. (Link Infosys)

    Code:
    var NETID = ""; // Empty string for local machine;             
    var PORT = "801"; // TC2 PLC Runtime = 801, TC3 PLC Runtime = 851
    Hier muss, falls der IIS nicht auf der SPS selbst läuft, die NetID der Steuerung eingetragen werden, sowie der korrekte Port.

    Code:
    var SERVICE_URL = "http://localhost/TcAdsWebService/TcAdsWebService.dll"; // HTTP path to the TcAdsWebService;
    Wichtig hier ist, dass die URL aus Sicht des Browsers (Also der Notebooks, Tablet, Smartphone etc) gesetzt werden muss. Entweder muss hier die lokale IP oder sogar die öffentliche IP, bzw den DynDNS Name eingetragen werden. (Wer eine bessere Lösung weiss, darf sich gerne melden!)

    Code:
    var general_timeout = 500;
    var readLoopDelay = 500;
    Je nach Steuerung empfiehlt es sich, das general_timeout zu erhöhen. Read LoopDelay je nach Bedarf, 500ms ist übers Internet schon ziemlich schnell.

    Code:
    var handlesVarNames = [
                "MAIN.byteValue",
    In diese Liste werden die gewünschten PLC-Variablen eingetragen. Globale Variablen benötigen einen führenden Punkt (wie in der Visu)

    Code:
    var hByteValue = reader.readDWORD(); 
    var hWordValue = reader.readDWORD();
    Hiermit werden die Handles erzeugt. Jede Variable die gelesen werden soll, braucht einen Handle.

    Code:
    //  "MAIN.byteValue" // BYTE                     
    readSymbolValuesWriter.writeDINT(TcAdsWebService.TcAdsReservedIndexGroups.SymbolValueByHandle); // IndexGroup                     
    readSymbolValuesWriter.writeDINT(hByteValue); // IndexOffset = The target handle 
    readSymbolValuesWriter.writeDINT(1); // size to read
    Diese Blöcke können nach belieben kopiert werden, es muss jedoch der korrekte Handle und die benötigte Anzahl Bytes eingetragen werden.

    Code:
    26 + (8 * 4), // Length of requested data + 4 byte errorcode per variable;
    Das hier ist wohl die schwierigste Zeile. Und zwar muss die Grösse der gewünschten Daten berechnet werden. Jede Variable hat unabhängig ihres Typs 4 Bytes Errorcode. Zusätzlich benötigt jede Variable ihrem Typ ensprechend Bytes. Boolsche Variablen benötigen ebenfalls ein Byte.
    Beispiel: Eine Real Variabe: 4 Byte für den Real-Wert + 4 Byte Errorcode = 8 Byte, eine LREAL-Variable benötigt 12 Byte...

    Code:
    //  "MAIN.realValue" // REAL                     
    var realValue = reader.readREAL();
    Besser:
    var rWindSpeed = parseFloat(reader.readREAL()).toFixed(2);                     
    var rTideSpeed = parseFloat(reader.readREAL()).toFixed(1);
    Danach werden die Werte ausgelesen. Ich empfehle, anstelle des Beckhoffvorschlags die Werte zu Floats zu parsen. Mit dem Befehl .toFixed(Komamstellen) kann die Anzahl gewünschter Kommastellen gewählt werden. Zudem liegt die Variable als Zahl und nicht als String vor. (z.B. für Berechnungen nötig)

    Code:
    td_MoorNW.innerHTML = rMoorNW; 
    td_MoorNE.innerHTML = rMoorNE;
    Mit diesen Zeilen werden die Werte in die entsprechenden Tabellenzellen eingefügt.

    Code:
    <tr bgcolor=#CCCCCC>             
         <td>Mooring NW: [t]</td>             
         <td id="td_MoorNW"></td>      <- Hier wird der Wert angezeigt
     </tr> 
            <tr bgcolor=#B8EDFF>             
        <td>Mooring NE: [t]</td>             
        <td id="td_MoorNE"></td>       <- Hier wird der Wert angezeigt       
    </tr>
    Was dann im HTML-Teil entsprechend gekennzeichnet werden muss.

    Code:
    Ganz am Anfang:
        Date.prototype.today = function(){          
    return ((this.getDate() < 10)?"0":"") + this.getDate() +"/"+(((this.getMonth()+1) < 10)?"0":"") + (this.getMonth()+1) +"/"+ this.getFullYear()                  
    };            
     //For the time now             
    Date.prototype.timeNow = function(){  
                    return ((this.getHours() < 10)?"0":"") + this.getHours() +":"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +":"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds();                 };
    
    Und nach den Wertzuweisungen folgende Zeile:
    td_MoorNE.innerHTML = rMoorNE;
    var newDate = new Date();  
    div_log.innerHTML  = "LastSync: " + newDate.today() + " - " + newDate.timeNow();
    Damit wird bei jedem Update der Werte die aktuelle Zeit des Browsers ausgegeben. Ist sehr nützlich bei Zugriffen über das Internet und grossen Latenzzeiten (z.B. Satelittenuplink)

    Das ganze sieht dann z.B. so aus:
    Screenshot_2013-12-07-19-38-05.png

    Ich möchte hier auch noch die Bibliothek von NieZuSpaet erwähnen:
    Quote Originally Posted by NieZuSpaet View Post
    @Guga: dann der Vollständigkeit halber noch der Hinweis auf die TAME-Javascript-Lib, die den ADSWebService etwas nutzerfreundlicher macht.

    http://tomcx.github.io/tame3/
    Attachment 22549Attachment 22550Attachment 22551
    Auf die Verknüpfung mit Highcharts werde ich (vielleicht) später noch eingehen, da man damit wirklich sehr schöne Grafiken automatisch und animiert erzeugen kann!
    ADCP.jpg Wind.jpg

    Für Anregungen bin ich sehr dankbar, bitte benutzt doch diesen Thread oder PM, um diese FAQ sauber zu halten...
    Last edited by gloeru; 16.12.2013 at 22:54.

  5. Folgender Benutzer sagt Danke zu gloeru für den nützlichen Beitrag:

    Pneumatik (08.06.2018)

Similar Threads

  1. TwinCat - alles nach Datenfluss . . . .
    By mailmir in forum Programmierstrategien
    Replies: 0
    Last Post: 01.06.2016, 13:57
  2. Frequenzumrichter-Forum Alles rund um Frequenzumrichter und deren Zubehör
    By THE-EYE in forum Werbung und Produktneuheiten
    Replies: 5
    Last Post: 14.04.2015, 08:40
  3. -Biete- JvG Verkaufsthread alles rund um Steuerungsbedarf etc.
    By JVG Technologys in forum Suche - Biete
    Replies: 6
    Last Post: 25.03.2015, 13:40
  4. libnodave Begriffserklärungen rund um PLC - Verbindungen
    By Limette in forum Hochsprachen - OPC
    Replies: 14
    Last Post: 05.03.2013, 13:09
  5. Dienstleistungen rund um Saia® PCD Systeme
    By S-Lancer.de in forum Suche - Biete
    Replies: 0
    Last Post: 17.08.2011, 20:00

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •