Allgemeine Fragen zu PC Control
Sind PC so zuverlässig wie SPS?
PC werden im Vergleich zu SPS mittlerweile mit einer sehr viel geringeren Anzahl von Bauelementen und Verbindern gefertigt: PC-Systeme sind viel höher integriert als SPS. Die Anzahl der Bauelemente beeinträchtigt linear die Zuverlässigkeit, die per MTBF (Mean time between failure, durchschnittliche Zeit bis zum Ausfall) gemessen wird. PC können also grundsätzlich genauso oder sogar zuverlässiger sein als SPS.
PC-Systeme müssen so gefertigt sein, dass sie in den Einsatzbereichen und deren Umgebungsbedingungen spezifiziert sind. Mittlerweile gibt es für sehr viele Umgebungen spezifizierte Industrie - PC.
Hard Disk als rotierendes Medium - Randbedingungen?
Rotierende Massenspeicher sind heute sehr zuverlässig: die Ausfallrate von robusten Modellen im praktischen Einsatz ist sehr gering. In besonderen Anwendungen, etwa bei vibrierender Umgebung, können Flash - RAM Disks eingesetzt werden. Auch Windows NT ist in Versionen für RAM - Disk Einsatz verfügbar. Beckhoff bietet entsprechende Versionen an.
Ist Windows tauglich für die Automatisierung?
Windows NT ist nicht deterministisch, und in diesem Sinne nicht für die Automatisierung geeignet. NT, seine Architektur und Fähigkeiten sind eine gute Basis für Applikationen im Bereich der Bediensysteme für die Automatisierung. Das GUI (Graphical User Interface), die Informationsverarbeitung und Kommunikation in der Automatisierung können sehr gut mit Windows NT bearbeitet werden.
Auf der Windows Basis hat der Anwender die Wahl aus der größten verfügbaren Softwareplattform weltweit: Applikationen können sehr schnell daraus maßgeschneidert werden. Excel, Visual Basic, C++ oder Windows - Programme werden über OLE Verbindungen an TwinCAT Echtzeitanwendungen angebunden.
Kann PC-Technologie 10 Jahre Austausch gewährleisten?
Der "PC Standard" lebt bereits sehr lang - alte Programme können immer noch genutzt werden. In der herkömmlichen Technik musste ein einzelner Hersteller eine zehnjährige Lieferbereitschaft garantieren, damit Investitionssicherheit gewährleistet war.
In der PC-Technik kann der Anwender nun aus einer Reihe von Quellen einkaufen. Da der PC - Standard von einer großen Anzahl von Firmen genutzt wird, gibt es neben Liefersicherheit ebenso eine rasche Weiterentwicklung der Technik in Form von kompatiblen Geräten: Funktionskompatibilität kann gewährleistet werden. Softwareinvestitionen sind langfristig geschützt.
Allerdings kann der Anwender nur sicher sein, solange nicht doch eine Abhängigkeit, z.B. von einer speziellen Zusatzkarte, existiert: Nur die reine Einprozessorlösung realisiert alle Funktionen in Software, so dass grundsätzlich jede kompatible Hardware eingesetzt werden kann.
Was passiert, wenn die SPS stehen bleibt?
Wie bei jeder üblichen Hardware - SPS auch, bestimmt das eingesetzte E/A System wie sich die Ausgänge verhalten: Beckhoff E/A besitzt Watchdogs zur Steuerung der Busknoten in einem fehlersicheren Zustand.
Jedoch gilt für jedes Automatisierungsgerät mit Softwareeingriff (also für SPS genau wie für PC), dass sicherheitsrelevante Funktionen mit unabhängigen und den üblichen technischen Vorschriften entsprechenden Vorrichtungen (Notaus, Zugangssicherung) gesichert sein müssen.
Ist NT echtzeitfähig?
Im Sinne von "harter" Echtzeit (deterministisch im µs Bereich): Nein. NT wurde für optimale Performance und nicht für deterministische Bearbeitung entworfen. Die typischen Latenzzeiten des NT Schedulers sind für langsame Prozesse echtzeitfähig, jedoch nicht für typische Automatisierungs- und Antriebslösungen (vgl.: Dr. Ing. Wollert, J., Doping für den Betriebssystemkern, Elektronik 1997, H. 20, Franzis Verlag; Realtime Systems with Windows NT, Technology Brief, Microsoft Developers Network, 1995).
Mittels eines zweiten Schedulers wird eine "harte" Echtzeitfähigkeit im µs - Bereich erreicht, die für die genannten Anwendungen ausreichend ist. Dieser Scheduler ist eine Erweiterung des Kernels, so dass TwinCAT Programme voll in NT und dessen Schnittstellen integriert sind.
Wird NT verändert, wenn TwinCAT installiert wird?
Nein: die Architektur von TwinCAT erlaubt eine Integration in Form eines Kernel mode Drivers (.sys) ohne Veränderungen von NT. Das ist besonders vorteilhaft, da auf diese Weise NT nicht verändert (gepatcht) werden muss: das jeweils aktuelle NT kann aus einem Vertriebskanal von Microsoft weltweit beschafft und genutzt werden.
Warum ist eine SPS deterministisch, und kann das ein PC auch?
Eine SPS ist nichts anderes als ein Mikroprozessorsystem mit einem proprietären, deterministisch arbeitenden Betriebssystem.
Die Leistung von PC ist in jedem Falle groß genug, um einen deterministischen "Kernel" gemeinsam mit dem Betriebssystem zu verarbeiten. Die Technologie liegt in der sauberen Implementierung.
Arbeitet ein TwinCAT PC so zuverlässig und deterministisch wie eine SPS?
Ja, der SPS - Taskaufruf durch die NT Kernel Extension von TwinCAT ist in gleicher Weise deterministisch wie bei einer SPS. Die Zuverlässigkeit des Systems wird durch eine stabile industriefeste Hardware gewährleistet.
Was passiert, wenn NT durch Belastung "aushungert?"
Die Rechenkapazität des Prozessors wird zwischen TwinCAT und NT geteilt: diese Grenze ist einstellbar. TwinCAT belegt jedoch nur die unumgänglich notwendige Kapazität und gibt freie Kapazität an NT zurück:
Auf diese Weise kann weder NT noch TwinCAT den Prozessor zu 100 % belegen und damit das jeweils andere System zum "Stillstand" bringen.
Wie kann man die Echtzeiteinstellung vornehmen und wie bemerkt man Last - Überschreitungen?
In den Systemeinstellungen (über das TwinCAT Symbol in der Taskbar erreichbar) kann die Echtzeitlast - Grenze eingestellt werden, dort ist auch die aktuelle Lastanzeige vorhanden.
Überschreitungen der eingestellten Lastgrenze führt dazu, dass die SPS - Programme nicht rechtzeitig zum nächsten Aufruf abgeschlossen sind. TwinCAT bietet eine Anzeige der genutzten und Einstellung der verfügbaren Rechenkapazität zur Systemeinstellung.
Zusätzlich kann ein SPS Programm so lange benötigen, dass es innerhalb der eingestellten Zykluszeit (Taskeigenschaften) nicht fertig wird: Es wird ein Zyklusaufruf "verspätet" ausgeführt, die Zykluszeitüberschreitung wird mittels Systemmerker angezeigt: eine Reaktion kann programmiert werden. Für Windows Programme kann eine Meldung generiert werden.
Kann die Echtzeitanzeige und -einstellung abgeschaltet werden?
Ja: in der Registry gibt es einen Eintrag der das System Popup Menü beeinflusst. [HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\System] "SysPopupMenuType"=dword:00000002
Mit SysPopupMenuType = dword: 0000 0000
hat der Benutzer ein eingeschränktes Menü.
Kann NT ohne Anmeldung hochgefahren werden ?
In der Registry gibt es einen Eintrag der das automatische Einloggen in NT erlaubt, wenn man als Administrator mit Passwort angemeldet ist.
Kann man in TwinCAT die PC Schnittstellen benutzen?
Ja, jedoch nicht gleichzeitig mit dem Betriebssystem.
Kann vorhandenes Feldbus I/O angebunden werden? Wie?
Bestehende Feldbussysteme können einfach eingebunden werden: Mittels einer Masterkarte für den Feldbus im PC wird TwinCAT an das Feldbussystem angebunden. TwinCAT unterstützt derzeit eine Reihe von Feldbussen und Masterkarten.
Kann man Lageregelung und SPS und Bedienprogramm auf einer CPU betreiben?
Ja, TwinCAT organisiert sowohl die Taskbearbeitung für Lageregelung als auch für SPS und die Windows NT Bearbeitung gleichzeitig. Die Leistung von PC Prozessoren erlaubt die Bearbeitung aller Aufgaben auf einer CPU, die Systemlastanzeige gibt ein Maß für die CPU - Belastung durch SPS und Achsregelung.
Muss man sich um Tasksynchronisierung und -kommunikation kümmern?
TwinCAT organisiert den Datenaustausch zwischen Tasks konsistent und sowohl in synchroner als auch in asynchroner Weise. Der Systemmanager ist das Werkzeug zur Einstellung der Datenaustausche zwischen Tasks.
Wie kann man Echtzeitprogramme debuggen?
Der TwinCAT IEC61131-3 Compiler erlaubt eine leistungsfähige Analyse von Programmen in 5 verschiedenen Programmiersprachen mit Ablaufkontrolle, Breakpoints und Variablenanalyse, zusätzlich ist ein Datentrace verfügbar.
Es gibt die Möglichkeit, C- Funktionen einzubinden, deren E/A - Daten mittels Variablenanalyse und Datentrace untersucht werden können.
Gibt es Inkompatibilitäten zu Hardware oder Software?
Nein, derzeit sind keine Hardware - Inkompatibilitäten von TwinCAT für PC kompatible PC mit Einprozessor - Motherboards bekannt. Allerdings können unsaubere Kernelmode - Treiber, die Windows NT beeinträchtigen, auch TwinCAT beeinträchtigen, typisches Beispiel: Grafikkartentreiber.
Vorteil von NT ist, dass diese Kernelmode Treiber nur mit Administratorrechten installiert werden können. Darüber hinaus bietet TwinCAT eine Jitteranzeige zur Identifikation solcher Treiber.
Wann führt die SPS einen Kaltstart, wann einen Warmstart aus?
Wie bei einer herkömmlichen SPS kann TwinCAT einen Kaltstart mit Variableninitialisierung oder einen Warmstart (Stop -> Start) ohne die Initialisierung von Variablen durchführen. Bei Einschalten des Rechners wird das Startprogramm geladen und automatisch gestartet, wenn die Option "Boot" gewählt ist. Sollen Variablen gesichert werden, können sie als remanente Daten angelegt werden.
Sind dynamische Variablen verfügbar?
Zunächst kann man lokale Variablen anlegen, die nur in einer Instanz zur Verfügung stehen. PLCopen erwägt die Einführung dynamischer Variablen. Es gibt (noch) keine Pointer.
Was sind VAR_IN_OUT Variablen?
VAR_IN_OUT Variablen werden als Pointer übergeben, dadurch entfällt das Umkopieren von Daten in und aus einer Instanz. Lokierte boolsche Variablen können nicht als VAR_IN_OUT übergeben werden.
Ein 5000 x 10 Array wurde erstellt. Bei der Statusanzeige wurden nur ca. 16.000 Werte angezeigt?
Das Debuggersystem besitzt Grenzen für die Datenanalyse: die Puffergröße für das Monitoring ist überschritten worden.
Gibt es Grenzen für die Größe von Variablen, z.B. Arrays?
Es gibt eine Beschränkung auf 64.000 Bytes pro Variable, die zukünftig entfallen wird.
IEC61131 kennt keine Pointer. Gibt es doch Pointer?
Es gibt momentan noch keine Zeiger. Mit Release 3.0 von TwinCAT werden Pointer zur Verfügung stehen. Bei der Nutzung von Pointern kann keine Gewährleistung für korrektes Arbeiten von Programmen übernommen werden - der Nutzer trägt die Verantwortung selbst.
Gibt es Strukturierungsmöglichkeit für den Gültigkeitsbereich von Variablen?
Es können lokale und globale Variablen angelegt werden.
Welche Sprache kann wofür eingesetzt werden?
Es gibt keine klare Vorgehensweise, aber eine empfehlenswerte:·
- ST bei algorithmischen Berechnungen,
- FUP bei Programmaufrufen,
- KOP z.B. für Verriegelungen,
- AS bei schrittweisen Abläufen,
- AWL bei Bitverarbeitung.
Die typischen Anwendungen für Sprachelemente richten sich nach den gängigen Mustern, Sprachelemente einzusetzen.
Welche Programmiersprache ist die schnellste bei der Ausführung?
Testergebnisse waren:
100.000 mal Und-Verknüpfung in AWL = 76ms
100.000 mal Und-Verknüpfung in ST = 74ms
1.000 mal FOR-Schleife 0 to 99 in AWL = 38ms
1.000 mal FOR-Schleife 0 to 99 in ST = 40ms
ST ist etwas (aber unwesentlich) schneller als AWL, weil hier kein zusätzlicher Code für die Ablaufkontrolle erzeugt werden muss. Die Codegenerierung ist sehr gut, mit C dürfte kein schnellerer Code zu erzeugen sein. Außerdem ist in C geschriebener Code nicht im PLC Control analysierbar. FUP und KOP sind nicht sehr viel langsamer als ST.
Kann man auf Variablen der SPS über OCX zugreifen? Wie schaut ein solcher Zugriff aus ?
Es kann mit verschiedensten Mechanismen auf die Variablen zugegriffen werden (synchron, asynchron, on change usw.). Es kann eine Sammlung von Beispielen mit TwinCAT installiert werden. Hier werden alle Funktionen im Beispiel gezeigt (nur Visual Basic).
Hat man Zugriff auf jeden Teil des Programmiersystems über OCX ?
Das OCX stellt Zugriffe auf Variablen und Methoden der Server zur Verfügung. Der Zugriff erfolgt auf alle Variablen (lokal und global), sowie auf alle Typen (elementar und strukturiert) und das ganze noch symbolisch oder per Adresse.
Besteht die Möglichkeit der indizierten Bearbeitung von direkten Adressen (MW) ?
Auf Bits eines Wortes oder Bytes kann - überlappend - zugegriffen werden. Beispielsweise besitzt %MW1 die Bits %MX1.0 bis %MX1.15.
Der Datentrace funktioniert als Ringpuffer mit Pre- und Posttrigger. Was kann eingestellt werden?
Derzeit sind mehr als 500 Einträge je Variable möglich (abhängig von den aufzuzeichnenden Variablen). Der Ringpuffer wird nicht mehr beschrieben, wenn ein Triggerereignis eingetreten ist. Der Puffer kann dann aus-gelesen und als ASCII - File abgespeichert werden. Während der Aufzeichnung können keine neuen Variablen aufgezeichnet werden, eine Umschaltung der Anzeige ist jederzeit möglich (max. 20 Variablen, davon 8 in der Anzeige). Die kleinste Abtastzeit ist die Zykluszeit der Task, also zyklussynchrone Aufzeichnung. Es kann bestimmt werden, wie viel Prozent der maximal möglichen Daten vor und nach dem Triggerereignis im Ringpuffer stehen sollen.
FB-Statusanzeige: Wie kann ein FB (mehrfach verwendet) im Status für einen speziellen Aufruf angezeigt werden?
Unter ‚Projekt' 'Instanz öffnen' kann eine Instanz eines FBs analysiert werden. Im Objektverzeichnis (linkes Fenster) muss dazu der Cursor auf dem FB stehen. Bei der Auswahl der Instanz wird die Aufrufhierarchie mit angezeigt.
Nach welcher Programmänderung ist Kaltstart / Warmstart erforderlich? Beim Kaltstart werden VAR_RETAIN initialisiert. Wie können Sollwerte in der SPS dennoch gespeichert werden?
Kaltstart mit neuer Codegenerierung ist nötig nach Modifikationen in der Taskkonfiguration oder nach Modifikation im Bibliotheksverwalter (Hinzufügen oder Löschen von Bibliotheken). Retaindaten werden erst nach Stop des TwinCAT System gespeichert und erst mit dem Start von TwinCAT wieder geladen (wenn ein Bootprojekt vorliegt). Beim Kaltstart ohne Restart des TwinCAT System wird mit Initialdaten gestartet. Sollwerte können mittels einer Watchliste (besser Rezeptliste) aus der SPS abgezogen und auf Knopfdruck wieder in die SPS zurückgespielt werden.
Gibt es Teilcompilierungen oder muss immer das ganze Programm compiliert werden?
Bei einem "Rebuild all" wird das gesamte Projekt neu compiliert. Wird ein Online - Tauschen durchgeführt, wird nur der geänderte Code erzeugt und geladen. Nach einem Rebuild all ist kein Online Tauschen mehr möglich: Es muss komplett geladen und kaltgestartet werden.
Wenn das SPS-Programm in der eingestellten Taskzeit nicht fertig wird, was passiert dann?
Es gibt einen Systemmerker Bereich, in dem der Zustand des Systems dargestellt wird. Überschreitungen der eingestellten Lastgrenze oder der Zykluszeit eines Programms führt dazu, dass die SPS - Programme nicht rechtzeitig zum nächsten Aufruf abgeschlossen sind: Es wird ein Zyklusaufruf "verspätet" ausgeführt, die Zykluszeitüberschreitung wird mittels Systemmerker angezeigt: eine Reaktion kann programmiert werden. Für Windows Programme kann eine Meldung generiert werden.
Unter der Echtzeit-Konfiguration befindet sich der Zweig zusätzliche Tasks.
Diese Tasks sind für Anwender, die ohne Programmierung ein einfaches Scannen (zyklisches Abtasten) vom Feldbus durchführen wollen.
Wie sieht ein zeitoptimierter, berechenbarer Datenaustausch zwischen zwei TwinCAT Systemen auf zwei PC`s aus?
Zwischen zwei TwinCAT Systemen auf zwei PC können mit TCP/IP Daten ausgetauscht werden. Der Austausch erfolgt asynchron zum Zyklus und ist abhängig von der Netzbelastung - ein lokales Netzwerk ist vorteilhaft. Zu den TCP/IP Verbindungen gibt es Funktionsbausteine ADSWrite und ADSRead zum Datenaustausch. Ein Austausch über einen Feldbus ist ebenso möglich, dabei ist ein PC der Master, ein anderer der Slave.
Kann NT mit TwinCAT auf einem Multiprozessorsystem auf bis zu 4 Prozessoren aufgeteilt werden?
Das ist möglich, wird jedoch derzeit nicht unterstützt.
Was passiert genau bei Online-Änderungen?
Dieses Verfahren erlaubt Änderungen bei laufender SPS. Bei Online - Änderungen wird der Deltacode - also die letzten Änderungen - gebildet, dieser Code wird direkt nach dem Login auf die Steuerung (ins Laufzeitsystem) gespielt und dort gespeichert. Wenn die Änderungen aktiviert werden, so wird am Ende des gerade laufenden Zyklus der Code "umgehängt". Da nun der Code zweimal vorhanden ist, erfolgt in den nächsten Zyklen eine Reorganisation des Speichers (garbage collection).