Node.js® TypeScript Modul-Beispielimplementierung

Erstellen eines TypeScript-Moduls

  1. Um ein neues TypeScript-Modul zu erstellen, suchen Sie zunächst die von WinCC OA bereitgestellten Vorlagen im Ordner data/nodejs/templates/typescript in Ihrem WinCC OA-Installationsverzeichnis.
  2. Erstellen Sie in Ihrem WinCC OA-Projekt einen Pfad mit dem Namen javascript/<modulename> (wobei <modulename> der Name ist, den Sie für Ihr Modul verwenden möchten) und kopieren Sie den Inhalt des Ordners templates aus Schritt 1 in <modulname>.
  3. Ersetzen Sie in javascript/<modulname>/package.json den Wert für "name" durch den Namen des Moduls, welcher der Konvention nach dem Verzeichnisnamen entsprechen muss, z. B.:
    {
     "name": "<modulename>",
     ...
    }
  4. Öffnen Sie eine Eingabeaufforderung in dem kopierten javascript/<modulename>-Verzeichnis.
  5. Rufen Sie den folgenden Befehl auf, um die erforderlichen Module einschließlich eines Pfads zu den winccoa-manager-Typdefinitionen (die vom Compiler benötigt werden) zu installieren.
     npm install --save-dev <path-to-installation>/javascript/@types/winccoa-manager
    Anmerkung:
    Derzeit benötigt das TypeScript Plug-in für EsLint eine EsLint-Version, die veraltete Pakete verwendet. Es ist also mit einigen Warnungen zu rechnen, wenn diese Pakete installiert werden.
  6. Transpilieren Sie TypeScript-Dateien in JavaScript, indem Sie sie aus dem kopierten Verzeichnis
    npx tsc
    ausführen ODER starten Sie einen Watcher, der automatisch TypeScript-Dateien transpiliert, wenn diese geändert werden:
    npx tsc -w 

    In diesem Verzeichnis wird index.js erzeugt, das im nächsten Schritt vom JavaScript-Manager verwendet wird.

  7. Fügen Sie einen JavaScript-Manager mit dem Pfad von
    <modulname>/index.js
    im kopierten Verzeichnis als einzigen Parameter hinzu (relativ zu javascript, z. B.: <modulename>/index.js). Setzen sie den Start-Modus auf manuell.
    Abbildung 1. Einen JavaScript-Manager hinzufügen
  8. Starten Sie den Manager - er wird sich sofort schließen.
  9. Überprüfen Sie, ob die Meldung "JavaScript Manager for WinCC OA working" im Log angezeigt wird.
  10. Starten Sie die Entwicklung. Nachstehend finden Sie ein Beispiel für das Modul:
    // The command line for the Node.js® manager must contain the path to
    // the transpiled file for this file relative to data/javascript, e. g.:
    //
    // modulename/index.js
    //
    // NB: since the transpiled file must be used by the manager, the
    // extension is .js, not .ts
    
    // import WinCC OA interface
    import { WinccoaManager } from 'winccoa-manager';
    const winccoa = new WinccoaManager();
    
    // main function
    async function main() {
      const dpeName = 'ExampleDP_Arg1.';
      const value = await winccoa.dpGet(dpeName);
    
      console.info('Node.js® manager for WinCC OA working');
      console.info('Value of ' + dpeName + ' = ' + value);
    
      winccoa.exit(0);
    }
    
    // start the main function
    main();
    Anmerkung:
    Beachten Sie, dass der TypeScript-Code innerhalb einer Methode oder Funktion aufgerufen werden muss, um unerwartetes oder undefiniertes Verhalten zu vermeiden.
  11. (Optional, aber empfohlen) Prüfen und formatieren Sie Ihren Code mit:
    npm run lint
    npm run format