Die Objekte in PLC-Lab

Innerhalb der Tools sind in einer Baumstruktur die Objekte von PLC-Lab gelistet. Diese sind dabei nach Kategorien sortiert. So befinden sich z.B. in der Kategorie "Lampen" alle lampenähnlichen Objekte wie beispielsweise Leuchtmelder, LEDs, Signal-Säulen usw.. Alle in der Liste vorhandenen Objekte können für den Aufbau einer virtuellen Anlage in PLC-Lab verwendet werden.

Nach der Platzierung eines Objekts auf der Zeichenfläche, können die Eigenschaften des Objekts verändert und so das Verhalten den eigenen Bedürfnissen angepasst werden.

Sollten Sie noch nicht mit dem Zeichnen einer Anlage vertraut sein, dann können Sie die wichtigsten Bedienungshinweise im folgenden Abschnitt nachlesen: Tipps und Bedienhandlungen für das Zeichnen einer Anlage

Nun folgt die Erläuterung der einzelnen Objektarten.

In dieser Rubrik finden sich Schalter-Objekte in unterschiedlicher Ausprägung. In den vorhandenen Rubriken sind diese teilweise in unterschiedlichen Farben vorkonfiguriert. Die Farben und Einstellungen sind dabei nicht fix, diese können innerhalb der Eigenschaften den eigenen Bedürfnissen angepasst werden. Schalter werden meist dazu verwendet, einen Bit-Operanden zu beeinflussen. Diese können als Taster oder Schalter ausgelegt werden. Dies ist über die entsprechende Eigenschaft selektierbar. Ebenso kann man diese als Schliesser oder Öffner konfigurieren. Alle Schalter-Arten stammen vom gleichen Ur-Objekt ab. Diese sind nur durch getätigte Einstellungen für spezielle Aufgaben vorkonfiguriert. Dies bedeutet, alle Schaltertypen können durch Änderung der Eigenschaften zu einem anderen Schaltertyp umkonfiguriert werden.

Schalter sind standardmäßig keine Physikobjekte, diese sind also für die Physikengine nicht sichtbar. Dies kann bei Bedarf geändert werden. Dazu sind lediglich die Eigenschaften "Physikalischer Typ des Objekts" und "Ist Physik-Objekt" sowie die weiteren Physikeigenschaften anzupassen.

Ein Schalter kann nicht nur die Werte '0' und '1' in einen Operanden schreiben. Mit Hilfe der Angabe eines Bereichs kann beispielsweise bei Betätigung der Wert '100' in einen Byte-Operanden geschrieben werden. Hierzu genügt die Angabe:

0-100 IM.MB10

Bei Betätigung des Schalters wird (sofern er als Schließer konfiguriert ist) der Wert 100 in den Byte-Operanden MB10 geschrieben.

Diese Schalterart ist gedacht als Schalter ohne Beleuchtungseinsatz. Klassisch wird damit ein Bit-Operand auf den Wert '0' oder '1' gesetzt.

Diese Schalterart ist beleuchtet. Es kann also neben dem zu beeinflussenden Operanden zusätzlich ein Operand angegeben werden, welcher für die Beleuchtung ausgewertet wird. Dazu wird innerhalb der Eigenschaftsrubrik "Darstellung->Farben" die Eigenschaft "Operand umschalten Füllfarbe" der gewünschte Operand angegeben. Diese Angabe ist allerdings nicht zwingend.

Beim Drehschalter wird eine Grafik innerhalb des Schalter-Objekts angezeigt, welche einen Drehschalter symbolisiert. Die beiden Grafiken für Status '0' und '1' sind in den Eigenschaftsrubriken "Darstellung->Bilder anzeigen" angegeben. Sollte es notwendig sein die Ruhestellung des Schalters zu verändern, dann können die beiden Grafiken getauscht werden.

Wie der Name es vermuten lässt, wird dabei ein Schalter mit Windows-Button-Aussehen dargestellt. Die Einstellungsvarianten dieses Schalters sind limitiert. So kann beispielsweise keine Grafik eingestellt werden. Auch die Angabe eines Hotkey ist nicht möglich.

Beim horizontalen Schalter wird eine Grafik innerhalb des Schalter-Objekts angezeigt, welche einen horizontalen Schalter symbolisiert. Die beiden Grafiken für Status '0' und '1' sind in den Eigenschaftsrubriken "Darstellung->Bilder anzeigen" angegeben.

Möchte man ein Schalter-Objekte mit eigenen Grafiken für die einzelnen Schaltzustände versehen, dann geht man wie folgt vor:

  • Innerhalb der Eigenschaftsrubrik "Darstellung->Farben" wird die Füllfarbe und die Linienfarbe vollständig transparent eingestellt. Dies erreicht man dadurch, dass man die Deckkraft der Farbe jeweils auf 0% einstellt.
  • Nun wählt man innerhalb der Eigenschaftsrubrik "Darstellung->Bilder anzeigen" für den Status '0' und den Status '1' eine Bild-Datei aus. Sollen Vektor-Grafiken verwendet werden (XAML-Datei), dann können diese in der Eigenschaftsrubrik "Darstellung->Vector Grafik anzeigen" angegeben werden.

Der erste Punkt der Aufzählung ist nur notwendig, wenn vom "normalen" Schalter-Objekt nichts mehr zu sehen sein soll. Wenn man aber z.B. eine PNG-Grafik verwendet und diese transparente Bereiche besitzt, dann kann es durchaus gewollt sein, dass der normale Schalter weiterhin sichtbar ist.

Unter folgendem Link wird dies beschrieben bzw. ein Beispiel dazu gezeigt: Verwendung von Grafiken in den Objekten

Alle Schalter-Arten mit Ausnahme des Windows-Buttons können mit einem Hotkey versehen werden. Dabei wird an der Eigenschaft "Hotkey" innerhalb der Rubrik "Grundeinstellungen->Eigenschaften des Buttons" ein Buchstabe a-z oder eine Zahl 0-9 angegeben. In der Simulation kann der Schalter dann wahlweise über die Maus oder diesen Hotkey betätigt werden.

Damit besteht auch die Möglichkeit, mehrere Schalter gleichzeitig zu betätigen, indem für jeden ein anderer Hotkey ausgewählt und diese dann "gleichzeitig" auf der Tastatur betätigt werden. Zweihandauslösungen sind somit in der Simulation realisierbar.

In dieser Rubrik finden sich Lampen-Objekte in unterschiedlicher Ausprägung. In den vorhandenen Rubriken sind diese teilweise in unterschiedlichen Farben vorkonfiguriert. Die Farben und Einstellungen sind dabei nicht fix, diese können innerhalb der Eigenschaften den eigenen Bedürfnissen angepasst werden. Lampen werden meist dazu verwendet, den Status eines Bit-Operanden anzuzeigen. Alle Lampen-Arten stammen vom gleichen Ur-Objekt ab. Diese sind nur durch getätigte Einstellungen für spezielle Aufgaben vorkonfiguriert. Dies bedeutet, alle Lampentypen können durch Änderung der Eigenschaften zu einem anderen Lampentyp umkonfiguriert werden.

Lampen sind standardmäßig keine Physikobjekte, diese sind also für die Physikengine nicht sichtbar. Dies kann bei Bedarf geändert werden. Dazu sind lediglich die Eigenschaften "Physikalischer Typ des Objekts" und "Ist Physik-Objekt" sowie die weiteren Physikeigenschaften anzupassen.

Eine Lampe kann nicht nur die Werte '0' und '1' eines Operanden auswerten. Mit Hilfe der Angabe eines Bereichs kann z.B. der Schwellenwert für einen Byte-Operanden angegeben werden, ab welchem die Lampe leuchtet.
Hierzu genügt beispielweise die Angabe:

0-100 IM.MB10

Somit leuchtet die Lampe erst, wenn im Byte-Operanden MB10 ein Wert >= 100 vorhanden ist.

Lampen-Objekte können zusätzlich mit Operanden versehen werden, welche eine blinkende bzw. pulsende Darstellung erzeugen. Ist z.B. die Bedingung für das Leuchten der Lampe erfüllt und zusätzlich die Bedingung für das Blinken, dann wird die Lampe blinkend dargestellt. Die zu belegenden Eigenschaften haben die Bezeichnung "Operand blinkende Darstellung" und "Operand pulsende Darstellung".

Diese Art von Lampen werden als Leuchtmelder an Schalttafeln verwendet. Innerhalb der Rubrik sind unterschiedlichen Farben selektierbar. Bei Bedarf kann man die Farben anpassen.

Diese Lampen-Objekte haben ein rundes LED-ähnliches Aussehen. Innerhalb der Rubrik sind unterschiedlichen Farben selektierbar. Bei Bedarf können die Farben angepasst werden.

Diese Lampen-Objekte haben ein rechteckiges LED-ähnliches Aussehen. Innerhalb der Rubrik sind unterschiedliche Farben selektierbar. Bei Bedarf können die Farben angepasst werden.

Mit diesen Objekten können Signal-Säulen gebaut werden. In der Rubrik sind die einzelnen Teilstücke einer solchen Säule in unterschiedlichen Farben vorhanden. Auch eine Säule mit einem einzelnen Leuchtelement steht zur Verfügung. Bei Bedarf können die Farben angepasst werden.

Lampen-Objekte kann man nicht mit eigenen Grafiken für die einzelnen Status-Zustände versehen. Hierfür kann man die Objekte innerhalb der geometrischen Formen verwenden.

Selektiert man z.B. eine Ellipse als Dekorationsobjekt, dann besteht die Möglichkeit, in der Eigenschaftsrubrik "Darstellung->Bilder anzeigen" jeweils für den Status '0' und den Status '1' eine Bild-Datei auszuwählen. Sind Vektor-Grafiken zu verwenden (XAML-Datei), dann können diese in der Eigenschaftsrubrik "Darstellung->Vector Grafik anzeigen" angegeben werden.

Unter folgendem Link wird dies beschrieben bzw. ein Beispiel dazu gezeigt: Verwendung von Grafiken in den Objekten

In dieser Rubrik ist ein rechteckiges Objekt vorhanden, welches als statisches Physik-Objekt vorkonfiguriert ist. Des Weiteren ist die Eigenschaft "Neutral bei Kollision" eingestellt. Dies bedeutet, dass das Objekt die Kollision mit einem anderen physikalischen Objekt "bemerkt" aber keine Kraft auf dieses ausübt. In der Eigenschaftsrubrik "Endschalter Einstellungen" befindet sich die Eigenschaft "Endschalter-Operand" an dem der bei Kollision umzuschaltende Operand anzugeben ist. Ebenso kann in dieser Eigenschaftsrubrik selektiert werden, ob der Endschalter als Öffner ausgelegt sein soll.

In diesem Zusammenhang soll auf die Möglichkeit der Kollisionsgruppenbildung hingewiesen werden. Die Einstellungen dazu befinden sich in der Eigenschaftsrubrik "Experten Einstellungen->Physik-Einstellungen->Kollisions-Einstellungen".

Erläuterungen zu Kollisionsgruppen sind im folgenden Abschnitt zu finden: Verwendung von Kollisionsgruppen

Tipp: Jedes geometrische Physik-Objekt kann als Endschalter konfiguriert werden. Dabei muss man nur die gewünschten Eigenschaften innerhalb der Eigenschaftsrubrik "Endschalter Einstellungen" selektieren bzw. belegen.

Die Objekte in dieser Rubrik sind die Universalbausteine zum Zeichnen der virtuellen Anlage in PLC-Lab. Diese Objekte bieten eine große Anzahl von Einstellungsmöglichkeiten. Es stehen drei verschiedene Formen zur Auswahl. Diese sind wiederum in drei Kategorien unterteilt.

Diese Objekte sind der Physik unterworfen. Sie sind schwerkraftabhängig und können von Förderelementen bewegt werden. Die Objekte werden zum Bau der beweglichen Teile einer Anlage verwendet. Sie bilden auch beispielsweise die Einzelteile, welche zu einem festen Körper zusammengefasst werden können. Des Weiteren werden die Objekte für die beweglichen Teile der Gelenkverbindungen verwendet.

Hierbei handelt es sich ebenfalls um Physik-Objekte. Allerdings sind diese nicht dynamisch, sie verbleiben an der gezeichneten Stelle. Typische Vertreter sind Führungsschienen, feststehende Anschläge und Wände. Wenn dynamische Objekte mit den feststehenden Objekten kollidieren, dann werden diese in ihrer Bewegung abrupt unterbrochen. Ähnlich dem Einfluss der Bande eines Billardtisches auf die Kugeln. Diese Objekte können auch als "Anker-Objekte" für die durch Gelenkverbindungen bewegten Objekte dienen.

Diese Objekte werden als Dekoration für die virtuelle Anlage verwendet. Diese verdecken beispielweise andere Anlagenteile. Sie sind rein optischer Natur und haben keine Funktion. Da diese für die Physikengine unsichtbar sind, beeinflussen die Objekte keine anderen Objekte. Typische Vertreter dieser Objektart sind Abdeckungen oder Hintergrundgrafiken.

In dieser Kategorie befinden sich Objekte, welche zum Bau von Rohrleitungssystemen dienen. Die Objekte besitzen die Eigenschaft "Operand für Farbveränderung" die dazu verwendet werden kann, den Durchfluss eines Mediums optisch darzustellen. Die dafür verwendete Farbe ist in der Eigenschaftsrubrik "Darstellung->Farben" bei Bedarf veränderbar. Da man die Objekte beliebig rotieren kann, sind die Darstellungsmöglichkeiten sehr vielfältig.

Die Objekte sind standardmäßig keine Physik-Objekte, dies kann aber bei Bedarf geändert werden.

In dieser Kategorie finden sich Zylinderobjekte mit unterschiedlichen Charaktereigenschaften.

Hierbei handelt es sich um einen einfachwirkenden Zylinder mit Federrückstellung. Dies bedeutet, hat der Operand für die Bewegung des Zylinders in eine Richtung den Status '1' dann wird die Kolbenstange in diese Richtung bewegt. Hat der Operand den Status '0', dann bewegt sich die Kolbenstange zurück.

Die Feder wirkt somit immer in der Bewegungsrichtung, an welcher kein Operand angegeben ist. Die Angabe von Operanden bei beiden Bewegungsrichtungen macht bei dieser Zylinder-Art keinen Sinn.

In der nachfolgenden Darstellung wurde der Operand bei der Ausfahr-Bewegung des Zylinders angegeben. Der Operand hat den Status '1', sobald der Taster betätigt ist.

Somit fährt der Zylinder zurück, wenn man den Taster nicht betätigt.

Diese Art von Zylinder unterstützt die Angabe von Operanden an beiden Bewegungsrichtungen. Die Kraft des Zylinders in die jeweilige Bewegungsrichtung ist so lange vorhanden, wie der Operand den Status '1' besitzt. Befördert ein solcher Zylinder beispielsweise eine Last beim Ausfahren nach oben und der Operand für die Ausfahr-Bewegung wechselt auf den Status '0', dann drückt die Last die Kolbenstange wieder nach unten. Nachfolgend ist dies zu sehen:

Diese Art von Zylinder unterstützt die Angabe von Operanden an beiden Bewegungsrichtungen. Hat keiner der Operanden den Status '1', dann verbleibt der Zylinder in seiner momentanen Stellung. Die Kraft der Festelleinheit entspricht dabei der maximalen Kraft des Zylinders.

Befördert ein solcher Zylinder beispielsweise eine Last beim Ausfahren nach oben und der Operand für die Ausfahr-Bewegung wechselt auf den Status '0', dann behält der Zylinder seine Position. Erst wenn die Last zu gross ist, drückt diese die Kolbenstange wieder nach unten. Nachfolgend ist dies zu sehen:

Die innerhalb der Rubrik "Zylinder" vorhandenen Zylinder-Arten entstammen alle dem gleichen Zylinderobjekt. Diese sind nur entsprechend ihres Typs voreingestellt. Die Zylinder-Art kann dabei immer verändert werden. Dazu verändert man in der Eigenschaftsrubrik "Zylinder Bewegungseinstellungen" die Eigenschaft "Zylinder-Art".

Objekte können an der Kolbenstange eines Zylinders befestigt werden. Häufig wird dabei eine unlösbare Verbindung zu einem Körper verwendet.

Im folgende Video wird gezeigt, wie ein Behälter fest mit der Kolbenstange eines Zylinders verbunden wird.

Beispiel: Objekt an Kolbenstange eines Zylinders befestigen

In der Standareinstellung ist der Zylinderkörper statisch, d.h. dieser kann nicht bewegt werden. Dies ist allerdings veränderbar. Soll beispielsweise ein Zylinder an der Kolbenstange eines anderen Zylinders befestigt werden, dann kann man innerhalb der Eigenschaftsrubrik "Zylinderkörper Physikeinstellungen" die Eigenschaft "Physikal. Typ des Objekts" entsprechend anpassen.

Im nachfolgenden Video ist ein Beispiel zu sehen, bei dem an der Kolbenstange eines Zylinders ein weiterer Zylinder fest angefügt wird. Dabei kommt eine unlösbare Verbindung zum Einsatz.

Beispiel: Zylinder 1 wird an der Kolbenstange von Zylinder 2 fest angebracht

Die Zylinder aus der Zylinder-Rubrik wurden mit Hilfe des Verbindungselements "Verbindung für lineare Bewegung" realisiert. Findet man innerhalb der Zylinder-Rubrik kein passendes Objekt für seine Anwendung, dann kann man sich mit der "Verbindung für lineare Bewegung" selbst ein zylinderähnliches Objekt zusammenbauen. Dieses Verbindungselement wird weiter unten im Zusammenhang mit den Verbindungselementen genauer beschrieben.

Mit diesem Objekt können Förderbänder, Luftströmungen und ähnliches realisiert werden. Ein Förderelement beeinflusst förderelementabhängige Objekte so lange diese sich im Bereich des Förderelements befinden.

Ein Luftstrom beschreibt die Wirkungsweise des Förderelements am besten. Wenn sich ein Objekte im Einflussbereich des Förderlements befindet, dann wird das Objekt in die im Förderelement aktive Richtung abgelenkt. Im folgenden Beispiel ist dies zu erkennen. Ein kreisförmiges dynamisches Objekt fällt von oben in den Einflussbereich eines Förderelements. Mit Hilfe der Schalter rechts und links, kann die Bewegungsrichtung welche das Förderelement ausübt, eingeschaltet werden.

Man erkennt, wie das kreisförmige Objekte in die jeweilige Richtung abgelenkt wird. Ist keine Bewegungsrichtung im Förderelement aktiv, dann bleibt der Kreis unbeeinflusst.

Will man das Förderelement zur Realisierung eines Bandes verwenden, dann wird unterhalb des Förderelements ein statisches Physikobjekt platziert, welches ein dynamisches Objekt aufhält damit dieses im Einflussbereich des Förderlementes bleibt. Nachfolgend ist dies zu sehen:

Förderlemente können rotiert werden. Damit rotiert auch die Bewegungsrichtung. Dies ist im folgenden Beispiel zu sehen. Dabei ist das rechte Förderelement um 45° rotiert worden. Im Förderlement wurde die Bewegung nach rechts mit Hilfe der Konstanten '1' dauerhaft eingeschaltet. Somit wird jedes förderelementabhängige Objekt sofort beeinflusst und um 45° nach oben abgelenkt bzw. beschleunigt.

Dynamische Physik-Objekte bei denen die Eigenschaft "Objekt ist Förderelement-abhängig" aktiv ist, können von einem Förderelement beeinflusst werden. Ist diese Eigenschaft nicht selektiert, dann "spürt" das Objekt ein Förderelement nicht.

Zusätzlich kann mit Hilfe von Kollisionsgruppen eine Selektion vorgenommen werden, welche Objekte von welchem Förderelement beeinflusst werden. Beispielsweise bei überlappenden Förderelementen.

Im folgenden Beispiel befördert das blaue Förderelement nur Objekte der Kollisionsgruppe 1, während das rötliche Förderelement nur Objekte der Kollisionsgruppe 2 beeinflusst.

Erläuterungen zu Kollisionsgruppen sind im folgenden Abschnitt zu finden: Verwendung von Kollisionsgruppen

Nachfolgend einige Videos mit Beispielen in denen Förderelemente verwendet werden.

Das Flüssigkeitsobjekt wird klassisch eingesetzt, um Füllstände zu simulieren. Es bietet zahlreiche Zu- und Abflüsse, sowie Sensoren um den momentanen Füllstand zu erfassen.

Den maximalen Füllstand kann man im Bereich 100-65535 Inkremente einstellen.

Das Flüssigkeitsobjekt verfügt über drei Zuläufe und drei Abflüsse, an denen jeweils ein Operand oder eine Konstante angegeben werden kann. An den Zu- und Abflüssen werden Wortoperanden des Typs UInt16 erwartet. Da PLC-Lab mit Hilfe von Bereichsangaben sehr flexible Operandenangaben unterstützt, ist aber auch die Angabe von Bit-Operanden möglich.

Beispiel für die Angabe eines Bit-Operanden im Zulauf: 0-100 IM.M12.3

Diese Angabe bedeutet: Hat der Bit-Operand den Status '0', dann erfolgt ein Zulauf von 0 Inkrementen pro Zeiteinheit. Beim Status '1' ist ein Zulauf von 100 Inkrementen vorhanden.

Beispiel für die Angabe eines Wort-Operanden im Zulauf: IM.MW20

Diese Angabe bedeutet: Der Wert im MW20 bestimmt die Anzahl der Inkremente des Zulaufs pro Zeiteinheit.

Über den analogen Füllstandssensor kann der aktuelle Füllstand in Inkrementen ausgelesen werden.

Nachfolgend ein Beispiel, bei dem der aktuelle Füllstand in den Operanden IM.MW2 geschrieben und in einem Text-Label angezeigt wird. Der Zu- und Abfluss kann über Taster beeinflusst werden.

Zwei binäre Sensoren können auf beliebige Füllstände eingestellt werden. Der Erfassungsbereich wird dabei in Form einer Bereichsangabe angegeben.

Beispiel 1: Binärer Sensor

Der erste binäre Sensor soll bei einem Füllstand von 3000 bis 3500 Inkrementen ausgelöst werden.

Somit lautet die Angabe: 3000-3500 IM.M10.2

Beispiel 2: Binärer Sensor

Der zweite binäre Sensor soll bei einem Füllstand von 6000 bis 6200 Inkrementen ausgelöst werden.

Somit lautet die Angabe: 6000-6200 IM.M10.3

In der folgenden Anordnung sind die beiden Sensoren über LEDs dargestellt:

Tipp: Sollten mehr als zwei binäre Sensoren notwendig sein, so sind weitere binäre Sensoren mit Hilfe eines Rechner-Objekts realisierbar.

Im folgenden Bild wird der Bit-Operand IM.M10.1 auf den Status '1' gesetzt, wenn der Füllstand (abgelegt in IM.MW2 mit dem Symbol Fuellstand) im Bereich 1000 bis 1200 liegt. Als Funktionsart für das Rechner-Objekt ist dabei "In Bereich" zu selektieren.

Eine detaillierte Beschreibung des Rechner-Objekts finden Sie unter folgendem Link: Das Rechner-Objekt

Das Flüssigkeitsobjekt kann nicht nur zur Darstellung von Flüssigkeiten und den damit verbundenen Möglichkeiten verwendet werden. Durch die vielfältigen Einstellungsmöglichkeiten sind auch andere Anwendungen denkbar. So z.B. als Zähler.

Im folgenden Beispiel werden die herabfallenden Teile über einen Sensor erfasst und damit der Wert der Inkremente eines Flüssigkeitsobjekts erhöht. Zu diesem Zweck wurde die Eigenschaft "Zulauf Trigger" mit dem Operanden belegt, welcher über den Sensor beeinflusst wird. Steht an dem Operanden des Sensor ein pos. Flanke an, dann wird einmalig die Summe der Zuläufe des Flüssigkeitsobjekts erfasst und damit der Füllstand (also die Inkremente) des Flüssigkeitsobjekts erhöht. Dabei wurde am Zulauf 1 die Konstante "1" angegeben, somit erhöht sich der Wert bei jeder pos. Flanke um den Wert 1.

Der Operand des Reset-Tasters kann an der Eigenschaft "Abfluss Trigger" angegeben werden. Zusätzlich wird an einem der Abflüsse eine Konstante eingetragen, welche der max. Anzahl an Inkrementen des Flüssigkeitsobjekts entspricht. Dies hat zur Folge, dass bei Betätigung des Reset-Tasters die Summe der Abflüsse erfasst und der Wert vom aktuellen Füllstand des Objekts abgezogen wird. Im Beispiel bedeutet dies, dass der Füllstand auf jeden Fall 0 ist.

Nachfolgend einige Videos mit Beispielen in denen Flüssigkeiten verwendet werden.

In dieser Rubrik befinden sich Verbindungselemente mit denen z.B. lineare Bewegungen ähnlich wie Zylinder, Drehbewegungen, Radverbindungen usw. realisiert werden können. Verbindungselemente definieren immer die Beziehung zwischen zwei Physikobjekten. Diese beiden Objekte sind die Ankerobjekte der Verbindung.

Einige Verbindungen haben ein Master-Objekt und ein Slave-Objekt. Mit dem Zeichnen einer Verbindung gehen manche Einstellungen vom Master-Objekt auf das Slave-Objekt über. Wird eine Verbindung gezeichnet, dann ist das Start-Objekt bei dem das Zeichnen des Verbindungselements begonnen wird immer auch das Master-Objekt.

Um ein Verbindungselement an zwei Objekten anzubringen geht man wie folgt vor:

  1. Selektion des Verbindungselements
  2. Die Maus zum ersten Ankerpunkt innerhalb des Master-Objekts für die Verbindung bewegen, die linke Maustaste betätigen und halten.
  3. Die Maus zum zweiten Ankerpunkt innerhalb des Slave-Objekts bewegen und die Maustaste loslassen.

Nachfolgend sind diese Schritte am Beispiel einer "Verbindung für lineare Bewegung" zu sehen:

Die Verbindung für lineare Verbindungen wird beispielweise verwendet, um Zylinder zu realisieren.

Anbei das Prinzip-Symbol der Verbindung:

Beispiele für eine solche Verbindung sind:

  • Zylinder
  • Aufzüge
  • Hebebühnen
  • Schiebetüren
  • Vorschübe für Bohranlagen
  • Linearbewegungen von Greifern
  • Realisierung einer Waage

Im folgenden Bild sind zwei Objekte zu sehen, welche über eine "Verbindung für lineare Bewegung" verbunden sind. Das linke Objekt ist das Master-Objekt. Von diesem Objekt aus wird das zweite Objekt bewegt und zwar auf der Linie des Verbindungssymbols.

Wird das zweite Anker-Objekt (Slave) selektiert, dann erscheint zusätzlich ein Symbol, welches den Anschlag symbolisiert. Wird das Objekt rotiert, dann rotiert auch dieser mit, er bleibt also immer an der selben Seite des Objekts. Je nachdem wie eine Bewegung aussieht, kann es notwendig sein das Slave-Objekt zu rotieren, um den Anschlag an der korrekten Stelle zu haben.

Es gibt drei Möglichkeiten, die Länge der Bewegung anzupassen.

Erste Variante

Die erste Möglichkeit besteht darin, das Slave-Objekt zu selektieren und zu verschieben. Wird das Objekt über das momentane Ende der Bewegung hinaus bewegt, dann wird die Länge der Bewegung angepasst.

Bei dieser Methode kann die Länge allerdings nicht verkürzt werden.

Zweite Variante

Bei der zweiten Variante wird das Symbol der Verbindung selektiert und danach die Maus ans Ende bewegt. Hier klickt man nun den Thumb an und hält die linke Maus-Taste betätigt. Daraufhin ändert sich das Aussehen des Verbindungssysmbols und es wird die momentane Länge in Pixel angezeigt. Durch die Maus kann nun der Verfahrweg verlängert oder verkürzt werden. Das Verkürzen ist nur so lange möglich, wie sich die Anschlags-Seite des Slave-Objekts noch innerhalb des Verfahrweges befindet.

Dritte Variante

Zuletzt sei noch die Möglichkeit genannt, die Länge innerhalb der Eigenschaften zu verändern. Dazu wird die Verbindung selektiert und dann die Eigenschaft "Länge Linearbewegung" verändert.

Es gibt drei Möglichkeiten, die Steigung der Bewegung anzupassen.

Erste Variante

Die erste Möglichkeit besteht darin, das Slave-Objekt zu selektieren und zu verschieben. Die Linearbewegung wird mit dem Slave-Objekt mit verschoben. Gleiches gilt, wenn man das Master-Objekt in seiner Lage verändert.

Zweite Variante

Bei der zweiten Variante wird das Symbol der Verbindung mit einem Doppelklick selektiert oder ein Doppelklick auf das bereits selektierte Symbol ausgeführt. An den Selektion-Thumbs ist zu erkennen, dass der Rotationsmodus aktiv ist.

In diesem Modus kann nun die Steigung verändert werden. Das Slave-Objekt wird dabei in seiner Position nachgeführt.

Dritte Variante

Die dritte Variante besteht darin, die Steigung innerhalb der Eigenschaften zu verändern. Dazu wird die Verbindung selektiert und dann die Eigenschaft "Rotation" verändert.

Die lineare Verbindung verfügt über einen Antrieb, der mit Hilfe der Eigenschaft "Motor" innerhalb der Eigenschaftsrubrik "Physik-Einstellungen->Allgemein->Motor Einstellungen" einzustellen ist. Die Geschwindigkeit des Motors (Angabe in m/s) kann über einen Operanden vorgegeben werden, dabei wird der Wert aus dem Operanden gelesen. Somit ist auch die Angabe einer Konstanten möglich, wenn die Geschwindigkeit nicht variabel ausgelegt sein muss.

Mit der Eigenschaft "Geschwindigkeits-Divisor" kann man die Vorgabe der Geschwindigkeit durch einen Operanden für die Simulation anpassen, ohne dass der Wert des Oberanden verändert werden muss. Dabei wird die im Operanden angegebene Geschwindigkeit durch den in "Geschwindigkeits-Divisor" vorhandenen Wert dividiert. Dies kann z.B. notwendig sein, wenn die Bewegung in der Realität zu schnell ist und somit in der Simulation nicht nachgestellt werden kann.

Die Bewegung des Slave-Objekts wird jeweils über Operanden gesteuert. Da der Wert aus dem Operanden gelesen wird, kann für eine permanente Bewegung auch die Konstante '1' angegeben werden.

Die Verbindung besitzt zahlreiche Sensoren. So können die Endlagen ausgewertet werden, die Position des Slave-Objekts als analoger Wert uvm.. Beim Sensor für die Position kann die Angabe eines Skalierungsbereichs sinnvoll sein, um Werte wie in der realen Anlage zu erzeugen. Unabhängig davon, ob die Länge der Bewegung mit der Länge der realen Anlage übereinstimmt.

Beispiel

In einer Anlage ist eine lineare Bewegung mit einer Länge von 4m vorhanden. Der Positionssensor liefert dabei Werte von 0 bis 4000. Dies soll in der virtuellen Anlage von PLC-Lab simuliert werden. Dazu wird an der Eigenschaft "Sensor Position in Pixel" folgende Angabe getätigt: 0-4000 IM.MW2

Dies hat zur Folge, dass die Position des Slave-Objekts auf den Bereich 0-4000 skaliert und dann in den Wort-Operanden MW2 geschrieben wird.

Durch die Skalierung ist die Länge der linearen Bewegung innerhalb der Simulation nebensächlich. Man erhält die gleichen Sensordaten wie in der realen Anlage.

Wie der Name der Eigenschaft es vermuten lässt, kann man durch Aktivierung erreichen, dass das Master-Objekt und das Slave-Objekt miteinander kollidieren. In der folgende Darstellung wurde die Eigenschaft selektiert:

Nun die gleiche Anordnung, wobei die beiden nicht kollidieren, die Eigenschaft also nicht selektiert ist:

Hier ist es so, dass das Slave-Objekt nicht vom Master-Objekt aufgehalten wird.

Wenn die beiden Ankerobjekte kollidieren und trotzdem der Nullpunkt der linearen Bewegung erreicht werden soll, dann erreicht man dies oftmals durch Rotation des Masterobjekts. In der folgenden Darstellung ist dies zu sehen. Das Master-Objekt wird um 180° rotiert, damit sich der Startpunkt der Bewegung in Richtung der Position des Slave-Objekts befindet.

Es kommt häufig vor, dass man eine Anordnung bestehend aus zwei Objekten, welche über eine Verbindung für lineare Bewegung verknüpft sind, spiegelverkehrt benötigt. Beispiel ist der linke und rechte Teil einer Schiebetür. In solchen Fällen werden die beiden verknüpften Objeke zu einer Zeichengruppe zusammengefasst, diese kopiert und anschliessend rotiert. Im folgenden Video ist dies zu sehen:

Beispiel wie Objekte mit Verbindung für lineare Bewegung rotiert werden können

Greifer-Anordnungen bestehen oftmals aus einer horizontalen und vertikalen Bewegung. In einem solchen Fall ist das Slave-Objekt der horizontalen Bewegung auch das Master-Objekt der vertikalen Bewegung des Greifers. Nachfolgend ein Video, welches den Aufbau einer solchen Greifer-Anordnung zeigt:

Greifer mit Magnet

Wird der Greifer nicht über einen Magneten realisiert, sondern mit Greifarmen, dann werden am Slave-Objekt der vertikalen Bewegung weitere Verbindungen z.B. für Drehbewegungen angebracht. In diesem Fall ist es wichtig, dass durch Erhöhung der Dichte des Slave-Objekts, dessen Masse vergrößert wird. Anderenfalls wird die Anordnung instabil.

Im folgenden Video ist der Aufbau eines Greifers mit einer Greiferzange zu sehen. Man beachte die explizite Einstellung der Dichte zum Zeitpunkt 6.07 Minuten innerhalb des Videos:

Greifer mit Greiferzange

Das Slave-Objekt ist der dynamische Teil der linearen Bewegung. Die Zeichenposition dieses Objekts ist auch die Startposition beim Start der Simulation. Möchte man die Zeichenposition des Slave-Objekts verändern, dann führt man die Veränderung am Besten mit Hilfe der Pfeil-Tasten auf der Tastatur aus. Dazu wird das Objekt selektiert und dann über die Pfeil-Tasten dessen Position verändert. Wenn man die Anfangsposition der linearen Bewegung erreicht hat und sich daraufhin über diese hinaus bewegt, dann ändert sich die Richtung der linearen Bewegung. Man sollte dann einfach um eine Position zurück gehen (also die Pfeil-Taste in die entgegengesetzte Richtung betätigen), dann hat man den Nullpunkt der linearen Bewegung erreicht. Nachfolgend ist dies zu sehen:

Die Pfeil-Tasten können einen Objekt nur in der Vertikalen oder Horizontalen verschieben. Wenn die lineare Bewegung eine bestimmte Steigung besitzt, dann ist es sehr schwierig das Slave-Objekt zu verschieben, ohne die Steigung der Bewegung zu verändern. In einem solchen Fall sollte das Slave-Objekt mit einer Schablone belegt werden, die dafür sorgt, dass eine Verschiebung nur in dem eingestellten Winkel der linearen Bewegung möglich ist. Folgende Schritte sind notwendig um Objekte mit einer solchen Schablone zu versehen:

  1. Selektion aller Objekte, welche mit der Schablone belegt werden sollen. Um mehrere Objekte zu selektieren, betätigt man die Umschalt-Taste und hält diese betätigt. Dann werden die einzelnen Objekte mit der Maus angeklickt. Zuletzt wird das Symbol der Verbindung selektiert.
  2. Nun kann die Umschalt-Taste losgelassen werden. Innerhalb der Liste der Aktionen wird die Aktion "Schablone setzen" ausgewählt.
  3. Im Statusfeld von PLC-Lab erscheint die Meldung, dass die Schablone gesetzt wurde.
  4. Nun können die Objekte nur noch entlang einer Linie in der Position verändert werden. Dies gilt sowohl für Änderungen mit der Maus, als auch mit den Pfeil-Tasten auf der Tastatur.

Möchte man die Objekte wieder frei positionieren, dann selektiert man diese und wählt die Aktion "Schablone rücksetzen".

Im folgenden Video ist das Setzen und Rücksetzen einer Schablone zu sehen:

Beispiel für die Verwendung der Schablone

Die Verbindung für lineare Bewegung besitzt den Sensor "Kraft in Newton". An diesem Sensor kann ein Operand angegeben werden. In diesen Operanden wird der aktuelle Wert der Kraft in Newton geschrieben, welche die Verbindung benötigt, um die momentane Position zu halten bzw. eine etwaige Bewegung zu vollziehen. Wird die lineare Verbindung z.B. vertikal angeordnet und der Slave-Anker bewegt sich nicht, dann wird in den Sensor der Wert der Kraft geschrieben, die für das Halten dieser Position notwendig ist. Nachfolgend ist eine Verbindung für lineare Bewegung vertikal angeordnet:

Das zweite Anker-Objekt befindet sich ca. in der Mitte der Verbindung. Der Sensor "Kraft in N" wurde mit einem Wortoperanden belegt. Dieser Wort-Operand wird auch an einem Tacho-Objekt angegeben. Die lineare Verbindung vollzieht keine Bewegung, d.h. an den beiden Eigenschaften "Operand Bewegung zum Minimum" und "Operand Bewegung zum Maximum" ist jeweils die Konstante 0 angegeben.

Beim Start der Simulation zeigt sich folgendes Bild:

Das Tacho-Objekt zeigt an, dass eine Kraft von 2 Newton benötigt wird, um den Anker 2 an seiner Position zu halten.

Im nächsten Schritt sollen nun Rechtecke identischer Größe mit unterschiedlicher Dichte (und somit unterschiedlichen Massen) auf dem zweiten Anker-Objekt abgelegt werden.

Durch das Ablegen der Rechtecke auf dem zweiten Anker, benötigt die lineare Verbindung eine höhere Kraft, um die Postion zu halten. Diese Kraft wird jeweils im Tacho-Objekt angezeigt. Je nach Masse des abgelegten Objekts ist diese Kraft unterschiedlich und somit ein Maß für dessen Gewicht.

Vollzieht das Slave-Objekt eine Bewegung und trifft auf die Begrenzung der linearen Verbindung, dann steigt die Kraft an, bis die max. Kraft der linearen Verbindung erreicht ist.

Die Verbindung für Drehbewegung bzw. Drehgelenk wird unter anderem zur Realisierung von folgenden Anlagenteilen verwendet:

  • Drehgelenken
  • Lüfter mit variabler Geschwindigkeit
  • Drehbewegung mit Lagesensor
  • Kippvorrichtungen
  • Drehtüren
  • Variable Rampen
  • Schranken

Der Drehpunkt der Verbindung ist frei einstellbar.

Anbei das Prinzip-Symbol der Verbindung:

Im folgenden Bild sind zwei Objekte zu sehen, welche über eine "Verbindung für Drehbewegung bzw. Drehgelenk" verbunden sind. Das untere Objekt ist das Master-Objekt, welches in den meisten Fällen ein feststehendes Objekt sein wird. Vom Master-Objekt aus führt eine durchgezogene Linie zum Drehpunkt. Dieser ist über einen farbigen Kreis mit einem Kreuz symbolisiert. Die Verbindungslinien zum Slave-Objekt ist punktiert dargestellt. Das Slave-Objekt ist das Objekt, welches um den Drehpunkt rotiert.

Der Drehpunkt der Verbindung ist frei positionierbar. Dazu wird der Kreis welcher den Drehpunkt symbolisiert selektiert und mit der Maus verschoben. Im nachfolgenden Beispiel wird der Drehpunkt in der Mitte des Slave-Objekts platziert.

Nun ein Beispiel, bei dem der Drehpunkt außerhalb des Slave-Objekts platziert wird.

Die Beispiele zeigen, dass durch die freie Platzierung des Drehpunkts sehr unterschiedliche Drehbewegungen realisiert werden können.

Die Verbindung verfügt über einen Antrieb, der mit Hilfe der Eigenschaft "Motor" innerhalb der Eigenschaftsrubrik "Physik-Einstellungen->Allgemein->Motor Einstellungen" einzustellen ist. Die Geschwindigkeit des Motors (Angabe in U/min) kann über einen Operanden vorgegeben werden, dabei wird der Wert aus dem Operanden gelesen. Somit ist auch die Angabe einer Konstanten möglich, wenn die Geschwindigkeit nicht variabel ausgelegt sein muss.

Mit der Eigenschaft "Geschwindigkeits-Divisor" kann man die Vorgabe der Geschwindigkeit durch einen Operanden für die Simulation anpassen, ohne dass der Wert des Oberanden verändert werden muss. Dabei wird die im Operanden angegebene Geschwindigkeit durch den in "Geschwindigkeits-Divisor" vorhandenen Wert dividiert. Dies kann z.B. notwendig sein, wenn die Bewegung in der Realität zu schnell ist und somit in der Simulation nicht nachgestellt werden kann.

Die Rechts-/Links-Drehung des Slave-Objekts wird jeweils über Operanden gesteuert. Da der Wert aus dem jeweiligen Operanden gelesen wird, kann für eine permanente Drehung in die jeweilige Richtung auch die Konstante '1' angegeben werden. Dabei ist allerdings zu beachten, dass immer nur eine Drehrichtung aktiv sein darf. Sind beide Drehrichtungen aktiv, dann erfolgt keine Drehbewegung.

Die Verbindung besitzt zahlreiche Sensoren. So kann die Position des Slave-Objekts als analoger Wert erfasst oder auch die Geschwindigkeit der Drehbewegung ausgelesen werden. Wird die Drehbewegung begrenzt, dann ist auch die Angabe von Endlagen-Sensoren möglich.

Innerhalb der Eigenschaftsrubrik "Physik-Einstellungen->Allgemein->Endschalter" ist die Eigenschaft "Begrenzung aktivieren" vorhanden. Diese kann verwendet werden, wenn man die Drehbewegung auf einen bestimmten Teilbereich begrenzen möchte. Beispiele sind Kippvorgänge, Schranken, Drehtüren. Bevor man diese Option aktivieren kann, muss eine obere bzw. untere Begrenzung in Grad angegeben werden.

Die zulässigen Werte für die jeweilige Grenzen sind:

  • Untere Begrenzung: -180° bis 0°
  • Obere Begrenzung: 0° bis 180°

Nur wenn eine Begrenzung aktiv ist, können auch die Endschalter am Minimum oder Maximum verwendet werden.

Nachfolgend ein Beispiel, bei dem die Drehbewegung auf -90° bis 0° begrenzt ist. Die Endschalter an den Grenzen wurden mit Operanden versehen, welche den Status der Lampen beeinflussen.

Die Begrenzungen sind immer relativ zur Lage des Slave-Objekts und des Drehpunkts. Dabei ist die Drehbewegung entgegen des Uhrzeigersinns negativ, mit dem Uhrzeigersinn positiv. Im obigen Beispiel wurde deshalb als untere Grenze -90° angegeben. Da die obere Grenze mit 0° definiert ist, kann das Slave-Objekt vom Startpunkt aus keine weitere Drehung nach rechts ausführen.

Nachfolgend wurde die obere Grenze auf den Wert 45° verändert.

Dies hat zur Folge, dass in der Ausgangsstellung der Endschalter an der oberen Begrenzung nicht betätigt ist. Des Weiteren kann eine Drehbewegung nach rechts (also im Uhrzeigersinn) bis 45° ausgeführt werden. Dann wird auch die Betätigung des Endschalters an der oberen Grenze (45°) durch das Leuchten der Lampe signalisiert.

Normalerweise liefert der Sensor für die Position der Drehbewegung einen Wert von 0 bis 360. Hier kann die Angabe eines Skalierungsbereichs sinnvoll sein, um Werte wie in der realen Anlage zu erzeugen.

Beispiel

In einer Anlage liefert ein absoluter Winkelgeber einen analogen Wert von 0..10V. Der Winkelgeber ist an einem analogen Kanal einer S7-Analogbaugruppe von Siemens angeschlossen. Somit wird der analoge Wert digitalisiert und liefert die digitalen Wert 0 bis 27648. Dies soll in der virtuellen Anlage von PLC-Lab simuliert werden.

Dazu wird an der Eigenschaft "Sensor Position in Grad" folgende Angabe getätigt: 0-27648 IM.MW2

Dies hat zur Folge, dass die Position der Drehbewegung auf den Bereich 0 bis 27648 skaliert und anschließend in den Wort-Operanden MW2 geschrieben wird.

Mit Hilfe der Skalierung kann das identische Signal erzeugt werden, wie in der realen Anlage.

Wie der Name der Eigenschaft es vermuten lässt, kann man durch Aktivierung erreichen, dass das Master-Objekt und das Slave-Objekt miteinander kollidieren. Ist die Option nicht selektiert, dann kollidieren die beiden Objekte nicht miteinander, dies ist insbesondere dann notwendig, wenn sich das Slave-Objekt innerhalb des Master-Objekts befindet.

Nachfolgend finden Sie Links zu Beispiel-Videos, bei denen eine Verbindung für Drehbewegung bzw. Drehgelenk zum Einsatz kommt.

Die Verbindung mit konstanter Distanz wird immer dann verwendet, wenn zwei Objekte über eine Stange miteinander zu verbinden sind. Diese Verbindung kommt auch häufig zum Einsatz, um Mutterobjekte die über einen Creator vervielfältigt werden, an einer bestimmten Stelle zu halten. Auch für die Umsetzung eines Pendels kann diese Verbindung verwendet werden.

Anbei das Prinzip-Symbol der Verbindung:

Im folgenden Bild sind zwei Objekte über eine Verbindung mit konstanter Distanz verbunden. Die verbundenen Anker-Objekte sind dabei gleichwertig, d.h. bei dieser Verbindungsart ist kein Master- bzw. Slave-Objekt vorhanden. Die Verbindung selbst wird über eine schwarze Linie symbolisiert.

Wird diese Anordnung simuliert, dann kann man sehr gut die Eigenschaft dieser Verbindung erkennen.

Der Ankerpunkt der Verbindung am jeweiligen Anker-Objekt ist variabel. Er sollte sich aber innerhalb des jeweiligen Anker-Objekts befinden. Um einen Ankerpunkt zu verändern selektiert man zunächst die Linie welche die Verbindung symbolisiert und klickt dann mit der Maus auf einen der beiden Selektions-Thumbs um diesen zu verschieben. Dabei erscheinen an dem jeweiligen Anker-Objekt Standard-Ankerpunkte, an denen angedockt werden kann. Es sind aber auch Ankerpunkte an anderen Stellen innerhalb des Objekts möglich.

Nachfolgend ist die Selektion eines neuen Ankerpunktes zu sehen:

Theoretisch kann auch ein Ankerpunkt außerhalb eines Anker-Objekts selektiert werden. Das Verhalten der Verbindung ist dann allerdings nicht mehr ganz eindeutig und die physikalische Simulation unter Umständen instabil.

Eingangs wurde erwähnt, dass die Verbindung mit konstanter Distanz vergleichbar ist mit einer Stange, die zwei Objekte miteinander verbindet. Mit den beiden Eigenschaften "Steifigkeit" und "Dämpfung" kann der Charakter der Verbindung etwas verändert werden.

Die Eigenschaft "Steifigkeit" kann die Werte 1 bis 30 annehmen. Dabei bedeutet 1 = soft und 30 = starr. Der Standardwert ist 29. Wählt man hier den Wert 1, dann wird die Verbindungs-Stange in eine Verbindungs-Kette gewandelt, allerdings mit relativ großen Kettengliedern.

Die Eigenschaft "Dämpfung" kann die Werte 0.0 bis 1.0 annehmen. Der Standardwert ist 0.9. Damit kann der Charakter der Verbindung zwischen Metall und Hart-Gummi variiert werden.

Nachfolgend finden Sie Links zu Beispiel-Videos, bei denen eine Verbindung mit konstanter Distanz zum Einsatz kommt.

Die Verbindung zu einem Körper wird verwendet, wenn zwei Objekte unlösbar miteinander verbunden werden sollen. Diese Verbindung kommt auch zum Einsatz, wenn ein oder mehrere Objekte an der Kolbenstange eines Zylinders anzubringen sind.

Zwischen den beiden über die Verbindung verbundenen Objekte können sich auch Lücken befinden. Die Lücken sind für andere Objekte durchlässig, ähnlich wie bei einem Sieb.

Anbei das Prinzip-Symbol der Verbindung:

Im folgenden Bild sind zwei Objekte über eine Verbindung zu einem Körper verbunden. Das linke Objekt ist das Master-Objekt. Das Zeichnen der Verbindung wurde bei diesem Objekt begonnen. Rechts befindet sich das Slave-Objekt (Kreis). Man erkennt, dass das Symbol der Verbindung auf der Seite zum Master-Objekt mit einer durchgezogenen Linie dargestellt ist, während die Linie zum Slave-Objekt über Punkte realisiert wird.

Wird die Verbindung erzeugt, dann werden einige Eigenschaften des Master-Objekts vom Slave-Objekt übernommen. Man sollte also dem "dominanteren" Objekt die Rolle des Master-Objekts zukommen lassen und somit bei diesem mit dem Zeichnen der Verbindung beginnen. Wird z.B. an die Kolbenstange eines Zylinders ein anderes Objekt befestigt, dann sollte die Kolbenstange das Master-Objekt sein.

In vielen Fällen hat aber die Rollenverteilung keinen Einfluss auf die Funktion der Verbindung.

Innerhalb des Aktions-Fensters von PLC-Lab befindet sich die Rubrik "Körper-Gruppe". Darin findet man die Aktion "Körper bilden". Diese bildet aus den momentan selektierten Objekten einen Körper. Dieser wird mit Hilfe einer Körpergruppe symbolisiert, welche mit einem gestrichelt dargestellten Rechteck umrandet ist. Die Umrandung unterscheidet sich dabei gegenüber einer Zeichen-Gruppe.

Somit hat die Aktion "Köper bilden" die gleiche Wirkung, wie das Verbinden zu einem Körper. Es stellt sich also die Frage, wann die Verbindung und wann die Aktion einzusetzen ist.

Vereinfacht kann man sagen, dass wenn mehr als zwei Objekte zu einem Körper zusammengefasst werden sollen, die Aktion "Körper bilden" einzusetzen ist. Soll dann beispielsweise eine solche Körper-Gruppe mit einem anderen Objekt fest verbunden werden, dann kann wieder die Verbindung zu einem Körper zum Einsatz kommen.

Das folgende Video zeigt dies sehr anschaulich. Dabei wird ein Behälter mit Hilfe einer Körper-Gruppe gebaut und dieser dann mit einer Verbindung zu einem Körper an der Kolbenstange des Zylinders befestigt.

Behälter an die Kolbenstange eines Zylinders befestigen

Grundsätzlich könnte man den Behälter auch mit Hilfe von mehreren Verbindungen zu einem Körper realisieren. Die Funktion wäre auch damit gegeben.

Ein weiterer Vorteil der Körper-Gruppe insbesondere bei zahlreichen Objekten ist, dass sich diese wie eine Zeichen-Gruppe verhält. Dies bedeutet, man kann die Gruppe z.B. vergrößern und verkleinern wobei die relativen Position der Objekte zueinander erhalten bleiben. Wird ein Objekt innerhalb der Gruppe mit der Maus kopiert, dann ist das neu erzeugte Objekt ebenfalls der Gruppe zugehörig und somit Teil des Körpers.

Ein Nachteil der Körper-Gruppe ergibt sich, wenn Objekte die nicht dem Körper zugehörig sind, innerhalb der Gruppe angeordnet werden. Dann ist optisch nicht ersichtlich, dass diese Objekte eigentlich dem Körper nicht zugehörig sind. Hier wäre dann die Verbindung zu einem Körper von Vorteil, da die Symbole der Verbindung die Zugehörigkeit optisch kenntlich machen.

Körpergruppen werden unter dem folgenden Link genauer erläutert: Verwendung von Körper-Gruppen

Eingangs wurde bereits erwähnt, dass sich zwischen Objekten die zu einem Körper zusammengefasst werden auch Lücken befinden können. Diese Tatsache erhöht nochmals die Flexibilität beim Bau von virtuellen Anlagen.

Beispiel

Im folgenden Beispiel ist eine Anordnung zu sehen, bei der an ein rotierendes Kreis-Objekt ein Nocken angebracht ist, welcher einen Sensor betätigt. Dabei wurde der Sensor nicht direkt an dem Kreis-Objekt platziert.

Die Simulation der Anordnung zeigt folgendes Verhalten:

Man erkennt, dass der Nocken mit dem Kreis-Objekt rotiert. Die Lücke zwischen dem Kreis-Objekt und dem Nocken hat dabei keinen Einfluss auf die Verbindung.

Beispiel

Im zweiten Beispiel wurde eine Wippe aus einzelnen Rechtecken gebaut. Die Rechtecke wurden mit Hilfe einer Körper-Gruppe zu einem Körper zusammengefasst. Der Boden der Wippe gleicht einem Sieb, hat also Lücken. Auf der Wippe befinden Sie Kreis-Objekt, welche von der Größe her durch die Lücken des Siebs fallen. Die Wippe kann über Taster bewegt werden.

Man erkennt, dass die Kreis-Objekte durch die Lücken hindurch fallen. Trotz der Lücken bilden die Rechtecke aber einen Körper.

Fazit

Objekte die man zu einem Körper zusammenfasst können auch räumlich voneinander getrennt sein. Trotz dieser Trennung reagieren diese so, als ob eine Verbindung vorhanden ist. Diese "virtuelle" Verbindung beeinflusst aber keine anderen Objekte.

Eine Schweiß-Verbindung kommt zum Einsatz, wenn zwei Objekte miteinander zu verbinden sind, diese Verbindung aber im Gegensatz zu der "Verbindung zu einem Körper" wieder gelöst werden kann.

Zu diesem Zweck kann bei einer Schweiß-Verbindung eine Kraft bzw. Festigkeit angegeben werden. Wirkt auf die Verbindung eine höhere Kraft ein, dann "bricht" die Verbindung und besteht fortan nicht mehr.

Anbei das Prinzip-Symbol der Verbindung:

Im folgenden Bild sind zwei Objekte über eine Schweiß-Verbindung verbunden. Bei einer Schweiß-Verbindung ist kein Master- oder Slave-Objekt vorhanden. Die Verbindung wird über eine durchgezogene Linie mit einem Kreis in der Mitte symbolisiert.

Die Enden der Schweiß-Verbindung sind die Befestigungspunkte am jeweiligen Anker-Objekt. Wird die Simulation gestartet, dann wirkt die Kraft der Schweiß-Verbindung an diesen Fixier-Punkten. Für die obige Darstellung bedeutet dies, dass die beiden Objekte an diesen Punkten zusammengefügt werden. Das nachfolgende Bild zeigt dies.

Möchte man die Fixierpunkte der Ankerobjekte verändern dann geht man wie folgt vor:

  1. Selektion der Schweiß-Verbindung.
  2. Den Thumb des Anker-Objekts mit der Maus verschieben, dessen Fixierpunkt man verändern möchte.

Nachfolgend ist dies zu sehen.

Sobald man mit der Maus den Thumb "anfasst" werden beim jeweiligen Anker-Objekt die Standardpunkte sichtbar um an diesen anzudocken. Diese müssen allerdings nicht verwendet werden. Die Platzierung ist frei wählbar. Wird die Simulation nach der obigen Selektion des Fixierpunkts eingeschaltet, dann zeigt sich folgendes Verhalten:

Der Eckpunkt rechts unten ist nun der Punkt, an dem die Kraft der Schweiß-Verbindung wirkt.

Beispiel

Im Beispiel ist die Schweiß-Verbindung wie folgt platziert:

Dabei wurde eingestellt, dass die beiden Anker-Objekte nicht kollidieren. Beim Einschalten der Simulation zeigt sich folgendes verhalten:

Die Kraft der Schweiß-Verbindung wirkt am jeweiligen Mittelpunkt der Anker-Objekte und schiebt diese zusammen. Es sei nochmals erwähnt, dass dieses Verhalten nur möglich ist, wenn die Anker-Objekte nicht kollidieren.

Beispiel Im nächsten Beispiel befinden sich die Fixierpunkte außerhalb der Anker-Objekte.

Somit entsteht beim Start der Simulation eine Lücke zwischen den beiden.

Die Anker-Objekte sind aber trotzdem über die Schweiß-Verbindung miteinander verbunden.

Eine Schweiß-Verbindung kann "zerstört" werden bzw. "brechen", wenn eine Kraft auf diese einwirkt, die größer ist als die max. eingestellte Kraft der Verbindung. Um die Schweiß-Verbindung lösbar zu machen, müssen folgende Eigenschaften eingestellt werden:

  1. Selektion der Eigenschaft "Verbindung kann brechen" innerhalb der Rubrik "Physik-Einstellungen->Allgemein".
  2. Einstellung der max. Kraft in der Eigenschaft "Max. Kraft bevor die Verbindung bricht" innerhalb der Rubrik "Physik-Einstellungen->Allgemein".

Beispiel

Im nachfolgend dargestellten Beispiel wurde eingestellt, dass die Schweiß-Verbindung bereits bei einer max. Kraft von 10N bricht. Die so verbundenen Anker-Objekte fallen von oben herab auf ein spitzes Objekt. Die dabei auftretende Kraft lässt die Schweiß-Verbindung brechen. Somit werden die beiden Anker-Objekte voneinander gelöst.

Oben wurde gezeigt, dass eine Schweiß-Verbindung so eingestellt werden kann, dass diese bricht. Dabei muss die auf die Verbindung einwirkende Kraft größer oder gleich der eingestellten max. Kraft sein.

Bei den geometrischen Objekten (Rechteck, Ellipse, Dreieck) ist die Rubrik "Schweiß-Verbindung" vorhanden. In dieser Rubrik befinden sich zwei Eigenschaften.

Diese Eigenschaft erwartet einen Bit-Operanden oder aber einen Operanden mit einer Bereichsangabe (siehe auch Angabe eines Bereichs zusätzlich zum Operanden). Da der Wert aus dem Operanden gelesen wird, kann auch die Kostante '1' angegeben werden. Damit ist dann die Funktion der Eigenschaft immer aktiv.

Ist die Eigenschaft bei einem Physik-Objekt aktiv und kollidiert dieses Objekt mit zwei anderen Physik-Objekten, dann werden diese an der Kollisionstelle verschweißt.

Beispiel

Im folgenden Beispiel sollen zwei dynamische Rechtecke mit Hilfe eines Zylinders verschweißt werden. Dazu wird an der Zylinderstange des Zylinders ein dynamisches Rechteck angebracht (mit einer unlösbaren Verbindung) bei dem die Eigenschaft "Operand Schweiß-Verbindung herstellen" mit der Konstanten '1' belegt wurde. Somit ist die Eigenschaft dauerhaft aktiv.

Der Zylinder kann mit Hilfe eines Tasters nach unten bewegt werden. In der unteren Endlage des Zylinders berührt das Schweiß-Objekt die beiden zu verschweißenden Rechtecke. Nachfolgend ist die Wirkunsgweise zu sehen.

Zunächst sind die beiden Rechtecke noch unabhängig voneinander. Erst nachdem der Zylinder seine untere Endlage erreicht und somit das Objekt an der Zylinderstange den Schweiß-Vorgang ausgeführt hat, sind die beiden Rechtecke miteinander verbunden.

Diese Eigenschaft erwartet einen Bit-Operanden oder aber einen Operanden mit einer Bereichsangabe (siehe auch Angabe eines Bereichs zusätzlich zum Operanden). Da der Wert aus dem Operanden gelesen wird, kann auch die Kostante '1' angegeben werden. Damit ist dann die Funktion der Eigenschaft immer aktiv.

Ist die Eigenschaft bei einem Physik-Objekt aktiv und kollidiert dieses Objekt mit zwei anderen Physik-Objekten, welche mit Hilfe der Eigenschaft "Operand Schweiß-Verbindung herstellen" miteinander verbunden wurden, dann werden diese wieder voneinander gelöst.

Beispiel

Im folgenden Beispiel wird eine ähnliche Anordnung verwendet wie beim Beispiel für die Eigenschaft "Operand Schweiß-Verbindung herstellen". Allerdings wird das Objekt an der Kolbenstange des Zylinders so eingestellt, dass das Verschweißen und das Lösen einer Verbindung umgeschaltet werden kann.

Es ist zu sehen, wie die beiden Rechtecke zunächst miteinander verschweißt werden. Anschließend wird die Funktion des Objekts an der Kolbenstange von "Schweißen" auf "Lösen" umgeschaltet. Nachdem sich der Zylinder nach unten bewegt hat, sind die beiden Rechtecke wieder voneinander gelöst worden. Die Schweiß-Verbindung wurde somit beseitigt.

Anmerkung: Es können keine Schweiß-Verbindungen gelöst werden, welche zeichnerisch über eine Schweiß-Verbindung festgelegt wurden. Ausschließlich die über die Eigenschaft "Operand Schweiß-Verbindung herstellen" erzeugten Verbindungen können über "Operand Schweiß-Verbindung lösen" wieder beseitigt werden.

Nachfolgend der Link auf ein Video, welches die Verwendung der beiden Eigenschaften zum Herstellen und Lösen einer Schweiß-Verbindung veranschaulicht.

Wie der Name es vermuten lässt, wird diese Verbindung vornehmlich eingesetzt, wenn man eine Rad-Verbindung mit einem Stoßdämpfer benötigt. Der Drehpunkt der Verbindung kann innerhalb der Grenzen des Symbols der Verbindung verändert werden.

Anbei das Prinzip-Symbol der Verbindung:

Wird die Verbindung erzeugt, dann muss mit dem Objekt begonnen werden, welches den feststehenden Teil der Rad-Verbindung darstellt. Das zweite Anker-Objekt ist das rotierende Slave-Objekt.

Im folgenden Bild sind zwei Objekte zu sehen, welche über eine "Rad-Verbindung" verbunden sind. Das untere Objekt ist das Master-Objekt, welches in vielen Fällen ein feststehendes Objekt sein wird. Vom Master-Objekt aus führt eine etwas breitere durchgezogene Linie bis zur Mitte des Verbindungssysmbols. Ebenfalls von der Mitte des Verbindungssymbols aus, führt dann eine etwas dünnere Linie zum Slave-Objekt. Der Kreis zeigt den Drehpunkt an. Das Slave-Objekt ist das Objekt, welches um diesen Drehpunkt rotiert.

Der Drehpunkt der Verbindung ist veränderbar. Dazu wird das Symbol der Verbindung selektiert und mit der Maus der Kreis bzw. dessen Thumb verschoben. Im nachfolgenden Beispiel wird der Drehpunkt in der Mitte des Slave-Objekts platziert.

Nun ein Beispiel, bei dem der Drehpunkt außerhalb des Slave-Objekts platziert wird.

Die Beispiele zeigen, dass durch das Verschieben des Drehpunkts sehr unterschiedliche Drehbewegungen realisiert werden können.

Die Verbindung verfügt über einen Antrieb, der mit Hilfe der Eigenschaft "Motor" innerhalb der Eigenschaftsrubrik "Physik-Einstellungen->Allgemein->Motor Einstellungen" einzustellen ist. Die Geschwindigkeit des Motors (Angabe in U/min) kann über einen Operanden vorgegeben werden, dabei wird der Wert aus dem Operanden gelesen. Somit ist auch die Angabe einer Konstanten möglich, wenn die Geschwindigkeit nicht variabel ausgelegt sein muss.

Mit der Eigenschaft "Geschwindigkeits-Divisor" kann man die Vorgabe der Geschwindigkeit durch einen Operanden für die Simulation anpassen, ohne dass der Wert des Oberanden verändert werden muss. Dabei wird die im Operanden angegebene Geschwindigkeit durch den in "Geschwindigkeits-Divisor" vorhandenen Wert dividiert. Dies kann z.B. notwendig sein, wenn die Bewegung in der Realität zu schnell ist und somit in der Simulation nicht nachgestellt werden kann.

Die Rechts-/Links-Drehung des Slave-Objekts wird jeweils über Operanden gesteuert. Da der Wert aus dem jeweiligen Operanden gelesen wird, kann für eine permanente Drehung in die jeweilige Richtung auch die Konstante '1' angegeben werden. Dabei ist allerdings zu beachten, dass immer nur eine Drehrichtung aktiv sein darf. Sind beide Drehrichtungen aktiv, dann erfolgt keine Drehbewegung.

Die Verbindung besitzt zahlreiche Sensoren. Ein besonderer Sensor erfasst die Amplitude des Stoßdämpfers der Verbindung. Als Standard werden dabei die Werte -100% (vollständig ausgedehnt) bis 100% (vollständig komprimiert) geliefert. Durch eine Bereichsangabe ist man in der Lage, diese Werte auf andere Werte zu skalieren. Eine häufige Anwendung für diesen Sensor ist die Erfassung der Unwucht einer Rotation. Die "Steifigkeit" und "Dämpfung" kann dabei über die gleichnamigen Eigenschaften variiert werden.

Im folgenden Video wird ein Beispiel für diesen Anwendungsfall vorgestellt:

Wie der Name der Eigenschaft es vermuten lässt, kann man durch Aktivierung erreichen, dass das Master-Objekt und das Slave-Objekt miteinander kollidieren. Ist die Option nicht selektiert, dann kollidieren die beiden Objekte nicht miteinander, dies ist insbesondere dann notwendig, wenn sich das Slave-Objekt innerhalb des Master-Objekts befindet.

Der Ankerpunkt der Verbindung am jeweiligen Anker-Objekt ist variabel. Er sollte sich aber innerhalb des jeweiligen Anker-Objekts befinden. Um einen Ankerpunkt zu verändern, selektiert man zunächst das Symbol der Verbindung und klickt dann mit der Maus auf einen der beiden Selektions-Thumbs um diesen zu verschieben. Dabei erscheinen an dem jeweiligen Anker-Objekt Standard-Ankerpunkte, an denen angedockt werden kann. Es sind aber auch Ankerpunkte an anderen Stellen innerhalb des Objekts möglich.

Nachfolgend ist die Selektion eines neuen Ankerpunktes zu sehen:

In dieser Rubrik befindet sich das gleichnamige Creator-Objekt. Mit Creator-Objekten wird das Erzeugen von Kind-Objekten einer bestimmten ID gesteuert. Ist die Bedingung für das Erzeugen einer neuen Generation von Kind-Objekten erfüllt, dann werden diese als Kopie Ihre Mutter-Objekte an der Position ihrer Mutter-Objekte erzeugt.

Mit den Creator-Objekten lassen sich somit Objekt-Quellen in einer Anlage realisieren um z.B. Förderelemente mit Teilen zu versorgen.

Folgende Schritte sind notwendig, um ein dynamisches Objekt von einem Creator erzeugen zu lassen:

  1. Erzeugen des dynamischen Objekts (z.B. eine dynamische Ellipse).
  2. Innerhalb der Rubrik "Grundeinstellungen->Creator/Destroyer Einstellungen" in der Eigenschaft "Objekt ist ein Mutterobjekt mit der ID" eine im Projekt eindeutige ID angeben. Diese ID muss im Bereich 1 bis 30 liegen.
  3. Das Mutter-Objekt an der Stelle fixieren, an denen die Kind-Objekte erzeugt werden sollen. Hierzu wird oft ein feststehendes Objekt verwendet an dem das Mutter-Objekt über eine Verbindung mit konstanter Distanz angebunden wird.
  4. Creator-Objekt auf der Zeichenfläche erzeugen und an der Eigenschaft "Creator hat die ID" die am Mutter-Objekt eingestellte ID eintragen.
  5. An der Eigenschaft "Create-Trigger" einen Operanden (oder eine Konstante angeben), welcher als Trigger das Erzeugen der Mutter-Objekte steuert.
  6. An der Eigenschaft "Trigger-Typ" ist einzustellen, wann das Erzeugen erfolgen soll. Beispielsweise bei einer pos. Flanke des Operanden, der an "Create-Trigger" angegeben wurde. Ist bei "Create-Trigger" die Konstante '1' angegeben, dann muss als Typ "Bei Status 1 mit Pausezeit" selektiert sein. In diesem Fall ist dann auch eine "Trigger-Pausezeit" anzugeben.

Optional kann die max. Anzahl der Create-Zyklen (also die max. Anzahl der vorhandenen Generationen) in der Eigenschaft "Max. Create-Zyklen" festgelegt werden. Ist diese max. Anzahl erreicht, dann werden keine neuen Kind-Objekt mehr erzeugt, auch wenn die Bedingung dazu erfüllt ist. Erst wenn die Anzahl der vorhandenen Generationen, durch Zerstörung von Generationen mit Hilfe von Destroy-Objekten, unter der maximalen Anzahl liegt, können wieder neue Kind-Objekte erzeugt werden.

Beispiel

Im folgenden Bild ist eine Anordnung mit Creator zu sehen.

Das Mutter-Objekt welches vom Creator zu erzeugen ist, ist ein Kreis. Das Mutter-Objekt hat die ID = 1, d.h. die Eigenschaft "Objekt ist ein Mutterobjekt mit der ID" ist auf den Wert "1" eingestellt. Der Kreis ist über eine Verbindung mit konstanter Distanz an einem feststehenden Objekt angebracht. Damit bleibt das Mutter-Objekt immer an der gleichen Stelle und die Kind-Objekte werden von dort aus in die Anordnung eingefügt. Der Creator wird über ein blaues Rechteck symbolisiert. Bei ihm ist die Eigenschaft "Creator hat ID" auf "1" eingestellt, somit ist der Creator für diese ID "zuständig". Als "Create-Trigger Operand" wurde der Bit-Operand IM.M0.0 angegeben, dieser soll bei einer einer pos. Flanke das Erzeugen auslösen. Somit ist als "Trigger-Typ" die Auswahl "Bei pos. Flanke" zu selektieren. Das Umschalten des Trigger-Operanden IM.M0.0 wird über einen Taster vorgenommen, dem dieser Operand zugeordnet wurde.

Die erzeugten Kind-Objekte werden in einem Behälter gesammelt, der sich unterhalb des Mutter-Objekts befindet und mit Hilfe von feststehenden Rechtecken zusammengebaut wurde.

Damit sind alle Teile der Anordnung beschrieben und die Simulation kann gestartet werden.

Zunächst fällt auf, dass das Creator-Objekt in der Simulation nicht mehr zu sehen ist, denn dieses hat ja als Objekt keine Funktion. Sobald man den Taster betätigt, wird ein Kind-Objekt erzeugt und dieses fällt in den Behälter. Dort werden alle Kind-Objekte gesammelt. Auf diese Weise kann man eine Anordnung mit Objekten versorgen, die dann in irgendeiner Form weiterverabeitet werden.

Im obigen Beispiel wurden Kind-Objekte erzeugt und danach in der Anordnung belassen. Meist werden Kind-Objekte in einem Anlagenvorgang verarbeitet und an einer anderen Stelle wieder beseitigt. Dies ist schon alleine deswegen sinnvoll, um die Anzahl der Objekte in einer Simulation möglichst gering zu halten. Denn jedes physikalische Objekt "belastet" die Physik-Engine und kostet somit Rechenzeit.

Um Kind-Objekte zu beseitigen, kommen Destroyer zum Einsatz. Dabei kann jedes geometrische Objekt als Destroyer konfiguriert werden. Dazu sind die Eigenschaften "Objekt ist ein Destroyer" und "Objekt zerstört Kind-Objekte mit ID" in der Rubrik "Grundeinstellungen->Creator/Destroyer Einstellungen" entprechend einzustellen.

Beispiel

Das obige Beispiel wird um einen Destroyer erweitert. Im folgenden Bild ist die veränderte Anordnung zu sehen.

Dabei wurde an der rechten Seite des Behälters die Seitenbegrenzung durch ein Rechteck ersetzt, welches an der Kolbenstange eines Zylinder befestigt ist. Als Verbindung wurde die Verbindung zu einem Körper verwendet. Somit bewegt sich das Rechteck nach links, sobald der Zylinder ausfährt. Innerhalb des roten Rechtecks wurde die Eigenschaft "Objekt ist ein Destroyer" ausgewählt und in "Objekt zerstört Kind-Objekte mit ID" die Zahl "1" angegeben. Denn der Destroyer soll nur die Kind-Objekte mit eben dieser ID beseitigen. Wird hier die Zahl "0" angegeben, dann zerstört der Destroyer alle Kind-Objekte unabhängig von deren ID.

Damit zeigt die Anordnung in der Simulation folgendes Verhalten:

Nachdem einige Kind-Objekte erzeugt wurden, wird der Zylinder mit Hilfe des Tasters ausgefahren. Somit bewegt sich der Destroyer mit der Kolbenstange nach links. Jedes Kind-Objekt welches dabei von dem Destroyer berührt wird, wird beseitigt.

In den vorausgegangenen Beschreibungen wurde teilweise von Generationen im Zusammenhang mit Kind-Objekten gesprochen. Diese Ausdrucksweise lies schon vermuten,. dass man nicht nur einzelne Objekte erzeugen lassen kann. Möchte man mehrere Objekte in einem Vorgang erzeugen lassen, die dann einer Generation angehören, dann vergibt man bei allen Mutter-Objekten die gleiche ID. Dabei ist es unerheblich, ob diese Mutter-Objekte einen Bezug zueinander haben oder nicht. Auch müssen sich die Mutter-Objekte nicht an der gleichen Stelle befinden, diese können über die gesamte Anordnung verteilt sein.

Die Mutter-Objekte können aber auch eine (Körper-) Einheit bilden oder über andere Verbindungen zueinander in Bezug stehen.

Beispiel

Das bekannte Beispiel wurde nochmals verändert. Das Kreis-Objekt wurde ersetzt durch eine etwas komplexere Form.

Der neue Körper besteht aus insgesamt 6 dynamischen geometrischen Formen, welche über eine Körper-Gruppe zu einem Körper zusammengefügt wurden. Alle Objekte sind als Mutter-Objekt mit der gleichen ID (im Beispiel die ID = 1) konfiguriert. Somit werden deren Kind-Objekte in einem Creator-Zyklus erzeugt, bilden also eine Generation an Kind-Objekten. Berührt eines dieser Kind-Objekte einen Destroyer, dann wird die gesamte Generation beseitigt und nicht nur das den Destroyer berührende Kind-Objekt.

Sobald der Destroyer ein Kind-Objekt des Körpers berührt, wird der gesamte Körper beseitigt. Ein etwaiger zusätzlich vorhandener Körper ist davon zunächst nicht betroffen, denn dieser gehört einer anderen Generation an.

Mit den Creator- und Destroyer-Objekten können die Quellen und Senken einer Anordnung realisiert werden. Die ID fasst dabei die Objekte zu einer Generation zusammen. Über diese ID wird auch die Zugehörigkeit zum Creator hergestellt.

Jede geometrische Form kann als Destoyer konfiguriert werden, sofern es sich um ein Physik-Objekt handelt (dynamisch oder feststehend). Ist eine bestimmte ID angegeben, dann werden nur Kind-Objekte mit dieser ID beseitigt. Sollen alle Kind-Objekte unabhängig von deren ID beseitigt werden, dann ist "0" als ID am Destroyer anzugeben. Es ist zu beachten, dass ein Destroyer immer die gesamte Generation an Kind-Objekten zerstört, sobald auch nur ein Kind-Objekt diesen berührt.

Es können mehrere Destoyer auf die gleiche ID eingestellt werden, denn es ist ja durchaus denkbar, dass Kind-Objekte an unterschiedlichen Stellen der Anordnung zu beseitigen sind.

Mehrere Creator auf die gleiche ID einzustellen macht allerdings keinen Sinn.

In dieser Rubrik befinden sich Objekte, mit denen sich Werte oder Texte in einer Anordnung anzeigen lassen. Ebenso sind einige Objekte für visuelle Effekte einsetzbar, mit denen man auf besondere Situationen in einer Anordnung aufmerksam machen kann.

Text-Label kommen zum Einsatz, wenn man Anlagenteile beschriften möglich. Ein weiterer Anwendungsfall ist die Anzeige von Werten innerhalb eines Textes.

Beispiel

In der obigen Darstellung wurden beide Zeilen des Text-Labels mit Text versehen. Würde man den Text in "Text zweite Zeile" löschen, dann würde nur der Text für die Überschrift erscheinen. Dieser erscheint dann mittig (in der Vertikalen).

In der Rubrik "Grundeinstellungen->Operand" kann an der Eigenschaft "Operand" ein Operand angegeben werden, dessen Wert innerhalb des Text-Labes anzuzeigen ist. Im Text wird dabei im einfachsten Fall der Platzhalter "{0}" angegeben.

Beispiel Im Text-Label soll der Wert des Byte-Operanden IM.MB2 als dezimaler Zahlenwert angezeigt werden.

Dazu wird als Operand "IM.MB2" angegeben. Im Text ist an der gewünschten Stelle mit dem Wert des Operanden, der Platzhalter "{0}" anzugeben. In der Simulation zeigt sich somit folgendes Verhalten, dabei wird der Operand über einen Schieberegler verändert.

Am Platzhalter für den Wert des Operanden können auch Formatierungsanweisungen abgesetzt werden. Dabei werden die Anweisungen in folgender Form unterstützt: "{0[:formatString]}"

Die Syntax kann unter folgendem Link nachgelesen werden:

Syntax für Formatierung

Nachfolgend einige Beispiele:

  • Ausgabe des Werts in Hex: {0:X}
  • Ausgabe des Werts in Hex mit mind. zwei Stellen: {0:X2}
  • Ausgabe des Werts in dezimaler Darstellung mit mind. zwei Stellen: {0:D2}
  • Ausgabe des Werts als Komma-Zahl mit einer Dezimalstelle: {0:f1}
  • Ausgabe des Werts in exponentieller Darstellung: {0:e}

Um das Text-Label ohne Rahmen darzustellen, setzt man den Deckungsgrad der Füllfarbe auf 0%.

Die Füllfarbe des Text-Labels kann operandenabhängig verändert werden. Ebenso ist eine blinkende oder pulsende Darstellung möglich. Dazu sind in der Rubrik "Grundeinstellungen->Operand" die gewünschten Operanden an den Eigenschaften (z.B. "Operand Umschaltung Füllfarbe") anzugeben. Die bei Status '1' anzuzeigende Farbe wird in der Rubrik "Grundeinstellungen->Darstellung->Farben" in der Eigenschaft "Füllfarbe bei Status 1 des Operanden" selektiert.

In der Rubrik "Grundeinstellungen->Darstellung" kann der Label-Typ verändert werden. Bei Selektion des Typs "Label mit Pfeil" wird ein Label mit einem Pfeil angezeigt in dem der Überschrifts-Text zu sehen ist.

Die Tacho-Anzeige wird für die Darstellung von Zahlenwerten verwendet.

In der Rubrik "Grundeinstellungen->Darstellung->Anzeige und Skaleneinteilung" findet man folgende grundlegende Eigenschaften:

Eigenschaft Beschreibung
Momentaner Wert Hier ist der Operand anzugeben, dessen Wert im Tacho anzuzeigen ist. Sinnvoll sind dabei Operanden ab einer Länge von 8 Bits, also Byte-, Wort- und Doppelwort-Operanden
Maximalwert der Anzeige Der höchste im Tacho angezeigte Wert.
Minimalwert der Anzeige Der kleinste im Tacho angezeigte Wert.
Physikal. Wert der Skaleneinteilung Der physikalische Wert zwischen den Skalenteilen des Tachos. Dieser Wert sollte erhöht werden, wenn zu viele Skalenteile im Tacho vorhanden sind bzw. diese zu dicht angeordnet sind.
Physikal. Wert beschriftete Skaleneinteilung Der physikalische Wert zwischen den beschrifteten Skalenteilen des Tachos. Dieser Wert sollte erhöht werden, wenn zu viele Skalenteile im Tacho beschriftet sind bzw. die Beschriftungen sich überlappen.

Beispiel

In einer Tacho-Anzeige soll der Wert des Operanden IM.MW2 dargestellt werden. Der Tacho soll Werte im Bereich 0 bis 500 anzeigen. Die Skalenteile sollen alle 50 Einheiten erscheinen. Alle 100 Einheiten soll der Tacho beschriftet sein. Folgende Einstellung ist somit vorzunehmen:

Die Tacho-Anzeige kann in max. 4 Farbbereiche eingeteilt werden. Damit ist es z.B. möglich anzuzeigen, in welchen Wertebereichen ein Wert zu niedrig, normal oder zu hoch ist.

Beispiel Der Tacho aus dem letzten Beispiel soll zusätzlich mit drei farbigen Skalenbereichen versehen werden.

  • Farbbereich 1: Wert ist zu niedrig, Wertebereich 0 bis 150, Farbe: blau
  • Farbbereich 2: Wert ist im Normbereich, Wertebereich 150 bis 400, Farbe: grün
  • Farbbereich 3: Wert ist zu hoch, Wertebereich 400 bis 500, Farbe: rot

Für dieses Beispiel sind die Einstellungen wie folgt vorzunehmen:

Rahmen können als Schmuck-Objekte eingesetzt werden um z.B. Schalter und Lampen optisch abzusetzen. Diese werden meist am Ende in die Anordnung eingezeichnet. Rahmen-Objekte liegen in diesem Fall in einer unteren Zeichenebene, damit diese die anderen Objekte nicht verdecken. Aus diesem Grund muss oftmals die Eigenschaft "Z-Order" innerhalb der Rubrik "Grundeinstellungen->Darstellung" mit einem niedrigeren (vielleicht auch negativen) Wert versehen werden. Nachfolgend wird dies gezeigt.

Wie schon erwähnt können Rahmen-Objekte als Schmuck-Objekte in einer Anordnung verwendet werden um beispielsweise Schaltelemente hervorzuheben. Ein weiterer Anwendungsfall ist das Hervorheben von Elementen durch Blinken oder Pulsen.

Beispiel

In einer Anordnung soll mit Hilfe eines blinkenden Rahmen-Objekts die Aufmerksamkeit auf einen Taster gelenkt werden. Dazu wird der runde Rahmen hinter dem Taster angebracht.

Möchte man auf Sachverhalte in einer Anordnung aufmerksam machen, dann stehen mit der Möglichkeit die Farbe eines Rahmens zu wechseln, diesen blinken zu lassen und der pulsenden Darstellung, insgesamt drei "Eskalationsstufen" zu Verfügung.

Auch eine Bedienerführung ist damit realisierbar, indem durch Blinken das jeweils als nächstes zu betätigende Bedienelement angezeigt wird.

In dieser Rubrik sind Schieberegler untergebracht, mit denen Zahlenwerte in Operanden verändert werden können. Für die Anordnung stehen horizontale und vertikale Varianten zur Auswahl.

In der Rubrik "Grundeinstellungen->Darstellung->Anzeige und Skaleneinteilung" findet man folgende grundlegende Eigenschaften:

Eigenschaft Beschreibung
Momentaner Wert Hier ist der Operand anzugeben, dessen Wert zu verändern ist. Dabei sind alle Operanden-Breiten möglich also Bit- Byte-, Wort- und Doppelwort-Operanden
Maximalwert der Anzeige Der höchste einstellbare Wert.
Minimalwert der Anzeige Der kleinste einstellbare Wert.
Physikal. Wert der Skaleneinteilung Der physikalische Wert zwischen den Skalenteilen. Dieser Wert sollte erhöht werden, wenn zu viele Skalenteile vorhanden sind bzw. diese zu dicht angeordnet sind.
Physikal. Wert beschriftete Skaleneinteilung Der physikalische Wert zwischen den beschrifteten Skalenteilen. Dieser Wert sollte erhöht werden, wenn zu viele Skalenteile beschriftet sind bzw. die Beschriftungen sich überlappen.

Beispiel

Ein Schieberegler soll den Wert des Operanden IM.MW2 verändern. Mögliche Werte liegen im Bereich 0 bis 2000. Die Skalenteile sollen alle 250 Einheiten erscheinen. Alle 500 Einheiten soll der Schieberegler beschriftet sein. Folgende Einstellung ist somit vorzunehmen:

Die Skala der Schieberegler kann in max. 4 Farbbereiche eingeteilt werden. Damit ist es z.B. möglich anzuzeigen, in welchen Wertebereichen ein Wert zu niedrig, normal oder zu hoch ist.

Beispiel Der Schieberegler aus dem letzten Beispiel soll zusätzlich mit zwei farbigen Skalenbereichen versehen werden.

  • Farbbereich 1: Wert ist zu niedrig, Wertebereich 0 bis 500, Farbe: blau
  • Farbbereich 2: Wert ist im Normbereich, Wertebereich 500 bis 2000, Farbe: grün

Für dieses Beispiel sind die Einstellungen wie folgt vorzunehmen:

Mit dem Rechner-Objekt können arithmetische Operationen mit Operanden oder Verknüpfungen von Operanden ausgeführt werden. Folgende Funktionen sind dabei möglich:

  • UND-, ODER-, Exclusiv-Oder-Verknüpfungen mit Bit-Operanden
  • Addition
  • Multiplikation
  • Modulo
  • Dezimal-zu-BCD für Byte-Operanden
  • BCD-zu-Dezimal für Byte-Operanden
  • Vergleiche: Größer als, Größer oder gleich, Kleiner als, Kleiner oder gleich, Gleich
  • Bereiche: in Bereich, außerhalb Bereich

Es können maximal 4 Operanden für die Funktion angegeben werden. Das Ergebnis der Funktion wird in einen Operanden geschrieben. Handelt es sich bei dem Ergebnis-Operanden um einen Bit-Operanden, so kann dieser invertiert werden.

Es können alle 4 Eingangs-Operanden belegt werden. Werden weniger Operanden angegeben, dann sind die nicht verwendeten Eingangs-Operanden mit den Konstanten '1' oder '0' zu belegen. Je nachdem welche Konstante für die Operation neutral ist.

Am Operanden für das Funktionsergebnis ist ein Bit-Operand anzugeben. Über die Eigenschaft "Ergebnis invertieren" kann dieser invertiert werden.

Es können alle 4 Eingangs-Operanden belegt werden. Werden weniger Operanden angegeben, dann sind die nicht verwendeten Eingangs-Operanden mit den Konstanten zu belegen. Je nachdem welche Konstante für die Operation neutral ist.

Am Funktionsergebnis muss ein Operand angegeben sein, der in der Lage, ist den Wert des Ergebnisses aufzunehmen. Anderenfalls findet kein Schreibvorgang in den Operanden statt.

Bei dieser Operation werden nur die beiden ersten Eingangs-Operanden verwendet. Das Funktionsergebnis wird ermittelt aus: Operand 1 [Modulo] Operand 2

Am Funktionsergebnis muss ein Operand angegeben sein, der in der Lage, ist den Wert des Ergebnisses aufzunehmen. Anderenfalls findet kein Schreibvorgang in den Operanden statt.

Bei dieser Operation wird nur der erste Eingangs-Operand verwendet. Es wird nur das niederwertigste Byte des Operanden ausgewertet. Der ermittelt Wert wird danach in BCD gewandelt und das Ergebnis in den Operanden am Funktionsergebnis geschrieben.

Bei dieser Operation wird nur der erste Eingangs-Operand verwendet. Es wird nur das niederwertigste Byte des Operanden ausgewertet. Der ermittelt Wert wird von BCD nach dezimal gewandelt und das Ergebnis in den Operanden am Funktionsergebnis geschrieben.

Bei den Vergleichsoperationen werden nur die Eingangs-Operanden 1 und 2 verwendet. Die Operanden können dabei auch unterschiedlich breit sein, d.h. es kann beispielsweise der Inhalt eines Byte-Operand mit dem Inhalt eines Wort-Operanden verglichen werden.

Die Operationen werden wie folgt ausgeführt:

  • Größer als: Wert-Operand 1 > Wert-Operand 2
  • Größer oder gleich: Wert-Operand 1 >= Wert-Operand 2
  • Kleiner als: Wert-Operand 1 < Wert-Operand 2
  • Kleiner oder gleich: Wert-Operand 1 <= Wert-Operand 2
  • Gleich: Wert-Operand 1 == Wert-Operand 2

Das Funktionsergebnis ist normalerweise in einen Bit-Operanden zu schreiben. Wird ein Byte-, Wort- oder Doppelwort-Operand angegeben, dann werden die Werte '0' oder '1' geschrieben.

Bei den Bereichsoperationen werden nur die Eingangs-Operanden 1, 2 und 3 verwendet. Die Operanden können dabei auch unterschiedlich breit sein, d.h. es kann beispielsweise der Inhalt eines Byte-Operand mit dem Inhalt eines Wort-Operanden verglichen werden.

Am Eingangs-Operanden 2 ist der Operand anzugeben, dessen Wert geprüft wird. Am Eingangs-Operand 1 muss der min. Wert des Bereichs angegeben sein. Entweder als Operand oder als Konstante. Am Eingangs-Operand 3 muss der max. Wert des Bereichs angegeben sein. Entweder als Operand oder als Konstante.

Die Auswertung sieht folgendermaßen aus:

  • In Bereich: Wert-Eingangs-Operand 1 <= Wert-Eingangs-Operand 2 <= Wert-Eingangs-Operand 3
  • Außerhalb Bereich: Wert-Eingangs-Operand 1 > Wert-Eingangs-Operand 2 oder Wert-Eingangs-Operand 2 > Wert-Eingangs-Operand 3

Das Funktionsergebnis ist normalerweise in einen Bit-Operanden zu schreiben. Wird ein Byte-, Wort- oder Doppelwort-Operand angegeben, dann werden die Werte '0' oder '1' geschrieben.

Die Einsatzgebiete des Rechner-Objekts sind vielfältig.

Man kann dieses beispielsweise verwenden, um ein Flüssigkeits-Objekt mit einem zusätzlichen Sensor für den Füllstand zu versehen. Dabei würde die Funktion "In Bereich" verwendet werden. Möchte man beispielsweise den Operanden IM.M10.1 auf '1' setzen, sobald der Füllstand des Flüssigkeits-Objekts zwischen 800 bis 1000 Inkrementen liegt, dann ist das Rechner-Objekt wie folgt zu setzen. Dabei wird davon ausgegangen, dass der momentane Füllstand im Wort-Operanden IM.MW2 abgelegt ist.

Die Funktion "In Bereich" kommt auch zum Einsatz, wenn man die Position von Linear- oder Drehbewegungen sensorisch erfassen möchte. Hier wird das Rechner-Objekt in ähnlicher Weise verwendet, wie im obigen Beispiel mit dem Füllstand.

Weitere Einsatzgebiete sind das Auslösen von Ereignissen in der virtuellen Anlage um das Verhalten der realen Anlage nachzuahmen. Dies wird oftmals durch Verknüpfung von Operanden des internen Speicherbereichs von PLC-Lab (IM) erreicht.