Twincat Web-Visualisierung

Nach langer Zeit gibt es mal wieder einen Blogeintrag, diesmal zu einem Thema aus einer ganz anderen Ecke. Meine Haupttätigkeit liegt eigentlich in der Automatisierungstechnik/SPS-Programmierung/Motion Control und genau diesem Thema widme ich diesen Eintrag.
In den letzten Jahren sind Web-Applikationen so ein bischen der Inbegriff für moderne, Industrie-4.0-fähige Steuerungen geworden. Diesen Trend haben auch die Hersteller wie Beckhoff usw. für sich entdeckt und arbeiten mit Hochdruck an HMI Lösungen basierend auf Web-Technologie (JavaScript, HTML5 uvm).
Gerade für Beckhoff gibt es allerdings eine einfache Möglichkeit solch eine Web-HMI selbst zu erstellen und das möchte ich hier in einem kurzen Tutorial zeigen.
Um auf Variablen in einer Twincat-SPS zugreifen zu können kommt man am ADS Protokoll nicht vorbei. Hierbei handelt es sich um eine Art Verbindung zwischen der in einer Echtzeit Umgebung laufenden Steuerung und der Außenwelt. Im Grunde läuft es so: Man verbindet sich auf eine Variable und bekommt deren Wert per Event oder man liest diese einmalig aus. Als HMI Backend dient in diesem Beispiel ein Python Webserver und das Frontend kann mit jedem beliebigen Framework (Bootstrap, JQueryUI) geschrieben werden.

  • Zuerst muss Python mit Version 3.x installiert werden.
  • Anschließend muss über den Python-internen Paketverwalter PIP das PyADS Paket nachinstalliert werden
    • Öffnet hierzu die Command Shell (Windows + R) und dann einfach cmd (ACHTUNG: Falls der normale User keine Adminrechte hat, dann muss die Command Shell als Admin ausgeführt werden)
    • Mit folgendem Befehl “python -m pip install pyads” installiert ihr das Paket
    • Python lädt dieses Paket automatisch runter und gleichzeitig wird auch sichergestellt ob die Pfad Variable zum Python Paket richtig geladen wurde, andernfalls würde der Befehl python nicht zur Verfügung stehen
  • Nun muss ein Webserver Verzeichnis eingerichtet werden
    • Ich hab hier einfach C:\www gewählt
    • Dort muss auch noch das Unterverzeichnis C:\www\cgi-bin angelegt werden, in welchem später die Python Skripts für alle Ajax Calls ausgeführt werden
  • Für den ersten Test erstelle ich ein einfaches SPS-Programm mit einer Zählervariable um in der Web-Visu was anzeigen zu können
    • Dieses Projekt am besten für den ersten Test lokal laufen lassen
  • Um den Python Webserver zu starten, öffnet ihr am besten erneut eine Command Shell und wechselt mit dieser in das www Verzeichnis (cd C:\www)
  • Dort angekommen startet ihr mit dem Befehl “python -m http.server –bind localhost –cgi 8000” den Python-Webserver
  • Wenn ihr nun in den cgi-bin Pfad das Script aus dem Bild kopiert und dieses vom Browser aus aufruft (http://localhost:8000/cgi-bin/test.py) dann sollte das Python Script eine Variable aus der SPS auslesen und als Textfile ausgeben => der Browser zeigt dieses File nun an

Hiermit könnt ihr nun jegliche Visualisierung erstellen und natürlich auch falls gewünscht Charts (mit Chart.js) anzeigen. Zudem ist diese Art sich auf SPS-Variablen einer Twincat Runtime zu verbinden gratis.

iPhone (Hyper-) Links funktionieren nicht iOS 9.3

Nach dem Update auf das neue Apple Mobil-Betriebssystem iOS 9.3 funktionierten bei meinem iPhone 6 die Links in (fast) allen Apps nicht mehr.

Nach kurzer Recherche im Internet stieß ich auf folgenden Blog-Eintrag von einem Tech-Blogger, der diesen Fehler genauer untersucht und mittlerweile auch einen Workaround gefunden hat.

Einfach zum Nachmachen…

How to fix iOS 9.3’s broken Safari, Mail and Messages links

Druckeraufträge lassen sich nicht löschen

Lang ist es her seit meinem letzten Post und aus aktuellem Anlass dachte ich mir es wird wieder mal Zeit. Mittlerweile bin ich auf Windows 10 64Bit gewechselt und eigentlich recht zufrieden, doch die alten Probleme bleiben, zum Teil.

Ich hab ein PDF ausdrucken wollen und während des Druckvorgangs versehentlich den PC heruntergefahren. Natürlich ist das nicht klug, aber passiert ist passiert.

Beim nächsten PC-Neustart wollte dieser Druckauftrag partout nicht fertig werden und er lies sich auch nicht abbrechen bzw. entfernen. Nun, wie bekomme ich diesen Druckauftrag aus der Liste raus, damit neue Druckaufträge wieder abgearbeitet werden?

Folgende Answeisung sollte helfen:

  • Mit der Tastenkombination Win+R das Ausführen Fenster von Windows öffnen
  • Nun services.msc eingeben um den Dienstmanager von Windows zu öffnen und mit OK bestätigen
  • Im folgenden Fenster rechts den Dienst Druckerwarteschlange suchen und beenden
  • Als nächstes mit dem Windows Explorer zum Ordner C:\Windows\system32\spool\PRINTERS navigieren und den Inhalt löschen
  • Anschließend im Dienstmanager von Windows den Dienst Druckerwarteschlange wieder starten
  • Nach erneutem Öffnen des Drucker Fensters sollten alle Aufträge verschwunden sein

Texniccenter and Adobe Reader 15

Nach einem Betriebssystem Update, in meinem Fall von Windows 7 auf Windows 10, dauert es immer eine Weile, bis wieder alle Applikationen so installiert sind wie sie vorher auf dem alten System installiert waren. So war es heute auch mit dem Latex Editor Texniccenter, welcher auf Windows7 einwandfrei lief und nun unter Windows 10 nicht mehr so will.

Folgende Einstellungen waren notwendig um die Umgebung von Texniccenter 2.02 (64Bit) und Adobe Reader 15 auf Windows 10 wieder zum Laufen zu bringen:

  1. Zuerst ins Menü “Ausgabe” -> “Ausgabeprofile definieren…” gehen
  2. Das Profil “Latex to PDF” auswählen
  3. Rechts den Reiter Viewer auswählen
  4. und nun die Set-Up Parameter (standardmäßig nach Texniccenter Setup so eingestellt) wie folgt zu bearbeiten
  • Beim “Pfad der Anwendung” sollte der Pfad zum Adobe Reader ausgewählt sein in meinem Fall “C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe”
  • Parameter sind im wesentlichen “Kommando”, “Server” und “Thema” einzustellen. Das ganze 3-mal
  • Bei “Server” sollte immer “acroviewR15” stehen
  • Bei “Thema” sollte immer “control stehen
  • Bei “Kommando” sollte die ersten beiden male “[DocOpen(“%bm.pdf”)][FileOpen(“%bm.pdf”)]” stehen
    beim zweiten mal steht “[DocClose(“%bm.pdf”)]”

Die Einstellungen sollten wie in folgendem Bild gezeigt aussehen:

latex_settings

OneDrive von Windows 10 Installation entfernen

Es mag zwar recht zuvorkommend wirken, wenn Microsoft einem den Cloud-Hosting-Dienst OneDrive direkt mit einer Windows 10 Installation ausliefert, doch manch einer hat seine eigene Cloud, verwendet Google Drive oder Dropbox. Früher konnte man OneDrive einfach per Setup nachinstallieren und über selbiges auch wieder entfernen, seit Windows 10 geht dies nicht mehr so einfach.

Nach kurzer Recherche bin ich auf einen Artikel gestoßen, der zum einen ein sauberes deaktiveren von OneDrive unter Windows 10 ermöglicht und zum anderen dieses auch komplett deinstallieren lässt.

Vielleicht finden sich ja noch ein paar Nutzer denen dieser Artikel hilft.

Kalendereinträge von iCloud exportieren

Ein Wechsel von Apple und der gesamten iProduktpalette ist nicht sehr einfach, vor allem wenn es um die Mitnahme der Daten geht.

Die Kontakte können bequem über das iCloud Webinterface (zu erreichen unter http://www.icloud.com) als vCard exportiert werden, jedoch bei den Kalendereinträgen ist ein kleiner Trick notwendig um diese im *.ics Format zu bekommen, ohne auf zusätzliche Tools zurückgreifen zu müssen.

Folgende Schritte sind notwendig:

  • iCloud über das Webinterface öffnen (icloud.com/calendar) und mit den Apple Benuterdaten einloggen
  • Nun auf der linken Seite den Kalender auswählen und für die Öffentlichkeit freigeben. In der derzeitigen Version des Webinterface klickt man auf das WLAN Symbol und gibt den Kalender mit dem Hackerl frei.
  • Anschließend erscheint direkt darunter eine URL mit dem Protokoll webcal://
  • Diese URL wird nun kopiert und im Browser beispielsweise in einem neuen Tab in die Adresszeile kopiert. Bevor man diese URL jedoch bestätigt, tauscht man vorne das Protokoll webcal einfach durch http aus
  • Nach drücken der Eingabetaste kommt anschließend vom Browser eine Aufforderung um den Kalender im *.ics Format zu speichern

Die gespeicherte Datei kann nun in jedem beliebigen Programm importiert und verwendet werden.

Ich hoffe dieser Tipp hilft einigen, so wie er mir geholfen hat die Daten auf einen alternativen Provider zu übertragen.

iPhone4 Reaktion in iOS 7

Das neue Apple Mobile Betriebssystem iOS7 spaltet etwas die Fan-Gemeinde. Die einen lieben das Design, die anderen hassen es. Nichts desto trotz gibt es diese Version für alle iPhone Modelle ab (inkl. iPhone4) und das heißt natürlich auch neues System -> neue Probleme.

Bei den älteren iPhone Modellen 4 und 4S lässt die Reaktionsfähigkeit der Oberfläche sehr zu Wünschen übrig. Die neuen designtechnischen Effekte fordern einiges an Rechenleistung und gerade beim schon etwas in die Jahre gekommenen iPhone4 merkt man das deutlich.

Mit folgenden Einstellungen sollte das Handy wieder flotter arbeiten:

  • Einstellungen => Allgemein => Bedienungshilfen – schaltet dort zum einen die “reduzierten Bewegungen” und zum anderen den Punkt “Konstrast reduzieren” ein;
  • Einstellungen => Allgemein => Spotlight Suche – dort alle Häckchen entfernen, damit nicht ständig der Spotlight Index im Hintergrund aktualisiert werden muss;
  • Einstellungen => Allgemein => Hintergrundaktualisierung – am besten ausschalten. Wenn man Apps wie Whatsapp nutzt, dann sollte man evtl. dieses eingeschaltet lassen und alle anderen deaktivieren;

Nun solltet ihr eine deutliche Verbesserung der Reaktionsgeschwindigkeit des UI merken.

Google Reader Ersatz

Also eines muss ich jetzt loswerden: Das Abschalten des Google Readers war einer der größten Fehler die Google begangen hat.

Zum Einen war dies ein spitzen Produkt und zum Anderen hatte es eine breite Nutzerbasis. Trotzdem müssen wir “Reader” jetzt damit leben. Zum Glück gibt es seit einiger Zeit etliche Alternativen und eine davon ist Feedly.

Im Prinzip führt Feedly die Arbeit von Google Reader beinahe ohne Einschränkungen fort, einzige Änderung: Das Design ist meines Erachtens wesentlich besser und schöner umgesetzt als es bei der Google Anwendung der Fall war.

Einziges Manko an dieser App ist vermutlich die Firma die dahintersteht. Wenn man auf Wikipedia etwas sucht, findet sich schnell dieser Eintrag. Leider ist der Firmensitz in den USA und somit kann davon ausgegangen werden, dass die Leseliste nicht geheim bleibt.

Wie auch immer Feedly verrichtet gute Dienste und somit bleibt nur noch zu sagen: App saugen und loslegen!

Doppelte Kontakte auf iOS

Wer kennt dieses Problem nicht: Über 400 Kontakte in seiner
Liste und durch den mehrmaligen Umzug von alten Telefonen, auf neue,
ins Outlook oder von einer Cloud in die andere, passiert es,
dass diverse Kontakte doppelt abgelegt werden.

Das manuell zu bereinigen ist allerdings sehr mühsam. Hier gibt es nun ein
einfaches App, welches zumindest auf iOS Geräten dieses Problem
recht elegant löst.

Das besagte App nennt sich OneContact und ist derzeit noch kostenlos. Wenn der Zugriff auf die Kontakteliste erlaubt wurde, scannt das App gleich alle Kontakte auf Duplikate
durch und bietet mehrere Lösungsmöglichkeiten für diese Konflikte
an. zum einen können die doppelten Kontakte automatisch gemerged
werden, zum anderen kann man diese Konflikte auch manuel
lösen.

Latex Wörter zählen

Nach langer Zeit aus aktuellem Anlass mal wieder ein kurzer Blogeintrag.

Wer mit Latex auf Windows Systemen zu tun hat, kommt an der Verwendung von Texniccenter kaum vorbei. Einziges Manko ist, dass die Anzahl der Wörter in Windows nicht so einfach zu ermitteln ist. Für Unix Systeme gibt es einige Perlskripts, die einem dies ermitteln. Auf Windows Systemen sieht es hier eher mager aus.

Nach langer Recherche in diversen Foren und Blogs, konnte ich jedoch das kleine Programm Countex finden und auch erfolgreich in Texniccenter einbinden. In dem Paket ist auch eine kurze übersichtliche Anleitung auf Deutsch dabei.

Das Countex Programm wird beim Interpreter zur Nachbearbeitung eingehängt. Zwei Textfiles können zusätzlich definiert werden, wo Befehle ausgeschlossen (Wörter werden nicht mitgezählt) oder eben explizit in den WordCount aufgenommen werden können.

Das Paket gibt es unter Projekte => Latex zum download. Ich hoffe es ist dem Autor von Countex recht, dass ich hier sein Paket zum Download anbiete.