Herunterladen Inhalt Inhalt Diese Seite drucken
Siemens SIMOTION SCOUT Funktionshandbuch
Vorschau ausblenden Andere Handbücher für SIMOTION SCOUT:
Inhaltsverzeichnis

Werbung

SIMOTION
SIMOTION SCOUT
Basisfunktionen
Funktionshandbuch
05/2009
Vorwort
Systemübersicht
Technologiepakete und
Technologieobjekte
Programmieren mit
Technologieobjekten
Fehlerbehandlung bei
Technologieobjekten
Ablaufsystem/Tasks/System-
takte
Programmieren
Ablaufsystem/Tasks/System-
takte
Programmierung allgemeiner
Standardfunktionen
Programmierung allgemeiner
Systemfunktionsbausteine
SIMOTION Speicherkonzept
(im Zielgerät)
Daten in das Zielgerät laden
Fehlerquellen und effizientes
Programmieren
Anhang A
1
2
3
4
5
6
7
8
9
10
11
A

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Siemens SIMOTION SCOUT

  • Seite 1 Vorwort Systemübersicht Technologiepakete und Technologieobjekte SIMOTION Programmieren mit Technologieobjekten SIMOTION SCOUT Fehlerbehandlung bei Basisfunktionen Technologieobjekten Ablaufsystem/Tasks/System- takte Funktionshandbuch Programmieren Ablaufsystem/Tasks/System- takte Programmierung allgemeiner Standardfunktionen Programmierung allgemeiner Systemfunktionsbausteine SIMOTION Speicherkonzept (im Zielgerät) Daten in das Zielgerät laden Fehlerquellen und effizientes Programmieren...
  • Seite 2: Qualifiziertes Personal

    Siemens-Produkte dürfen nur für die im Katalog und in der zugehörigen technischen Dokumentation vorgesehenen Einsatzfälle verwendet werden. Falls Fremdprodukte und -komponenten zum Einsatz kommen, müssen diese von Siemens empfohlen bzw. zugelassen sein. Der einwandfreie und sichere Betrieb der Produkte setzt sachgemäßen Transport, sachgemäße Lagerung, Aufstellung, Montage, Installation, Inbetriebnahme, Bedienung und Instandhaltung voraus.
  • Seite 3: Vorwort

    Das vorliegende Dokument ist Bestandteil des Dokumentationspaketes System- und Funktionsbeschreibungen. Gültigkeitsbereich Dieses Handbuch ist gültig für SIMOTION SCOUT Produktstufe V4.1.4: ● SIMOTION SCOUT V4.1.4 (Engineering System der Produktfamilie SIMOTION), ● SIMOTION Kernel V4.1, V4.0, V3.2, V3.1 oder V3.0 ● SIMOTION Technologiepakete Cam, Cam_ext (ab Kernel V3.2) und TControl in der zum jeweiligen Kernel passenden Version (bis Kernel V3.0 auch die Technologiepakete Gear,...
  • Seite 4 Einen Überblick zur SIMOTION Dokumentation erhalten Sie in einem separaten Literaturverzeichnis. Diese Dokumentation ist als elektronische Dokumentation im Lieferumfang von SIMOTION SCOUT enthalten. Die SIMOTION Dokumentation besteht aus 9 Dokumentationspaketen, die etwa 80 SIMOTION Dokumente und Dokumente zu zugehörigen Systemen (z. B. SINAMICS) enthalten.
  • Seite 5: Hotline Und Internetadressen

    Weiterführende Links für den Download von Dateien aus Service & Support. http://support.automation.siemens.com/WW/view/en/10805436 ● Dokumentation auf Basis der Siemens Inhalte individuell zusammenstellen mit dem My Documentation Manager (MDM), siehe http://www.siemens.com/mdm Der My Documentation Manager bietet Ihnen eine Reihe von Features zur Erstellung Ihrer eigenen Dokumentation.
  • Seite 6 Vorwort Asien / Pazifik Telefon +86 1064 757575 +86 1064 747474 E-Mail mailto:support.asia.automation@siemens.com Hinweis Landesspezifische Telefonnummern für technische Beratung finden Sie im Internet: http://www.automation.siemens.com/partner Fragen zur Dokumentation Bei Fragen zur Dokumentation (Anregungen, Korrekturen) senden Sie bitte ein Fax oder eine E-Mail an folgende Adresse:...
  • Seite 7: Inhaltsverzeichnis

    Inhaltsverzeichnis Vorwort ..............................3 Systemübersicht ............................15 Systemarchitektur ........................15 1.1.1 SIMOTION Systemarchitektur .....................15 1.1.2 Engineering System SIMOTION SCOUT ..................16 1.1.3 SIMOTION Projekt ........................17 1.1.4 Offline-/Online-Modus ........................18 1.1.5 Programmierung ..........................18 SIMOTION Motion Control......................19 Einsatzgebiete ..........................20 Zusammenführung von PLC und Motion Control ................21 Totally Integrated Automation ......................22...
  • Seite 8 Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue..........134 Ablaufsystem/Tasks/Systemtakte ......................139 Das Ablaufsystem ........................139 5.1.1 Ablaufebenen/Tasks ......................... 142 5.1.2 Ablaufsystem in SIMOTION SCOUT ..................145 5.1.3 Task-Prioritäten......................... 147 5.1.4 Laufzeitmodell in SIMOTION ....................150 5.1.5 Ablaufsystem im Symbolbrowser....................152 Beschreibung der Anwenderprogramm-Tasks .................
  • Seite 9 Inhaltsverzeichnis 5.3.4 Systemtakte den Technologieobjekten zuweisen..............194 5.3.5 Tasklaufzeiten ..........................195 5.3.6 Zeit- und Ebenenüberläufe ......................197 5.3.7 Information zum Start einer Task: TaskStartInfo (TSI) ..............200 5.3.8 Zeitüberwachung ........................200 Zeitaufteilung in der Round-Robin-Ablaufebene................201 5.4.1 Einstellung der Zeitaufteilung.....................203 5.4.2 Einstellungen (Beispiele) ......................205 5.4.3 Abarbeitung der Tasks (Beispiele).....................207 Task Trace Übersicht.........................211 5.5.1 Task Trace verwenden ......................211...
  • Seite 10 Inhaltsverzeichnis 6.1.5.4 Einfluss des Compilers auf die Variableninitialisierung ............251 6.1.5.5 HMI-relevante Daten kennzeichnen..................253 6.1.6 Taskstati ............................ 254 6.1.6.1 Abfrage und Bedeutung der Taskstati ..................254 6.1.6.2 Kombinationen der Taskstati..................... 255 6.1.6.3 Beispiel für Verwendung der Taskstati ..................256 6.1.7 MotionTask auf Erfüllung einer Bedingung warten lassen............
  • Seite 11 Inhaltsverzeichnis Zugriffe auf Bits in Bitstrings ......................306 7.3.1 Funktion _getBit .........................306 7.3.2 Funktion _setBit..........................307 7.3.3 Funktion _toggleBit ........................309 Bitoperationen auf numerische Datentypen................310 String-Bearbeitung (ab V4.0) .....................311 7.5.1 Funktionen zur String-Bearbeitung ....................311 7.5.2 Fehlerauswertung bei der String-Bearbeitung ................313 Standardfunktionen zur Daytentypkonvertierung...............315 7.6.1 Funktionen zur Konvertierung von numerischen Datentypen und Bit-Datentypen....315 7.6.2...
  • Seite 12 Inhaltsverzeichnis 7.14.6 Funktion _deleteUnitDataSet ....................366 7.14.7 Funktion _getStateOfUnitDataSetCommand ................369 7.14.8 Funktion _checkExistingUnitDataSet ..................370 7.14.9 Funktion _deleteAllUnitDataSets ....................372 7.15 Funktionen für CommandId....................... 374 7.15.1 Funktion _getCommandId ......................374 7.15.2 Funktion _getSyncCommandId....................375 7.16 Wartezeit definieren ........................376 7.16.1 Funktion _waitTime ........................
  • Seite 13 Inhaltsverzeichnis Programmierung allgemeiner Systemfunktionsbausteine ..............417 Übersicht der Funktionsbausteine .....................417 Bistabile Elemente (Flipflop setzen) ..................419 Flankenerkennung ........................422 Zähler ............................424 8.4.1 Allgemeines zu Zählern ......................424 8.4.2 Aufwärtszähler CTU........................424 8.4.3 Aufwärtszähler CTU_DINT......................425 8.4.4 Aufwärtszähler CTU_UDINT ......................426 8.4.5 Abwärtszähler CTD........................426 8.4.6 Abwärtszähler CTD_DINT......................427 8.4.7 Abwärtszähler CTD_UDINT .......................427 8.4.8...
  • Seite 14 Inhaltsverzeichnis 10.8 Download direkt auf Speicherkarte oder Festplatte..............470 10.9 Download über Geräte Update Tool ..................471 10.10 Daten aus dem Zielgerät ins PG/PC laden ................471 Fehlerquellen und effizientes Programmieren..................473 11.1 Fehlerquellen bei der Programmierung ..................473 11.1.1 Fehlerquellen bei der Programmierung ..................
  • Seite 15: Systemübersicht

    Ihre spezifische Aufgabe angepasst werden. Darüber hinaus stellt SIMOTION Funktionsbibliotheken bereit, die Systemfunktionen und Bewegungsfunktionen abdecken. Sie enthalten Funktionen und Zugriffe auf Systemvariablen eines Technologieobjekts und werden im SIMOTION SCOUT mit dem zugehörigen Gerät und dem Technologiepaket verknüpft. Basisfunktionen...
  • Seite 16: Engineering System Simotion Scout

    ● Einbindung der Maschinenbedienung (HMI) ● abschließende Arbeiten, wie beispielsweise die Generierung der Maschinendokumentation. Das SIMOTION SCOUT Engineering System bietet eine einheitliche Anwendersicht und eine flexible Funktionalität. Die Formulierung von individuellen Automatisierungsaufgaben für Produktionsmaschinen erfolgt in einer einheitlichen und durchgängigen Oberfläche.
  • Seite 17: Simotion Projekt

    Struktur wird im Projektnavigator dargestellt. Bild 1-3 SIMOTION SCOUT Projektnavigator Das Projekt ist die oberste Hierarchiestufe der Datenverwaltung. Alle Daten, die z. B. zu einer Produktionsmaschine gehören, legt SIMOTION SCOUT in dem zum Projekt gehörenden Verzeichnis ab. Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 18: Offline-/Online-Modus

    1.1.4 Offline-/Online-Modus Bild 1-4 Zusammenhang zwischen Offline- und Runtime-Projekt mit SIMOTION SCOUT SIMOTION SCOUT kann in zwei Modi betrieben werden: ● Im Offline-Modus können Sie Projekte anlegen und Anwenderprogramme erstellen. Im Offline-Modus arbeiten Sie mit dem Engineering System SCOUT ohne Verbindung zum Runtime-System.
  • Seite 19: Simotion Motion Control

    Bewegungsfunktionen wird aufgehoben. Die Zusammenführung erfolgt sowohl auf der Hardware- als auch auf der Softwareseite. ● Usability Ein einheitliches Engineering System (SIMOTION SCOUT) gewährleistet ein durchgängiges Konfigurieren, Parametrieren und Programmieren. Sowohl Automatisierungs- als auch Motion-Control-Aufgaben werden in einer gemeinsamen Sprache programmiert.
  • Seite 20: Einsatzgebiete

    Systemübersicht 1.3 Einsatzgebiete ● Standards Standards der PC-Welt (z. B. Windows, Ethernet) prägen mehr und mehr auch die Automation in der Industrie. Weltweit genormte Programmiersprachen vereinfachen den Kunden die Handhabung. ● Modulare Maschinenkonzepte Die Standardisierung macht auch vor den Maschinenkonzepten nicht Halt. So wird zunehmend versucht, das Maschinenkonzept in verschiedene Teilkomponenten aufzuteilen.
  • Seite 21: Zusammenführung Von Plc Und Motion Control

    Systemübersicht 1.4 Zusammenführung von PLC und Motion Control Zusammenführung von PLC und Motion Control SIMOTION führt Steuerung, Technologie und Motion Control zusammen. Damit entfallen Hardware- und Software-Schnittstellen zwischen den Steuerungen. Bild 1-5 Zusammenführung von PLC und Motion Control Auf der Hardwareseite bedeutet dies, dass das Automatisierungsgerät in der Lage ist, Bewegungsfunktionen zu verarbeiten.
  • Seite 22: Totally Integrated Automation

    Die Durchgängigkeit von SIMOTION zur SIMATIC im Sinne von Totally Integrated Automation ist gewährleistet. Dies wird einerseits ermöglicht durch die Integration des SIMOTION SCOUT im SIMATIC-Manager und andererseits durch dieselbe Engineeringphilosophie bei vergleichbaren Tätigkeiten. Für Engineeringprozesse, die entweder in SIMATIC nicht vorhanden (Motion Control, Nockenschaltwerk, etc.) oder bei SIMOTION aufgrund der Anforderungen an ein verteilten Systems notwendig sind, wird ein durch optimale Usability geprägter Weg gewählt.
  • Seite 23: Hardwareplattformen

    Systemübersicht 1.6 Hardwareplattformen Hardwareplattformen SIMOTION unterstützt verschiedene Hardwareplattformen. Die Entscheidung für die eingesetzte Hardware-Komponente ist im Wesentlichen abhängig von den Anforderungen. Dabei können Sie Ihre Automatisierungsaufgabe auch auf unterschiedliche Zielsysteme aufteilen. Bild 1-6 SIMOTION Hardwareplattformen Hierfür stehen Ihnen folgende Plattformen zur Verfügung: Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 24 Systemübersicht 1.6 Hardwareplattformen ● PC-based (SIMOTION P350) Als PC-basiertes Motion Control System arbeitet die SIMOTION P3xx mit dem Betriebssystem Windows XP, ausgestattet mit einer Echtzeiterweiterung für SIMOTION. Neben SIMOTION-Applikationen können auch andere PC- Anwendungen gestartet werden. SIMOTION P350 eignet sich für: –...
  • Seite 25: Technologiepakete Und Technologieobjekte

    Technologiepakete und Technologieobjekte Einführung SIMOTION Basisfunktionalität Ein SIMOTION-System ohne Technologiepaket, ohne Technologieobjekte, stellt das Ablaufsystem und die Basisfunktionalität eines Steuerungssystems nach IEC 61131-3 bereit. Bild 2-1 SIMOTION Basisfunktionalität Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 26 Technologiepakete und Technologieobjekte 2.1 Einführung Die Anwenderprogramme können wahlfrei den verschiedenen Tasks zugeordnet werden. Bild 2-2 Zuordnung der Anwenderprogramme zu Tasks Technologieobjekte Für Technologie und Motion Control stellt SIMOTION Technologieobjekte bereit. Die Technologieobjekte bieten dem Anwender eine technologische Sicht auf Aktoren und Sensoren, und stellen technologische Funktionen für diese zur Verfügung, z.
  • Seite 27: Instanziierung

    Technologiepakete und Technologieobjekte 2.1 Einführung Die Technologieobjekte werden vom System in Systemtasks ausgeführt, z. B. der IPO-Task, der IPO_2-Task, oder der Servo-Task. Instanziierung Technologieobjekte werden vom System als Technologieobjekttypen bereitgestellt, die über Instanziierung an den konkreten Einsatzfall angepasst wird. Bild 2-3 Programmiermodell auf Technologieobjekt-Instanzen, z.
  • Seite 28: Technologiepakete

    Technologiepakete und Technologieobjekte 2.2 Technologiepakete Technologiepakete Die Technologieobjekttypen werden bei SIMOTION über Technologiepakete bereit gestellt. Sie werden mit dem Projekt auf das SIMOTION Runtime-System geladen. Folgende Technologiepakete sind verfügbar: ● TP CAM enthält die grundlegenden Technologien für Motion Control, wie z. B. Drehzahlachse, Positionierachse, Gleichlaufache, Gleichlaufobjekt, Kurvenscheibe, Nocken, Nockenspur, Messtaster ●...
  • Seite 29: Technologieobjekte (To)

    2.3.1 Instanziierung und Konfiguration Über <Technologieobjekt> einfügen erzeugen Sie eine Instanz des entsprechenden TO- Typs in SIMOTION SCOUT. (Daten, Parameter, Alarmlisten etc. werden im System angelegt.) Gegebenenfalls muss die Ausprägung des Technologieobjekts angegeben werden, z. B. bei der Achse: Drehzahlachse, Positionierachse, Gleichlaufachse.
  • Seite 30: Parametrierung

    Systemvariablen beinhalten technologische Parameter und Anzeigewerte der Technologieobjekte. Für die Einstellung von technologischen Parametern und Standardwerten/Vorbelegung sind in der Regel Masken in SIMOTION SCOUT verfügbar. Systemvariablen sind Einzelwerte oder Strukturen, die konsistent ausgelesen werden. Hinweis Nach einem Restart eines Technologieobjekts wird das Objekt neu initialisiert.
  • Seite 31: Programmierung

    Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) 2.3.3 Programmierung Die Technologiefunktionalitäten werden über spezifische Befehle aktiviert/deaktiviert. Synchrone/asynchrone Befehlsbearbeitung synchron asynchron Die Befehle können oder eingestellt werden. Bei synchroner Einstellung von Bewegungsbefehlen kann am Befehl auf einen bestimmten Bewegungsstatus oder bis auf das Ende der Bewegung, z. B. einer Positionierung gewartet werden.
  • Seite 32 Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) Programmiermodell Die Befehle werden Tasks zugeordnet, welche wiederum den Ablaufebenen des Tasksystems zugeordnet werden. Befehle können aus allen Anwenderprogramm-Tasks des Systems abgesetzt werden. Bild 2-6 Programmiermodell auf Technologieobjekt-Instanzen, z. B. auf TO Achse Für die Wirksamkeit eines Befehls an einem TO ist nur der Zeitpunkt entscheidend, zu dem er am TO bearbeitet wird.
  • Seite 33 Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) Befehlsausführung am TO / Wirksamkeit von TO-Befehlen Die aus dem Anwenderprogramm, den Anwenderprogramm-Tasks auf die TO abgesetzten Befehle können prinzipiell eingeteilt werden in: ● Befehle die unmittelbar im Kontext/Ablauf der Anwenderprogramm-Tasks ausgeführt werden Diese werden wie eine Funktion innerhalb der Anwenderprogramm-Tasks abgehandelt. Diese Befehle sind synchron, da das Anwenderprogramm erst mit der Rückgabe des Funktionsergebnisses fortgeführt wird.
  • Seite 34 Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) Die Bearbeitung kann durch die System- und Objektkonfiguration beeinflusst werden. ● Die Einstellung der Systemtakte Durch die Einstellung der Systemtakte wird die Abtastzeit für die Bewegungsführung von Achsen (IPO, IPO_2), die Lagerregelung (Servo) sowie die Kommunikation über PROFIBUS DP bzw.
  • Seite 35: Verschaltungen

    Initialisierung (z. B. Modulo-Information, Einheiten) unterschiedliche Daten austauschen. Implizite Verschaltung Ist eine Verschaltung zwingend und eindeutig, wird diese vom Engineering System SIMOTION SCOUT implizit mit angelegt, z. B. Messtaster mit Achse, Nocken mit Achse, Gleichlauf mit Achse. Die entsprechenden TO-Typen werden unter der Achse mit angeboten.
  • Seite 36: Technologieobjekte Und Dcc

    Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) Verschaltung über technologische Verschaltungsmasken Für weitere Verschaltungen werden spezifische Masken angeboten z. B. für: ● Gleichlaufachse mit Leitachse/Leitwert ● Gleichlaufobjekt mit Kurvenscheiben ● Profileingänge mit Kurvenscheiben Verschaltung über allgemeine Verschaltungsmaske (nur für Experten) Für besondere Verschaltungen wird eine allgemeine Verschaltungsmaske angeboten, z. B. für ●...
  • Seite 37 Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) Die TO selbst sind in den DCC-Plänen nicht als Bausteine verfügbar. Bild 2-9 Technologie und DCC Siehe auch Ablaufmodell für DCC-Bausteine (DCB) (Seite 225) Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 38: Verfügbare Technologieobjekte

    Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) 2.3.6 Verfügbare Technologieobjekte Tabelle 2- 1 Übersicht der in SIMOTION verfügbaren Technologieobjekte Technologieobjekt Symbol Kurzbeschreibung Achse Achsen gibt es in verschiedenen Ausprägungen. Es gibt: reale oder virtuelle Achsen • Positionierachsen oder Drehzahlachsen • elektrische Achsen oder Hydraulikachsen •...
  • Seite 39 Technologiepakete und Technologieobjekte 2.3 Technologieobjekte (TO) Technologieobjekt Symbol Kurzbeschreibung Ergänzende Technologieobjekte (für Experten): Der Vorteil dieser Technologieobjekte besteht darin, dass sie, wie andere TOs auch, auf Systemebene bearbeitet werden. Die verschalteten Signale werden direkt innerhalb eines Systemtaktes in den Technologieobjekten bearbeitet. Applikative Lösungen in Structured Text bringen dagegen einen häufigen Wechsel zwischen System und Applikation und damit Totzeiten mit sich.
  • Seite 40: Expertenliste

    Technologiepakete und Technologieobjekte 2.4 Expertenliste Expertenliste Neben dem Zugang zu den Konfigurationsdaten und Systemvariablen über die Assistenten und Parametriermasken steht Ihnen auch der direkte Zugriff über die Expertenliste zur Verfügung. Da alle wichtigen Konfigurationsdaten und Systemvariablen über Dialoge parametriert werden können, ist die Expertenliste jedoch nur in Ausnahmefällen erforderlich (wie z. B. Online-Änderung von Konfigurationsdaten).
  • Seite 41 Technologiepakete und Technologieobjekte 2.4 Expertenliste Tabelle 2- 2 Folgende Informationen werden in der Expertenliste angezeigt: Schaltfläche/Tabellenspalte Bedeutung/Hinweis Konfigurationsdaten Auf dem Reiter Konfigurationsdaten werden die Konfigurationsdaten des TO in alphabetischer Reihenfolge aufgelistet. Alle Konfigurationsdaten können grundsätzlich vom Anwender verändert werden (grüne Darstellung).
  • Seite 42 Technologiepakete und Technologieobjekte 2.4 Expertenliste Schaltfläche/Tabellenspalte Bedeutung/Hinweis Neue Anwenderdefinierte Liste Mit dieser Taste erzeugen Sie eine neue Anwenderdefinierte Liste. Anwenderdefinierte Liste öffnen Mit dieser Taste öffnen Sie eine bestehende Anwenderdefinierte Liste. Anwenderdefinierte Liste speichern Mit dieser Taste speichern Sie die gerade geöffnete Anwenderdefinierte Liste.
  • Seite 43 Technologiepakete und Technologieobjekte 2.4 Expertenliste Schaltfläche/Tabellenspalte Bedeutung/Hinweis Aktualwert (nur ONLINE) Hier wird der Aktualwert der Systemvariablen bzw. der Konfigurationsdaten angezeigt. Den Wert von Systemvariablen können Sie direkt im ONLINE-Modus ändern. Änderungen bei den Konfigurationsdaten können Sie nur in der Spalte Next-Wert vornehmen. Aktualwerte werden im Aktualspeicher abgelegt.
  • Seite 44: Expertenliste Verwenden

    Technologiepakete und Technologieobjekte 2.4 Expertenliste 2.4.2 Expertenliste verwenden So zeigen Sie Hilfe zu Systemvariablen und Konfigurationsdaten an 1. Wählen Sie Hilfe > Hilfe zum Kontext oder drücken Sie SHIFT+F1. Der Cursor verändert sich zum Fragezeichen. 2. Klicken Sie in der Expertenliste auf das Konfigurationsdatum bzw. die Systemvariable, zu dem Sie Hilfe benötigen.
  • Seite 45 Technologiepakete und Technologieobjekte 2.4 Expertenliste 1. Drücken Sie die Taste F3. Die nächste Zelle wird gesucht, in der dieser Begriff vorkommt. Wenn die Suchfunktion keinen weiteren Eintrag mehr in der Liste findet, wird eine Meldung ausgegeben. So navigieren Sie mit den Pfeiltasten innerhalb der Expertenliste Mit den Pfeiltasten kann jede Zelle innerhalb der Expertenliste angewählt werden.
  • Seite 46 Technologiepakete und Technologieobjekte 2.4 Expertenliste So erstellen Sie eine Anwenderdefinierte Parameterliste 1. Klicken Sie auf die Taste Neuen Reiter anlegen. Der Auswahldialog öffnet sich: Bild 2-11 Auswahldialog für Anwenderdefinierte Parameterlisten 2. Wählen Sie Neue Anwenderdefinierte Parameterliste anlegen und klicken Sie auf OK. Ein zusätzlicher Reiter wird eingeblendet, der die neu anzulegende Liste enthält.
  • Seite 47 Technologiepakete und Technologieobjekte 2.4 Expertenliste 3. Übernehmen Sie die gewünschten Parameter über Kopieren & Einfügen aus den anderen Reitern (Kontextmenü oder Strg + C und Strg + V). Beispiel: Bild 2-13 Parameter Kopieren Bild 2-14 Anwenderdefinierte Parameterliste Bild 2-15 Anwenderdefinierte Parameterliste speichern oder drucken 4.
  • Seite 48 Technologiepakete und Technologieobjekte 2.4 Expertenliste So fügen Sie eine leere Zeile in eine Anwenderdefinierte Parameterliste ein bzw. löschen einen Eintrag Leere Zeile einfügen (wenn bereits eine leere Zeile in der Anwenderdefinierten Liste vorkommt, müssen Sie diese vorher löschen) 1. Setzen Sie den Mauszeiger auf die Zeile, über der Sie eine leere Zeile einfügen möchten. 2.
  • Seite 49: Expertenlisten Vergleichen

    Technologiepakete und Technologieobjekte 2.4 Expertenliste Hinweise zum Aufbau von Skripten: ● Jedes konvertiertes Skript erhält eine Kopfzeile mit Datum und Herkunft, danach eine Leerzeile. ● In der nächsten Zeile wird der Logging-Mechanismus der Skript-Engine eingeschaltet. Dadurch wird jeder Schreib- und Lesevorgang im Skript-Ausgabefenster ausgegeben. ●...
  • Seite 50 Technologiepakete und Technologieobjekte 2.4 Expertenliste Bild 2-18 Expertenlistenvergleich Es werden die Parameter mit unterschiedlichen Einstellungen bzw. bei einem Objekt nicht vorhandene Parameter in einer Liste dargestellt. Hinweis Ein Vergleich ist nur innerhalb von Gruppen kompatibler Objekte (TOs) möglich. Es werden nur die möglichen Objekte zum Vergleich angeboten.
  • Seite 51 Technologiepakete und Technologieobjekte 2.4 Expertenliste Schaltfläche/Tabellenspalte Bedeutung/Hinweis zu vergleichende Objekte Aktivieren Sie die Checkbox vor den Objekten, die Sie miteinander vergleichen wollen. Sie können max. bis zu fünf Objekte miteinander vergleichen und Objekte im OFF- und ONLINE-Modus. Im ONLINE- Modus ist jeweils eine Checkbox für die ONLINE- und OFFLINE- Parametrierung eines Objekts vorhanden.
  • Seite 52: Siehe Auch

    Technologiepakete und Technologieobjekte 2.4 Expertenliste Schaltfläche/Tabellenspalte Bedeutung/Hinweis Zeilen mit ungleichen Hier wird die Anzahl der Parameter angezeigt, die bei den Objekten Werten ungleiche Werte besitzen. Die ungleichen Werte der Parameter werden farblich hervorgehoben unter Ergebnis angezeigt. Vergleichsergebnis Klicken Sie auf den Button, um die Vergleichsergebnisse als neue, speichern Anwenderdefinierte Parameter-/Werteliste oder als ausführbares Skript zu speichern.
  • Seite 53: Verschaltung Von Technologieobjekten

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Verschaltung von Technologieobjekten Technologieobjekte können neben der normalen impliziten Verschaltung und Verschaltung über technologische Verschaltungsmasken auch über eine allgemeine Verschaltungsmaske mit anderen Technologieobjekten auf Systemebene verschaltet werden. Bild 2-19 Verschaltungsinterfaces zu Technologieobjekten 2.5.1 Verschaltungsübersicht zu Technologieobjekten Einleitung Mit der Verschaltungsübersicht können Sie sich über einen Verschaltungsbaum alle...
  • Seite 54 Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Eine Verschaltungstabelle zeigt für das im Verschaltungsbaum ausgewählte TO die ein- bzw. ausgangsseitig verschalteten TOs mit Interface-Bezeichnung. Bild 2-20 Verschaltungsübersicht Eigenschaften der Verschaltungsübersicht Die Verschaltungsübersicht starten Sie über die Schaltfläche bzw. über Bearbeiten > Verschaltungsübersicht.
  • Seite 55: Implizite Verschaltung Beim Anlegen

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten ● Alle TOs, die Bewegungseingänge und -ausgänge mit anderen TOs verschaltet haben, z.B. Achsen, Gleichlaufobjekte oder Geber können weiter aufgeklappt werden. Dies ist auf jeder Ebene der Hierarchie des Verschaltungsbaums möglich. ● Rekursion wird angezeigt, wenn im Verschaltungsbaum ein Knoten enthalten ist, der bereits einmal auf dem Pfad zur Wurzel des Baums existiert.
  • Seite 56: Verschaltung Über Allgemeine Verschaltungsmaske Im Scout (Für Experten)

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten 2.5.3 Verschaltung über allgemeine Verschaltungsmaske im SCOUT (für Experten) Zur Verschaltung von verschiedenen Technologieobjekten bietet SCOUT die Ansicht Verschaltung. Bild 2-21 Verschaltung im SCOUT - Beispiel Achse Auf der linken Seite werden alle eingangsseitigen Verschaltungsinterfaces des angewählten Objekts aufgeführt, auf der rechten Seite die typgleichen ausgangsseitigen Verschaltungsinterfaces.
  • Seite 57: Allgemeine Eigenschaften Von Verschaltungsinterfaces

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten 2.5.4 Allgemeine Eigenschaften von Verschaltungsinterfaces Konfiguration der Verschaltunginterfaces Die eingangsseitigen Verschaltungsinterfaces werden angelegt: ● implizit mit der Instanziierung des TO ● über technologiespezifische Verschaltungsmasken ● über allgemeine Verschaltungsmaske Aktivierung/Deaktivierung Die eingangsseitigen Verschaltungsinterfaces werden über Befehl am betreffenden TO aktiv geschaltet oder sind defaultmäßig aktiv geschaltet.
  • Seite 58: Verschaltungsinterfaces An Den To

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Alarmreaktion Bei einer fehlerhaften Verschaltung wird erst beim Aktivieren einer Funktion auf das Verschaltungsinterface ein Technologischer Alarm erzeugt. Bei Mehrfachverschaltbarkeit eines eingangsseitigen Verschaltungsinterfaces muss ein Bezugs-TO ausgewählt werden. Programmierte Funktionen werden beim Übergang von STOPU nach STOP abgebrochen, Verschaltungsfunktionen bleiben beim Übergang von STOPU nach STOP aktiv.
  • Seite 59 Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten ausgangsseitige Verschaltungsinterfaces: wie Positionierachse, zusätzlich: Bahnachse Eingangsseitige Verschaltungsinterfaces Interface wie Folgeachse, zusätzlich: Bahnbewegung spezifisch Ausgangsseitiges Verschaltungsinterface wie Positionierachse Gleichlaufobjekt eingangsseitige Verschaltungsinterfaces: Bewegungseingang Motion Kurvenscheibe ausgangsseitige Verschaltungsinterfaces: Interface für Folgeachse spezifisch (wird bei Anlegen Gleichlaufachse/ Gleichlaufobjekt implizit vom System verschaltet) Bahnobjekt eingangsseitige Verschaltungsinterfaces:...
  • Seite 60 Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Eingangs-Interface bei 'Mithörenden Messtaster' (ab V4.0) spezifisch (über allgemeine Verschaltungsmaske) ausgangsseitige Verschaltungsinterfaces: Ausgangs-Interface für 'Mithörenden Messtaster' (ab V4.0) spezifisch Nocken, Nockenspur eingangsseitige Verschaltungsinterfaces: Nocken-Interface spezifisch (wird bei Anlegen Nocken, Nockenspur, implizit auf Achse, Externer Geber vom System verschaltet) Kurvenscheibe eingangsseitige Verschaltungsinterfaces:...
  • Seite 61 Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Bewegungsausgang 3 Motion LREAL-Ausgang 1 LREAL LREAL-Ausgang 2 LREAL LREAL-Ausgang 3 LREAL LREAL-Ausgang 4 LREAL DINT-Ausgang 1 DINT DINT-Ausgang 2 DINT DINT-Ausgang 3 DINT DINT-Ausgang 4 DINT Festes Getriebe eingangsseitige Verschaltungsinterfaces: Bewegungseingang Motion ausgangsseitige Verschaltungsinterfaces: Bewegungsausgang Motion...
  • Seite 62: Verschaltungsinterfacetyp 'Motion

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten 2.5.6 Verschaltungsinterfacetyp 'Motion' Der Verschaltungsinterface-Typ Motion enthält den Bewegungsvektor (s, v, a) sowie interne Information, wie z. B. Gültigkeitsstatus, und gegebenenfalls Modulo-Information. Bewegungsbasis Der Bewegungsvektor kann eine unterschiedliche Bewegungsbasis haben: Position oder Geschwindigkeit. Bei Bewegungsbasis "Geschwindigkeit"...
  • Seite 63: Verschaltungsinterfacetyp 'Lreal

    Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Ausgangsseitige Verschaltungsinterfaces von Typ 'motion' Folgende TO haben z. B. ein ausgangsseitiges Verschaltungsinterface vom Typ 'Motion': ● Drehzahlachsen ● Positionierachsen ● Gleichlaufachsen (Folgeachsen) ● Bahnobjekt ● Festes Getriebe ● Addierobjekt ● Formelobjekt ● Externer Geber 2.5.7 Verschaltungsinterfacetyp 'LREAL' Für skalare Größen ist ein Verschaltungsinterface vom Typ LREAL verfügbar.
  • Seite 64 Technologiepakete und Technologieobjekte 2.5 Verschaltung von Technologieobjekten Eingangseitiges Verschaltungsinterface 'AdditivesMoment' an der Achse zur Vorgabe eines additiven Moments An der Achse ist ein eingangseitiges Verschaltungsinterface 'AdditivesMoment' vom Typ LREAL zur Vorgabe eines additiven Moments an den Antrieb über den additiven Technologiedatenblock verfügbar.
  • Seite 65: Programmieren Mit Technologieobjekten

    Programmieren mit Technologieobjekten Definitionen Im Folgenden lernen Sie die Motion-Bestandteile primär aus der Sicht der Programmiersprache ST kennen. Es handelt sich dabei in erster Linie um Systemfunktionen, Systemvariablen und Konfigdaten. Nachfolgend einige Definitionen: ● Systemfunktionen sind Funktionen zur Handhabung des Systems. Sie bieten Zugang zur technologieneutralen Gerätefunktionalität.
  • Seite 66: Programmierung Der Technologieobjekte (To)

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Programmierung der Technologieobjekte (TO) 3.2.1 Technologie-Funktionen im Programm verwenden Um Technologie-Funktionen (TO-Funktionen) verwenden zu können, müssen Sie einmalig ein Technologiepaket wählen. Im Technologiepaket sind Technologieobjekte (TO) und damit TO-Funktionen enthalten. Dabei handelt es sich formal um Funktionen, die einen Funktionsnamen, Eingangsparameter und meistens einen Rückgabewert besitzen.
  • Seite 67 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Tabelle 3- 2 Beispiel für die Wahl eines Technologiepaketes und Verwendung eines Namensraums INTERFACE USEPACKAGE Cam AS Cam1; USES ST_2; FUNCTION function1; END_INTERFACE IMPLEMENTATION FUNCTION function1 : VOID VAR_INPUT Achse : posAxis; END_VAR retVal: DINT;...
  • Seite 68: Kennzeichen Der Technologieobjekte (To)

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Kennzeichen der Technologieobjekte (TO) Ein Technologiepaket stellt Technologieobjekte (TO) bereit, die im SIMOTION SCOUT instanziiert werden. Das instanziierte TO wird in der Programmierung über seinen Namen angesprochen (referenziert). Kennzeichen der Technologie-Funktionen (TO-Funktionen) TO-Funktionen sind in erster Linie Befehle, die bestimmte Aktionen am Technologieobjekt ausführen, weshalb sie auch TO-Befehle genannt werden.
  • Seite 69: Programmbeispiel Mit Namespace-Option

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) INTERFACE USEPACKAGE cam; PROGRAM myPos; END_INTERFACE IMPLEMENTATION // Das folgende Programm muss einer MotionTask zugeordnet // werden. // In der Taskkonfiguration muss die Option "Aktivierung // nach StartupTask" angewählt sein. PROGRAM myPos retVal : DINT;...
  • Seite 70: Unterschiede Zwischen Zyklischer Und Sequentieller Programmierung

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) FUNCTION function1 : VOID VAR_INPUT p_Axis : posAxis; END_VAR retVal : DINT; END_VAR retVal:= Cam1._enableAxis ( axis := p_Axis, nextCommand := Cam1.WHEN_COMMAND_DONE, commandId := _getCommandId() ); END_FUNCTION END_IMPLEMENTATION ACHTUNG Falls ein Namensraum für eine importierte Bibliothek oder Technologiepaket definiert ist, muss dieser immer angegeben werden, wenn eine Funktion, Funktionsbaustein oder Datentyp aus dieser Bibliothek oder diesem Technologiepaket verwendet wird.
  • Seite 71 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Sequentielle Tasks Sequentielle Tasks (z.B. MotionTasks) werden nach dem Start einmal durchlaufen und dann beendet. Bei jedem Start werden alle lokalen Variablen der zugeordneten Programme initialisiert, zur Variableninitialisierung, siehe Einfluss des Compilers auf die Variableninitialisierung (Seite 251).
  • Seite 72: Funktionsparameter Der Technologie-Funktionen

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) 3.2.4 Funktionsparameter der Technologie-Funktionen Die Funktionsparameter der TO-Funktionen sind: mandatory ● , d. h. sie müssen angegeben werden, z. B. die TO-Instanz und die Zielposition beim Positionieren; optional predefined ● , d. h. sie können angegeben werden, bei Nichtangabe wird ein systemmäßig eingestelltes Verhalten (Default-Verhalten) wirksam, z.
  • Seite 73 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Regel Beispiel Der Nutzen für Sie besteht in der Wiederverwendbarkeit der Im Beispiel für vorzugebende Variablen wird im selbst posFB myAxis Quelldatei-Abschnitte, die diese Variablen verwenden. definierten Funktionsbaustein die TO-Instanz myAxis:PosAxis definiert ( Beispielsweise soll ein selbstdefinierter Funktionsbaustein (FB) eine TO-Funktion mit variablen Achsbezeichnungen als Beim Aufruf einer TO-Funktion aus diesem FB heraus wird...
  • Seite 74 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Bezugs- und Wertvorgabe für Bewegungsgrößen Parameter von Bewegungsgrößen (z. B. Geschwindigkeit, Beschleunigung) werden über einen Bezugs- und einen Wertparameter definiert. ● Der Bezugsparameter legt fest, auf welche Systemgröße sich die zu übergebende Bewegungsgröße bezieht und wie ggf.
  • Seite 75 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Vorgabe der Funktionsparameter ohne Angabe der Funktionsparameterbezeichner Für die Angabe von Funktionsparametern beim Funktionsaufruf werden zwei Varianten unterstützt (siehe IEC1131/3 2nd Edition, 11/98): ● "call by value" als Aufruf mit fester Anordnung und Anzahl der Eingangsvariablen entsprechend der Funktionsdeklaration, wobei kein Zuweisungsoperator zugelassen ist.
  • Seite 76 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Tabelle 3- 9 Datentypen von Technologieobjekten (Namen der TO) Technologieobjekt Datentyp enthalten im Technologiepaket Drehzahlachse driveAxis , PATH, CAM_EXT Externer Geber externalEncoderType , PATH, CAM_EXT Messtaster measuringInputType , PATH, CAM_EXT Nocken outputCamType , PATH, CAM_EXT Nockenspur (ab V3.2) _camTrackType...
  • Seite 77: Übergangs- Und Weiterschaltbedingungen

    := _getCommandId() ); END_FUNCTION_BLOCK PROGRAM Example myFB : posFB; END_VAR myFB (myaxis := Axis1); //Name wird bei Inbetriebnahme im SIMOTION SCOUT angelegt. myFB (myaxis := Axis2); //Name wird bei Inbetriebnahme im SIMOTION SCOUT angelegt. END PROGRAM //... 3.2.5 Übergangs- und Weiterschaltbedingungen Grundlagen zur Bearbeitung einer TO-Funktion (Befehlsbearbeitung) ) Die TO-Funktionen werden als Befehl an das Technologieobjekt zur Bearbeitung übergeben.
  • Seite 78 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Bild 3-1 Befehlsbearbeitung an den Achsen Der MotionBuffer nimmt Motion-Befehle auf, die vom Interpolator sequentiell abgearbeitet werden. Die Anzahl von Motion-Befehlen, die der MotionBuffer aufnehmen kann, wird über TypeOfAxis.DecodingConfig.numberOfMaxbufferedCommandId das Konfigurationsdatum definiert. Somit können mehrere Motion-Befehle unabhängig vom Bearbeitungszustand des aktiven Befehls am TO abgesetzt werden.
  • Seite 79 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Übergangsverhalten vom aktuell wirksamen Bewegungsbefehl Das Übergangsverhalten vom aktuell wirksamen Bewegungsbefehl am Technologieobjekt MergeMode legen Sie in der TO-Funktion mit dem Parameter fest. Hier geben Sie an, wie sich die TO-Funktion in die Bearbeitungsfolge der Befehle am Technologieobjekt einreiht bzw.
  • Seite 80 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Im Wesentlichen unterscheidet man zwischen asynchroner und synchroner Befehlsbearbeitung: ● Asynchrone Befehlsbearbeitung: Die TO-Funktion wird an das Technologieobjekt übergeben und das Programm nextCommand unmittelbar fortgesetzt. Hierzu wird der = IMMEDIATELY gesetzt. In diesem Fall ist seitens der Applikation sicherzustellen, dass TO-Funktionen nur einmalig angestoßen werden und Rückmeldungen durch Abfrage des Achs- bzw.
  • Seite 81 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) END_VAR r_trig_1 (boStartCommand); // Aufruf der Flankenerkennung IF r_trig_1.q THEN // Anforderung einer systemweit eindeutigen CommandId sCommandId := _getCommandId (); // CommandId am TO registrieren // --> Diagnose von Abbruch und Ende des Befehls möglich i32Ret := _bufferAxisCommandId ( axis := Axis_1, commandId := sCommandId );...
  • Seite 82 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) // ... END_IF; ELSIF boCommandDone THEN // Bearbeitung nach Befehlsausführung // ... END_IF; // Ab hier weiteres Anwenderprogram // ... END_PROGRAM END_IMPLEMENTATION Tabelle 3- 14 Beispiel für synchrone Programmbearbeitung (sequentielle Programmierung) INTERFACE USEPACKAGE CAM;...
  • Seite 83: Diagnose Der Befehlsbearbeitung

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) 3.2.6 Diagnose der Befehlsbearbeitung Befehlsidentifikation – CommandId Beim Absetzen eines Befehls durch eine Systemfunktion wird eine CommandId übergeben. Diese CommandId wird während der Bearbeitungsdauer durch das TO am Befehl gespeichert und identifiziert somit den Befehl. _getCommandId Mit der Systemfunktion erhält man eine projektweit eindeutige CommandId.
  • Seite 84 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Statusabfrage nach Ende oder Abbruch eines Befehls Standardmäßig wird ein Befehl nach Beendigung oder Abbruch aus der internen Ende Abbruch Befehlsverwaltung des TO entfernt. Somit kann der Status oder eines Befehles nicht durch den Aufruf o. g. Systemfunktionen diagnostiziert werden. Damit es möglich ist, den Befehlszustand auch nach Beendigung oder Abbruch des Befehls abzufragen, muss die CommandId des betreffenden Befehls der internen Befehlsverwaltung _buffer...CommandId...
  • Seite 85: Bezeichner Von Instanzen Der Technologieobjekte

    Bezeichner von Instanzen der Technologieobjekte Die Bezeichner von Instanzen der Technologieobjekte legen Sie bei deren Konfiguration in SIMOTION SCOUT fest. Sie müssen innerhalb eines SIMOTION Geräts eindeutig definiert sein. Sie können in der Regel die Instanz eines Technologieobjekts mit ihrem Bezeichner aufrufen.
  • Seite 86: Wandlung Von To-Datentypen

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) 3.2.8 Wandlung von TO-Datentypen Typkonvertierungen innerhalb der hierarchischen Datentypen driveAxis posAxis followingAxis Die TO-Datentypen sind vom Funktionsumfang hierarchisch strukturiert. posAxis ● Eine Positionierachse (Datentyp ) enthält die Funktionalität einer Drehzahlachse driveAxis (Datentyp followingAxis ●...
  • Seite 87 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Explizite Typkonvertierung Die Zuweisung von Variablen (mit TO-Datentyp) an Variable mit hierarchisch höherem TO- anyObject_to_Object Datentyp ist mit Hilfe der Typkonvertierungsfunktion möglich. Voraussetzung dafür ist, dass die Quellvariable (mit dem hierarchisch niederen TO- Datentyp) auf eine TO-Instanz verweist, die hierarchisch mindestens dem TO-Datentyp der Zielvariablen entspricht (siehe Beispiel folgende Tabelle).
  • Seite 88: Syntax Der Systemvariablen

    Bestandteil TO-Name TO-Name steht für den Namen eines Technologieobjekts (TO), z. B. einer Achse. Hierzu haben Sie: entweder das Technologieobjekt in SIMOTION SCOUT eingefügt, • oder im Programm eine Variable vom Datentyp dieses Technologieobjekts • deklariert. Eine Auflistung aller Datentypen für Technologieobjekte finden Sie in Eingangsparameter der Technologie-Funktionen.
  • Seite 89: Verwendung Der Systemvariablen

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Syntax- Bedeutung Bestandteil _device _device Das optionale Wort kennzeichnet den vordefinierten Namensraum für gerätespezifische Variablen (Systemvariablen der SIMOTION Geräte, I/O- Variablen, geräteglobale Variablen). Sie sollten es verwenden, um die Variable eindeutig als Systemvariable des SIMOTION Geräts zu spezifizieren. Diese Systemvariablen sind auch vorhanden, wenn kein Technologiepaket geladen ist.
  • Seite 90 Beispiele für Systemvariablen Axis1 Sie wollen die Achsposition und den dynamischen Achszustand für die Achse abfragen. Voraussetzungen: ● Sie haben die Achse Axis1 im SIMOTION SCOUT angelegt oder sie im Programm myAxis PosAxis definiert und initialisiert, z. B. mittels Variable vom Datentyp ●...
  • Seite 91 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Initialisierung von Systemvariablen Systemvariablen werden bei einem Download des Projekts in der Regel nicht neu initialisiert; ihre Aktualwerte werden nicht auf die Anfangswerte zurückgesetzt. Systemvariablen werden in der Regel nur beim Wiedereinschalten des SIMOTION Geräts neu initialisiert. Ersatzwert beziehungsweise letzten Wert von Systemvariablen bei TO-Restart oder deaktiviertem TO (ab V4.1) Der Zugriff auf Systemvariablen ist auch bei RESTART des TO bzw.
  • Seite 92: Konfigurationsdaten

    3.2.10 Konfigurationsdaten Konfigurationsdaten legen die grundsätzliche Funktionalität eines Technologieobjekts fest. Sie werden i. d. R. bei der Konfiguration des Technologieobjekts mit SIMOTION SCOUT eingestellt und sind zur Laufzeit überwiegend fest. Ein Großteil dieser Konfigurationsdaten kann zur Laufzeit geändert werden. Diese Festlegung ist spezifisch für jedes Konfigurationsdatum und ist im Listenhandbuch zu den...
  • Seite 93 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Tabelle 3- 20 Lesender Zugriff auf ein Konfigurationsdatum eines Technologieobjekts lreal_var : LREAL; drive_var : driveaxis; END_VAR lreal_var := drive_var.setconfigdata.TypeOfAxis.MaxJerk.maximum; // lesender Zugriff auf gespeicherten Wert lreal_var := drive_var.activeconfigdata.TypeOfAxis.MaxJerk.maximum; // lesender Zugriff auf aktuell wirksamen Wert Sie können ein Konfigurationsdatum auf zwei Arten einer Variablen zuweisen: ●...
  • Seite 94 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Sie können einem Konfigurationsdatum auf zwei Arten einen Wert zuweisen: ● Mit einer Wertzuweisung wie im Beispiel der vorhergehenden Tabelle (siehe auch Wertzuweisungen im ST-Prgrammierhandbuch). Dabei wird im Fehlerfall die ExecutionFaultTask Ersatzwert bzw. letzter Wert aufgerufen (siehe auch am Ende des Kapitels).
  • Seite 95 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Zugriff auf Konfigdaten bei TO-Referenzen und Achsarrays Der Zugriff auf Konfigdaten bei TO-Referenzen ist möglich. Für den Zugriff auf Konfigdaten eines Achsarrays müssen Sie eine Zwischenvariable verwenden. Falls Sie versuchen Achsarrays direkt zu verwenden erhalten Sie eine Compiler-Meldung, dass eine Zwischenvariable benutzt werden soll.
  • Seite 96: Zurücksetzen Eines Technologieobjekts

    Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) 3.2.11 Zurücksetzen eines Technologieobjekts VORSICHT Das Zurücksetzen eines Technologieobjekts bricht die aktuelle Bewegung ohne Fehlermeldung ab. Zur Übernahme von Konfigurationsdaten, die einen Restart des Technologieobjekts erfordern, müssen Sie das Technologieobjekt zurücksetzen. Die Vorgehensweise ist restart.restartActivationSetting abhängig vom Konfigurationsdatum des Technologieobjekts:...
  • Seite 97 Programmieren mit Technologieobjekten 3.2 Programmierung der Technologieobjekte (TO) Tabelle 3- 22 Auswahl der Geräte und Technologiepakete an einer Bibliothek Auswahl Beschreibung Geräteunabhängig Sie müssen zusätzlich wählen: die Technologiepakete • die Versionsnummer der ausgewählten Technologiepakete • Beachten Sie: 1. Die Bibliothek wird ohne Bezug zu einem SIMOTION Gerät und einer Version des SIMOTION Kernels übersetzt.
  • Seite 98: Reaktion Auf Störungen Und Ereignisse

    Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Reaktion auf Störungen und Ereignisse 3.3.1 Störungen und Ereignisse auswerten Das System SIMOTION hat verschiedene Ablaufebenen, die für die unterschiedliche zeitliche Abfolge von Programmen sorgen. Eine dieser Ablaufebenen ist die Interrupt- Ablaufebene, die bei bestimmten Ereignissen, wie z.
  • Seite 99: Verarbeitungsfehler In Programmen

    Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Alarmkonfiguration Das Systemverhalten bei technologischen Alarmen können Sie in SIMOTION SCOUT festlegen (Alarmkonfiguration). Sie können wählen zwischen: ● STOP: Übergang in Betriebszustand STOP (Alle System- und AnwenderTasks werden gestoppt.) ● STOP U: Übergang in Betriebszustand STOP U (Nur Anwenderprogramm-Tasks werden gestoppt.)
  • Seite 100: Fehler Bei Operationen Mit Gleitpunktzahlen (Fpu-Exceptions)

    Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Tabelle 3- 24 Fehlerreaktion bei Verarbeitungsfehlern in Programmen Fehlerreaktion Taskart Beschreibung CPU in STOP alle Tasks SIMOTION Gerät geht in den Betriebszustand STOP; die ShutdownTask wird gestartet. ExecutionFaultTask Sequentiell (nichtzyklisch) Die ExecutionFaultTask wird gestartet. Die Task, in welcher der Fehler aufgetreten ist, wird abgebrochen;...
  • Seite 101 3.3 Reaktion auf Störungen und Ereignisse ACHTUNG Bei der Anzeige einer Gleitpunktzahl im Engineering-System (z. B. im Symbol-Browser des SIMOTION SCOUT) wird zwischen signalisierenden und stillen NaN nicht unterschieden! FPU-Exceptions Auch die Operationen mit Gleitpunktzahlen sind gemäß IEEE 754 realisiert. Wenn bei den nachstehenden Operation einer der genannten Fehler auftritt, wird eine FPU-Exception ausgelöst:...
  • Seite 102: Fehler Bei Zugriffen Auf Systemvariablen Und Konfigurationsdaten Sowie Auf I/O- Variablen Für Direktzugriff

    Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse ● Überschreiten des Wertebereichs bei Operationen mit gültigen Gleitpunktzahlen Es wird das für die Verarbeitungsfehler in Programmen (Seite 99) festgelegte Verhalten ausgeführt. Wenn die ExecutionFaultTask aufgerufen wird, ist TSI#executionFaultType = _SC_INVALID_FLOATING_POINT_OPERATION, siehe Taskstartinfo (Seite 105). Hinweis Kein Fehler (keine FPU-Exception) wird ausgelöst: •...
  • Seite 103 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Taskart Beschreibung Sequentiell Die ExecutionFaultTask wird gestartet. (nichtzyklisch) Die Task, in welcher der Fehler aufgetreten ist, wird abgebrochen; die abgebrochene Task kann durch den Anwender neu aufgesetzt werden. Zyklisch Die ExecutionFaultTask wird gestartet. Die Task, in welcher der Fehler aufgetreten ist, wird abgebrochen.
  • Seite 104: Fehler Beim Bilden Des Prozessabbilds

    Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse In bestimmten Fällen ist es jedoch nötig, auf Fehler gesondert zu reagieren oder von der festgelegten Fehlerreaktion abzuweichen oder durch vorherige Abfragen Fehler zu vermeiden. Hierzu dienen die Funktionen _getSafeValue (Seite 343) , _setSafeValue _getSafeValue (Seite 346) und _getInOutByte (Seite 349).
  • Seite 105: Taskstartinfo Verwenden

    Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Tabelle 3- 25 Fehlerverhalten beim Aktualisieren des Prozessabbilds bei Reaktion CPU-Stop Ereignis Beschreibung 1. Einmalig wird eine kommende Meldung generiert. Fehler tritt auf 2. Wenn kein Programm in der PeripheralFaultTask eingebunden ist, geht das SIMOTION Gerät in den Betriebszustand STOP;...
  • Seite 106 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Sie verwenden die Abfrage der Taskstartinfo vorwiegend bei SystemInterruptTasks (siehe Beispiele Abfrage von Taskstartinfos in der TechnologicalFaultTask und Abfrage von Taskstartinfo in der TimeFaultTask). Tabelle 3- 26 Taskstartinfo der Anwenderprogramm-Tasks Task Taskstartinfo Bedeutung Bezeichnung...
  • Seite 107 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse TSI#cycleTime TIME projektierte Zykluszeit der Task ServoSynchronousTask: Lagereglertakt • IPOsynchronousTask: Interpolatortakt IPO • IPOsynchronousTask_2: Interpolatortakt IPO_2 • PWMsynchronousTask: PWM-Takt • InputSynchronousTask_1: Takt Input1 • InputSynchronousTask_2: Takt Input2 • PostControlTask_1: Takt Control1 •...
  • Seite 108 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse TSI#alarmNumber DINT Nummer des ausgelösten Alarms (siehe Beschreibung im Diagnosehandbuch SIMOTION Alarme) Die in der Alarmmeldung ausgegebenen Parameter stehen in TSI#alarmP1_DINT bis TSI#alarmP5_LREAL zur Verfügung TSI#alarmP3_UDINT (z. B.: ist Parameter 3 mit Datentyp UDINT).
  • Seite 109 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Tabelle 3- 28 Taskstartinfo der Anwenderprogramm-Tasks (Fortsetzung) Task Taskstartinfo Bedeutung Bezeichnung Datentyp ExecutionFaultTask TSI#startTime Startzeitpunkt der Task TSI#currentTaskId StructTaskId TaskId der Task TSI#cycleTime TIME projektierte Zykluszeit der Task ( = 0, da sequentielle Task) TSI#dwuser_1 DWORD reserviert für interne Zwecke...
  • Seite 110 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse _SC_TO_INSTANCE_NOT_EXISTENT ( = 506) • Zugriff auf nicht vorhandene TO-Instanz: In einer TO-Funktion wird eine Variable vom Datentyp eine Technologieobjekts mit Wert TO#NIL verwendet. TSI#taskId StructTaskId TaskId der Task, in welcher der Verarbeitungsfehler aufgetreten ist.
  • Seite 111 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse _SC_STATION_RECONNECTED ( = 203) • PROFIBUS: Stationswiederkehr eines DP Slaves PROFINET IO: Stationswiederkehr eines IO Device Weitere Information in folgenden TSI: – TSI#logDiagAdr – TSI#eventClass – TSI#faultId _SC_IMAGE_UPDATE_FAILED ( = 204) •...
  • Seite 112 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse _SC_IO_MODULE_SYNCHRONIZED ( = 214) • z.B. Onboard Messtaster SINAMICS (Control Unit) z.B. TM15 / TM17 High Feature / DO1 mit Telegramm 39x: Synchronisation erreicht. Weitere Information in folgenden TSI: – TSI#logBaseAdrIn –...
  • Seite 113 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse _SC_DRIVE_OBJECT_ALARM ( = 218) • Warnungsmeldung vom DO1; Warnungen sin in den Warnparametern hinterlegt, können mit _readDriveParameter ausgelesen werden. Der Alarm ist nicht quittierbar. Er wird mit Kommen der ersten und mit Gehen der letzten Warnung ausgelöst (siehe TSI#details).
  • Seite 114 _SC_MODE_SELECTOR ( = 400): • Betriebsartenschalter _SC_DEVICE_COMMAND ( = 401): • Systemfunktion im Anwenderprogramm _SC_EXTERNAL_COMMAND ( = 402): • Kommando in SIMOTION SCOUT _SC_EXCEPTION ( = 403): • Exception _SC_ALARM_CONFIGURATION ( = 404) • Projektierte Reaktion auf Technologischen Alarm_ Beispiel für Exceptions: Verarbeitungsfehler in Programmen •...
  • Seite 115 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Tabelle 3- 31 Bedeutung der TSI#details in Abhängigkeit der TSI#InterruptId (PeripheralFaultTask) TSI#InterruptId Bedeutung der TSI#details Alarmdaten der alarmierenden Baugruppe _SC_PROCESS_INTERRUPT • ( = 200) Der Aufbau dieser Daten ist dem Handbuch der Baugruppe zu entnehmen bei Alarmquelle in einem SIMOTION I-Slave: •...
  • Seite 116 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Tabelle 3- 32 Bedeutung der TSI#eventClass und TSI#faultId in Abhängigkeit der TSI#InterruptId (PeripheralFaultTask) TSI#InterruptId TSI#eventC TSI#faultId Bussystem Bedeutung lass _SC_PROCESS_INTERRUPT 16#11 16#41 PROFIBUS DP Prozessalarm ( = 200) PROFINET IO P-Bus _SC_DIAGNOSTIC_INTERRUPT 16#39 16#42...
  • Seite 117 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse TSI#InterruptId TSI#eventC TSI#faultId Bussystem Bedeutung lass 16#61 PROFIBUS DP PROFINET DP Modul oder Submodul wurde gesteckt, Modultyp OK 16#63 PROFIBUS DP PROFINET DP Modul oder Submodul wurde gesteckt, aber falscher Modultyp bzw. falsche Baugruppe gesteckt Bussystem, welches die TSI#InterruptId mit der angegebenen TSI#eventClass und TSI#faultId meldet Signalisiert kommendes Ereignis...
  • Seite 118 Programmieren mit Technologieobjekten 3.3 Reaktion auf Störungen und Ereignisse Prozessalarme Prozessalarme werden über die TSI "_SC_PROCESS_INTERRUPT" angezeigt. Nach Auslösen eines Prozessalarms durch eine Baugruppe wird der Alarm ausgelesen, die PeripheralFaultTask aufgerufen und der Alarm quittiert. Tritt in dieser Zeit ein Prozessalarm derselben Baugruppe erneut auf, beachten Sie bitte Folgendes: ●...
  • Seite 119: Fehlerbehandlung Bei Technologieobjekten

    Fehlerbehandlung bei Technologieobjekten Fehlermöglichkeiten bei Technologieobjekten Bei der Programmierung von Technologieobjekten können folgende grundsätzlichen Fehlermöglichkeiten auftreten: ● Das Technologieobjekt selbst kann die von der Applikation gewünschte Funktion nicht ausführen bzw. meldet bestimmte Ereignisse oder Zustände zurück: → Ein Technologischer Alarm wird ausgegeben. Informationen zu den einzelnen Alarmen finden Sie in den SIMOTION Referenzlisten.
  • Seite 120: Auswirkungen Von Alarmen

    Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme Auswirkungen von Alarmen Technologische Alarme lösen Folgereaktionen im System aus. Es wird unterschieden zwischen: ● Auswirkungen auf das betroffene Technologieobjekt selbst: Lokales Verhalten ● Auswirkungen auf andere Technologieobjekte bzw. dem Ablaufsystem: Globales Verhalten Für jeden Alarm sind bestimmte Auswirkungen voreingestellt. Sie können diese Einstellungen jedoch für Ihre Anforderungen anpassen.
  • Seite 121: Lokales Verhalten

    Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme Bezeichnung Wert Bedeutung FORCE_DYNAMIC_LIMIT 0x000020000 Begrenzung von Kraft und/oder Druck ADDITIONAL_SENSOR_FAULT 0x000040000 Fehler an zusätzlichem Geber SYNCHRONOUS_MOTION_FAUL 0x000080000 Gleichlauffehler FOLLOWING_OBJECT 0x000100000 Gleichlaufobjektfehler PATH_SYNCHRONOUS_MOTION 0x000200000 Bahngleichlauffehler _FAULT PATH_MOTION_FAULT 0x000400000 Bahnbewegungsfehler PATH_OBJECT 0x000800000 Bahnobjektfehler Siehe auch Lokales Verhalten (Seite 121) Globales Verhalten (Seite 122) Fehleraktivierung (Seite 122)
  • Seite 122: Globales Verhalten

    Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme 4.2.2 Globales Verhalten globalen Verhalten Mit dem wird die Auswirkung eines TO-Alarms auf das Ablaufsystem beschrieben. Abhängig vom jeweiligen TO-Alarm sind die nachfolgenden Reaktionsmöglichkeiten einstellbar. ● NONE Keine Reaktion des Systems beim Auftreten des Alarms. ●...
  • Seite 123 Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme Fehlerwiederholbarkeit (Continue) Tabelle 4- 2 Fehlerwiederholbarkeit Parameter Continue Bedeutung NO_TIME Der Alarm wird sofort beim Auftreten des Fehlers aktiviert. TIME_n Der Alarm wird nach dem n-maligen Auftreten des Fehlers aktiviert. Der Parameter wirkt nur bei der Einstellung des Parameters TypeOfActivation auf den Wert ACTIVATE_AFTER_NTIME.
  • Seite 124: Technologische Alarme Konfigurieren

    Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme 4.2.4 Technologische Alarme konfigurieren Für jeden Alarm sind individuelle Reaktionen voreingestellt. Sie können diese Voreinstellung durch die folgende Vorgehensweise ändern: 1. Wählen Sie im Projektnavigator den Pfad Ablaufsystem an. Es öffnet sich das Fenster Ablaufsystem.
  • Seite 125 Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme 3. Wählen Sie den Alarm aus, dessen Reaktion Sie ändern wollen. 4. Wählen Sie in der Auswahlliste für den entsprechenden TO-Alarm die gewünschten Reaktionen aus. Die angebotenen Auswahlmöglichkeiten sind abhängig vom jeweiligen Alarm. Bild 4-2 Auswahl eines Technologischen Alarms Hinweis Das Technologieobjekt, dessen Alarme Sie projektieren wollen, muss bereits konfiguriert...
  • Seite 126: Technologische Alarme Anzeigen Und Quittieren

    Technologische Alarme anzeigen und quittieren Technologische Alarme können über verschiedene Wege ausgewertet und quittiert werden: ● Im Online-Modus des SIMOTION SCOUT werden Alarme und Meldungen in der Detailanzeige der Workbench im Register Alarme angezeigt. Durch Quittieren werden alle Alarme des jeweiligen Typs gelöscht.
  • Seite 127: Quittieren Über Anwenderprogramm

    Ab SimaticNet V6.0SP4 OPC Alarms & Events können die Alarme angezeigt und quittiert werden. Außerdem kann der Diagnosepuffer ausgelesen und ggf. quittiert werden. (Handhabung siehe Produktinformation Ethernetbasierende HMI und Diagnosefunktionen, die Sie auf der SIMOTION SCOUT CD Dokumentation finden) 4.2.6 Quittieren über Anwenderprogramm Alle anstehenden TO-Alarme quittieren _resetTechnologicalErrors →...
  • Seite 128 Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme MCC-Aufruf: Alle anstehenden Alarme quittieren Bild 4-3 MCC-Aufruf: Alle anstehenden Alarme quittieren Alle anstehenden Alarme eines TO quittieren ST-Aufrufbeispiel: Alle Alarme an einen TO-Achse, TO-Messtaster und TO-Nocken quittieren UNIT ST_1; INTERFACE USEPACKAGE CAM; PROGRAM EXAMPLE; END_INTERFACE IMPLEMENTATION PROGRAM EXAMPLE...
  • Seite 129 Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme MCC-Aufruf: Alle Alarme an einem TO-Achse, TO-Messtaster und TO-Nocken quittieren Bild 4-4 MCC-Aufruf: Alle Alarme an einem TO-Achse, TO-Messtaster und TO-Nocken quittieren Spezifischen Alarm eines TO quittieren Durch Ergänzen der _reset..-Befehle um die Schalter errorResetMode := SPECIFIC_ERROR und errorNumber := XXXXX kann gezielt ein bestimmter Alarm quittiert werden.
  • Seite 130 Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme MCC-Aufruf: Quittieren des Alarms 30002 an einem TO-Achse Bild 4-5 MCC-Aufruf: Quittieren des Alarms 30002 an einem TO-Achse Rücksetzen eines TO Das TO wird in den Grundzustand versetzt und alle anstehenden Alarme werden quittiert. Hinweis Die Befehle zum Rücksetzen haben neben der Fehlerbehebung auch andere Auswirkungen auf das TO.
  • Seite 131: Auswerten Im Anwenderprogramm

    Fehlerbehandlung bei Technologieobjekten 4.2 Technologische Alarme END_VAR; (* Setze Objekt zurück ('ResetObject') *) s_i_RetVal := _resetAxis(axis:=Achse_1, userDefaultData:=DO_NOT_CHANGE); s_i_RetVal := _resetMeasuringInput( measuringInput:=Messtaster_1, userDefaultData:=DO_NOT_CHANGE); s_i_RetVal := _resetOutputCam(outputCam:=Nocken_1, userDefaultData:=DO_NOT_CHANGE); END_PROGRAM END_IMPLEMENTATION 4.2.7 Auswerten im Anwenderprogramm Bei Alarmen mit dem projektierten globalen Verhalten StartTechnologicalFaultTask wird beim Auftreten, mit jedem Alarm einmal, die TechnologicalFaultTask aufgerufen.
  • Seite 132: Rückgabewerte Von Befehlen

    Fehlerbehandlung bei Technologieobjekten 4.3 Rückgabewerte von Befehlen UNIT ST_1; INTERFACE USEPACKAGE CAM; PROGRAM TO_AlarmProg; END_INTERFACE IMPLEMENTATION PROGRAM TO_AlarmProg s_i_Count : INT; s_i_RetVal: DINT; END_VAR; (*Abfrage ob der Alarm 30002 für die Achse_1 ansteht*) IF (TSI#alarmNumber = 30002) AND (TSI#toInst = Achse_1) THEN (*Zähler inkrementieren*) s_i_Count:= s_i_Count + 1;...
  • Seite 133 Fehlerbehandlung bei Technologieobjekten 4.3 Rückgabewerte von Befehlen Aufrufbeispiel Wenn beim Abarbeiten des Befehls _pos ein Fehler auftritt, soll die Variable g_bo_error auf true gesetzt, der Rückgabewert in den Parameter g_i_errornumber eingetragen und der Baustein abgebrochen werden. Hinweis: Dieses Beispielprogramm muss im Ablaufsystem in eine MotionTask eingehängt werden! UNIT ST_1;...
  • Seite 134: Fehler Beim Zugriff Auf Systemdaten Mit _Get/_Setsafevalue

    Fehlerbehandlung bei Technologieobjekten 4.4 Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue Fehler bei Zugriffen auf Konfigurationsdaten, Systemvariablen oder I/O-Variablen Ab V4.1.3 sind diese Systemfunktionen für Systemvariablen und Konfigdaten nicht unbedingt erforderlich. Bei Zugriffsfehlern (z. B. TO im Restart) kann ein "Ersatzwert" oder "letzter Wert"...
  • Seite 135 Fehlerbehandlung bei Technologieobjekten 4.4 Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue Tabelle 4- 5 Systemverhalten im Fehlerfall bei Verwendung von _getSafeValue Gewünschte Reaktion Systemvariable Konfigdatum I/O-Variable Beim Lesen eines temporär nicht zugreifbaren Wertes: in STOP gehen Aufruf = accessMode STOP_DEVICE STOP_DEVICE STOP_DEVICE Antwort...
  • Seite 136 Fehlerbehandlung bei Technologieobjekten 4.4 Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue Gewünschte Reaktion Systemvariable Konfigdatum I/O-Variable aktuellen Wert nicht realisiert nicht realisiert Aufruf = accessMode NO_CHANGE übernehmen, wird Antwort NO_CHANGE später wirksam Wert Aktueller Wert Tabelle 4- 7 Systemverhalten im Fehlerfall bei Verwendung von _setSafeValue - Fehler beim Schreiben eines ungültigen Wertes Gewünschte Reaktion Systemvariable...
  • Seite 137 Fehlerbehandlung bei Technologieobjekten 4.4 Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue Siehe auch Systemvariablen (Seite 88) Funktion _getSafeValue (Seite 343) Funktion _setSafeValue (Seite 346) Funktion _getInOutByte (Seite 349) Konfigurationsdaten (Seite 92) Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 139: Ablaufsystem/Tasks/Systemtakte

    Ablaufsystem/Tasks/Systemtakte Das Ablaufsystem Das SIMOTION Ablaufsystem stellt verschiedene Ablaufebenen bereit. ● Den Ablaufebenen werden Anwenderprogramm-Tasks zugeordnet. – Den Anwender-Tasks werden Programme zugeordnet. Alle Programme - und damit auch Tasks - können PLC- und Motion-Control-Aufgaben enthalten. Folgende Ablaufebenen sind verfügbar: ● Synchrone Ablaufebenen: synchron zu Regelungs- und Interpolatortakten ●...
  • Seite 140 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem System-Tasks System-Tasks werden regelmäßig vom System abgearbeitet. Der Systemtakt kann vorgegeben werden. Folgende Aufgaben werden von System-Tasks bearbeitet: ● Kommunikation System-Tasks zur Anbindung an den taktsynchronen PROFIBUS, an PROFINET IO mit IRT bzw. den Systemtakt sowie zur Bearbeitung der Peripherie. ●...
  • Seite 141 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem Einstellbare Übersetzungsverhältnisse zwischen Bus-Task, Servo und IPO erlauben eine sinnvolle Lastverteilung und optimalen Systemauslastung. Bei digitalen Antrieben sind diese Ablaufebenen synchronisiert mit dem taktsynchronen PROFIBUS bzw. PROFINET IO mit IRT. Bei analogen Antrieben ohne taktsynchronen PROFIBUS werden die Ablaufebenen von einem internen Timer mit einem einstellbaren Systemtakt versorgt.
  • Seite 142: Ablaufebenen/Tasks

    Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem 5.1.1 Ablaufebenen/Tasks Die Ablaufebenen legen die zeitliche Reihenfolge von Programmen im Ablaufsystem fest. Hierzu enthält jede Ablaufebene eine oder mehrere Tasks. Eine Task stellt den Ablaufrahmen für die Programme zur Verfügung. Jede Task wird bei definierten Bedingungen abgearbeitet. Jeder Task können Sie ein oder mehrere Anwenderprogramme zuordnen und deren Reihenfolge innerhalb der Task festlegen.
  • Seite 143 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem Bei der Verwendung der Technologiepakete werden die vom System zur Verfügung gestellten Ablaufebenen automatisch belegt. Die Bearbeitung der technologischen Funktionen in diesen Ablaufebenen kann durch das Anwenderprogramm nicht beeinflusst werden. Systemtasks sind z.B. azyklische Kommunikation (Ethernet, PROFIBUS DP, PROFINET IO), Debugdienste oder Traceaufbereitung.
  • Seite 144 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem Tabelle 5- 1 Tasks im SIMOTION Runtime-System Task Beschreibung StartupTask Die StartupTask wird beim Übergang des Betriebszustandes STOP bzw. STOPU zu RUN einmalig ausgeführt. Sie ist vorgesehen für Initialisierungen und das Rücksetzen von Technologieobjekten. Freilaufende Tasks: In der Round-Robin-Ablaufebene werden die MotionTasks und BackgroundTask im Zeitscheibenverfahren vom System im Hintergrund abgearbeitet.
  • Seite 145: Ablaufsystem In Simotion Scout

    Taktsynchrone I/O-Verarbeitung an Feldbussystemen (Seite 211) 5.1.2 Ablaufsystem in SIMOTION SCOUT Alle im Ablaufsystem verwendeten Tasks sind in SIMOTION SCOUT sichtbar. ● Markieren Sie im Projektnavigator das SIMOTION Gerät und wählen Sie im Menü Zielsystem > Ablaufssystem konfigurieren oder doppelklicken Sie auf ABLAUFSYSTEM.
  • Seite 146 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem Ablaufsystem Hier wird das Ablaufsystem mit den Ablaufebenen und den zugeordneten Tasks angezeigt. Ablaufebenenbaum Der Ablaufebenenbaum zeigt als feste Einträge die zur Verfügung stehenden Ablaufebenen/Tasks. Im Ordner OperationLevel sind die Tasks zusammengefasst, die beim Betriebszustand RUN zur Verfügung stehen.
  • Seite 147: Task-Prioritäten

    Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem 5.1.3 Task-Prioritäten Die Tasks mit ihren zugeordneten Programmen werden zu einem bestimmten Zeitpunkt gestartet und abgearbeitet. Sollen mehrere Task zum gleichen Zeitpunkt gestartet und abgearbeitet werden, so wird durch die Priorität festgelegt, welche Task Vorrang in der Bearbeitung hat.
  • Seite 148 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem Priorität Ablaufebene Task zyklisch/ Bedeutung sequentiell TimerInterruptTasks TimerInterruptTask1 ... z ... z Timer-Alarme TimerInterruptTask5 UserInterruptTasks UserInterruptTask_1 Anwender-Alarm (in der Reihenfolge der Ereignisse) UserInterruptTask_2 Anwender-Alarm (in der Reihenfolge der Ereignisse) RoundRobin BackgroundTask Anwenderprogramm-Task (Reihenfolge kann nicht festgelegt werden.) MotionTask_1 ...
  • Seite 149 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem Überprüfung der Bedingung für UserInterruptTask Die Bedingung für die UserInterruptTasks wird in der IPOSynchronousTask überprüft, und zwar vor der Ausführung des Anwenderprogrammes der IPOSynchronousTask. Auftretende Fehler bei der Bedingung für die UserInterruptTask werden so behandelt, als kämen sie aus der IPOsynchronousTask.
  • Seite 150: Laufzeitmodell In Simotion

    Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem 5.1.4 Laufzeitmodell in SIMOTION Das folgende Diagramm zeigt den prinzipiellen Ablauf und (von oben nach unten) die Prioritäten der Tasks in SIMOTION. Erläuterungen zum Bild: Die Darstellung gilt für ein Verhältnis zwischen DP, Servo und IPO von 1:1:1) Farbe blau/grün: für den Anwender zugänglich (Applikation/Technologieobjekte) •...
  • Seite 151 Ablaufsystem/Tasks/Systemtakte 5.1 Das Ablaufsystem 3. System Servo: Systemberechnungen im Servotakt (u.a. Lageregler). Wenn nicht alle Tasks der Servo-Ebene in einem Zyklus (Bus-Takt) berechnet werden können, kommt es zu einem Ebenenüberlauf und das System geht in den Betriebszustand STOP, die Anlaufsperre wird gesetzt und es erfolgt ein entsprechender Eintrag in den Diagnosepuffer.
  • Seite 152: Ablaufsystem Im Symbolbrowser

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks 5.1.5 Ablaufsystem im Symbolbrowser Beschreibung Sie können Programminstanzdaten von Programmen, die im Ablaufsystem verwendet werden, beobachten und ggf. auch ändern. Es handelt sich dabei um die Werte von lokalen Variablen, die normalerweise an der Unit nicht beobachtet werden können. Sie haben z.B.
  • Seite 153 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Nach Beenden der StartupTask ist der Betriebszustand RUN erreicht. Zu diesem Zeitpunkt werden folgende Tasks gestartet: ● SynchronousTasks ● TimerInterruptTasks ● MotionTasks, bei denen das Attribut für automatischen Start gesetzt ist ● BackgroundTask Im Register Programmzuordnung weisen Sie die erstellten und übersetzten Programme der StartupTask zu und legen die Ablaufreihenfolge fest.
  • Seite 154: Motiontasks

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks 4. Geben Sie ggf. die Bereichsgrenze für dynamische Daten (Stackgröße) an. 5. Legen Sie die Fehlerreaktion bei Programmfehler fest (z. B. ExecutionFaultTask). Taskkonfiguration - StartupTask Im Register Taskkonfiguration parametrieren Sie die Fehlerreaktion bei Programmfehlern. Folgende Parameter können Sie einstellen: Feld/Schaltfläche Bedeutung/Hinweis Bereichsgrenzen für...
  • Seite 155 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks MotionTasks werden in der Round-Robin-Ablaufebene ausgeführt. Hinweis Die Geräte C230 und C240 verfügen nur über 20 MotionTasks, alle anderen CPUs (siehe oben) verfügen über 32. Bei C230 und C240 können die überzähligen MotionTasks gelöscht werden. Diese gelöschten MotionTasks können nicht wieder angelegt werden. MotionTasks und BackgroundTask teilen sich die freie Zeit neben den höherprioren System- und Anwenderprogramm-Tasks.
  • Seite 156: Motiontasks Konfigurieren

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Folgende Parameter können Sie einstellen: Feld/Schaltfläche Bedeutung/Hinweis MotionTask Unter MotionTask wählen Sie eine der MotionTasks aus, der Sie die Programme zuweisen wollen. Sie können einer MotionTask mehrere Programme zuweisen. MotionTask_1 bis Vordefinierte Namen der möglichen MotionTasks. MotionTask_n Task im Ablaufsystem Aktivieren Sie die Kontrollkästchen, wenn die Task im Ablaufsystem...
  • Seite 157 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks 4. Ordnen Sie im Register Programmzuordnung die gewünschten Programme dieser Task zu und legen Sie die Ablaufreihenfolge fest. Bild 5-8 Konfiguration von MotionTasks (Taskkonfiguration) 5. Klicken Sie auf das Register Taskkonfiguration. 6. Aktivieren Sie die Option Aktivierung nach StartupTask, wenn die MotionTask nach der StartupTask einmalig starten soll.
  • Seite 158: Backgroundtask

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Feld/Schaltfläche Bedeutung/Hinweis Fehlerreaktion bei Hier wählen Sie die Fehlerreaktion, wenn bei Programmen Programmfehler Verarbeitungsfehler auftreten. Programmfehler sind z. B. fehlerhafte Operationen bei Gleitkommazahlen, Division durch Null und Überschreiten von Feldgrenzen. CPU in STOP CPU wechselt in den Zustand STOP und die ShutdownTask wird gestartet.
  • Seite 159 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Start der BackgroundTask Der Start der BackgroundTask erfolgt automatisch nachdem der Betriebszustand RUN erreicht ist oder nach Ablauf der Task (mit dem nächsten Servo-Takt). Beenden der BackgroundTask Eine BackgroundTask wird beendet bei Übergang in den Betriebszustand STOP oder STOPU (Start der ShutdownTask).
  • Seite 160 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks 4. Geben Sie ggf. die Bereichsgrenze für dynamische Daten (Stackgröße) an. 5. Geben Sie einen Wert an für die Zeitüberwachung. Bei Überschreiten dieser Zeit kann die zugehörige SystemInterruptTask aufgerufen werden (TimeFaultBackgroundTask) oder die CPU in STOP gesetzt werden, 0 ms = keine Überwachung).
  • Seite 161: Timerinterrupttasks

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Siehe auch MotionTasks (Seite 154) Programme den Ablaufebenen/Tasks zuweisen (Seite 183) Zeitüberwachung (Seite 200) Einstellung der Zeitaufteilung (Seite 203) SystemInterruptTasks (Seite 171) Zeitaufteilung in der Round-Robin-Ablaufebene (Seite 201) 5.2.4 TimerInterruptTasks TimerInterruptTasks sind vorgesehen, um Programme periodisch zu starten. Es stehen fünf TimerInterruptTasks, TimerInterruptTask_1 bis TimerInterruptTask_5, für verschiedene Zeitebenen zur Verfügung.
  • Seite 162: Beenden Einer Timerinterrupttask

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Beenden einer TimerInterruptTask TimerInterruptTasks werden automatisch beendet nach Ablauf der Programme, welcher der TimerInterruptTask zugeordnet sind. Im Register Programmzuordnung weisen Sie die erstellten und übersetzen Programme der gewählten TimerInterruptTask zu und legen die Ablaufreihenfolge fest. Folgende Parameter können Sie einstellen: Feld/Schaltfläche Bedeutung/Hinweis...
  • Seite 163 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks 4. Ordnen Sie im Register Programmzuordnung die gewünschten Programme dieser Task zu und legen Sie die Ablaufreihenfolge fest. Bild 5-12 Konfiguration der TimerInterruptTasks (Taskkonfiguration) 5. Wechseln Sie in das Register Taskkonfiguration. 6. Geben Sie ggf. die Bereichsgrenze für dynamische Daten (Stackgröße) an. 7.
  • Seite 164 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Taskkonfiguration - TimerInterruptTasks Im Register Taskkonfiguration legen Sie Startverzögerung, Zeitüberwachung und die Fehlerreaktion für die TimerInterruptTasks fest. Folgende Parameter können Sie einstellen: Feld/Schaltfläche Bedeutung/Hinweis Bereichsgrenzen für Hier tragen Sie die Größe des Stacks in Byte für diese Task ein. Beim Dynamische Daten Ablauf der Programme, die dieser Task zugeordnet sind, wird diese Größe im Stack für Daten bereitgestellt.
  • Seite 165: Synchronoustasks

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks 5.2.5 SynchronousTasks SynchronousTasks werden synchron zum angegebenen Systemtakt periodisch gestartet. Sie laufen in der zeitgesteuerten Ablaufebene mit hoher Priorität ab. Es gibt folgende SynchronousTasks: ● ServoSynchronousTask (ab V4.0): synchron zum Servo-Takt In der Servo-synchronen Task können Sie zeitkritische Klemme-Klemme-Reaktionen für I/O oder eine schnelle Beeinflussung von Sollwerten auf der Servo-Ebene realisieren.
  • Seite 166 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Feld/Schaltfläche Bedeutung/Hinweis PostControlTask _1/2 SynchronousTask, die für Regelung des TO Temperaturregler (TCTasks_1/2) verwendet wird. Task im Ablaufsystem Aktivieren Sie die Kontrollkästchen, wenn die Task im verwenden Ablaufsystem angezeigt und verwendet werden soll. Ist die Kontrollkästchen deaktiviert, können Sie dieser Task keine Programme zuweisen.
  • Seite 167 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Folgende Parameter können Sie einstellen: Tabelle 5- 3 Taskkonfiguration ServoSynchronousTask Feld/Schaltfläche Bedeutung/Hinweis Bereichsgrenzen für Hier tragen Sie die Größe des Stacks in Byte für diese Task ein. Beim Dynamische Daten Ablauf der Programme, die dieser Task zugeordnet sind, wird diese Größe im Stack für Daten bereitgestellt.
  • Seite 168 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks IPOSynchronousTask/IPOSynchronousTask_2 IPOSynchronousTasks sind vorgesehen für Anwendungen, bei denen z. B. schnelle und deterministische Reaktionen oder Korrekturbewegungen erforderlich sind. Zeitoptimale Übergabe von Bewegungskommandos an die Bewegungsführung sind damit möglich. IPOsynchronousTasks laufen innerhalb eines IPO-Taktes unmittelbar vor dem Interpolator. Befehle in diesen Tasks können somit die Bewegungsführung direkt beeinflussen.
  • Seite 169 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks SynchronousTasks konfigurieren 1. Klicken Sie im Ablaufebenenbaum auf die entsprechende Task. 2. Wählen Sie im Auswahlfeld Für Taktebene die gewünschte SynchronousTask aus. Bild 5-13 Konfiguration der SynchronousTasks (Programmzuordnung) 3. Ordnen Sie im Register Programmzuordnung die gewünschten Programme dieser Task zu und legen Sie die Ablaufreihenfolge fest.
  • Seite 170 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Taskkonfiguration - SynchronousTasks Im Register Taskkonfiguration wählen Sie die Fehlerreaktion für die SynchronousTask. Folgende Parameter können Sie einstellen: Tabelle 5- 4 Taskkonfiguration IPOSynchronousTask Feld/Schaltfläche Bedeutung/Hinweis Bereichsgrenzen für Hier tragen Sie die Größe des Stacks in Byte für diese Task ein. Beim Dynamische Daten Ablauf der Programme, die dieser Task zugeordnet sind, wird diese Größe im Stack für Daten bereitgestellt.
  • Seite 171: Systeminterrupttasks

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Feld/Schaltfläche Bedeutung/Hinweis Task/Takt Hier wählen Sie für die angegebenen Task die Zeitdauer in Prozent vom angegebenen Takt (z. B. IPOsynchrnonousTask/IPO-Takt). Benötigt die Task mehr Zeit als hier eingestellt, reagiert das System mit dem unter Fehlerreaktion gewählten Verhalten. Um die Systemtakte zu konfigurieren, markieren Sie im Projektnavigator die CPU und wählen im Menü...
  • Seite 172: Start Einer Systeminterrupttask

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Start einer SystemInterruptTask Der Start einer SystemInterruptTask erfolgt automatisch, nach Auftreten des eingestellten Ereignisses. Tritt ein Ereignis auf, das eine SystemInterruptTask startet, muss die SystemInterruptTask im Ablaufsystem verwendet und dieser Task ein Programm zugeordnet werden, sonst geht die CPU in STOP.
  • Seite 173 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks TimeFaultTask Die TimeFaultTask wird gestartet, wenn die Zeitüberwachung einer TimerInterruptTask anspricht. Ist die TimeFaultTask nicht konfiguriert bzw. kein Programm zugeordnet, geht die CPU in STOP. In der TimeFaultTask können Sie die Reaktion auf Zeitüberläufe der TimerInterruptTasks programmieren.
  • Seite 174 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks ExecutionFaultTask Die ExecutionFaultTask wird entsprechend ihrer Priorität bei Programmlauffehlern sofort gestartet. Zu Programmlauffehlern zählen z. B.: ● Fehlerhafte Operationen mit Gleitkommazahlen, wie Logarithmus von negativen Zahlen, ungültige Zahl, ... ● Division durch Null ● Überschreiten von Feldgrenzen ●...
  • Seite 175 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks SystemInterruptTasks konfigurieren 1. Klicken Sie im Ablaufebenenbaum auf SystemInterruptTasks. 2. Wählen Sie im Auswahlfeld Für Task eine der vorgegebenen Tasks aus. Bild 5-15 Konfiguration der SystemInterruptTasks (Programmzuordnung) 3. Ordnen Sie im Register Programmzuordnung die gewünschten Programme dieser Task zu und legen Sie die Ablaufreihenfolge fest.
  • Seite 176: Userinterrupttasks

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Taskkonfiguration - SystemInterruptTasks Im Register Taskkonfiguration parametrieren Sie die Fehlerreaktion bei Programmfehlern. Folgende Parameter können Sie einstellen: Feld/Schaltfläche Bedeutung/Hinweis Bereichsgrenzen für Hier tragen Sie die Größe des Stacks in Byte für diese Task ein. Dynamische Daten Beim Ablauf der Programme, die dieser Task zugeordnet sind, wird diese Größe im Stack für Daten bereitgestellt.
  • Seite 177: Start Einer Userinterrupttask

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Start einer UserInterruptTask UserInterruptTasks werden automatisch gestartet, sobald die anwenderdefinierte Interrupt- Bedingung erfüllt ist. Die Interrupt-Bedingung wird im Interpolator-Takt geprüft. Bei gleichzeitigem Start wird die UserInterruptTask_1 vor der UserInterruptTask_2 bearbeitet. Hinweis Kommt es während des Absteuerns zu einem anwenderdefinierten Interrupt, wird die UserInterruptTask nicht mehr gestartet.
  • Seite 178 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks UserInterruptTasks konfigurieren 1. Klicken Sie im Ablaufebenenbaum auf UserInterruptTasks. 2. Wählen Sie im Auswahlfeld Für Task eine der UserInterruptTasks aus. 3. Legen Sie die Bedingung für das Starten dieser Task fest. Bild 5-17 Konfiguration der UserInterruptTasks (Programmzuordnung) 4.
  • Seite 179: Bedingung Für Userinterrupttask Formulieren

    ● geräteglobale Variablen ● Unit-Variablen in einer ST/MCC oder KOP/FUP-Quelle SIMOTION SCOUT unterstützt Sie bei der Erstellung der Formel. So formulieren Sie eine Bedingung für den Start des UserInterruptTasks: 1. Wählen Sie unter Für Task den UserInterrupt, für den Sie die Startbedingung festlegen wollen.
  • Seite 180 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Bild 5-20 Befehlsbibliothek im SCOUT Einzelne Operationen öffnen Sie durch Klicken auf das Pluszeichen vor den Ordnern. Die Operatoren können Sie per Drag&Drop in das jeweilige Textfeld ziehen. Diese Befehle können Sie nutzen, um z. B. Bedingungen zu definieren. Taskkonfiguration - UserInterruptTasks Im Register Taskkonfiguration parametrieren Sie die Fehlerreaktion bei Programmfehlern.
  • Seite 181: Shutdowntask

    Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks Siehe auch Programme den Ablaufebenen/Tasks zuweisen (Seite 183) 5.2.8 ShutdownTask Die ShutdownTask ist vorgesehen für gezieltes Eingreifen in den Betriebszustandsübergang von RUN nach STOPU/STOP oder zur Programmierung von Anhalteabläufen mit vorparametrierter Bremsrampe wie z. B. gezieltes Setzen von Ausgängen, definiertes Herunterfahren von Achsen.
  • Seite 182 Ablaufsystem/Tasks/Systemtakte 5.2 Beschreibung der Anwenderprogramm-Tasks ShutdownTask konfigurieren 1. Klicken Sie im Ablaufebenenbaum auf ShutdownTask. Bild 5-21 Konfiguration der ShutdownTask (Programmzuordnung) 2. Ordnen Sie im Register Programmzuordnung die gewünschten Programme dieser Task zu und legen Sie die Ablaufreihenfolge fest. Bild 5-22 Konfiguration der ShutdownTask (Taskkonfiguration) 3.
  • Seite 183: Ablaufsystem Konfigurieren

    Die Programme müssen den Ablaufebenen zugeordnet werden. Nur dann werden die Programme abgearbeitet. Mit SIMOTION SCOUT können Sie Programme eines MCC-Quelle, einer ST- oder KOP/FUP-Quelle nach der Erstellung einer oder mehreren Tasks zuordnen. Sie können einer Task mehrere Programme zuordnen.
  • Seite 184: Ablaufsystem - Programmzuordnung

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Sie können auch ein Programm mehreren Tasks zuordnen, die dann unabhängig voneinander bearbeitet werden. Durch Programmzuordnung legen Sie u. a. fest: ● Die Priorität, mit der die Programme ablaufen ● Das Ablaufverhalten: sequentiell/zyklisch ● Das Initialisierungsverhalten von Programmvariablen Siehe Programmierhandbuch SIMOTION MCC bzw.
  • Seite 185: Programme Den Tasks Zuordnen

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Feld/Schaltfläche Bedeutung/Hinweis Task Hier wird eine Liste aller Programme angezeigt, die dieser Task zugeordnet sind. Die Reihenfolge der Programme in der Liste entspricht der Ablaufreihenfolge beim Abarbeiten der Programme. Das oberste Programm der Liste wird als erstes abgearbeitet. Pfeil nach oben Mit dem Pfeil verschieben Sie das markierten Programm innerhalb der Task um eine Position nach oben.
  • Seite 186 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren In der linken Fensterhälfte sehen Sie den Ablaufebenenbaum. Er zeigt als Einträge die Ablaufebenen / Tasks an, bei denen Task im Ablaufsystem verwenden angeklickt ist. Im Ordner OperationLevels sind die Tasks zusammengefasst, die beim Betriebszustand RUN zur Verfügung stehen. Unterhalb jeder Ablaufebene bzw.
  • Seite 187: Stackgröße

    In diesen Dokumentationen erhalten Sie auch Informationen zur Verwendung dieser Tasksteuerbefehle und einige Beispiele. Stackgröße Im SIMOTION SCOUT Version ab V3.0 kann im Task-Konfigurationsfenster im Register Taskkonfiguration die Stackgröße (Bereichsgrenze für dynamische Daten) der jeweiligen Task eingestellt werden. Ein Defaultwert ist jeweils vorgegeben.
  • Seite 188: Auswahl Der Taktquelle

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren 5.3.2 Auswahl der Taktquelle Die Auswahl der Taktquelle erfolgt durch die Geräteprojektierung in der HW-Konfiguration. Sobald Sie eine der Schnittstellen als taktsynchrone DP/PN-Schnittstelle parametriert haben (Anwahl Äquidistanz im Eigenschaftsdialog), wird der eingestellte Takt als Bus-Takt verwendet. Die DP/PN- Kommunikationsebene sowie die Servo- und Interpolator-Ebene werden auf den Bus-Takt synchronisiert.
  • Seite 189: Systemtakte Festlegen

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren 5.3.3 Systemtakte festlegen Nach der Auswahl der Taktquelle legen Sie die Abtastzeiten der von dem Grundtakt abgeleiteten isochronen (taktsynchronen) Ablaufebenen fest. Hierzu gehören: ● Basis-Takt / Bus-Takt (DP-Takt / PN-Takt): siehe Tabelle zu Ablaufsystem - Systemtakte Der Basis-Takt ist der Grundtakt, wenn in HW Konfig keine taktsynchrone DP/PNSchnittstelle parametriert wurde.
  • Seite 190 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren ● DCCAux_2(DCC) Takt Der DCCAux_2 Takt kann im Verhältnis 1:2 bis 1:32 zum DCCAux Takt untersetzt werden. ● PWM-Takt: für Technologiepaket TControl Hinweis Die Einstellungen der Systemtakte beeinflussen den Systemablauf in hohem Maße. Nehmen Sie deshalb die Einstellungen mit großer Sorgfalt vor. Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 191: Systemtakte Einstellen

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Systemtakte einstellen 1. Rufen Sie das Konfigurationsfenster im Hauptmenü über Zielsystem > Experte > Systemtakte einstellen... auf, oder im Kontextmenü des Gerätes bzw. im Kontextmenü des ABLAUFSYSTEMs über Experte > Systemtakte einstellen. Bild 5-25 Einstellung der Systemtakte im SCOUT 2.
  • Seite 192 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Systemtakte für TControl einstellen 1. Im Konfigurationsfenster Systemtakte können Sie über die Taste TControl die Einstellungen für die TControl-Systemtasks einblenden. 2. Über das Kontrollkästchen Systemtasks für TControl verwenden können Sie die TControl-Systemtasks aktivieren oder deaktivieren. Ist Systemtasks für TControl verwenden aktiviert, werden die speziellen Tasks für die Temperaturkanäle im Ablaufsystem angezeigt.
  • Seite 193 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Ablaufsystem - Systemtakte Folgende Parameter können Sie einstellen: Feld/Schaltfläche Bedeutung/Hinweis Taktverhältnisse Basis-Takt bzw. Der Basis-Takt ist der Grundtakt, wenn in HW Konfig keine Bus-Takt taktsynchrone DP-/PN-Schnittstelle parametriert wurde. Wenn die Einstellung "Äquidistanter Buszyklus" aktiviert ist, kann der "Bus- Takt"...
  • Seite 194: Systemtakte Den Technologieobjekten Zuweisen

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Feld/Schaltfläche Bedeutung/Hinweis Systemtasks für TControl Aktivieren Sie die Kontrollkästchen, wenn die speziellen Tasks für verwenden die Temperaturkanäle im Ablaufsystem angezeigt werden sollen. Wenn Sie keinen Temperaturkanal projektiert haben, sollten Sie die Systemtasks für TControl deaktivieren, da die Systemtasks dann unnötige Rechenzeit beanspruchen.
  • Seite 195: Tasklaufzeiten

    Messtaster Die Systemtakte von Nocken und Messtastern, sowie ab V3.2 auch für Achsen werden in SIMOTION SCOUT im Dialog Konfiguration eingestellt. Ab V4.1 kann in Ausnahmefällen der IPO-Anteil auch im Servo gerechnet werden, siehe dazu Bewegungsführung / Interpolator im Handbuch TO Achse.
  • Seite 196 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Es wird dabei unterschieden zwischen: ● den Laufzeiten der einzelnen Tasks innerhalb einer Ebene (Taskruntime) Die Taskruntime zeigt die Summe der netto-Laufzeiten der Task an (ohne die Unterbrechungszeiten). ● der Laufzeit der Ebene (effectiveTaskruntime) Die effectiveTaskruntime zeigt die effektive Laufzeit einer Ebene an (inklusive der Unterbrechungszeiten).
  • Seite 197: Zeit- Und Ebenenüberläufe

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Hinweis Zur Ermittlung der Tasklaufzeiten muss die Systemvariable taskRuntimeMonitoring auf enable gesetzt werden. Die Tasklaufzeiten sind auch in der SCOUT Gerätediagnose sichtbar. Siehe auch Funktionen zur Laufzeitmessung von Tasks - Übersicht (Seite 279) Ablaufsystem optimieren (Seite 482) Effizient Programmieren - Übersicht (Seite 481) 5.3.6 Zeit- und Ebenenüberläufe...
  • Seite 198 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Durch eine eingestellte Toleranz wird der nächste IPO-Takt verwendet, um: ● den Rechenprozess des vorhergehenden Taktes zu beenden, ohne das die eingestellte Fehlerreaktion eintritt, ● den Rechenprozess des aktuellen Taktes zu starten. Tritt ein Ebenüberlauf wiederholt im nächsten Ebenenzyklus auf (wenn keine Toleranz eingestellt oder die Anzahl überschritten ist), so wird die CPU in STOP gesetzt um eine Blockade des Gesamtsystems zu verhindern.
  • Seite 199 Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren Performantes Programmieren Treten Ebenenüberläufe auf, aber ein Vergrößern des Bus/Servo-Takt ist nicht möglich, können folgende Maßnahmen durchgeführt werden: ● In der Taskkonfiguration bei IPOSynchronousTask Verhältnis IPOSynchronousTask : IPO-Takt=75% 2 IPO-Überläufe tolerieren ● Optimierten PROFIBUS verwenden Benutzerdefiniertes Profil: HSA=2 (Höchste PROFIBUS-Adresse) bei z.
  • Seite 200: Information Zum Start Einer Task: Taskstartinfo (Tsi)

    Ablaufsystem/Tasks/Systemtakte 5.3 Ablaufsystem konfigurieren 5.3.7 Information zum Start einer Task: TaskStartInfo (TSI) Beim Start jeder Task werden in der TaskStartInfo wichtige Informationen gespeichert, z. B.: ● der Startzeitpunkt der Task ● bei der TechnologicalFaultTask die auslösende Instanz des Technologieobjekts und die Alarmnummer ●...
  • Seite 201: Zeitaufteilung In Der Round-Robin-Ablaufebene

    Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Siehe auch SystemInterruptTasks (Seite 171) Zeitaufteilung in der Round-Robin-Ablaufebene verbleibende Die nach Abarbeiten der hochprioren Anwender- und SystemTasks Zeit wird von den MotionTasks und der BackgroundTask genutzt. Round- Die Zuteilung dieser Zeit zu der BackgroundTask und den MotionTasks erfolgt im Robin-Verfahren Bild 5-30 Übersicht der Zeitaufteilung in der Round-Robin-Ablaufebene...
  • Seite 202: Zeitaufteilung

    Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Reihenfolge Prinzipiell laufen die Tasks nacheinander im Round-Robin-Zyklus ab. (Die Reihenfolge ist nicht deterministisch und kann sich z.B. durch einen Download, Power-ON durchaus jedes mal ändern.) Zeitaufteilung Eine Task kann eine festgelegte Anzahl von Servo-Takten (Restlaufzeit) hintereinander laufen, bevor sie die Rechenzeit an die nächste Task abgeben muss.
  • Seite 203: Einstellung Der Zeitaufteilung

    Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Zyklische MotionTasks Hinweis wenn Motion Tasks zyklisch laufen sollen: Wenn Sie Endlosschleifen in MotionTasks verwenden wollen, dann setzen Sie in jedem Zyklus z.B. ein _waitTime(0s) ab. Dann gibt diese MotionTask an die folgende MotionTask Hinweis MotionTasks mit (Endlos-)Schleifen ohne _waitTime (0s) belasten die Round-Robin- Ablaufebene, da hier die MotionTask zwei volle Servo-Takte benötigt.
  • Seite 204 Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Zeitaufteilung in der Round-Robin-Ablaufebene festlegen 1. Wählen Sie im Konfigurationsfenster einer MotionTask oder der BackgroundTask das Register Taskkonfiguration. 2. Klicken Sie auf den Zeitaufteilung. Das Fenster Zeitaufteilung in der Round-Robin-Ablaufebene öffnet sich. 3. Stellen Sie mit dem Schieberegler das Verhältnis der Rechenzeiten ein: 4.
  • Seite 205: Einstellungen (Beispiele)

    Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene 5.4.2 Einstellungen (Beispiele) Zur Erläuterung der Zeitaufteilung in der Round-Robin-Ablaufebene finden Sie hier zwei Beispiele zur Einstellung des Schiebereglers. Fall 1: Schieberegler ganz rechts Die BackgroundTask läuft für minimal einen Servo-Takt. Bild 5-33 Zeitaufteilung in der Round-Robin: Einstellung Rechenzeit für MotionTasks In dieser Einstellung läuft die BackgroundTask für einen Servo-Takt, anschließend laufen alle MotionTasks (jede MotionTask läuft für maximal zwei Servo-Takte, falls sie vorher nicht in den Suspend-Mode geht), dann wieder einen Servo-Takt lang die BackgroundTask, usw.
  • Seite 206 Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene t = 1518 ms BackgroundTask läuft für einen Servo-Takt t = 1521ms, 1524 ms MotionTask 1 läuft für zwei Servo-Takte t = 1527ms, 1530 ms MotionTask 2 läuft für zwei Servo-Takte t = 1533 ms BackgroundTask läuft für einen Servo-Takt Fall 2: Schieberegler ganz links Die BackgroundTask läuft für 20 Servo-Takte.
  • Seite 207: Abarbeitung Der Tasks (Beispiele)

    Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene ● In der BackgroundTask wird ein Zähler in einer While-Schleife inkrementiert (grüne Linie). ● In der MotionTask 1 wird ein Zähler in einer While-Schleife inkrementiert (rote Linie). ● In der MotionTask 2 wird ein Zähler in einer While-Schleife inkrementiert (blaue Linie). Bild 5-36 Ablaufbeispiel für Zeitaufteilung in der Round-Robin: Einstellung Rechenzeit für BackgroundTask t = 1788-1845 ms...
  • Seite 208 Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Beispiel 1: Zeitlicher Ablauf, wenn keine InterruptTask aktiv ist Im Ablaufsystem sind die Takte in diesem Beispiel folgendermaßen gewählt: DP-Zyklus: Servo-Takt: IPO-Takt: 1:1:2 Das bedeutet, dass in jedem DP-Zyklus die Servo-Task bearbeitet wird und in nur jedem zweiten DP-Zyklus die IPO-Task bearbeitet wird.
  • Seite 209 Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Beispiel 2: Zeitlicher Ablauf, wenn eine InterruptTask aktiv ist und die IPOTask länger als 1 Servo- Takt dauert Das Programm, das in der IPO-Task abgearbeitet wird, dauert länger als der Servo- Takt. Deshalb wird die IPO-Task unterbrochen und die DP-Kommunikation und der Servo-Task bearbeitet.
  • Seite 210 Ablaufsystem/Tasks/Systemtakte 5.4 Zeitaufteilung in der Round-Robin-Ablaufebene Beispiel 3: Besonderheiten beim Taskwechsel im Multitasking Beim Abfragen von Bedingungen in MotionTasks aber auch in der BackgroundTask muss das Verhalten des Multitasking mit Taskwechseln z.B. bei Wartebefehlen oder synchronen Befehlen berücksichtigt werden. Beispiel: Tabelle 5- 8 Beispiel: BackgroundTask MotionTask1...
  • Seite 211: Task Trace Übersicht

    Ablaufsystem/Tasks/Systemtakte 5.5 Task Trace Übersicht Task Trace Übersicht 5.5.1 Task Trace verwenden Beschreibung Der Task Trace ist ein Hilfsmittel zur Fehlersuche in der SIMOTION Multitasking-Umgebung. Folgende Möglichkeiten bietet der Task Trace: ● Ablauf der einzelnen Tasks und User Events (per Programmbefehl erzeugt) grafisch darstellen.
  • Seite 212: Datenprotokoll Am Profibus Dp

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.1 Datenprotokoll am PROFIBUS DP Bild 5-40 Datenprotokoll am PROFIBUS DP Das Datenprotokoll am Bus beinhaltet ● ein äquidistantes Global Control Telegramm (GC), welches den Bustakt definiert ● zyklische Daten: Daten, die in jedem Takt zwischen den Teilnehmern übertragen werden Die zyklische Datenkommunikation ermöglicht besonders kurze und reproduzierbare in jedem Zyklus Prozessreaktionszeiten.
  • Seite 213: Datenprotokoll Am Profinet Io

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.2 Datenprotokoll am PROFINET IO Beschreibung Bild 5-41 Datenprotokoll am PROFINET IO Das Datenprotokoll am Bus beinhaltet ● Die IRT-Kommunikation, die in einem geplanten Zeitintervall zyklisch Daten überträgt. ● Die RT- und Standardkommunikation, in der folgende Daten übertragen werden können: –...
  • Seite 214: Taktsynchrone Datenbearbeitung

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.3 Taktsynchrone Datenbearbeitung Taktsynchrone Applikation Bei einer taktsynchronen Applikation ist der Verarbeitungstakt der Steuerung und eventuell angeschlossene Antriebe bzw. dezentrale Peripherie auf den Bus-Zyklus synchronisiert. Taktsynchrone Datenübertragung am Profibus DP Bei PROFIBUS ist der Bus-Zyklus auf das Global Control Telegramm (GC) synchronisiert. Das GC verkörpert den Bustakt und ist gleichzeitig der Systemtakt für das Gesamtsystem.
  • Seite 215 Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen Taktsynchrone Datenerfassung mit PROFIBUS DP In einem taktsynchronen Gesamtsystem sind Datenerfassung, Datenbearbeitung und Datenausgabe auf den gemeinsamen Systemtakt bezogen. Die Applikation wird gestartet, wenn der zyklische Datentransfer beendet ist (T Bild 5-44 Berechnung der Reaktionszeiten (PROFIBUS DP) Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 216 Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen Taktsynchrone Datenübertragung mit PROFINET IO Die Applikation wird gestartet, wenn der zyklische Datentransfer beendet ist (Time IO Output Valid). Bild 5-45 Berechnung der Reaktionszeiten (PROFINET IO) Berechnung der Reaktionszeiten (PROFIBUS DP und PROFINET IO) Damit zum Startzeitpunkt des neuen Bus-Zyklusses ein konsistenter Zustand der Eingänge eingelesen werden kann, muss der Einlesevorgang in der dezentralen Peripherie um die Zeit versetzt vorverlegt werden.
  • Seite 217 Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen PROFIBUS Hiermit ergibt sich eine reale Prozessreaktionszeit von: ● minimal T ● maximal T + 2·T PROFINET Hiermit ergibt sich eine reale Prozessreaktionszeit von: ● minimal T +T_DC+T ● maximal T + 2·T_DC+ T Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 218: Zeitverhalten Bzgl. Datenbearbeitung In Der Steuerung

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.4 Zeitverhalten bzgl. Datenbearbeitung in der Steuerung Datenbearbeitung in der ServoSynchronousTask ● Bei einer Datenbearbeitung in der ServoSynchronousTask kann bei der Einstellung Bustakt : Servo = 1 : 1 eine Verarbeitungszeit in der Steuerung von einem Buszyklustakt erreicht werden.
  • Seite 219: Zeitverhalten Bzgl. Datenübertragung Von Der Erfassung Zur Bearbeitung

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen Datenverarbeitung in der IPOSynchronousTask ● Bei einer Datenverarbeitung in der IPOSynchronousTask werden Ausgangsdaten auf I/O mit dem nächsten Servo wirksam. Bild 5-49 Datenverarbeitung in der Steuerung - Ausgangsdaten im nächsten Servo wirksam ● Bzw. Bewegungsdaten in dem darauf folgenden IPO bzw. Servo (siehe oben) Bild 5-50 Datenverarbeitung in der Steuerung - Ausgangsdaten im IPO wirksam - Beeinflussung von Bewegungsdaten...
  • Seite 220: Zeitverhalten Für Datenerfassung Und Datenausgabe

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.6 Zeitverhalten für Datenerfassung und Datenausgabe Bei der Projektierung der Zeit T ist T zu berücksichtigen. Es gilt immer: T ≦ T ● Die Zeiten können in HW Konfig eingestellt werden. ● Bei Verwendung von TM15/TM17 High Feature Modulen zur Erfassung und Ausgabe sind folgende Zeiten anzusetzen: –...
  • Seite 221 Kette beteiligten Komponenten die Systemeigenschaft "Taktsynchronität" unterstützen. Achten Sie bei der Auswahl im PM10 Katalog bzw. im Hardware Katalog von HW Konfig auf den Eintrag Taktsynchronität im Informationsfeld der Baugruppe. Eine aktuelle Liste der taktsynchronen Peripheriebaugruppen finden Sie im Internet unter http://support.automation.siemens.com/WW/view/de/14747353 Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 222: Handhabung Von Taktuntersetzung

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.8 Handhabung von Taktuntersetzung Bei Taktuntersetzung ist folgendes zu beachten: ● Am Ende einer IPOSynchronousTask wird das Prozessabbild mit dem nächstmöglichen Servo (Data Out) ausgegeben (= reaktionszeitoptimiert). Dieses kann bei Untersetzung Servo-Takt zu IPO-Takt dazu führen, dass die Daten einen /mehrere Servo-Takte früher oder später innerhalb eines IPO-Taktes ausgegeben werden, wenn die Peripheriezugriffe über die IPOSynchronousTask erfolgen.
  • Seite 223: Profibus Dp In Hw Konfig Laufzeitoptimiert Projektieren

    Ablaufsystem/Tasks/Systemtakte 5.6 Taktsynchrone I/O-Verarbeitung an Feldbussystemen 5.6.9 PROFIBUS DP in HW Konfig laufzeitoptimiert projektieren Einleitung Mit optimaler Projektierung in HW Konfig kann ein günstiges Laufzeitverhalten der SIMOTION-Firmware bewirkt werden. Laufzeitoptimierte Projektierung hinsichtlich Stationstopologie An einem isochronen PROFIBUS DP sollten isochrone Antriebe, die für ein TO Achse vorgesehen sind, sowie isochrone DP-Slaves fortlaufende Stationsadressen erhalten (z.B.
  • Seite 224: Einbindung Von Dcc In Das Simotion Ablaufsystem

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem ● Manche Peripheriebaugruppen verfügen über eine spezielle Betriebsart, um möglichst kurze Zykluszeiten zu erreichen (z.B. Fast Mode bei ET 200M Analogeingabe oder ET 200S SSI-Modul, ...) ● Die Anzahl der Peripherie-Eingänge und -Ausgänge pro Station, geht in die Zeiten T ein.
  • Seite 225: Ablaufmodell Für Dcc-Bausteine (Dcb)

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Weitere Literatur DCB-Lib und DCC-Editor-Beschreibung 5.7.2 Ablaufmodell für DCC-Bausteine (DCB) Beschreibung Die einzelnen DCC-Bausteine (DCB – Drive Control Block) werden im DCC-Editor in Ablaufgruppen organisiert. Diese Ablaufgruppen können Sie den DCC-Tasks im DCC-Editor frei zuordnen (Task T1 bis T5).
  • Seite 226: Servodcctask In Der Servo-Ebene

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Im Anwendermodell ordnet sich die DCC-Task in der Ablaufebene neben den Anwenderprogramm-Tasks (Ablaufumgebung für Anwenderprogramme in ST, MCC, KOP/FUP) und den System-Tasks ein. Die DCC-Task wird vom Engineeringsystem (ES) bei nicht Bedarf angelegt;...
  • Seite 227 Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Die folgende Grafik zeigt den zeitlichen Ablauf einer Task in der Servo-Ebene. Bild 5-53 T1(DCC) Task in Servo-Ebene Die T1(DCC) Task wird zu Beginn der Servo-Ebene automatisch gestartet und ausgeführt. Die folgende Grafik zeigt die Reihenfolge der Tasks in der Servo-Ebene: Bild 5-54 Servo-Ebene mit T1(DCC) Task Ebenenüberlauf in der Servo-Ebene...
  • Seite 228: Ipodcc Task In Der Ipo-Ebene

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem 5.7.4 ipoDcc Task in der IPO-Ebene Beschreibung Die IPO-Ebene läuft mit der gleichen Zykluszeit wie die Servo-Ebene oder in einem ganzzahligen Untersetzungsverhältnis. Tasks in der Servo-Ebene haben eine höhere Priorität und können somit Tasks in der IPO-Ebene unterbrechen. Zusätzlich werden in der IPO-Ebene alle I/O-Daten, die nicht in der Servo-Ebene kopiert werden, in das Ablaufsystem kopiert.
  • Seite 229: Ipodcc_2 Task In Der Ipo2-Ebene

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Ebenenüberlauf in der IPO-Ebene Tasks in der IPO-Ebene laufen mit gleicher Priorität und unterbrechen sich deswegen nicht gegenseitig. Eine Task in der höher prioren Servo-Ebene kann jederzeit die Bearbeitung in der IPO-Ebene unterbrechen, was eventuell zu einem Ebenenüberlauf führen kann, da nicht alle Tasks in der Ebene bearbeitet werden können.
  • Seite 230: Ablaufebenen Für Dccaux Und Dccaux_2

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Siehe auch ipoDcc Task in der IPO-Ebene (Seite 228) Systemtakte festlegen (Seite 189) 5.7.6 Ablaufebenen für DccAux und DccAux_2 Beschreibung Die beiden DCC Ablaufebenen DccAux und DCCAux_2 werden synchron zum System aufgerufen.
  • Seite 231: Datenaustausch Zwischen Bausteinen

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem 5.7.7 Datenaustausch zwischen Bausteinen 5.7.7.1 Datenaustausch zwischen Blöcken (Überblick) Überblick Im DCC-Editor können Sie die Anschlüsse verschiedener Bausteine miteinander verschalten. Für den Datenaustausch zwischen den Bausteinen sind grundsätzlich drei Szenarien zu unterscheiden: ●...
  • Seite 232 Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Bild 5-58 Verschaltungsfolge und Ablaufreihenfolge sind gleich Entspricht die Ablaufreihenfolge der Bausteine in einer Ebene nicht dem Datenfluss, ergeben sich zusätzliche Totzeiten, da eingangsseitig auf Werte aus dem vorhergehenden Takt zugegriffen wird. Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 233 Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Bild 5-59 Verschaltungsfolge und Ablaufreihenfolge sind unterschiedlich Um Totzeiten zu optimieren, orientieren Sie die Ablaufreihenfolge stets am Datenfluss. Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 234: Daten Von Bausteinen Aus Einer Niederprioren Ebenen

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem 5.7.7.3 Daten von Bausteinen aus einer niederprioren Ebenen Beschreibung Alle Bausteine in einer Ablaufebene müssen berechnet werden, bevor deren ausgangseitige Werte Bausteinen in einer anderen Ablaufebene eingangsseitig zur Verfügung stehen. Der Zugriff auf die ausgangsseitigen Werte aus einer höherprioren Ebene, erfolgt in einem dedizierten Takt (Übernahmetakt), um die Äquidistanz von Eingangswerten zu gewährleisten.
  • Seite 235 Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Bild 5-61 Datenaustausch aus niederpriorer Ebene mit Überlauf Das beschriebene Überlaufszenario gilt nur für ein ideales System. In einer realen Anwendung laufen in einer Ebene neben der DCC-Task auch noch Anwendertasks und Systemtasks.
  • Seite 236 Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem Beispielhafte Berücksichtigung von Anwenderprogrammen und Systemtasks Kommt es zum Überlauf während der Bearbeitung des iposynchronen Anwenderprogramms oder der IPO-Systemtask, wurden die Werte bereits in der ipoDcc-Task berechnet und können in die höherpriore Ebene übernommen werden. Allerdings wird im nächsten Takt kein neuer Wert berechnet.
  • Seite 237: Daten Aus Bausteinen Aus Einer Höherprioren Ebene

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem 5.7.7.4 Daten aus Bausteinen aus einer höherprioren Ebene Beschreibung Für den Zugriff auf die ausgangsseitigen Werte aus einer niederprioren Ebene, werden die Werte aus einem dedizierten Takt der höherprioren Ebene übernommen, um die Äquidistanz von Eingangswerten zu gewährleisten.
  • Seite 238: Verschaltung Von Bausteinen Mit Variablen

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem 5.7.8 Verschaltung von Bausteinen mit Variablen 5.7.8.1 Verschaltung mit Variablen Überblick über Verschaltungsmöglichkeiten mit Variablen Neben der Möglichkeit Bausteine miteinander zu verschalten, kann ein PIN auch auf eine Variable verschaltet werden. Sie können so eine Verbindung mit der Peripherie, den Technologie-Objekten, einem Anwenderprogramm und einem HMI herstellen.
  • Seite 239: Verhalten Bei Fpu-Exceptions

    Ablaufsystem/Tasks/Systemtakte 5.7 Einbindung von DCC in das SIMOTION Ablaufsystem PIN mit Variablen verschalten Die verschiedenen Ein- bzw. Ausgänge eines Bausteins können Sie im DCC-Editor verschalten. Detaillierte Informationen dazu finden Sie in der Beschreibung des DCC- Editors. Bild 5-64 Verschaltung von Anwender-Variablen im DCC-Editor Hinweis Es gibt keine Einschränkungen, wie oft ausgangsseitig auf eine Variable verschaltet werden kann.
  • Seite 240: Einbindung Von Antriebsperipherie

    Ablaufsystem/Tasks/Systemtakte 5.8 Einbindung von Antriebsperipherie Exception Beschreibung Reaktion SIMOTION Overflow Das absolute Ergebnis einer Gerät wechselt in Operation ist größer als abs(+/-- Betriebszustand STOP Nmax) Underrun Das absolute Ergebnis einer Das Ergebnis ist 0 Operation ist kleiner als abs(+/-- Nmax) Inexact Ergebnis lässt sich nicht exakt Das Ergebnis wird gerundet.
  • Seite 241 Ablaufsystem/Tasks/Systemtakte 5.8 Einbindung von Antriebsperipherie Die Zugriffe erfolgen in einer SINAMICS-Hintergrundtask (z.B. alle 4 ms). Der Zugriffszeitpunkt auf die Ein- und Ausgaben innerhalb des eingestellten Aktualisierungszyklus kann von Zyklus zu Zyklus unterschiedlich sein - d.h. es ist lediglich sichergestellt, dass innerhalb eines jeden Zyklus eine Aktualisierung erfolgt mit einer möglichen Schwankungsbreite entsprechend dem Aktualisierungszyklus.
  • Seite 242 Ablaufsystem/Tasks/Systemtakte 5.8 Einbindung von Antriebsperipherie ● AWP: Anwenderprogramm ● Ausgabezeit auf der CU: T CU_out ● Einlesezeit auf der CU: T CU_in In der Abbildung sind alle Zeiten angegeben, welche die Klemme-Klemme-Reaktionszeit beeinflussen. Für die gestrichelten Zeiten sind die worst case Werte anzusetzen, d.h.: ●...
  • Seite 243: Weitere Informationen

    Weitere Informationen Weitere Informationen zu diesem Thema finden Sie auch: ● In den Inbetriebnahmehandbüchern zu SIMOTION D410 und D4x5 ● in einem FAQ auf der Utilities & Applications CD unter FAQs ● im Internet unter der Adresse http://support.automation.siemens.com/WW/view/de/27585482. Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 245: Programmieren Ablaufsystem/Tasks/Systemtakte

    Programmieren Ablaufsystem/Tasks/Systemtakte Ablaufsystem 6.1.1 Allgemeines zum Ablaufsystem Im Ablaufsystem des SIMOTION Geräts werden alle Programme abgearbeitet. Das Ablaufsystem stellt eine Reihe von Ablaufebenen mit unterschiedlichen Ablaufeigenschaften bereit. Programme müssen deshalb zu ihrer Ausführung den Ablaufebenen zugeordnet werden. Hierzu werden die Programme der Quellen einer oder mehreren Tasks zugeordnet. So wird die zeitliche Abfolge festgelegt, in der sie abgearbeitet werden.
  • Seite 246 Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Mit Tasksteuerbefehlen können Sie das Ablaufsystem beeinflussen. Tabelle 6- 1 Ablaufebenen in SIMOTION Ablaufebene Beschreibung Die Ablaufebenen und Tasks sind ausführlich im Funktionshandbuch SIMOTION MotionControl Basisfunktionen beschrieben. Zeitgesteuert Zyklische Tasks, sie werden nach Abarbeiten der zugeordneten Programme automatisch neu gestartet.
  • Seite 247: Startreihenfolge Der Tasks

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Ablaufebene Beschreibung StartupTask Wird beim Übergang des Betriebszustandes STOP bzw. STOP U zu RUN einmalig ausgeführt. SystemInterruptTasks werden über ihr auslösendes Systemereignis gestartet. ShutdownTask Wird beim Übergang des Betriebszustandes RUN zu STOP bzw. STOP U einmalig ausgeführt. Der Betriebszustand STOP bzw. STOP U wird folgendermaßen erreicht: entsprechende Stellung des Betriebsartenwahlschalter •...
  • Seite 248: Ablaufsystem Konfigurieren

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.4 Ablaufsystem konfigurieren 6.1.4.1 Festlegungen beim Konfigurieren Beim Konfigurieren des Ablaufsystems ordnen Sie den Tasks die Programme zu, die in der jeweiligen Task ablaufen sollen. Dadurch legen Sie u. a. fest: ● Die Priorität, mit der die Programme ablaufen, ●...
  • Seite 249: Einfluss Des Ablaufverhaltens Einer Task Auf Die Variableninitialisierung

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.5 Einfluss des Ablaufverhaltens einer Task auf die Variableninitialisierung 6.1.5.1 Zeitpunkt für die Initialisierung lokaler Programmvariablen Das Ablaufverhalten der Task (sequentiell oder zyklisch) bestimmt die Initialisierung der lokalen Variablen der zugeordneten Programme. Die Ausführungen gelten analog für Instanzen von Funktionsbausteinen, die in den Programmen als lokale Variablen deklariert wurden.
  • Seite 250: Zuweisen Von Anfangswerten An Unit-Variablen

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.5.2 Zuweisen von Anfangswerten an Unit-Variablen Unit-Variablen und geräteglobale Variablen werden beim Übergang vom Betriebszustand Zeitpunkt der STOP bzw. STOPU nach RUN nicht initialisiert (siehe Kapitel Variableninitialisierung , das Sie in den verschiedenen Programmierhandbüchern finden). Wenn Sie diesen Variablen dennoch Anfangswerte zuweisen wollen, verwenden Sie hierzu die StartupTask.
  • Seite 251: Einfluss Des Compilers Auf Die Variableninitialisierung

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.5.4 Einfluss des Compilers auf die Variableninitialisierung Compilerschalter "Einmalige Programmdateninstanziierung" Der Compiler-Schalter kann an jeder Quelle gesetzt werden und überschreibt damit die globale Einstellung. Der Compilerschalter wirkt unabhängig von der Erstellsprache, ist daher auch in KOP/FUP und MCC anwendbar. Der Compilerschalter steuert, wie die Instanzdaten der in einer Quelle enthaltenen PROGRAM’s anzulegen sind.
  • Seite 252 Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Initialisierung von Variablen bei einem STOP - RUN - Übergang Für Informationen über die Initialisierung bei einem STOP - RUN - Übergang und das Pragma BlockInit_OnDeviceRun, siehe Initialisierung von Daten bei einem STOP - RUN - Übergang (Seite 463).
  • Seite 253: Hmi-Relevante Daten Kennzeichnen

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.5.5 HMI-relevante Daten kennzeichnen Daten als "nicht HMI-relevante Daten" kennzeichnen Standardmäßig stehen für Bedienen&Beobachten die im Interface-Abschnitt einer Unit deklarierten Variablen zur Verfügung. Über ein Compiler-Pragma am Blockanfang können Sie einen Block im Interface-Bereich als nicht HMI-relevant kennzeichnen. Es werden dann keine Bedienen&Beobachten Adressen für die enthaltenen Variablen mehr generiert und Änderungen an diesem Block wirken sich nicht mehr auf die HMI-Konsistenz aus.
  • Seite 254: Taskstati

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Wird die 64kByte Adressgrenze überschritten, erfolgt eine Warnung, ab welcher Variablen ein HMI-Zugriff nicht mehr möglich ist. Werden Datenblöcke explizit durch Angabe des Compiler-Pragmas für HMI exportiert und es ist nicht möglich Variablen des Blocks über HMI zu erreichen, erfolgt bereits beim Übersetzen eine Fehlermeldung.
  • Seite 255: Kombinationen Der Taskstati

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Symbolische Konstante Hex- Symbolische Konstante Darstellung TASK_STATE_STOPPED 16#0002 Task gestoppt (z. B. durch Funktion _resetTask), beendet oder noch nicht gestartet. TASK_STATE_RUNNING 16#0004 Task läuft, z. B.: durch Funktion _startTask, • als aktive zyklische Task. • TASK_STATE_WAITING 16#0010 Task in Wartestellung wegen Funktion _waitTime oder WAITFORCONDITION.
  • Seite 256: Beispiel Für Verwendung Der Taskstati

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.6.3 Beispiel für Verwendung der Taskstati Im folgenden Beispiel wird der Taskstatus einer MotionTask abgefragt, um zu entscheiden, ob diese gestartet werden kann. Hierzu werden die relevanten Bits des Rückgabewerts ausgewertet. Bei positivem Ergebnis wird die MotionTask gestartet. Tabelle 6- 7 Beispiel für Abfrage, ob eine MotionTask gestartet werden kann ret_dword := _getStateOfTaskId (id := _task.motionTask_1);...
  • Seite 257: Syntax Der Waitforcondition-Anweisung

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Im Anweisungsabschnitt kann zugegriffen werden: ● auf diese lokalen Variablen der Expression ● auf Unit-Variablen ● auf geräteglobale Variablen, I/O-Variablen und das Prozessabbild Im Anweisungsabschnitt der Expression muss ein Ausdruck vom Datentyp BOOL der Expression-Bezeichnung zugeordnet werden (siehe Kapitel Expressions im ST Programmierhandbuch).
  • Seite 258: Arbeitsweise Der Waitforcondition-Anweisung

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem Flankenauswertung Expression-Bezeichnung ● = TRUE: Die steigende Flanke von wird Expression-Bezeichnung ausgewertet; d. h. die Bedingung ist erfüllt, wenn der Wert von von FALSE nach TRUE wechselt. Flankenauswertung Expression-Bezeichnung ● = FALSE: Der statische Wert von wird aus Expression-Bezeichnung gewertet;...
  • Seite 259: Beispiel Zur Verwendung Von Waitforcondition

    MotionTask abläuft. Für diese MotionTask ist die Option Aktivierung nach StartupTask ausgewählt. Die Zuordnung von Programmen zu Tasks nehmen Sie im SIMOTION SCOUT vor (siehe Programme den Ablaufebenen/Tasks zuweisen). Tabelle 6- 8 Beispiel zu Verwendung des Befehls WAITFORCONDITION INTERFACE USEPACKAGE cam;...
  • Seite 260: Beispiel Zur Zeitüberprüfung Mittels Fb

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.7.5 Beispiel zur Zeitüberprüfung mittels FB Beispiel zur Verwendung von WAITFORCONDITION mit Zeitüberprüfung mittels FB (ab V4.1) Expressions Im folgenden Beispiel wird die Zeitüberwachung der (WAITFORCONDITION) gezeigt. Daneben wird die Bindung der Expression an der Aufrufstelle an Instanzdaten eines rufenden Funktionsbausteins inklusive der Zeitüberwachung dargestellt.
  • Seite 261: Beispiel Zur Verwendung Von Waitforcondition Mit Zeitüberwachung Direkt In Nicht Zyklischer Task / Motion Task

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem 6.1.7.6 Beispiel zur Verwendung von WAITFORCONDITION mit Zeitüberwachung direkt in nicht zyklischer Task / Motion Task Beschreibung Beispiel zur Zeitüberwachung der Expression (WAITFORCONDITION). Der Aufruf erfolgt direkt in einer MotionTask. Die Zeitüberwachung ist vom Typ TON, mit Aufruf innerhalb der Expression und Abfrage des Outputs.
  • Seite 262: Tasks Eine Definierte Zeitdauer Warten Lassen

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem END_IF; END_WAITFORCONDITION; END_PROGRAM //BackgroundTask PROGRAM increaseV1 v1 := v1 + 1; END_PROGRAM END_IMPLEMENTATION ..Sie können v1 in beliebigen zyklischen Tasks updaten. 6.1.8 Tasks eine definierte Zeitdauer warten lassen Task in den Wartezustand versetzen Sie können eine Task eine vorgegebene Zeit in den Zustand TASK_STATE_WAITING _waitTime (siehe Taskstati (Seite 254)) versetzen.
  • Seite 263 Programmieren Ablaufsystem/Tasks/Systemtakte 6.1 Ablaufsystem ACHTUNG Die Funktion sollte nur in MotionTasks verwendet werden, die Verwendung in zyklischen Tasks kann zu Zeitüberwachungsfehlern führen! • Bei SynchronousTasks: Sie können ab Version V3.2 des SIMOTION Kernels konfigurieren, ob die Zeitüberwachung ausgesetzt wird. Standardmäßig ist die Zeitüberwachung aktiv Beachten Sie zusätzlich bei der IPOsynchronousTask: Die UserInterruptTasks werden nicht mehr durch ihr auslösendes Ereignis gestartet!
  • Seite 264: Tasksteuerbefehle

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Tasksteuerbefehle 6.2.1 Übersicht der Tasksteuerbefehle Zum Steuern von Tasks stehen Ihnen die in der Tabelle aufgelisteten Befehle zur Verfügung. Diese Funktionen sind ab Version V3.1 des SIMOTION Kernels verfügbar. Tabelle 6- 10 Tasksteuerbefehle in SIMOTION ST Tasksteuerbefehl Bedeutung TaskId...
  • Seite 265 Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle TaskId Die Task wird bei diesen Funktionen über eine eindeutige TaskId vorgegeben. Die TaskId zum Namen einer Task erhalten Sie auf folgende Weise: .name ● Als Variable _task (z. B. _task.motionTask_1). Hierbei bedeutet: – _task bezeichnet den vordefinierten Namensraum für TaskId (siehe Namensräume Kapitel ).
  • Seite 266: Beispiel Verwendung Eines Tasksteuerbefehls

    Beispiel Verwendung eines Tasksteuerbefehls (Seite 266) Abfrage und Bedeutung der Taskstati (Seite 254) 6.2.2 Beispiel Verwendung eines Tasksteuerbefehls Das folgende Beispiel setzt voraus, dass Sie im SIMOTION SCOUT folgende Zuordnungen getroffen haben: myStart ● Das Programm ist der StartupTask zugeordnet.
  • Seite 267: Funktion _Getstateoftaskid

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle 6.2.3 Funktion _getStateOfTaskId Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie gibt den Zustand der betreffenden Task zurück. Die Task wird über eine projektweit eindeutige TaskId vorgegeben (siehe Übersicht der Tasksteuerbefehle (Seite 264)). Die Funktion ist auf alle Tasks anwendbar, außer StartupTask und ShutdownTask.
  • Seite 268: Funktion _Resettaskid

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle 16#0020 Task suspendiert (ausgesetzt) TASK_STATE_SUSPENDED 16#0040 TimerInterruptTask wartet auf ihren Starttrigger TASK_STATE_WAIT_NEXT_CYCLE 16#0080 SystemInterruptTask bzw. UserInterruptTask wartet auf eintretendes auslösendes Ereignis TASK_STATE_WAIT_NEXT_INTERRUPT 16#0100 Task gesperrt (durch _disableScheduler) TASK_STATE_LOCKED Ähnliche Funktion für Versionen des SIMOTION Kernels bis V3.0 getStateOfTask (// nur Kurzform erlaubt { name : Task_Name // Name der Task...
  • Seite 269 Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Deklaration _resetTaskId ( : StructTaskId // nur MotionTasks ) : DWORD Eingangsparameter Datentyp: StructTaskId TaskId der Task, die gesteuert werden soll. Rückgabewert Datentyp: DWORD Kein Fehler 16#FFFF_FFFE TaskId bezieht sich nicht auf eine MotionTask 16#FFFF_FFFF TaskId ist ungültig Ähnliche Funktion für Versionen des SIMOTION Kernels bis V3.0 _resetTask (// nur Kurzform erlaubt name : Task_Name...
  • Seite 270: Funktion _Restarttaskid

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle 6.2.5 Funktion _restartTaskId Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie setzt eine MotionTask in den Zustand TASK_STATE_STOPPED zurück und startet sie neu; ihre Daten werden initialisiert. Die Task wird über eine projektweit eindeutige TaskId vorgegeben (siehe Übersicht der Tasksteuerbefehle (Seite 264)).
  • Seite 271: Funktion _Resumetaskid

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Diese Funktion entspricht der Funktion _restartTaskId mit folgenden Ausnahmen: ● Die Task wird über ihren Namen (wie im Ablaufsystem) vorgegeben. ● Der Aufruf der Funktion darf nur in Kurzform geschehen, d. h. mit vollständiger Auflistung aller Parameterwerte, jedoch ohne Angabe der Formalparameter. ●...
  • Seite 272: Funktion _Retriggertaskidcontroltime

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Ähnliche Funktion für Versionen des SIMOTION Kernels bis V3.0 _resumeTask (// nur Kurzform erlaubt name : Task_Name // Name der Task ) : VOID Diese Funktion entspricht der Funktion _resumeTaskId mit folgenden Ausnahmen: ● Die Task wird über ihren Namen (wie im Ablaufsystem) vorgegeben. ●...
  • Seite 273: Funktion _Starttaskid

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Eingangsparameter (optional) Datentyp: StructTaskId Voreinstellung: TaskId der aktuellen Task, in welcher die Funktion aufgerufen wird. TaskId der Task, die gesteuert werden soll (siehe Übersicht der Tasksteuerbefehle (Seite 264)). Rückgabewert Datentyp: DWORD Funktion ordnungsgemäß ausgeführt. ungleich 0 Funktion nicht ordnungsgemäß...
  • Seite 274 Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Sie hat keinen Einfluss auf MotionTasks in folgenden Zuständen: ● TASK_STATE_RUNNING ● TASK_STATE_WAITING ● TASK_STATE_SUSPENDED Sie können vor Verwendung der Funktion den Status der MotionTask abfragen und auswerten (siehe Funktion _getStateOfTaskId sowie Beispiel für Verwendung der Taskstati in Taskstati).
  • Seite 275: Funktion _Suspendtaskid

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Diese Funktion entspricht der Funktion _startTaskId mit folgenden Ausnahmen: ● Die Task wird über ihren Namen (wie im Ablaufsystem) vorgegeben. ● Der Aufruf der Funktion darf nur in Kurzform geschehen, d. h. mit vollständiger Auflistung aller Parameterwerte, jedoch ohne Angabe der Formalparameter. ●...
  • Seite 276 Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Eingangsparameter Datentyp: StructTaskId TaskId der Task, die gesteuert werden soll (siehe Übersicht der Tasksteuerbefehle (Seite 264)). Rückgabewert Datentyp: DWORD Kein Fehler. 16#FFFF_FFFE TaskId bezieht sich auf eine nicht zulässige Task 16#FFFF_FFFF TaskId ist ungültig Unterbrechung der Auswertung einer WAITFORCONDITION Bei der Überprüfung der Wertebedingung einer WAITFORCONDITION wird der Taskstatus nicht automatisch berücksichtigt.
  • Seite 277: Funktion

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Diese Funktion entspricht der Funktion _suspendTaskId mit folgenden Ausnahmen: ● Die Task wird über ihren Namen (wie im Ablaufsystem) vorgegeben. ● Der Aufruf der Funktion darf nur in Kurzform geschehen, d. h. mit vollständiger Auflistung aller Parameterwerte, jedoch ohne Angabe der Formalparameter. ●...
  • Seite 278: Funktion _Checkequaltask

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.2 Tasksteuerbefehle Rückgabewert Datentyp: StructTaskId Der Rückgabewert enthält die TaskId der Task. 6.2.11 Funktion _checkEqualTask Diese Funktion gibt an, ob eine TaskId zu einer Task gehört. ACHTUNG Die Funktion darf in Bibliotheken nicht verwendet werden. Der Aufruf der Funktion darf nur in Kurzform geschehen, d. h. mit vollständiger Auflistung aller Parameterwerte, jedoch ohne Angabe der Formalparameter.
  • Seite 279: Funktionen Zur Laufzeitmessung Von Tasks

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks Funktionen zur Laufzeitmessung von Tasks 6.3.1 Funktionen zur Laufzeitmessung von Tasks - Übersicht Die Funktionen zur Laufzeitmessung sind für alle Tasks zulässig. Die Messung wird jedoch nicht unterstützt von der IPOsynchronousTask, der ServosynchronousTask und der ShutDownTask.
  • Seite 280: Funktion _Getmaximaltaskidruntime

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks 6.3.2 Funktion _getMaximalTaskIdRunTime Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie liefert die maximale Laufzeit der Task seit dem letzten STOP-RUN-Übergang, einschließlich aller Unterbrechungen von höherpriorigen Tasks. Die Task wird über eine projektweit eindeutige TaskId vorgegeben (siehe Funktion _startTaskId).
  • Seite 281: Funktion _Getminimaltaskidruntime

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks Ähnliche Funktion für Versionen des SIMOTION Kernels bis V3.0 _getMaximalTaskRunTime (// nur Kurzform erlaubt name: Task_Name // Name der Task : TIME Diese Funktion entspricht der Funktion _getMaximalTaskIdRunTime mit folgenden Ausnahmen: ● Die Task wird über ihren Namen (wie im Ablaufsystem) vorgegeben. ●...
  • Seite 282 Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks Deklaration _getMinimalTaskIdRunTime ( { id : StructTaskId ) : TIME Eingangsparameter (optional) Datentyp: StructTaskId Voreinstellung: TaskId der aktuellen Task, in welcher die Funktion aufgerufen wird. TaskId der Task, deren Laufzeit gemessen werden soll (siehe Funktion _startTaskId) Rückgabewert Datentyp: TIME...
  • Seite 283: Funktion _Getcurrenttaskidruntime

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks Siehe auch Funktion _startTaskId (Seite 273) Funktion _suspendTaskId (Seite 275) 6.3.4 Funktion _getCurrentTaskIdRunTime Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie liefert die Laufzeit aus dem vorangegangenen Durchlauf der Task, einschließlich aller Unterbrechungen von höherpriorigen Tasks.
  • Seite 284: Funktion _Getaveragetaskidruntime

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks Rückgabewert Datentyp: TIME T#MIN (= T#0ms = T#1ms * UDINT#0) Messung wird nicht unterstützt oder ist noch nicht beendet. größer T#MIN und kleiner T#MAX Im vorangegangenen Durchlauf aufgetretene Laufzeit. T#MAX (= T#49d_17h_2m_47s_295ms = T#1ms * TaskId ist ungültig UDINT#16#FFFF_FFFF) Ähnliche Funktion für Versionen des SIMOTION Kernels bis V3.0...
  • Seite 285 Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks Die ermittelte Laufzeit ist ein Vielfaches des Servo-Takts; bei Laufzeiten kleiner als der Lagereglertakt wird als Messwert T#MIN (= T#0ms) zurückgegeben. Die Funktion ist für alle Tasks zulässig. Die Messung wird jedoch nicht unterstützt von der IPOsynchronousTask und der ShutDownTask.
  • Seite 286: Funktionen Für Die Genaue Laufzeitmessung Von Tasks

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.3 Funktionen zur Laufzeitmessung von Tasks ● Die Task wird über ihren Namen (wie im Ablaufsystem) vorgegeben. ● Der Aufruf der Funktion darf nur in Kurzform geschehen, d. h. mit vollständiger Auflistung aller Parameterwerte, jedoch ohne Angabe der Formalparameter. ●...
  • Seite 287: Funktion _Gettimedifferenceofinternaltimestamp

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 6.3.8 Funktion _getTimeDifferenceOfInternalTimeStamp Beschreibung Die Funktion _getTimeDifferenceOfInternalTimeStop liefert einen Zeitwert aus zwei internen Zeitstempeln. Die beiden Zeitstempel müssen Sie über die Funktion _getInternalTimeStamp (Seite 286) generieren (Rückgabewert UDINT). _getTimeOfDifferenceOfInternalTimeStamps UDINT t1, UDINT t2 ):UDINT;...
  • Seite 288 In vielen Fällen steht für Versionen des SIMOTION Kernels bis V3.0 eine ähnliche Funktion zu Verfügung. Bei diesen Funktionen wird die Meldung wird über ihren Namen (wie in SIMOTION SCOUT projektiert) vorgegeben. Diese Funktionen dürfen nicht in Bibliotheken verwendet werden.
  • Seite 289: Funktion

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 6.4.2 Funktion _alarmSId Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie generiert bei einer Pegeländerung des auslösenden Signals (Sig) eine nicht quittierungspflichtige Meldung, die an alle dafür angemeldeten Anzeigegeräte verschickt wird.
  • Seite 290 Variablen oder vorher definierte Bezeichner für Konstanten von einem der erlaubten Datentypen. Angabe des Begleitwerts ist erforderlich, wenn bei der Meldungsprojektierung in SIMOTION SCOUT ein Begleitwert definiert wurde. Eine Prüfung mit dem Datentyp des in der Meldung projektierten Begleitwerts ist während des Compilierens nicht möglich.
  • Seite 291 Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 16#8006 Meldungsname in niederpriorer Ebene bereits in Bearbeitung Tritt bei SIMOTION nicht auf. ALARMS_ERROR OR DSC_SVS_DEVICE_ALARMS_EVENT_ID_IN_USE 16#8007 Mit diesem Meldungsnamen wurde noch kein Auftrag gestartet (Erstaufruf mit Sig = FALSE.) Fallende Flanke (gehende Meldung) kam ohne vorherige steigende Flanke (kommende Meldung) Eintrag in Meldeliste ist nicht erfolgt.
  • Seite 292: Funktion

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 6.4.3 Funktion _alarmSqId Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie generiert bei einer Pegeländerung des auslösenden Signals (Sig) eine quittierungspflichtige Meldung, die an alle dafür angemeldeten Anzeigegeräte verschickt wird. Die zu generierende Meldung wird über eine projektweit eindeutige AlarmId vorgegeben (siehe AlarmId (Seite 385)).
  • Seite 293 Variablen oder vorher definierte Bezeichner für Konstanten von einem der erlaubten Datentypen. Angabe des Begleitwerts ist erforderlich, wenn bei der Meldungsprojektierung in SIMOTION SCOUT ein Begleitwert definiert wurde. Eine Prüfung mit dem Datentyp des in der Meldung projektierten Begleitwerts ist während des Compilierens nicht möglich.
  • Seite 294 Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 16#8006 Meldungsname in niederpriorer Ebene bereits in Bearbeitung Tritt bei SIMOTION nicht auf. ALARMS_ERROR OR DSC_SVS_DEVICE_ALARMS_EVENT_ID_IN_USE 16#8007 Mit diesem Meldungsnamen wurde noch kein Auftrag gestartet (Erstaufruf mit Sig = FALSE.) Fallende Flanke (gehende Meldung) kam ohne vorherige steigende Flanke (kommende Meldung) Eintrag in Meldeliste ist nicht erfolgt.
  • Seite 295: Funktion

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 6.4.4 Funktion _alarmScId Die Funktion ist ab Version V3.1 des SIMOTION Kernels verfügbar. Sie zeigt den Zustand einer Meldung und deren Quittierungszustand an. Die Meldung wird über eine projektweit eindeutige AlarmId vorgegeben (siehe AlarmId (Seite 385)). Eine ähnliche Funktion für Versionen des SIMOTION Kernels bis V3.0 ist am Ende des Abschnitts beschrieben.
  • Seite 296 Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 16#0010 Zu diesem Meldungsnamen gibt es keine Meldung. (3 Möglichkeiten: Meldung noch nie ausgelöst (1), Meldung über AlarmS ausgelöst, aber auch gegangen (2), Meldung über _AlarmSq ausgelöst, gegangen und am Anzeigegerät quittiert (3).) 16#0101 Meldung gekommen, quittiert (c).
  • Seite 297: Funktion

    // nur Kurzform erlaubt Al_Name : Alarm_Name // Name der Meldung ) : StructAlarmId Eingangsparameter Al_Name Anwendungsspezifisch projektierter Meldungsname, der bei der Meldungsprojektierung in SIMOTION SCOUT angelegt wird. Rückgabewert Datentyp: StructAlarmId Der Rückgabewert enthält die AlarmId der projektierten Meldung. Siehe auch...
  • Seite 298: Funktion _Getpendingalarms

    Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) 6.4.6 Funktion _getPendingAlarms Beschreibung Die Funktion liefert entsprechend der maximalen Anzahl der Einträge in die Alarmliste max 40 anstehende Alarme zurück. (pending alarms). Die Anzahl der anstehenden Alarme wird numberOfPendingAlarms angezeigt. _type Der Typ des jeweiligen Alarms wird in angezeigt.
  • Seite 299 Programmieren Ablaufsystem/Tasks/Systemtakte 6.4 Funktionen zur Meldungsprogrammierung (AlarmS) Einzelnen Alarm auf "gehend" setzen _resetAlarmId //( vgl. _alarmSId + Erweiterung, kein Fehler, Alarm nicht anstehend, ID nicht vorhanden, interner Fehler ) :StructAlarmId; ) : DWORD Alle anstehenden Alarme auf "gehend" setzen _resetAllAlarmId : DWORD //( vgl.
  • Seite 301: Programmierung Allgemeiner Standardfunktionen

    Programmierung allgemeiner Standardfunktionen Programmierung allgemeiner Standardfunktionen - Überblick SIMOTION stellt Ihnen für die Lösung häufig auftretender Aufgaben eine Reihe von Standardfunktionen zur Verfügung, die Sie in Ihren Quellen aufrufen können. Hinweis Der Aufruf einiger der folgenden Standardfunktionen darf nur in Kurzform erfolgen, d. h. mit vollständiger Auflistung aller Parameterwerte, jedoch ohne Angabe der Formalparameter: •...
  • Seite 302: Numerische Standardfunktionen

    Programmierung allgemeiner Standardfunktionen 7.2 Numerische Standardfunktionen Numerische Standardfunktionen 7.2.1 Besonderheiten einer numerischen Funktion Jede numerische Standardfunktion hat einen Eingangsparameter. Das Ergebnis ist immer der Rückgabewert. Die allgemeinen numerischen, die logarithmischen und die trigonometrischen Standardfunktionen spezifizieren jeweils eine Gruppe von numerischen Standardfunktionen durch die Funktionsnamen und die Datentypen.
  • Seite 303: Logarithmische Standardfunktionen

    Programmierung allgemeiner Standardfunktionen 7.2 Numerische Standardfunktionen 7.2.3 Logarithmische Standardfunktionen Logarithmische Standardfunktionen sind die Funktionen zur Berechnung eines Exponentialwertes oder eines Logarithmus. Tabelle 7- 3 Logarithmische Standardfunktionen Funktions- Eingangsparameter Rückgabewert Beschreibung name Name Datentyp Datentyp ANY_REAL ANY_REAL (e-Funktion) EXPD ANY_REAL ANY_REAL EXPT ANY_REAL ANY_REAL...
  • Seite 304: Trigonometrische Standardfunktionen

    Programmierung allgemeiner Standardfunktionen 7.2 Numerische Standardfunktionen 7.2.4 Trigonometrische Standardfunktionen Die dargestellten trigonometrischen Standardfunktionen erwarten und berechnen Größen von Winkeln im Bogenmaß. Tabelle 7- 5 Trigonometrische Standardfunktionen Funktions- Eingangsparameter Rückgabewert Beschreibung name Name Datentyp Datentyp ACOS ANY_REAL ANY_REAL Arcus-Cosinus (Hauptwert) ASIN ANY_REAL ANY_REAL Arcus-Sinus (Hauptwert)
  • Seite 305 Programmierung allgemeiner Standardfunktionen 7.2 Numerische Standardfunktionen Tabelle 7- 7 Bitstring-Standardfunktionen Funktions- Eingangsparameter Rückgabewert Beschreibung name Name Datentyp Datentyp ANY_BIT ANY_BIT Der im Parameter vorhandene USINT Bitstring wird um so viele Stellen nach links rotiert, wie es der Inhalt des Parameters angibt.
  • Seite 306: Zugriffe Auf Bits In Bitstrings

    Programmierung allgemeiner Standardfunktionen 7.3 Zugriffe auf Bits in Bitstrings Zugriffe auf Bits in Bitstrings 7.3.1 Funktion _getBit Diese Funktion liefert den Wert des angegebenen Bits einer Bitstring-Variablen. Deklaration FUNCTION _getBit ( // Bitstring-Variable : ANY_BIT, // Nummer des Bits : USINT : BOOL Eingangsparameter Datentyp...
  • Seite 307: Funktion _Setbit

    Programmierung allgemeiner Standardfunktionen 7.3 Zugriffe auf Bits in Bitstrings Bitadressierung (ab V4.1) Sie können die Bitnummer einer Bitstringvariablen (außer BOOL) über die Syntax einer Strukturadressierung angeben. Dabei ist die Angabe der Bitnummer als Integerzahl oder über symbolische Konstante vom Typ ANY_INT in den Grenzen der Bitstringlänge möglich. Die Funktion wird über den Compilerschalter "Spracherweiterungen zulassen"...
  • Seite 308: Eingangsparameter

    Programmierung allgemeiner Standardfunktionen 7.3 Zugriffe auf Bits in Bitstrings Eingangsparameter Datentyp: ANY_BIT Bitstring-Variable Datentyp: USINT Nummer des Bits, dessen Wert gesetzt werden soll. Zulässige Werte: [0..7] für BYTE [0..15] für WORD [0..31] für DWORD Bei der Angabe unzulässiger Werte wird (ohne weitere Meldung) der unveränderte Wert der Bitstring-Variablen zurückgegeben.
  • Seite 309: Funktion _Togglebit

    Programmierung allgemeiner Standardfunktionen 7.3 Zugriffe auf Bits in Bitstrings FUNCTION f : VOID VAR CONSTANT BIT_7 : INT := 7; END_VAR dw : DWORD; b : BOOL; b = 1; END_VAR dw.BIT_7 := b; // Bit Nummer 7 schreiben dw.BIT_3 := b; // Bit Nummer 3 schreiben END_FUNCTION Hinweis...
  • Seite 310: Bitoperationen Auf Numerische Datentypen

    Programmierung allgemeiner Standardfunktionen 7.4 Bitoperationen auf numerische Datentypen Zulässige Werte: [0..7] für BYTE [0..15] für WORD [0..31] für DWORD Bei der Angabe unzulässiger Werte wird (ohne weitere Meldung) der unveränderte Wert der Bitstring-Variablen zurückgegeben. Rückgabewert Datentyp: ANY_BIT Datentyp des Eingangsparameters Wert der Bitstring-Variablen mit invertiertem Bit.
  • Seite 311: String-Bearbeitung (Ab V4.0)

    Programmierung allgemeiner Standardfunktionen 7.5 String-Bearbeitung (ab V4.0) Funktions- Eingangsparameter Rückgabewert Beschreibung name Name Datentyp Datentyp _XOR ANY_INT ANY_INT Bitweise exklusive Disjunktion (exklusive ANY_INT ODER-Verknüpfung): Ein Bit des Rückgabewerts ist 1, wenn genau eines der entsprechenden Bits der Eingangsparameter 1 ist, sonst 0). Der Aufruf der Funktion _NOT darf nur in Kurzform geschehen, d.
  • Seite 312 Programmierung allgemeiner Standardfunktionen 7.5 String-Bearbeitung (ab V4.0) Eingangsparameter Rückgabewert INSERT STRING[254] STRING[254] Fügt String in2 in String in1 ein, STRING[254] beginnend an Position p 1 2 5 7 Fehlerflags: TSI#ERRNO := 2 wenn P < 0, P > length(IN1) TSI#ERRNO := 1 wenn length(IN1)+length(IN2) >...
  • Seite 313: Fehlerauswertung Bei Der String-Bearbeitung

    Programmierung allgemeiner Standardfunktionen 7.5 String-Bearbeitung (ab V4.0) Tabelle 7- 11 Beispiele für Aufrufe der Funktionen zur String-Bearbeitung Aufruf Ergebnis A := CONCAT (in1 := ’ASTRING’, in2 := ’123’); ’ASTRING123’. A := DELETE (in1 := ’ASTRING’, l := 2, p := 4); ’ASTNG’.
  • Seite 314 Programmierung allgemeiner Standardfunktionen 7.5 String-Bearbeitung (ab V4.0) ● Wert 0 für Fehlerfreiheit ● Wert 1 für Überschreitung der maximalen Stringlänge ● Wert 2 für P oder L außerhalb des gültigen Bereichs Hinweis Die TSI#ERRNO kann zu der Untersuchung der Stringlänge nicht benutzt werden (gilt für DINT_TO_STRING, UDINT_TO_STRING, REAL_TO_STRING und LREAL_TO_STRING).
  • Seite 315: Standardfunktionen Zur Daytentypkonvertierung

    Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Standardfunktionen zur Daytentypkonvertierung 7.6.1 Funktionen zur Konvertierung von numerischen Datentypen und Bit-Datentypen Eine explizite Konvertierung ist immer dann notwendig, wenn Informationsverlust möglich ist, z. B. durch Verkleinerung des Wertebereichs oder durch Verringerung der Genauigkeit, wie bei der Konvertierung von LREAL nach REAL.
  • Seite 316 Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Funktionsname Konvertierungsregel Implizit möglich BOOL_VALUE_TO_INT Übernehme Booleschen Wert als INT-Wert (0 oder 1) nein BOOL_VALUE_TO_LREAL Übernehme Booleschen Wert als LREAL-Wert (0.0 oder 1.0) nein BOOL_VALUE_TO_REAL Übernehme Booleschen Wert als REAL-Wert (0.0 oder 1.0) nein BOOL_VALUE_TO_SINT Übernehme Booleschen Wert als SINT-Wert (0 oder 1)
  • Seite 317 Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Funktionsname Konvertierungsregel Implizit möglich DWORD_TO_SINT Übernehme das niederstwertige Byte als SINT-Wert. nein DWORD_TO_UDINT Übernehme Bitstring als UDINT-Wert. nein DWORD_TO_UINT Übernehme die 2 niederwertigen Bytes als UINT-Wert. nein DWORD_TO_USINT Übernehme das niederstwertige Byte als USINT-Wert. nein DWORD_TO_WORD Übernehme die 2 niederwertigen Bytes als Bitstring.
  • Seite 318 Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Funktionsname Konvertierungsregel Implizit möglich REAL_TO_USINT Runde Betrag auf nächstliegende Ganzzahl nein REAL_VALUE_TO_BOOL FALSE (0), wenn REAL-Wert = 0.0; TRUE (1) sonst. nein REAL_VALUE_TO_BYTE Runde Betrag auf nächstliegende Ganzzahl und übernehme Wert nein als Bitstring. REAL_VALUE_TO_DWORD Runde Betrag auf nächstliegende Ganzzahl und übernehme Wert...
  • Seite 319 Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Funktionsname Konvertierungsregel Implizit möglich UINT_TO_UDINT Übernehme Wert. UINT_TO_USINT Übernehme das niederwertige Byte als USINT-Wert. nein UINT_TO_WORD Übernehme Bitstring. nein UINT_VALUE_TO_BOOL FALSE (0), wenn UINT-Wert = 0; TRUE (1) sonst. nein USINT_TO_BYTE Übernehme Bitstring. nein USINT_TO_DINT Übernehme Wert.
  • Seite 320: Funktionen Zur Konvertierung Von Datentypen Für Datum Und Zeit

    Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung 7.6.2 Funktionen zur Konvertierung von Datentypen für Datum und Zeit Für Datentypen des Datums und der Zeit stehen nachstehende Standardfunktionen zur Verfügung Zu arithmetischen Ausdrücken mit den Datentypen für Datum und Zeit siehe Arithmetische Ausdrücke im ST-Programmierhandbuch.
  • Seite 321: Funktionen Zur Konvertierung Von Aufzählungsdatentypen

    Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung 7.6.3 Funktionen zur Konvertierung von Aufzählungsdatentypen Mit der Funktion ENUM_TO_DINT erhalten Sie den numerischen Wert eines Elements eines Aufzählungsdatentyps. Beim Aufruf der Funktion spezifizieren Sie den Datentyp des Aufzählungselements, indem Sie den Bezeichner des Datentyps und das Zeichen # vor den enum_type#enum_value Bezeichner des Aufzählungselements stellen ( Tabelle 7- 15 Standardfunktionen für Datum und Zeit...
  • Seite 322: Funktionen Zur Konvertierung Von Int/Real/Lreal- Und String-Datentypen

    Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Regel 1. Ist k > len(myString), wird die TSI#ERRNO auf den Wert 2 gesetzt (Wert ausserhalb des gültigen Bereichs) und myByte mit dem Wert 0 belegt. Anwendungsfälle ● Interne Variable auslesen und ggf. INT nach STRING oder DINT nach STRING konvertieren.
  • Seite 323 Programmierung allgemeiner Standardfunktionen 7.6 Standardfunktionen zur Daytentypkonvertierung Regeln für die Konvertierung von STRING nach DINT/UDINT/REAL/LREAL 1. Führende Whitespaces werden nicht berücksichtigt, als Whitespaces werden Leerzeichen und Tabulatoren erkannt. 2. Die Konvertierung endet am Ende des Strings oder am ersten Zeichen, das keine Ziffer ist.
  • Seite 324: Konvertierung Zwischen Beliebigen Datentypen Und Byte-Feldern

    Programmierung allgemeiner Standardfunktionen 7.7 Konvertierung zwischen beliebigen Datentypen und Byte-Feldern Konvertierung zwischen beliebigen Datentypen und Byte-Feldern 7.7.1 Allgemeines Die nachfolgend angegebenen Funktionen ermöglichen das Wandeln von Variablen beliebigen Datentyps (elementare Datentypen, Standarddatentypen der Technologiepakete und Geräte, anwenderdefinierte Datentypen) in Byte-Felder und umgekehrt. Weitere Informationen (z.
  • Seite 325 Programmierung allgemeiner Standardfunktionen 7.7 Konvertierung zwischen beliebigen Datentypen und Byte-Feldern ACHTUNG Variablen vom Datentyp BOOL (auch als Komponenten innerhalb eines strukturierten Datentyps) belegen im Bytefeld jeweils ein Byte. Deklaration FUNCTION AnyType_to_BigByteArray ( anydata : ANY, // beliebiger Datentyp { offset : DINT // nur Konstante erlaubt ) : ARRAY [..] OF BYTE // Big Endian...
  • Seite 326: Funktion Bigbytearray_To_Anytype, Funktion Littlebytearray_To_Anytype

    Programmierung allgemeiner Standardfunktionen 7.7 Konvertierung zwischen beliebigen Datentypen und Byte-Feldern Siehe auch Konvertieren zwischen beliebigen Datentypen und Byte-Feldern (Marshalling) (Seite 397) 7.7.3 Funktion BigByteArray_to_AnyType, Funktion LittleByteArray_to_AnyType Die Funktionen wandeln ein Bytefeld in eine Variable beliebigen Datentyps (elementare Datentypen, Systemdatentypen, anwenderdefinierte Datentypen). ●...
  • Seite 327 Programmierung allgemeiner Standardfunktionen 7.7 Konvertierung zwischen beliebigen Datentypen und Byte-Feldern Deklaration FUNCTION BigByteArray_to_AnyType ( byteArray : ARRAY [..] OF BYTE, // Big Endian { offset : DINT // nur Konstante erlaubt ) : ANY FUNCTION LittleByteArray_to_AnyType ( byteArray : ARRAY [..] OF BYTE, // Little Endian { offset : DINT // nur Konstante erlaubt...
  • Seite 328: Zusammenfassen Von Bitstring-Datentypen

    Programmierung allgemeiner Standardfunktionen 7.8 Zusammenfassen von Bitstring-Datentypen ACHTUNG Das Ergebnis der Marshalling-Funktionen kann bei Laufzeit des Programms zu Fehlern führen, es wird dann die bei der Taskkonfiguration eingestellte Fehlerreaktion ausgelöst, siehe Verarbeitungsfehler in Programmen (Seite 99). Besondere Vorsicht ist bei der Konvertierung von Byte-Feldern in den allgemeinen Datentyp ANY_REAL oder in Strukturen geboten, die diesen Datentyp enthalten.
  • Seite 329: Funktion _Byte_From_8Bool

    Programmierung allgemeiner Standardfunktionen 7.8 Zusammenfassen von Bitstring-Datentypen 7.8.2 Funktion _BYTE_FROM_8BOOL Diese Funktion fasst 8 Variablen vom Datentyp BOOL zu einer Variablen vom Datentyp BYTE zusammen. Deklaration FUNCTION _BYTE_FROM_8BOOL ( { bit0, // niederstwertige Bit bit1, bit2, bit3, bit4, bit5, bit6, bit7 : BOOL // höchstwertige Bit ) : BYTE...
  • Seite 330: Funktion _Word_From_2Byte

    Programmierung allgemeiner Standardfunktionen 7.8 Zusammenfassen von Bitstring-Datentypen 7.8.3 Funktion _WORD_FROM_2BYTE Diese Funktion fasst 2 Variablen vom Datentyp BYTE zu einer Variablen vom Datentyp WORD zusammen. Deklaration FUNCTION _WORD_FROM_2BYTE ( { byte0, // niederwertiges Byte byte1 : BYTE // höherwertiges Byte ) : WORD Eingangsparameter byte0...
  • Seite 331: Funktion _Dword_From_4Byte

    Programmierung allgemeiner Standardfunktionen 7.8 Zusammenfassen von Bitstring-Datentypen Eingangsparameter word0 (optional) word1 (optional) Datentyp: WORD Vorbelegung WORD#0 Maximal 2 Variablen vom Datentyp WORD, die zu einer Variablen vom Datentyp DWORD zusammengefasst werden sollen word0: niederwertiges Wort word1: höherwertiges Wort Rückgabewert Datentyp: DWORD Aus den Eingangsparametern zusammengefasstes Doppelwort.
  • Seite 332: Wandlung Von Datentypen Technologischer Objekte

    Programmierung allgemeiner Standardfunktionen 7.9 Wandlung von Datentypen technologischer Objekte Vorbelegung BYTE#0 Maximal 4 Variablen vom Datentyp BYTE, die zu einer Variablen vom Datentyp DWORD zusammengefasst werden sollen byte0: niederstwertiges Byte byte3: höchstwertiges Byte Rückgabewert Datentyp: DWORD Aus den Eingangsparametern zusammengefasstes Doppelwort. Wandlung von Datentypen technologischer Objekte 7.9.1 Funktion AnyObject_to_Object...
  • Seite 333: Funktionen Zur Überprüfung Von Gleitpunktzahlen

    Programmierung allgemeiner Standardfunktionen 7.10 Funktionen zur Überprüfung von Gleitpunktzahlen 7.10 Funktionen zur Überprüfung von Gleitpunktzahlen 7.10.1 Funktion _finite Die Funktion überprüft, ob der Eingangsparameter dem Bitmuster für unendlich nach IEEE 754 entspricht. _isNaN Zusammen mit der Funktion wird sie insbesondere zur Prüfung verwendet, ob in Gleitpunktzahlen umgewandelte Bitstrings dem Bitmuster einer normalisierten Gleitpunktzahl nach IEEE entsprechen.
  • Seite 334: Funktion _Isnan

    Programmierung allgemeiner Standardfunktionen 7.10 Funktionen zur Überprüfung von Gleitpunktzahlen Siehe auch Funktion _isNaN (Seite 334) Verarbeitungsfehler in Programmen (Seite 99) 7.10.2 Funktion _isNaN Die Funktion überprüft, ob der Eingangsparameter einem ungültigen Bitmuster einer Gleitpunktzahl nach IEEE 754 entspricht (is Not a Number NaN). _finite Zusammen mit der Funktion wird sie insbesondere zur Prüfung verwendet, ob in...
  • Seite 335: Auswahlfunktionen

    Programmierung allgemeiner Standardfunktionen 7.11 Auswahlfunktionen Siehe auch Funktion _finite (Seite 333) Verarbeitungsfehler in Programmen (Seite 99) 7.11 Auswahlfunktionen 7.11.1 Funktion SEL Binäre Auswahl Der Rückgabewert ist einer der Eingangsparameter in0 oder in1 in Abhängigkeit vom Wert des Eingangsparameters g. Deklaration FUNCTION SEL ( : BOOL, : ANY,...
  • Seite 336: Funktion Mux

    Programmierung allgemeiner Standardfunktionen 7.11 Auswahlfunktionen 7.11.2 Funktion MUX Erweiterbare Multiplexfunktion Der Rückgabewert ist einer der n Eingangsparameter in0 bis in –1 in Abhängigkeit vom Wert des Eingangsparameters k. Hinweis Diese Beschreibung ist nicht für KopFup relevant. Die entsprechende Funktion ist im KopFup Programmierhandbuch beschrieben.
  • Seite 337: Funktion Max

    Programmierung allgemeiner Standardfunktionen 7.11 Auswahlfunktionen Rückgabewert Datentyp: Eingangsparameter in , falls Eingangsparameter k den Wert hat. Der Datentyp entspricht dem gemeinsamen Datentyp der Eingangsparameter in0 bis in – 7.11.3 Funktion MAX Erweiterbare Maximum-Funktion. Der Rückgabewert ist der Maximalwert der n Eingangsparameter in0 bis in –1.
  • Seite 338: Funktion Min

    Programmierung allgemeiner Standardfunktionen 7.11 Auswahlfunktionen Rückgabewert Datentyp: ANY_ELEMENTARY Maximum der Eingangsparameter Der Datentyp entspricht dem mächtigsten Datentyp der Eingangsparameter in0 bis in –1. 7.11.4 Funktion MIN Erweiterbare Minimum-Funktion. Der Rückgabewert ist der Minimalwert der n Eingangsparameter in0 bis in –1. Hinweis Diese Beschreibung ist nicht für KopFup relevant.
  • Seite 339: Funktion Limit

    Programmierung allgemeiner Standardfunktionen 7.11 Auswahlfunktionen Rückgabewert Datentyp: ANY_ELEMENTARY Minimum der Eingangsparameter Der Datentyp entspricht dem mächtigsten Datentyp der Eingangsparameter in0 bis in –1. 7.11.5 Funktion LIMIT Begrenzungsfunktion Eingangsparameter in wird auf Werte zwischen dem unteren Begrenzungswert und dem oberen Begrenzungswert beschränkt.
  • Seite 340: Konsistenter Zugriff Auf Globale Variablen Abgeleiteter Datentypen (Udt)

    Programmierung allgemeiner Standardfunktionen 7.12 Konsistenter Zugriff auf globale Variablen abgeleiteter Datentypen (UDT) Rückgabewert Datentyp: ANY_ELEMENTARY MIN (MAX (in, mn), mx) Der Datentyp entspricht dem mächtigsten Datentyp der Eingangsparameter. 7.12 Konsistenter Zugriff auf globale Variablen abgeleiteter Datentypen (UDT) 7.12.1 Allgemeines Bei Zugriffen auf globale Variablen abgeleiteter Datentypen (siehe Anwenderdefinierte Datentypen (UDT) in den Programmierhandbüchern) muss der Anwender selbst für die Konsistenz der Daten sorgen, falls mehrere Tasks auf dieselben Anwendervariablen zugreifen (I/O-Variablen, Systemvariablen, Systemvariablen der Technologieobjekte,...
  • Seite 341: Funktion _Testandsetsemaphore

    Programmierung allgemeiner Standardfunktionen 7.12 Konsistenter Zugriff auf globale Variablen abgeleiteter Datentypen (UDT) 7.12.2 Funktion _testAndSetSemaphore Mit dieser Funktion überprüfen Sie, ob das Semaphore gesetzt ist. Nach Beenden der Funktion ist das Semaphore immer gesetzt. Weitere Aufrufe der Funktion (auch aus anderen Programmen) ergeben den Rückgabewert FALSE, solange bis die Funktion _releaseSemaphore (semaA) aufgerufen wird.
  • Seite 342: Funktion _Releasesemaphore

    Programmierung allgemeiner Standardfunktionen 7.12 Konsistenter Zugriff auf globale Variablen abgeleiteter Datentypen (UDT) 7.12.3 Funktion _releaseSemaphore Mit dieser Funktion geben Sie das Semaphore frei. Der nächste Aufruf der Funktion _testAndSetSemaphore (auch aus anderen Programmen) ergibt den Rückgabewert TRUE. Deklaration _releaseSemaphore sema : DINT ) : VOID Eingangsparameter...
  • Seite 343: Zugriffe Auf Systemvariablen Und Ein-/Ausgänge

    Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge 7.13.1 Allgemeines zum Zugriff auf Systemvariablen und Ein-/Ausgängen Die Funktionen _getSafeValue und _setSafeValue erlauben eine gesonderte Fehlerbehandlung bei Zugriffen auf Systemvariablen, Konfigurationsdaten oder I/O- Variablen. Das Verhalten im Fehlerfall ist abweichend vom konfigurierten Verhalten (siehe Fehler bei Zugriffen auf Systemvariablen und Konfigurationsdaten sowie auf I/O- Variablen für Direktzugriff (Seite 102)) einstellbar.
  • Seite 344 Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge Fehlerreaktion festlegen accessmode Über den Parameter steuern Sie die Fehlerreaktion: restart.behaviorInvalidSysvarAccess ● CONFIGURED (Vorbelegung): Die durch festgelegte Fehlerreaktion wird verwendet, siehe Fehler bei Zugriffen auf Systemvariablen und Konfigurationsdaten sowie auf I/O-Variablen für Direktzugriff (Seite 102) ●...
  • Seite 345 Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge // restartInfo.behaviorInvalidSysvarAccess // Bei I/O-Variablen: // die beim Anlegen der I/O-Variable // festgelegte Strategie // Von der Konfiguration abweichendes Verhalten: NO_CHANGE // Bei Systemvariablen und // Konfigurationsdaten: Variable // nicht lesen. // Bei I/O-Variablen: Letzten // verfügbaren (gültigen) Wert // übernehmen.
  • Seite 346: Funktion _Setsafevalue

    Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge //(accessMode = DEFAULT_VALUE). , NO_ACCESS ) // Nur bei Konfigurationsdaten: // Konfigurationsdatum wurde // nicht gelesen, Defaultwert wird zurückgegeben END_TYPE Siehe auch Störungen und Ereignisse auswerten (Seite 98) Fehler beim Zugriff auf Systemdaten mit _get/_setSafeValue (Seite 134) 7.13.3 Funktion _setSafeValue Diese Funktion schreibt ab V4.1.3 den angegebenen Wert auf die Systemvariable, das...
  • Seite 347 Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge ● STOP_DEVICE: SIMOTION Gerät geht in den Betriebszustand STOP. Bei Übergang in den Betriebszustand STOP wird die ExecutionFaultTask nicht gestartet. ● Wertebereich der Variable Der Wert wird auf den Wertebereich begrenzt, unabhängig vom Parameter accessMode. Anhand des Rückgabewertes können Sie feststellen, ob der Zugriff erfolgreich war.
  • Seite 348 Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge // wird nicht geschrieben. // Bei I/O-Variablen // Der im Parameter value übergebene // Wert wird in die Variable // geschrieben. Er wird am Ausgang // erst wirksam, wenn der Ausgang // wieder verfügbar ist.
  • Seite 349: Funktion _Getinoutbyte

    Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge // wieder verfügbar ist. , DEFAULT_VALUE // Bei Systemvariablen: Begrenzung // aktiv, Grenzwert wurde // geschrieben. // Bei I/O-Variablen: Ersatzwert wurde // geschrieben. Er wird am Ausgang // erst wirksam, wenn der Ausgang // wieder verfügbar ist.
  • Seite 350 Programmierung allgemeiner Standardfunktionen 7.13 Zugriffe auf Systemvariablen und Ein-/Ausgänge Deklaration _getInOutByte ( mode : EnumInOutDirection, logAddress : DINT : StructRetGetInOutByte Eingangsparameter mode Datentyp: EnumInOutDirection Angabe, ob auf den Ein- oder Ausgang mit der logischen Adresse logAddress zugegriffen wird. TYPE EnumInOutDirection : ( // Zugriff auf Eingang OUT ) // Zugriff auf Ausgang...
  • Seite 351: Datensicherung Aus Anwenderprogramm

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm 7.14 Datensicherung aus Anwenderprogramm 7.14.1 Allgemeines zum Speichern von Datensätzen aus dem Anwenderprogramm Nachstehende Funktionen dienen: ● zum Speichern, Laden oder Initialisieren folgender Werte: – nicht remanente oder remanente unitglobale Variablen des Interface- oder Implementationsabschnitts einer Unit (z.
  • Seite 352 Mit der SCOUT-Funktion "Variable sichern" und "Variable wiederherstellen" ist es möglich, die mit _saveUnitDataSet gespeicherten Datensätze auch bei einem Versionswechsel oder geänderten Datensegmenten zu erhalten. Nähere Informationen finden Sie im Projektierungshandbuch SIMOTION SCOUT oder der Onlinehilfe. Deklaration _saveUnitDataSet ( unitName...
  • Seite 353 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm // (RAM-Disk), // wird bei Netzausfall gelöscht , PERMANENT_STORAGE // permanente Datenablage // (MemoryCard), bleibt bei // Netzausfall erhalten , USER_DEFINED ) // mit Pfadangabe // (nur Voreinstellung zulässig) END_TYPE path (optional) Datentyp: STRING Voreinstellung: ' ' (leerer String)
  • Seite 354 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Bei Angabe von unitName = ’_device’ sind für dataScope nur die Werte _INTERFACE oder _INTERFACE_AND_IMPLEMENTATION zulässig. Bis einschließlich Version V3.1 des SIMOTION Kernels können nur nicht remanente Variable des Interfaceabschnitts einer Unit gesichert werden. KindOfData (optional) Voreinstellung...
  • Seite 355 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm , COMMAND_FAILED // Befehl nicht ausführbar , NO_COMMAND_BUFFER_AVAILABLE // Befehlspuffer voll , COMMAND_NOT_FOUND // Befehl (Handle) nicht gefunden , DATASET_ID_NOT_VALID // Datensatznummer ungültig , READ_ERROR // Daten-Lesefehler // (Speichermedium defekt) , NO_STORAGE_AVAILABLE // kein Speicherplatz verfügbar , ACCESS_DENIED // Zugriff verweigert // (fehlende Schreib-/Leserechte)
  • Seite 356: Funktion _Loadunitdataset

    Mit der SCOUT-Funktion "Variable sichern" und "Variable wiederherstellen" ist es möglich, die mit _saveUnitDataSet gespeicherten Datensätze auch bei einem Versionswechsel oder geänderten Datensegmenten zu erhalten. Nähere Informationen finden Sie im Projektierungshandbuch SIMOTION SCOUT oder der Onlinehilfe. Deklaration _loadUnitDataSet (...
  • Seite 357 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Eingangsparameter unitName Datentyp: STRING Name der Unit (z. B. ST-Quelle, MCC-Quelle), deren Unit-Variablen geladen werden sollen. Der Name muss in Kleinbuchstaben und durch Hochkommata begrenzt angegeben werden (z. B. 'st_unit1'). Bei Angabe von ’_device’ werden die geräteglobalen Variablen geladen (möglich ab Version V3.2 des SIMOTION Kernels).
  • Seite 358 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm TYPE EnumNextCommandMode : ( IMMEDIATELY // sofort , WHEN_COMMAND_DONE ) // nach Beenden oder Abbruch // des Befehls END_TYPE dataScope (optional) Datentyp: EnumDeviceDataScope Voreinstellung _INTERFACE Der Parameter steht ab Version V3.2 des SIMOTION Kernels zur Verfügung. Angabe des Abschnitts, dessen Unit-Variablen gesichert werden sollen.
  • Seite 359: Funktion _Exportunitdataset (Ab Kernel V3.2)

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Rückgabewert Datentyp: StructRetUnitDataSetCommand Der Rückgabewert ist eine Struktur vom Datentyp StructRetUnitDataSetCommand. In ihm sind zusammengefasst: functionResult • eine Komponente : EnumDeviceUnitDataSetCommand. Diese gibt Ihnen Auskunft über Fehler und den aktuellen Zustand. handle • eine Komponente : UDINT.
  • Seite 360: Eingangsparameter

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Achten Sie auf die Konsistenz der zu exportierenden Daten (siehe Konsistentes Schreiben und Lesen von Variablen (Semaphoren)). Der exportierte Datensatz kann mit der Funktion _importUnitDataSet auch dann importiert werden, wenn sich inzwischen die Versionskennung des Datenbereichs (z. B. remanente Variablen des Interfaceabschnitts der Unit) geändert hat (z.
  • Seite 361 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm TYPE EnumDeviceStorageType : ( TEMPORARY_STORAGE // temporäre Datenablage // (RAM-Disk), // wird bei Netzausfall gelöscht , PERMANENT_STORAGE // permanente Datenablage // (MemoryCard), bleibt bei // Netzausfall erhalten , USER_DEFINED ) // mit Pfadangabe // (nur Voreinstellung zulässig) END_TYPE path...
  • Seite 362 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Type EnumDeviceDataScope : ( _INTERFACE // Interfaceabschnitt , _IMPLEMENTATION // Implementationsabschnitt , _INTERFACE_AND_IMPLEMENTATION ) // Interface- und // Implementationsabschnitt END_TYPE KindOfData (optional) Voreinstellung NO_RETAIN_GLOBAL Angabe, ob nicht remanente oder remanente globale Variablen exportiert werden. TYPE EnumDeviceKindOfData : ( NO_RETAIN_GLOBAL // nicht remanente Variablen...
  • Seite 363: Funktion _Importunitdataset (Ab Kernel V3.2)

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm 7.14.5 Funktion _importUnitDataSet (ab Kernel V3.2) Die Werte folgender Variablen werden aus einem Datensatz importiert, der mit _exportUnitDataSet exportiert wurde. ● nicht remanente unitglobale Variablen des Interface- und Implementationsabschnitts einer Unit (z. B. ST-Quelle, MCC-Quelle oder KOP/FUP-Quelle) ●...
  • Seite 364 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Eingangsparameter unitName Datentyp: STRING Name der Unit (z. B. ST-Quelle, MCC-Quelle), deren Unit-Variablen importiert werden sollen. Der Name muss in Kleinbuchstaben und durch Hochkommata begrenzt angegeben werden (z. B. 'st_unit1'). Die Angabe von ’_device’ (für den Import geräeglobaler Variablen) ist hier nicht zulässig (nur bei _loadUnitDataSet möglich).
  • Seite 365 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm TYPE EnumNextCommandMode : ( IMMEDIATELY // sofort , WHEN_COMMAND_DONE ) // nach Beenden oder Abbruch // des Befehls END_TYPE dataScope (optional) Datentyp: EnumDeviceDataScope Voreinstellung _INTERFACE Angabe des Abschnitts, dessen Unit-Variablen importiert werden sollen. Type EnumDeviceDataScope : ( _INTERFACE // Interfaceabschnitt...
  • Seite 366: Funktion _Deleteunitdataset

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Rückgabewert Datentyp: StructRetUnitDataSetCommand Der Rückgabewert ist eine Struktur vom Datentyp StructRetUnitDataSetCommand. In ihm sind zusammengefasst: functionResult • eine Komponente : EnumDeviceUnitDataSetCommand. Diese gibt Ihnen Auskunft über Fehler und den aktuellen Zustand. handle • eine Komponente : UDINT.
  • Seite 367 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Deklaration _deleteUnitDataSet ( unitName : STRING, : UDINT, storageType : EnumDeviceStorageType, { path : STRING, nextCommand : EnumNextCommandMode, ): StructRetUnitDataSetCommand Eingangsparameter unitName Datentyp: STRING Name der Unit (z. B. ST-Quelle, MCC-Quelle); der Name muss in Kleinbuchstaben und durch Hochkommata begrenzt angegeben werden (z.
  • Seite 368 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm path (optional) Datentyp: STRING Voreinstellung: ' ' (leerer String) Zielpfad, wenn storageType = USER_DEFINED. Hinweis Für die Einstellung USER_DEFINED ist nur die Voreinstellung zulässig. nextCommand (optional) Datentyp: EnumNextCommandMode Voreinstellung: IMMEDIATELY Weiterschaltung zum nächsten Befehl TYPE EnumNextCommandMode : ( IMMEDIATELY // sofort...
  • Seite 369: Funktion _Getstateofunitdatasetcommand

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm 7.14.7 Funktion _getStateOfUnitDataSetCommand Sie liefert den Status der Funktionen zur Datensicherung. Deklaration _getStateOfUnitDataSetCommand ( handle : UDINT : EnumDeviceUnitDataSetCommand Eingangsparameter handle Datentyp: DINT Das Handle der Datensicherungsfunktion, deren Status abgefragt werden soll. Dieses Handle haben Sie als Komponente des Rückgabewertes der Datensicherungsfunktion erhalten.
  • Seite 370: Funktion _Checkexistingunitdataset

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm 7.14.8 Funktion _checkExistingUnitDataSet Es wird überprüft, ob der angegebene Datensatz mit den gesicherten Werten folgender Variablen auf dem Speichermedium vorhanden ist: ● gesicherte nicht remanente oder remanente Unit-Variablen des Interface- oder Implementationsabschnitts einer Unit (z. B. ST-Quelle, MCC-Quelle) ●...
  • Seite 371 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm , PERMANENT_STORAGE // permanente Datenablage // (MemoryCard), bleibt bei // Netzausfall erhalten , USER_DEFINED ) // mit Pfadangabe // (Nur Voreinstellung ist zulässig) END_TYPE path (optional) Datentyp: STRING Voreinstellung: ' ' (leerer String) Zielpfad, wenn storageType = USER_DEFINED.
  • Seite 372: Funktion _Deleteallunitdatasets

    Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm Siehe auch Funktion _exportUnitDataSet (ab Kernel V3.2) (Seite 359) 7.14.9 Funktion _deleteAllUnitDataSets Alle Datensätze mit gesicherten Werten folgender Variablen werden gelöscht. ● gesicherte nicht remanente oder remanente Unit-Variablen des Interface- oder Implementationsabschnitts einer Unit (z. B. ST-Quelle, MCC-Quelle) ●...
  • Seite 373 Programmierung allgemeiner Standardfunktionen 7.14 Datensicherung aus Anwenderprogramm // (MemoryCard), bleibt bei // Netzausfall erhalten , USER_DEFINED ) // mit Pfadangabe // (nur Voreinstellung zulässig) END_TYPE path (optional) Datentyp: STRING Voreinstellung: ' ' (leerer String) Zielpfad, wenn storageType = USER_DEFINED. Nur die Angabe des Voreinstellungswertes ist zulässig. nextCommand (optional) Datentyp:...
  • Seite 374: Funktionen Für Commandid

    Programmierung allgemeiner Standardfunktionen 7.15 Funktionen für CommandId Siehe auch Funktion _exportUnitDataSet (ab Kernel V3.2) (Seite 359) 7.15 Funktionen für CommandId 7.15.1 Funktion _getCommandId Die Funktion liefert eine projektweit eindeutige CommandId, die zur eindeutigen Identifikation von Befehlen verwendet werden kann. Es wird immer eine CommandId geliefert, es erfolgt keine Fehlerrückmeldung. Deklaration _getCommandId ( ) : CommandIdType Eingangsparameter...
  • Seite 375: Funktion _Getsynccommandid

    Programmierung allgemeiner Standardfunktionen 7.15 Funktionen für CommandId 7.15.2 Funktion _getSyncCommandId Die Funktion liefert dem Anwender eine projektweit eindeutige syncCommandId. Diese kann den Systemfunktionen BEGIN_SYNC und _startSyncCommands (siehe Listenhandbücher der SIMOTION Geräte) übergeben werden, um Bewegungsabläufe synchron zu starten. Es wird immer eine syncCommandId geliefert, es erfolgt keine Fehlerrückmeldung. Deklaration _getSyncCommandId ( ) : CommandIdType Eingangsparameter...
  • Seite 376: Wartezeit Definieren

    Programmierung allgemeiner Standardfunktionen 7.16 Wartezeit definieren 7.16 Wartezeit definieren 7.16.1 Funktion _waitTime Die Funktion unterbricht die Task, die diese Funktion absetzt, bis die im Aufruf spezifizierte Zeit abgelaufen ist. ACHTUNG Die Funktion sollte nur in MotionTasks verwendet werden, die Verwendung in zyklischen Tasks kann zu Zeitüberwachungsfehlern führen! •...
  • Seite 377: Gerätespezifische Funktionen

    Programmierung allgemeiner Standardfunktionen 7.17 Gerätespezifische Funktionen Rückgabewert Datentyp: DINT Ist immer 0.. Siehe auch Zeitgeber (Seite 430) Zeitaufteilung in der Round-Robin-Ablaufebene (Seite 201) Wartezeiten in zyklischen Tasks (Seite 474) 7.17 Gerätespezifische Funktionen 7.17.1 Funktion _getDeviceId Die Funktion liest die Hardware-Kennung des SIMOTION Geräts aus dessen Hardware- Informationsblock aus.
  • Seite 378: Funktion _Getmemorycardid

    Programmierung allgemeiner Standardfunktionen 7.17 Gerätespezifische Funktionen Rückgabewert Datentyp: StructRetGetDeviceId Der Rückgabewert ist eine Struktur vom Datentyp StructRetGetDeviceId. In ihm sind zusammengefasst: functionResult • eine Komponente : DINT. Diese gibt Ihnen Auskunft über Fehler. • eine Komponente : STRING[254]. Diese enthält die ausgelesene Hardware-Kennung der MemoryCard. TYPE StructRetGetDeviceId : STRUCT functionResult : DINT;...
  • Seite 379: Funktion _Setdeviceerrorled

    Programmierung allgemeiner Standardfunktionen 7.17 Gerätespezifische Funktionen Rückgabewert Datentyp: StructRetGetMemoryCardId Der Rückgabewert ist eine Struktur vom Datentyp StructRetGetMemoryCardId. In ihm sind zusammengefasst: functionResult • eine Komponente : DINT. Diese gibt Ihnen Auskunft über Fehler. • eine Komponente : STRING[254]. Diese enthält die ausgelesene Hardware-Kennung der MemoryCard. TYPE StructRetGetMemoryCardId : STRUCT functionResult : DINT;...
  • Seite 380: Funktion _Setdriveobjectstw

    Programmierung allgemeiner Standardfunktionen 7.17 Gerätespezifische Funktionen 7.17.4 Funktion _setDriveObjectSTW Beschreibung Mit der Systemfunktion _setDriveObjectSTW können Sie ab V4.1.2 frei verwendbare bzw. nicht vom SIMOTION-RT unterstützte Bits im STW1_Device des Telegramms 39x zum DO1 hin setzen. Deklaration _setDriveObjectSTW (DINT logAddress, UINT STW1BitMask, UINT STW1BitSet)
  • Seite 381 Programmierung allgemeiner Standardfunktionen 7.17 Gerätespezifische Funktionen Rückgabewert Datentyp: Status der Funktion Bedeutung des Returnwertes 0x0000 0000 Auftrag fehlerfrei beendet Bits wurden in das Steuerwort geschrieben Bits waren im STW1 bereits im vorgegebenen Zustand 0xFFFF 8090 Auftrag abgebrochen Logische Adresse ist nicht vorhanden 0xFFFF 8091 Adressiertes DO unterstützt die...
  • Seite 382: Speichergröße Einer Variable Bzw. Eines Datentyps Bestimmen

    Programmierung allgemeiner Standardfunktionen 7.18 Speichergröße einer Variable bzw. eines Datentyps bestimmen 7.18 Speichergröße einer Variable bzw. eines Datentyps bestimmen 7.18.1 Funktion _sizeOf Die Funktion liefert die für eine Variable oder Datentyp benötigte Speichergröße in Byte als konstanten Wert zurück. Sie ist deshalb auch in Datentyp- und Variablendeklaration (z. B. als Dimension eines Arrays) einsetzbar.
  • Seite 383: Weitere Verfügbare Systemfunktionen

    Programmierung allgemeiner Standardfunktionen 7.19 Weitere verfügbare Systemfunktionen 7.19 Weitere verfügbare Systemfunktionen In SIMOTION sind weitere Systemfunktionen verfügbar, die z. B. durch die SIMOTION Geräte und Technologieobjekte eingebracht werden. Folgende Tabelle gibt einen Überblick, wo diese beschrieben sind. Tabelle 7- 16 Überblick über weitere Systemfunktionen und -funktionsbausteine in SIMOTION ST Systemfunktion Beschreibung Systemfunktionen der Technologieobjekte...
  • Seite 384: Übersicht Der Funktionen

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.1.2 Übersicht der Funktionen Die beschriebenen Funktionen stehen ab Version V3.2 des SIMOTION Kernels zur Verfügung. Sie können in Bibliotheken verwendet werden. Mit _alarmSId generieren Sie bei jedem Aufruf eine nicht quittierungspflichtige Meldung, die in Abhängigkeit von einem Signal ausgelöst wird und an die ein Begleitwert angehängt werden kann.
  • Seite 385: Alarmid

    AlarmS muss ein kommender AlarmS derselben ID in der Meldeliste existieren. Für jeden der insgesamt 40 Listeneinträge gibt es zusätzlich einen Sendepuffer. Dieser Sendepuffer wird genutzt, um die Benachrichtigung der angemeldeten Clients (HMI oder SIMOTION SCOUT) zu organisieren. Meldeliste und Sendepuffer Meldeliste und Sendepuffer werden wie folgt benutzt: Rückgabewert...
  • Seite 386 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen Rückgabewert Bedeutung 16#0000 ID des AlarmS wird in die Meldeliste eingetragen. Der zugehörige Sendepuffer wird belegt. Die Systemfunktion kehrt mit dem Rückgabewert 0000 zurück. Die angemeldeten Clients werden benachrichtigt. Nach erfolgreicher Benachrichtigung der Clients wird der Sendepuffer wieder freigegeben.
  • Seite 387: Beispiel Für Die Meldungsgenerierung

    Temperatur zu hoch ist. Falls die Temperatur unter dem festgelegten Maximalwert zurückgeht, wird eine gehende Meldung generiert (kommende Meldung verschwindet). SCOUT_alarm_name Die Meldung mit dem Namen wurde in SIMOTION SCOUT projektiert Temperatur zu hoch: @1I%2d@ und lautet z. B.: Grad. Eine Statusvariable verhindert das handleAlarm Wiederholen der gleichen Meldung.
  • Seite 388: Fehlernummer Und Status Einer Meldung Abfragen (Rückgabewerte Filtern)

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.1.6 Fehlernummer und Status einer Meldung abfragen (Rückgabewerte filtern) _alarmSId alarmSqId Der Rückgabewert der Funktionen und_ enthält die Fehlernummer und gibt somit Auskunft, ob bei der Ausführung ein Fehler aufgetreten ist. Wie bei den meisten Systemfunktionen zeigt ein Rückgabewert = 0 eine fehlerfreie Aufführung an.
  • Seite 389: Konsistentes Schreiben Und Lesen Von Variablen (Semaphoren)

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.2 Konsistentes Schreiben und Lesen von Variablen (Semaphoren) 7.20.2.1 Konsistenter Datenzugriff Elementare Datentypen Alle Zugriffe auf Variablen elementarer Datentypen (siehe Kapitel werden vom System konsistent gehandhabt. Es wird gewährleistet, dass diese Variablen nicht zwischendurch geändert werden, während Sie sie bearbeiten. Bei Zugriffen auf globale Variablen abgeleiteter Datentypen (siehe Kapitel Anwenderdefinierte Datentypen (UDT)) muss der Anwender selbst für die Konsistenz der...
  • Seite 390: Beispiel: Konsistenter Datenzugriff Mit Semaphoren

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 1. Alle Tasks signalisieren den Zugriff auf globale Variablen durch Setzen eines Semaphores. 2. Alle Tasks greifen auf globale Variablen nur bei freigegebenem Semaphore zu. 7.20.2.3 Beispiel: Konsistenter Datenzugriff mit Semaphoren Das Beispiel in der Tabelle verdeutlicht den Gebrauch von Semaphoren in je einem Programm, das Daten schreibt bzw.
  • Seite 391: Datensicherung Und -Initialisierung Aus Anwenderprogramm

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen ; // Fehlerbehandlung END_IF; // _releaseSemaphore(sema := semaA); // An dieser Stelle wäre die Freigabe falsch; // das Semaphore würde immer freigegeben werden. END_PROGRAM END_IMPLEMENTATION 7.20.3 Datensicherung und -initialisierung aus Anwenderprogramm 7.20.3.1 Datensicherung und -initialisierung aus Anwenderprogramm - Funktionen und Hinweise Aus einem Anwenderprogramm heraus können die Werte folgender Variablen in Datensätzen gesichert, geladen oder initialisiert werden: ●...
  • Seite 392 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen _importUnitDataSet ● (ab Version V3.2 des SIMOTION Kernels): Die Werte werden aus _exportUnitDataSet einem Datensatz importiert, der mit im XML-Format als ZIP-Archiv (Dateiname *.dat) exportiert wurde ( Funktion _importUnitDataSet (ab Kernel V3.2) (Seite 363) ).. Der Import des Datensatzes ist auch möglich, wenn sich seit dem Speichern des Datensatzes die Versionskennung eines zu ladenden Datensegments geändert hat: –...
  • Seite 393: Eingangsparameter

    Variablen wieder in das SIMOTION Gerät laden (Download). Wählen Sie hierzu im Projektnavigator das entsprechende SIMOTION Gerät aus und wählen Sie im Kontextmenü die Funktion. Weitere Informationen siehe Projektierungshandbuch SIMOTION SCOUT. Damit ist es z. B. möglich, die mit _saveUnitDataSet gespeicherten Daten zu erhalten, obwohl Sie durch einen Download des Projekts initialisiert oder unbrauchbar werden (z.
  • Seite 394: Rückgabewert

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen dataScope ● Der Parameter steht ab Version V3.2 des SIMOTION Kernels zur Verfügung. Er ermöglicht die Auswahl, auf welchen Abschnitt der Unit die Datensicherungsfunktion angewendet wird. – _INTERFACE: Funktion wird auf den Interfaceabschnitt einer Unit angewendet –...
  • Seite 395: Speicherort Und Speicherbedarf

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.3.4 Speicherort und Speicherbedarf storageType Den Speicherort legen Sie mit dem Eingangsparameter fest: ● TEMPORARY_STORAGE: Datensätze werden auf der RAM-Disk gespeichert. ● PERMANENT_STORAGE: Datensätze werden auf der MemoryCard (unter \USER\SIMOTION\USER_DIR\) gespeichert. Die Anzahl der Datensätze, die gespeichert werden können, ist abhängig vom freien Speicherplatz am jeweiligen Speicherort.
  • Seite 396 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen PROGRAM save_data_seq // Programm ist einer sequentiellen Task zugeordnet. // Funktion synchron ausführen: ds_ret := _loadUnitDataSet ( unitName := 'ds3', id := 1, storageType := TEMPORARY_STORAGE, nextCommand := WHEN_COMMAND_DONE); // Funktion ist beendet, Ergebnis auswerten IF (ds_ret.functionResult <>...
  • Seite 397: Konvertieren Zwischen Beliebigen Datentypen Und Byte-Feldern (Marshalling)

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen nextCommand := IMMEDIATELY); IF (ds_ret.functionResult <> DONE) THEN cmd_busy := FALSE; error := TRUE; // Start der Funktion fehlgeschlagen // (z. B. zuviele Dienste) END_IF; ELSE // Funktion läuft, auf Ergebnis warten: ds_rslt := _getStateOfUnitDataSetCommand ( ds_ret.handle);...
  • Seite 398 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen Tabelle 7- 22 Beispiele für Byte-Anordnung (Big Endian und Little Endian Adresse Zahl 34677374 = 16#2_11_22_7E Zeichenfolge "Byte" (Datentyp UDINT) (Datentyp DWORD) Big Endian Little Endian Big Endian Little Endian 2#...11 16#7E = 126 16#02 = 2 16#65 = "e"...
  • Seite 399 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen ACHTUNG Das Ergebnis der Marshalling-Funktionen kann bei Laufzeit des Programms zu Fehlern führen, es wird dann die bei der Taskkonfiguration eingestellte Fehlerreaktion ausgelöst, siehe Verarbeitungsfehler in Programmen (Seite 99). Besondere Vorsicht ist bei der Konvertierung von Byte-Feldern in den allgemeinen Datentyp ANY_REAL oder in Strukturen geboten, die diesen Datentyp enthalten.
  • Seite 400 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen // Wandlung nach Little Endian lit_b_Array := AnyType_to_LittleByteArray ( anyData := gsbVar, offset := 0); // Inhalt der Elemente von lit_b_array (Little Endian): // Siehe 3. Spalte in nachfolgender Tabelle // Wandlung von Big Endian gsbVar := BigByteArray_to_AnyType ( bytearray := big_b_Array, offset := 0);...
  • Seite 401: Kommunikationsfunktionen

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.5 Kommunikationsfunktionen 7.20.5.1 Verfügbare Funktionen Für die Kommunikation über nicht projektierte Verbindungen stellt ST folgende Funktionen zur Verfügung: ● _Xsend, siehe Parameterbeschreibung für _Xsend (Seite 402) ● _GetStateOfXCommand, siehe Parameterbeschreibung für _GetStateOfXCommand (Seite 404) ●...
  • Seite 402: Parameterbeschreibung Für

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.5.2 Parameterbeschreibung für _Xsend Mit der Funktion _Xsend senden Sie ein Datenpaket mit transparenten Daten an einen Kommunikationspartner. Die ausführliche Syntax der Parameter finden Sie im Listenhandbuch zu den SIMOTION Geräten. Nachfolgend eine Übersicht: communicationMode ●...
  • Seite 403: Parameterbeschreibung Für

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen ● Der Pflicht-Parameter commandId dient der internen Erkennung eines Befehls im ST. Der _getCommandId Parameterwert sollte mit der Funktion in einer lokalen Variablen CommandIdType gespeichert (Datentyp ) werden. Diese Variable kann als Parameterwert verwendet werden.
  • Seite 404: Parameterbeschreibung Für _Getstateofxcommand

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.5.4 Parameterbeschreibung für _GetStateOfXCommand _Xsend Mit der Funktion _GetStateOfXCommand fragen Sie den Zustand des Befehls oder _Xreceive Nachfolgend eine kurze Übersicht der Funktionsparameter (siehe auch Dokumentation zu den Technologiefunktionen): commandId ● Anhand des Pflicht-Parameters , der jeder Sende- und Empfangsfunktion _Xsend eindeutig zugeordnet wurde (siehe Erläuterungen zu diesem Parameter für...
  • Seite 405 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen SIMATIC S7 Gerät SIMOTION Gerät (Parameter für SFC 65 X_SEND) (Parameter für _Xsend) – nextCommand (nicht vorhanden) (Modus der Datenübertragung, Enum.-Werte für synchron und asynchron) REQ_ID messageId (Auftragskennung, Wert vom Datentyp DWORD) (Auftragskennung, Wert vom Datentyp UDINT) data (Variablenadresse für gesendete Daten, Wert (zu sendendes Datenpaket, eindim.
  • Seite 406: Beispiel Sende- Und Empfängerprogramm

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen SIMATIC S7 Gerät SIMOTION Gerät (Parameter für SFC 66 X_RCV) (Parameter für _Xreceive) – <Rückgabewert, (nicht vorhanden) Strukturelement dataLength> (Datenlänge des empfangenen Datenpaketes) <Rückgabewert> <Rückgabewert, (= 0, wenn kein Fehler <> 0, wenn Fehler; siehe Strukturelement functionResult>...
  • Seite 407: Kommunikation Über Ethernet Mit Tcp/Ip-Protokoll

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen , data := myData , dataLength := 1 END_PROGRAM END_IMPLEMENTATION Tabelle 7- 30 Beispiel für das Empfängerprogramm INTERFACE PROGRAM xreceive_control; END_INTERFACE IMPLEMENTATION VAR_GLOBAL retVal : StructRetXReceive; END_VAR // Das folgende Programm muss einer MotionTask // zugeordnet werden.
  • Seite 408: Kommunikation Über Ethernet Mit Udp-Protokoll

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen Kommunikationschritte Systemfunkion Kommunizieren Sender sendet Daten an den Empfänger. _tcpSend Empfänger empfängt Daten vom Sender. _tcpReceive Kommunikationverbindung beenden Sender sendet keine Daten mehr und schließt die _tcpCloseConnection Verbindung. Es wird keine weitere Verbindung mehr benötigt. _tcpCloseServer Die Systemfunktionen sind ausführlich im Listenhandbuch zu den SIMOTION Geräten, Kapitel Systemfunktionen, beschrieben.
  • Seite 409: Synchroner Start

    Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen 7.20.6 Synchroner Start Beim synchronen Start werden mehrere Befehle innerhalb eines IPO-Taktes bzw. IPO_2- Taktes gestartet. So gehen Sie vor: 1. Zuerst lassen Sie sich eine eindeutige SyncCommandId vom System geben. Sie benötigen diese SyncCommandId zur eindeutigen Kennzeichnung der synchronen Befehle.
  • Seite 410 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen startSyncCommand Die Funktionen BEGIN_SYNC, END_SYNC und _ sind Systemfunktionen der SIMOTION Geräte; nähere Erläuterungen finden Sie deshalb im Listenhandbuch des entsprechenden SIMOTION Geräts. Hinweis Oft wird der synchrone Start zusammen mit dem WAITFORCONDITION-Konstrukt verwendet.
  • Seite 411 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen END_WAITFORCONDITION; ret_val := _startSyncCommands(sync_id); // Im Fehlerfall hier Start der UserInterruptTask //IF (_ret_val <> 0) THEN _startTask(UserInterruptTask_1); END_IF; END_PROGRAM END_IMPLEMENTATION Um die korrekte Beendigung des Synchronen Starts zu prüfen, können Sie abfragen, ob die Befehle der beiden im vorherigen Beispiel synchron gestarteten Achsen ohne Fehler beendet wurden.
  • Seite 412 Programmierung allgemeiner Standardfunktionen 7.20 Anwendung einiger Systemfunktionen BEGIN_SYNC(_MccSync); (* Starte Achse lagegeregelt ('Move') *) _MccRetDINT_1:=_move(axis:=Achse_1, velocityType:=DIRECT, velocity:=v_blue, moveTimeOutType:=WITHOUT_TIME_LIMIT, mergeMode:=IMMEDIATELY, nextCommand:=IMMEDIATELY, commandId:=_MccCommand1, movingMode:=POSITION_CONTROLLED); (* Starte Achse lagegeregelt ('Move') *) _MccRetDINT_2:=_move(axis:=Achse_2, velocityType:=DIRECT, velocity:=v_red, moveTimeOutType:=WITHOUT_TIME_LIMIT, mergeMode:=IMMEDIATELY, nextCommand:=IMMEDIATELY, ommandId:=_MccCommand2, movingMode:=POSITION_CONTROLLED); (* Synchroner Start ('EndSync') *) END_SYNC();...
  • Seite 413: Kopplung Hmi (Human Machine Interface)

    Programmierung allgemeiner Standardfunktionen 7.21 Kopplung HMI (Human Machine Interface) END_WHILE; _MccRetSyncStart := 0; //Abfrage ob beide Achsbefehle ohne Fehler laufen IF (_MccRetDINT_1 + _MccRetDINT_2 <> 0) THEN _MccRetSyncStart := -1; END_IF; (* IF: Programmverzweigung ('If') *) IF (_MccRetSyncStart <> 0) THEN ;//Fehlerbehandlung ('Else') *) ELSE...
  • Seite 414: Konsistenter Datenzugriff Mit Hmi-Geräten (Beispiel)

    Bediener quittiert. Mit dem AlarmS-Konzept steht Ihnen außerdem ein Verfahren zur Projektierung und Programmierung von Anwendermeldungen zur Verfügung. Projektiert werden Anwendermeldungen in SIMOTION SCOUT, zur Laufzeit aufgerufen und quittiert werden die Meldungen durch Aufruf entsprechender Systembefehle. OPC unterstützt die gleichen Meldungsmechanismen.
  • Seite 415 Programmierung allgemeiner Standardfunktionen 7.21 Kopplung HMI (Human Machine Interface) Variable consistencyFlag mit einem ungeraden Wert beschrieben. Daraufhin kopiert das SIMOTION Anwenderprogramm die Daten. Die HMI-Applikation wartet, bis das SIMOTION Anwenderprogramm das Ende des Kopiervorgangs bestätigt, indem ein gerader Wert in die consistencyFlag Variable geschrieben wird.
  • Seite 416 Programmierung allgemeiner Standardfunktionen 7.21 Kopplung HMI (Human Machine Interface) Private Sub Form_Load() Set g_Server = New OPCServer g_Server.Connect ("OPC.SimaticNet") Set g_GroupObj = g_Server.OPCGroups.Add("Test1") g_GroupObj.IsActive = False Set g_myItem1 = g_GroupObj.OPCItems.AddItem("C240.consistencyFlag", 2) Set g_myItem2 = g_GroupObj.OPCItems.AddItem("C240.myDint", 2) Set g_myItem3 = g_GroupObj.OPCItems.AddItem("C250.myArray", 3) consistencyFlag = 1 End Sub Private Sub Form_Unload(Cancel As Integer)
  • Seite 417: Programmierung Allgemeiner Systemfunktionsbausteine

    Programmierung allgemeiner Systemfunktionsbausteine Übersicht der Funktionsbausteine ST besitzt eine Reihe von Systemfunktionsbausteinen, die Sie in Ihren ST-Quellen verwenden können, ohne sie zuvor vereinbaren zu müssen. Sie müssen lediglich eine Instanz anlegen und diese mit den erforderlichen Parametern versorgen. Übersicht der Systemfunktionsbausteine Nachfolgend sehen Sie eine Übersicht aller implementierten Systemfunktionsbausteine, die Definition und weitere Spezifikationen finden Sie ab Kapitel 7.1.
  • Seite 418 Programmierung allgemeiner Systemfunktionsbausteine 8.1 Übersicht der Funktionsbausteine Sammelbegriff Name Eingangsparameter Ausgangsparameter CTD_UDINT : BOOL; : BOOL; Abwärtszähler : BOOL; : UDINT; Datentyp: UDINT : UDINT; CTUD : BOOL; : BOOL; Auf-, Abwärtszähler : BOOL; : BOOL; Datentyp: INT : BOOL; : INT;...
  • Seite 419: Bistabile Elemente (Flipflop Setzen)

    Programmierung allgemeiner Systemfunktionsbausteine 8.2 Bistabile Elemente (Flipflop setzen) Sammelbegriff Name Eingangsparameter Ausgangsparameter Emulation von SIMATIC _S7_COUNTER : BOOL; : BOOL; S7-Befehlen : BOOL; : INT; : INT; : BOOL; : BOOL; _S7_TIMER T_Type : WORD; : BOOL; : BOOL; : TIME; : BOOL;...
  • Seite 420: Bistabiler Funktionsbaustein Rs (Vorrangig Rücksetzen)

    Programmierung allgemeiner Systemfunktionsbausteine 8.2 Bistabile Elemente (Flipflop setzen) Tabelle 8- 2 Programmcode des bistabilen Funktionsbausteins SR FUNCTION_BLOCK SR VAR_INPUT S1,R : BOOL; END_VAR VAR_OUTPUT : BOOL; END_VAR Q1 := S1 OR (NOT R AND Q1); END_FUNCTION_BLOCK END_IMPLEMENTATION Tabelle 8- 3 Aufrufparameter für SR Bezeichner Parameter Datentyp...
  • Seite 421 Programmierung allgemeiner Systemfunktionsbausteine 8.2 Bistabile Elemente (Flipflop setzen) Tabelle 8- 4 Programmcode des bistabilen Funktionsbausteins RS FUNCTION_BLOCK RS VAR_INPUT R1,S BOOL; END_VAR VAR_OUTPUT BOOL; END_VAR Q1 := NOT R1 AND (S OR Q1); END_FUNCTION_BLOCK Tabelle 8- 5 Aufrufparameter für RS Bezeichner Parameter Datentyp...
  • Seite 422: Flankenerkennung

    Programmierung allgemeiner Systemfunktionsbausteine 8.3 Flankenerkennung Flankenerkennung Mit dem Systemfunktionsbaustein R_TRIG können Sie eine steigende, mit F_TRIG eine fallende Flanke erkennen. Sie können dies nutzen, um beispielsweise eine Ablaufkette von eigenen Funktionsbausteinen aufzubauen. Erkennung der steigenden Flanke R_TRIG Wenn am Eingang eine steigende Flanke (R_TRIG, Rising Trigger), d. h. ein Zustandswechsel von 0 auf 1 vorliegt, wird am Ausgang für die Dauer einer Zykluszeit eine 1 angelegt.
  • Seite 423 Programmierung allgemeiner Systemfunktionsbausteine 8.3 Flankenerkennung Tabelle 8- 7 Aufrufparameter für R_TRIG Bezeichner Parameter Datentyp Beschreibung Eingang BOOL Eingang für Flankenerkennung Ausgang BOOL Zustand der Flanke Erkennung der fallenden Flanke F_TRIG Wenn am Eingang eine fallende Flanke (F_TRIG, Falling Trigger), d. h. ein Zustandswechsel von 1 auf 0 vorliegt, wird am Ausgang für die Dauer einer Zykluszeit eine 1 angelegt.
  • Seite 424: Zähler

    Programmierung allgemeiner Systemfunktionsbausteine 8.4 Zähler Tabelle 8- 9 Aufrufparameter für F_TRIG Bezeichner Parameter Datentyp Beschreibung Eingang BOOL Eingang für Flankenerkennung Ausgang BOOL Zustand der Flanke Zähler 8.4.1 Allgemeines zu Zählern ST stellt eine Reihe von Systemfunktionsbausteinen für Zähler zur Verfügung, die Sie in Ihrem ST-Programm verwenden können.
  • Seite 425: Aufwärtszähler Ctu_Dint

    Programmierung allgemeiner Systemfunktionsbausteine 8.4 Zähler Eingangsparameter Datentyp: BOOL Aufwärtszählen, wenn Wert von FALSE auf TRUE wechselt (positive Flanke) Datentyp: BOOL TRUE: Rücksetzen des Zählers auf 0 Datentyp: Vergleichswert Ausgangsparameter Datentyp: BOOL Status des Zählers (CV >= PV) Datentyp: Zählerstand 8.4.3 Aufwärtszähler CTU_DINT Die Funktionsweise entspricht dem Aufwärtszähler CTU (siehe Kapitel 7.3.1) mit Ausnahme: Die Parameter CV und PV haben den Datentyp DINT, der Zählerstand kann deshalb...
  • Seite 426: Aufwärtszähler Ctu_Udint

    Programmierung allgemeiner Systemfunktionsbausteine 8.4 Zähler 8.4.4 Aufwärtszähler CTU_UDINT Die Funktionsweise entspricht dem Aufwärtszähler CTU mit Ausnahme: Die Parameter CV und PV haben den Datentyp UDINT, der Zählerstand kann deshalb maximal 4_294_967_295 (=16#FFFF_FFFF) betragen. Tabelle 8- 11 Parameter für CTU_UDINT Bezeichner Parameter Datentyp Beschreibung...
  • Seite 427: Abwärtszähler Ctd_Dint

    Programmierung allgemeiner Systemfunktionsbausteine 8.4 Zähler 8.4.6 Abwärtszähler CTD_DINT Die Funktionsweise entspricht dem Aufwärtszähler CTD mit Ausnahme: Die Parameter CV und PV haben den Datentyp DINT, der Zählerstand kann deshalb minimal –2_147_483_648 (= 16#8000_0000) betragen. Tabelle 8- 13 Aufrufparameter für CTD_DINT Bezeichner Parameter Datentyp...
  • Seite 428: Auf-/Abwärtszähler Ctud

    Programmierung allgemeiner Systemfunktionsbausteine 8.4 Zähler 8.4.8 Auf-/Abwärtszähler CTUD Mit dem Zähler CTUD können Sie sowohl Auf- als auch Abwärts-Zähloperationen durchführen. ● Rücksetzen der Zählvariable CV: – Wenn beim Aufruf des FB der Eingang R = TRUE ist, wird der Ausgang CV auf 0 zurückgesetzt.
  • Seite 429: Auf-/Abwärtszähler Ctud_Dint

    Programmierung allgemeiner Systemfunktionsbausteine 8.4 Zähler 8.4.9 Auf-/Abwärtszähler CTUD_DINT Die Funktionsweise entspricht dem Aufwärtszähler CTUD mit Ausnahme: Die Parameter CV und PV haben den Datentyp DINT. Tabelle 8- 16 Parameter für CTU_DINT Bezeichner Parameter Datentyp Beschreibung Eingang BOOL Aufwärtszählen, wenn Wert von FALSE auf TRUE wechselt (positive Flanke) Eingang BOOL...
  • Seite 430: Zeitgeber

    Programmierung allgemeiner Systemfunktionsbausteine 8.5 Zeitgeber Zeitgeber Zeiten sind Elemente in Ihrem Programm, die zeitgesteuerte Abläufe ausführen und überwachen. ST stellt eine Reihe von Systemfunktionsbausteinen zur Verfügung, auf die Sie mit ST zugreifen können. Mit Zeitoperationen können Sie in Ihrem Programm: ●...
  • Seite 431: Einschaltverzögerung Ton

    Programmierung allgemeiner Systemfunktionsbausteine 8.5 Zeitgeber Einschaltverzögerung TON Mit dem Signalzustandswechsel von 0 auf 1 am Eingang IN wird die Zeit ET gestartet. Das Ausgangssignal Q wechselt nur von 0 auf 1, wenn die Zeit ET = PT abgelaufen ist und das Eingangssignal IN noch immer 1 beträgt.
  • Seite 432: Ausschaltverzögerung Tof

    Programmierung allgemeiner Systemfunktionsbausteine 8.5 Zeitgeber Ausschaltverzögerung TOF Bei einem Signalzustandswechsel von 0 nach 1 am Starteingang IN erscheint am Ausgang Q der Zustand 1. Wechselt der Zustand am Starteingang IN von 1 nach 0, wird die Zeit ET gestartet. Erfolgt vor dem Ablauf der Zeit ET ein Wechsel am Eingang IN von 0 auf 1, wird der Zeitablauf zurückgesetzt.
  • Seite 433: Echtzeituhr Rtc

    Programmierung allgemeiner Systemfunktionsbausteine 8.6 Zerlegen von Bitstring-Datentypen Echtzeituhr RTC Die positive Flanke an SET stellt die Echtzeituhr auf den Wert von PDT; PDT wird in CDT übernommen. Wird READ auf TRUE gesetzt, wird die aktuelle Systemzeit ausgelesen und steht am Ausgang CDT zur Verfügung. Tabelle 8- 21 Aufrufparameter für RTC Bezeichner Parameter...
  • Seite 434 Programmierung allgemeiner Systemfunktionsbausteine 8.6 Zerlegen von Bitstring-Datentypen Prototyp der Anwenderschnittstelle FUNCTION_BLOCK _BYTE_TO_8BOOL VAR_INPUT bytein : BYTE; END_VAR VAR_OUTPUT bit0, // niederstwertiges Bit bit1, bit2, bit3, bit4, bit5, bit6, bit7 : BOOL; // höchstwertiges Bit END_VAR // ... (Code) END_FUNCTION_BLOCK Eingangsparameter byteein Datentyp: BYTE...
  • Seite 435: Funktionsbaustein _Word_To_2Byte

    Programmierung allgemeiner Systemfunktionsbausteine 8.6 Zerlegen von Bitstring-Datentypen 8.6.3 Funktionsbaustein _WORD_TO_2BYTE Diese Funktion zerlegt eine Variable vom Datentyp WORD in 2 Variablen vom Datentyp BYTE. Prototyp der Anwenderschnittstelle FUNCTION_BLOCK _WORD_TO_2BYTE VAR_INPUT wordin : WORD; END_VAR VAR_OUTPUT byte0, // niederwertiges Byte byte1 : BYTE; // höherwertiges Byte END_VAR // ...
  • Seite 436: Funktionsbaustein _Dword_To_2Word

    Programmierung allgemeiner Systemfunktionsbausteine 8.6 Zerlegen von Bitstring-Datentypen 8.6.4 Funktionsbaustein _DWORD_TO_2WORD Diese Funktion zerlegt eine Variable vom Datentyp DWORD in 2 Variablen vom Datentyp WORD. Prototyp der Anwenderschnittstelle FUNCTION_BLOCK _DWORD_TO_2WORD VAR_INPUT dwordin : DWORD; END_VAR VAR_OUTPUT word0, // niederwertiges Wort word1 : WORD; // höherwertiges Wort END_VAR // ...
  • Seite 437: Funktionsbaustein _Dword_To_4Byte

    Programmierung allgemeiner Systemfunktionsbausteine 8.6 Zerlegen von Bitstring-Datentypen 8.6.5 Funktionsbaustein _DWORD_TO_4BYTE Diese Funktion zerlegt eine Variable vom Datentyp DWORD in 4 Variablen vom Datentyp BYTE. Prototyp der Anwenderschnittstelle FUNCTION_BLOCK _DWORD_TO_4BYTE VAR_INPUT dwordin : DWORD; END_VAR VAR_OUTPUT byte0, // niederstwertiges Byte byte1, byte2, byte3 : BYTE;...
  • Seite 438: 8.7 Emulation Von Simatic S7 Befehlen

    Programmierung allgemeiner Systemfunktionsbausteine 8.7 Emulation von SIMATIC S7 Befehlen Emulation von SIMATIC S7 Befehlen 8.7.1 Allgemeines Nachfolgende Funktionsbausteine sind schnittstellenkompatibel mit den Befehlen für Zähler und Zeiten der SIMATIC S7; siehe Referenzhandbuch SIMATIC Anweisungsliste (AWL) für S7-300/400. Hinweis Verwenden Sie in der Regel die Funktionsbausteine nach IEC 61131-3 (Zähler und Zeitgeber).
  • Seite 439: Funktionsbaustein

    Programmierung allgemeiner Systemfunktionsbausteine 8.7 Emulation von SIMATIC S7 Befehlen Eingangsparameter Datentyp: BOOL Aufwärtszählen (mit Flanke) Datentyp: BOOL Abwärtszählen (mit Flanke) Datentyp: Vorwahlwert Datentyp: BOOL Setzen Vorwahlwert (mit Flanke) Datentyp: BOOL Rücksetzen Zähler (statisch) Ausgangsparameter Datentyp: BOOL Status Zähler Datentyp: Zählerstand 8.7.3 Funktionsbaustein _S7_TIMER Dieser Funktionsbaustein dient zur Emulation der Zeitfunktionen der SIMATIC S7.
  • Seite 440 Programmierung allgemeiner Systemfunktionsbausteine 8.7 Emulation von SIMATIC S7 Befehlen END_VAR VAR_OUTPUT Q : BOOL; BI : TIME; END_VAR // ... (Code) END_FUNCTION_BLOCK Eingangsparameter T_TYPE Datentyp: WORD Auszuführende Funktion des S7-Timers TYPE_S7T_SI_ = 16#0001 SI SP TYPE_S7T_SV_ = 16#0002 SV SEE TYPE_S7T_SE_ = 16#0004 SE SD TYPE_S7T_SS_ = 16#0008 SS SS TYPE_S7T_SA_ = 16#0010 SA SF...
  • Seite 441 Programmierung allgemeiner Systemfunktionsbausteine 8.7 Emulation von SIMATIC S7 Befehlen Ausgangsparameter Datentyp: BOOL Status Timer Datentyp: TIME Aktuelle Zeit Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 443: Simotion Speicherkonzept (Im Zielgerät)

    SIMOTION Speicherkonzept (im Zielgerät) Überblick über die Speicher im Zielgerät Speicherarten SIMOTION besitzt ein mehrstufiges Speicherverwaltungskonzept. Im Zielgerät wird zwischen dem DRAM (RAM-Disk und RAM) und dem SRAM/NVRAM unterschieden. Die Daten (TOs, Units und TPs) im DRAM gehen nach dem Ausschalten verloren, während das SRAM/NVRAM kleinere Datenmengen remanent speichern kann.
  • Seite 444 SIMOTION Speicherkonzept (im Zielgerät) 9.1 Überblick über die Speicher im Zielgerät ROM (CF Card oder Memory Card) Daten werden auf der Speicherkarte (ROM) netzausfallsicher gespeichert. Sie müssen dazu den Befehl RAM nach ROM kopieren ausführen. Vom ROM-Speicher werden die zuletzt durch RAM nach ROM kopieren gesicherten Daten beim Hochlauf in die RAM-Disk und von dort in den RAM geladen.
  • Seite 445 SIMOTION Speicherkonzept (im Zielgerät) 9.1 Überblick über die Speicher im Zielgerät Bild 9-1 Speicherkonzept, prinzipielle Darstellung YDBs enthalten die Konfigurationsdaten von TOs wie z.B. Systemvariablen, Konfigdaten oder Alarme SDB sind Systemdatenbausteine Siehe auch Download im RUN (Seite 456) Übersicht zum Download von Daten (Seite 449) Speicherzugriffe (Seite 446) Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 446: Speicherzugriffe

    SIMOTION Gerät verwendet. Somit kann auf ein SIMOTION Gerät auch weiterhin online gegangen werden, wenn zumindest einmal eine Projektierung mit dem SIMOTION SCOUT geladen wurde, bzw. das SIMOTION Gerät mit einer Speicherkarte hochgelaufen ist, auf der sich eine Projektierung befand.
  • Seite 447: Systemvariablen Und Konfigurationsdaten Online Ändern

    SIMOTION Speicherkonzept (im Zielgerät) 9.2 Speicherzugriffe Download in das Zielgerät Bei einem Download vom PG in das Zielgerät werden die Daten zuerst in die RAM-Disk und von dort in den RAM Speicher geschrieben, mit optionaler Initialisierung der Daten. Siehe auch Übersicht zum Download von Daten (Seite 449) und Getrennte Initialisierung von Quell- und TO-Daten bei einem Download (Seite 455).
  • Seite 449: Daten In Das Zielgerät Laden

    Hinweis Tritt während des Download ein Spannungsausfall am SIMOTION Gerät auf, erscheint seit der SIMOTION SCOUT Version V3.2 eine Meldung im Diagnosepuffer: Anlaufsperre gesetzt, nachdem Sie in den Betriebszustand RUN geschaltet haben. Gehen Sie erneut online und führen Sie den Download nochmals durch.
  • Seite 450: Speichern Und Übersetzen

    Daten in das Zielgerät laden 10.2 Speichern und übersetzen Download-Umfang Sie können wahlweise das ganze Projekt hinunter laden oder auch einen Download spezifisch für ein einzelnes Gerät durchführen: ● Projekt ins Zielsystem laden (alle Zielgeräte) (Seite 452) ● CPU/Antriebsgerät ins Zielgerät laden (Seite 453) Betriebszustand Sie können einen Download im Betriebszustand STOP, aber auch im Betriebszustand RUN durchführen.
  • Seite 451: Konsistenzprüfung Durchführen

    übersetzen (Seite 450) . 2. Wählen Sie Menü Projekt > Konsistenz prüfen. SIMOTION SCOUT überprüft, ob z. B. alle Technologieobjekte konfiguriert sind und die Quellen fehlerfrei übersetzt sind. Vor einem Download kann automatisch eine Konsistenzprüfung durchgeführt werden, wenn die entsprechende Option unter Extras >...
  • Seite 452: Projekt Ins Zielsystem Laden (Alle Zielgeräte)

    Daten in das Zielgerät laden 10.4 Projekt ins Zielsystem laden (alle Zielgeräte) 10.4 Projekt ins Zielsystem laden (alle Zielgeräte) Bei einem Projekt-Download wird das gesamte Projekt in das Zielsystem geladen. Hinweis Einen Projekt-Download können Sie nur im Betriebszustand STOP und für alle Zielgeräte, mit denen Sie ONLINE sind, durchführen.
  • Seite 453: Cpu/Antriebsgerät Ins Zielgerät Laden

    Daten in das Zielgerät laden 10.5 CPU/Antriebsgerät ins Zielgerät laden ● Initialisierung der nicht RETAIN Technologieobjektdaten (siehe Getrennte Initialisierung von Quell- und TO-Daten bei einem Download (Seite 455)) ● Initialisierung der nicht RETAIN Programmdaten und der nicht RETAIN Geräteglobalen Variablen Initialisierung der RETAIN Programmdaten und der RETAIN Geräteglobalen Variablen (siehe Getrennte Initialisierung von Quell- und TO-Daten bei einem Download (Seite 455) )
  • Seite 454 Daten in das Zielgerät laden 10.5 CPU/Antriebsgerät ins Zielgerät laden Folgende Optionen können Sie auswählen: ● Nach dem Laden RAM nach ROM kopieren; führt RAM nach ROM nach dem Download auf dem selektierten Gerät durch. ● Download im RUN durchführen; führt einen Download im Betriebszustand RUN durch (siehe unten).
  • Seite 455: Getrennte Initialisierung Von Quell- Und To-Daten Bei Einem Download

    Daten in das Zielgerät laden 10.6 Getrennte Initialisierung von Quell- und TO-Daten bei einem Download Antrieb ins Zielsystem laden Für Antriebe können Sie nur die Antriebsdaten (Parametrierung etc.) in das Antriebgerät hinunter laden. Bild 10-3 Laden in Antriebgerät Standardmäßig erfolgt der Download im STOP. Die CPU kann nach einem erfolgreichen Download wieder in den vorhergehenden Zustand gebracht werden.
  • Seite 456: Download Im Run

    Daten in das Zielgerät laden 10.7 Download im RUN Wie Sie die Einstellungen vornehmen, siehe CPU/Antriebsgerät ins Zielgerät laden (Seite 453). Generelle Informationen zur Variableninitialisierung finden Sie unter "Zeitpunkt der Variableninitialisierung" in den Programmierhandbüchern. 10.7 Download im RUN 10.7.1 Download im RUN durchführen Download im RUN durchführen Wie bei einem Download im STOP werden auch bei einem Download im RUN immer alle Änderungen geladen.
  • Seite 457: Download Im Run Von Geänderten Quellen

    Daten in das Zielgerät laden 10.7 Download im RUN 10.7.2 Download im RUN von geänderten Quellen Download im RUN von geänderten Quellen Sind in einer Quelle (Unit) mehrere Programme, FBs oder FCs enthalten, so wird immer die gesamte Unit geladen. Ein Beispiel für einen Download finden Sie unter Beispiel für einen Download von geänderten Quellen (Seite 487) .
  • Seite 458 Daten in das Zielgerät laden 10.7 Download im RUN Download im RUN ermöglichen Unterstützen Sie durch geeignete Programmierung, dass ein Download von geänderten Quellen im Betriebszustand RUN möglich ist: ● Verwenden Sie die USES-Anweisung möglichst im Implementationsabschnitt. Es sind Uses-Anweisung in einer dadurch beim Laden weniger Units betroffen.
  • Seite 459 Daten in das Zielgerät laden 10.7 Download im RUN Verbesserung für einen Download im RUN (ab V4.1) Durch Verwendung eines Compiler-Schalters und -Pragmas kann ein Download im Run verbessert werden: ● Setzen Sie den Compilerschalter "Programminstanzdaten nur einmal anlegen", da dann durch geänderte Instanzdaten eines Programms keine anderen Programme betroffen sind (ab V4.1, siehe unten).
  • Seite 460 Daten in das Zielgerät laden 10.7 Download im RUN ● Dies hat Vorteile für einen Download im RUN, da hier bei geänderten Instanzdaten eines Programms nicht die Instanzdaten anderer Tasks betroffen sind. ● Der Download im RUN eines Programms in einer zyklischen oder sequentiellen Task ist bei geänderten Instanzdaten auch möglich, wenn andere Tasks (zyklische als auch sequentielle) aktiv sind.
  • Seite 461 Daten in das Zielgerät laden 10.7 Download im RUN Einstellung des Compilerschalters ● Für die globale Einstellung aktivieren Sie unter Extras > Einstellungen > Compiler die Einstellung Programminstanzdaten nur einmal anlegen. Bild 10-4 Compilereinstellungen ● Für die lokale Einstellung aktivieren Sie beim Einfügen einer Programmquelle (ST und MCC) im Dialog xxx einfügen unter Compiler die Einstellung Programminstanzdaten nur einmal anlegen (xxx = Programm, Funktion, Funktionsbaustein).
  • Seite 462 Daten in das Zielgerät laden 10.7 Download im RUN anlegen" eingestellt haben. Es kommt eine Meldung, wenn beim Übersetzen der Quelle das Pragma nicht wirkt. Das Pragma darf nur am Anfang eines Blocks stehen. Das Pragma BlockInit_OnChange steht zurzeit nur in ST-Quellen zur Verfügung. Beispiel für die Syntax von BlockInit_OnChange: Var_Global {BlockInit_OnChange := TRUE;}...
  • Seite 463: Initialisierung Von Daten Bei Einem Stop - Run - Übergang

    Daten in das Zielgerät laden 10.7 Download im RUN 10.7.3 Initialisierung von Daten bei einem STOP - RUN - Übergang Beschreibung Durch den Compilerschalter "Programminstanzdaten nur einmal anlegen" erfolgt die Dateninitialisierung nur bei einem Download oder im Hochlauf der CPU. Ab V4.1.2 können Sie mit einem Pragma in den Units einstellen, dass Globale Unit Variablen und Programm Variablen auch bei einem STOP - RUN - Übergang initialisiert werden.
  • Seite 464: Steuern Von Motion Tasks Aus Dem Scout

    Daten in das Zielgerät laden 10.7 Download im RUN Beispiel für "nie" initialisieren (Compilerschalter "Programminstanzdaten nur einmal anlegen" ist aktiv): VAR_GLOBAL {BlockInit_OnDeviceRun := DISABLE;} Test_1 : REAL; Test_2 : REAL; END_VAR 10.7.4 Steuern von Motion Tasks aus dem SCOUT 10.7.4.1 Motion Tasks steuern Beschreibung Sie können ohne ein selbst erstelltes Anwenderprogramm MotionTasks aus dem SCOUT...
  • Seite 465: Mehrere Motiontasks Gleichzeitig Steuern

    Daten in das Zielgerät laden 10.7 Download im RUN 3. Wählen Sie Taskstart sperren aus, wenn Sie den Start der MotionTask sperren möchten. Die Task wird dann daran gehindert wieder anzulaufen, sie wird nicht gestartet (TASKSTART_LOCKED im Taskstatus). 4. Wählen Sie Setze Task zurück aus, wenn Sie die Task in den Zustand STOPPED setzen möchten.
  • Seite 466: Download Ohne Hw Konfig Information

    Daten in das Zielgerät laden 10.7 Download im RUN 10.7.5 Download ohne HW Konfig Information Download mit inkonsistenter HW Konfig Ab V4.1.2 ist es möglich einen Download auch mit inkonsistenter HW Konfig durchzuführen. Dabei wird ermittelt, ob ein Download ohne HW Konfig möglich ist oder nicht. Die Überprüfung ermittelt, ob die Änderungen an der Hardware Konfiguration so gravierend sind, dass auf jeden Fall die HW Konfig mit geladen werden muss.
  • Seite 467: Download Von Geänderten Technologieobjekten

    Daten in das Zielgerät laden 10.7 Download im RUN 10.7.6 Download von geänderten Technologieobjekten Beschreibung Sie können offline vorgenommen Änderungen an (durch Restart und sofort wirksamen) Konfigurationsdaten sowie an Systemvariablen eines TOs im RUN nachladen. Gegebenenfalls wird nach dem Download ein TO Restart ausgeführt. TOs hinunter laden Der Download eines geänderten TOs ist unter den folgenden Umständen bzw.
  • Seite 468 Daten in das Zielgerät laden 10.7 Download im RUN TO Restart erlauben Bevor der Download durchgeführt wird, können Sie mit einer Option auswählen, ob ein RESTART der TOs erlaubt sein soll oder nicht. Dadurch können Sie einen TO-RESTART verhindern. Ein RESTART wird dann unabhängig von der Einstellung unter RestartCondition ausgeführt.
  • Seite 469: Ram Nach Rom Kopieren Im Run

    Daten in das Zielgerät laden 10.7 Download im RUN Download auf Runtime mit Version V4.1.1 durchführen Wenn Sie mit SCOUT V4.1.2 einen Download im RUN mit den erweiterten Funktionen zu V4.1.2 durchführen, wir der SCOUT den Download erlauben. Das Runtime-System V4.1.1 wird den Download jedoch ablehnen.
  • Seite 470: Download Direkt Auf Speicherkarte Oder Festplatte

    Daten in das Zielgerät laden 10.8 Download direkt auf Speicherkarte oder Festplatte 10.8 Download direkt auf Speicherkarte oder Festplatte Mit Laden ins Dateisystem können Sie die ablauffähigen Projektdaten aus dem SCOUT auf die Festplatte des PC/PG bzw. direkt über einen Kartenadapter auf das Speicherkärtchen speichern.
  • Seite 471: Download Über Geräte Update Tool

    Daten in das Zielgerät laden 10.9 Download über Geräte Update Tool ● Sicherung von Unit-Daten (mit _saveUnitDataSet /_exportUnitDataSet auf CF Card gesicherte Daten), abgelegt im Verzeichnis: – user\simotion\user dir\<unitname> Hinweis Die gespeicherten Daten müssen zur Firmware der Karte passen. Falls Sie z.B. eine ältere Projektierung auf eine Karte mit aktueller Firmware laden, erhalten Sie Fehlermeldungen beim Hochlauf.
  • Seite 472: Vorgehensweise Mit Vorhandenem Projekt

    Daten in das Zielgerät laden 10.10 Daten aus dem Zielgerät ins PG/PC laden Online-Konsistenz zwischen dem SCOUT-Projekt und der CPU herstellen. Danach ist es möglich Fehler zu suchen und Änderungen auf das Zielgerät zu laden. Hinweis Die Objekte im OFFLINE-Projekt werden überschrieben. Damit werden Objekte, die nur OFFLINE vorhanden sind, gelöscht.
  • Seite 473: Fehlerquellen Und Effizientes Programmieren

    Fehlerquellen und effizientes Programmieren 11.1 Fehlerquellen bei der Programmierung 11.1.1 Fehlerquellen bei der Programmierung Nachfolgend finden Sie Erläuterungen zu den wichtigsten Fehlerquellen beim Programmieren. Das Kapitel gibt Ihnen auch Lösungsmöglichkeiten zur Hand, um diese Fehlerquellen zu beheben. 11.1.2 Datentypen bei der Zuweisung arithmetischer Ausdrücke beachten In Ausdrücken wird das Ergebnis immer im größten Zahlenformat des Ausdrucks berechnet.
  • Seite 474: Start Von Funktionen In Zyklischen Tasks Immer Abfragen

    Dies kann bei allen Systemfunktionen auftreten, bei denen der Parameter einen Wert ungleich IMMEDIATELY annimmt, z. B. den Wert WHEN_MOTION_DONE. Die Zykluszeitüberschreitung tritt auf, wenn die in SIMOTION SCOUT projektierte Zykluszeit durch eine Weiterschaltbedingung aber auch durch programmierte Wartezeiten, z. B. mittels _waitTime , überschritten wird.
  • Seite 475: Den Parameter Commandid Richtig Verwenden

    Fehlerquellen und effizientes Programmieren 11.1 Fehlerquellen bei der Programmierung 11.1.5 Den Parameter commandId richtig verwenden Alle TO-Befehle müssen einen Parameter zur Befehlsidentifikation enthalten, siehe Eingangsparameter der Technologie-Funktionen. _getCommandId Vor dem Aufruf des entsprechenden Befehls können Sie mit dem Befehl eine projektweit eindeutige Befehls-ID holen. Speichern sie die Befehls-ID in eine lokale Variable und verwenden sie diese als Parameter im TO-Befehl, oder verwenden Sie commandId:=_getCommandId() alternativ als Parameter direkt den Funktionsaufruf in...
  • Seite 476: Fehler Eingrenzen (St Programme)

    Fehler beim Download Wenn beim Download Ihres Programms eine Fehlermeldung auftritt, wird das Protokoll in der Detailanzeige des SIMOTION SCOUT angehalten. Sehen Sie im Fehlerprotokoll nach der Fehlerursache. Prüfen Sie Ihre Hardwarekonfiguration oder das Programm, beispielsweise auf Adressen, die nicht vorhanden sind.
  • Seite 477: Cpu Geht Nicht In Run

    Fehlerquellen und effizientes Programmieren 11.1 Fehlerquellen bei der Programmierung 11.1.8 CPU geht nicht in RUN Wenn die CPU gleich nach dem Start Ihrer Programme wieder in den Betriebs zustand STOP wechselt, überprüfen Sie die Gerätediagnose und das Alarmfenster im SCOUT. Im Diagnosepuffer werden die STOP-Ursachen eingetragen.
  • Seite 478: Systemtakte Überprüfen Und Einstellen

    IPOsynchronousTask_2, Tasks für das Technologiepaket TControl). Eventuell benötigen die Anwender- bzw. die Systemprogramme zu den einzelnen Tasks mehr Zeit als in den Systemtakten im SIMOTION SCOUT eingestellt ist. Versuchen Sie außerdem, die Laufzeit der SynchronousTasks zu minimieren. Verlagern Sie Programme möglichst in MotionTasks; teilen Sie ihre Programme ggf. entsprechend auf.
  • Seite 479: Real- Oder Lreal-Größen Vergleichen

    Fehlerquellen und effizientes Programmieren 11.1 Fehlerquellen bei der Programmierung Wie Sie die Gerätediagnose überprüfen, das Alarmfenster interpretieren und Ihre Systemtakte überprüfen/ändern, können Sie in der Online-Hilfe nachlesen. Zur Überprüfung der Laufzeiten stehen Systemfunktionen und ein Task-Trace zur Verfügung. Über den Task-Trace kann der Ablauf der einzelnen Tasks und User Events (per Programmbefehl erzeugt) grafisch dargestellt werden, siehe Funktionshandbuch Task Trace.
  • Seite 480: Größe Des Lokaldatenstacks Einstellen

    Fehlerquellen und effizientes Programmieren 11.1 Fehlerquellen bei der Programmierung END_VAR c := a + b; // Wenn c außerhalb Bereich, dann verlasse Programm. IF (a > 0) AND (c < a) AND (c < b) OR (a < 0) AND (c > a) AND (c > b) THEN // Bereichsüberlauf RETURN;...
  • Seite 481: Effizient Programmieren

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren 11.2 Effizient programmieren 11.2.1 Effizient Programmieren - Übersicht Bei vielen Steuerungssystemen bzw. den zugehörigen Programmierumgebungen besteht prinzipell die folgende Diskrepanz: ● Gut strukturierte und übersichtliche Anwenderprogramme mit besonderem Wert auf Modifizierbarkeit und Erweiterbarkeit verhalten sich bezüglich der Laufzeit nicht optimal. ●...
  • Seite 482: Variablen Optimal Deklarieren

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren 11.2.2.4 Variablen optimal deklarieren Ordnen Sie die Variablen innerhalb eines Deklarationsblocks (z. B. VAR/END_VAR) in aufsteigender Größe an. Dadurch nutzen Sie den Speicherplatz optimal aus. Initialisieren Sie Variablen mit Werten ungleich 0 nur, wenn es nötig ist. Die Initialisierung beim Start einer Task oder einer POE benötigt Zeit.
  • Seite 483: Verwendung Von Usepackage Für Mehrere Technologiepakete

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren Achten Sie darauf, dass nicht zu viele MotionTasks gleichzeitig aktiv sind. Gehen Sie zur effizienteren Programmierung zyklischer Tasks (vor allem der BackgroundTask) zur schrittkettengesteuerten Programmierung über. D.h. über Fallunterscheidungen steuern Sie den Programmfluss bewusst und durchlaufen nur die Codeanteile, welche im aktuellen Zustand relevant sind (z.B.
  • Seite 484: Änderungsoptimierte Programmierung

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren 11.2.3 Änderungsoptimierte Programmierung 11.2.3.1 Änderungsoptimierende Programmierung In der folgenden Beschreibung finden Sie Hinweise zur änderungsoptimierenden Programmierung. Information zum Download im RUN finden Sie unter Download im RUN von geänderten Quellen (Seite 457) . 11.2.3.2 Deklaration remanenter Variablen in einer eigenen Unit Deklarieren Sie alle remanenten Variablen im Interfaceabschnitt einer einzigen Unit.
  • Seite 485: Verwendung Geräteglobaler Variablen Versus Unitglobaler Variablen

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren 11.2.3.4 Verwendung Geräteglobaler Variablen versus Unitglobaler Variablen Beschreibung Die Verwendung von globalen Unit-Variablen in Quellen ist der Verwendung von Geräteglobalen Variablen (über den Projektnavigator) vorzuziehen. Vorteile: ● Es können Variablen-Strukturen verwendet werden ● Initialisierung (Anfangswerte) der Variablen bei STOP-RUN-Übergang ist möglich (über Programm in StartupTask) ●...
  • Seite 486 Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren Tabelle 11- 5 Beipiel-Deklaration und Programm in einer ST-Quelle (Unit) INTERFACE //global types TYPE MyStruct : STRUCT Intvalue : INT ; Realvalue: REAL; Bitvalue : BOOL; END_STRUCT END_TYPE //global constants VAR_GLOBAL CONSTANT n : INT := 0 ; m : INT := 15;...
  • Seite 487: Start Und Zurücksetzen Von Motiontasks An Zentraler Stelle

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren 11.2.3.5 Start und Zurücksetzen von MotionTasks an zentraler Stelle Programmieren Sie wegen der Übersichtlichkeit das Starten und Zurücksetzen von MotionTasks zentral an einer Stelle. 11.2.3.6 Beispiel für einen Download von geänderten Quellen Beispielprogramm für Download im RUN Die folgende Grafik zeigt den Aufbau des Ablaufsystems eines Projektes, mit dem aufgezeigt werden soll, wann und unter welchen Bedingungen ein Download im RUN möglich ist, wenn Sie eine Variable hinzufügen oder ändern möchten.
  • Seite 488 Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren Motion_Unit_01 Cyclic_Unit_05 Für die und die bestehen nur unter den in Download im RUN von geänderten Quellen (Seite 457) beschriebenen Randbedingungen. Der rot hinterlegte Bereich markiert die Blöcke des Programms, bei denen bei einem Download im RUN Probleme auftreten können.
  • Seite 489 Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren Übersicht über die Möglichkeiten beim Download im RUN Die folgenden Tabellen zeigen, welche Daten wo geändert werden können. Änderungsort I/O-Variable Änderungsort Geräteglobale Variablen Änderungsort Interface Type Var_Global Var_Global Var_Global USES USEPACKAGE Retain Constant Motion_Unit_01 4) 2) Motion_Unit_02...
  • Seite 490: Legende Zu Den Tabellen

    Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren Änderungsort Programm Type Var_Temp Var_Constant Codeänderung Motion_Unit_03 motion3_prg_01 2)7) Cyclic_Unit_04 cyclic4_prg_01 2)5) Cyclic_Unit_05 cyclic5_prg_01 2)7) Änderungsort FunctionBlock Type Var_ Codeände Var_Input Var_In_O Var_Outp Temp Constant rung FunctionBlock_01 Fb1_single_ call_01 FunctionBlock_02 Fb2_multi_c 1)7) 1)7) 1)7) all_01 1)2)
  • Seite 491 Fehlerquellen und effizientes Programmieren 11.2 Effizient programmieren Fußnote Beschreibung Immer änderbar Bedingt änderbar mit Beschreibung, was zu beachten ist (siehe Fußnote) Nicht änderbar, Begründung, siehe Fußnote. Siehe auch Steuern von Motion Tasks aus dem SCOUT (Seite 464) Motion Tasks steuern (Seite 464) Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 493: Symbolische Konstanten

    Anhang A Symbolische Konstanten Die folgenden Tabellen zeigen Namen von reservierten Konstanten, die Sie nicht für individuelle Variablennamen verwenden dürfen. Tabelle A- 1 Symbolische Konstanten der Taskstartinfo Symbolische Konstante Datentyp Wert _SC_ALARM_CONFIGURATION UDINT _SC_ARRAY_BOUND_ERROR_READ UDINT _SC_ARRAY_BOUND_ERROR_WRITE UDINT _SC_BACKGROUND_TIMER_OVERFLOW UDINT _SC_CYCLE_TIMER_OVERFLOW UDINT _SC_DEVICE_COMMAND UDINT...
  • Seite 494 Anhang A A.1 Symbolische Konstanten Tabelle A- 2 Symbolische Konstanten der Taskstati Symbolische Konstante Datentyp. Hex-Darstellung TASK_STATE_INVALID DWORD 16#0000 TASK_STATE_LOCKED DWORD 16#0100 TASK_STATE_RUNNING DWORD 16#0004 TASK_STATE_STOP_PENDING DWORD 16#0001 TASK_STATE_STOPPED DWORD 16#0002 TASK_STATE_SUSPENDED DWORD 16#0020 TASK_STATE_WAIT_NEXT_CYCLE DWORD 16#0040 TASK_STATE_WAIT_NEXT_INTERRUPT DWORD 16#0080 TASK_STATE_WAITING DWORD 16#0010...
  • Seite 495: Bezeichner Mit Definierter Bedeutung In Simotion

    Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION Symbolische Datentyp Wert Hex-Darstellung Konstante UINT#MAX UINT 65535 16#FFFF UDINT#MIN UDINT 16#0000_0000 UDINT#MAX UDINT 4294967295 16#FFFF_FFFF T#MIN TIME T#0ms 16#0000_0000 TIME#MIN T#MAX TIME T#49d_17h_2m_47s_295ms 16#FFFF_FFFF TIME#MAX TOD#MIN TOD#00:00:00.000 16#0000_0000 TIME_OF_DAY#MIN TOD#MAX TOD#23:59:59.999 16#0526_5BFF TIME_OF_DAY#MAX...
  • Seite 496 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION Symbole _abortAllReadWriteDriveParameterJobs _abortReadWriteRecordJobs _activateConfiguration _activateDpSlave _activateDpSlaveAddress _activateNameOfStation _activateTo _addPointToCam _addPolynomialSegmentToCam _addSegmentToCam _addSegmentToCam_V2_0 _alarmS _alarmSc _alarmScId _alarmSId _alarmSq _alarmSqId _allocateTokenToVariableName _AND _BOOL _bufferActuatorCommandId _bufferAdditionObjectCommandId _bufferAxisCommandId _bufferAxisCommandId_V3_1 _bufferCamCommandId _bufferCamTrackCommandId _bufferControllerObjectCommandId _bufferExternalEncoderCommandId _bufferExternalEncoderCommandId_V3_1 _bufferFixedGearCommandId _bufferFollowingObjectCommandId _bufferFollowingObjectCommandId_V3_1 _bufferFormulaObjectCommandId...
  • Seite 497 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _bufferMeasuringInputCommandId _bufferOutputCamCommandId _bufferPathObjectCommandId _bufferSensorCommandId _BYTE_FROM_8BOOL _BYTE_TO_8BOOL _calculateTControllerParameter _cancelAxisCommand _cancelExternalEncoderCommand _cancelFollowingObjectCommand _changeEnableModeOfAdditionObjectIn _changeEnableModeOfControllerObjectIn _changeEnableModeOfFormulaObjectIn _changeEnableOfFormula _changeOperationMode _checkEqualTask _checkExistingUnitDataSet _configurationManagement _continue _continue_V3_1 _continuePath _copyTControllerShadow _cpuData _cpuDataRW _DATE _DATE_AND_TIME _deactivateDpSlave _deactivateTo _deallocateTokenToVariableName _defineFormula _deleteAllUnitDataSets _deleteUnitDataSet _DINT _disableAdditionObjectIn...
  • Seite 498 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _disableAxis_V3_1 _disableAxisAdditiveTorque _disableAxisInterface _disableAxisSimulation _disableAxisTorqueLimitNegative _disableAxisTorqueLimitPositive _disableCamming _disableCamming_V3_0 _disableCamTrack _disableCamTrackSimulation _disableCommandToActual _disableControllerObject _disableControllerObjectIn _disableExternalEncoder _disableExternalEncoderSimulation _disableFixedGearing _disableFixedGearMotionIn _disableFollowingObjectSimulation _disableFollowingObjectSimulation_V3_1 _disableForceLimiting _disableFormula _disableFormulaObjectIn _disableGearing _disableGearing_V3_0 _disableMaster_V3_0 _disableMeasuringInput _disableMeasuringInputSimulation _disableMonitoringOfEncoderDifference _disableMovingToEndStop _disableOutputCam _disableOutputCamSimulation _disablePathObjectSimulation _disableQFAxis _disableQFAxis_V3_0...
  • Seite 499 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _disableSensor _disableTorqueLimiting _disableVelocityGearing _disableVelocityLimiting _DWORD_FROM_2WORD _DWORD_FROM_4BYTE _DWORD_TO_2WORD _DWORD_TO_4BYTE _enableAdditionObjectIn _enableAxis _enableAxis_V2_0 _enableAxis_V3_1 _enableAxis_V3_2 _enableAxisAdditiveTorque _enableAxisInterface _enableAxisSimulation _enableAxisTorqueLimitNegative _enableAxisTorqueLimitPositive _enableCamming _enableCamming_V3_0 _enableCamTrack _enableCamTrackSimulation _enableCommandToActual _enableControllerObject _enableControllerObjectIn _enableDistributedMotionDelayValueCalculation _enableDpInterfaceSynchronizationMode _enableExternalEncoder _enableExternalEncoderSimulation _enableFixedGearing _enableFixedGearMotionIn _enableFollowingObjectSimulation _enableFollowingObjectSimulation_V3_1 _enableForceControlByCondition...
  • Seite 500 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _enableForceControlByCondition_V4_0 _enableForceLimitingByCondition _enableForceLimitingByCondition_V4_0 _enableForceLimitingValue _enableForceLimitingValue_V3_1 _enableFormula _enableFormulaObjectIn _enableGearing _enableGearing_V3_0 _enableGearing_V3_1 _enableMaster_V3_0 _enableMeasuringInput _enableMeasuringInputCyclic _enableMeasuringInputCyclic_V3_2 _enableMeasuringInputSimulation _enableMonitoringOfEncoderDifference _enableMotionInPositionLockedForceLimitingProfile _enableMotionInPositionLockedVelocityLimitingProfile _enableMotionInPositionLockedVelocityLimitingProfile_V4_0 _enableMovingToEndStop _enableMovingToEndStop_V2_0 _enableOutputCam _enableOutputCamSimulation _enablePathObjectSimulation _enablePositionLockedForceLimitingProfile _enablePositionLockedForceLimitingProfile_V3_1 _enablePositionLockedVelocityLimitingProfile _enablePositionLockedVelocityLimitingProfile_V4_0 _enableQFAxis _enableQFAxis_V3_0 _enableQFAxis_V4_0 _enableScheduler _enableSensor _enableTimeLockedForceLimitingProfile...
  • Seite 501 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _enableTimeLockedVelocityLimitingProfile_V4_0 _enableTorqueLimiting _enableTorqueLimiting_V2_0 _enableVelocityGearing _enableVelocityLimitingValue _enableVelocityLimitingValue_V4_0 _exportUnitDataSet _exportUnitDataSet2 _FALSE _FB_MF_MultiAxis _FB_MF_SET_DS_VALUES _FB_MF_SingleAxis _FB_MF_STGP _FB_STGP_BasicMC _FB_STGP_Cam _FB_STGP_Cam_Ext _FB_STGP_Gear _FB_STGP_Path _FB_STGP_Position _finite _forceTControllerIdentification _getActiveDpSlaveAddress _getActiveNameOfStation _getActuatorErrorNumberState _getActuatorErrorState _getAdditionObjectErrorNumberState _getAdditionObjectErrorState _getAlarmId _getAverageTaskIdRunTime _getAverageTaskRunTime _getAxisDataSetParameter _getAxisDataSetParameter_V3_1 _getAxisErrorNumberState _getAxisErrorState...
  • Seite 502 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _getAxisSpecificState2 _getAxisStoppingData _getAxisUserPosition _getBit _getCamErrorNumberState _getCamErrorState _getCamFollowingDerivative _getCamFollowingValue _getCamLeadingValue _getCamSpecificState _getCamSpecificState2 _getCamTrackErrorNumberState _getCamTrackErrorState _getCircularPathData _getCircularPathGeometricData _getCommandId _getConfigurationData _getControllerObjectErrorNumberState _getControllerObjectErrorState _getCurrentTaskIdRunTime _getCurrentTaskRunTime _getDataByToken _getDeviceId _getDoIndexNumberFromLogAddress _getDpStationAddressFromLogDiagnosticAddress _getExternalEncoderErrorNumberState _getExternalEncoderErrorState _getExternalEncoderSpecificState _getExternalEncoderSpecificState2 _getFixedGearErrorNumberState _getFixedGearErrorState _getFollowingObjectErrorNumberState _getFollowingObjectErrorState _getForceControlDataSetParameter...
  • Seite 503 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _getFormulaObjectErrorState _getGearAxisSpecificState _getGearAxisSpecificState2 _getGeoAddressFromLogAddress _getInOutByte _getInternalTaskIdIdx _getInternalTaskIdx _getInternalTimeStamp _getIO_Part_4 _getIPConfig _getLinearPathData _getLinearPathGeometricData _getLogDiagnosticAddressFromDpStationAddress _getMasterValue _getMaximalTaskIdRunTime _getMaximalTaskRunTime _getMeasuringInputErrorNumberState _getMeasuringInputErrorState _getMeasuringInputSpecificState _getMeasuringInputSpecificState2 _getMemoryCardId _getMinimalTaskIdRunTime _getMinimalTaskRunTime _getMotionStateOfAxisCommand _getMotionStateOfFollowingObjectCommand _getMotionStateOfPathObjectCommand _getNextLogAddress _getOutputCamErrorNumberState _getOutputCamErrorState _getOutputCamSpecificState _getOutputCamSpecificState2 _getPathAxesData _getPathAxesPosition _getPathCartesianData...
  • Seite 504 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _getPathObjectErrorState _getPendingAlarms _getPnInterfacePortNeighbour _getPolynomialPathData _getPolynomialPathGeometricData _getPosAxisSpecificState _getPosAxisSpecificState2 _getProgrammedTargetPosition _getQFAxisDataSetParameter _getQFAxisDataSetParameter_V3_1 _getSafeValue _getSegmentIdentification _getSensorErrorNumberState _getSensorErrorState _getSlaveValue _getStateOfActuatorCommand _getStateOfAdditionObjectCommand _getStateOfAllDpSlaves _getStateOfAllDpStations _getStateOfAxisCommand _getStateOfCamCommand _getStateOfCamTrackCommand _getStateOfControllerObjectCommand _getStateOfDiagnosticDataCommand _getStateOfDpSlave _getStateOfExternalEncoderCommand _getStateOfFixedGearCommand _getStateOfFollowingObjectCommand _getStateOfFormulaObjectCommand _getStateOfMeasuringInputCommand _getStateOfMotionBuffer _getStateOfOutputCamCommand _getStateOfPathObjectCommand _getStateOfProcessInterruptCommand...
  • Seite 505 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _getStateOfSingleDpSlave _getStateOfTask _getStateOfTaskId _getStateOfTo _getStateOfUnitDataSetCommand _GetStateOfXCommand _getStationType _getSyncCommandId _getSystemTime _getTaskId _getTimeDifferenceOfInternalTimeStamp _getTimeDifferenceOfInternalTimeStamps _homing _imData _IMPLEMENTATION _importUnitDataSet _importUnitDataSet2 _INT _INTERFACE _INTERFACE_AND_IMPLEMENTATION _internalTest _interpolateCam _isNaN _LINT _loadUnitDataSet _loadUnitDataSet2 _LREAL _MC_CamIn _MC_CamInMode _MC_CamOut _MC_Direction _MC_EnableMode _MC_GearIn _MC_GearInMode...
  • Seite 506 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _MC_HomingMode _MC_Jog _MC_MoveAbsolute _MC_MoveAdditive _MC_MoveRelative _MC_MoveSuperimposed _MC_MoveVelocity _MC_Phasing _MC_PositionProfile _MC_Power _MC_ReadActualPosition _MC_ReadAxisError _MC_ReadBoolParameter _MC_ReadParameter _MC_ReadStatus _MC_Reset _MC_Stop _MC_StopMode _MC_VelocityProfile _MC_WriteBoolParameter _MC_WriteParameter _move _movePathCircular _movePathLinear _movePathPolynomial _movePointToPoint _MRES _NOT _pos _readDiagnosticData _readDriveFaults _readDriveMultiParameter _readDriveMultiParameterDescription _readDriveParameter...
  • Seite 507 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _readRecord _readSystemClock _REAL _redefineExternalEncoderPosition _redefinePosition _releaseSemaphore _removeBufferedActuatorCommandId _removeBufferedAdditionObjectCommandId _removeBufferedAxisCommandId _removeBufferedCamCommandId _removeBufferedCamTrackCommandId _removeBufferedControllerObjectCommandId _removeBufferedExternalEncoderCommandId _removeBufferedFixedGearCommandId _removeBufferedFollowingObjectCommandId _removeBufferedFormulaObjectCommandId _removeBufferedMeasuringInputCommandId _removeBufferedOutputCamCommandId _removeBufferedPathObjectCommandId _removeBufferedSensorCommandId _reset_AllAlarmId _resetActuator _resetActuatorConfigDataBuffer _resetActuatorError _resetAdditionObject _resetAdditionObjectConfigDataBuffer _resetAdditionObjectError _resetAlarmId _resetAllAlarmId _resetAxis _resetAxis_V2_0 _resetAxis_V3_0 _resetAxisConfigDataBuffer _resetAxisError...
  • Seite 508 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _resetCam_V2_0 _resetCam_V3_0 _resetCamConfigDataBuffer _resetCamError _resetCamError_V3_0 _resetCamTrack _resetCamTrackConfigDataBuffer _resetCamTrackError _resetControllerObject _resetControllerObjectConfigDataBuffer _resetControllerObjectError _resetDriveObjectFault _resetExternalEncoder _resetExternalEncoder_V2_0 _resetExternalEncoder_V3_0 _resetExternalEncoderConfigDataBuffer _resetExternalEncoderError _resetExternalEncoderError_V3_0 _resetFixedGear _resetFixedGearConfigDataBuffer _resetFixedGearError _resetFollowingObject _resetFollowingObject_V2_0 _resetFollowingObject_V3_0 _resetFollowingObject_V3_1 _resetFollowingObjectConfigDataBuffer _resetFollowingObjectError _resetFollowingObjectError_V3_0 _resetFormulaObject _resetFormulaObjectConfigDataBuffer _resetFormulaObjectError _resetMeasuringInput _resetMeasuringInput_V2_0 _resetMeasuringInput_V3_0...
  • Seite 509 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _resetMeasuringInputError_V3_0 _resetMotionBuffer _resetOutputCam _resetOutputCam_V2_0 _resetOutputCam_V3_0 _resetOutputCamConfigDataBuffer _resetOutputCamError _resetOutputCamError_V3_0 _resetPathObject _resetPathObjectConfigDataBuffer _resetPathObjectError _resetSensor _resetSensorConfigDataBuffer _resetSensorError _resetTask _resetTaskId _resetTController _resetTControllerError _resetTechnologicalErrors _resetUnitData _restartTask _restartTaskId _resumeTask _resumeTaskId _RETAIN _retriggerTaskControlTime _retriggerTaskIdControlTime _RUN _runMotionInPositionLockedForceProfile _runMotionInPositionLockedVelocityProfile _runPositionBasedMotionIn _runPositionBasedMotionIn_V3_2 _runPositionLockedForceProfile _runPositionLockedVelocityProfile...
  • Seite 510 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _runTimeLockedPositionProfile _runTimeLockedVelocityProfile _runVelocityBasedMotionIn _runVelocityBasedMotionIn_V3_2 _S7_COUNTER _S7_TIMER _saveConfigData _savePersistentMemoryData _saveUnitDataSet _saveUnitDataSet2 _SC_ALARM_CONFIGURATION _SC_ARRAY_BOUND_ERROR_READ _SC_ARRAY_BOUND_ERROR_WRITE _SC_BACKGROUND_TIMER_OVERFLOW _SC_CYCLE_TIMER_OVERFLOW _SC_DEVICE_COMMAND _SC_DIAGNOSTIC_INTERRUPT _SC_DIVISION_BY_ZERO _SC_DP_CLOCK_DETECTED _SC_DP_SLAVE_NOT_SYNCHRONIZED _SC_DP_SLAVE_SYNCHRONIZED _SC_DP_SYNCHRONIZATION_LOST _SC_DRIVE_OBJECT_ALARM _SC_DRIVE_OBJECT_FAULT _SC_EXCEPTION _SC_EXTERNAL_COMMAND _SC_IMAGE_UPDATE_FAILED _SC_IMAGE_UPDATE_OK _SC_INVALID_ADDRESS _SC_INVALID_FLOATING_POINT_OPERATION _SC_IO_MODULE_NOT_SYNCHRONIZED _SC_IO_MODULE_SYNCHRONIZED _SC_MODE_SELECTOR _SC_PC_INTERNAL_FAILURE...
  • Seite 511 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _SC_STATION_DISCONNECTED _SC_STATION_RECONNECTED _SC_TO_INSTANCE_NOT_EXISTENT _SC_VARIABLE_ACCESS_ERROR_READ _SC_VARIABLE_ACCESS_ERROR_WRITE _sendProcessInterrupt _SERVICE _setAndGetEncoderValue _setAxisDataSetActive _setAxisDataSetParameter _setAxisDataSetParameter_V3_1 _setAxisSTW _setBit _setCammingOffset _setCammingOffset_V1_1 _setCammingOffset_V3_1 _setCammingScale _setCammingScale_V1_1 _setCammingScale_V3_1 _setCamOffset _setCamScale _setCamTrackState _setControllerObjectPIDControl _setDataByToken _setDeviceErrorLED _setDpSlaveAddress _setDriveObjectSTW _setExternalEncoderValue _setFixedGearingOffset _setFixedGearMaster _setForceCommandValue _setForceCommandValue_V3_1 _setForceControlDataSetParameter _setForceControlDataSetParameter_V3_1...
  • Seite 512 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _setGearingOffset _setGearingOffset_V3_1 _setIO_Part_4 _setIPConfig _setIpoClockBorderToPosition _setMaster _setMaster_V3_0 _setMasterValue_V3_0 _setModeSelfAdaptingConfiguration _setNameOfStation _setOutputCamCounter _setOutputCamState _setOutputCamState_V4_0 _setQFAxisDataSetParameter _setQFAxisDataSetParameter_V3_1 _setQFAxisFCharacteristics _setQFAxisQCharacteristics _setSafeValue _setSystemTime _setTControllerActualIdentificationType _setTControllerControlRangeParameter _setTControllerCycleParameter _setTControllerCycleParameterSecondary _setTControllerDPIDParameter _setTControllerDPIDParameterSecondary _setTControllerIdentificationModifiedTangentMethodParameter _setTControllerIdentificationModifiedTangentMethodProcessParameter _setTControllerIdentificationStandardTangentMethodParameter _setTControllerIdentificationStandardTangentMethodProcessParameter _setTControllerInputDisplayValueParameter _setTControllerInputFilterParameter _setTControllerInputGradientCheckParameter _setTControllerInputLimitCheckParameter _setTControllerIntegrator...
  • Seite 513 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _setTControllerLowerPlausibilityParameterSecondary _setTControllerManualOutputValue _setTControllerOperatingMode _setTControllerProcessModeParameter _setTControllerPWMParameter _setTControllerPWMParameterSecondary _setTControllerSetpoint _setTControllerUpperPlausibilityParameter _setTControllerUpperPlausibilityParameterSecondary _SHUTDOWN _SINT _sizeOf _startSyncCommands _startTask _startTaskId _STARTUP _startupData _STOP _stop_V3_0 _stopEmergency _stopEmergency_V3_0 _stopPath _STOPU _StructCamTrackArrayOfSingleCamSettings _StructCamTrackSingleCamSettings _suspendTask _suspendTaskDebug _suspendTaskId _suspendTaskIdDebug _synchronizeDpInterfaces _synchronizeExternalEncoder _tcpCloseConnection _tcpCloseServer _tcpOpenClient...
  • Seite 514 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION _tcpSend _testAndSetSemaphore _testSFBSysDataInit _TIME _TIME_OF_DAY _toggleBit _triggerTestMode _TRUE _UDINT _udpAddMulticastGroupMembership _udpDropMulticastGroupMembership _udpReceive _udpSend _UINT _ULINT _upsData _USINT _waitTime _WORD_FROM_2BYTE _WORD_TO_2BYTE _writeAndSendMessage _writeDriveMultiParameter _writeDriveParameter _writeRecord _XOR _Xreceive _Xsend ABORT_CONNECTION ABORT_CURRENT_COMMAND ABORTED abortPosition ABSOLUTE absoluteEncoder Basisfunktionen...
  • Seite 515 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION ACCELERATING ACCELERATING_FORCE ACCESS_DENIED accessState ACCORDING_TO_DEFINITION_ORDER ACOS ACTION ACTIVATE_CHANGED_CONFIG_DATA ACTIVATE_CONFIGURATION_DATA ACTIVATE_FALL_BACK_CONFIGURATION ACTIVATE_RESTART ACTIVATED ACTIVATED_NO_ALARM activationModeChangedConfigData ACTIVE ACTIVE_ABSOLUTE ACTIVE_AND_WAITING_FOR_CAM_TRACK_OUTPUT_INACTIVE ACTIVE_AND_WAITING_FOR_DATA ACTIVE_AND_WAITING_FOR_NEXT_CYCLE ACTIVE_HOMING ACTIVE_RELATIVE ACTIVE_WITH_CONSTANT_LIMITS ACTIVE_WITH_DYNAMIC_ADAPTION ACTIVE_WITH_VARIABLE_LIMITS ACTIVE_WITHOUT_DYNAMIC_ADAPTION activeCam activeMaster actorData actorMonitoring ACTUAL ACTUAL_ACTIVATED ACTUAL_AND_DEFAULT_VALUE ACTUAL_DIRECTION_PASSIVE ACTUAL_VALUE...
  • Seite 516 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION ACTUAL_VALUE_TOLERANCE actualCycleData ActualDPIDData actualIdentificationModifiedTangentMethodData actualIdentificationStandardTangentMethodData actualIdentificationType actualInputData actualInputLimitCheckData actualInputState actualTorque actualValueDefault actualValueIn ADD_DT_TIME ADD_TIME ADD_TOD_TIME additionalSensorData additionResult additiveTorque additiveTorqueIn ADVANCED_TYPE ALARM_S ALARM_SQ ALARMS_ERROR ALARMS_QSTATE ALARMS_STATE ALL_AXIS_MOTION ALL_EDGES ALL_ERRORS ALL_GLOBAL ALL_ID ALL_POSITION_RELATED_MOTION ANALOG ANALOG_TEMPERATURE Basisfunktionen...
  • Seite 517 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION ANDN ANYOBJECT ANYOBJECT_TO_OBJECT ANYTYPE_TO_BIGBYTEARRAY ANYTYPE_TO_LITTLEBYTEARRAY APPROACH_MOVE APPROACH_NEGATIVE APPROACH_NEGATIVE_PASSIVE APPROACH_POSITIVE APPROACH_POSITIVE_PASSIVE ARRAY ARTICULATED_ARM ASIN ASSEMBLY_BASE_DRIVE ASSEMBLY_BASE_EXTERN ASSEMBLY_BASE_LINEAR ASSEMBLY_BASE_LOAD AT_DECELERATION_START AT_END_OF_COMMAND AT_MOTION_START AT_PROFILE_START AT_THE_END_OF_CAM_CYCLE ATAN ATTACHED_STEADILY AUTOMATIC_INTERFACE_SYNCHRONIZATION AUTOMATICALLY AVAILABLE AVERAGING AXIS_DISABLED AXIS_HOMED AXIS_STOPPED_AT_POSITION B_SPLINE Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 518 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION BASIC BASIC_AND_SUPERIMPOSED_MOTION_ACTIVE BASIC_AND_SUPERIMPOSED_POS_MOTION_ACTIVE BASIC_MOTION BASIC_MOTION_ACTIVE BASIC_MOTION_ACTIVE_WITH_LENGTH_OUTPUT BASIC_NON_POS_AND_SUPERIMPOSED_POS_MOTION_ACTIVE BASIC_POS_AND_SUPERIMPOSED_NON_POS_MOTION_ACTIVE BASIC_POS_MOTION_ACTIVE basicMotion Baudrate_1 Baudrate_2 Baudrate_3 Baudrate_4 Baudrate_5 BCD_TO_BYTE BCD_TO_DINT BCD_TO_DWORD BCD_TO_INT BCD_TO_LWORD BCD_TO_SINT BCD_TO_WORD BE_SYNCHRONOUS_AT_POSITION BEFORE_ANTIWINDUP_LIMITATION BEGIN_SYNC BEGIN_TO_STOP_WHEN_POSITION_REACHED BEHIND_ANTIWINDUP_LIMITATION BigByteArray_to_AnyType BIGBYTEARRAY_TOANYTYPE BIN_CODE BOOL BOOL_TO_BYTE BOOL_TO_DWORD BOOL_TO_WORD...
  • Seite 519 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION BOOL_VALUE_TO_INT BOOL_VALUE_TO_LREAL BOOL_VALUE_TO_REAL BOOL_VALUE_TO_SINT BOOL_VALUE_TO_UDINT BOOL_VALUE_TO_UINT BOOL_VALUE_TO_USINT BOTH BOTH_DIRECTION BOTH_EDGES BOTH_EDGES_FIRST_FALLING BOTH_EDGES_FIRST_RISING BUFFERED BY_CAM_TRACK_END BY_CENTER_AND_ARC BY_COMMAND BY_END_POSITION BY_PROFILE_END BY_START_POSITION BY_STW_BIT BY_VALUE BYTE BYTE_TO_BCD BYTE_TO_BOOL BYTE_TO_DINT BYTE_TO_DWORD BYTE_TO_INT BYTE_TO_SINT BYTE_TO_UDINT BYTE_TO_UINT BYTE_TO_USINT BYTE_TO_WORD BYTE_VALUE_TO_LREAL BYTE_VALUE_TO_REAL...
  • Seite 520 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION C_SPLINE CALC CALCN CAM_AND_ZM_PASSIVE CAM_DATA_RESET CAM_PASSIVE CAMMING cammingAdjustments CAMTRACK_DISABLE camTrackPosition CARTESIAN CASE CHANGE_DS_IS_LOCKED CHANGE_FAILED CHANNEL_0 CHANNEL_1 CHANNEL_2 CHANNEL_3 CHANNEL_4 CHANNEL_5 CHANNEL_6 CHANNEL_7 circularPathCommand CLAMP_BY_FOLLOWING_ERROR_DEVIATION CLAMP_WHEN_TORQUE_LIMIT_REACHED CLOSE_ON_EXIT CMD_CONTINUEAXIS CMD_DISABLEAXIS CMD_DISABLEAXISSIMULATION CMD_ENABLEAXIS CMD_ENABLEAXISSIMULATION CMD_ENABLEMEASURINGINPUT CMD_HOMING CMD_INIT...
  • Seite 521 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION CMD_MOVE CMD_POSABS CMD_POSREL CMD_RESETAXIS CMD_SETDATASETPARAM CMD_STOPAXIS CMD_STOPEMERGENCY COLLECT_CHANGED_CONFIG_DATA COMMAND_DONE COMMAND_DYNAMICS COMMAND_FAILED COMMAND_NOT_FOUND COMMAND_VALUE COMMAND_VALUE_BASIC_MOTION COMMAND_VALUE_SUPERIMPOSED_MOTION COMMAND_VALUE_TOLERANCE CommandIdType COMPLETE_RANGE CONCAT CONCAT_DATE_TOD CONDITION_1 CONDITION_1_AND_CONDITION_2 CONDITION_1_OR_CONDITION_2 CONDITION_2 CONFIG_TO_SHADOW CONFIGURATION CONFIGURATION_DELETED CONFIGURATION_ERROR CONFIGURATION_ID_NOT_FOUND CONFIGURATION_NOT_FOUND CONFIGURATION_VERSION CONFIGURED CONFIGURED_OUTPUT_VALUE CONSTANT...
  • Seite 522 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION CONTINUOUS control CONTROL_STOP controlDeviation controllerOutput controlRangeParameter counterCamData counterMeasuredValue1 counterMeasuredValue2 CRITICAL CTD_DINT CTD_LINT CTD_UDINT CTD_ULINT CTU_DINT CTU_LINT CTU_UDINT CTU_ULINT CTUD CTUD_DINT CTUD_LINT CTUD_UDINT CTUD_ULINT CUBIC_MODE CURRENT CURRENT_MODE currentMasterData currentSlaveData currentSyncPosition cycleParameter cycleParameterSecondary CYCLIC CYCLIC_ABSOLUTE Basisfunktionen...
  • Seite 523 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION CYCLIC_RELATIVE cyclicMeasuringEnableCommand DATA_EXCHANGE_INACTIVE DATA_INCOMPATIBLE DATA_INCOMPLETE DATA_MISMATCH DATASET_ALREADY_EXISTS DATASET_ID_NOT_VALID DATASET_NOT_FOUND dataSetMonitoring DATE DATE_AND_TIME DATE_AND_TIME_TO_DATE DATE_AND_TIME_TO_TIME_OF_DAY dccAux_2Clock dccAuxClock DEACTIVATED DEACTIVATED_NO_ALARM DECELERATING DECELERATING_FORCE DECODE_STOP DEFAULT_MODE DEFAULT_PASSIVE DEFAULT_UNIT DEFAULT_VALUE defaultAdditiveTorque defaultMotionIn defaultTorqueLimitNegative defaultTorqueLimitPositive definitionState DELETE DELTA_2D_PICKER DELTA_3D_PICKER DEPENDING_ON_OUTER_INPUT_LIMITCHECK_STATUS...
  • Seite 524 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION derivedValue DESYNCHRONIZING DIFF_NEGATIVE DIFF_POSITIVE DIFFERENTIATION DINT DINT_TO_BCD DINT_TO_BYTE DINT_TO_DWORD DINT_TO_INT DINT_TO_LREAL DINT_TO_REAL DINT_TO_SINT DINT_TO_STRING DINT_TO_UDINT DINT_TO_UINT DINT_TO_USINT DINT_TO_WORD DINT_VALUE_TO_BOOL DINTIn1 DINTIn1Default DINTIn2 DINTIn2Default DINTIn3 DINTIn3Default DINTIn4 DINTIn4Default DINTOut1 DINTOut1Default DINTOut2 DINTOut2Default DINTOut3 DINTOut3Default DINTOut4...
  • Seite 525 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION DIRECT_HOMING DIRECT_HOMING_RELATIVE DIRECT_MODE DIRECT_OUTPUT DIRECT_TO_SHADOW DIRECT_VALUE DISABLE DISABLE_ALL DISABLE_CONTROLLER DISABLE_DRIVE_IMMEDIATELY DISABLE_MEASURE_AND_AVARAGE_OUTPUT_VALUE DISABLE_MEASURE_AND_MANUAL_OUTPUT_VALUE DISABLE_MOTION DISABLE_OUTPUT disableCommand DISCONTINUOUS distributedMotion DIVTIME DO_NOT_CHANGE DO_NOT_CLAMP DO_NOT_CLOSE_ON_EXIT DO_NOT_SET_DP_ALARM DO_NOT_STOP DONE DP_1 DP_2 DP_3 DP_CLOCk_DETECTED DP_INTERFACES_SYNCHRONIZED DP_SLAVE_NOT_SYNCHRONIZED DP_SLAVE_SYNCHRONIZED DP_TEL1_STANDARD DP_TEL101_611U_VELCTRL_NO_ENCODER DP_TEL102_611U_POSCTRL_1_ENCODER...
  • Seite 526 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION DP_TEL103_611U_POSCTRL_2_ENCODER DP_TEL105_611U_DSC_1_ENCODER DP_TEL106_611U_DSC_2_ENCODER DP_TEL2_STANDARD DP_TEL3_STANDARD DP_TEL4_STANDARD DP_TEL5_STANDARD DP_TEL6_STANDARD DP_TEL81_STANDARD DPIDParameter DPIDParameterSecondary DPMASTER DRIVE DRIVE_INTERFACE driveData DSC_SVS_DEVICE_ALARMS_EVENT_ID_IN_USE DSC_SVS_DEVICE_ALARMS_EVENT_ID_NOT_USED DSC_SVS_DEVICE_ALARMS_ILLEGAL_EVENT_ID DSC_SVS_DEVICE_ALARMS_INTERNAL_ERROR DSC_SVS_DEVICE_ALARMS_IV_CALL DSC_SVS_DEVICE_ALARMS_IV_FIRST_CALL DSC_SVS_DEVICE_ALARMS_IV_SFC_TYP DSC_SVS_DEVICE_ALARMS_LAST_ENTRY_USED DSC_SVS_DEVICE_ALARMS_LAST_SIGNAL_USED DSC_SVS_DEVICE_ALARMS_NO_ENTRY DT_TO_DATE DT_TO_TOD DWORD DWORD_TO_BCD DWORD_TO_BOOL DWORD_TO_BYTE DWORD_TO_DINT DWORD_TO_INT DWORD_TO_REAL...
  • Seite 527 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION DWORD_TO_UDINT DWORD_TO_UINT DWORD_TO_USINT DWORD_TO_WORD DWORD_VALUE_TO_LREAL DWORD_VALUE_TO_REAL EDGE_NEG_SIDE_NEG EDGE_NEG_SIDE_NEG_PASSIVE EDGE_NEG_SIDE_POS EDGE_NEG_SIDE_POS_PASSIVE EDGE_POS_SIDE_NEG EDGE_POS_SIDE_NEG_PASSIVE EDGE_POS_SIDE_POS EDGE_POS_SIDE_POS_PASSIVE EFFECTIVE effectiveData effectiveTaskRuntime ELSE ELSIF EMPTY ENABLE ENABLE_OFFSET_OF_ABSOLUTE_ENCODER enableCommand enableForceControlByConditionCommand enableForceLimitingByConditionCommand enableValidCam ENCODER_DISABLE END_ACTION END_CASE END_CONFIGURATION END_EXPRESSION END_FOR END_FUNCTION Basisfunktionen...
  • Seite 528 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION END_FUNCTION_BLOCK END_IF END_IMPLEMENTATION END_INTERFACE END_LABEL END_MOUNTED_SWITCH END_OF_INTERPOLATION END_OF_MOTION_STOP END_POINT END_PROGRAM END_REPEAT END_RESOURCE END_STEP END_STRUCT END_SYNC END_TRANSITION END_TYPE END_VAR END_WAITFORCONDITION END_WHILE ENDAT Enum_STGP_CMD Enum_STGP_STATE ENUM_TO_DINT EnumAbsBaudrate EnumAbsMsgFormat EnumAbsMsgLength EnumAbsoluteRelative EnumAbsState EnumAcceleration EnumAccessMode EnumActivatedDeactivated EnumActiveAbsRelInactive EnumActiveInactive...
  • Seite 529 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumActiveNoChange EnumActiveWaitingForDataInactive EnumActualDirect EnumActualValueFormat EnumAdditionExecution EnumAdditionObjectErrorReaction EnumAlarmIdState EnumAlarmIdType EnumApproachPositionType EnumAxisActuatorInterfaceAllocationConfig EnumAxisAdditionalSensorType EnumAxisApproachDirection EnumAxisCompareMode EnumAxisControllerOutput EnumAxisControllerType EnumAxisCyclicSetUpInForceLimiting EnumAxisDelayValueCalculationMode EnumAxisDelayValueState EnumAxisDioActorType EnumAxisDriverMode EnumAxisEnableMovingMode EnumAxisEncoderAssemblyType EnumAxisEncoderIdentification EnumAxisEncoderMode EnumAxisEncoderSystem EnumAxisEncoderType EnumAxisEncoderValueType EnumAxisErrorReaction EnumAxisExtrapolatedVelocitySwitch EnumAxisFilterMode EnumAxisFineInterpolatorMode EnumAxisFollowingMotionState EnumAxisForceCommand EnumAxisForceDerivativeLimitingMode...
  • Seite 530 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumAxisForceProfileModeConditionCommand EnumAxisForceProfileProcessingState EnumAxisForceState EnumAxisForceValueConditionCommand EnumAxisFrictionReference EnumAxisHomingMode EnumAxisHomingReverseCamType EnumAxisHomingState EnumAxisIdentification EnumAxisInterfaceActivationConfig EnumAxisInterfaceAllocationConfigSharable EnumAxisIntervalCounterMode EnumAxisLimitingProfileProcessingState EnumAxisMotionCommand EnumAxisMotionInCommandState EnumAxisMotionState EnumAxisMotorType EnumAxisOperatingMode EnumAxisPassiveApproachDirection EnumAxisPassiveHomingMode EnumAxisPathMotionState EnumAxisPathPosToleranceCommandValue EnumAxisPosCommandSpecification EnumAxisProfileProcessingState EnumAxisProgrammedTargetPosition EnumAxisReferenceCamType EnumAxisReferenceMaxNominal EnumAxisSensorInterfaceAllocationConfig EnumAxisServoMonitoringPositioningState EnumAxisSwitchingCondition EnumAxisSwitchingCondition_1 EnumAxisSwitchingCondition_2 EnumAxisSwLimitModeSpecificMonitoring EnumAxisTelegramType...
  • Seite 531 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumAxisUpdateCycle EnumAxisUserDefaultHighLow EnumAxisValueReferenceType EnumAxisVelocityLimitingCommandType EnumAxisVelocityLimitingDirection EnumAxisVelocityLimitingValueMode EnumBackLashDiff EnumBackLashType EnumBalanceFilterMode EnumBlendingMode EnumCamData EnumCamDefinitionState EnumCamErrorReaction EnumCamFollowingRangeSpecificationMode EnumCamInterpolationMode EnumCamLeadingRangeStartPoint EnumCammingActivationMode EnumCammingDirection EnumCammingMode EnumCamMode EnumCamPositionMode EnumCamRange EnumCamRepresentation EnumCamTrackActivationMode EnumCamTrackErrorReaction EnumCamTrackNextCommand EnumCamTrackOutputType EnumCamTrackPositionReference EnumCamTrackSetState EnumCamTrackStartMode EnumCamTrackState EnumCamTrackStopMode EnumCamTrackTaskLevel EnumCamTrackType...
  • Seite 532 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumChangeMode EnumCommandIdState EnumCommandValueQuantizationMode EnumCompactControllerControllerType EnumConfigurationInfoId EnumContinueSpecification EnumControllerObjectErrorBehaviorMode EnumControllerObjectErrorReaction EnumControllerObjectInputType EnumControllerObjectISetMode EnumControllerObjectPrecontrolAddupMode EnumControllerObjectValueBehaviorMode EnumConversionDataType EnumDataDefault EnumDataSetChangingState EnumDataType EnumDecodeSequentialMotionCommand EnumDefaultValueDirect EnumDeviceAbortReadWriteJobs EnumDeviceCommandIdState EnumDeviceConfigurationActivationState EnumDeviceDataActivationState EnumDeviceDataScope EnumDeviceDpAlarmMode EnumDeviceIdType EnumDeviceKindOfData EnumDeviceModeOfOperation EnumDeviceStartupOperationMode EnumDeviceStateOfDpSlave EnumDeviceStorageType EnumDeviceUnitDataSetCommand EnumDirectEffectiveUserDefault EnumDirection EnumDirectionType...
  • Seite 533 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumDoNotChangeDirect EnumDpInterfaceSyncMode EnumDpInterfaceSyncState EnumDpSegmentId EnumDpSlaveSyncState EnumDriveFaultsType EnumEffectiveUserDefault EnumEnableAxisMode EnumEnableDisable EnumEncoderErrorReaction EnumEncoderIdentification EnumEndBehaviourOfProfile EnumErrorReporting EnumErrorReset EnumEventClass EnumExtendedValue EnumExtendedValueType EnumFctGenStartStop EnumFctGenState EnumFixedGearDirectEffectiveUserDefault EnumFixedGearDirection EnumFixedGearDisableMode EnumFixedGearEnableMode EnumFixedGearErrorBehaviorMode EnumFixedGearErrorReaction EnumFixedGearGearingMode EnumFixedGearGearingType EnumFixedGearMergeModeDisableGearing EnumFixedGearMergeModeEnableGearing EnumFixedGearMotionOutBehaviorMode EnumFixedGearNextCommandDisableGearing EnumFixedGearNextCommandEnableGearing EnumFollowingObjectDynamicMergeMode EnumFollowingObjectDynamicReference...
  • Seite 534 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumFollowingObjectStateSetMasterCommand EnumFollowingObjectSynchronizeWithLookAhead EnumFollowingObjectSynchronizingDirection EnumFollowingObjectSynchronizingState EnumFollowingObjectSyncMode EnumFollowingObjectVelocityMode EnumFollowingState EnumForceControlByConditionCommandState EnumForceController EnumForceControllerFilterType EnumForceControllerState EnumForceControllerType EnumForceControllerTypeOfSensorData EnumForceDirection EnumForceLimitingByConditionCommandState EnumFormulaErrorReaction EnumFormulaObjectErrorBehaviorMode EnumFormulaObjectOutBehaviorMode EnumGearingActivationMode EnumGearingDirection EnumGearingMode EnumGearingPosToleranceCommandValue EnumGearingType EnumGetValue EnumHomingMode EnumInactiveNoChange EnumIncomingOutgoing EnumInOutDirection EnumInSensorIdentification EnumInSensorMode EnumInSensorSystem EnumInSensorType EnumInSensorValueType EnumInsertMode...
  • Seite 535 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumInterfaceValueDefaultValue EnumInterpolationState EnumIoIdType EnumJerk EnumLastValidInterfaceValueDefaultValue EnumLeadingRangeEndPoint EnumLimitExceededOk EnumLogicOperation EnumMasterMode EnumMeasuredEdge EnumMeasuringInputAccess EnumMeasuringInputCyclicMode EnumMeasuringInputErrorReaction EnumMeasuringInputInputType EnumMeasuringInputTaskLevel EnumMeasuringRangeMode EnumMeasuringState EnumMemoryCardIdType EnumMergeMode EnumMergeModeDisableCamming EnumMergeModeDisableGearing EnumMergeModeEnableCamming EnumMergeModeEnableGearing EnumMergeModeEnableMotionIn EnumMergeModeForceTimeProfile EnumMergeModeStop EnumModeSelfAdaptingConfiguration EnumMotionBaseType EnumMotionBufferState EnumMotionCommandIdState EnumMountSwitch EnumMoveTimeOut EnumMovingMode EnumMovingModeStopCommand...
  • Seite 536 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumNextCommandCancelCommand EnumNextCommandDelayValueCalculation EnumNextCommandDisableClamping EnumNextCommandDisableForceLimiting EnumNextCommandDisableLimiting EnumNextCommandDisableTorqueLimiting EnumNextCommandEnable EnumNextCommandEnableAxisInterface EnumNextCommandEnableClamping EnumNextCommandEnableForceControl EnumNextCommandEnableForceLimitingValue EnumNextCommandEnableLimitingValue EnumNextCommandEnableMeasuring EnumNextCommandEnableMotionIn EnumNextCommandEnableTorqueLimiting EnumNextCommandEncoderSimulation EnumNextCommandForceProfile EnumNextCommandForceValue EnumNextCommandGearing EnumNextCommandHoming EnumNextCommandIpoClockBorderToPosition EnumNextCommandMode EnumNextCommandPathMove EnumNextCommandProfile EnumNextCommandReset EnumNextCommandScaling EnumNextCommandSensor EnumNextCommandSetMaster EnumNextCommandSyncEncoder EnumOffsetMode EnumOkFaulted EnumOnOff EnumOperationMode EnumOutputCamErrorReaction...
  • Seite 537 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumOutputCamPosition EnumOutputCamState EnumOutputCamTaskLevel EnumOutputCamType EnumOutputCamValue EnumPathBlendingMode EnumPathCartesianKinematicsType EnumPathCircularDirection EnumPathCircularType EnumPathDynamicAdaption EnumPathErrorReaction EnumPathIjkMode EnumPathKinematicsConfig2D EnumPathKinematicsType EnumPathMergeMode EnumPathMode EnumPathMotionCommand EnumPathMotionCommandIdState EnumPathMotionState EnumPathPlane EnumPathPointType EnumPathPolynomialMode EnumPathStopMode EnumPathSyncAxisMotionState EnumPathVelocity EnumPathVelocityProfile EnumPathWDirection EnumPathWMode EnumPersistentDataState EnumPositioningMode EnumPositiveNegative EnumPosValue EnumProfile EnumProfileDynamicsLimiting...
  • Seite 538 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumQFAxisOutputSetMode EnumRange EnumRecognitionMode EnumRedefineMode EnumRedefineSpecification EnumRemoveMode EnumReqActDeactGetStateMode EnumReqSysFunctMode EnumRestartAxisCondition EnumSaveState EnumScaleSpecification EnumScalingSpecification EnumSensorDataType EnumSensorErrorReaction EnumSensorState EnumSensorValueBehaviorMode EnumSetAndGetSafeValue EnumSetNoSet EnumSlaveMode EnumStartStop EnumStateOfDpSlave EnumStateOfDpStation EnumStateOfTo EnumStopDriveMode EnumStopMode EnumStopSpecification EnumSyncCommandState EnumSynchronizingMode EnumSyncModeCamming EnumSyncModeGearing EnumSyncOffModeCamming EnumSyncOffModeGearing EnumSyncOffPositionReference EnumSyncPositionReference...
  • Seite 539 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumTControllerActivationModeChangedConfigData EnumTControllerBinaryIObits EnumTControllerCommandDestination EnumTControllerControllerType EnumTControllerCopyShadow EnumTControllerDataResetMode EnumTControllerErrorReaction EnumTControllerErrorResetMode EnumTControllerExecutionLevel EnumTControllerIdentificationAvailableType EnumTControllerIdentificationModifiedTangentMethodStage EnumTControllerIdentificationStandardTangentMethodStage EnumTControllerIdentificationTransitionMode EnumTControllerIdentificationType EnumTControllerInputGradientCheckMode EnumTControllerInputLimitCheckMode EnumTControllerInputLimitCheckState EnumTControllerInputType EnumTControllerIntegrationLimitState EnumTControllerIntegrationMode EnumTControllerNextCommand EnumTControllerOperatingMode EnumTControllerOutputLimitState EnumTControllerOutputType EnumTControllerPlausibilityCheckMode EnumTControllerPlausibilityState EnumTControllerProcessControlState EnumTControllerProcessMode EnumTControllerRestartActivation EnumTControllerRestartActivationSetting EnumTControllerRestartCondition EnumTControllerSimulationMode EnumTcpNextCommandMode EnumToActivationModeSetConfigData...
  • Seite 540 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION EnumToRestartActivation EnumToRestartActivationSetting EnumTorqueLimitUnitType EnumToSetStateOfTo EnumTraceState EnumTransferSuperimposedPosition EnumTrueFalse EnumUdpCommunicationMode EnumUpsBatteryState EnumUpsState EnumUserDefaultDirect EnumUserDefaultYesNo EnumValueSpecification EnumValueType EnumVelocity EnumXCommandIdState EnumXCommunicationMode EnumXNextCommandEnable EnumYesNo error errorGroup errorReaction EXCLUSIVE EXECUTED EXIT EXPD EXPRESSION EXPT EXTENDED_LOOK_AHEAD extrapolationData extrapolationValue F_EDGE Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 541 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION F_TRIG FAILED FALLING_EDGE FALLING_EDGES_ONLY FALSE FAST FAULTED FCTGEN_DISABLED FCTGEN_ENABLED FCTGEN_LIMIT_EXCEEDED FCTGEN_PARAM_VALID FCTGEN_RUNNING FCTGEN_START FCTGEN_START_FG1 FCTGEN_START_FG2 FCTGEN_STARTING FCTGEN_STOP FCTGEN_STOPPING FCTGEN_WAIT_FG1 FCTGEN_WAIT_FG2 FEEDBACK FEEDBACK_EMERGENCY_STOP FIND FINISHED FIXED_GEAR_DISABLE fixedGearValue FLEXIBLE_MOUNTED_SWITCH FOLLOWING_OBJECT_DISABLE FOLLOWING_RANGE followingRangeSettings FORCE_AND_INPUT FORCE_AND_POSITION FORCE_AND_TIME FORCE_CONDITION...
  • Seite 542 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION FORCE_LIMITED FORCE_OR_INPUT FORCE_OR_POSITION FORCE_OR_TIME FORCE_POSITION FORCE_TIME FORCE_VALUE forceActualValueSettings forceControllerData forceControllerMonitorings forceControllerSettings forceLimitingCommand forceMotionInPositionProfileCommand forcePositionProfileCommand forceStateData forceTimeProfileCommand FROM FROM_BACKUP FROM_FILE FROM_RAM FULL FUNCTION FUNCTION_BLOCK FUNCTION_IS_ACTIVATED FUNCTION_IS_ACTIVE FUNCTION_IS_WAITING_FOR_ACTIVATION GEARING GEARING_WITH_FRACTION GEARING_WITH_RATIO gearingAdjustments GOTO GRAY_CODE GREATER_EQUAL Basisfunktionen...
  • Seite 543 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION HARDWARE_LIMIT_SWITCH HARDWARE_LIMIT_SWITCH_NEGATIVE HARDWARE_LIMIT_SWITCH_POSITIVE HEAT_AND_COOL_OUTPUT_ZERO HEAT_OUTPUT_ZERO HEATING HIGH HOLD_CONNECTION HOME_POSITION_ENTRY_MOVE homingCommand HW_TYPE IDENTIFICATION identificationModifiedTangentMethodParameter identificationStandardTangentMethodParameter IE_01 IE_02 IE_1 IE_2 IMMEDIATELY IMMEDIATELY_AND_BE_SYNCHRONOUS_AT_MASTER_POSITION IMMEDIATELY_AND_SLAVE_POSITION IMMEDIATELY_BY_CAM_TRACK_OUTPUT_INACTIVE IMMEDIATELY_BY_TIME_PROFILE IMMEDIATLY IMPLEMENTATION IN_ACCELERATION IN_ACTIVATION IN_ALL_CONTROL_MODES IN_CALCULATION Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 544 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION IN_CLOSED_LOOP_POSITION_CONTROL IN_CONSTANT_MOTION IN_DEACTIVATION IN_DECELERATION IN_DEFINED_TIME IN_EXECUTION IN_INTERPOLATION IN_INTERPOLATION_BUT_NOT_ON_PROFILE IN_MOTION IN_OPERATION IN_POSITION IN_STANDSTILL INACTIVE INACTIVE_AND_WAITING_FOR_NEXT_CYCLE INCOMING INCOMING_ALARM INCREMENT_COUNTER INCREMENT_DURATION INITIAL_STEP INPUT INPUT_CONDITION inputDisplayValueParameter inputFilterParameter inputGradientCheckParameter inputLimitCheckParameter INSERT INT_TO_BCD INT_TO_BYTE INT_TO_DINT INT_TO_DWORD INT_TO_LREAL INT_TO_REAL INT_TO_SINT INT_TO_TIME...
  • Seite 545 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION INT_TO_UINT INT_TO_USINT INT_TO_WORD INT_VALUE_TO_BOOL INTERFACE INTERFACE_VALUE INTERNAL_ERROR INTERNAL_RELATED internalServoSettings internalToTrace INTERNEL_ERROR INTERPOLATED interpolation INTERPOLATION_DONE INTERVAL_COUNTER INVALID INVALID_VALUE IPO_2 ipoClock ipoClock_2 JMPC JMPCN kinematicsData LABEL LAST_INTERFACE_VALUE LAST_OPERATION_MODE LAST_VALID_INTERFACE_VALUE LAST_VALUE Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 546 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION LEADING_RANGE LEADING_RANGE_END LEADING_RANGE_START LEADING_RANGE_VALUE leadingRange leadingRangeSettings LEFT LENGTH_13 LENGTH_21 LENGTH_25 LESS lifeSign LIMIT LIMIT_EXCEEDED LIMITING_BY_DIRECT_VALUE LIMITING_BY_USER_DEFAULT_VALUE limitsOfPathDynamics LINEAR LINEAR_CONVERSIONDATA LINEAR_MODE LINEAR_MOTORTYPE LINEAR_SYSTEM linearPathCommand LINT LITTLEBYTEARRAY_TO_ANYTYPE LITTLEBYTEARRAY_TOANYTYPE LOAD_CONFIGURED_DATA LONG_RUN_NEGATIVE LONG_RUN_POSITIVE Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 547 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION LOWER_PRIMARY_FAILED LOWER_SECONDARY_FAILED lowerPlausibilityParameter lowerPlausibilityParameterSecondary LREAL LREAL_INTERFACE LREAL_TO_DINT LREAL_TO_INT LREAL_TO_REAL LREAL_TO_SINT LREAL_TO_STRING LREAL_TO_UDINT LREAL_TO_UINT LREAL_TO_USINT LREAL_VALUE_TO_BOOL LREAL_VALUE_TO_BYTE LREAL_VALUE_TO_DWORD LREAL_VALUE_TO_WORD LREALIn1 LREALIn1Default LREALIn2 LREALIn2Default LREALIn3 LREALIn3Default LREALIn4 LREALIn4Default LREALOut1 LREALOut1Default LREALOut2 LREALOut2Default LREALOut3 LREALOut3Default LREALOut4 LREALOut4Default...
  • Seite 548 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION LWORD_TO_BCD manualOutputValue MASTER_RANGE MASTER_SLAVE_ALARMMESSAGES_1 masterState MAX_CONFIGURED_DYNAMICS MAX_VALUE measuredValue1 measuredValue2 MEASURING_AND_MANUAL_OUTPUT MEASURING_AND_OUTPUT_ZERO MEASURING_ERROR MEASURING_INPUT_DISABLE MEMORY_CARD_FULL MEMORY_CARD_SERIAL_NUMBER MIN_MAX minusLimitsOfDynamics MODE_1 MODE_2 MODE_CAM MODE_CAM_AND_ZM MODE_NO_REFERENCE MODE_REFERENCE_CAM_AND_EXTERNAL_ZM MODE_ZM modeOfDpInterfaceSynchronization modeOfOperation MODIFICATION_ACTIVE MODIFIED_TANGENTMETHOD modulo Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 549 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION monitorings MOTION_DONE MOTION_EMERGENCY_ABORT MOTION_EMERGENCY_STOP MOTION_IN_POSITION_LOCKED_PROFILE MOTION_INTERFACE MOTION_STOP motionIn MotionIn1 MotionIn1Default MotionIn2 MotionIn2Default MotionIn3 MotionIn3Default MotionIn4 MotionIn4Default MotionInDefault motionOut MotionOut1 MotionOut1Default MotionOut2 MotionOut2Default MotionOut3 MotionOut3Default MotionOutDefault motionState motionStateData motionType MOVE_WITH_CONSTANT_SPEED moveCommand MOVING_WITH_REDUCED_VELOCITY movingToEndStopCommand MULTIME Basisfunktionen...
  • Seite 550 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION NEGATIVE NEGATIVE_ALL_HOMING NEGATIVE_DIRECTION NEVER NEXT_CAM_CYCLE NEXT_CAM_TRACK_CYCLE NEXT_IPO_CYCLE NEXT_MOTION NEXT_WITH_REFERENCE NO_ACCESS NO_ACTIVATE NO_ALARMMESSAGES NO_CHANGE NO_COMMAND_BUFFER_AVAILABLE NO_CONSTRAINTS NO_CYCLIC NO_DP_SEGMENT NO_HOMING_MODE NO_POS_MOTION_ACTIVE NO_REPORTING NO_REQUEST_TO_ACTIVATE NO_RESSOURCES_AVAILABLE NO_RESTART_ACTIVATION NO_RETAIN_GLOBAL NO_SET NO_STORAGE_AVAILABLE NO_TELEGRAM NO_TYPE NO_VALID_CONFIGURATION_ID NO_VALID_STATE NOCYCLIC NODEF NOMINAL_VALUE Basisfunktionen...
  • Seite 551 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION NON_AVAILABLE NON_CONTINUOUS NON_EXCLUSIVE_AND_STARTUP_ACTIVATED NON_EXCLUSIVE_AND_STARTUP_DEACTIVATED NONE NOT_ACTIVATED NOT_EMPTY NOT_ENOUGH_RAM NOT_EXISTENT NOT_INTERPOLATED NOT_LIMITED NOT_POSSIBLE NOT_PRESENT NOT_VALID NOTSUPP numberOfSummarizedTaskOverflow O_K_ OFFSET_MOVE OFFSET_SCALE ON_MASTER_AND_SLAVE_POSITION ON_MASTER_POSITION ON_PROFILE ON_SLAVE_POSITION ONBOARD ONLY_POSITION_COMMAND OPEN_POSITION_CONTROL operatingMode OPERATION_AND OPERATION_OR Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 552 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION ORDER_ID OUTGOING OUTGOING_ALARM output OUTPUT_CAM_DISABLE OUTPUT_PATH_LENGTH OUTPUT_PATH_LENGTH_ADDITIVE outputData outputDefault outputDerivative outputDerivativeDefault outputMonitoring outputSettings outputValue outputValueSecondary OVER OVER_POSITION_TO_ENDPOSITION override P_CONTROLLER PARABOLIC PASSIVE_HOMING path pathMotion pathSyncMotion PERMANENT_STORAGE persistentDataPowerMonitoring PID_ACTUAL PID_CONTROLLER pidController Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 553 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION pidControllerDefault pidControllerEffective pidControllerMonitorings PINETREE plusLimitsOfDynamics PN_1 POLYNOMIAL polynomialPathCommand posCommand POSITION POSITION_AND_DIRECT_NIST_B POSITION_AND_DYNAMIC_BASED POSITION_AND_INPUT POSITION_AND_PROFIDRIVE_NIST_B POSITION_AND_TIME POSITION_BASED POSITION_CONDITION POSITION_CONTROLLED POSITION_LOCKED_PROFILE POSITION_OR_INPUT POSITION_OR_TIME positionBasedMotionInCommand positioningState positionTimeProfileCommand POSITIVE POSITIVE_ALL_HOMING POSITIVE_DIRECTION POWER precontrol precontrolValueDefault precontrolValueIn PREDEFINED_APPLICATION_EVENTS PREDEFINED_MODULE_INFORMATION PRESSURE_DIFFERENCE_MEASUREMENT...
  • Seite 554 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION processedValue processModeParameter PROFIDRIVE_NIST_A PROFIDRIVE_NIST_B PROFILE_DONE PROFILE_END PROGRAM PWMParameter PWMParameterSecondary QUADRATIC_MODE R_EDGE R_TRIG RAM_DISK_FULL RATED rawValue READ_AND_WRITE_JOBS READ_ERROR READ_JOBS REAL REAL_AXIS REAL_AXIS_WITH_FORCE_CONTROL REAL_AXIS_WITH_SIGNAL_OUTPUT REAL_QFAXIS REAL_QFAXIS_WITH_CLOSED_LOOP_FORCE_CONTROL REAL_QFAXIS_WITH_OPEN_LOOP_FORCE_CONTROL REAL_QFAXIS_WITH_OPEN_LOOP_FORCE_CONTROL_ONLY REAL_TO_DINT REAL_TO_DWORD Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 555 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION REAL_TO_INT REAL_TO_LREAL REAL_TO_SINT REAL_TO_STRING REAL_TO_TIME REAL_TO_UDINT REAL_TO_UINT REAL_TO_USINT REAL_VALUE_TO_BOOL REAL_VALUE_TO_BYTE REAL_VALUE_TO_DWORD REAL_VALUE_TO_WORD RECTANGLE_TTL REFER_TO_ACTUAL_SENSOR_VALUE_RESOLUTION REFERENCE_CAM_AND_EXTERNAL_ZM_PASSIVE RELATE_SYNC_PROFILE_TO_LEADING_VALUE RELATE_SYNC_PROFILE_TO_TIME RELATIVE RELEASE_DISABLE REPEAT REPLACE REQUEST_ABORT REQUEST_FALSE REQUEST_TRUE RESET RESOLVER RESOURCE RESTART_BY_COMMAND RESTART_BY_SYSVAR_AND_COMMAND RESTART_NONE restartActivation RESULTING RETAIN RETC...
  • Seite 556 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION RETURN REVERSE RIGHT RIGHT_MARGIN RISING_EDGE RISING_EDGES_ONLY ROLL_PICKER ROTATORY ROTATORY_SYSTEM SAME_DIRECTION SAVE_ABORTED SAVE_FINISHED SCARA SEARCH_ENDPOINT SEARCH_INFLECTIONPOINT SEARCH_STARTPOINT SECONDARY SEMA SENSOR_ABSOLUTE SENSOR_ANALOG SENSOR_CYCLIC_ABSOLUTE SENSOR_INCREMENTAL SENSOR_POSITION_DIFFERENCE_MEASUREMENT sensorData sensorMonitoring sensorSettings SEQUENTIAL SERIAL_NUMBER Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 557 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION SERVO servoControlClock servodata servoMonitoring servoSettings servoTaskCycle SET_ACTUAL_VALUE SET_DP_ALARM SET_OFFSET_OF_ABSOLUTE_ENCODER_BY_POSITION SET_VALUE setForceCommandValueCommand setMasterCommand setpoint SETPOINT_VALUE setpointDefault setpointIn SETTING_OF_COEFFICIENTS SETTING_UP SHADOW SHADOW_TO_DIRECT SHORTEST_WAY SIMULATION SIMULATION_ABORT SIMULATION_STOP singleCamState SINT SINT_TO_BCD SINT_TO_BYTE SINT_TO_DINT SINT_TO_DWORD SINT_TO_INT SINT_TO_LREAL Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 558 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION SINT_TO_REAL SINT_TO_UDINT SINT_TO_UINT SINT_TO_USINT SINT_TO_WORD SINT_VALUE_TO_BOOL SINUS_1VPP SINUSOIDAL SLAVE_ALARMMESSAGES_1 SLAVE_RANGE SLOW SMOOTH SPECIFIC SPECIFIC_AXIS_MOTION SPECIFIC_ERROR SPECIFIC_ID SPECIFIC_NUMBER SPECIFIC_PART_OF_RANGE SPECIFIC_POINT SPECIFIC_START_DATA SPEED_CONTROLLED speedMode SQRT SSI_MODE STANDARD STANDARD_AND_INVERSE STANDARD_MOTORTYPE STANDARD_TANGENTMETHOD STANDARD_TYPE STANDSTILL STANDSTILL_MONITORING_ACTIVE START START_POINT STARTPOINT_ENDPOINT...
  • Seite 559 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION STARTUP_ACTIVATED STARTUP_DEACTIVATED state STATE_HOMED STATE_HOMING STATE_INITIAL STATE_MOVING STATE_POSABS STATE_POSITION_END STATE_POSREL STATE_STOPPED STATE_TOACTIVE stateCammingAdjustments stateGearingAdjustments stateOfDpInterfaceSynchronization stateOfDpSlaveSynchronization stateSetMasterCommand STEP STEPMOTOR STOP STOP_ALL_FORMULA STOP_AND_ABORT STOP_DEVICE STOP_IN_DEFINED_TIME STOP_IN_PROFILE_END STOP_SPECIFIC_FORMULA STOP_SYMMETRIC_WITH_POSITION STOP_WHEN_PROFILE_END_REACHED STOP_WITH_COMMAND_VALUE_ZERO STOP_WITH_DYNAMIC_PARAMETER STOP_WITH_MAXIMAL_DECELERATION STOP_WITHOUT_ABORT stopEmergencyCommand STOPPED...
  • Seite 560 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION STOPU STRING STRING_TO_DINT STRING_TO_LREAL STRING_TO_REAL STRING_TO_UDINT STRUCT StructAdditionalSensorNumber StructAdditionObjectMotionIn StructAdditionObjectMotionOut StructAlarmId STRUCTALARMID_TO_DINT StructAxisAbsoluteEncoder StructAxisActorData StructAxisActorMonitoring StructAxisActualTorque StructAxisAdditionalSensorData StructAxisAdditiveTorque StructAxisAdditiveTorqueIn StructAxisDataSetReadWrite StructAxisDataSetReadWrite_V3_1 StructAxisDefaultType StructAxisDistributedMotion StructAxisDriveData StructAxisDriveSafetyExtendedFunctionsInfoData StructAxisDynamicLimit StructAxisDynamicQFData StructAxisExtrapolationData StructAxisForceActualValueSettings StructAxisForceControlByConditionCommand StructAxisForceControlDataSet StructAxisForceControlDataSet_V3_1 StructAxisForceControllerData StructAxisForceControllerMonitorings...
  • Seite 561 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructAxisForceLimitingCommand StructAxisForceMotionInPositionProfileCommand StructAxisForcePositionProfileCommand StructAxisForceStateData StructAxisForceTimeProfileCommand StructAxisHomingCommand StructAxisHomingDefault StructAxisInvertQOutput StructAxisInvertSetPointHydraulicType StructAxisModuloData StructAxisMotionData StructAxisMotionInData StructAxisMotionStateData StructAxisMoveCommand StructAxisMovingToEndStopCommand StructAxisOverride StructAxisPathMotion StructAxisPathSyncMotion StructAxisPosCommand StructAxisPositionBasedMotionInCommand StructAxisPositioningDefault StructAxisPositioningState StructAxisPositionTimeProfileCommand StructAxisSensorData StructAxisSensorMonitoring StructAxisSensorSettings StructAxisServoData StructAxisServoMonitoring StructAxisServoSettings StructAxisSetForceCommandValueCommand StructAxisSwLimit StructAxisSwLimitState StructAxisTorqueLimitIn StructAxisTorqueLimitingCommand...
  • Seite 562 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructAxisUserDefaultTorqueLimit StructAxisVelocityBasedMotionInCommand StructAxisVelocityLimitingCommand StructAxisVelocityMotionInPositionProfileCommand StructAxisVelocityPositionProfileCommand StructAxisVelocityTimeProfileCommand StructCamInterpolation StructCammingAdjustments StructCammingSettings StructCamRange StructCamScaleRange StructCamSettings StructCamTrackArrayOfSingleCamSettings StructCamTrackEffectiveData StructCamTrackSingleCamSettings StructCamTrackUserDefault StructCamUserDefault StructClampingMonitoring StructControllerDynamic StructControllerObjectControlDeviation StructControllerObjectOutputData StructControllerObjectOutputMonitoring StructControllerObjectPControllerData StructControllerObjectPControllerDefault StructControllerObjectPIDControllerData StructControllerObjectPIDControllerDefault StructControllerObjectPIDControllerEffective StructControllerObjectPIDControllerMonitorings StructControllerObjectPrecontrolData StructControllerObjectValueIn StructControllerType StructControllerType_V3_1 StructCyclicMeasuringEnableCommand StructDataSetMonitoring...
  • Seite 563 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructDeviceCpuData StructDeviceCpuDataRW StructDeviceDataActivationState StructDeviceIm0 StructDeviceIm0Softwareversion StructDeviceIm0Version StructDeviceImData StructDeviceStartUp StructDeviceUpsData StructDpStationAddressType StructDynamicComp StructDynamicData StructDynamicFollowing StructEffectiveTaskRuntimeType StructEncoderEffective StructEncoderMotionState StructEncoderNumber StructEncoderSyncCommand StructEncoderUserDefault StructFilterForceControl StructFixedGearingAdjustments StructFixedGearingOffset StructFixedGearingSettings StructFixedGearMotionIn StructFixedGearMotionOut StructFixedGearUserDefault StructFollowingObjectCurrentSyncPosition StructFollowingObjectDistributedMotion StructFollowingObjectMasterDynamics StructFollowingObjectUserDefault StructForceControllerData2 StructForceControllerData2_V3_1 StructForceControllerDifference StructForceControlSwitchingData...
  • Seite 564 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructFormulaObjectDINTIn StructFormulaObjectDINTOut StructFormulaObjectLREALIn StructFormulaObjectLREALOut StructFormulaObjectMotionIn StructFormulaObjectMotionOut StructGear StructGearingAdjustments StructGearingOffset StructGearingSettings StructInternalServoSettings StructInternalToTrace StructLimitsOfPathDynamics StructMeasuringInputEffective StructMeasuringInputUserDefault StructMotionVector StructOutputCamCounterData StructOutputCamEffectiveData StructOutputCamUserDefault StructOutputControllerOutput StructOutputData StructOutputLimits StructOutputMonitoring StructOutputSettings StructPathAbortPosition StructPathAxisMotionVector StructPathBcsData StructPathBlending StructPathCircularCommand StructPathData StructPathDynamics StructPathKinematicsData StructPathLinearCommand StructPathMcsData...
  • Seite 565 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructPathOverride StructPathPolynomialCommand StructPathSettings StructPathUserDefault StructPathVector StructPathWSettings StructPDController StructPendingAlarmState structPersistentDataPowerMonitoringtype StructPID_Controller StructPID_Controller_V3_1 StructPIDController StructPIDController_V3_1 StructProcessModel StructPVController StructPVController_V3_1 StructQFAxisDataSet StructQFAxisDataSet_V3_1 StructQFAxisMaxDerivative StructQFAxisUserDefault StructRetAllocateToken StructRetCommandState StructRetConfiguration StructRetDeviceCommandState StructRetDeviceGetStateOfAllDpStations StructRetDeviceGetStateOfDpSlave StructRetDeviceNameOfStation StructRetDiagnosticData StructRetDpSlaveAddress StructRetEncoderValue StructRetGetAxisProgrammedTargetPosition StructRetGetAxisSpecificState StructRetGetAxisSpecificState2 StructRetGetAxisStoppingData...
  • Seite 566 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructRetGetCamSpecificState2 StructRetGetCircularPathData StructRetGetCircularPathGeometricData StructRetGetConfigurationData StructRetGetDataByToken StructRetGetDeviceId StructRetGetDoIndexNumberFromLogAddress StructRetGetDpStationAddressFromLogDiagnosticAddress StructRetGetErrorNumberState StructRetGetExternalEncoderSpecificState StructRetGetExternalEncoderSpecificState2 StructRetGetForceControlDataSetParameter StructRetGetForceControlDataSetParameter_V3_1 StructRetGetGearAxisSpecificState StructRetGetGearAxisSpecificState2 StructRetGetGeoAddressFromLogAddress StructRetGetInOutByte StructRetGetLinearPathData StructRetGetLinearPathGeometricData StructRetGetLogDiagnosticAddressFromStationAddress StructRetGetMeasuringInputSpecificState StructRetGetMeasuringInputSpecificState2 StructRetGetMemoryCardId StructRetGetNextLogAddress StructRetGetOutputCamSpecificState StructRetGetOutputCamSpecificState2 StructRetGetPendingAlarms StructRetGetPendingAlarmState StructRetGetPolynomialPathData StructRetGetPolynomialPathGeometricData StructRetGetPosAxisSpecificState StructRetGetPosAxisSpecificState2 StructRetGetQFAxisDataSetParameter StructRetGetQFAxisDataSetParameter_V3_1...
  • Seite 567 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructRetGetStateOfSingleDpSlave StructRetGetStateOfTo StructRetGetStationType StructRetGetToError StructRetGetValue StructRetIPConfig StructRetMotionBuffer StructRetMotionCommandState StructRetPathAxesData StructRetPathAxesPosition StructRetPathCartesianData StructRetPathCartesianPosition StructRetPathMotionCommandState StructRetReadDriveFaults StructRetReadDriveMultiParameter StructRetReadDriveMultiParameterDescription StructRetReadDriveParameter StructRetReadDriveParameterDescription StructRetReadGetAxisDataSet StructRetReadGetAxisDataSet_V3_1 StructRetReadRecord StructRetTcpOpenClient StructRetTcpOpenServer StructRetTcpReceive StructRetUdpReceive StructRetUnitDataSetCommand StructRetWriteDriveMultiParameter StructRetWriteDriveParameter StructRetXCommandState StructRetXreceive StructScaleOffset StructSensorMonitorings StructStateOfDpStations StructSyncDynamics...
  • Seite 568 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructSyncProfileDefinitions StructSystemLoad StructTaskId StructTaskOverflowType StructTaskRuntimeType StructTaskRuntimeValues StructTCOFctGenOverride StructTControllerActualDPIDData StructTControllerActualIdentificationModifiedTangentMethodData StructTControllerActualIdentificationStandardTangentMethodData StructTControllerActualInputData StructTControllerActualInputLimitCheckData StructTControllerActualInputSingleLimitCheckData StructTControllerControlRangeParameter StructTControllerCycleParameter StructTControllerDPIDParameter StructTControllerIdentificationModifiedTangentMethodParameter StructTControllerIdentificationModifiedTangentMethodProcessParameter StructTControllerIdentificationStandardTangentMethodParameter StructTControllerIdentificationStandardTangentMethodProcessParameter StructTControllerIdentificationStaticCondition StructTControllerInputDisplayValueParameter StructTControllerInputFilterParameter StructTControllerInputGradientCheckParameter StructTControllerInputLimitCheckParameter StructTControllerInputSingleLimitCheckParameter StructTControllerOutputValue StructTControllerPlausibilityParameter StructTControllerProcessModeParameter StructTControllerPWMParameter StructTorqueLimit StructTraceControl StructTraceState StructUserData...
  • Seite 569 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION StructVelocityGearingSettings StructXsendDestAddr SUB_DATE_DATE SUB_DT_DT SUB_DT_TIME SUB_TIME SUB_TOD_TIME SUB_TOD_TOD SUPERIMPOSED_MOTION SUPERIMPOSED_MOTION_ACTIVE SUPERIMPOSED_MOTION_MERGE SUPERIMPOSED_POS_MOTION_ACTIVE superimposedMotion SWITCH_BY_VALUE SWITCHING_CONDITION_DONE swLimit swLimitState SYMBOL_INFORMATION_NOT_AVAILABLE SYMBOL_INFORMATION_NOT_FOUND syncCommand SYNCHRONIZE_SYMMETRIC SYNCHRONIZE_WHEN_POSITION_REACHED SYNCHRONIZED SYNCHRONIZING SYNCHRONIZING_NOT_POSSIBLE synchronizingState syncMonitoring syncState SYSTEM SYSTEM_DEFINED systemClock systemLoad Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 570 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION TARGET_POSITION_MODE TASK_STATE_INVALID TASK_STATE_LOCKED TASK_STATE_RUNNING TASK_STATE_STOP_PENDING TASK_STATE_STOPPED TASK_STATE_SUSPENDED TASK_STATE_WAIT_NEXT_CYCLE TASK_STATE_WAIT_NEXT_INTERRUPT TASK_STATE_WAITING taskRuntime taskRuntimeMonitoring TCOFctGenOverride TEMPORARY_STORAGE THEN TIME TIME_AND_INPUT TIME_CONDITION TIME_LOCKED_PROFILE TIME_OF_DAY TIME_OR_INPUT TIME_OUT TIME_STAMP TIME_TO_INT TIME_TO_REAL TIME_TO_UDINT TO_CONNECTION TO_INTERFACE TORQUE torqueLimitingCommand torqueLimitNegative torqueLimitNegativeIn Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 571 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION torqueLimitPositive torqueLimitPositiveIn TOTAL_MOVE tOutput TRACE_ABORTED TRACE_FINISHED TRACE_INACTIVE TRACE_MISMATCH TRACE_NO_TIME TRACE_PARAM_VALID TRACE_RUNNING TRACE_WAIT_FOR_TRIGGER traceControl traceState TRANSFER TRANSFER_MERGE TRANSFER_RESET TRANSFER_STANDSTILL TRANSIENT_BEHAVIOR_DIRECT TRANSIENT_BEHAVIOR_WITH_DYNAMICS TRANSIENT_BEHAVIOR_WITH_NEXT_SYNC TRANSITION TRAPEZOIDAL TRIGGER_OCCURED TRUE TRUNC TYPE TYPE_REVERSE TYPE_SWITCH TYPE_TIME TYPE_TIME_WITH_MAX_LENGTH TYPE_WAY typeOfAxis Basisfunktionen...
  • Seite 572 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION UDINT UDINT_TO_BYTE UDINT_TO_DINT UDINT_TO_DWORD UDINT_TO_INT UDINT_TO_LREAL UDINT_TO_REAL UDINT_TO_SINT UDINT_TO_STRING UDINT_TO_TIME UDINT_TO_UINT UDINT_TO_USINT UDINT_TO_WORD UDINT_VALUE_TO_BOOL UINT UINT_TO_BYTE UINT_TO_DINT UINT_TO_DWORD UINT_TO_INT UINT_TO_LREAL UINT_TO_REAL UINT_TO_SINT UINT_TO_UDINT UINT_TO_USINT UINT_TO_WORD UINT_VALUE_TO_BOOL ULINT UNDER UNI_DIRECTION UNIT UNIT_NOT_FOUND UNTIL UPPER_PRIMARY_FAILED UPPER_SECONDARY_FAILED...
  • Seite 573 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION upperPlausibilityParameterSecondary USELIB USEPACKAGE USER USER_DEFAULT USER_DEFINED USER_EVENTS_1 USER_EVENTS_2 USER_STORAGE userData userDefault userDefaultClamping userDefaultDynamics userDefaultForceControl userDefaultForceLimiting userDefaultHoming userDefaultPositioning userDefaultQFAxis userDefaultTorqueLimiting USES USINT USINT_TO_BYTE USINT_TO_DINT USINT_TO_DWORD USINT_TO_INT USINT_TO_LREAL USINT_TO_REAL USINT_TO_SINT USINT_TO_UDINT USINT_TO_UINT USINT_TO_WORD USINT_VALUE_TO_BOOL VALID VALUE...
  • Seite 574 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION VALUE_LEFT_MARGIN VALUE_LEFT_MARGIN_WITHOUT_SIGN VALUE_RIGHT_MARGIN VALUE_RIGHT_MARGIN_WITHOUT_SIGN VAR_ACCESS VAR_ALIAS VAR_EXTERNAL VAR_GLOBAL VAR_IN_OUT VAR_INPUT VAR_OBJECT VAR_OUTPUT VAR_TEMP VELOCITY VELOCITY_CONTROLLED VELOCITY_GEARING velocityBasedMotionInCommand velocityLimitingCommand velocityMotionInPositionProfileCommand velocityPositionProfileCommand velocityTimeProfileCommand VERSION_MISSMATCH VIRTUAL_AXIS VOID WAIT_FOR_CONDITION WAIT_FOR_DP_CLOCK WAIT_FOR_VALID WAITFORCONDITION WAITING WAITING_FOR_CHANGE_OF_MASTER_DIRECTION WAITING_FOR_MERGE WAITING_FOR_RESTART Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 575 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION WAITING_FOR_SYNC_POSITION WAITING_FOR_SYNC_START WAITING_FOR_TRIGGER WAITING_TO_START WARNING WHEN_ACCELERATION_DONE WHEN_AXIS_HOMED WHEN_AXIS_SYNCHRONIZED WHEN_BUFFER_READY WHEN_CAM_TRACK_DONE WHEN_COMMAND_DONE WHEN_DATA_ACTIVE WHEN_ENCODER_SYNCHRONIZED WHEN_ENDSTOP_REACHED WHEN_FORCE_CONTROL_ENABLED WHEN_FORCE_LIMIT_REACHED WHEN_FORCE_LIMITING_ACTIVATED WHEN_FUNCTION_DISABLED WHEN_GEARING_START WHEN_INTERPOLATION_DONE WHEN_LIMIT_REACHED WHEN_LIMITING_COMMAND_ACTIVATED WHEN_MOTION_DONE WHEN_PROFILE_DONE WHEN_TORQUELIMIT_GONE WHEN_TORQUELIMIT_REACHED WHEN_TRIGGER_OCCURED WHILE WITH WITH_CAM_TRACK_ACTIVATION WITH_COMMAND_VALUE_ZERO WITH_DYNAMIC_RESTRICTION WITH_DYNAMICS WITH_JERK...
  • Seite 576 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION WITH_RADIUS_AND_ENDPOSITION WITH_SPECIFIC_AREA WITH_TIME_LIMIT WITHOUT_CHANGE WITHOUT_DYNAMIC_RESTRICTION WITHOUT_JERK WITHOUT_LIMITING WITHOUT_SPECIFIC_AREA WITHOUT_TIME_LIMIT WORD WORD_TO_BCD WORD_TO_BOOL WORD_TO_BYTE WORD_TO_DINT WORD_TO_DWORD WORD_TO_INT WORD_TO_SINT WORD_TO_UDINT WORD_TO_UINT WORD_TO_USINT WORD_VALUE_TO_LREAL WORD_VALUE_TO_REAL WRITE_JOBS WRITEABLE X_Y_Z XORN Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 577 Anhang A A.2 Bezeichner mit definierter Bedeutung in SIMOTION ZERO_VALUE ZM_PASSIVE Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 579: Index

    Index _finite Beschreibung, 333 _fixedGearType, 76 _formulaObjectType, 76 _additionObjectType, 76 _getAlarmId _alarm, 288, 385 Anwendung, 385 _alarmS Beschreibung, 297 Anwendung, 383, 384 _getAverageTaskIdRunTime, 284 _alarmSc _getBit, 306 Anwendung, 383, 384 _getCommandId, 374 _alarmScId Fehlerquelle, 475 Anwendung, 383, 384 _getCurrentTaskIdRunTime, 283 Beschreibung, 295 _getDeviceId, 377 _alarmSId...
  • Seite 580 Index Anwendung, 389 _SC_STATION_RECONNECTED, 111 Beschreibung, 342 _SC_TO_INSTANCE_NOT_EXISTENT, 110 _resetAlarmId, 298 _SC_VARIABLE_ACCESS_ERROR_READ, 109 _resetAllAlarmId, 298 _SC_VARIABLE_ACCESS_ERROR_WRITE, 109 _resetTaskId _sensorType, 76 Beschreibung, 268 _setBit, 307 Kurzbeschreibung, 264 _setDeviceErrorLED, 379 _resetUnitData _setDriveObjectSTW, 380 Anwendung, 391 _setSafeValue _restartTaskId Beschreibung, 346 Beschreibung, 270 _sizeOf, 382 Kurzbeschreibung, 264 _startSyncCommand _resumeTaskId...
  • Seite 581 Index konfigurieren, 183 Aufwärtszähler (System-FB), 424 Symbolbrowser, 152 Aufzählungsdatentypen, 73 ABS, 302 Ausschaltverzögerung (System-FB), 432 Abwärtszähler (System-FB), 426 Achse, 38 Drehzahlachse, 76 Gleichlaufachse, 76 BackgroundTask, 144, 158 Positionierachse, 76 TaskStartInfo, 106 ACOS, 304 Bahnachse, 76 Addierobjekt, 39 Bahnobjekt, 38, 76 Additives Moment, 64 Befehle Alarme...
  • Seite 582 Index BYTE_TO_UINT, 316 DINT_TO_BYTE, 316 BYTE_TO_USINT, 316 DINT_TO_DWORD, 316 BYTE_TO_WORD, 316 DINT_TO_INT, 316 BYTE_VALUE_TO_LREAL, 316 DINT_TO_LREAL, 316 BYTE_VALUE_TO_REAL, 316 DINT_TO_REAL, 316 DINT_TO_SINT, 316 DINT_TO_STRING, 323 DINT_TO_UDINT, 316 DINT_TO_UINT, 316 camType, 76 DINT_TO_USINT, 316 CommandId, 31 DINT_TO_WORD, 316 Fehlerquelle, 475 DINT_VALUE_TO_BOOL, 316 CONCAT_DATE_TOD, 320 Download ControlPanelTask, 144...
  • Seite 583 Index bei Meldungsprogrammierung, 384 System-FBs, 422 Ebenenüberlauf, 197 Flipflop setzen, 419 Überwachung, 199 followingAxis, 76 effectiveTaskruntime, 199 followingObjectType, 76 Effiziente Programmierung, 481 Formelobjekt, 39 Einmalige Programmdateninstanziierung, 251 FPU-Exception, 101 Compilerschalter, 459 Freilaufende Tasks, 144 Einsatzbereich, 20 Funktion Einschaltverzögerung (System-FB), 431 Fehlerquellen beim Aufruf, 474 END_SYNC Kommunikations-, 401...
  • Seite 584 Index Technologieobjekte, 75 InputSynchronousTask_1, 165, 246 Laden TaskStartInfo, 107 CPU/Antriebsgerät, 453 InputSynchronousTask_2, 165, 246 Daten von Festplatte auf Karte, 470 TaskStartInfo, 107 ins Dateisystem, 470 Instanziierung, 27, 29 Projekt ins PG, 471 INT#MAX, 494 Lageregler-Takt, 189 INT#MIN, 494 Laufzeitmodell, 150 INT_TO_BYTE, 317 LIMIT, 339 INT_TO_DINT, 317...
  • Seite 585 Index übersetzen, 451 ProTool, 413 Prozessalarme, 118 signalisierend, 100 Pufferverwaltung still, 100 AlarmS-Meldungen, 385 NaNq, 100 Puls (System-FB), 430 NaNs, 100 PWMsynchronousTask, 165, 246 Nocken, 38, 76 TaskStartInfo, 107 Nockenspur, 38 PWM-Takt, 190 Numerische Standardfunktionen, 302 R_TRIG, 422 Offline-Modus, 18 REAL_TO_DINT, 317 Online-Modus, 18 REAL_TO_DWORD, 317...
  • Seite 586 Definition, 65 SIMOTION Gerät Kommunikation mit Abfrage des Befehls-/ Bearbeitungsstatus; SIMATIC S7 Gerät, 404 Systemfunktion: Rückgabewerte;, 83 SIMOTION P350, 24 Systemfunktionsbausteine SIMOTION SCOUT Engineering System, 16 Definitionen, 419 SIN, 304 Übersicht, 417 SINT#MAX, 494 SystemInterruptTasks, 144, 171 SINT#MIN, 494 Systemtakt...
  • Seite 587 Index Taktsynchrone Datenbearbeitung, 214 TaskStartInfo (TSI), 200 Taktsynchrone I/O-Verarbeitung, 211 Tasksteuerung, 187 Taktsynchronität TControl Klemme - Klemme, 221 Technologiepaket, 28 TAN, 304 Tdp, 215 Task Tdx, 215 BackgroundTask, 158, 246 TechnologicalFaultTask, 173, 246 ExecutionFaultTask, 174 TaskStartInfo, 107 Initialisierung lokaler Variablen, 249 Technologieobjekt, 26, 29 IPOsynchronousTask, 168 Datentypen, 75...
  • Seite 588 Index TimeFaultTask, 173, 246 TSI#logBaseAdrIn, 113 TaskStartInfo, 107 TSI#logBaseAdrOut, 113 TimerInterruptTask, 161 TSI#logDiagAdr, 113 TimerInterruptTasks, 144 TSI#shutDownInitiator, 114 TaskStartInfo, 106 TSI#startTime, 106, 107, 109, 110, 114 To, 215 TSI#taskId, 107, 110 TO, 26 TSI#toInst, 108 TO#NIL, 76, 90, 495 Typumwandlungsfunktionen, 315 TOD#MAX, 495 TOD#MIN, 495 TOF, 432...
  • Seite 589 Index Warte auf Bedingung, 148 Zeitaufteilung einstellen, 203 in der Round-Robin-Ablaufebene, 201 Zeitgesteuerte Tasks, 144 Zeittypen Konvertierungen, 320 Zeitüberlauf, 197, 474 Überwachung, 199 Zeitüberwachung, 200 Zyklische Programmabarbeitung beeinflussen, 264 bestimmen, 248 Status der Task, 254 Zeitüberschreitung, 474 Zyklische Tasks, 144 Zykluszeit Überwachung, 200 Basisfunktionen...
  • Seite 590 Basisfunktionen Funktionshandbuch, 05/2009...
  • Seite 591 Basisfunktionen Funktionshandbuch, 05/2009...

Inhaltsverzeichnis