Herunterladen Inhalt Inhalt Diese Seite drucken
Inhaltsverzeichnis

Werbung

Antriebstechnik \ Antriebsautomatisierung \ Systemintegration \ Services
Handbuch
plus®
Positionierung und Ablaufsteuerung IPOS
Ausgabe 11/2009
11645407 / DE

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für SEW IPOS plus

  • Seite 1 Antriebstechnik \ Antriebsautomatisierung \ Systemintegration \ Services Handbuch plus® Positionierung und Ablaufsteuerung IPOS Ausgabe 11/2009 11645407 / DE...
  • Seite 2 SEW-EURODRIVE—Driving the world...
  • Seite 3: Inhaltsverzeichnis

    Inhaltsverzeichnis Inhaltsverzeichnis Allgemeine Hinweise ..................14 Aufbau der Sicherheitshinweise..............14 Mängelhaftung ..................15 Haftungsausschluss.................. 15 Urheberrechtsvermerk ................15 Sicherheitshinweise..................16 Allgemein ....................16 Bestimmungsgemäße Verwendung ............17 Zielgruppe ....................17 Fehlprogrammierung................. 17 Systembeschreibung..................18 Einführung....................18 3.1.1 Umfang dieser Dokumentation ..........18 3.1.2 Programmerstellung ..............
  • Seite 4 Inhaltsverzeichnis Interrupts....................45 5.5.1 Beispiel ..................46 ® Interrupts bei MOVIDRIVE A und B ............46 5.6.1 Aktivierung des Interrupts ............46 5.6.2 Fehler-Interrupt ................46 5.6.3 Touch-Probe-DI02 Interrupt............47 5.6.4 Timer0-Interrupt ................. 48 ® Variablen-Interrupts bei MOVIDRIVE B ..........49 5.7.1 Aufruf des Variablen-Interrupts..........
  • Seite 5 Inhaltsverzeichnis Nockenschaltwerke ................... 84 6.8.1 Standardnockenschaltwerk............85 6.8.2 Erweitertes Nockenschaltwerk........... 89 Wegerfassung über binäre Eingänge.............. 96 Arten von Einbaugebern ................96 Prinzip der Wegerfassung................. 96 ® Wegerfassung mit MOVIDRIVE B ............97 ® Wegerfassung mit MOVITRAC B............98 Wegerfassung mit MQx ................99 7.5.1 Näherungsgeberauswertung .............
  • Seite 6 Inhaltsverzeichnis 11.3 Ablaufsteuerung..................121 11.4 Digitale Ein- und Ausgänge ..............121 11.5 Werte der Variablen DIAG11 beim Fehler IPOS ILLOP ......122 P9xx IPOS-Parameter ..................123 12.1 P90x IPOS Referenzfahrt ............... 123 12.1.1 P900 Referenzoffset ..............123 12.1.2 P901 Referenzdrehzahl 1 ............124 12.1.3 P902 Referenzdrehzahl 2 ............
  • Seite 7 Inhaltsverzeichnis 12.6 P95x Absolutwertgeber (SSI)..............138 12.6.1 P950 Gebertyp................. 138 12.6.2 P951 Zählrichtung..............138 12.6.3 P952 Taktfrequenz ..............139 12.6.4 P953 Positionsoffset ..............139 12.6.5 P954 Nullpunktoffset..............139 12.6.6 P955 Geberskalierung ............. 139 12.6.7 P956 Baudrate CAN-Geber ............. 140 ® 12.7 P96x IPOSplus Modulofunktion ............
  • Seite 8 14.4 Verzeichnisse von include ..............179 14.5 #define ....................179 14.6 #undef ..................... 180 14.7 #declare ....................181 14.8 SEW-Standardstrukturen ................ 182 14.9 Anwenderdefinierte Strukturen ............... 184 14.10 long ......................186 14.11 initial long ....................186 14.12 #pragma ....................187 14.13 Erläuterung zur const.h und io.h / constb.h und iob.h......
  • Seite 9 Inhaltsverzeichnis Compiler – Funktionen ................... 204 17.1 Anwenderdefinierte Funktionen .............. 204 17.2 Befehlsübersicht Standardfunktionen ............. 205 17.2.1 Bit-Standardfunktionen ............205 17.2.2 Kommunikations-Standardfunktionen........206 17.2.3 Positionier-Standardfunktionen..........206 17.2.4 Programm-Standardfunktionen..........206 17.2.5 Setz-Standardfunktionen ............207 17.2.6 Spezielle Geräte-Standardfunktionen........207 17.3 Standardfunktionen................. 208 17.3.1 _AxisStop.................
  • Seite 10 Inhaltsverzeichnis 18.3 Abfrage von Bits und Eingangsklemmen ..........248 18.3.1 Testen von Einzelbits............... 248 18.3.2 Testen mehrerer Bits ............... 248 18.4 Flankenabfrage ..................249 18.4.1 Beispiel 1 ................. 249 18.4.2 Beispiel 2 ................. 251 18.5 Betrag einer Zahl ..................252 18.6 MoviLink-Befehl ..................
  • Seite 11 Inhaltsverzeichnis Assembler – Programmierung............... 288 22.1 Grundlagen ..................... 288 22.1.1 Programmkopf ................. 288 22.1.2 Task 1 / Task 2 / Task 3 ............288 22.1.3 Kommentare ................288 22.1.4 Programmverzweigungen............288 22.1.5 Unterprogrammtechnik ............288 22.1.6 Programmschleifen..............289 22.1.7 Positionierbefehle ..............289 22.1.8 Binäre / analoge Ein-/Ausgänge ..........
  • Seite 12 Inhaltsverzeichnis 23.6 Positionierbefehle ................... 323 23.6.1 Referenzfahrt GO0 ..............323 23.6.2 Absolutpositionierung GOA / Relativpositionierung GOR..325 23.7 Programmbefehle ................... 329 23.7.1 Programmende END ............... 329 23.7.2 Unterprogrammaufruf CALL ............ 329 23.7.3 Sprungbefehle JMP ..............330 23.7.4 Schleifenbefehle LOOP ............332 23.7.5 Keine Operation NOP / Kommentar REM / Rücksprung RET / TASK / TASK2 / Warten WAIT ..........
  • Seite 13 Inhaltsverzeichnis 24.4 Beispielprogramm "Tabellenpositionierung" ........... 372 24.4.1 Eigenschaften ................372 24.4.2 Einstellungen ................373 24.4.3 Eingangsklemmen ..............374 24.4.4 Ausgangsklemmen ..............374 24.4.5 Programmquellcode (mit Kommentaren)......... 375 Stichwortverzeichnis ..................378 Handbuch – IPOSplus®...
  • Seite 14: Allgemeine Hinweise

    Allgemeine Hinweise Aufbau der Sicherheitshinweise Allgemeine Hinweise Aufbau der Sicherheitshinweise Die Sicherheitshinweise dieser Betriebsanleitung sind folgendermaßen aufgebaut: Piktogramm SIGNALWORT! Art der Gefahr und ihre Quelle. Mögliche Folge(n) der Missachtung. • Maßnahme(n) zur Abwendung der Gefahr. Piktogramm Signalwort Bedeutung Folgen bei Missachtung Beispiel: GEFAHR! Unmittelbar drohende Gefahr...
  • Seite 15: Allgemeine Hinweise Mängelhaftung

    Grundvoraussetzung für einen sicheren Betrieb und für die Erreichung der an- gegebenen Produkteigenschaften und Leistungsmerkmale. Für Personen-, Sach- oder Vermögensschäden, die wegen Nichtbeachtung der Betriebsanleitungen entstehen, übernimmt SEW-EURODRIVE keine Haftung. Die Sachmängelhaftung ist in solchen Fällen ausgeschlossen. Urheberrechtsvermerk © 2009 – SEW-EURODRIVE. Alle Rechte vorbehalten.
  • Seite 16: Sicherheitshinweise

    Informationsbedarf wenden sich bitte SEW-EURODRIVE. plus® Die folgenden Sicherheitshinweise beziehen sich auf den Einsatz der IPOS Positi- onierung und Ablaufsteuerung. Berücksichtigen Sie auch die ergänzenden Sicherheits- hinweise in den einzelnen Kapiteln dieser Dokumentation und in den Dokumentationen der Geräte.
  • Seite 17: Bestimmungsgemäße Verwendung

    Der Anwender von IPOS ist eine qualifizierte Fachkraft, die in geeigneter Weise un- terwiesen wurde. SEW-EURODRIVE empfiehlt dem Anwender zusätzlich Produktschulungen zu den Ge- plus® räten und Motoren, die mit IPOS programmiert werden. Alle Arbeiten zur Installation, Inbetriebnahme und Instandhaltung der Geräte sowie Störungsbehebung an den Geräten sind von einer Elektrofachkraft auszuführen.
  • Seite 18: Systembeschreibung

    übergeordnete SPS in vielen Fällen erheblich entlastet, wenn nicht sogar ersetzt werden. Durch die Reduzierung der zentralen Steuerung bietet sich für die Kunden der SEW ein erhebliches Sparpotenzial an Hardware und an Aufwand für die elektrische Installation. Der Programmieraufwand wird auf SPS und Umrichtersteuerung aufgeteilt, allerdings müssen sich die Nutzer in das System einarbeiten.
  • Seite 19: Programmerstellung

    Applikationsmodule lösen eine typische Antriebsaufgabe, ohne dass Sie als Anwen- der ein Programm erstellen müssen. Anstelle zu programmieren, parametrieren Sie ein von SEW erstelltes und bewährtes Programm (Applikationsmodul). Sie sparen da- durch Zeit und benötigen nicht die in diesem Handbuch beschriebenen Programmier- kenntnisse.
  • Seite 20 Systembeschreibung ® Eigenschaften von IPOSplus • Absolutgeberverarbeitung. plus® • Im IPOS -Programm stehen 1024 32-Bit-Variablen zur Verfügung (siehe Technische Daten (Seite 25)). plus® • Mit IPOS hat man die Möglichkeit über Kommunikationsbefehle alle Umrichterparameter zu lesen und zu schreiben. • 2 Touch-Probe-Eingänge.
  • Seite 21 Systembeschreibung ® Eigenschaften von IPOSplus • Die Programmierung im Compiler bietet zusätzlich: – Programmerstellung in einer Hochsprache – Symbolische Variablennamen – Möglichkeit zur Erstellung von Programmmodulen, die Sie in anderen Projekten erneut verwenden können – Übersichtliche modulare und strukturierte Programmierung ist möglich –...
  • Seite 22: Systembeschreibung Steuerung Von Iposplus ® -Geräten

    Systembeschreibung ® Steuerung von IPOSplus -Geräten plus® Steuerung von IPOS -Geräten plus® IPOS -Geräte sind folgendermaßen steuerbar: • Steuerung über Geräte-Eingangsklemmen plus® • IPOS -Steuerwort auf "Systemvariable" H484 CTRL. WORD • RS-485-Schnittstelle • Feldbus-Schnittstelle • SBus (Systembus) 3.3.1 Aktive Steuerquelle plus®...
  • Seite 23 Technologie-Optionen / Applikationsmodule 3.4.2 Applikationsmodule Bei einem Applikationsmodul handelt es sich um ein von SEW entwickeltes und ge- schütztes Anwendenderprogramm, welches in den Umrichter geladen wird. Ein umfangreiches Paket aufeinander abgestimmter Funktionen, komfortablen Eingabemasken und eine einfache Benutzerführung erleichtern die Inbetriebnahme.
  • Seite 24: Systembeschreibung Technologie-Optionen / Applikationsmodule

    Systembeschreibung Technologie-Optionen / Applikationsmodule Übersicht über verfügbare Applikationsmodule Fliegende Säge 473369867 Interner Synchronlauf ISYNC ® (nur MOVIDRIVE B und MCH) 473374219 Rotatorisch Positionieren 473378571 Die intelligenten Applikationsmodule der Technologie-Option bieten Ihnen eine bisher nicht erreichte Funktionalität. Alle wichtigen Maschinendaten sind bestens zugänglich. Fehlerquellen sind praktisch ausgeschlossen, da nur die für die Anwendung erforder- lichen Parameter eingegeben werden müssen.
  • Seite 25: Systembeschreibung Technische Daten

    Systembeschreibung Technische Daten Technische Daten ® 3.5.1 MOVIDRIVE plus® Geberauflösung: IPOS arbeitet immer mit 4096 Inkrementen / Motorumdrehung X15, Motorgeber (Voraussetzung: Geberauflösung von 128, 512, 1024 oder 2048 Impulse / Motor- umdrehung (andere Geberauflösung ist nicht zulässig) oder Resolver) X14, externer Geber X62, Absolutwert-Geber (auch Absolutwert- ®...
  • Seite 26: Mqx

    Systembeschreibung Technische Daten 3.5.3 Geberauflösung: Das MQx-Modul hat keine Gebereingänge, unterstützt aber die Wegerfassung über binäre Eingänge (Zählereingang). Die Technischen Daten der binären Eingänge entnehmen Sie dem Kapitel "Weger- fassung über binäre Eingänge" (Seite 96) maximale Programmlänge / Programmspeicher: 4 kByte Befehlsabarbeitungszeit: Task 1: 1 Assembler-Befehl / ms Task 2: 2 Assembler-Befehle / ms...
  • Seite 27: Referenzdokumente

    Die nachfolgende Referenzliste gibt eine Übersicht über die Dokumente, auf die an den einzelnen Stellen verwiesen wird. Diese Dokumente sind nicht notwendig, um mit plus® IPOS zu programmieren, bieten aber zusätzliche Informationen. Sie finden alle Dokumente unter http://www.sew-eurodrive.de 3.6.1 Allgemeine Handbücher ® •...
  • Seite 28: Ipos-Variablen

    IPOS-Variablen Einführung IPOS-Variablen Einführung Die integrierte Positionierung und Ablaufsteuerung benutzt globale Variablen, die von allen Tasks und den Interrupts gemeinsam genutzt werden. Es gibt keine lokalen Vari- ablen, die nur in einer Task oder in einer Funktion deklariert sind. Alle Variablen (Seite 25) sind 32-Bit-Variablen, die bei Rechenoperationen und Verglei- chen als Ganzzahl mit Vorzeichen (Signed Integer) behandelt werden.
  • Seite 29: Übersicht Über Die Systemvariablen

    IPOS-Variablen Übersicht über die Systemvariablen Übersicht über die Systemvariablen Bestimmte IPOS-Variablen sind fest mit bestimmten Funktionen vorbelegt und werden als Systemvariablen (Seite 25) bezeichnet. Die symbolischen Namen sind im Compiler verfügbar, wenn am Programmanfang eine der folgenden Zeilen eingefügt ist: #include <constb.h>...
  • Seite 30 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler StatusWord / Mit dem Statuswort kann der Betriebszustand des Umrichters abgefragt werden. STAT.WORD Funktion bei Pegel "1" Funktion bei Pegel "1" Keine Funktion Imax-Meldung (P442) /Störung /Motorauslastung 1 Betriebsbereit /Motorauslastung 2 Endstufe ein /DRS Vorwarnung Drehfeld ein...
  • Seite 31 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler AnaOutpIPOS / Analogausgänge der Ein-/Ausgabekarte DIO11 nur SETZEN. ANA.OUT IP Der Wert der Variable H479 wird auf einen Analogausgang ausgegeben, wenn die zugehörige Klemme auf "IPOS-AUSGABE" programmiert ist. ® Bei MOVIDRIVE A und B wird dazu eine DIO11 benötigt, bei MCH und MCS / MCV / MCV 40A ist ein Aus- gang als Binärausgang oder Analogausgang programmierbar.
  • Seite 32 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler OutputLevel / Signalpegel der binären Ausgänge nur LESEN. OUTPUT LVL IPOS-Name DIO (+ DIO) DIO + DIP DIO + DIP + Feldbus ® Feldbus Feldbus MOVIDRIVE ® (MOVIDRIVE P63x wirkt auf DIO P63x wirkt auf DIP P873 Status- H521)
  • Seite 33 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler plus® ControlWord / IPOS -Steuerwort (Gerätefunktionen LESEN und SETZEN). plus® CTRL.WORD Das IPOS -Steuerwort kann unabhängig von der Betriebsart, Steuer- und Sollwertquelle immer verwendet plus® werden. Das IPOS -Steuerwort wird im Gerät mit den Klemmenfunktionen, dem Feldbus-Steuerwort und dem Steuerwort über die RS-485/RS-232 und dem SBus logisch ODER verknüpft.
  • Seite 34 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler WdogTimer / Zeit für Anwender-Watchdog LESEN und SETZEN. WD.TIMER Der Watchdog-Timer zählt abwärts bis 0. Der Befehl WATCHDOG ON (WDON) aktiviert den Timer und legt die Zykluszeit fest. Wertebereich: 0 ... 2 -1 ms.
  • Seite 35 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler SetpPosBus / Sollposition Bus LESEN. SP.POS.BUS Enthält die Sollposition, die über die Feldbusprozessdaten gesendet wird. Die Sollposition wird nur dann über- nommen, falls "POSITION LO" und "POSITION HI" in der PA-Datenbeschreibung programmiert ist (Parametergruppe P87_).
  • Seite 36 IPOS-Variablen Übersicht über die Systemvariablen ® Weiterhin sind bei MOVIDRIVE B folgende Variablen mit Funktionen belegt oder re- serviert: Name Beschreibung Compiler / Assembler reserviert CCount_MotOn C-Spur (Nullimpuls) Zählen für Motorgeber X15 aktivieren. 0 = Zähler ausgeschaltet / 1 = Zähler aktiviert CCount_ExtOn C-Spur (Nullimpuls) Zähler für externen Geber X14 aktivieren.
  • Seite 37 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler OutpLevelB / Signalpegel der binären Ausgänge nur LESEN. OUTPUTLVLB IPOS- DIO + DIP DIO + DIP + Feldbus ® MOVIDRIVE Name (+ DIO) Feldbus Feldbus P873 = ® (MOVIDRIVE Statuswort H482) DB00 DB00...
  • Seite 38 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler IPOS_Setp / IPOS-Sollwert, Stellgröße des PID-Reglers, wenn H540 =1. Wenn H540 = 0 oder 2 auch direkt vom Anwenderprogramm beschreibbar. IPOS_SETP H524 kann als Momentensollwert bzw. Drehzahl-Sollwert verwendet werden, wenn P100 Sollwertquelle = IPOS und P700 Betriebsart 1 = xxx&M-Regelung bzw.
  • Seite 39 IPOS-Variablen Übersicht über die Systemvariablen Name Beschreibung Compiler / Assembler PID_SetpMin / PID-Regler: Minimaler Ausgangswert der Stellgröße, H557 und P284 sind identisch PID.SETMIN -32000 (-32000) <= x <= 32000 (32000); Default: 0 a,min PID_SetpMax / PID-Regler: Maximaler Ausgangswert der Stellgröße, H558 und P285 sind identisch PID.SETMAX -32000 (-32000) <= x <= 32000 (32000);...
  • Seite 40: Task-Verwaltung Und Interrupts

    Task-Verwaltung und Interrupts Einführung Task-Verwaltung und Interrupts Einführung plus® IPOS kann mehrere Teilprogramme parallel bearbeiten. Ein Teilprogramm ent- spricht einer Task. Die folgenden Funktionen können Interrupts für Task 1 auslösen: • Timer0-Überlauf • Systemfehler / Gerätefehler • Touch-Probe DI02 ® MOVIDRIVE B kann Task 2 und Task 3 durch 4 weitere Interrupts unterbrechen, die durch den Vergleich mit einem Variablenwert ausgelöst werden.
  • Seite 41 Task-Verwaltung und Interrupts ® Task-Verwaltung bei MOVIDRIVE A und B ® Symbolleiste bei MOVIDRIVE 473926155 [1] = Status von Task 1: START = gestartet [2] = Status von Task 2: PSTOP = gestoppt [3] = Blitzsymbol zum Starten von Task 1 [4] = STOP-Symbol um die gesamte IPOS-Bearbeitung zu stoppen ®...
  • Seite 42 Task-Verwaltung und Interrupts ® Task-Verwaltung bei MOVIDRIVE A und B Die folgende Tabelle gibt einen Überblick über die Funktionen und Eigenschaften der Tasks und der Interrupts Task 1 Task 2 Task 3 (nur "Task1"-Inter- Variablen- ® MOVIDRIVE rupt Interrupt (nur ®...
  • Seite 43: Tasks Bei Movidrive ® A

    Schnelle, zeitkritische Vorgänge • Berechnungen • Beobachtung von Systemgrößen • Kommunikation mit den SEW-Bedienterminals • Zyklisches Kopieren von Variablen auf die Oszilloskop-Variablen H474, H475 • Aufbereitung der Prozessdaten des Feldbusses / SBus mit einer übergeordneten ® Steuerung oder anderen MOVIDRIVE plus®...
  • Seite 44: Task 3

    Schnelle, zeitkritische Vorgänge • Berechnungen • Beobachtung von Systemgrößen • Kommunikation mit den SEW-Bedienterminals • Zyklisches Kopieren von Variablen auf die Oszilloskop-Variablen H474, H475 • Aufbereitung der Prozessdaten des Feldbusses / SBus mit einer übergeordneten ® Steuerung oder anderen MOVIDRIVE plus®...
  • Seite 45: Beispiel

    5.4.4 Beispiel ® ® Ein MOVIDRIVE B positioniert einen Fahrantrieb. Eine SPS steuert das MOVIDRIVE über einen Feldbus. Ändern Sie einzelne Parameter mit SEW-Bediengeräten direkt am ® MOVIDRIVE Lösungsvorschlag: Task 1: Programmierung des Bewegungsablaufs Task 2: HMI-Kommunikation mit dem Bedienterminal Task 3: Feldbuskommunikation mit der SPS Je nach Anwendungsfall ist es wichtig, die zusätzlichen Befehle richtig zu verteilen:...
  • Seite 46: Beispiel

    Task-Verwaltung und Interrupts ® Interrupts bei MOVIDRIVE A und B 5.5.1 Beispiel Ein WAIT-1000-ms-Befehl in Task 1 wird nach 500 ms durch einen Interrupt unterbro- chen. Wird die Bearbeitung von Task 1 nach 175 ms fortgesetzt, beträgt die Restlaufzeit 325 ms. ®...
  • Seite 47: Touch-Probe-Di02 Interrupt

    Task-Verwaltung und Interrupts ® Interrupts bei MOVIDRIVE A und B Beispiel fnErrorInterrupt() H2++; while( !(StatusWord & 0b10)) //while-Schleife erst verlassen, wenn Antrieb fehlerfrei H1++; main() _SetInterrupt(SI_ERROR, fnErrorInterrupt); while(1) H0++; H0 wird inkrementiert, so lange der Umrichter fehlerfrei ist. Im Fehlerfall wird H2 um eins erhöht und H1 so lange inkrementiert bis der Umrichter fehlerfrei ist.
  • Seite 48: Timer0-Interrupt

    Task-Verwaltung und Interrupts ® Interrupts bei MOVIDRIVE A und B 5.6.4 Timer0-Interrupt Die Interrupt-Routine wird ein Mal vollständig durchlaufen, wenn der Timer abgelaufen (=0) ist. Nach einem Durchlauf wird ein Assembler-Befehl von Task1 bearbeitet, bevor geprüft wird, ob der Timer = 0 ist. Ist die Bedingung erfüllt, wird wieder in die Interrupt- Routine verzweigt.
  • Seite 49: Variablen-Interrupts Bei Movidrive ® B

    Task-Verwaltung und Interrupts ® Variablen-Interrupts bei MOVIDRIVE ® Variablen-Interrupts bei MOVIDRIVE ® ® In den MOVIDRIVE -B-Geräten können alle Interrupts von MOVIDRIVE A (siehe Ka- ® pitel "Task-Verwaltung bei MOVIDRIVE A und B") in identischer Form verwendet wer- den und zusätzlich bis zu 4 Variablen-Interrupts. Die Interrupts auf bestimmte Variablenwerte können z.
  • Seite 50: Ipos-Zugriff Auf Die Interne Interrupt-Steuerung

    Task-Verwaltung und Interrupts ® Variablen-Interrupts bei MOVIDRIVE HINWEIS Die Datenstruktur des Befehls ist bei der Systemfunktion beschrieben (Compiler – Funktionen / Assembler – Befehle). Das Interrupt-Verhalten kann zur Laufzeit dynamisch angepasst werden, indem entwe- • die Datenstruktur geändert wird und danach der Befehl erneut aufgerufen wird (notwendig, wenn sich z.
  • Seite 51 Task-Verwaltung und Interrupts ® Variablen-Interrupts bei MOVIDRIVE Beispiel gelöst im Notwendige Parametereinstellungen Compiler P620 = IPOS-Ausgang, P960 =z. B. KURZ /*=========================================== IPOS-Quelldatei ============================================*/ #include <constb.h> #include <iob.h> // notwendige Parametereinstellungen: // P620 = IPOS-Ausgang, P960 =z.B. KURZ VARINT hOPENvalve, hCLOSEvalve; fnTask3() { //Task 3 wird nur benötigt, damit VarInt.
  • Seite 52 Task-Verwaltung und Interrupts ® Variablen-Interrupts bei MOVIDRIVE // Interrupt-Routine und Task3 aktivieren _SetTask(ST3_START, fnTask3); _SetVarInterrupt( hOPENvalve,fnOPENvalve ); /*------------------------------------- Hauptprogramm-Schleife --------------------------------------*/ while(1) { //zyklischer Programmteil ... } //Ende while (1) } //Ende main() Beispiel gelöst im Notwendige Parametereinstellungen: Assembler P620 = IPOS-Ausgang, P960 =z. B. KURZ 474256139 Handbuch –...
  • Seite 53: Wegerfassung Und Positionierung

    Wegerfassung und Positionierung Geberauswertung Wegerfassung und Positionierung Geberauswertung ® Das MOVIDRIVE stellt verschiedene Möglichkeiten der Positionierung zur Verfügung: • externer Geber • Motorgeber (Inkrementalgeber/Resolver) ® • Hiperface -Geber (Absolutwertgeber) • SSI-Absolutwertgeber Zur Verarbeitung werden die Werte in Systemvariablen zur Verfügung gestellt. Die Anschlüsse für Motorgeber (X15) und externer Geber (X14) befinden sich auf der Steuerelektronik MxV..., MxS...
  • Seite 54: Motorgeber (X15)

    Wegerfassung und Positionierung Motorgeber (X15) plus® Die Positionswerte stehen der IPOS -Steuerung in den Variablen H509 bis H511 plus® immer zur Verfügung. Auch ohne eine Positionierung mit IPOS können an X14 und plus® X15 angeschlossene Impulsgeber erfasst und im IPOS -Programm weiter ver- arbeitet werden.
  • Seite 55 Wegerfassung und Positionierung Geberkombinationen Direkte Lageregelung mit Absolutwertgeber und Motorgeber plus® • Es erfolgt in IPOS eine direkte Lageregelung mit dem über DIP11 angeschlossenen SSI-Absolutwertgeber. • Am Motor ist auf jeden Fall ein Inkrementalgeber / Resolver / ® Hiperface (X15) zur Drehzahlrückführung notwendig. IPOS •...
  • Seite 56 Wegerfassung und Positionierung Geberkombinationen Lageregelung mit Motorgeber, plus® Verarbeitung des zweiten Gebers im IPOS -Programm als Leitgeber plus® • Es erfolgt in IPOS eine Lageregelung mit dem an X15 angeschlossenen Motorgeber. • Am Motor ist auf jeden Fall ein Geber zur Drehzahlrückführung notwendig.
  • Seite 57: Externer Geber (X14)

    Wegerfassung und Positionierung Externer Geber (X14) Externer Geber (X14) ® An Antriebsumrichter MOVIDRIVE A und B können an X14 folgende Geber ange- schlossen werden. Welchen Gebertyp ihr Gerät unterstützt, entnehmen Sie bitte dem Systemhandbuch oder der Betriebsanleitung. ® ® • Hiperface -Geber Typ AS1H, ES1H oder AV1H (nur MOVIDRIVE B oder MCH)
  • Seite 58 Wegerfassung und Positionierung Externer Geber (X14) Es gilt folgendes Blockschaltbild: P941 H511 P942 P943 H510 P944 476710667 = Positions-Rohwert des Gebers = Positions-Istwert für Rampengenerator und Lageregler P941 = Quelle Ist-Position P942 = Geberfaktor Zähler P943 = Geberfaktor Nenner P944 = Geberskalierung externer Geber H510 = Externer Geber mit Istwert auf Variable H511 = Motorgeber mit Istwert auf Variable Folgende Parameter sind für den externen Geber einzustellen:...
  • Seite 59 Wegerfassung und Positionierung Externer Geber (X14) HINWEIS Die Berechnung von P210 (P-Verstärkung Halteregler) bei der Inbetriebnahme ist für P941 = Motorgeber optimiert. Bei Verwendung von externem Geber oder Absolutwert- geber muss der Wert evtl. niedriger eingestellt werden. Für die Wegerfassung mit externem Geber an X14 gilt: •...
  • Seite 60: Ssi-Absolutwertgeber (Dip)

    Wählen Sie mit P950 Gebertyp den benutzten Geber aus. Die unterstützen Gebersys- teme entnehmen Sie der Beschreibung von P950. Der angeschlossene Typ wird aus der Liste der möglichen Geber ausgewählt. Andere Geber müssen auf ihre Einsetzbarkeit geprüft und von SEW-EURODRIVE freigegeben werden. Handbuch – IPOSplus®...
  • Seite 61: Motordrehsinn P35_ Einstellen

    Wegerfassung und Positionierung SSI-Absolutwertgeber (DIP) 6.5.3 2. Motordrehsinn P35_ einstellen Verfahren Sie den Antrieb mit geringer Drehzahl in positive Bewegungsrichtung (Defini- tion laut Anwendung). Zählt die Ist-Position P003 oder H511 aufwärts, dann kann der Parameter P350 "Drehrichtungsumkehr" unverändert bleiben (Anzeige der Ist-Position ®...
  • Seite 62: Nullpunktoffset P954 Einstellen

    Wegerfassung und Positionierung SSI-Absolutwertgeber (DIP) 6.5.7 6. Nullpunktoffset P954 einstellen Mit dem Nullpunktoffset wird einer bestimmten Position ein gewünschter Wert zugeord- net. Stellen Sie den Parameter ein wie im Kapitel IPOS-Parameter bei P954 beschrie- ben. 6.5.8 7. Geberfaktoren P942 und P943 einstellen Die Parameter werden zur internen Anpassung der Drehzahlregelung und für Überwa- chungsfunktionen in der DIP11 herangezogen.
  • Seite 63: Wegerfassung Und Positionierung Referenzieren

    Wegerfassung und Positionierung Referenzieren Stellen Sie maximal den halben Wert der berechneten Voreinstellung ein. Wenn P955 ≥ 32 eingestellt ist, sogar nur ein Viertel der berechneten Voreinstellung. Starten Sie ein plus® IPOS -Programm mit einer Positionierung zwischen zwei gültigen Positionen mit mäßiger Geschwindigkeit.
  • Seite 64 Sicherer Halt befindet. Durch geschickte IPOS -Programmierung ist es außer- dem möglich abstandskodierte Gebersysteme auszuwerten. Für Unterstützung in die- sen beiden Fälle wenden Sie sich bitte an das SEW-Servicepersonal. HINWEIS ® Bei Hiperface -Absolutwertgebern und SSI-Absolutwertgebern ist der Status "refe- renziert"...
  • Seite 65 Wegerfassung und Positionierung Referenzieren Bei der Entscheidung, ob auf Referenznocke oder Nullimpuls referenziert werden soll, sind folgende Punkte zu beachten: • Der Nullimpuls verschiebt sich, wenn der Motor getauscht wird. • Der Referenznocken könnte durch Alterung und Verschleiß oder Schalthysterese ungenau werden.
  • Seite 66 Wegerfassung und Positionierung Referenzieren Nachfolgend werden die verschiedenen Referenzfahrttypen mit verschiedenen Start- punkten des Antriebs mit Verfahrdiagrammen erläutert. Erklärung zu den Referenzfahrttyp-Bildern • nRef1 =Referenzdrehzahl 1 • nRef2 =Referenzdrehzahl 2 • Startpunkt des Antriebs – [1] zwischen Referenznocken und rechtem Hardware-Endschalter –...
  • Seite 67: Typ 0: Referenzfahrt Auf Nullimpuls

    Wegerfassung und Positionierung Referenzieren 6.6.1 Typ 0: Referenzfahrt auf Nullimpuls Referenzpunkt ist der erste Nullimpuls links von der Startposition der Referenzfahrt. Ein Referenznocken ist nicht erforderlich. Für die Referenzfahrt wird ausschließlich P902 Referenzdrehzahl 2 verwendet. Wird die Referenzfahrt über die positive Flanke am Eingang "REF.-FAHRT START" ge- startet, sollte P904 Referenzierung auf Nullimpuls = JA eingestellt sein.
  • Seite 68: Typ 2: Rechtes Ende Des Referenznockens

    Wegerfassung und Positionierung Referenzieren plus® Wird die Referenzfahrt über den IPOS -Befehl Go0 gestartet, wird je nach Argument "ZP" oder "CAM" auf die fallende Flanke des Referenznockens oder auf den Nullimpuls nach der fallenden Flanke des Referenznockens referenziert. nRef1 nRef2 RefOffCAM RefOffZP RefZP...
  • Seite 69: Typ 3: Endschalter Rechts

    Wegerfassung und Positionierung Referenzieren 6.6.4 Typ 3: Endschalter rechts Referenzpunkt ist der erste Nullimpuls links vom rechten Endschalter. Die Einstellung "linkes Ende des rechten Endschalters" hat keine praktische Bedeutung, da sich der Antrieb nach der Referenzfahrt in der Schalthysterese des Endschalters be- finden könnte und nach Ende der Referenzfahrt sporadisch der Fehler "29 Endschalter erreicht"...
  • Seite 70: Typ 5: Keine Referenzfahrt

    Wegerfassung und Positionierung Referenzieren plus® Wird die Referenzfahrt über den IPOS -Befehl Go0 gestartet, ist das Argument "ZP" einzustellen. nRef1 nRef2 RefOffZP RefZP LHWLS RHWLS RHWL 476760203 6.6.6 Typ 5: Keine Referenzfahrt plus® Referenzpunkt ist die aktuelle Position. Die Argumente im IPOS -Befehl Go0"ZP"...
  • Seite 71: Typ 7: Referenznocken Bündig Zum Linken Endschalter

    Wegerfassung und Positionierung Referenzieren Wird die Referenzfahrt über die positive Flanke am Eingang "REF.-FAHRT START" ge- startet, wird je nach Einstellung in P904 Referenzierung auf Nullimpuls auf die fallende Flanke des Referenznockens oder auf den Nullimpuls nach der fallenden Flanke des Referenznockens referenziert.
  • Seite 72: Typ 8: Ohne Freigabe

    Wegerfassung und Positionierung Referenzieren Der Referenznocken muss kurz vor oder genau mit dem linken Hardware-Endschalter beginnen und muss in den Endschalter hineinragen. Damit ist gewährleistet, dass wäh- rend der Referenzfahrt kein Hardware-Endschalter angefahren wird. nRef1 nRef2 RefOffCAM RefOffZP RefCAM RefZP LHWLS RHWLS 476764811...
  • Seite 73: Wegerfassung Und Positionierung Modulo-Funktion

    Wegerfassung und Positionierung Modulo-Funktion Modulo-Funktion 6.7.1 Einleitung Bei endlos in eine Richtung drehenden Anwendungen wie z. B. Rundtischen oder Transportketten kann die Modulo-Funktion aktiviert werden. Damit werden alle Positi- onsdaten zusätzlich im Bereich 0 bis (Modulo-Wert - 1 Inkr.) dargestellt. Ähnlich wie beim Zifferblatt einer Uhr springt, wenn der vom Anwender definierte Modulo-Wert (z.
  • Seite 74: Funktionsweise

    Wegerfassung und Positionierung Modulo-Funktion 6.7.2 Funktionsweise Bei aktivierter Modulo-Funktion werden Positionsvorgaben anstelle von Inkrementen an der Motorwelle in Abtriebseinheiten ausgedrückt. Beispiele für Abtriebseinheiten (GM = Motorgeber, GS = Streckengeber): • Rundtischanwendungen mit der Abtriebseinheit 360° entsprechen einer Rund- tischumdrehung. 476886155 •...
  • Seite 75 Wegerfassung und Positionierung Modulo-Funktion Die Ist-Position H455 wird nach folgendem Blockschaltbild berechnet: H509 H453 P941 Bit 1 MODULO P961 H455 H510 P962 P963 H456 H511 P961 x P963 476895243 P941 = Quelle Ist-Position P961 = Modulo Zähler P962 = Modulo Nenner P963 = Modulo Geberauflösung H509 = Aktuelle Ist-Position Absolutwertgeber H510 = Aktuelle Ist-Position externer Geber...
  • Seite 76 Wegerfassung und Positionierung Modulo-Funktion In der untenstehenden Abbildung ist der Zusammenhang zwischen der aktuellen Posi- plus® tion des IPOS -Gebers, z. B. des Motorgebers H511 sowie der Ist-Position in der Modulo-Darstellung dargestellt. Die Modulo-Istposition bewegt sich immer innerhalb der Abtriebseinheit z. B. von 0° (= 0 Inkremente) bis 360° (= 2 Inkremente).
  • Seite 77: Verfahrstrategien

    Wegerfassung und Positionierung Modulo-Funktion 6.7.3 Verfahrstrategien Bei aktivierter Modulo-Funktion können für das Positionieren verschiedene Verfahrstra- tegien eingestellt werden. Die Verfahrstrategie für das Referenzieren ist davon unab- hängig. Referenzieren Gestartet wird die Referenzfahrt wie bei ausgeschalteter Modulo-Funktion. Bei akti- vierter Modulo-Funktion, wird die Variable H455 MOD.ACTPOS referenziert. Ein angegebener Referenz-Offset P900 wird in der Skalierung Abtriebseinheit (2 360°) interpretiert.
  • Seite 78 Wegerfassung und Positionierung Modulo-Funktion Modulo kurzer Weg (Anmerkung: die Achse fährt bei MOD.TAGPOS = 120° nur dann nach links, wenn der Antrieb mindestens 1 Inkr. links von 300° steht, da 300° + 180° = 120° und 300° - 180° = 120°). Um also eine Achse, die bei 0°...
  • Seite 79 Wegerfassung und Positionierung Modulo-Funktion "links" ModuloMode "links" (P960=LINKS) Der Antrieb bewegt sich von der aktuellen Ist-Position H455 MOD.ACTPOS in Linksrich- tung auf die Zielposition H454 MOD.TAGPOS. Darstellbare Zielposition: H454 MOD.TAGPOS = - k × 360° + 0 ... 360° = - k × 2 + 0 ...
  • Seite 80: Projektierung

    KA47B Abtriebsdrehzahl [min Motordrehzahl [min 2000 Getriebeübersetzung i 104.37 Motortyp DY71S Die Zahnzahlen des Getriebes können SEW-Mitarbeiter für Sie aus der SEW-Projektie- rungsmappe (DriveNet) ablesen oder aus dem elektronischen Typenschild (nur bei ® Hiperface ) ausgelesen werden. Handbuch – IPOSplus®...
  • Seite 81 Wegerfassung und Positionierung Modulo-Funktion In diesem Beispiel wurden folgende Zahnzahlen entnommen: Z1 = 17 / Z2 = 74 / Z3 = 8 / Z4 = 33 / Z5 = 16 / Z6 = 93 477251979 Zur Ermittlung der SHELL-Parameter Modulo Zähler, Modulo Nenner sowie Modulo Ge- berauflösung muss folgende Berechnung durchgeführt werden: ×...
  • Seite 82 Wegerfassung und Positionierung Modulo-Funktion Kettenförderer mit 1. Schritt: Definition der Abtriebseinheit Träger Das vorherige Beispiel soll nun erweitert werden: An dem Getriebe ist ein Zahnrad befestigt, das eine Kette antreibt. An jedem 36. Ket- tenglied sind Materialträger montiert. 2. Schritt: Bestimmung der SHELL-Parameter Technische Daten Getriebetyp KA47B...
  • Seite 83: Häufig Gestellte Fragen

    Wegerfassung und Positionierung Modulo-Funktion 3. Schritt: Modulo-Darstellungsbereiches und maximalen Zielposition Überprüfung des Modulo-Darstellungsbereiches: Produkt aus Modulo Geberauflösung und Modulo Zähler muss < 2 (dezimal 2 147 483 648) sein. Modulo Zähler × Modulo Geberauflösung = 1021977 × 4096 = 4 186 017 792 Die Bedingung wird verletzt, die gewünschte Zielposition lässt sich nicht darstellen.
  • Seite 84: Nockenschaltwerke

    GETSYS-Befehl bezieht (Bit 31 = 0: Standardnockenschaltwerk und Bit 31 = 1: Erweitertes Nockenschaltwerk). Sind im vorliegenden Gerät beide Nockenschaltwerke möglich, empfiehlt SEW zu- nächst das erweiterte Nockenschaltwerk zu benutzen. Es ist auch möglich beide No- ckenschaltwerke parallel zu verwenden. Ausgänge beider Nockenschaltwerke können auf demselben Binärausgangswort ausgegeben werden, indem z.
  • Seite 85: Wegerfassung Und Positionierung Nockenschaltwerke

    Wegerfassung und Positionierung Nockenschaltwerke 6.8.1 Standardnockenschaltwerk Eigenschaften des • Es ist bei allen Betriebsarten mit Geber verfügbar. Standardnocken- • Deklaration Aufruf einer Datenstruktur wird Ausgang schaltwerks Totzeitkompensation abhängig von 4 Positionsfenstern (definiert durch einen linken und rechten Grenzwert) gesetzt bzw. rückgesetzt. •...
  • Seite 86 Nockenschaltwerk und bildet den Status eines Ausgangs mit der Daten- struktur ab der Variable Hxx Datenstruktur des Standardnocken- Variable Symbolischer Name Kurzbeschreibung schaltwerks des Elements in der SEW-Standard-Struk- GSCAM.SourceVar Nummer der Bezugsvariable für die Nockenberechnung, typische Bezugsvariablen sind: • H511 (Ist-Position Motorgeber) • H510 (Ist-Position SSI-Geber) •...
  • Seite 87 Wegerfassung und Positionierung Nockenschaltwerke Beispiel Ein Fahrantrieb hat einen Verfahrbereich von 10 Motorumdrehungen. Ein Ausgang soll gesetzt werden, wenn der Antrieb sich in der ersten, in der letzten Mo- torumdrehung oder in einem Bereich von +/- 10° um die Mitte des Verfahrbereichs be- findet.
  • Seite 88 Wegerfassung und Positionierung Nockenschaltwerke Beispiel gelöst im /*============================================= Compiler IPOS-Quelldatei ===============================================*/ #include <const.h> #include <io.h> //Deklaration GSCAM Cam1, Cam2; //Deklaration von Nockenausgang 1 und 2 /*============================================= Hauptfunktion (IPOS-Eintrittsfunktion) ===============================================*/ main() /*------------------------------------- Initialisierung --------------------------------------*/ Cam1.SourceVar = numof(ActPos_Mot); // Bezugsgröße Motorgeber Cam1.DbPreCtrl = 0; // keine Totzeitkompensation Cam1.DestVar = numof(StdOutpIPOS);...
  • Seite 89: Erweitertes Nockenschaltwerk

    Wegerfassung und Positionierung Nockenschaltwerke Beispiel gelöst im (Der SET-Befehl ist nicht notwendig und dient nur zur Veranschaulichung) Assembler 477809419 6.8.2 Erweitertes Nockenschaltwerk Eigenschaften des • Es ist ab MDx_A / MCV / MCS / MCF Software Version .14, MCH ab Software erweiterten Version .13 und MDx_B verfügbar.
  • Seite 90 Wegerfassung und Positionierung Nockenschaltwerke • Änderungen in der Datenstruktur werden jede 1 ms übernommen. Damit können die Grenzen eines Positionsfensters während der Laufzeit verändert werden und werden im nächsten Bearbeitungszyklus der Nocke berücksichtigt. Damit ist es möglich bei einer reversierenden Achse auf der Rückfahrt andere Nockenbereiche zu verwenden als bei der Hinfahrt.
  • Seite 91 Wegerfassung und Positionierung Nockenschaltwerke SEW-Standard- Struktur Variable Name Beschreibung GSCAM_EXT CamState Bit 31 muss immer gesetzt sein ansonsten ist die Abarbeitung in der Firmware gestoppt. • 0x8000 0000 = Funktion inaktiv, die Ausgänge der Nocken werden nicht mehr neu gebildet, gesetzte Ausgänge bleiben erhalten und werden erst nach einem Reset oder Spannung Aus/Ein gelöscht.
  • Seite 92 Wegerfassung und Positionierung Nockenschaltwerke Struktur CAM_EXT_OUT Variable Name Beschreibung DeadTime Totzeitkompensation für diesen Kanal (-500 ms ... 0 ... +500 ms), zur Kompensation der Totzeit eines am Umrichter angeschlossenen Aktors. Abhängig von der Änderungsgeschwindigkeit des Wertes der Bezugs- variable wird der Ausgang so vorgesteuert, dass der Ausgang um diese Zeit vorher geschaltet wird.
  • Seite 93 Wegerfassung und Positionierung Nockenschaltwerke Beispiel Ein Modulo-Rundtisch hat 2 Bearbeitungsstationen, die um 180° versetzt angeordnet sind. Er wird über ein Getriebe mit der Übersetzung 5:1 angetrieben. Ein Ausgang soll gesetzt werden, wenn der Antrieb sich im Bereich der Stationen +/-5° befindet. (Anmerkung: bei aktiver Modulo-Funktion wird eine Lastumdrehung von 360°...
  • Seite 94 Wegerfassung und Positionierung Nockenschaltwerke Beispiel gelöst im Compiler ====================================================================== Programm-Gerüst für Applikationen mit der erw. Nockenfunktion ====================================================================== #include <const.h> #include <io.h> // Variablenstruktur für Nockenschaltwerk wird extern in *.h definiert #include <camdef.h> CamStructure CamData0; ControlStructure MyCamControl; /*============================================= Hauptfunktion (IPOS-Eintrittsfunktion) ===============================================*/ main() /*------------------------------------- Initialisierung...
  • Seite 95 Wegerfassung und Positionierung Nockenschaltwerke Beispiel gelöst im Assembler 477835787 Handbuch – IPOSplus®...
  • Seite 96: Wegerfassung Über Binäre Eingänge

    EI71 ES16 NV26 (Näherungsgeber) • Sie können auch einen, von der SEW-Empfehlung abweichenden Geber einsetzen, beachten Sie dazu den folgenden Hinweis: HINWEIS Wenn Sie einen Geber mit zu hoher Auflösung verwenden, kann das dazu führen, dass dieser bei Nenndrehzahl des Motors nicht mehr korrekt ausgewertet wird.
  • Seite 97: Wegerfassung Über Binäre Eingänge Wegerfassung Mit Movidrive

    = Systemvariable plus® IPOS = IPOS -Programm ® Wegerfassung mit MOVIDRIVE ® SEW-EURODRIVE empfiehlt für das MOVIDRIVE B den Einbaugeber EI76. ® Die binären Eingänge (Zählereingänge) des MOVIDRIVE B haben die folgenden tech- nischen Daten: Binäre Eingänge Gebersignale (zwei Spuren)
  • Seite 98: Wegerfassung Mit Movitrac ® B

    MOVITRAC B: Klemme X12:4 (DI03) Bezugspotenzial GND auf PE-Potenzial ® SEW-EURODRIVE empfiehlt für das MOVITRAC B den Einbaugeber EI7C. Um den Einbaugeber zu verwenden, gehen sie folgendermaßen vor: ® 1. Verbinden Sie den Geber mit den digitalen Eingängen des MOVITRAC B.
  • Seite 99: Wegerfassung Mit Mqx

    Wegerfassung über binäre Eingänge Wegerfassung mit MQx Wegerfassung mit MQx 7.5.1 Näherungsgeberauswertung Mit den MQx-Modulen lässt sich eine einfache Positionierung realisieren, die auf dem Näherungsgebersystem NV26 basiert. Die beiden Initiatoren liefern 24 Winkelinformati- plus® onen pro Umdrehung, die von der MQx gezählt werden und auf der IPOS -Variablen H511 (ActPos_Mot) als Positionswert zur Verfügung gestellt werden.
  • Seite 100: Wegerfassung Mit Einbaugeber

    4 kHz Anschluss Spur A Anschluss Spur B SEW-EURODRIVE empfiehlt für das MQx-Modul den Einbaugeber EI76. Um den Einbaugeber zu verwenden, gehen sie folgendermaßen vor: 1. Verbinden Sie den Geber mit den digitalen Eingängen des MQx-Modul. Verwenden Sie dazu die Eingänge DI0 und DI1.
  • Seite 101: Wegerfassung Über Binäre Eingänge Wegerfassung Mit Mqx

    Wegerfassung über binäre Eingänge Wegerfassung mit MQx 7.5.6 Counter Die MQx-Module besitzen einen Counter, der wahlweise auf DI0 oder DI1 gelegt wer- den kann. Gezählt werden die positiven Flanken bis zu einer maximalen Eingangsfre- quenz von 4 kHz. Für die Aktivierung der Counterfunktion wird der entsprechende Ein- gang auf „MQX GEBER IN“...
  • Seite 102: Iposplus ® Und Feldbus

    ® IPOSplus und Feldbus Einführung plus® IPOS und Feldbus Einführung Über Feldbus, SBus oder RS-485 können zwischen einer SPS und den Teilnehmern Ein-/Ausgangssignale, zyklische Prozessdaten und azyklisch Parameter ausgetauscht werden. Die von den Geräten unterstützten Kommunikations-Schnittstellen entnehmen Sie dem entsprechenden Systemhandbuch. Eine genauere Beschreibung der Kommunikations-Schnittstellen befindet sich in dem Handbuch "Kommunikation und Feldbus-Geräteprofil“...
  • Seite 103: Binäre Eingänge Und Ausgänge

    ® IPOSplus und Feldbus Binäre Eingänge und Ausgänge Binäre Eingänge und Ausgänge ® Ist in einem MOVIDRIVE keine DIO und keine DIP gesteckt, können die Bits im Steu- plus® erwort 2 / Statuswort 2 im IPOS -Programm folgendermaßen angesprochen wer- den: •...
  • Seite 104: Zyklische Anwenderspezifische Prozessdaten

    ® IPOSplus und Feldbus Zyklische Prozessdaten 8.3.2 Zyklische anwenderspezifische Prozessdaten Der Anwender hat die Möglichkeit die Bedeutung der zyklischen Prozessdaten selbst zu wählen. Hierzu ist die Prozessdaten-Konfiguration mit der Parametereinstellung PO- Data für die Ausgangsdaten bzw. PI-Data für die Eingangsdaten zu belegen. Die Pro- ®...
  • Seite 105: Azyklische Kommunikation

    ® IPOSplus und Feldbus Azyklische Kommunikation Assembler H320 H332 H321 M1 :GETSYS H320 = PO-DATA H300 = H324 H300 & FFFF H301 = H323 H301 & FFFF H300 + H301 H300 << 16 H354 = H300 H300 = 3600 H300 * H355 H300 / 65536...
  • Seite 106: Besonderheiten Bei Der Kommunikation Über Rs-485

    Wegen der geringen Übertragungsgeschwindigkeit sollte bei MOVIDRIVE ® MOVITRAC B die Nutzung der RS-485-Schnittstelle auf azyklische (Parameter-) Kom- munikation beschränkt werden. Feldbus-Steuerworte und Feldbus-Statusworte Die Belegung der Steuer- und Statusworte ist ausführlich im Kapitel "SEW-Geräteprofil" im Handbuch "Kommunikation und Feldbus-Geräteprofil" beschrieben. Handbuch – IPOSplus®...
  • Seite 107: Iposplus ® Und Synchronisierte Bewegungen

    ® IPOSplus und synchronisierte Bewegungen Einführung plus® IPOS und synchronisierte Bewegungen Einführung ® Für MOVIDRIVE und MOVITRAC B ist ein Master-Slave-Betrieb möglich. ® Darüberhinaus ist es mit MOVIDRIVE möglich mehrere Geräte noch genauer zu syn- chronisieren, z. B. für Anwendungen mit folgenden Funktionen: •...
  • Seite 108: Aktivieren Und Deaktivieren Der Funktion Freilauf

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte 9.3.1 Aktivieren und Deaktivieren der Funktion Freilauf Über die Systemvariable H476 DRS CTRL. können die zwei programmierbaren Aus- gänge der DRS11 gesetzt und zurückgesetzt werden. Funktion Freilauf: DRS11B EINGØ..5 DCOM V024 AUSGØ..1 DGND DC 24 V H476: DRS_CTRL.
  • Seite 109: Iposplus ® Und Synchronisierte Bewegungen Synchronlauf Mit Drs-Optionskarte

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte 9.3.2 DRS11B Nullpunkt setzen plus® Mittels IPOS kann der Winkelversatz der DRS11 zurückgesetzt werden, ohne dass es externer Signale bedarf. Dazu wird die Systemvariable H484 CTRL. WORD verwendet. Das Zurücksetzen der Winkeldifferenz zwischen Master und Slave kann an den Status- LEDs der DRS-Karte beobachtet werden.
  • Seite 110 ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte Programmbeispiel plus® mit IPOS /*================================================================== Compiler IPOS-Quelldatei ==================================================================*/ #include <const.h> #include <io.h> /*----- Definition Eingänge --------------------------------------*/ #define E_Freilauf DI10 // Eingang DI10 #define E_NullpunktSetzen DI11 // Eingang DI11 /*----- Definition Ausgänge --------------------------------------*/ #define A_DRS_AUSG0 0 // Ausgang DRS X40:9 /*----- Definition Steuerbits im IPOS Control Wort ---------------*/ #define _DRS_NullpunktSetzen...
  • Seite 111: Aktivieren Und Deaktivieren Der Funktion Offset

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte 9.3.3 Aktivieren und Deaktivieren der Funktion Offset Über die Systemvariable DRS CTRL. H476 können die zwei programmierbaren Aus- gänge der DRS11 gesetzt und zurückgesetzt werden. Verdrahtungsbeispiel Offset: DRS11B EINGØ..5 DCOM V024 AUSGØ..1 DGND DC 24 V Sync...
  • Seite 112 ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte Voraussetzung Über eine Kabelverbindung der Klemme X40:10 auf X40:2 (Offset1) kann über plus® IPOS ein Positionsoffset aufgeschaltet werden. Befehlsfolge Setzten des Antriebs in die Funktion "Offset1": Slave-Antrieb versetzt seine Position Assembler zum Master um den Wert des Offset1. BSET H476.1 = 1 Zurückschalten der Ausgangsklemme: Slave-Antrieb fährt wieder auf die vorherige Po- sition zum Master.
  • Seite 113: Umschaltung Zwischen Positionierung Und Synchronlauf

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte 9.3.4 Umschaltung zwischen Positionierung und Synchronlauf Die Funktion "Freilauf" ermöglicht ein drehzahlgeregeltes Abkoppeln vom Synchronlauf. Allerdings kann der Antrieb in dieser Funktion nicht positioniergeregelt eine feste Posi- tion anfahren. plus® Dazu ist die Umschaltung in die Betriebsart Positionierung (IPOS ) notwendig.
  • Seite 114 ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit DRS-Optionskarte /*==================================================================== IPOS-Quelldatei ====================================================================*/ #include <const.h> #include <io.h> /*----- Definition Eingänge ------------------------------------*/ #define E_Freilauf DI10// Eingang DI10 #define E_NullpunktSetzen DI11 // Eingang DI11 #define E_Umschalt_Pos_Sync DI12 // Eingang zur Umschaltung zwischen // Positionierung und Synchronlauf // DI 12 = 1 Positionierung / // DI 12 = 0 Synchronlauf /*----- Definition Ausgänge -------------------------------------*/...
  • Seite 115: Synchronlauf Mit Technologie-Option "Interner Synchronlauf

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit Technologie-Option "Interner Synchronlauf" /*=================================================================== Hauptfunktion (IPOS-Eintrittsfunktion) ===================================================================*/ main() if( E_Freilauf ) Freilauf_Ein(); else Freilauf_Aus(); if( E_NullpunktSetzen ) DRS_Nullpunkt(); if( E_Umschalt_Pos_Sync ) Aktiviere_IPOS(); _GoAbs( GO_NOWAIT,Zielposition ); else if ( !E_Freilauf ) Aktiviere_Synchronlauf(); Synchronlauf mit Technologie-Option "Interner Synchronlauf" Beim internen Synchronlauf handelt es sich um eine reine Firmware-Lösung, mit der mehrere Achsen winkelsynchron betrieben werden können.
  • Seite 116: Synchronlauf Mit Technologie-Option "Kurvenscheibe

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit Technologie-Option "Kurvenscheibe" plus® • IPOS -Variablen ab H360 bis H450 sind für den Synchronlauf reserviert und dürfen vom Anwendungsprogramm nicht benutzt werden, siehe auch Kapitel "Übersicht über die Systemvariablen" (Seite 29). plus® • Die Steuerung des Synchronlaufs erfolgt über IPOS -Variablen innerhalb eines plus®...
  • Seite 117: Voraussetzungen

    ® IPOSplus und synchronisierte Bewegungen Synchronlauf mit Technologie-Option "Kurvenscheibe" 9.5.1 Voraussetzungen Die Kurvenscheibe stellt folgende Anforderungen an das Antriebssystem: • Geberrückführung • Betriebsart: "CFC" oder "Servo" ... & IPOS plus® • IPOS -Variablen ab H370 bis H450 sind für den Synchronlauf reserviert und sollten vom Anwendungsprogramm nicht benutzt werden (siehe auch Kap.3.2 "Übersicht über die Systemvariablen").
  • Seite 118: Besonderheiten Bei Iposplus ® Für Movitrac ® B

    ® ® Besonderheiten bei IPOSplus für MOVITRAC Voraussetzungen plus® ® Besonderheiten bei IPOS für MOVITRAC 10.1 Voraussetzungen ® Die Gerätereihe MOVITRAC B ist sowohl als Standardgerät als auch als Technologie- ® gerät bestellbar. Im Unterschied zu MOVIDRIVE B muss beim Standardgerät plus®...
  • Seite 119: Funktionalität

    ® ® Besonderheiten bei IPOSplus für MOVITRAC Funktionalität 10.2 Funktionalität ® plus® ® Prinzipiell hat das MOVITRAC B IPOS die selbe Funktionalität wie MOVIDRIVE B in der Betriebsart VFC. Hinzu kommen die folgenden Einschränkungen: ® • Einschränkungen gegenüber dem MOVIDRIVE B in Bezug auf den Befehlsumfang •...
  • Seite 120: Besonderheiten Bei Iposplus ® Für Mqx

    ® Besonderheiten bei IPOSplus für MQx Einleitung plus® Besonderheiten bei IPOS für MQx 11.1 Einleitung Die Module der MQx-Baureihe ermöglichen, wie die MFx-Module, eine kostengünstige ® Feldbus-Schnittstelle der MOVIMOT -Antriebe. Zusätzlich sind die MQx-Module mit Steuerungsfunktionalität ausgestattet, die es Ihnen erlaubt, das Verhalten des Antriebs auf externe Vorgaben über den Feldbus und die integrierten I/Os weitgehend selbst zu bestimmen.
  • Seite 121: Start Der Programmier-Tools

    ® Besonderheiten bei IPOSplus für MQx Start der Programmier-Tools 11.2 Start der Programmier-Tools Über die Diagnose- und Programmierschnittstelle unter der Verschraubung auf der Vor- derseite der MQx-Module haben Sie Zugriff auf die Feldbus-Schnittstelle. • Verbinden Sie die serielle Schnittstelle Ihres PCs mit der Programmierschnittstelle der MQx.
  • Seite 122: Werte Der Variablen Diag11 Beim Fehler Ipos Illop

    ® Besonderheiten bei IPOSplus für MQx Werte der Variablen DIAG11 beim Fehler IPOS ILLOP 11.5 Werte der Variablen DIAG11 beim Fehler IPOS ILLOP plus® Als allgemeine Fehlermeldung wird bei einem Fehler im IPOS -Programm ein IPOS- ILLOP gemeldet. Zur genauen Fehleranalyse wird eine interne Fehlernummer an die Diagnose-Variable H469 (DIAG11) übergeben.
  • Seite 123: P9Xx Ipos-Parameter

    P9xx IPOS-Parameter P90x IPOS Referenzfahrt P9xx IPOS-Parameter GEFAHR! Quetschgefahr durch unbeabsichtigtes Anlaufen des Motors. Tod oder schwerste Verletzungen. • Verhindern Sie unbeabsichtigtes Anlaufen des Motors. • Beachten Sie, dass eine Veränderung dieser Parameter ohne Kenntnis des eventuell aktiven plus® IPOS -Programms unerwartete Verfahrbewegungen und ungewollte Belastungen des plus®...
  • Seite 124: P901 Referenzdrehzahl 1

    P9xx IPOS-Parameter P90x IPOS Referenzfahrt Der Referenz-Offset wird nach erfolgreich beendeter Referenzfahrt aktiv. HINWEIS ® Bei einer Referenzfahrt eines Antriebssystems mit Absolutwertgeber (HIPERFACE oder DIP) werden, je nach eingestellter Quelle Istposition durch die Referenzfahrt P905 Hiperface Offset X15 (Seite 126) / P947 Hiperface Offset X14 (Seite 136) oder DIP Off- set P953 Positionsoffset (Seite 139) neu berechnet und überschrieben.
  • Seite 125 P9xx IPOS-Parameter P90x IPOS Referenzfahrt • Typ 2: Rechtes Ende des Referenznockens – Erste Suchrichtung ist rechts – Referenzpunkt = Erster Nullimpuls oder fallende Flanke rechts vom Referenznocken – Maschinennullpunkt = Referenzpunkt + Referenz-Offset • Typ 3: Endschalter rechts – Erste Suchrichtung ist rechts –...
  • Seite 126: P904 Referenzierung Auf Nullimpuls

    P9xx IPOS-Parameter P90x IPOS Referenzfahrt 12.1.5 P904 Referenzierung auf Nullimpuls Einstellbereich: JA / NEIN plus® • JA: Die Referenzfahrt erfolgt auf den Nullimpuls des eingestellten IPOS Gebers. • NEIN: Die Referenzfahrt erfolgt auf der fallenden Flanke des Referenznockens. 12.1.6 P905 Hiperface Offset X15 Einstellbereich: –(2 –...
  • Seite 127: P91X Iposplus ® Verfahrparameter

    P9xx IPOS-Parameter ® P91x IPOSplus Verfahrparameter plus® 12.2 P91x IPOS Verfahrparameter 12.2.1 P910 Verstärkung X-Regler Einstellbereich: 0,1 – 0,5 – 32 plus® Einstellwert für den P-Regler des Lageregelkreises von IPOS . Hier wird in der Grundeinstellung der Wert von P210 P-Verstärkung Halteregler übernommen. 12.2.2 P911 / 912 Positionier-Rampe 1 / 2 Einstellbereich: 0,01 –...
  • Seite 128: P916 Rampenform

    P9xx IPOS-Parameter ® P91x IPOSplus Verfahrparameter 12.2.5 P916 Rampenform Mit diesem Parameter wird die Art der Positionier-Rampe festgelegt. Dies hat Einfluss auf den Drehzahl- bzw. Beschleunigungsverlauf während der Positionierung. HINWEIS Ist P702 Motorkategorie auf "Linear" eingestellt, werden die folgenden Rampenformen nicht unterstützt: •...
  • Seite 129 P9xx IPOS-Parameter ® P91x IPOSplus Verfahrparameter Rampenform Positionierverhalten POSITIONSINTERPOLATION Die von der externen Steuerung zyklisch gesendeten Positionsvorgaben 12 BIT werden interpoliert. Positionsauflösung: 1 Umdrehung entspricht 4096 Inkremente (12 Bit). • Positionsvorgabe über Prozessdaten: – Stellen Sie die P888 Synchronisationszeit SBus auf 5 ms oder 10 ms ein –...
  • Seite 130: P917 Rampenmode

    P9xx IPOS-Parameter ® P91x IPOSplus Verfahrparameter 12.2.6 P917 Rampenmode Einstellbereich: MODE 1 / MODE 2 Mit diesem Parameter wird die Verwendung der Positionierrampe 2 P912 bei eingestell- ter Rampenform LINEAR bestimmt. • P917 = MODE 1: Die Verzögerung zur Anfahrt der Zielposition (Zielbremsung) wird nur mit der Positionierrampe 2 P912 durchgeführt.
  • Seite 131: P92X Ipos-Überwachungen

    P9xx IPOS-Parameter P92x IPOS-Überwachungen 12.3 P92x IPOS-Überwachungen 12.3.1 P920 / P921 SW-Endschalter RECHTS / LINKS Einstellbereich: –(2 –1) – 0 – 2 –1 Mit den Software-Endschaltern kann der Anwender softwaremäßig die Zielvorgabe ein- grenzen, in dem Verfahrbefehle akzeptiert werden. Mit diesen beiden Parametern (Soft- ware-Endschalter) werden die Zielbereichsgrenzen festgelegt.
  • Seite 132: P93X Iposplus ® -Sonderfunktionen

    P9xx IPOS-Parameter ® P93x IPOSplus -Sonderfunktionen plus® 12.4 P93x IPOS -Sonderfunktionen 12.4.1 P930 Override Einstellbereich: EIN / AUS plus® Die Overridefunktion ermöglicht die Veränderung der im IPOS -Programm program- mierten Verfahrgeschwindigkeit der Positioniervorgänge im Bereich von 0 bis 150 % der jeweils programmierten Geschwindigkeit.
  • Seite 133: P939 Geschwindigkeit Task 2

    P9xx IPOS-Parameter ® P93x IPOSplus -Sonderfunktionen 12.4.6 P939 Geschwindigkeit Task 2 Einstellbereich: 0 – 9 zusätzliche Assemblerbefehle/ms Die Standardeinstellung für Task 2 ist 2 Assemblerbefehle/ms. Mit P939 kann die Ge- schwindigkeit um bis zu 9 zusätzliche Assemblerbefehle/ms erhöht werden. Die Res- sourcen für die Geschwindigkeitserhöhung teilt sich P939 mit P938, d.
  • Seite 134: P94X Iposplus ® -Geber

    P9xx IPOS-Parameter ® P94x IPOSplus -Geber plus® 12.5 P94x IPOS -Geber 12.5.1 P940 IPOS-Variablen Edit Einstellbereich: EIN / AUS plus® IPOS -Variablen Edit nur im Bediengerät DBG60B, nicht in SHELL. plus® Wird P940 = “EIN” gestellt, können die IPOS -Variablen verändert werden. 12.5.2 P941 Quelle Ist-Position Einstellbereich: Motorgeber (X15) / Ext.
  • Seite 135: P944 Geberskalierung Ext. Geber

    Die Anzahl der an X14 erfassten Impulse wird mit P944 multipliziert und dann auf H510 abgebildet. Der externe Geber muss immer weniger Impulse liefern als der Motorgeber. Sollte dies nicht möglich sein, halten Sie bitte Rücksprache mit SEW-EURODRIVE. 12.5.5 P945 Streckengeber Typ (X14) Einstellbereich: TTL / SIN/COS / HIPERFACE Geben Sie hier den verwendeten Gebertyp ein.
  • Seite 136: P946 Streckengeber Zählrichtung (X14)

    P9xx IPOS-Parameter ® P94x IPOSplus -Geber 12.5.6 P946 Streckengeber Zählrichtung (X14) Einstellbereich: NORMAL / INVERTIERT Legt die Zählrichtung des Streckengebers fest. Die Einstellung muss so erfolgen, dass die Zählrichtung von Motorgeber (X15) und Streckengeber (X14) übereinstimmen. 12.5.7 P947 Hiperface Offset X14 Einstellbereich: –(2 –...
  • Seite 137: P948 Automatische Gebertauscherkennung

    Klemme auf "Freigabe" programmiert, wird die Fehlermeldung F81 ausge- geben. SEW-EURODRIVE empfiehlt, bei Linearmotoren mit Motorgeber AL1H den Parame- ter P948 auf "AUS" einzustellen. Testen Sie nach einem Gebertausch das Antriebs- system mit reduzierter Geschwindigkeit und Kraft im Tippbetrieb.
  • Seite 138: P95X Absolutwertgeber (Ssi)

    P9xx IPOS-Parameter P95x Absolutwertgeber (SSI) 12.6 P95x Absolutwertgeber (SSI) ® Die DIP-Parameter werden ausführlich im Handbuch "MOVIDRIVE MDX61B Absolut- wert-Geberkarten DIP11B/DEH21B" beschrieben. Die Option DIP11B kann nicht mit ® MOVIDRIVE MDX61B der Baugröße 0 verwendet werden. 12.6.1 P950 Gebertyp Der an der Option DEH21B/DIP11B (X62) angeschlossene Absolutwertgeber wird aus- gewählt.
  • Seite 139: P952 Taktfrequenz

    P9xx IPOS-Parameter P95x Absolutwertgeber (SSI) 12.6.3 P952 Taktfrequenz Einstellbereich: 1 – 200 % Legt die Taktfrequenz fest, mit der die Absolutwertinformationen vom Geber an den Um- richter übertragen werden. Taktfrequenz = 100 % entspricht der Nominalfrequenz des Gebers, bezogen auf 100 m Leitungslänge. 12.6.4 P953 Positionsoffset Einstellbereich: –(2 –1) –...
  • Seite 140: P956 Baudrate Can-Geber

    P9xx IPOS-Parameter ® P96x IPOSplus Modulofunktion 12.6.7 P956 Baudrate CAN-Geber Einstellbereich: 125 kBaud / 250 kBaud / 500 kBaud / 1 MBaud Stellt die Baudrate des angeschlossenen CAN-Gebers ein. plus® 12.7 P96x IPOS Modulofunktion plus® Die IPOS -Modulofunktion dient zur Endlospositionierung, beispielsweise bei Rund- takttischen oder Kettenförderern.
  • Seite 141: P97X Ipos-Synchronisation

    Beachten Sie: Die Umrichter dürfen nur entweder von SBus1, SBus2 oder vom DPRAM synchronisiert werden. Die Umrichter dürfen nicht von mehreren Schnittstel- len gleichzeitig synchronisiert werden. SEW-EURODRIVE empfiehlt, P885 / P895 auf einen im gesamten CAN-Netzwerk nicht genutzten Identifier einzustellen. Um eine Syn- chronisation mit interpolierender Sollwertverarbeitung zu realisieren, beachten Sie Pa- rameter P888 und P916.
  • Seite 142: Compiler - Editor

    Compiler – Editor Technische Merkmale Compiler – Editor 13.1 Technische Merkmale plus® plus® • Integrierte IPOS Positionierung und Ablaufsteuerung. IPOS -Geräte benötigen keine zusätzliche Hardware. • Programmerstellung in einer Hochsprache • Symbolische Variablennamen • Möglichkeit zur Erstellung von Programmmodulen, die in anderen Projekten erneut verwendet werden können •...
  • Seite 143: Erste Schritte

    Projekt ® 1. Starten Sie MOVITOOLS MotionStudio aus dem Startmenü von Windows unter anlegen dem folgenden Menüpunkt: [Start] / [Programme] / [SEW] / [MOVITOOLS-MotionStudio] / [MOVITOOLS-MotionStudio] 2. Legen Sie ein Projekt mit Namen und Speicherort an. Handbuch – IPOSplus®...
  • Seite 144 Compiler – Editor Erste Schritte ® Kommunikation Um mit MOVITOOLS MotionStudio eine Kommunikation aufzubauen und Ihr Netzwerk aufbauen und zu scannen, gehen Sie folgendermaßen vor: Netzwerk scannen 1. Richten Sie einen Kommunikationskanal (zum Beispiel "seriell") ein, um mit Ihren Geräten zu kommunizieren. Detailierte Angaben, um einen Kommunikationskanal zu konfigurieren, finden Sie in Dokumentation (Handbuch...
  • Seite 145: Schritt 2: Erstellung Eines Neuen Projekts

    Compiler – Editor Erste Schritte plus® Als Ergebnis öffnet sich die IPOS -Programmieroberfläche:. 482065675 [1] Menüleiste [2] Symbolleiste [3] Projektfenster [4] Hauptfenster [5] Statuszeile 13.2.2 Schritt 2: Erstellung eines neuen Projekts Um ein neues Projekt zu erstellen, klicken Sie den Menüpunkt [Projekt] / [Neu anle- gen...].
  • Seite 146 Die vierte Zeile gibt dem Compiler an, in welchem Verzeichnis die Dateien gesucht wer- den sollen, die mittels #include-Anweisung zu Quelltextdateien hinzugefügt werden. Hier steht als Default das bei der Installation angelegte Verzeichnis, z. B.: c:\pro- gramme\sew\moviools\projects\include. Die Zeilen 5 und 6 geben an, in welchen Verzeichnissen die MDX-Datei (Datei mit plus®...
  • Seite 147 Compiler – Editor Erste Schritte Nach Betätigen der Schaltfläche [Speichern] erscheint ein weiteres Fenster. Hier legen Sie die Programmstruktur fest. Programmstruktur festlegen 482809355 Markieren Sie in der Gruppe "main-Funktion" das Kontrollfeld "Initialisierungsteil". Nach Verlassen des Dialogfensters mit der Schaltfläche [OK] wird die Funktion "Main" mit In- itialisierungsteil automatisch generiert.
  • Seite 148: Schritt 3: Das Erste Iposplus ® -Programm

    Compiler – Editor Erste Schritte Die Funktion "Main" enthält einen Initialisierungsteil und die Hauptprogramm-Schleife. Dies ist ein korrektes, lauffähiges Programm, welches jedoch noch keine Funktionalität enthält. Das Hauptfenster hat jetzt folgendes Aussehen: 482850699 Wenn Sie anschließend Änderungen am Quelltext vornehmen, speichern Sie das Pro- jekt mit [Datei] / [Alles speichern] ab.
  • Seite 149 Compiler – Editor Erste Schritte Das Programm sollte also folgendermaßen aussehen: 483418763 In der Statuszeile steht das Wort "geändert". Dies bedeutet, dass sich das Programm gegenüber dem letzten Speichervorgang geändert hat. Speichern Sie das Programm. Nun steht in der Statuszeile "gespeichert". Durch das so genannte Syntax-Highlighting werden Wörter mit unterschiedlicher Be- deutung zur besseren Übersicht in unterschiedlichen Farben dargestellt.
  • Seite 150 Compiler – Editor Erste Schritte Während des Editierens des Programms kann die Eingabeunterstützung verwendet werden. Durch Klicken mit der rechten Maustaste wird das Kontextmenü geöffnet, das den Menüpunkt [Anweisungen einfügen] enthält. Mit diesem Menüpunkt können Sie die Eingabeunterstützung aufrufen. Eingabeunterstützung aufrufen 483423627 Mit der Eingabeunterstützung können Sie verschiedene C-Konstrukte, Systemfunkti- onen und vordefinierte Strukturen auswählen.
  • Seite 151: Schritt 4: Compilieren Und Starten Des Iposplus -Programms

    Compiler – Editor Erste Schritte plus® 13.2.4 Schritt 4: Compilieren und Starten des IPOS -Programms plus® In diesem Kapitel werden Sie das in Schritt 3 erstellte IPOS -Programm compilieren, in das laden und ausführen. Compilieren des Um das gewünschte Programm in eine für den Umrichter verständliche Form zu brin- Programms gen, muss das Projekt compiliert werden.
  • Seite 152 Compiler – Editor Erste Schritte plus® Fehlermeldungen Da bei der Programmierung Syntaxfehler auftreten können, wurde in den IPOS beim Compilieren Compiler ein Fehlermeldesystem integriert. Wird ein Fehler erkannt, so wird dem Pro- grammierer die Zeile, in der der Fehler aufgetreten ist angezeigt und eine entspre- chende Fehlermeldung ausgegeben, die den Fehler klassifiziert.
  • Seite 153 Compiler – Editor Erste Schritte Laden des Pro- Im nächsten Schritt muss das Programm in den Umrichter geladen werden. Drücken Sie gramms in das dazu das Symbol oder wählen Sie [Compilieren + Download]. Jetzt wird das Pro- Gerät gramm nochmals compiliert und nach erfolgreichem Abschluss in den Umrichter gela- den.
  • Seite 154: Einstellungen Für Den Iposplus- ® Compiler

    Compiler – Editor ® Einstellungen für den IPOSplus- Compiler plus-® 13.3 Einstellungen für den IPOS Compiler Im Menüpunkt [Einstellungen] des Menüs [Extras] besteht die Möglichkeit umfangreiche Einstellungen für den gesamten Compiler zu treffen. Wird dieser Menüpunkt ausge- wählt, dann öffnet sich das folgende Fenster. Einstellung Editor 483719691 In den Einstellungen für den Editor können die Farben für den Hintergrund und für den...
  • Seite 155 Compiler – Editor ® Einstellungen für den IPOSplus- Compiler Einstellungen Compiler: 483721227 Innerhalb der Registerkarte für den Compiler können Einstellungen für den Compilier- Prozess vorgenommen werden. • IPOS-Programmdatei generieren (*.MDX): Beim Compilieren wird eine *.MDX-Datei generiert. Die MDX-Datei enthält den Assembler-Code des Programms in textueller Form und kann über SHELL (Gerätedaten kopieren) in den Umrichter geladen oder im Assembler geöffnet werden.
  • Seite 156 Compiler – Editor ® Einstellungen für den IPOSplus- Compiler Einstellungen Verzeichnisse: 483837963 plus® Im IPOS -Compiler kann ein Programm entweder als Projekt oder als einzelne Quelltextdatei angelegt werden. Wird das Programm als einzelne Quelltextdatei angelegt, dann müssen in dem obigen Fenster folgende Einstellungen gemacht werden: In dem Feld [Ausgabeverzeichnis für Listfile] muss das Verzeichnis angegeben werden, in dem das List-File gespeichert werden soll, sofern diese Funktion in den Einstellungen...
  • Seite 157: Suchfunktion

    Compiler – Editor Suchfunktion Auf der Karteikarte [Ausführung] können die Parameter für die Geschwindigkeit der Task 1 und Task 2 eingestellt werden. Eine ausführliche Beschreibung ist in Kapitel ® "Task-Verwaltung und Interrupts / Tasks bei MOVIDRIVE B" zu finden. 13.4 Suchfunktion Wählen Sie in der Menüleiste den Menüpunkt [Suchen], und dort [Suchen nach...] aus.
  • Seite 158: Erstellen Eines Neuen Projekts

    Compiler – Editor Erstellen eines neuen Projekts 13.5 Erstellen eines neuen Projekts plus® Ein IPOS -Projekt besteht aus einem oder mehreren Quelltextmodulen. Jedes Modul ist in einer separaten Datei mit der Erweiterung *.IPC abgelegt. Die Informationen über das Projekt werden in einer Projektdatei mit der Erweiterung *.ICP gespeichert. Diese binäre Datei wird vom Compiler angelegt und verwaltet.
  • Seite 159: Programmstruktur Festlegen

    Compiler – Editor Erstellen eines neuen Projekts Im folgenden Dialogfenster muss der neuen Quelltext-Datei noch ein Name gegeben werden. Wird das Fenster mit der Schaltfläche [Speichern] verlassen, öffnet sich ein weiteres Dialogfenster. In diesem Fenster kann eine grundlegende Programmstruktur festgelegt werden, die als leere Programmschablone im Editorfenster angezeigt wird.
  • Seite 160 Compiler – Editor Erstellen eines neuen Projekts Wird beispielsweise eine Struktur mit Initialisierungsteil und Task 2 ausgewählt, wobei die Task 2 den Funktionsnamen Ueberwachung bekommen soll, so ergibt sich ein Editorfenster mit der folgenden Programmstruktur. Compiler-Programm: 484392715 HINWEIS plus® Der IPOS -Compiler unterscheidet Groß-/Kleinschreibung, d.
  • Seite 161: Projekt Speichern

    Compiler – Editor Projekt speichern Es besteht auch die Möglichkeit, einem Projekt eine bereits bestehende Quelltext-Datei hinzuzufügen. Dies geschieht über einen rechten Mausklick auf den Wurzelknoten Quelltext-Datei und dem folgenden Pop-Up-Menüpunkt [Quelltext-Datei dem Pro- jekt hinzufügen]. Dann erscheint folgendes Dialogfenster. 484398091 Der Dateityp ist auf *.ipc voreingestellt.
  • Seite 162: Aufbau Einer Projektverwaltung

    Compiler – Editor Aufbau einer Projektverwaltung 13.7 Aufbau einer Projektverwaltung Eine Projektverwaltung ermöglicht den übersichtlichen Zugriff auf alle ein Projekt betref- fenden Daten. So ist beispielsweise folgende Verzeichnisstruktur sinnvoll: Hauptprojekt (z. B. Maschine oder Kunde) Gesamtdokumentation (Unterlagen zum Gesamtprojekt) Projekt (einzelner Umrichter) Dokumentation (Dokumentation zum einzelnen Antrieb, falls nicht in Gesamtdoku- mentation abgelegt) Source (alle *.IPC-Files, alle *.h-Files, auch const.h)
  • Seite 163 Compiler – Editor Aufbau einer Projektverwaltung Beispiel: Kunde: Müller Maschine: Hubstation ® MOVIDRIVE : Hubachse, Gabelantrieb Gesamtdokumentation Hubachse Dokumentation Source Parameter Messungen Gabelantrieb Dokumentation Source Parameter Messungen Eine so aufgebaute Projektverwaltung ermöglicht jedem, der sich in die Anlage oder in das Programm einarbeiten muss, sich einen schnellen Überblick zu verschaffen.
  • Seite 164: Projekt Öffnen

    Compiler – Editor Projekt öffnen 13.8 Projekt öffnen Wird der Compiler geöffnet, so wird der Editor mit dem zuletzt bearbeiteten Quelltext plus® des zuletzt geöffneten Projekts geöffnet, sofern der IPOS -Compiler bei geöffnetem Editor-Fenster beendet worden ist. Ein vorhandenes Projekt kann außerdem über den Menüpunkt [Projekt] / [Öffnen] geöff- net werden.
  • Seite 165: Projekt Aus Umrichter Laden

    Compiler – Editor ® Projekte handhaben mit MOVIDRIVE 13.9.2 Projekt aus Umrichter laden Über den Menüpunkt [Projekt] / [Upload...] kann ein im Umrichter gespeichertes Projekt auf den PC / Laptop geladen werden. 484532491 Der Name des Projektordners kann über ein Dialogfenster eingegeben werden. Über den Button [Durchsuchen] kann das Verzeichnis, in welches das Projekt abgelegt wer- den soll, ausgewählt werden.
  • Seite 166: Kompilieren Eines Projekts

    Compiler – Editor Kompilieren eines Projekts 13.10 Kompilieren eines Projekts Um das geschriebene Programm in eine für den Umrichter verständliche Form zu über- setzen, muss das Programm compiliert werden. Besteht ein Projekt aus mehreren Quelltext-Dateien, dann werden alle Quelltext-Dateien beim Compilieren zu einem plus®...
  • Seite 167: Kompilieren Und Download

    Compiler – Editor Kompilieren und Download 13.11 Kompilieren und Download Um das Programm in den Umrichter zu übertragen sind prinzipiell zwei Schritte nötig. Erstens muss der Quelltext compiliert werden, und zweitens muss dieses Programm zum Umrichter übertragen werden. Diese beiden Schritte werden ausgelöst, wenn [Compilieren + Download] aus dem Menü...
  • Seite 168: Debugger

    Compiler – Editor Debugger 13.15 Debugger Der integrierte Debugger ist ein sinnvolles Hilfsmittel um ein Programm zu Testzwecken oder zur Fehlersuche in einzelnen Schritten abzuarbeiten. Um mit dem Debugger zu ar- beiten, muss das Programm in den Umrichter übertragen werden. Drei unterschiedliche Funktionen stehen zu diesem Zweck zur Verfügung.
  • Seite 169: Variablenfenster

    Compiler – Editor Variablenfenster 13.16 Variablenfenster Um den Inhalt von Variablen während des Debuggens oder der normalen Programm- abarbeitung beobachten zu können, ist es hilfreich ein Variablenfenster zu öffnen. Das Variablenfenster wird mit dem Menüpunkt [Alle Variablen] aus dem Menü [Anzeige] der Menüleiste aufgerufen.
  • Seite 170 Compiler – Editor Variablenfenster Das Einrichten eines Betrachterfensters geschieht über den Menüpunkt [Anzeige] / [Ausgewählte Variablen] / [Bearbeiten]. Folgendes Fenster erscheint: Variablen auswählen 485591563 Durch einen Doppelklick auf die gewünschte Variable oder durch Markieren und an- schließendes Drücken der Schaltfläche [Einfügen] können die gewünschten Variablen dem Betrachterfenster zugewiesen werden.
  • Seite 171: Programminformationen

    Compiler – Editor Programminformationen Die Werte der Variablen können in unterschiedlichen Formaten angezeigt werden. Die Formate dezimal mit Vorzeichen, hexadezimal, binär oder ASCII stehen zur Auswahl. Zum Umschalten des Formates wird die gewünschte Variable zunächst durch Anklicken markiert. Anschließend wird ein Kontextmenü durch Betätigen der rechten Maustaste geöffnet und dort das gewünschte Format ausgewählt.
  • Seite 172: Anweisungseingabe

    Compiler – Editor Anweisungseingabe 13.18 Anweisungseingabe plus® Prinzipiell kann der gesamte Quelltext eines IPOS -Programms als Text über die Tastatur eingegeben werden. Dabei ist die Syntax, die an die Programmiersprache C angelehnt ist, zu beachten. Über das Tastenkürzel [Strg + Z] können die letzten fünf Ein- gaben rückgängig gemacht werden.
  • Seite 173: Kommentare

    Compiler – Editor Kommentare 13.19 Kommentare Eine gute Kommentierung des Quelltextes erleichtert die Lesbarkeit des Programms und ermöglicht auch einer fremden Person eine zügige Einarbeitung in das Programm. Ein umfangreicher Kommentar, der zum Beispiel über mehrere Zeilen geht, beginnt mit der Zeichenkombination '/*' und endet mit der Zeichenkombination '*/'.
  • Seite 174: Symbolübersicht

    Compiler – Editor Symbolübersicht 13.20 Symbolübersicht Symbol Menüpunkt Beschreibung Datei → Neu Neue Quelltextdatei erstellen Datei → Öffnen Quelltextdatei öffnen Datei → Speichern Quelltextdatei speichern Datei → Kompilieren Quelltextdatei kompilieren Datei → Kompilieren + Download Quelltextdatei kompilieren und in Umrichter laden Datei →...
  • Seite 175: Compiler - Programmierung

    Teilen zusammen. Diese sollen zunächst einzeln betrachtet werden /******************************************** File name: Program_structure.IPC Date: 04.02.2002 Author: Thomas Ambrus Kommentar mit Hinweisen zum SEW-EURODRIVE Bruchsal Programm Technical Documentation Brief description: Source code program struc- ture ********************************************/ */=========================================== Programmkopf mit Präprozessor- anweisungen und ggf.
  • Seite 176: Präprozessor

    Die Datei ist hier in gekürzter Form abgedruckt, da sich bereits so wesentliches zeigen lässt. /*============================================= File name: Const.h File version: 2.20 SEW Include-File for IPOSplus Compiler Please do not modify this file! (C) 1999 SEW-EURODRIVE ==============================================*/ #ifndef _CONST_H...
  • Seite 177: Compiler - Programmierung Präprozessor-Anweisungen

    Compiler - Programmierung Präprozessor-Anweisungen #define StdOutpIPOS H481 #define OutputLevel H482 #define InputLevel H483 #define ControlWord H484 #define T0_Reload H485 #define Reserve4 H486 #define Timer_2 H487 #define Timer_1 H488 #define Timer_0 H489 #define WdogTimer H490 #define SetpointPos H491 #define TargetPos H492 #define PosWindow H493 #define LagWindow...
  • Seite 178: Include

    Compiler - Programmierung #include Neben der Anweisung '#ifndef' gibt es auch die Anweisung '#ifdef' (ifdefined, wenn de- finiert). Diese Anweisung kommt ohne eine Verneinung aus. Auch eine if-else-Konstruk- tion ist möglich. Dies bedeutet, dass in dem Fall, in dem die Bedingung der '#ifdef' bzw. '#ifndef'-Abfrage nicht erfüllt ist, der Anweisungsteil nach dem #else abgearbeitet wird.
  • Seite 179: Compiler - Programmierung Verzeichnisse Von Include

    Compiler - Programmierung Verzeichnisse von include 14.4 Verzeichnisse von include Abhängig vom Verzeichnis in dem die einzubindende Datei abgelegt ist ergeben sich verschiedene Vorgehensweisen. 1. Falls der Pfad für die einzubindende Datei in der Registerkarte Verzeichnisse bei den Einstellungen zum Compiler eingestellt ist, dann lautet die Anweisung #include <Da- teiName>...
  • Seite 180: Undef

    Compiler - Programmierung #undef Ebenso können mit der Direktive '#define' konstanten Werten symbolische Namen zu- geordnet werden. Die Zeile '#define MAXDREHZAHL 1500' ermöglicht es nun statt 1500 explizit 'MAXDREHZAHL' im Quelltext zu schreiben. Der Quelltext wird dadurch lesbarer. Das folgende Beispiel soll dies verdeutlichen. #define setpoint H123 #define maximum 2000...
  • Seite 181: Declare

    Anwender einen Überblick über die belegten und noch zur Verfügung stehenden Variablen haben muss. Deshalb ist der Einsatz von Strukturen, SEW-Standardstruk- turen oder anwenderdefinierten Strukturen besonders dann sinnvoll, wenn eine feste Variablenfolge bereitgestellt werden muss (z.
  • Seite 182: Sew-Standardstrukturen

    Compiler - Programmierung SEW-Standardstrukturen 14.8 SEW-Standardstrukturen Mit den SEW-Standardstrukturen stehen für die Befehle, die auf Strukturen angewiesen sind, bereits vorgefertigte Strukturen zur Verfügung. Die folgende Tabelle zeigt eine Aufstellung der für die jeweilige Anweisung zur Verfü- gung stehenden Standardstrukturen. Die dazugehörigen Elemente finden Sie in der Be- schreibung zu dem jeweiligen Befehl, siehe Standardfunktionen (Seite 208).
  • Seite 183: Compiler - Programmierung Sew-Standardstrukturen

    Compiler - Programmierung SEW-Standardstrukturen Zur Unterstützung bei der Eingabe von Deklaration und Initialisierung von Standard- strukturen kann die Eingabehilfe genutzt werden. Im ersten Schritt muss der Cursor im Editorfenster an die Stelle gesetzt werden, an der die Deklaration der Strukturvariablen eingefügt werden soll.
  • Seite 184: Anwenderdefinierte Strukturen

    Compiler - Programmierung Anwenderdefinierte Strukturen 14.9 Anwenderdefinierte Strukturen Ergänzend zu den SEW-Standardstrukturen kann sich der Anwender eigene Strukturen erstellen. Zunächst muss die Struktur angelegt werden. Dies geschieht im Deklarations- teil des Programms. Dazu wird das Schlüsselwort 'typedef struct' verwendet. An einem Beispiel, das eine Positionstabelle anlegt, soll dies erläutert werden.
  • Seite 185 Compiler - Programmierung Anwenderdefinierte Strukturen Nach dem Einfügen ist dann auch eine Deklarationszeile im Editorfenster eingefügt die Strukturvariablen dieses Strukturtyps deklariert. Diese Zeile muss dann noch im Editor editiert werden. Ebenso können innerhalb des Strukturtyps noch weitere Elemente hin- zugefügt werden. Eine Initialisierungs-Sequenz kann nach dem Compilieren auch wie- der über die Eingabehilfe ausgelöst werden.
  • Seite 186: Long

    Compiler - Programmierung long 14.10 long Alternativ zur Variablenzuordnung mit #define kann das Schlüsselwort long zur Dekla- ration einer einzelnen Variable eingesetzt werden. Die Variablennummer wird in dem Fall beim Compilieren durch den Compiler vergeben. Das Schlüsselwort long leitet eine Vereinbarung einer oder mehrerer globaler Variablen ein.
  • Seite 187: Pragma

    Compiler - Programmierung #pragma 14.12 #pragma Mit der Direktive #pragma kann der Variablenbereich der mit den Schlüsselworten 'long' und 'initial long' belegt wird beeinflusst werden. Syntax: #pragma Direktive Parameter1 Parameter2 ... Der Compiler unterstützt folgende #pragma-Direktiven: #pragma list Bewirkt, dass die Quelltextzeilen als Kommentare in das erzeugte plus®...
  • Seite 188: Erläuterung Zur Const.h Und Io.h / Constb.h Und Iob.h

    Die Datei ist nachfolgend abgedruckt. /*============================================= File name: Io.h File version: 2.01 Definition of bitmasks for digital in- and outputs Please do not modify this file! (C) 1999 SEW-EURODRIVE ==============================================*/ #ifndef _IO_H #define _IO_H #define DI00 (H483 & 0b1) #define DI01 (H483 &...
  • Seite 189 Compiler - Programmierung Erläuterung zur const.h und io.h / constb.h und iob.h In der Header-Datei io.h sind Makros definiert, die die Abfrage von Klemmenpegeln er- leichtern. Dies soll am folgenden Beispiel erläutert werden. if( DI00 ) H1 = 1; // execute command block, if terminal DI00 has NOT level 0 else H1 = 0;...
  • Seite 190: Bezeichner

    Compiler - Programmierung Bezeichner 14.14 Bezeichner Obwohl Bezeichner nun schon mehrfach verwendet worden sind, soll dieser Abschnitt dazu nochmals einige Hinweise geben. Unter einem Bezeichner versteht man den Na- men, den ein MakroBezeichner (Kapitel Define), ein symbolischer Variablenname oder ein Funktionsname annehmen kann. Innerhalb eines Bezeichners dürfen nur Buchsta- ben, Ziffern und der Unterstrich verwendet werden, wobei der Bezeichner mit einem Buchstaben oder Unterstrich beginnen muss.
  • Seite 191: Compiler - Programmierung Iposplus ® -Variablen Im Compiler

    Compiler - Programmierung ® IPOSplus -Variablen im Compiler plus® 14.16 IPOS -Variablen im Compiler plus® Die IPOS -Variablen sind praktisch Bestandteil der Sprache und dürfen nicht explizit deklariert werden. Sie besitzen alle denselben Datentyp (32 Bit, vorzeichenbehaftet) und sind global im gesamten Quelltext gültig. Die folgende Zeile ist quasi implizit in jedem Modul vorhanden: long H0, H1, H2, H3, ...
  • Seite 192: Indirekte Adressierung - Pointer

    Compiler - Programmierung Indirekte Adressierung – Pointer HINWEIS Nicht erlaubt sind mehrfache Vereinbarungen globaler Variablen: long a, b, c; long d, a; Die Möglichkeit der globalen Variablendeklaration ist dann vorteilhaft, wenn die Num- mer der Variablen für die Anwendung nicht von Bedeutung ist. Im Regelfall ist dies so, da auf die Variablen immer wieder symbolisch zugegriffen wird.
  • Seite 193: Numof()

    Compiler - Programmierung numof() 14.19 numof() Das Schlüsselwort numof() liefert die Nummer einer Variablen. Als Argument wird der Bezeichner einer direkten oder symbolischen Variablen angegeben. Das Argument darf kein zusammengesetzter Ausdruck sein. #define setpoint H200 #declare setpoint2 setpoint:1 H1 = numof (H7); H2 = numof (setpoint);...
  • Seite 194: Compiler - Operatoren

    Compiler – Operatoren Rangfolge der Operatoren Compiler – Operatoren Mit Operatoren werden Bezeichner miteinander zu Anweisungen verknüpft, um so be- plus® stimmte Operationen auszuführen. Der IPOS -Compiler stellt Operatoren zur Verfü- gung um arithmetische, Bit-, Zuweisungs- oder Vergleichsoperationen durchzuführen. Die Operatoren sind in verschiedene Kategorien eingeteilt und besitzen untereinander eine bestimmte Rangfolge.
  • Seite 195: Unäre Operatoren

    Compiler – Operatoren Unäre Operatoren Die Kategorie 1 hat die höchste Priorität; die Kategorie 2 (Unäre Operatoren) hat die zweithöchste Priorität usw. bis zum Komma-Operator, der die niedrigste Priorität besitzt. Die Operatoren innerhalb einer Kategorie haben den gleichen Rang. Die unären (Kategorie 2), bedingten (Kategorie 13) und Zuweisungsoperatoren (Kate- gorie 14) ordnen von rechts nach links zu, alle anderen von links nach rechts.
  • Seite 196: Binäre Operatoren

    Compiler – Operatoren Binäre Operatoren 15.3 Binäre Operatoren Diese Operatoren verbinden zwei Operanden miteinander bzw. stehen zwischen zwei Operanden. 15.3.1 Beispiel H1 = H2; // der binäre Zuweisungsoperator(=) weist der Variablen H1 den Wert von H2 zu H1 = H2 - 3;// der binäre Minusoperator(-) bildet die Differenz zwischen H2 und 3 Die kombinierten Zuweisungsoperatoren führen zu einer abkürzenden Schreibweise, die die Lesbarkeit eines Programms verringern, aber der Vollständigkeit halber erwähnt werden sollen.
  • Seite 197: Compiler - Konstrukte

    Compiler – Konstrukte if...else Compiler – Konstrukte plus® Der IPOS -Compiler stellt Konstrukte zur Verfügung, die auch aus anderen Hoch- sprachen bekannt sind. Als Konstrukte stehen zur Verfügung: • if...else • • while • do...while • switch...case...default Hinzu kommen noch Anweisungen wie 'continue' und 'break' die zur Steuerung inner- halb dieser Konstrukte Anwendung finden.
  • Seite 198: For

    Compiler – Konstrukte Beispiel if ( H1 < 2 ¦¦ H1 > 14 ) H2 = 10; Die Variable H2 wird auf den Wert 10 gesetzt, wenn H1 kleiner als 2 oder größer als 14 ist. Mit anderen Worten: H2 wird auf den Wert 10 gesetzt, wenn H1 einen Wert außer- halb des Bereichs von 2 bis 14 annimmt.
  • Seite 199: While

    Compiler – Konstrukte while Beispiel H1 = 20; H2 = 0; for ( H0 = 0; H0 < 10; ++H0 ) H1 = H1 + 2; if ( H1 > 32 ) continue; ++H2; Die if-Abfrage mit der Anweisung continue bewirkt, dass die Inkrementierung der Vari- ablen H2 aussetzt, sobald H1 größer als 32 ist.
  • Seite 200 Compiler – Konstrukte while Beispiel H2 = 0; H1 = 10; while ( H1 > H2 = H2 + 1; --H1; Solange H1 größer ist als 5, werden die Anweisungen innerhalb des Blocks ausgeführt. Nach dem Abbruch der Schleife enthält H2 den Wert 5. Ebenso wie bei der for-Schleife können auch hier die Anweisungen break und continue eingesetzt werden.
  • Seite 201: Syntax

    Compiler – Konstrukte do...while 16.4 do...while 16.4.1 Syntax // Anweisungen der Schleife while ( Ausdruck ); Die do-Anweisung ist eine bedingte Schleife, bei der die Abbruchbedingung am Ende der Schleife überprüft wird. Deshalb führt diese Schleife mit der do-Anweisung mindes- tens eine Iteration aus (mindestens ein Durchlauf).
  • Seite 202: Switch

    Compiler – Konstrukte switch...case...default Auch eine continue-Anweisung ist möglich. Sie bewirkt wieder einen Sprung zum Ende des Anweisungsblocks und dann eine Überprüfung des Ausdrucks. H2 = 0; H2 = H2 +3; if ( H2 > 20 ) break; if ( H2 > 10 ) continue;...
  • Seite 203: Return

    Compiler – Konstrukte return Der default-Zweig muss - falls vorhanden - als letzter innerhalb einer switch-Anweisung stehen. switch ( H1 ) case 1: ++H2; break; case 2: ++H3; break; default: ++H4; break; plus® plus® Dieses Programmstück inkrementiert die IPOS -Variable H2, wenn die IPOS plus®...
  • Seite 204: Compiler - Funktionen

    Compiler – Funktionen Anwenderdefinierte Funktionen Compiler – Funktionen 17.1 Anwenderdefinierte Funktionen Der Anwender kann Funktionen (Unterprogramme) programmieren. Ein Aufruf mit der Übergabe von Funktionsargumenten ist bei den vom Anwender erstellten Funktionen nicht möglich aber auch nicht nötig, da alle Variablen global sind und keine Kapselung mit lokalen Variablen möglich ist.
  • Seite 205: Befehlsübersicht Standardfunktionen

    Compiler – Funktionen Befehlsübersicht Standardfunktionen 17.2 Befehlsübersicht Standardfunktionen plus® plus® Ein großer Teil der IPOS -Maschinenbefehle die aus der IPOS -Assembler- plus® Sprache bekannt sind werden durch die Hochsprache des IPOS -Compilers in Form bestimmter syntaktischer Konstruktionen abgebildet. So werden z.B. arithmetische Be- fehle (ADD, SUB, ...) durch entsprechende Operatoren (+, -, ...) erzeugt oder die Setz- befehle (SET...) durch den Zuweisungsoperator ( = ) ersetzt.
  • Seite 206: Kommunikations-Standardfunktionen

    Compiler – Funktionen Befehlsübersicht Standardfunktionen 17.2.2 Kommunikations-Standardfunktionen Befehl Funktion Verfügbarkeit Verweis ® ® MOVIDRIVE MOVITRAC _MoviLink Prozess- und/oder Parameter- gerätespezifische Befehlsstruktur beachten (Seite 222) Datenaustausch über RS-485 oder Systembus. _MovCommDef Prozessdatenübertragung über RS- (Seite 227) 485 (Speziell mit MQx - ®...
  • Seite 207: Setz-Standardfunktionen

    Compiler – Funktionen Befehlsübersicht Standardfunktionen 17.2.5 Setz-Standardfunktionen Befehl Funktion Verfügbarkeit Verweis ® ® MOVIDRIVE MOVITRAC _Copy Blockweises, konsistentes Kopieren (Seite 210) von Variablen. _GetSys Liest eine interne Systemgröße. gerätespezifische Befehlsstruktur beachten (Seite 211) _SetInterrupt Definiert eine Funktion als Interrupt- (Seite 235) Routine und aktiviert bzw.
  • Seite 208: Standardfunktionen

    Compiler – Funktionen Standardfunktionen 17.3 Standardfunktionen In diesem Kapitel werden die Standardfunktionen in alphabetischer Reihenfolge darge- stellt, um so beim Nachschlagen ein Auffinden der Standardfunktion zu erleichtern. 17.3.1 _AxisStop Syntax _AxisStop( typ ) plus® Beschreibung Die Antriebsachse wird angehalten, indem das IPOS -Steuerwort beschrieben wird.
  • Seite 209: Bitclear

    Compiler – Funktionen Standardfunktionen 17.3.2 _BitClear Syntax _BitClear( H, bit ) Beschreibung _BitClear setzt innerhalb der Variablen H das Bit bit auf Null. Argumente Variablenname konstanter Ausdruck für Bitposition Beispiel main() _BitClear( H100, 3 ); // löscht Bit 3 in H100 17.3.3 _BitMove Syntax _BitMove( H2 , bit2, H1, bit1 )
  • Seite 210: Bitset

    Compiler – Funktionen Standardfunktionen Beispiel main() _BitMoveNeg( H1, 3,H2, 4 ); // kopiert H1.3 = NOT (H2.4) _BitMoveNeg( H1, 1,H1, 0 ); // kopiert H1.1 = NOT (H1.0) 17.3.5 _BitSet Syntax _BitSet( H, bit ) plus® Beschreibung _BitSet setzt innerhalb der IPOS -Variablen h das Bit mit der Nummer bit auf Eins.
  • Seite 211: Getsys

    Compiler – Funktionen Standardfunktionen Argumente konstanter Ausdruck für Nummer des Fehlers (siehe Fehlerliste in der Betriebs- anleitung) konstanter Ausdruck für Fehlerreaktion, der folgende Werte annehmen kann: FR_NORESP: Keine Reaktion, auch keine Anzeige des Fehlers. FR_DISPLAY: Fehler wird lediglich angezeigt; Gerät weiterhin lauffähig. FR_SWOFF_F: Endstufensperre und Geräteverriegelung.
  • Seite 212 Compiler – Funktionen Standardfunktionen GS_ANINPUTS: Spannungswert / Stromwert der Analogeingänge 1 und 2 Spannungseingang: -10 V ... 0 ... +10 V = -10000 ... 0 ... 10000 Stromeingang: 0 ... 20 mA = 0 ... 5000 / 4 ... 20 mA = 1000 ... 5000 –...
  • Seite 213 Compiler – Funktionen Standardfunktionen GS_ACTSPEEDEXT: Ist-Drehzahl des externen Gebers (X14) – H = Time-Base, Mittelwertfilter für die Drehzahlerfassung des externen Gebers. Einstellbereich: 5 ms ... 31 ms – H + 1 = Encoder Typ – 0 = Geber X14, – 1 = DIP Geber –...
  • Seite 214 Compiler – Funktionen Standardfunktionen Für die Anweisung _GetSys stehen folgende SEW-Standard-Strukturen zur Verfügung: Anweisung Standardstruktur Elemente Kurzbeschreibung _GetSys GSAINPUT Input1 Spannungswert des Analogeingangs 1 Input2 Spannungswert des Analogeingangs 2 GSAOUTPUT Output1 Spannungswert für optionalen Analogausgang 1 Output2 Spannungswert für optionalen Analogausgang 2...
  • Seite 215 Compiler – Funktionen Standardfunktionen Anweisung Standardstruktur Elemente Kurzbeschreibung CamSource Bit 31 schaltet zwischen voreingestellten Bezugsvariablen und einem Zeiger auf eine beliebige Bezugsvariable um. Bit 31 = 0: • 0 = Geber X15 (Motorgeber, H511) • 1 = Geber X14 (externer Geber, H510) •...
  • Seite 216 Compiler – Funktionen Standardfunktionen Anweisung Standardstruktur Elemente Kurzbeschreibung GSACTSPEEDEXT TimeBase Abtastzeit für die Drehzahlerfassung des externen Gebers, Einstellbereich: 5 ms ... 31 ms EncType 0 = Geber X14,1 = DIP Geber Numerator Zähler für die Anwenderskalierung Wertebereich: -2 ... 0 ... +(2 Denominator Nenner für die Anwenderskalierung Wertebereich: 1 ...
  • Seite 217: Go0

    Compiler – Funktionen Standardfunktionen Beispiel #include <const.h> GSAINPUT Ain; main() _GetSys( Ain,GS_ANINPUTS ); // Analogeingänge in Struktur Ain einlesen 17.3.9 _Go0 Syntax _Go0( typ ) Beschreibung Dieser Befehl löst eine Referenzfahrt der Achse aus. Das Argument legt das Verhalten bei der Referenzfahrt fest. Der Referenzfahrttyp wird mit P903 fest eingestellt und kann nur dort geändert werden.
  • Seite 218: Goabs

    Compiler – Funktionen Standardfunktionen Argumente Ausdruck für die Einstellung des Verhaltens während der Referenzfahrt. typ kann einen der folgenden Werte annehmen: GO0_C_W_ZP GO0_U_W_ZP GO0_C_NW_ZP GO0_U_NW_ZP GO0_C_W_CAM GO0_U_W_CAM GO0_C_NW_CAM GO0_U_NW_CAM GO0_RESET Die einzelnen Buchstaben haben dabei folgende Bedeutung: C (Conditioned) = referenziert nur, wenn noch nicht referenziert ist U (Unconditioned) = referenziert immer, unabhängig davon ob die Achse bereits referenziert ist oder...
  • Seite 219: Gorel

    Compiler – Funktionen Standardfunktionen Parametereinstellungen für alle Positionierbefehle Parameter Erklärung P913 / P914 Verfahrdrehzahlen (änderbar im Programm über SETSYS). P911 / P912 Positionier-Rampen (Beschleunigung) (änderbar im Programm über SETSYS). P915 / P203 Vorsteuerungen, mit denen der Ruck beeinflusst werden kann. ®...
  • Seite 220: Inputcall

    Compiler – Funktionen Standardfunktionen Beispiel // Standardstrukturen fuer Geschwindigkeit und Rampe SSPOSSPEED tPosSpeed; SSPOSRAMP tPosRamp; main() // Geschwindigkeit und Rampe setzen tPosSpeed.CW = tPosSpeed.CCW = 1000 * 10; // Geschwindigkeit 1000 1/min tPosRamp.Up = tPosRamp.Down = 1000; // Rampe bezogen auf 3000 1/min _SetSys (SS_POSRAMP, tPosRamp);...
  • Seite 221: Memorize

    Compiler – Funktionen Standardfunktionen funktionsname Name der Ereignisfunktion (Achtung: Im Gegensatz zu einem Funktionsaufruf wird hier nur der Name der Funktion ohne () angegeben) Beispiel #include <constb.h> #define DI02 0b100 // DI02 = 0b100 KlemmeIstEins () // Anweisungen der Ereignis-Funktion main() while(1) // Hauptprogrammschleife Task 1...
  • Seite 222: Movilink

    Compiler – Funktionen Standardfunktionen Beispiel main() _Memorize( MEM_STDATA ); // Variablen H0 ... H127 auf EEPROM speichern 17.3.14 _MoviLink Syntax _MoviLink ( H ) Beschreibung Der Befehl MOVLNK ermöglicht die weitgehende Veränderung von Parametern des Umrichters und auch weiterer eventuell über den Systembus oder RS-485 angeschlos- sene Geräte.
  • Seite 223 H" + 6: PE2-Daten des Prozessdatenaustauschs – H" + 7: PE3-Daten des Prozessdatenaustauschs H + 6: Result (Beinhaltet den Fehlercode nach Ausführung des Dienstes bzw. Null, wenn kein Fehler vor- handen ist.) Für die Anweisung _MoviLink stehen SEW-Standardstrukturen zur Verfügung: Anweisung Standard- Elemente Kurzbeschreibung...
  • Seite 224 Compiler – Funktionen Standardfunktionen Anweisung Standard- Elemente Kurzbeschreibung struktur MLDATA WritePar (H"+0) Parameter, der bei Write-Diensten verschickt wird ReadPar (H"+1) Parameter, der bei Read-Diensten empfangen wird PO1 (H"+2) Prozessausgangsdatum 1 PO2 (H"+3) Prozessausgangsdatum 2 PO3 (H"+4) Prozessausgangsdatum 3 PI1 (H"+5) Prozesseingangsdatum 1 PI2 (H"+6) Prozesseingangsdatum 2...
  • Seite 225 Compiler – Funktionen Standardfunktionen Beispiel 1 #include <constb.h> MOVLNK ml; MLDATA mld; main() while(1) // Struktur ml initialisieren ml.BusType = ML_BT_S1; // RS-485 #2 ml.Address = 1; ml.Format = ML_FT_PAR2; // 2 PD mit Parameter ml.Service = ML_S_RD; // Lesen ml.Index = 8300+(0<<16);...
  • Seite 226 Compiler – Funktionen Standardfunktionen Parametereinstel- Datenaustausch über Parameterkanal lungen beim Emp- Adressierung über RS-485 (P810 ... P812) fänger Parameter Adresse Erklärung P810 0 ... 99 Einzeladressierung (Sender Adresse) P811 101 ... 199 Gruppenadressierung (Multicast), alle Empfänger mit gleicher Gruppen- adresse können vom Sender gleichzeitig beschrieben werden P812 Timeout-Zeitüberwachung (deaktiviert mit Einstellung 0 ms oder 650 ms) Adressierung über SBus P88_ und P89_...
  • Seite 227: Movcommdef

    Compiler – Funktionen Standardfunktionen HINWEIS ® ® Bei MOVIDRIVE B und MOVITRAC B wird für die Timeout-Überwachung überprüft, ob in der parametrierten Timeout-Zeit Telegramme empfangen werden. ® Bei MOVIMOT wird die Timeout-Überwachung mit den ersten empfangenen zy- klischen Frames (ML_FT... beim Sender) aktiviert. Azyklische Kommunikation schal- ®...
  • Seite 228 Compiler – Funktionen Standardfunktionen Eine Variablenstruktur, die die Prozessdaten beinhaltet wird im Compiler mit MCPDATA Variablenname; definiert: Datenstruktur für H": H"+0 Beinhaltet den Fehlercode der Verbindung bzw. Null, wenn kein Fehler vorhanden ist. 0x05000002 zeigt einen Time-out der Verbindung an. H"+1 PA1-Daten des Prozessdatenaustauschs H"+2...
  • Seite 229: Movcommon

    Compiler – Funktionen Standardfunktionen 17.3.16 _MovCommOn Der Befehl _MovCommOn kann nur mit MQx-Modulen verwendet werden. Syntax _MovCommOn() Beschreibung Der Befehl startet die zyklische Kommunikation, durch MovCommDef eingerichtete Kommunikationsbeziehungen werden aktiviert. Ab jetzt ist kein MovCommDef-Befehl mehr zulässig, ebenso kann kein MOVILINK-Befehl auf Adresse ≠ 253 (intern) verwen- det werden.
  • Seite 230: Sbuscommdef

    Compiler – Funktionen Standardfunktionen Beispiel main() _Nop( 17.3.18 _SBusCommDef Syntax _SBusCommDef( objekttyp, H) Beschreibung Mit dieser Anweisung wird ein Datenobjekt zur zyklischen oder azyklischen Datenüber- tragung eingerichtet. Damit können bis zu 2 Variablen (8 Byte) über den Systembus übertragen werden. Die Beschreibung des Datenobjekts erfolgt in einer Variablenstruk- tur, deren Anfangsvariable in h angegeben wird.
  • Seite 231 -Programm wartet an diesem Befehl so lange, bis das Telegramm gesendet wurde, aber maximal 10 ms. Nur durch eine Auswertung des Zustands (H+3) oder der erwarteten Antwort kann überwacht werden, ob das Tele- gramm richtig gesendet wurde. Für die Anweisung _SBusCommDef stehen SEW-Standardstrukturen zur Verfügung: Anweisung Standardstruk- Elemente...
  • Seite 232 Compiler – Funktionen Standardfunktionen Wenn über SCREC definierte Objekte über SBus1 oder SBus2 empfangen werden, wird dieses in den entsprechenden Systemvariablen H522 und H523 signalisiert, siehe Übersicht über die Systemvariablen (Seite 29). Bit 24 der ObjectNo definiert, ob die Daten mit dem CAN-Identifier (Bit 0 ... 10) über SBus1 oder SBus2 gesendet oder empfangen werden sollen: Bit 24 = 0: SBus1 (.ObjectNo = CAN_ID + SCD_SBUS1) Bit 24 = 1: SBus2 (.ObjectNo = CAN_ID + SCD_SBUS2);...
  • Seite 233 Compiler – Funktionen Standardfunktionen HINWEIS Bei der Wahl der Objektnummer CAN Identifier sind die folgenden Regeln einzuhal- ten: 1. Im gesamten SBus-Netzwerk darf eine Objektnummer nur 1 mal zum Senden ein- gerichtet sein. 2. Innerhalb eines Geräts darf eine Objektnummer nur 1 mal eingerichtet werden, ent- weder 1 mal zum Senden oder 1 mal zum Empfangen.
  • Seite 234: Sbuscommon

    Compiler – Funktionen Standardfunktionen Beispiel Siehe _SBusCommStat 17.3.19 _SBusCommOn Syntax _SBusCommOn() ® Beschreibung Der Befehl wurde bei MOVIDRIVE B durch _SBusCommState ersetzt, ist aber aus Gründen der Abwärtskompatibilität weiterhin verwendbar. Diese Anweisung stößt den Empfang von Daten und das zyklische Senden von zuvor festgelegten Datenobjekten an.
  • Seite 235: Setinterrupt

    Compiler – Funktionen Standardfunktionen Beispiel #include <constb.h> #define DATEN #declare DATUM DATEN:0 #define INTEL 0x100 #define ANZ_BYTES 4 SCTRCYCL Obj1; main() Obj1.ObjectNo = 1090; Obj1.CycleTime = 10; Obj1.Offset = 0; Obj1.Format = INTEL ¦ ANZ_BYTES // High und Low Byte setzen Obj1.DPointer = numof(DATEN);...
  • Seite 236: Setsys

    Compiler – Funktionen Standardfunktionen Beispiel #include <constb.h> T0Interrupt () // Anweisungen der Interrupt-Routine für Timer 0 main() // T0Interrupt dem System bekanntmachen und starten _SetInterrupt( SI_TIMER0,T0Interrupt ); while(1) // Hauptprogramm Task 1 17.3.22 _SetSys Syntax _SetSys( sys , H) plus® Beschreibung Setzt den Wert einer internen Systemgröße mit dem Wert einer IPOS -Variablen...
  • Seite 237 Compiler – Funktionen Standardfunktionen SS_BRAKE: Bremsenfunktion ein-/ausschalten – H = 0 -> aus – H = 1 -> ein SS_RAMPTYPE: Positionierrampenform angeben (ändert P916) – H = 0 -> linear – H = 1 -> sinus – H = 2 -> quadratisch –...
  • Seite 238: Settask

    Compiler – Funktionen Standardfunktionen Für die Anweisung _SetSys stehen SEW-Standardstrukturen zur Verfügung: Anweisung Standardstruktur Elemente Kurzbeschreibung _SetSys SSPOSRAMP Positionierrampe Beschleunigung (ms) Down Positionierrampe Verzögerung (ms) SSPOSSPEED Positionierdrehzahl rechts (0.1 U/min) Positionierdrehzahl links (0.1 U/min) SSPIDATA3 Anzahl der zu sendenden Prozess-Eingangsdaten...
  • Seite 239: Settask2

    Compiler – Funktionen Standardfunktionen Beispiel #include <constb.h> MeineTask3 () // Anweisungen der Task 3 main() // Task 3 dem System bekanntmachen und starten _SetTask ( ST3_START,MeineTask3 ); while(1) // Hauptprogramm 17.3.24 _SetTask2 Syntax _SetTask2( steuerwort, funktionsname ) Beschreibung Die Funktion dient dazu, eine selbstdefinierte Funktion als Task 2 festzulegen und diese zu starten bzw.
  • Seite 240: Setvarinterrupt

    Compiler – Funktionen Standardfunktionen 17.3.25 _SetVarInterrupt Syntax _SetVarInterrupt ( h1 , funktionsname ) ® ® Beschreibung Der Befehl ist im MOVIDRIVE A nicht verfügbar, nur ab MOVIDRIVE Der Befehl aktiviert einen Variablen-Interrupt mit der Datenstruktur ab der Variable H1. Ist die Bedingung für den Interrupt erfüllt, so wird die Funktion funktionsname ausge- führt.
  • Seite 241: Systemcall

    Compiler – Funktionen Standardfunktionen Variable Elemente Struktur Beschreibung VARINT Mode 0: Kein Interrupt-Event. Damit kann dieser einzelne Interrupt deaktiviert werden, ohne alle Interrupts abzuschalten. 1: Eines der Bits der Bezugsvariable, die mit der Maske CompVar aus- maskiert werden, hat seinen Zustand geändert: ([*SrcVar(t) ^ *SrcVar(t-T)] &...
  • Seite 242: Touchprobe

    Compiler – Funktionen Standardfunktionen Beispiel #include <constb.h> DrehzahlNull () // Ereignis-Funktion // Anweisungen der Ereignis-Funktion main() while(1) // Hauptprogramm Task 1 _SystemCall( SC_N0,DrehzahlNull ); // wenn Drehzahl == Null, Funktion aufrufen 17.3.27 _TouchProbe Syntax _TouchProbe( aktion ) Beschreibung Gibt einen Touch-Probe-Eingang frei bzw. sperrt diesen. Touch-Probe-Eingänge sind die Eingangsklemmen DI02 und DI03.
  • Seite 243: Wait

    Compiler – Funktionen Standardfunktionen Beispiel main() _TouchProbe( TP_EN1 ); // Freigabe des Touch-Probe-Eingangs DI02 17.3.28 _Wait Syntax _Wait( zeit ) Beschreibung Wartet die in einer Konstanten angegebene Zeit in Millisekunden (ms). Argumente zeit Konstante, welche die Wartezeit in Millisekunden angibt, keine Variable möglich. HINWEIS Soll die Wartezeit variabel sein, so muss statt des WAIT-Befehls ein Timer (H487 ...
  • Seite 244: Waitsystem

    Compiler – Funktionen Standardfunktionen Eine Eingangskombination kann gewählt werden, indem die zugehörigen Bits in der Maske auf 1 gesetzt werden. Um beispielsweise DI00 und DI03 abzufragen muss maske lauten: 0b1001 Beispiel #include <constb.h> main() _WaitInput( 1,0b100 ); // solange Klemme DI02 == HIGH ("1"), warten 17.3.30 _WaitSystem Syntax _WaitSystem( ereignis )
  • Seite 245: Wdon

    Compiler – Funktionen Standardfunktionen 17.3.32 _WdOn Syntax _WdOn( zeit ) Beschreibung Setzt den Wert des Watchdog-Zählers auf den in zeit angegebenen Wert. Läuft der Watchdog-Timer ab, so werden Task 1 und Task 2 angehalten und es erfolgt eine Feh- lermeldung. Das Ablaufen des Watchdog-Timers muss die Anwendung durch zy- klisches Neusetzen des Zählers verhindern.
  • Seite 246: Compiler - Beispiele

    Compiler – Beispiele Setzen von Bits und Ausgangsklemmen Compiler – Beispiele 18.1 Setzen von Bits und Ausgangsklemmen Für das Setzen von Einzelbits in Variablen gibt es zwei Wege: 1. Die Funktion _BitSet( Hx, y ) setzt das Bit y in der Variable x auf Eins. 2.
  • Seite 247: Löschen Von Bits Und Ausgangsklemmen

    Compiler – Beispiele Löschen von Bits und Ausgangsklemmen 18.2 Löschen von Bits und Ausgangsklemmen Für das Löschen von Einzelbits in Variablen gibt es zwei Wege: 1. Die Funktion _BitClear( Hx, y ) löscht das Bit y in der Variable x. 2.
  • Seite 248: Abfrage Von Bits Und Eingangsklemmen

    Compiler – Beispiele Abfrage von Bits und Eingangsklemmen 18.3 Abfrage von Bits und Eingangsklemmen Um abzufragen, welchen Pegel eine bestimmte Eingangsklemme hat, ist es notwendig, das betreffende Bit mithilfe einer Variablen zu testen. Die Variable ist entweder H483 (InputLevel), die die Pegel der binären Eingänge enthält, oder eine beliebige Variable h, die die Pegel nach Ausführung der Funktion _GetSys() enthält.
  • Seite 249: Flankenabfrage

    Compiler – Beispiele Flankenabfrage 18.4 Flankenabfrage 18.4.1 Beispiel 1 Zusätzlich zum Pegel einer Eingangsklemme kann die steigende und fallende Flanke abgefragt und ausgewertet werden. In den folgenden Beispielprogrammen wird der Ausgang DO02 bei positiver oder negativer Flanke an DI02 getoggelt. Positive Flankenabfrage #include <const.h>...
  • Seite 250 Compiler – Beispiele Flankenabfrage Negative Flankenabfrage #include <const.h> #include <io.h> // Variables for edge generation long lDI02FallingEdge, lDI02LastState, lDO02State, lInputLevel; main() while(1) // Read DI02 lInputLevel = (InputLevel & 0x00000004); // Generate edge DI02 lDI02FallingEdge = !lInputLevel && (lDI02LastState); lDI02LastState = lInputLevel; if(lDI02FallingEdge) lDO02State = (!lDO02State) // Set output DO02...
  • Seite 251: Beispiel 2

    Compiler – Beispiele Flankenabfrage 18.4.2 Beispiel 2 In Beispiel 2 wird abhängig von der steigenden Flanke an DI02 der Programmteil inner- halb der if-Abfrage bearbeitet. /*============================================= IPOS-Quelldatei ===============================================*/ #include <constb.h> #include <iob.h> long BinInputsNew, BinInputsOld; /*============================================= Hauptfunktion (IPOS-Eintrittsfunktion) ===============================================*/ main() /*------------------------------------- Initialisierung --------------------------------------*/...
  • Seite 252: Betrag Einer Zahl

    Compiler – Beispiele Betrag einer Zahl 18.5 Betrag einer Zahl plus® Das folgende Beispielprogramm soll zeigen, wie mit dem IPOS -Compiler der Be- trag einer Zahl gebildet werden kann. In Task 1 läuft ein Reversierprogramm, das den Antrieb um 400000 Inkremente nach rechts und 400000 Inkremente nach links relativ verfährt.
  • Seite 253: Compiler - Beispiele Movilink-Befehl

    Compiler – Beispiele MoviLink-Befehl 18.6 MoviLink-Befehl Der Befehl _MoviLink führt nach Aufruf einen Daten- oder Parameteraustausch von oder zu anderen Geräten über SBus oder RS-485 aus. Ebenso ist es möglich gerätee- igene Parameter zu lesen und zu verändern. Um die Funktion des Befehls _MoviLink zu verdeutlichen, sind hier drei Beispiele auf- geführt: •...
  • Seite 254: Beschreiben Einer Variablen Über Sbus

    Compiler – Beispiele MoviLink-Befehl 18.6.2 Beschreiben einer Variablen über SBus /*========================================= Variable H200 of inverter connected via SBus is written depending on DI17 in task 1: DI17 = 0 -> -1000 DI17 = 1 -> 1000 =========================================*/ /*========================================= IPOS Source file =========================================*/ #include <constb.h>...
  • Seite 255: Lesen Eines Parameters Über Sbus

    Compiler – Beispiele MoviLink-Befehl 18.6.3 Lesen eines Parameters über SBus /*========================================= Process data configuration of inverter connected via SBus is written to variable lPDData in task 1. The received values correspond to the following process data configuration: 0 = PARAM + 1PD 1 = 1PD 2 = PARAM + 2PD 3 = 2PD...
  • Seite 256: Scom-Kommunikation

    Compiler – Beispiele SCOM-Kommunikation 18.7 SCOM-Kommunikation Das folgende Beispiel zeigt ein Programm, das zwei Variable zyklisch alle 10 ms über SBus sendet. Ein weiteres Programm empfängt die gesendeten Daten. Mit dem Befehl _SBusCommDef wird ein Datenobjekt zur zyklischen Datenübertragung eingerichtet. Die Beschreibung des Sendeobjekts erfolgt in der Variablenstruktur tBusTr, die Beschreibung des Empfangsobjekts in TBusRec.
  • Seite 257: Compiler - Beispiele Scom-Kommunikation

    Compiler – Beispiele SCOM-Kommunikation 18.7.2 Sender Die Variablen H208 und H209 werden zyklisch alle 10 ms an einen anderen Umrichter gesendet. Die Werte von H208 und H209 können mit dem Eingang DI17 verändert wer- den. DI17 = 0: H208 = 111111 / H209 = 222222 DI17 = 1: H208 = 222222 / H209 = 444444 Task 2 ist in diesem Beispielprogramm nicht implementiert.
  • Seite 258: Touch-Probe Interrupt-Verarbeitung

    Compiler – Beispiele Touch-Probe Interrupt-Verarbeitung // Main program loop while(1) if( DI17 ) Data_Var1 = 222222; Data_Var2 = 444444; else Data_Var1 = 111111; Data_Var2 = 222222; 18.8 Touch-Probe Interrupt-Verarbeitung Auf einem Taktband werden Kisten zu einer Füllstation transportiert. Ein Näherungs- initiator (DI02) erkennt die nächste Kiste.
  • Seite 259 PTP: Position nach TP-Ereignis FS: Füllstation X13:3 / DI02: Näherungssensor TP_Max_Pos: Maximale Zielposition SEW: Kiste auf Transportband *============================================================================== Beschreibung: Der Start eines Maschinentaktes erfolgt ueber den Eingang DI10. Zielposition ist aktuelle Motorposition (H511) plus TP_Max_Pos (H11). Wird der Touchprobe Eingang DI02 nicht bedämpft, faehrt der Antrieb auf diese Zielposition.
  • Seite 260 Compiler – Beispiele Touch-Probe Interrupt-Verarbeitung SSPOSSPEED tPosSpeed; SSPOSRAMP tPosRamp; /*============================================= Interruptroutine Touchprobe ===============================================*/ Touchprobe() lPosition = TpPos1_Mot + TP_Pos; //neue Zielposition berechnen _TouchProbe( TP_DIS1 ); //Touchprobe deaktivieren /*============================================= Hauptfunktion (IPOS-Eintrittsfunktion) ===============================================*/ main() //Initialisierung State = 0; // Initialisierung der Interruptroutine fuer den Touch Probe Eingang DI02 _SetInterrupt( SI_TOUCHP1,Touchprobe );...
  • Seite 261: Zustandsautomat, Feldbussteuerung Mit Notbetrieb

    Compiler – Beispiele Zustandsautomat, Feldbussteuerung mit Notbetrieb 18.9 Zustandsautomat, Feldbussteuerung mit Notbetrieb Ein Antrieb soll im Normalbetrieb über den Feldbus gesteuert werden. Im Fall einer Busstörung soll aber auch ein manueller Betrieb über Klemme und Analogwert möglich sein. Außerdem ist ein Mischbetrieb (Feldbus-Sollwert + Analog-Sollwert) vorzusehen. Der Betriebs-Mode wird über die Eingangsklemmen DI10 und DI11 eingestellt.
  • Seite 262 Compiler – Beispiele Zustandsautomat, Feldbussteuerung mit Notbetrieb /*=================================================== Operating mode is selected with input terminals DI10 and DI11 and indicated at the outputs DO10 and DO11. The following operating modes are possible: Mode 0: Control and setpoint via field bus Mode 1: Control via field bus, setpoint added to analog value 1 Mode 2: Control via terminals, setpoint analog 1...
  • Seite 263 Compiler – Beispiele Zustandsautomat, Feldbussteuerung mit Notbetrieb /*=================================================== Main program ===================================================*/ main () // Initialization ================================= // Initialize data structure bus data busdata.BusType = 3; //bus type fieldbus busdata.Len = 3; busdata.PO1 = 0; busdata.PO2 = 0; busdata.PO3 = 0; // Activate task 2 _SetTask2( T2_START,buscontrol );...
  • Seite 264: Mode 0

    Compiler – Beispiele Zustandsautomat, Feldbussteuerung mit Notbetrieb /*=================================================== Functions ===================================================*/ mode_0() if( busdata.PO1 == 6 ) enable; else rapidstop; speed = busdata.PO2; setfixedsetpoint; activatefixedsetpoint; mode_1() if(busdata.PO1 == 6) enable; else rapidstop; _GetSys( analog,GS_ANINPUTS ); offset = (analog.Input1 + 15) / 10; speed = busdata.PO2 + offset;...
  • Seite 265 Compiler – Beispiele Zustandsautomat, Feldbussteuerung mit Notbetrieb 18.9.1 Mode 0 Steuerung und Sollwert nur über Feldbus Die Steuerung erfolgt ausschließlich über den Feldbus. Dabei soll ein reduziertes Steu- erwort (0 = Schnellstopp, 6 = Freigabe) verwendet werden. Der Sollwert wird bipolar über den Feldbus vorgegeben (-1500 1/min ...
  • Seite 266: Compiler Programmgerüst

    Compiler – Beispiele Compiler Programmgerüst 18.10 Compiler Programmgerüst Das folgende Beispielprogramm kann als Grundgerüst bei der Erstellung eines plus® IPOS -Programms genutzt werden. Es beinhaltet eine Zustandsmaschine, die vier Betriebsarten kennt: • DISABLE: keine Betriebsart angewählt • JOGGING: Tippbetrieb • HOMING: Referenzfahrt •...
  • Seite 267 Dies ist eine Beispiel-Software, die Funktionsfähigkeit ist NICHT garantiert, Benutzung unter Ausschluss jeglicher Garantieleistungen und auf eigene Gefahr. =============================================================================*/ #include <const.h> //Defaultpfad: c:\programme\sew\movitools\projects\include #include <io.h> //Einbinden der Namen der Systemvariablen und Konstanten //Variablenbereiche definieren #pragma var H128 H149 // (Defaulbereich für Compiler-Hilfsvar. H400 H419) #pragma globals H380 H449 // (Defaulbereich globale "long"-Variablen H420 H449)
  • Seite 268 Compiler – Beispiele Compiler Programmgerüst // Variablen Betriebsartensteuerung long lOpMode; //aktuell vorgewählte Betriebsart long lGlobalStateMachine; //Zustand der globalen Zustandsmaschine #define DISABLE //globale Zustandsmaschine: Zustand DISABLE #define JOGGING //globale Zustandsmaschine: Zustand JOGGING #define HOMING //globale Zustandsmaschine: Zustand HOMING #define POSITIONING //globale Zustandsmaschine: Zustand POSITIONING long lSubStateHoming;...
  • Seite 269 Compiler – Beispiele Compiler Programmgerüst /*------------------------------------- Hauptprogramm-Schleife --------------------------------------*/ while(1) //Hauptzustandsmaschine bearbeiten switch (lGlobalStateMachine) // keine Betriebsart angewaehlt oder moeglich case DISABLE: break; // Betriebsart "Tippen" case JOGGING: fnJogging(); break; // Betriebsart "Referenzieren" case HOMING:fnHoming(); break; // Betriebsart "Positionieren" case POSITIONING: fnPositioning(); break;...
  • Seite 270 Compiler – Beispiele Compiler Programmgerüst /*============================================= = Funktion: fnJogMode() = Tippen der Achse. Mit 2 Eingängen kann die Achse nach rechts und links verfahren werden. = Ist keine Tipptaste gesetzt, steht der Antrieb in Halteregelung. Würde mit Freigabe = getippt, würde die Hauptzustandsmaschine in den State 99 wegspringen. ===============================================*/ fnJogging() // Instruktionen beim Eintritt in den Hauptzustand "Jogging"...
  • Seite 271 Compiler – Beispiele Compiler Programmgerüst /*============================================= = Funktion: fnHoming() = Referenzfahrt der Achse = Es wirken die Parameter der Gruppe 97x = Eine positive Flanke an REF-START startet eine neue Referenzfahrt ===============================================*/ fnHoming() // Instruktionen beim Eintritt in den Hauptzustand "Homing" // Unterzustand definieren lSubStateHoming = HOMING_STOPPED;...
  • Seite 272 Compiler – Beispiele Compiler Programmgerüst /*============================================= = Funktion: fnPositioning() = Positionierbetrieb ===============================================*/ fnPositioning() // Instruktionen beim Eintritt in den Hauptzustand "Positioning" // Unterzustand definieren lSubStatePositioning = POSITIONING_STOPPED; // Betriebsart quittieren _BitSet(lPE_StatusWord,11); _BitSet(lPE_StatusWord,12); // zyklische Bearbeitung, solange Hauptzustand "Positioning" aktiv // PA Daten einlesen _GetSys( tPA.BusType ,GS_PODATA );...
  • Seite 273 Compiler – Beispiele Compiler Programmgerüst /*============================================= = Funktion: fnTask2() = Für zeitkritische Programmteile, die asynchron = zu Task 1 laufen können ===============================================*/ fnTask2() // Umrichterzustand auslesen _GetSys( lDriveState,GS_SYSSTATE ); // Fehlernummer auslesen _GetSys( lErrorCode,GS_ERROR ); // PA Daten einlesen _GetSys( tPA.BusType ,GS_PODATA ); // Sprungverteiler bilden/ Betriebsart wählen // virtuelle Feldbus-Klemmen nur nutzbar, wenn keine DIO oder DIP gesteckt // in diesem Fall "lPA_ControlWordHigh...
  • Seite 274 Compiler – Beispiele Compiler Programmgerüst // Betriebsart "Referenzieren" case HOMING: if (lDriveState> =0xA) if (lOpMode==JOGGING) lGlobalStateMachine = JOGGING; if (lOpMode==DISABLE) lGlobalStateMachine = DISABLE; if (lOpMode==POSITIONING) lGlobalStateMachine = POSITIONING; else lGlobalStateMachine = DISABLE; break; // Betriebsart "Positionieren" case POSITIONING:if ((lDriveState> =0xA)&&(MY_REFERENCED)) if (lOpMode==JOGGING) lGlobalStateMachine = JOGGING;...
  • Seite 275: Compiler - Fehlermeldungen

    Konstante stehen DOPPELPUNKT nach case-Konstante muss Doppelpunkt stehen DEFAULT default-Zweig ist fehlerhaft oder an falscher Position COMPILER Fehlertext interner Systemfehler (an SEW wenden) CONTINUE SEMIKOLON nach continue fehlt Semikolon ";" DECLARE IDENTIFIER der Bezeichner hinter #declare ist ungültig...
  • Seite 276: Assembler - Einführung

    Assembler – Einführung Einstellen der Anwenderverfahreinheiten Assembler – Einführung 20.1 Einstellen der Anwenderverfahreinheiten Im Programmkopf des Assemblers können die Wegfaktoren "ZÄHLER (Numerator), NENNER (Denominator)" und "EINHEIT (Unit)" zur Bestimmung der Anwenderverfahr- einheit (z. B. mm, Umdr.) eingetragen werden. 20.1.1 Wegfaktoren ZÄHLER /NENNER plus®...
  • Seite 277 Assembler – Einführung Einstellen der Anwenderverfahreinheiten HINWEIS Falls Zähler oder Nenner nicht ganzzahlig sind, kann eine höhere Rechengenauigkeit erzielt werden, wenn Zähler und Nenner um den gleichen Faktor (z. B. 10, 100, 1000, ...) erweitert werden. Durch die Erweiterung ergibt sich keine Einschränkung des Ver- fahrbereiches.
  • Seite 278: Einheit

    Assembler – Einführung Einstellen der Anwenderverfahreinheiten Fall B: Inkremente • Wegfaktor ZÄHLER = 1 • Wegfaktor NENNER = 1 Fall C: Abtriebs- • Wegfaktor ZÄHLER = Inkremente/Motorumdrehung × Getriebe i = 4096 × 4 = 16384 umdrehungen • Wegfaktor NENNER = 1 Praxishinweis Praxishinweis zur Wegfaktorenbestimmung bei der Inbetriebnahme.
  • Seite 279: Erste Schritte

    Assembler – Einführung Erste Schritte 20.2 Erste Schritte plus® 20.2.1 IPOS Assembler starten plus® ® Der IPOS -Assembler wird aus dem MOVITOOLS MotionStudio heraus gestartet. plus® plus® • Starten Sie den IPOS -Assembler in analoger Weise wie den IPOS -Compi- ler.
  • Seite 280: Erstellen Eines Neuen Programms

    Assembler – Einführung Erste Schritte 20.2.2 Erstellen eines neuen Programms plus® Um den IPOS -Assembler kennen zu lernen, werden Sie jetzt ein erstes Programm schreiben, welches eine Variable im Takt von 500 ms von 0 bis 99 inkrementiert. 511514635 Die Eingabe der Assembler-Befehle erfolgt über die Eingabeunterstützung. Um das Di- alogfenster der Eingabeunterstützung zu öffnen, wählen Sie das Symbol 511519755 Um den ersten Assembler-Befehl in das Programm einzufügen, klicken Sie in [Haupt-...
  • Seite 281: Assembler - Einführung Erste Schritte

    Assembler – Einführung Erste Schritte Fügen Sie jetzt die restlichen Befehle mit Hilfe der Eingabeunterstützung in das Pro- gramm ein. Die folgende Tabelle gibt die Parameter für die Befehle des gesamten Pro- gramms an. Wenn Sie Hilfe zu einem Befehl benötigen, markieren Sie diesen und Drü- cken Sie die <F1>...
  • Seite 282: Assembler - Editor

    Assembler – Editor Assembler – Editor plus® Nach dem Starten des IPOS -Assembler zeigt sich der Editor: 511872523 [1] Menüleiste [4] Variablenfenster [2] Symbolleiste [5] Statusleiste [3] Programmfenster In der Statusleiste wird angezeigt, ob das Gerät online oder offline ist. Außerdem wird die Belegung des Programmspeichers in Prozent und die Nummer der angewählten Programmzeile angezeigt.
  • Seite 283: Beispiel

    Assembler – Editor Beispiel 21.1 Beispiel Der Geber eines Motors liefert 4096 Inkremente pro Umdrehung. Am Motor ist eine Spindel mit einer Steigung 10 mm/Umdrehung, die einen Wagen horizontal verfährt. Der Anwender will die anzufahrenden Positionen in mm angeben. Zähler und Nenner sind in diesem Fall folgendermaßen zu belegen. •...
  • Seite 284: Kompilieren Und Download

    Assembler – Editor Kompilieren und Download Mit Anwahl eines Befehls erscheint eine Eingabemaske, in der verfügbare Argumente der gewählten Funktion eingegeben werden müssen. Sind alle Argumente eingegeben, so wird der Befehl mit der Schaltfläche [OK] eingefügt. Mit der Taste <Entf> können markierte Befehlszeilen aus dem Programm gelöscht werden.
  • Seite 285: Programme Starten / Stoppen

    Assembler – Editor Programme Starten / Stoppen Im nächsten Schritt muss das übersetzte Programm in den Umrichter übertragen wer- den. Dies geschieht über den Menüpunkt [Programm] / [Übersetzen + Download] oder über das Symbol der Symbolleiste. In der Statuszeile wird angezeigt, ob der Download des Programms erfolgreich war. 512034955 plus®...
  • Seite 286: Debugger

    Assembler – Editor Debugger 21.6 Debugger Der integrierte Debugger ist ein Hilfsmittel, um ein Programm im Einzelschrittmodus zu durchlaufen. Wenn das Programm in den Umrichter übertragen wurde, stehen drei Funktionen zur Verfügung. 21.6.1 Ausführen bis Cursor Über den Menüpunkt [Ausführen] / [Ausführen bis Cursor] oder mit dem Symbol der Symbolleiste wird das Programm bis zur aktuellen Cursor-Position ausgeführt.
  • Seite 287: Programm Aus Umrichter Laden

    Assembler – Editor Programm aus Umrichter laden 21.7 Programm aus Umrichter laden plus® Im IPOS -Assembler besteht die Möglichkeit, ein Upload eines im Umrichter gespei- cherten Programms durchzuführen. Dies geschieht über den Menüpunkt [Programm] / [Upload] oder über das Symbol der Symbolleiste.
  • Seite 288: Assembler - Programmierung

    Assembler – Programmierung Grundlagen Assembler – Programmierung 22.1 Grundlagen plus® IPOS -Assembler Bestandteil Programmpakets ® MOVITOOLS MotionStudio. Die Eingabe des Assembler-Programms erfolgt masken- geführt. 22.1.1 Programmkopf Stellen Sie im Programmkopf bei Anwenderprogrammen, in denen Positionierbefehle verwendet werden, die Anwenderverfahreinheiten ein. 22.1.2 Task 1 / Task 2 / Task 3 plus®...
  • Seite 289: Assembler - Programmierung Grundlagen

    Assembler – Programmierung Grundlagen 22.1.6 Programmschleifen Programmschleifen bestehen aus Schleifenbeginn (LOOPB) und Schleifenende (LOOPE). Die Anzahl der Schleifendurchläufe wird im Argument des Befehls LOOPB festgelegt. Geschachtelte Schleifen sind möglich, die Schachtelungstiefe sollte nicht größer als 16 sein. HINWEIS Programmschleifen dürfen auf keinen Fall mit einem Sprungbefehl verlassen werden. Sprungbefehle innerhalb einer Programmschleife sind erlaubt.
  • Seite 290: Variablen

    Assembler – Programmierung Grundlagen 22.1.10 Variablen Alle Variablen (H0 - H1023) können gelesen und geschrieben werden. Die Variablen haben einen Wertebereich von -2 ... +2 - 1. Die Variablen H0 ... H127 werden sofort nach der Eingabe spannungsausfallsicher gespeichert, wenn sie in der Variablenliste plus®...
  • Seite 291: Binäre Ein-/Ausgänge

    Assembler – Programmierung Binäre Ein-/Ausgänge 22.2 Binäre Ein-/Ausgänge 22.2.1 Binäre Eingänge plus® Direkte Abfrage Im IPOS -Programm kann der Klemmenpegel von binären Eingängen mit Sprung- befehlen abgefragt werden. Dabei ist in der Eingabemaske der Klemmenpegel (HI/LO) auszuwählen, der zur Ausführung des Sprungbefehls führen soll. Klemmen, die für diese Funktion benutzt werden sollen, sind mit einer "1"...
  • Seite 292 Assembler – Programmierung Binäre Ein-/Ausgänge Abfrage über Die Klemmenpegel der binären Eingänge des Grundgeräts und der eventuell vorhande- ® Systemvariable nen Option werden zyklisch auf der Systemvariablen H483 INPUT LVL (MOVIDRIVE ® A) / H520 INPUT LVL B (MOVIDRIVE B) abgebildet. Dabei sind die Bits der System- variablen H483 je einem Hardware-Eingang zugeordnet.
  • Seite 293: Binäre Ausgänge

    Assembler – Programmierung Binäre Ein-/Ausgänge 22.2.2 Binäre Ausgänge Lesen der binären Die Klemmenpegel der binären Ausgänge des Grundgeräts und einer eventuell vorhan- Ausgänge denen Option werden zyklisch auf der Systemvariablen H482 OUTPUT LVL (MOVI- ® ® DRIVE A) / H521 OUTPUT LVL B (MOVIDRIVE B) abgebildet.
  • Seite 294 Assembler – Programmierung Binäre Ein-/Ausgänge Setzen einzelner Für das Setzen / Rücksetzen einzelner Ausgänge werden die Befehle BSET und Ausgänge BCLR verwendet. Hierzu ist die zur Klemme gehörende Bitnummer als Operand in die Befehlsmaske einzutragen. Im nachfolgenden Beispiel soll der Ausgang DO01 auf "1" gesetzt werden: 512416139 Übersicht über Befehle und Parameter zum Setzen / Rücksetzen von binären Ausgän-...
  • Seite 295 Assembler – Programmierung Binäre Ein-/Ausgänge Setzen mehrerer Das gleichzeitige Setzen mehrerer binärer Ausgänge, z. B. zur Ausgabe einer binär-co- Ausgänge dierten Tabellenpositionsnummer, ist möglich, indem die Systemvariable H480 oder H481 mit dem dezimalen Wert der Tabellenpositionsnummer beschrieben wird. Tabelle 5: Zuordnung Systemvariable H480 / H481 zu binären Ausgangsklemmen Binäre Ausgänge Binärausgänge Option DIO11A/DIP11A H480 Binärausgänge...
  • Seite 296: Analoge Ein-/Ausgänge

    Assembler – Programmierung Analoge Ein-/Ausgänge 22.3 Analoge Ein-/Ausgänge Tabelle 6: Übersicht über die analogen Ein-/Ausgänge Analoge Ein-/Ausgänge Eingänge Ausgänge Grundgerät Option Option DIO11 Ein-/Ausgang Klemmenbezeichnung AI11 AI12 AGND AI21 AI22 AGND AOV1 AOC1 AGND AOV2 AOC2 AGND Die analogen Eingänge sind Differenzeingänge. Die Ein-/Ausgänge können wahlweise als U- oder I-Ein-/Ausgänge genutzt werden.
  • Seite 297: Assembler - Befehle

    Assembler – Befehle Allgemeine Hinweise Assembler – Befehle 23.1 Allgemeine Hinweise • Das Ergebnis der Rechenoperation wird immer dem linken Argument (immer Variable) zugewiesen. Das zweite Argument (Variable oder Konstante) bleibt immer unverändert. Das Ergebnis einer mathematischen Operation ist immer ganzzahlig. •...
  • Seite 298: Bit-Befehle

    Assembler – Befehle Befehlsübersicht 23.2.2 Bit-Befehle Befehle zum Ändern von einzelnen Bits innerhalb einer Variablen. Diese sind: • Setzen/Löschen/Verschieben von Bits Befehl Argumente Beschreibung Siehe BCLR H.Bit = 0 Bit löschen. BCLR (Seite 307) BIT CLEAR BMOV H.Bit = H.Bit Bit kopieren.
  • Seite 299: Positionierbefehle

    Assembler – Befehle Befehlsübersicht 23.2.4 Positionierbefehle Befehle zur Positionierung des Antriebs: • Referenzfahrt • Positioniere absolut/relativ / auf Touch-Probe Befehl Beschreibung Siehe Führt eine Referenzfahrt durch. (Seite 323) GO POSITION 0 Positioniere absolut, Variable. (Seite 325) GO ABSOLUTE Positioniere absolut, Konstante. Positioniere absolut, Variable, indirekt.
  • Seite 300: Setzbefehle

    Assembler – Befehle Befehlsübersicht 23.2.6 Setzbefehle Befehle zum • Setzen von Variablen • Fehlerreaktionen • Laden von Systemgrößen in Variablen • Schreiben von Systemgrößen in Systemvariablen • Initialisierung der Interrupt-Routinen Befehl Beschreibung / Argumente Siehe COPY Blockweises Kopieren von Variablen. COPY (Seite 336) GETSYS...
  • Seite 301: Vergleichsbefehle

    Assembler – Befehle Befehlsübersicht 23.2.8 Vergleichsbefehle Befehle zum Vergleich von Variablen und Konstanten. Befehl Argumente Siehe ANDL H = H && H ANDL (Seite 358) LOGICAL AND CPEQ H = H == H CPEQ (Seite 355) COMPARE EQUAL H = H == K CPGE H = H >...
  • Seite 302: Arithmetische Befehle

    Assembler – Befehle Arithmetische Befehle 23.3 Arithmetische Befehle 23.3.1 Grundrechenarten ADD / SUB / MUL / DIV Die vier Grundrechenarten werden unter Berücksichtigung der Vorzeichen ausgeführt und können mit Variablen H und Konstanten K ausgeführt werden. Das 1. Argument ist immer eine Variable H, als 2.
  • Seite 303: Arithmetische Hilfsoperationen Not / Mod

    Assembler – Befehle Arithmetische Befehle MUL / MULTIPLY Der Befehl MUL multipliziert vorzeichenrichtig eine Variable mit einer Variablen oder Konstanten. Befehlsaufbau Mxxx: Marke (optional) Mxxx MUL X1 * X2 X1: Variable (Faktor und Produkt) X2: Variable oder Konstante (Faktor) MUL HXX * HYY Die Variable HXX ist die Multiplikation von Variable HXX und HYY.
  • Seite 304: Logische Verknüpfungen And / Or / Xor

    Assembler – Befehle Arithmetische Befehle MOD / MODULO Der Befehl liefert den ganzzahligen Rest der Division einer Variablen durch eine Vari- able oder Konstante. Das Vorzeichen des Ergebnisses ist gleich dem Vorzeichen der ersten Variablen. Befehlsaufbau Mxxx: Marke (optional) Mxxx MOD X1 mod X2 X1: Variable (Dividend und Rest der Division) X2: Variable oder Konstante (Divisor) MOD HXX mod HYY...
  • Seite 305: Shift-Befehle Shl / Shr / Ashr

    Assembler – Befehle Arithmetische Befehle Der Befehl XOR führt eine bitweise XOR-Verknüpfung einer Variablen mit einer Variab- len oder einer hexadezimalen Konstanten aus. Befehlsaufbau Mxxx: Marke (optional) Mxxx XOR X1 XOR X2 X1: Variable (Ergebnis und Ausgangswert) X2: Variable oder Konstante (Ausgangswert) XOR HXX XOR HYY Die Variable HXX ist die bitweise XOR-Verknüpfung von Variable HXX und HYY.
  • Seite 306 Assembler – Befehle Arithmetische Befehle SHR / SHIFT Der Befehl SHR schiebt den Inhalt einer Variablen um die Anzahl der Bits nach rechts, RIGHT die in einer Variablen oder Konstanten angegeben sind. Von links werden Nullen nach- geschoben. Befehlsaufbau Mxxx: Marke (optional) Mxxx SHR X1 >...
  • Seite 307: Bitbefehle

    Assembler – Befehle Bitbefehle 23.4 Bitbefehle 23.4.1 Bitbefehle BSET / BCLR / BMOV / BMOVN BSET / BIT SET Der Befehl BSET setzt ein Bit innerhalb einer Variablen auf 1. Die Bitstellen in der Vari- ablen besitzen die Nummern 0 ... 31. Das niederwertigste Bit hat die Nummer 0. Wird zum Beispiel in der Systemvariablen H481 STD.OUT IP ein Bit gesetzt, so kann damit direkt ein binärer Ausgang gesetzt werden.
  • Seite 308 Assembler – Befehle Bitbefehle BMOVN / BIT Der Befehl BMOVN kopiert ein Bit von einer Variablen in ein Bit von einer anderen Va- MOVE NEGATE riablen und negiert es dabei. Die Bitstellen einer Variablen besitzen die Nummern 0 ... 31. Das niederwertigste Bit hat die Nummer 0. Befehlsaufbau Mxxx: Marke (optional) Mxxx BMOVN HX1.X2 =...
  • Seite 309: Kommunikationsbefehle

    Assembler – Befehle Kommunikationsbefehle 23.5 Kommunikationsbefehle 23.5.1 MOVLNK Beschreibung siehe _MoviLink (Seite 222) Befehlsstruktur Anweisung Standardstruktur Elemente Kurzbeschreibung _MoviLink MOVLNK BusType (H+0) mögliche Bustypen: ML_BT_S0 = 1 (RS485 #1) ML_BT_S1 = 2 (RS485 #2) ML_BT_SBUS1 = ML_BT_SBUS = 5 ML_BT_SBUS2 = 8 Address (H+1) 0...99: Einzeladresse 100...199: Gruppenadresse...
  • Seite 310 Assembler – Befehle Kommunikationsbefehle Die folgende Tabelle zeigt Ihnen diejenigen Elemente, die gerätespezifischen Beson- derheiten aufweisen. Element Gerätespezifische Besonderheiten ® ® MOVIDRIVE MOVITRAC BusType (H+0) nur ® 2: (RS485 an X13) 2: (RS485 an FSC/FIO11B) 2: (RS485 zu MOVIMOT 5: (SBUS an X12) 5: (SBUS an FSC/FIO21B) 8: (über DFC11B) Format (H+2)
  • Seite 311 Assembler – Befehle Kommunikationsbefehle Beispiel 1 Lesen eines "geräteinternen" Parameters (Analogeingang AI1) Der Anzeigeparameter P020 mit der Indexnummer 8331 wird mit nachfolgendem plus® IPOS -Programm und Parametereinstellung gelesen und auf die Variable H011 ge- schrieben. Die Variablenstruktur wurde hier im Variablen-Editierfenster eingegeben. Es ist auch möglich die Variablenstruktur mit SET-Befehlen im Programm zu erstellen.
  • Seite 312 Assembler – Befehle Kommunikationsbefehle Einstellung oben: Sender (Master) / unten: Empfänger (Slave) 514453899 H0 Bus-Type SBus H1 Address SBus-Adresse des Empfängers (Slave) H2 Frametype nur Para H3 Service Lesen H4 Index 11005 = Index von H5 H5 D-Pointer Datenpointer Wert liegt bei H9 Handbuch –...
  • Seite 313 Assembler – Befehle Kommunikationsbefehle ® Beispiel 3 Ansteuern eines MOVIMOT über RS-485 und 3PD ® ® Das MOVIMOT ist gemäß MOVIMOT -Betriebsanleitung in Betrieb zu nehmen. ® Eine Kommunikation mit MOVIMOT ist nur über RS-485 möglich. Eine Ansteuerung kann nur über den Prozessdatenkanal mit 2PD oder 3PD (min. Steuerwort und Dreh- zahl) erfolgen.
  • Seite 314: Movcom

    Assembler – Befehle Kommunikationsbefehle HINWEIS ® ® Bei MOVIDRIVE B und MOVITRAC B wird für die Timeout-Überwachung überprüft, ob in der parametrierten Timeout-Zeit Telegramme empfangen werden. ® Bei MOVIMOT wird die Timeout-Überwachung mit den ersten empfangenen zy- klischen Frames (ML_FT... beim Sender) aktiviert. Azyklische Kommunikation schal- ®...
  • Seite 315: Movon

    Assembler – Befehle Kommunikationsbefehle Variablenstruktur der Parameterdaten H*+0 Beinhaltet den Fehlercode nach Ausführung des Parameterdienstes bzw. Null, wenn kein Fehler vorhanden ist. Die Fehler sind nach MOVILINK kodiert. H*+1 0: keine Aktion oder Parameter-Datenaustausch abgeschlossen. 1: Start des Parameter-Datenaustausch H*+2 1: Lese-Dienst 2: Schreiben mit Speichern auf nichtflüchtigen Speicher 3: Schreiben ohne Speichern...
  • Seite 316: Scom

    Der Datenaustausch ist nur auf dem Systembus möglich und überträgt Inhalte von Va- riablen. Ein Datenaustausch innerhalb des Umrichters ist nicht möglich. Statt eines SEW-eigenen Protokolls (MOVILINK) wird ein Standard-CAN-Telegramm (11-Bit-Iden- tifier) verwendet, so dass auch mit Fremdprodukten kommuniziert werden kann (siehe ®...
  • Seite 317 Assembler – Befehle Kommunikationsbefehle Gerät [1] sendet zyklisch oder azyklisch das Objekt mit der Nr. 1100. Gerät [2] empfängt die Daten. Gerät [3] ignoriert die Daten, wartet aber auf Daten mit der Objektnummer 1102. Einstellungen bei Sender und Empfänger Sender Empfänger plus®...
  • Seite 318 Assembler – Befehle Kommunikationsbefehle Objektstruktur Objektnummer (CAN-Bus-ID): die Objektnummer dient zur Adressierung des Daten- objektes. Für den Datenaustausch müssen die Objektnummern bei Sender (TRANSMIT) und Empfänger (RECEIVE) gleich sein. Zykluszeit in ms, gibt das Zeitintervall an, nach dem die Daten erneut gesendet werden. Gültige Zykluszeiten: Siehe dazu _SbusCommDef (Seite 227) Achtung:...
  • Seite 319 Assembler – Befehle Kommunikationsbefehle TRANSMIT Dieses Argument initialisiert ein Datenobjekt, dessen Nutzdaten sofort einmalig gesen- ACYCLIC det werden. Die Variable H des Befehls SCOM TRANSMIT ACYCLIC H definiert den Anfang der Kommunikations- und Nutzdaten. Es ist kein SCOMON-Befehl notwendig. Sollen mehrere Variablen gesendet werden, so ist dies mit dem SCOM TRANSMIT ACYCLIC H-Befehl möglich, indem vor jedem Aufruf des Befehls der Variablenzeiger plus®...
  • Seite 320 Assembler – Befehle Kommunikationsbefehle Objektstruktur Objektnummer: die Objektnummer dient zur Adressierung des Datenobjektes. Für den Datenaustausch müssen die Objektnummern bei Sender (TRANSMIT) und Empfänger (RECEIVE) gleich sein. Anzahl der Daten-Bytes und Datenformat Wert Funktion 0...3 0...8 Anzahl der Daten-Bytes 4...7 reserviert 0...1 0 = MOTOROLA-Format...
  • Seite 321: Scomon

    Assembler – Befehle Kommunikationsbefehle Die Länge einer Variablen entspricht 4 Byte. Somit werden bei einer Datenlänge von 8 Byte zwei aufeinanderfolgende Variable übertragen. Einstellung Empfänger 514591883 H0 Objectno. 1025 frei wählbar H1 Len Variablenlänge 8 Byte H2 D-Pointer Datenpointer Wert liegt bei H5 11111 gesendeter Wert HINWEIS...
  • Seite 322: Scomst

    Assembler – Befehle Kommunikationsbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx SCOMON 23.5.6 SCOMST Diese Anweisung initialisiert die CAN-Schnittstelle und startet oder stoppt den Empfang von Daten und das zyklische Senden von zuvor festgelegten Datenobjekten über SBus 1 oder SBus 2. Die Initialisierung der Datenobjekte erfolgt durch die Funktion SCOM. ®...
  • Seite 323: Positionierbefehle

    Assembler – Befehle Positionierbefehle 23.6 Positionierbefehle 23.6.1 Referenzfahrt GO0 Der Befehl GO0 löst eine Referenzfahrt aus oder setzt einen Absolutwertgeber. Der Be- triebszustand und die 7-Segment-Anzeige wechselt dabei von "A" (Technologie-Option) nach "c" (Referenzbetrieb). Die Betriebsart P700 bleibt unverändert. Das Argument des Befehls GO0 bestimmt zusammen mit den Parameter P900 ... P903 das Verhalten der Referenzfahrt.
  • Seite 324 Assembler – Befehle Positionierbefehle HINWEIS Bei Typ 3 und 4 und der Einstellung CAM muss beachtet werden, dass der Antrieb unmittelbar neben dem Hardware-Endschalter referenziert und positioniert ist. Insbe- sondere bei Hubwerks-Anwendungen und Referenzpunkt unten kann es dazu kom- men, dass der Antrieb beim Positionieren nach unten bereits bei kleinstem Über- schwingen den Hardware-Endschalter anspricht.
  • Seite 325: Absolutpositionierung Goa / Relativpositionierung Gor

    Assembler – Befehle Positionierbefehle 23.6.2 Absolutpositionierung GOA / Relativpositionierung GOR Das Argument des Verfahrbefehls enthält die Zielposition. HINWEIS Wird die Zielposition über eine Variable vorgegeben, so kann der Wert nur in Inkre- menten (bezogen auf 4096 Inkrementen / Motorumdrehung) eingegeben werden. Konstanten können in Anwendereinheiten eingegeben werden.
  • Seite 326 Assembler – Befehle Positionierbefehle GOR / GO RELA- Dieser Befehl positioniert relativ auf die im zweiten Argument X2 angegebene Position. TIVE Argument X2 kann eine Konstante, eine Variable und eine indirekte Variable sein. Die eingetragene Verfahrstrecke wird zur aktuellen Zielposition H492 (TARGET POSI- TION) des Antriebs hinzuaddiert und in dieser angezeigt.
  • Seite 327 Assembler – Befehle Positionierbefehle plus® Nach Ausführen des END-Befehls fängt das IPOS -Programm automatisch mit der Abarbeitung der ersten Zeile an. Beispiel 2 Das unten aufgeführte Programm bewirkt, dass zwischen den Positionen 0 und 409600 Inkrementen verfahren wird. Nach Erreichen einer Position erfolgt eine Wartezeit von 1 Sekunde.
  • Seite 328 Assembler – Befehle Positionierbefehle Endlospositionierung plus® Der absolute Verfahrbereich von IPOS ist auf den Eingabewert –2 ... 0 ... 2 –1 begrenzt. Mit dem relativen Verfahrbefehl kann zu jeder beliebigen Zielposition eine ma- ximale Verfahrstrecke von 2 hinzuaddiert werden (siehe Zahlenkreis). Ein Beispiel für Endlospositionierung wird im Beispielprogramm Tippbetrieb gezeigt.
  • Seite 329: Programmbefehle

    Assembler – Befehle Programmbefehle 23.7 Programmbefehle 23.7.1 Programmende END plus® Die END-Anweisung zeigt das textuelle (nicht das logische) Ende eines IPOS -Pro- gramms an. Die END-Anweisung ist kein IPOS-Befehl, sie kann nicht gelöscht werden. 23.7.2 Unterprogrammaufruf CALL CALL Unterprogramme werden mit einem CALL-Befehl (CALL Mxx) aufgerufen. Die zugehö- rigen Sprungmarken (Mxx) werden vor dem ersten Befehl des Unterprogramms einge- fügt.
  • Seite 330: Sprungbefehle Jmp

    Assembler – Befehle Programmbefehle 23.7.3 Sprungbefehle JMP JMP / Klemmen Es wird ein Sprung auf die angegebene Marke ausgeführt, wenn die in der Maske mit markierten Eingangsklemmen alle 1- oder 0-Pegel haben (UND-Verknüpfung). Die Bits 0 ... 5 zeigen dabei die Klemmen des Grundgeräts, die Bits 6 ... 13 die Klemmen der Optionskarte (DIO11A) an.
  • Seite 331 Assembler – Befehle Programmbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx JMP X1 OP X2, Myyy Variable Operator: > / > = / < / <= / = / != H = Variable K = Konstante 0 = Null (bei dem Vergleich mit Null sind nur die Operatoren = und != möglich).
  • Seite 332: Schleifenbefehle Loop

    Assembler – Befehle Programmbefehle 515235723 23.7.4 Schleifenbefehle LOOP HINWEIS Programmschleifen dürfen auf keinen Fall mit einem Sprungbefehl verlassen werden. Sprungbefehle und Unterprogramme innerhalb einer Programmschleife sind erlaubt. LOOPB / LOOP Dieser Befehl erlaubt in Verbindung mit einem LOOPE-Befehl die Realisierung einer BEGIN Programmschleife.
  • Seite 333: Keine Operation Nop / Kommentar Rem / Rücksprung Ret / Task / Task2 / Warten Wait

    Assembler – Befehle Programmbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx LOOPE Beispiel Im nachfolgenden Beispiel wird die Variable H0 in 5 Schleifendurchläufen von 0 auf den Wert 5 hochgezählt. Nach Beendigung der 5 Schleifendurchläufe beginnt die Programmabarbeitung erneut mit dem Befehl SET H0 = 0. 515243147 23.7.5 Keine Operation NOP / Kommentar REM / Rücksprung RET / TASK / TASK2 / Warten WAIT NOP / NO OPE-...
  • Seite 334 Assembler – Befehle Programmbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx RET TASK Dieser Befehl dient dazu die Startadresse von Task 2 und Task 3 festzulegen und diese mit dem Argument X1 (START/ STOP) zu starten oder zu stoppen, das heißt das Steu- erwort der Task wird beschrieben.
  • Seite 335 Assembler – Befehle Programmbefehle WAIT Der Befehl WAIT wartet die im Argument angegebene Zeit in ms und setzt dann die Pro- grammbearbeitung dieser Task fort. HINWEIS Soll die Wartezeit variabel sein, so muss statt des WAIT-Befehls ein Timer (H487 ... H489) initialisiert werden und mit dem JMP-Befehl eine Schleife programmiert wer- den, bis der Timer abgelaufen ist.
  • Seite 336: Setzbefehle

    Assembler – Befehle Setzbefehle 23.8 Setzbefehle 23.8.1 Variablen kopieren COPY COPY Mit dem COPY-Befehl wird die im 3. Argument angegebene Anzahl aufeinanderfol- gender Variablen kopiert. Das 2. Argument des COPY-Befehls gibt die Nummer der ers- ten Quell-Variablen an, das 1. Argument die Nummer der ersten Ziel-Variablen an. Es können maximal 10 Variablen mit einem COPY-Befehl kopiert werden.
  • Seite 337 Assembler – Befehle Setzbefehle ANALOG INPUTS -10 V ... 0 ... +10 V = -10000 ... 0 ... 10000 Spannungswert Analogeingang 1 [mV] Spannungswert Analogeingang 2 [mV] Der Befehl GETSYS H = CAM bildet ein Nockenschaltwerk nach. Pro Antrieb kann mit dem GETSYS-Befehl ein Standard-Nockenschaltwerk mit 1 Ausgang pro ®...
  • Seite 338 Assembler – Befehle Setzbefehle DC-VOLTAGE Zwischenkreis-Spannung [V] RELATED TORQUE Relatives Drehmoment / Relatives Drehmoment VFC. Das relative Moment ist der auf den Gerätenennstrom bezogene Anzeigewert für REL. TORQUE VFC das Drehmoment an der Motorabtriebswelle. Aus dieser Größe lässt sich das absolute Drehmoment nach der folgenden Formel berechnen: ×...
  • Seite 339: Setzbefehle Variable Set / Fehlerreaktion Setfr / Indirekte Adressierung Seti / Interrupt Setint / Systemgrößen Setsys

    Assembler – Befehle Setzbefehle 23.8.3 Setzbefehle Variable SET / Fehlerreaktion SETFR / Indirekte Adressierung SETI / Interrupt SE- TINT / Systemgrößen SETSYS Mit dem SET-Befehl wird das Argument X1 mit dem Inhalt von Argument X2 (Variable H oder Konstante K) geladen. Das Ergebnis steht in Argument X1, Argument X2 bleibt immer unverändert.
  • Seite 340 Assembler – Befehle Setzbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx SETFR #X1 = X2 Fehlercode des Fehlers, für den die Reaktion gelten soll. Die folgenden Fehlernummern sind zulässig: 08: n-Überwachung 11: Übertemperatur 26: externe Klemme (P830) 28: Feldbus Time-out (P831) 31: TF-Auslöser (P835) 39: Referenzfahrt 42: Schleppfehler (P834)
  • Seite 341 Assembler – Befehle Setzbefehle SETI / SET INDI- Die Variable X1 erhält den Wert der Variablen, deren Nummer in der Variablen X2 steht. RECT H = [H] HINWEIS Ist die Nummer der indirekt adressierten Variablen außerhalb des definierten Be- ® reichs (z.
  • Seite 342 Assembler – Befehle Setzbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx SETI [X1] = X2 Hxxx = Nummer der Zielvariablen. Hyyy = Quellvariable. Beispiel SET H01 = 50 SET H0 = 10 M01 :SETI [H0] = H01 ADD H0 + 1 ADD H01 + 10 JMP H0 <= 15 , M01...
  • Seite 343 Assembler – Befehle Setzbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx SETINT X1, Myyy DISABLE Deaktivierung des Interrupts, die Sprungmarke (Mxx) ist ohne Bedeutung. ERROR Löst einen Interrupt bei Gerätefehler aus. Die Interrupt-Routine wird so lange zyklisch durchlaufen und erst dann mit RET verlassen, wenn der Fehler gelöscht ist. Je nach eingestellter Fehlerreaktion (Parametergruppe 830 oder Befehl SETFR) ergibt sich bei Abarbeitung der Interrupt-Routine abweichend von o.g.
  • Seite 344: Setsys

    Assembler – Befehle Setzbefehle Beispiel 2 Folgendes Beispiel soll die Wirkungsweise veranschaulichen: :SETINTERROR M01 JMP UNCONDITIONED , M0 M01 :ADD H0 + 1 H0 zählt solange hoch, solange ein Gerätefehler ansteht. Nach dem Fehler-Reset hat H0 den Wert aus dem EEPROM, z. B. 0, der während des Fehlers hochgezählte Wert aus dem Arbeitsspeicher geht verloren.
  • Seite 345 Assembler – Befehle Setzbefehle Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx SETSYS X1, X2 Nummer der ersten Quellvariablen. X1: wählbare Systemgrößen Die internen Festsollwerte (Parametergruppe P160/ P170) können in 0,1 min -Schritten über plus® das IPOS -Programm verändert werden (ohne Reglersperre auch während des Verfah- rens): Achtung: Der neue Festsollwert wird erst nach 5 ms übernommen, Programmabarbeitung nach SetSys...
  • Seite 346 Assembler – Befehle Setzbefehle H = 0 linear H = 1 sinus H = 2 quadratisch H = 3 Busrampe H = 4 ruckbegrenzt H = 5 Kurvenscheibe H = 6 I-Synchronlauf RESET Rücksetzen des Systemfehlers in Variable X2 ERROR ACT.
  • Seite 347: Varint

    Assembler – Befehle Setzbefehle 23.8.5 VARINT Syntax VARINT Hxx, Mxx ® ® Beschreibung Der Befehl ist im MOVIDRIVE A nicht verfügbar, nur ab MOVIDRIVE Der Befehl aktiviert einen Variablen-Interrupt mit der Datenstruktur ab der Variable Hxx. Ist die Bedingung für den Interrupt erfüllt und die Task 2 oder 3, in der dieser Interrupt bearbeit wird, gestartet, werden die Befehle ab der Marke Mxx ausgeführt.
  • Seite 348 Assembler – Befehle Setzbefehle Variable Elemente Struk- Beschreibung tur VARINT Mode 0: Kein Interrupt-Event. Damit kann dieser einzelne Interrupt deaktiviert werden, ohne alle Interrupts abzuschalten. 1: Eines der Bits der Bezugsvariable, die mit der Maske CompVar ausmas- kiert werden, hat seinen Zustand geändert: ([*SrcVar(t) ^ *SrcVar(t-T)] &...
  • Seite 349: Spezielle Gerätebefehle

    Assembler – Befehle Spezielle Gerätebefehle 23.9 Spezielle Gerätebefehle 23.9.1 ASTOP / MEM / TOUCHP / WDOFF / WDON ASTOP / AXIS Mit dem ASTOP-Befehl wird der Antrieb stillgesetzt bzw. wieder freigegeben (siehe STOP H484 Bit 1). Mit dem Argument des Befehls (RAPID STOP, HOLD CONTROL, TARGET POSITION) wird die Art des Stoppens (Rampe, Regelung im Stillstand usw.) festgelegt bzw.
  • Seite 350 Assembler – Befehle Spezielle Gerätebefehle Einzelne Variable können auch mit dem MOVILINK-Befehl abgespeichert werden. 516345867 Befehlsaufbau Befehlsaufbau Mxxx: Marke (optional) Mxxx MEM X1 Es werden keine Daten gespeichert. STORE ALL Speichern von Programmen und Daten vom Arbeitsspeicher in den permanenten Speicher (EEPROM).
  • Seite 351 Assembler – Befehle Spezielle Gerätebefehle Mit dem Argument kann der Flankenwechsel, der zum Touch-Probe führt, ausgewählt werden. 516734219 Die Touch-Probe-Positionen werden in den nachstehenden Variablen abgelegt. Geber Geberposition Position Position Touch-Probe 1 Touch-Probe 2 (DI02) (DI03) Motorgeber (X15) H511 H507 H505 ACTPOS.
  • Seite 352 Assembler – Befehle Spezielle Gerätebefehle Beispiel 1 Im Programm wird zwischen den Absolutpositionen 0 Umdr. und 100 Umdr. verfahren. Erfolgt beim Verfahren auf die Zielposition 100 Umdr. ein Flankenwechsel am Touch- Probe-Eingang DI03, so wird exakt ab dieser Touch-Probe-Position noch weitere 10 Umdr.
  • Seite 353 Assembler – Befehle Spezielle Gerätebefehle Beispiel 2 Alternativ zum obigen Beispiel kann bei Erreichen der Touch-Probe-Position eine Pro- grammverzweigung (Sprungmarke M100) durch den Befehl "SETINT TOUCHP1 M100" erfolgen. 516742923 WDOFF / WDON / Der Watchdog wird in den im Argument angegebenen Zeitintervallen aufgerufen. Läuft WATCH DOG OFF der Watchdog-Timer H490 über, bevor die Überwachungsfunktion mit WDOFF abge- / ON...
  • Seite 354 Assembler – Befehle Spezielle Gerätebefehle Beispiel Der Antrieb wird so lange verfahren wie der Pegel an DI05 = 1 ("high") ist. Mit der "Watchdog"-Funktion wird sichergestellt, dass der Antrieb nicht länger wie 10 sec. ver- fährt. Bei Überschreiten von 10 sec. wird der Antrieb stillgesetzt. 516804619 Handbuch –...
  • Seite 355: Vergleichsbefehle

    Assembler – Befehle Vergleichsbefehle 23.10 Vergleichsbefehle 23.10.1 Vergleichsoperationen CPEQ / CPGE / CPGT / CPLE / CPLT / CPNE Eine Variable wird mit einem 2. Argument (Variable oder Konstante) verglichen, wobei folgende Vergleiche möglich sind: • gleich (CPEQ) • größer oder gleich (CPGE) •...
  • Seite 356 Assembler – Befehle Vergleichsbefehle Beispiel 1 = 13 = 50 CPGE H0 > = H1 Nach der Abarbeitung des Programms hat H0 den Wert Null und H1 den Wert 50. Beispiel 2 = -3 CPGE H0 > = -3 Nach der Abarbeitung des Programms hat H0 den Wert Eins. CPGT / COM- Der Befehl CPGT vergleicht vorzeichenrichtig, ob Variable X1 größer Variable oder PARE GREATER...
  • Seite 357 Assembler – Befehle Vergleichsbefehle CPLT / COMPARE Der Befehl CPLT vergleicht vorzeichenrichtig, ob Variable X1 kleiner Variable oder LESS THAN Konstante X2 ist. Variable X1 enthält das Ergebnis. Es ist ungleich Null, wenn die Be- dingung erfüllt ist, sonst ist das Ergebnis Null. Das Ergebnis kann z.
  • Seite 358: Logische Operationen Andl / Orl / Notl

    Assembler – Befehle Vergleichsbefehle 23.10.2 Logische Operationen ANDL / ORL / NOTL ANDL / LOGICAL Der Befehl ANDL ist die logische UND-Verknüpfung zweier Variablen. Das Ergebnis steht in Variable X1. Variable X2 bleibt unverändert. Das Ergebnis ist Null, wenn eine der beiden Variablen = 0 ist.
  • Seite 359 Assembler – Befehle Vergleichsbefehle NOTL / LOGICAL Der Befehl NOTL führt die logische Negation der Variablen durch. Das Ergebnis steht in Variable X1. Variable X2 bleibt unverändert. Das Ergebnis ist Eins, wenn Variable X2 = 0 ist. Das Ergebnis ist Null, wenn Variablen X2 != 0 ist. Befehlsaufbau Befehlsaufbau Mxxx:...
  • Seite 360: Assembler - Beispiele

    Assembler – Beispiele Beispielprogramm "Blinklicht" Assembler – Beispiele 24.1 Beispielprogramm "Blinklicht" 24.1.1 Beispiel "Steuerung" Mit dem Beispielprogramm soll der Binärausgang DOØ1 alle 2 s abwechselnd ein- und ausgeschaltet werden. Kurzinbetrieb- Voraussetzungen nahme (Beispiel) Netzanschluss und/oder 24-V-Versorgung (Stützspannung Klemmen X10:9 (+ 24 V / VI24) und X10:10 (0 V / DGND)) angeschlossen;...
  • Seite 361: Beispiel "Positionierung

    Assembler – Beispiele Beispielprogramm "Blinklicht" 24.1.2 Beispiel "Positionierung" Mit dem Beispielprogramm soll der Antrieb alle 2 s 10 Motorumdrehungen abwechselnd rechts und links positioniert werden. Kurzinbetrieb- Voraussetzungen nahme (Beispiel) • Umrichter / Motor / Geber angeschlossen ® • Umrichter entsprechend des Systemhandbuchs MOVIDRIVE in der Betriebsart VFC-n-Reg.
  • Seite 362: Beispielprogramm "Hubwerk

    Assembler – Beispiele Beispielprogramm "Hubwerk" Beispielprogramm "10 Motorumdrehungen vor und zurück": 516923787 Das Programm besteht aus: 3 Kommentarzeilen Verfahre relativ 10 Motorumdrehungen rechts Zwei Sekunden warten Verfahre relativ 10 Motorumdrehungen links Zwei Sekunden warten Ende Programm Programmende / Sprung zum Programmanfang Der RET-Befehl ist in diesem Beispiel nicht zwingend erforderlich, da das Programm nicht als Unterprogramm aufgerufen wurde.
  • Seite 363: Schematischer Aufbau

    Assembler – Beispiele Beispielprogramm "Hubwerk" 24.2.3 Schematischer Aufbau plus® Schematischer Aufbau Hubwerk mit IPOS d = 50 mm i = 5 RHWLS RSWLS 2000 LSWLS LHWLS 516940939 BD = Bremsstrecke CAM = Referenznocken RHWLS = Rechter Hardware-Endschalter MZP = Maschinennullpunkt RSWLS = Rechter Software-Endschalter LSWLS = Linker Software-Endschalter...
  • Seite 364: Beschaltung Der Klemmen

    Assembler – Beispiele Beispielprogramm "Hubwerk" 24.2.4 Beschaltung der Klemmen plus® Anschluss-Schaltbild IPOS ® MOVIDRIVE DIØØ DIØ1 DIØ2 DIØ3 RHWLS DIØ4 LHWLS DIØ5 DCOM VO24 DGND ST11 ST12 0V24 DIO11B I 01 I 02 I 03 AI21 I 04 AI22 I 05 AGND I 06 AOV1...
  • Seite 365: Einstellung Der Für Das Beispiel Relevanten Parameter

    Assembler – Beispiele Beispielprogramm "Hubwerk" 24.2.5 Einstellung der für das Beispiel relevanten Parameter Gruppe Parameter Einstellung 30_ Begrenzungen P302 Maximaldrehzahl 1 [1/min] 1500 P350 Drehrichtungsumkehr 60_ Binäreingänge Grundgerät P600 Binäreingang DI01 FREIGABE / STOP P601 Binäreingang DI02 RESET P602 Binäreingang DI03 REFERENZNOCKEN P603 Binäreingang DI04 /ES RECHTS...
  • Seite 366: Eingangsklemmen

    Assembler – Beispiele Beispielprogramm "Hubwerk" Wegfaktor Nenner Umfang des Antriebrads in mm d × π 50 mm × π =157,0796327 157,08 × 100 (Erweiterungsfaktor) =15708 Einheit Die Einheit hinter den verfahrspezifischen Angaben soll in mm erscheinen. Verfahrdrehzahl 1350 1/min Positionierfenster Bei Erreichen der Zielposition ±...
  • Seite 367: Programmquellcode (Mit Kommentaren)

    NENNER: 15708 EINHEIT: mm ****************************************** Programm: Hubwerk Mit den ersten 3 Eingängen der Option DIO11A werden die Position 0;1000;2000 mm angefahren. Datei: Hub 100.mdx Ersteller: SEW/AWT Datum: 01.06.98 Geändert: 01.06.98 Klemmenbelegung Eingänge:----------------- DI00 Reglersperre DI01 Freigabe DI02 Reset (ES-Freifahren) DI03 Referenznocken...
  • Seite 368: Beispielprogramm "Tippbetrieb

    Assembler – Beispiele Beispielprogramm "Tippbetrieb" Referenzfahrt Unterprogramm Referenzieren ========================================== Verfahrentriegelung M20:ASTOP IPOS ENABLE Referenzfahrt, nicht wartend, auf Nullimpuls starten, U,NW, ZP Referenzfahrt abbrechen M22:JMP LO I0000000000000001, M21 und das Bit im Statuswort "IPOS Referenz" =0 H319 = 0 BMOV H319.0 = H473.20 H319 == 0 , M22...
  • Seite 369: Eingangsklemmen

    Assembler – Beispiele Beispielprogramm "Tippbetrieb" 24.3.3 Eingangsklemmen Pegel Klemme Klemmenfunktion Bedeutung DI00 /Reglersperre Zu-/Abschalten des Leistungsteils DI01 Freigabe geregelter Stillstand DI02 Reset Reset nach Fehler (Endschalter freifahren) DI03 Referenznocken Schalter für Nullstellung oder Offsetwert DI04 Endschalter rechts Begrenzungsschalter zum Stillsetzen (+) DI05 Endschalter links Begrenzungsschalter zum Stillsetzen (-)
  • Seite 370: Programmquellcode (Mit Kommentaren)

    Kommentar ZÄHLER: 1 NENNER: 1 EINHEIT: inc ****************************************** Beispielprogramm: Tipp-Betrieb Datei: Tipp.mdx Ersteller: SEW/AWT Datum: 01.06.98 Funktion: Tipp-Betrieb - endloses Verfahren möglich - keine Referenzierung der Achse notwendig - Einhalten von Verfahrgrenzen; Software-ES - Verfahrdrehzahlen/-Rampen ab H310 - Eingänge Tipp+ (DI14) / Tipp- (DI15) Parametrierung (P600) der Ein-/Ausgänge:...
  • Seite 371 Assembler – Beispiele Beispielprogramm "Tippbetrieb" Programm-Sprungverteiler Programm-Sprungverteiler ========================================== Interrupt-Routine aktivieren für Hardware-Endschalter- SETINT ERROR Verarbeitung Reset/Fahren aus Endschalter M100:JMP LO I0001000000000000, M101 DI16 = 1 → Referenzfahrt CALL DI15 = 1 → Tipp-rechts M101:JMP LO I0000010000000000, M102 DI14 = 1 → Tipp-links CALL M102:JMP LO I0000100000000000, M103...
  • Seite 372: Beispielprogramm "Tabellenpositionierung

    Assembler – Beispiele Beispielprogramm "Tabellenpositionierung" Tipp-rechts ------------------------------------------ so lange verfahren wie DI14 = 1 und Tipp + DI15 = 0, ------------------------------------------ Abfrage Software-ES aktiv M30 :JMP LO I0000010000000000, M31 HI I0000100000000000, M31 1000 Motorumdrehungen zur aktuellen Ist-Position addie- CALL ren und das Ergebnis als neue Zielposition anfahren H319 == 1 , M32 GETSYS...
  • Seite 373: Einstellungen

    Assembler – Beispiele Beispielprogramm "Tabellenpositionierung" Ein "1"-Signal am Ausgang DO15 "Tabellenposition gültig" zeigt das Erreichen der an- gewählten Tabellenposition an. Bei Anwahl einer neuen Tabellenposition wird dieser Ausgang sofort zurückgesetzt. Durch zusätzliches Auswerten des Ausganges DO16 "IPOS in Position" kann auch bei deaktiviertem Regler ("Reglersperre" = "0") ein Verlas- sen der angewählten Tabellenposition sicher erkannt werden.
  • Seite 374: Eingangsklemmen

    Assembler – Beispiele Beispielprogramm "Tabellenpositionierung" 24.4.3 Eingangsklemmen Pegel Klemme Klemmenfunktion Bedeutung DI00 /Reglersperre Zu-/Abschalten des Leistungsteils DI01 Freigabe geregelter Stillstand DI02 Reset Reset nach Fehler (Endschalter freifahren) DI03 Referenznocken Schalter für Nullstellung oder Offsetwert DI04 Endschalter rechts Begrenzungsschalter zum Stillsetzen (+) DI05 Endschalter links Begrenzungsschalter zum Stillsetzen (-)
  • Seite 375: Programmquellcode (Mit Kommentaren)

    ZÄHLER: 1 NENNER: 1 EINHEIT: inc ****************************************** Programm: Tabellenpositionierung Datei: Tab.mdx Ersteller: SEW/AWT Datum: 01.06.98 Funktion Tabellenpositionierung: - mit den ersten 4 Eingängen der Option DIO11 werden binärcodiert die Positionen in den entspr. Variablen 0-15 angewählt. - mit dem Eingang DI17 (X22:17) wird der angewählte Verfahrbefehl freigegeben.
  • Seite 376 Assembler – Beispiele Beispielprogramm "Tabellenpositionierung" Geschwindigkeits- und Beschleunigungswerte für die Programm-Anfang Tabellenpositionierung setzen (siehe Variablenbe- ========================================== schreibung im Kommentar des Programmquellcodes) Initialisierung ------------------------------------------ H300 = 15000 H301 = 15000 H302 = 1000 H303 = 1000 ------------------------------------------ Programm-Sprungverteiler Programm-Sprungverteiler Interrupt-Routine aktivieren für Hardware-Endschal- ========================================== ter-Verarbeitung Reset/Fahren aus Endschalter →...
  • Seite 377 Assembler – Beispiele Beispielprogramm "Tabellenpositionierung" Hauptprogramm Tabellenpositionierung Hauptprogramm Tabellenpositionierung ========================================== Prüfung, ob Achse referenziert ist Es werden nur Tabellenpositionen bei referenziertem ------------------------------------------ Antrieb angefahren M50 :SET H321 = 0 (DO17 = 10. Bitstelle in Ausgangsklemmen-System- BMOV H321.0 = H473.20 variable H473; parametriert auf "IPOS Referenz") H321 != 0, M51 ------------------------------------------ Setzen von Verfahrgeschwindigkeit, Beschleuni-...
  • Seite 378: Stichwortverzeichnis

    Stichwortverzeichnis Stichwortverzeichnis Erkennung Positionierunterbrechung ....131 Abarbeitungszeit Task ...........43 Extener Geber, Istposition ........35 Absolutwertgeber ...........53 Externer Geber, C-Spur .........36 Absolutwertgeber (SSI) ........138 Externer Geber, Nullimpulse........36 Absolutwert, Istposition ..........35 ActPos_Abs / ACTPOS ABS........35 ActPos_Extt / ACTPOS EXT........35 Fachkraft..............17 ActPos_Mot / ACTPOS MOT .........35 Farbe, Hintergrund..........154 AnaOutpIPOS / ANA.
  • Seite 379 Stichwortverzeichnis IPOS-Parameter ..........123 Betriebsart ............38 IPOS-Sollwert ............38 D-Anteil ..............38 IPOS-STW. Task 1..........132 I-Anteil..............38 Istwert gefiltert und skaliert ........38 IPOS-STW. Task 2..........132 Istwert-Adresse..........38 IPOS-Synchronisation..........141 IPOS-Zähler ............35 Istwert-Maximalwert...........38 IPOS_Setp / IPOS_SETP ........38 Istwert-Minimalwert..........38 Istposition Absolutwert ...........35 Istwert-Offset .............38 Istposition Externer Geber ........35 Istwert-Skalierung ..........38 Maximaler Ausgangswert ........38 Istposition Motorgeber ...........35...
  • Seite 380 Stichwortverzeichnis P900 Referenzoffset ..........123 P962 Modulo Nenner ...........140 P901 Referenzdrehzahl 1 ........124 P963 Modulo Geberauflösung ......140 P902 Referenzdrehzahl 2 ........124 P97x IPOS-Synchronisation ........ 141 P903 Referenzfahrttyp .........124 P970 DPRAM-Synchronisierung ......141 P904 Referenzierung auf Nullimpuls....126 P971 Synchronisierungsphase ......141 P905 Hiperface Offset X15 ........126 P906 Nockenabstand...........126 P91x IPOS Verfahrparameter ......127...
  • Seite 381 Stichwortverzeichnis Steuerwort Modulo-Funktion ........29 TP. POS2EXT............35 Streckengeber Typ (X14) ........135 TP. POS2MOT............35 Streckengeber Zählrichtung (X14) .......136 T0_Reload / T0 RELOAD ........33 SW-Endschalter LINKS........131 SW-Endschalter RECHTS ........131 Synchronisierungsphase........141 Urheberrechtsvermerk ...........15 Syntaxdarstellung ..........154 Syntax-Highlighting ..........154 Variablen-Interrupt-Request ........38 Variablen-Interrupts MOVIDRIVE® B ....49 Taktfrequenz ............139 Variablen-Interrupts, Aufruf........49 TargetPos / TARGET POS ........34 Variablen-Interrupts, IPOS-Zugriff ......50...
  • Seite 384 SEW-EURODRIVE—Driving the world SEW-EURODRIVE Driving the world SEW-EURODRIVE GmbH & Co KG P.O. Box 3023 D-76642 Bruchsal/Germany Phone +49 7251 75-0 Fax +49 7251 75-1970 sew@sew-eurodrive.com www.sew-eurodrive.com...

Inhaltsverzeichnis