TC - Academy

Die Idee ein YouTube-Kanal zu starten hatte ich schon so in etwa 2015.
Aber erst zwei Jahre später habe ich mir dann ein Account eingerichtet.
Doch ich hatte einfach keine Zeit, Content zu produzieren.
Ich mag keine halben Sachen, ich mag auch keine 90 % Lösung. 
Wenn ich etwas anfange, dann ganz oder gar nicht.
Für das Produzieren von Content habe ich auch einen gewissen Qualitätsanspruch. 
Das gilt für alle drei Elemente eines Videos, Bild, Ton und Inhalt. Für die Bildqualität sorgen das richtige Kamera Setup mit qualitativer Ausleuchtung. Das Gleiche ist auch für den Ton gültig, das geht halt nur mit einem hochwertigen Richtmikrofon und einem 32bit Float Audiorecorder. Ja und die Qualität des Contents? Die kann man nicht kaufen! Da hilft nur lebenslanges Lernen und offen sein für neue Wege.
Aber nun habe ich damit gestartet, besser spät als nie.
Besucht einfach  @theTwinCat-Academy auf YouTube.
Im ersten Video gibt es nur ein paar allgemeine Informationen zu meiner Person und meiner Vita.
Im zweiten Video gibt es keinen Software-Content im direkten Sinne. Das TwinCAT Scope ist eines meiner Lieblingswerkzeuge in der Industrie Automation der letzten 30 Jahre. Schon vor 20 Jahren war das Scope in der TC2er Version fast täglich im Einsatz. Dieses Video hat eher Mindset Charakter und soll die gefühlt 90 % der TwinCAT User wach rütteln, das Werkzeug zu benutzten oder mehr zu benutzen. Durch die intensive Nutzung des Scope wird die Produktivität massiv gesteigert. Das Scope hat ja generell drei Use Case. Zum Ersten, das ist am naheliegendsten, zur Fehleranalyse. Zum Zweiten, zum Einstellen von Prozesswerten, wie Temperaturregler oder Achskonfigurationen. Ja und zum Dritten, das habe ich in meinem Berufsleben praktisch nie gesehen, zum Verify als Code Analyse. Wer es nicht benutzt, vergeudet kostbare Lebenszeit. Die fetten Jahre in der europäischen Wirtschaft sind vorbei, man sollte also kein Werkzeug zur Steigerung von Produktivität liegen lassen. Wer es nicht glaubt, ich beweise es!!!
Wenn ich schon dem hohen Wert des TwinCAT Scope ein ganzes Video widme. Ja, dann muss ich dieses Werkzeug auch erklären. Die 30 Minuten Zeit sollte man sich schon nehmen. Der Produktivitätsgewinn, den man damit in der Zukunft erreichen kann, steht in keinem Verhältnis zur investierten Zeit. Dabei ist es im Kern egal, ob man noch unter TwinCAT 2 unterwegs ist oder es unter TwinCAT 3 anwendet. In dem Video erkläre ich aber nur die Bedienung vom Scope unter der 3er-Version. Die Bedienung des Scope unter TwinCAT 2 war deutlich einfacher und die Verwendung von TC2 ist auch End of Lifetime.
Bei den PC basierten SPS Steuerung von Beckhoff existiert vereinfacht gesagt die Datenhaltung von Variablen in zwei Varianten, die Flüchtigen und Permanenten. Die flüchtigen Daten sind nach einem Neustart des Systems gelöscht und die Permanenten werden aus einer Datei heraus wieder hergestellt. Im Umgang mit dieser Datei gibt es ein paar Dinge zu beachten. In diesem Video gibt es umfangreiche Informationen zu den persistenten Daten im Beckhoff Universum. Die Informationen sind für TwinCAT 2 und für TwinCAT 3 gültig. Für Neueinsteiger in der Beckhoff Welt ist dieses Video eine absolutes Muss!!! Denn eine SPS-Steuerung ohne allgemein gesagt „Permanente Daten“ wird es wohl kaum gehen. Ich habe vor 20 Jahren so mein Lehrgeld bezahlt. Es würde ja Sinn machen, wenn ein Teil der Menschheit nicht dieselben Fehler noch mal macht. 
Dass Action, oder sagt man der Action 😀 .. egal, ist ein vielschichtiges Werkzeug, das aber die meisten Anwender in seinen Möglichkeiten bei weitem nicht ausnutzen. Ich habe in 20 Jahren viel mit dem Action experimentiert, um das Werkzeug möglichst breit zu verwenden. Im Kern könnte man es zusammenfassen in den vier folgenden Funktionen. 1. Software in unterschiedlichen Sprachen zu generieren, denn mit der Erstellung des Action kann man eine Programmiersprache auswählen, die unabhängig von der Basis ist. 2. Kann Software in einem Action ausgelagert werden, um diese mehrfach zu verwenden, als wäre es ein FC. 3. Dann kann ein Action von Aussen aufgerufen werden, wie ein Methodenaufruf. Nur eben ohne die Option weiterer Parameter. 4. Kann man das Action benutzen, um den Programm-Code inhaltlich zu strukturieren. Aber das wird in dem Video in gut 30 Minuten ausführlich erklärt. Da TwinCAT ein CoDeSys Derivat ist, gilt dieses Video genau so für CoDeSys Anwender.
Bei der Entwicklung von Software macht auch der coolste Programmierer irgendwann Fehler. Es gibt Fehler, die der Compiler zuverlässig findet. Aber zwei einfache Beispiele zeigen, was ein Compiler nicht abfangen kann. 1. Eine Division durch 0, der Compiler kann ja nicht vorher sehen, wann der Divisor im Leben einer Maschine mal den Wert 0 hat. 2. Beispiel ist eine Bereichsgrenzen-Verletzung bei Schleifen. Die Obergrenze einer Schleife wird mit einer Variable abgebildet, diese kann aber die Obergrenze der verwendeten Arrays überschreiten. Für diesen Fall gibt es das POU für implizite Prüfungen. In dem Video erkläre ich die Einbindung und gebe noch ein paar Tipps und Tricks in der realen Anwendung dazu. Da TwinCAT ein CoDeSys Derivat ist, gilt dieses Video genau so für CoDeSys Anwender.
Ein absolutes Basisvideo für TwinCAT Neueinsteiger. Wie werden Variablen aus der Steuerung mit der Hardware verbunden.
Wir TwinCAT Programmierer nenne das eigentlich verknüpfen, weil es im TwinCAT diese feste Hardware Adressierung wie in der Siemenswelt ja auch vor 20 Jahren schon nicht gab. In diesem Video gebe ich eine ausführliche Erklärung zu dem Thema. Nach zwei Jahrzehnten Erfahrung mit Beckhoff TwinCAT kann ich auch mehrere Lösungswege aufzeigen. Denn es gibt schon unterschiedliche Herangehensweisen für diese Thematik SPS Variablen mit der Hardware zu verknüpfen. Dann kann jeder sich den besten Weg für seinen Workflow heraussuchen. Auch hat das Software Design ein Einfluss darauf wie man die Hardwareverknüpfung realisiert.
Das ist ein Basisvideo, wieder für TwinCAT Neueinsteiger. Im letzten Video habe ich den Standardfall für das Verknüpfen vom SPS-Variablen mit dem E/A Feld gezeigt.
Aber es gibt Klemmen, die ein sehr aufwendiges Prozessabbild haben, im Gegensatz zu den einfachen digitalen Ein- und Ausgängen. Seit geraumer Zeit gibt es nun von Beckhoff für viele Klemmen eine elegante Lösung dafür.
Es gibt sicherlich drei Varianten.
Erstens, man erstellt viele einzelne Variablen, die dann einzeln verknüpft werden. Sehr schlecht, weil zeitaufwendig und zu fehlerhaft.
Zweitens, man erstellt sich eine eigene Datenstruktur mit den gewünschten Variablen, die dann einzeln verknüpft werden. Das ist schon übersichtlicher, aber trotzdem viel Arbeit und auch da macht man schnell ein Fehler beim Verlinken.
Drittens, man schaut dieses Video und spart viel Zeit :D.
 
Ich habe übrigens auch schon erfahrene TwinCAT User gesehen, die den Trick nicht kannten.
Kompakte Antriebstechnik hatte Beckhoff schon viele Jahre in Form von Schrittmotoren bis hin zu 48V im Programm. Aber im Frühjahr 2021 hatte ich ein Meeting mit dem Vertrieb von Beckhoff und da fiel die Aussage, wir bringen ein leistungsfähiges 48V Servo-Antriebssystem auf den Markt.
Die ELM72xx und AM81xx Motoren führen wirklich dazu neue Lösungen zu entwickeln oder vorhandene Anwendung neu zu denken und besser zu realisieren. Diese Kombination benutzt nicht Schrittmotoren mit 48V, sondern Synchronservomotoren mit 48V.
ELMx Antriebsregler sind extrem kompakt, besitzen nur die Breite von zwei Standard-IO-Klemmen. Dadurch ist es möglich, den Regler ganz dicht an den Antrieb zu bringen. Die Motorverkabelung muss nicht mehr zum Schaltschrank verdrahtet werden. Die ELM Klemme kann in den (für den Motor) nächstgelegenen E/A-Klemmkasten positioniert werden. Da die AMxx mit OneCable ausgeführt sind, ist Verkabelung im Schalt/Klemmkasten auf ein Minimum reduziert, 3x Phase für den Motor, nur zwei Adern für den Geber und optional noch zwei Adern für die Bremse.
In diesem Video möchte ich umfangreiche Information zu den ELM72xx und AM81xx geben und wie üblich in meinem Content, mit viel Hintergrund Informationen aus der realen Anwendung..
Ein kurzes Video als Ergänzung zum letztem Video Nr.09 der ELM7200 Klemmen und der dazu gehörenden Motoren AM8100.
Die 48V Servomotoren gibt es noch in dieser dezentralen integrierten Variante, in dem Regler und Antrieb in einem Gehäuse zusammen geführt werden.
Das Prinzip einer dezentralen Antriebslösung in der maximalen Ausbaustufe! Die Bandbreite der Motoren ist etwas eingeschränkt, gegenüber der getrennten ELM7200/AM8100 Version. Ein Sachverhalt, der logisch erscheint, weil in der kleinsten Version mit einer Flanschgröße von nur 40 mm nicht noch der Regler verbauen lässt. Bei der größten Variante, mit dem 87er Flanschmaß ist dann sicher die limitierende Größe die Stromstärke der 48V Versorgung über den M12 Steckanschluss. Aber der AMI8133 im 72er Flanschmaß bietet für eine dezentrale Lösung schon eine große Leistung.
Im Standardfall wird man Daten in Strukturen zusammenfassen und ordnen.
Zu 90% ist das der reguläre Weg bei der Software Erstellung, dieser Weg ist gut und richtig.
Aber ein Funktionsblock kann auch als Ersatz für eine Struktur benutzt werden.
Es ist ohne Probleme möglich innerhalb von Strukturen auch Funktionsblöcke einzubetten.
Das hat den Vorteil, dass die Struktur Code enthalten kann.
In diesen Fällen kann dann gekapselt z.B. eine Formatierung durchgeführt werden oder was auch immer.
Durch bedingtes Aufrufen des FB (man muss ja nicht) oder einer Action oder Methode können dann verschiedene Versionen abgerufen werden.
Aber das Thema ist sehr Variantenreich und dieses Video kann nur einen kleinen Überblick geben, was damit alles realisiert werden kann.
Der Einsatz von Global Variablen ist eine Diskussion, die schnell in eine kontroverse Diskussion führt. So ist zumindest meine Erfahrung.
Aus der Historie betrachtet waren vor 25 Jahren praktisch alle Daten in einer SPS global abgelegt. Das SPS Programm konnte an jeder Stellen auf alle Daten zugreifen. Jedoch waren frühere Projekte, zumindest meine Erfahrung, deutlich weniger komplex. Mit der deutlich gestiegenen Komplexität wächst auch die Datenmenge und die Datenmenge wächst nicht linear, sondern deutliche überproportional.
Deswegen ist meine Philosophie die Datenhaltung möglichst stark kapseln, sonst beherrscht am Ende das SPS Programm den Programmierer und nicht umgekehrt
Je weniger Globale Variablen verwendet werden, umso mehr ist die Software auch gekapselt. Umso weniger komische Quereffekte können entstehen, weil falsche Datenzugriffe entstehen. Weil Tippfehler machen wir ja alle.
Die Software ist dann auch einfacher zu verstehen, weil man nur noch eine Teilmenge verstehen muss und nicht mehr das Universum komplett.
Ein Tutorial zum Thema Vererben / Inheritance unter TwinCAT 3.
Das Vererben ist ein wesentliches Werkzeug der objektorientierten Programmierung.
Vererben hat mir bei der Softwareerstellung unter Beckhoff TwinCAT 3 wirklich das Leben leichter gemacht.
Insbesondere das Vererben bei Datenstrukturen sorgt für viel Ordnung und wird fast täglich angewendet.
Dafür gab es unter TwinCAT 2 auch kein Workaround.
In diesem Video möchte ich die Anwendung mit realen Daten aus meiner Entwicklung zeigen.
Die Check-Funktion hatte ich schon einmal im Video 006 erklärt.
Dort hatte ich die Aussage getroffen, dass der Einfluss auf die Zykluszeit nicht erheblich sei.
Das war so eine empirische Erfahrung in meiner Arbeit mit TwinCAT in den letzten 20 Jahren.
Im SPS-Forum bin ich dann wieder über die Aussage gestolpert, es hätte einen signifikanten Einfluss auf die CPU-Last.
Es muss aber spezielle Anwendungen geben, wo diese Funktion wirklich merklich eine CPU-Last verursacht. In meinem Use Case bei der Nutzung von TwinCAT sind eigentlich immer NC-Achsen implementiert oder sehr viele Antriebe. In diesem Jahr haben wir auch eine Fehlersuche mit einem Beckhoff CP6606 Economy Panel durchgeführt. Das Panel hat eine typische Echtzeitauslastung von 40% mit einer NC-Achse und einer Reihe von Kommunikationspfaden, wie OPC, CAN-Bus und Modus-TCP. Auch hier wieder der Versuch durch Entfernen der Check-Funktionen die Echtzeitauslastung zu reduzieren. Ohne Erfolg, wir konnten kein Optimierungspotenzial sehen.
In diesem Video will ich das mal mit einem Test überprüfen.
Das 26er TwinCAT Build ist ja schon länger zum Download freigegeben. Normalerweise wecken neue Versionen egal bei welcher Software nicht die große Neugier. Mir ist es wichtiger, dass Software, mit der ich arbeite, in ihren Funktionen stabil läuft. Aber das 26er-Inkrement ist schon anders, weil es tiefgreifende Änderungen beinhaltet. Gemessen am Änderungsgrad finde ich den Versionssprung sehr klein. Von 24 auf 26, das weckt eigentlich bei flüchtiger Betrachtung keine Neugier. Ich habe in der letzten Zeit mal etwas mit der neuen 26er Build gearbeitet und in diesem Video mal ein paar Erfahrungen zusammen gestellt. Vollständig ist das Video auf keinem Fall, dafür benötige ich mehr Zeit und auch eine erste reale Applikation. Aber ich bin schon gespannt auf das weitere Improvement des 4026er TwinCAT 3 Build. 
Das Thema Vererben ist eines der Elemente im TwinCAT 3, das wirklich eine enorme Steigerung der Produktivität bei der Code Erstellung erzielt. Das Vererben von Datenstrukturen ist wirklich praktisch, aber das Vererben von FB’s spart enorm viel Zeit bei der Code Erstellung und am Ende bei der Inbetriebnahme. Richtig angewendet kann der generierte Code viel mehr benutzt werden, weil er mehr abstrahiert ist.
 
Ich möchte mit noch einem Video das Thema Vererben in TwinCAT 3 in einer realen Anwendung zeigen. Am Beispiel einer realen Applikation zeigen ich, wie Maschinenkomponenten in einem dreistufigen Prozess in der Software umgesetzt werden. Im ersten Schritt die Basisklasse, dann die 1. Vererbung im zweiten Schritt und diese dann noch einmal Vererben.
Die Bedienoberfläche der TE1000 | TwinCAT 3 Engineering Entwicklungsumgebung kann sehr individualisiert werden. Es gibt Einstellungen die persönlichen Präferenzen haben, aber es gibt auch Einstellungen, um die Produktivität zu erhöhen.
Warum sollte die Maus viele Kilometer über den Bildschirm laufen, wenn dafür ein Tastatur Shortcut angelegt werden kann? Jeder User sollte überlegen welche Funktionen er über den Tag verteilt am meisten verwendet und ob eine hinterlegte Tastenkombination nicht schneller geht.
In dem Video gebe ich ein paar praktische Hinweise aus meiner Verwendung und welche Shortcuts ich hinterlegt habe.
Die Enumeration ist ein schönes Element in der Softwareentwicklung um den Code deutlich lesbarer zu machen.
Der zweite Effekt ist, die Programmierarbeiten werden deutlich komfortabler.
 
Im Wesentlichen kann ein ENUM im PLC Umfeld für folgende Dinge benutzt werden.
1. Schrittketten / Zustandsautomaten statt mit nichtssagenden Zahlen, nun mit einem Klartext aufbauen.
 
2. „Varianten / Typen“ von irgendetwas über ENUMS abbilden.
Was ist damit gemeint? Zwei Beispielen erklären es wahrscheinlich von selbst.
Wir erzeugen einem ENUM für Gemüse und ein ENUM für Obst.
In diesem ENUM werden jetzt in einer Tabelle alle Sorten von Gemüse eingetragen oder eben vom Obst.
Jetzt müssen wir nur noch „Obst“ schreiben und mit der Punktnotation die definierten Obstvarianten aussuchen.
Das sieht dann z.B. so aus: Obst.Apfel oder Gemüse.Kartoffel.
 
Ich würde sagen, der kluge und intensive Einsatz von ENUM’s verbessern deutlich die Qualität von Software.
Im Anlagenbau ist es Standard die benachbarte Maschine über Schnittstellen Daten austauschen. Sind die Steuerungen von unterschiedlichen Herstellern, ist sicherlich eine OPC-Verbindung die erste Wahl. Sind aber die benachbarten Steuerungen aber auch Beckhoff Steuerungen, dann ist für mich die ADS-Kopplung die einfachste Möglichkeit den Datenaustausch zu realisieren.
ADS = Automation Device Specification. Das Kommunikationsprotokoll von TwinCAT ist für mich nun schon über 20 Jahre mein Favorit.
Warum eigentlich? Ja es fallen keine Lizenzkosten an und es können sehr große Datenmengen ausgetauscht werden. Schon vor über zwei Jahrzehnten haben wir Bedienoberflächen mit Delphi oder Visual Basic realisiert, die per ADS mit der SPS verbunden waren. In dem Video möchte ich nur einen kleinen Überblick geben, was mit ADS möglich ist.