Seite 2
Vorsichtsmaßnahmen und Hinweise im Text: Achtung Verschiedene Arten von Gefahren, die zu Sachschäden oder Verletzungen führen können. Informationen Empfehlungen, Ratschläge oder Verweise auf ein anderes Dokument. Hervorhebungen und Formatierungen von Textfragmenten: ● Bezeichnung oder Markierung nach Wahl Einige Aktionen sollten in einer bestimmten Reihenfolge durchgeführt werden —...
Inhalt 1. Z ........................5 WECK DES ONTROLLERS 2. T .......................... 11 ECHNISCHE ATEN 3. B ..........................13 ETRIEBSABLAUF 3.1. Das Funktionsprinzip von Relais-Schaltkreisen und Leiterdiagrammen im Controller 3.2. Unterschiede zwischen der Logik realer Relais-Kontakt-Schaltungen und Kontaktplänen im Controller ......................15 3.3.
Seite 4
11.3. Fehlercodes, die bei der Arbeit mit ROM auftreten ..........130 Drehzahlregelungsmodus ....................... 131 Schritt/Dir-Impulspositions-Steuerungsmodus ..............134 Benutzerprogramm-Steuerungsmodus .................. 136 Anhang A. Register der Steuerung ..................... 137 RS-485-Schnittstellen-Kommunikationsparameter ............137 Takteinstellung ......................... 137 Datumseinstellung ........................138 Zusätzlich ..........................138 Arbeiten mit ROM ........................138 Zeilenweises ROM-Lesesektor ....................
Datenverarbeitung ........................153 Gleitkommaoperationen ......................153 Zeit und PWM ........................... 154 Datum ............................154 Kontakttypische logische Operationen ................. 154 Vergleichsoperationen für Kontakttypen ................155 Schrittmotorsteuerung ......................156 Anhang C. Beispiele von Benutzerprogrammen ................158 Beispiel 1. Verwendung des RUN-Befehls ................158 Beispiel 2.
Seite 6
Der Controller verfügt über 8 Logikeingänge und 10 Logikausgänge (2 dieser Ausgänge sind Hochspannungsausgänge). Der Zustand der E/A kann von einem vom Benutzer ausgeführten Programm oder direkt über Modbus-Befehle gelesen oder gesetzt werden. Ein internes Ausführungsprogramm kann über USB oder RS-485 vom Controller heruntergeladen und auf den Controller hochgeladen werden.
Seite 7
Abb. 2a. Klemmenbelegung – Treiber-Steuermodus rspro.com...
Seite 8
Abb. 3b. Klemmenbelegung – Drehzahlregelungsmodus rspro.com...
Seite 9
Abb. 4c. Klemmenbelegung – Benutzerprogramm-Steuermodus Abb. 1 zeigt die Vorderseite des Controllers mit Bedien- und Anzeigeelementen. Die PWR-Anzeige zeigt das Vorhandensein der Versorgungsspannung an. RUN zeigt den aktuellen Zustand des Controllers an (RUN oder STOP). Im PROG-Modus (Ausführung eines Anwenderprogramms) und im SPD-Modus (Drehzahlregelung) zeigt der aktive Zustand der RUN-Anzeige die Ausführung des Programms an, der inaktive Zustand den rspro.com...
Seite 10
Stoppzustand. Im DRV-Modus (Step/Dir-Modus) zeigt der inaktive RUN-Zustand die Möglichkeit an, Treiberparameter über die Bedienelemente des Controllers einzustellen. Der aktive RUN-Zustand zeigt den Eintritt in den Betriebsmodus an, Parameteränderungen sind deaktiviert. Die Möglichkeit zum Umschalten zwischen den Modi PROG / SPD / DRV ist im RUN-Zustand deaktiviert.
2. T ECHNISCHE ATEN Charakteristik Wert RS 434540 Versorgungsspannun g, VDC RS 434542 und RS 434543 RS 434540 0.15 Max. Ausgangsstrom RS 434542 pro Phase, A RS 434543 Hoher Pegel der Logikeingänge, VDC Niedriger Pegel der Logikeingänge, VDC Empfohlene Spannung (beste Ansprechzeit) der Logikeingänge, VDC Max.
Seite 12
(1) – Bei Verwendung einer Spannung von mehr als 8V für die Eingänge IN2.. .IN7 und mehr als 12V für die Eingänge IN0.. .IN1 müssen Strombegrenzungswiderstände installiert werden. – Empfohlene Widerstände für die Eingänge IN2.. .IN7: mindestens 270 Ohm bei Verwendung einer 12V-Signalquelle und mindestens 1 kOhm bei Verwendung von 24V.
3. B ETRIEBSABLAUF Der Betriebsablauf des Controllers ist wie folgt: — Lesen externer Geräte (Logikeingänge, Modbus-Coils); — Verarbeitung des Benutzerprogramms; — Einstellung neuer Zustände der Ausgabegeräte (Logikausgänge, Modbus-Discrete- Inputs, Ausführung der Bewegung). Das Benutzerprogramm besteht aus einer Folge von Steueranweisungen (Befehlen), die die endgültige Funktionalität bestimmen.
Seite 14
Kombinierte Logik Der erste Abschnitt der Schaltung besteht aus einem Schließer X0 und einer Spule Y0, die den Zustand des Ausgangs Y0 bestimmt. Wenn der Zustand des Kontakts X0 offen ist (logisch "0"), ist auch der Zustand des Ausgangs Y0 offen (logisch "0"). Wenn der Kontakt X0 geschlossen ist, ändert auch der Ausgang Y0 seinen Zustand in geschlossen (logisch "1").
Abb. 12. Kontaktplan im Controller Abb. 11. Relais-Schaltkreis Wenn der Kontakt X5 geschlossen ist, ändert der Ausgang Y3 seinen Zustand in geschlossen. Wenn X5 jedoch wieder geöffnet wird, behält Y3 seinen geschlossenen Zustand bis zu dem Zeitpunkt bei, an dem X6 geöffnet wird. In dieser Schaltung ist der Ausgang Y3 selbsthaltend.
Seite 16
Reading of inputs state Start Setting outputs state Abb. 13. Ablauf im Controller Während des Betriebs liest der Controller kontinuierlich den aktuellen Zustand der Eingänge und ändert den Zustand der Ausgänge (ein/aus) abhängig vom Benutzerprogramm. Abb. 13 zeigt ein Flussdiagramm eines Programmzyklus. In der ersten Stufe liest der Controller den Zustand der physischen und virtuellen Eingänge (deren Zustände über Modbus-Coils eingestellt werden) und puffert sie im internen Speicher des Controllers.
nur zeilenweise von links nach rechts und von oben nach unten ausgeführt werden. Beispielsweise führt eine Schaltung mit umgekehrter Stromrichtung (Abschnitt a-b in) zu einem Fehler während der Kompilierung im Controller. Abb. 15. Relais-Schaltkreis des Controllers Abb. 14. Relais-Schaltkreis Ein Fehler in der 3. Zeile 3.3.
Merker Hilfsrelais. Speicher für binäre Zwischenergebnisse. Im Anwenderprogramm können entweder Kontakte oder Spulen verwendet werden. Diese Operanden können einen von zwei möglichen Werten annehmen: 0 oder 1. Die Adressierung ist dezimal: M0, M1.. .M7, M8, M9,... Zeitgeber Zeitrelais. Das Programm kann zum Speichern des aktuellen Timerwerts verwendet werden und hat ein 16- Bit-Format.
Seite 19
Eingangsbedingungen. Die logischen Kombinationen dieser Eingangsbedingungen bestimmen, wann und wie rechtsgerichtete Befehle ausgeführt werden. Die folgenden Symbole werden in Relais-Kontakt-Schaltkreisen verwendet: Symbol Beschreibung Befehl Operanden Eingangskontakt – Schließer X, Y, M, T, C Eingangskontakt – Schließer X, Y, M, T, C Eingangsimpulskontakt –...
Seite 20
Serielle Anschlüsse: ANDP ANDF Parallelschaltungen: MPS, MRD, MPP Abb. 16. Grafische Symbole von Steueranweisungen Der Programmscan beginnt in der oberen linken Ecke des Diagramms und endet in der unteren rechten Ecke. Das folgende Beispiel veranschaulicht den Ablauf eines Programms: Abb. 17. Ablauf eines Programms rspro.com...
Seite 21
Symbole von Eingangssignalen mit einer steigenden Flanke (wenn ein Signal von 0 auf 1 geschaltet wird) und mit einer fallenden Flanke (wenn ein Signal von 1 auf 0 geschaltet wird) werden im Folgenden erläutert: TIME TIME Ansteigende Flanke Kontakt Fallender Flankenkontakt Abb.
ORB command Abb. 20. ORB-Anweisung 3.5. Relaiskontakt-Schaltpläne (LD) in mnemonischen Code (IL) umwandeln Die folgende Abbildung zeigt ein Programm, das in Form von Relaiskontaktsymbolen (LD) und einer Anweisungsliste - mnemonischer Code (IL) - dargestellt ist. Die Abbildung zeigt die Reihenfolge der Umwandlung des Kontaktplans (LD) in den vom Controller ausgeführten Code (IL).
Seite 23
Relay contact circuits (LD) Block Block Serial connection of blocks Block The state of the output will be set according to the inputs states during the program executing Parallel connection of blocks Branching Block Setting the output and marker Block Setting the output and marker...
Seite 24
Beispiel 1 Der unten stehende Kontaktplan kann auf zwei verschiedene Arten in eine Anweisungsliste umgewandelt werden, das Ergebnis ist jedoch identisch (Abb. 22). Die erste Codierungsmethode ist am besten geeignet, da die Anzahl der Logikblöcke unbegrenzt ist. Die zweite Methode ist durch die maximale Anzahl von Logikblöcken begrenzt (maximale Anzahl von Blöcken ist 8).
Indexregis Nebenwerte 16 A0…A7 Max. Kann zur Indexanzeige verwendet werden Punkte Wichtigste 16 B0…B7 Bits Zeiger für die Anweisungen 32 Punkte (P0…P31) Bezeichnungen für CALL, CJ Anweisungen von Übergängen und Unterprogrammen Unterbrec Kommunikation Max. Bezeichnungen für das hungen Unterprogramm zur Zeitgesteuert I1…I100 Punkte...
Funktion der Ausgangsrelais Y Ausgangsrelais Y steuern den Zustand der physischen Ausgangskontakte des Controllers und damit die Lastgeräte (Lampen, Relaisspulen usw.), die direkt an die Ausgangsklemmen des Controllers angeschlossen sind. Jeder Ausgang Y kann im Programm beliebig oft verwendet werden, es wird jedoch empfohlen, die Ausgangsspule Y im Programm nicht mehr als einmal zu verwenden, da bei mehrmaliger Verwendung der Spule Y der Ausgangszustand durch das letzte Y im Scan bestimmt wird.
Interne Relais werden als Ausgänge programmiert. Sie können im Programm unbegrenzt oft verwendet werden. Die Adressierung der internen Relais erfolgt im Dezimalformat. Verwendung von speziellen Merkern: Merker Funktion M100…M107 Diese Hilfsrelais werden nur in Verbindung mit Interrupts der externen Eingänge I1000 ... I1007 verwendet. Der Wert der Merker entspricht dem Zustand des physikalischen Eingangs (IN0 ...
Seite 29
Die erforderliche Zeiteinstellung wird durch eine dezimale Konstante K bestimmt, die die Anzahl der gezählten Zeitschritte (diskret) angibt. Beispiel: Ein Timer mit einer Auflösung von 100 ms, der als K5 eingestellt ist, hat einen tatsächlichen Einstellwert von 5 x 100 = 500 ms. Der Timer arbeitet mit einer Einschaltverzögerung.
Akkumulations-Timer Zusätzlich zu den K100 Universalzeitgebern verfügt der Controller über akkumulierende Zeitgeber, die nach dem Deaktivieren der steuernden logischen Verbindung den akkumulierten T1+T2=10 s Zeitwert speichern. Value of K100 timer register Abb. 25. Prinzip des akkumulierenden Timers 4.5. Adressierung und Funktion der Zähler [C] Bei einigen Steuerprozessen ist es notwendig, Impulse zu zählen (addieren oder subtrahieren).
Der Zähler wird zurückgesetzt, wenn X0=1 ist: der aktuelle Wert des Registers C0 = 0, der Kontakt C0 ist geöffnet. setting Nach dem Umschalten von X1 von Current 0 auf 1 erhöht sich der Wert von C) um value eins. Contacts Y0, C0 Wenn der Registerwert С0 = 5 ist, sind die Kontakte С0 und Y0 geschlossen und...
Die diskreten Eingänge X0 und X1 beziehen sich auf die Zähler C64 bzw. C65. C64 zählt sowohl steigende als auch fallende Flanken von Impulsen, C65 zählt steigende Flanken von Impulsen. Die diskreten Eingänge X0 und X1 beziehen sich auf die Zähler C64 und C65. C64 zählt steigende Flanken von Impulsen, C65 zählt fallende Flanken von Impulsen.
Seite 33
Es gibt folgende Datenregistertypen: Allzweck-Datenregister: Diese Register werden während der Ausführung des Benutzerprogramms verwendet, die Daten werden beim Ausschalten nicht gespeichert. Nichtflüchtige Datenregister: Die Daten in diesen Registern werden beim Ausschalten im Speicher des Controllers gespeichert. Die Speicherstromversorgung erfolgt über eine interne Quelle, CR2032. Indexregister: Dieses Register wird verwendet, um Zwischenergebnisse zu speichern und Operanden anzuzeigen.
D356 0…6 Das Register konfiguriert die Typen der Ausgänge OUT6 und OUT7 für den PWM-Befehl (siehe 7. Anwendungsbefehle, PWM-Befehl). Funktion des Ausgangs Diskretisierungszeit, Wert µs OUT6 OUT7 – Ausgang Ausgang PWM- Ausgang Generator PWM- Ausgang Generator Ausgang PWM- Generator Ausgang PWM- Generator PWM-...
Seite 35
16 bit 16 bit 32 bit low-order bits high-order bits Abb. 27. Struktur des Indexregisters Beispiel für eine Datenübertragung vom Datenregister D5A0 zum Datenregister D10B0: Wenn X0 = 1: A0 = 8, B = 14 • Adresse der Transferquelle ist D5A0 = 5 + 8 = •...
4.8. Zeiger [P], [I]. P Anweisungszeiger CALL, CJ 32 Punkte (P0…P31) Markierungen oder Beschriftungen für Übergangsbefehle oder Unterprogrammaufrufe Unterbrech Kommunikatio Max. Bezeichnungen für das ungen 15 Punkte Unterprogramm zur Verarbeitung von Zeitgesteuert I1…I100 (Max. Interrupts 4 Punkte) Extern I1000…I1007 Treiber I2000, I2001 Zeiger (Р) werden in Kombination mit den Anweisungen CJ (Sprünge) oder CALL (Unterprogramme) verwendet.
Seite 37
Interrupt-Zeiger (I) werden mit den Anweisungen EI, DI und IRET verwendet, um die Ausführung des Hauptprogramms zu unterbrechen. Es gibt die folgenden Arten von Interrupts: 1. Kommunikations-Interrupt: Wenn der Controller einen Broadcast-Frame über das Modbus-Protokoll empfängt, geht er sofort (unabhängig vom Scan-Zyklus) zum Interrupt-Bearbeitungsunterprogramm, das mit dem Zeiger I0 markiert ist.
5. Fehlercodes Wenn die LED "ERR" nach dem Laden und Ausführen des Benutzerprogramms leuchtet, bedeutet dies, dass das Benutzerprogramm einen Fehler enthält: einen Grammatikfehler oder einen falschen Operandenfehler. Jeder im Controller auftretende Fehler wird in einem speziellen Register aufgezeichnet (Schrittnummer und Fehlercode werden aufgezeichnet).
Seite 39
Fehlerc Beschreibung 200Dh Verarbeitung des OR-Typ-Befehls, der Befehlscode hat sich geändert. 2010h Wenn der ANB-Befehl angewendet wird, sind keine Einträge im Hauptstapel vorhanden. 200Fh Fehler beim Anwenden der ANB-Anweisung. Es gibt keine Einträge im Ausgabestapel und nur einen Eintrag im Hauptstapel. 200Eh Unbekanntes Signal im Ausgabestapel mit dem ANB-Befehl.
Seite 40
Fehlerc Beschreibung 2027h Anweisung IRET, Verzweigungsstapel ist nicht leer. 2028h Anweisung IRET, der Zyklusstapel ist nicht leer. 2029h Anweisung IRET, Unterprogrammstapel ist nicht leer. 2020h Anweisung CALL/CALLP, unbekannter Index-Operand. 201Eh Anweisung CALL/CALLP, Index-Operand A ist außerhalb des gültigen Bereichs. 201Fh Anweisung CALL/CALLP, Index-Operand B ist außerhalb des gültigen Bereichs.
Seite 41
Fehlerc Beschreibung 2039h Anweisung XCH, der Datentyp des 1 sten Operanden ist falsch. 203Ah Anweisung XCH, der Datentyp des zweiten Operanden ist falsch. . 203Bh Befehl ROR/ROL, der Datentyp des 1. sten Operanden ist falsch. 2033h Anweisung ZRST, Operanden sind nicht vom gleichen Typ. 2032h Anweisung ZRST, Operandentyp ist falsch.
Seite 42
Fehlerc Beschreibung 204Dh Anweisung DEDIV, Division durch Null. 3015h Vorschaufehler, unbekannter Befehl erkannt. 2053h Anweisung DESQR, Typ des 1. Operanden ist falsch. 2052h Anweisung DESQR, Typ des 2D-Operanden ist falsch. 2051h Anweisung DESQR negativer Wert. 2035h Befehl LD#, Stapelüberlauf. 2034h Anweisung LD#, Hauptsignaltyp nicht erkannt.
Seite 43
Fehlerc Beschreibung 3006h Index des Operanden M liegt außerhalb des gültigen Bereichs. 3007h Index des Operanden C liegt außerhalb des gültigen Bereichs. 3008h Index des Operanden T liegt außerhalb des gültigen Bereichs. 3009h Index des Operanden A/B liegt außerhalb des gültigen Bereichs. 300Ah Index des Operanden D liegt außerhalb des gültigen Bereichs.
6. Grundlegende Anweisungen Anleitung Funktion Schließer Operand ● ● ● ● ● Beschreibung: Der Befehl LD wird als Schließer für die Programmierung des Starts von logischen Ketten verwendet. Er befindet sich links im Kontaktschema und ist direkt mit der Stromversorgungsleitung verbunden. Verwendung: Der Befehl LD X0 „Schließer X0“...
Seite 45
Anleitung Funktion Reihenschaltung - Öffnerkontakt (logisches AND) Operand ● ● ● ● ● Beschreibung: Die Anweisung AND wird als in Reihe geschalteter Öffner für die Programmierung der logischen Multiplikationsoperation (AND) verwendet. Die Anweisung stellt eine logische Operation dar und kann daher nicht am Anfang der Sequenz programmiert werden. Für Befehle zum Sequenzbeginn muss LD oder LDI verwendet werden.
Seite 46
Der Befehl "Serienverbindung - Öffner Х0" erzeugt eine serielle logische Verbindung mit Kontakt X1 und wird verwendet, um die logische Operation NAND durchzuführen. Wenn am Eingang X1 "1" und am Eingang X0 "0" anliegt, wechselt der Ausgang Y1 in den Zustand "1".
Verwendung: Der Befehl "Parallelverbindung - Öffner X1" erzeugt eine parallele logische Verbindung mit Kontakt Х0 und wird verwendet, um die Operation der logischen Instruktion NOR (OR NOT) durchzuführen. Wenn der Eingang Х0 "1" oder der Eingang X1 "0" ist (eine oder beide Bedingungen gleichzeitig), wechselt der Ausgang Y1 in den Zustand "1".
Seite 48
Anleitung Funktion «OR»-Block: Parallelschaltung von Blöcken Beschreibung: — Die ORB-Anweisung dient zur Parallelschaltung von zwei oder mehr in Reihe geschalteten Kontakten oder Blöcken. Werden mehrere in Reihe geschaltete Blöcke parallel geschaltet, muss nach jedem Block eine ORB-Anweisung hinzugefügt werden. — Der Verzweigungsbeginn wird mit den Anweisungen LD oder LDI programmiert.
Seite 49
Beschreibung: — Die Anweisungen MPS, MRD und MPP dienen zum Erstellen von Ebenen logischer Verbindungen (z. B. nach einem anfänglichen logischen Ausdruck mehrere logische Ausdrücke am Ausgang erstellen, d. h. mehrere Ausgangsspulen einschalten). — Mit der MPS-Anweisung wird das vorherige Ergebnis logischer Verbindungen (Verarbeitung eines logischen Ausdrucks) gespeichert.
Seite 50
Vor der Ausführung des nächsten Befehls wird ein Zwischenergebnis am 1. Platz des Speichers der logischen Verknüpfungen gelesen. Eine logische AND-Verknüpfung von X2 mit X0 wird durchgeführt, und der Ausgang von M0 wird gesetzt. Vor der Ausführung des nächsten Befehls wird ein Zwischenergebnis am 1. Platz des Speichers der logischen Verknüpfungen gelesen.
Seite 51
Anleitung Funktion Aktivieren des verriegelten Ausgangs Operand ● ● Beschreibung: — Der Zustand des Operanden kann direkt mit der SET-Anweisung gesetzt werden. — Die Operanden Y und M können mit der SET-Anweisung eingeschaltet werden. — Sobald die Eingangsbedingung für die SET-Anweisung (Signal "1") erfüllt ist, schaltet sich der entsprechende Operand ein.
Seite 52
— Wenn die Eingangsbedingungen für den RST-Befehl nicht mehr erfüllt sind, bleibt der entsprechende Operand ausgeschaltet. Verwendung: Der Ausgang Y1 schaltet ab, wenn die Bedingung X1 erfüllt ist, und bleibt auch dann ausgeschaltet, wenn die Bedingung X0 nicht erfüllt ist. Anleitung Funktion Zeitgeber (16-Bit)
Seite 53
Anleitung Funktion Zähler (16-Bit) DCNT Zähler (32-Bit) Operanden K ● ● ● ● ● ● ● ● Informationen Normalerweise wird zur Verwendung von 32-Bit-Anweisungen das Präfix „D“ dem Namen der Anweisung hinzugefügt. – es existiert nur eine 32-Bit-Version der Anweisung. Für Impulsanweisungen mit einer "Lebensdauer"...
Seite 54
Eingangssignals verwendet werden, d.h. es kann viele Male in vielen logischen Ausdrücken gelesen werden. — Um den aktuellen Wert eines Zählers zurückzusetzen, verwenden Sie den RST-Befehl. — Achtung: Hardwarezähler zählen über den Schwellenwert hinaus und arbeiten unabhängig vom Vorhandensein eines Eingangssignals Verwendung: K100 K100...
Seite 55
Anleitung Funktion Beginn einer logischen Verknüpfung einer fallenden Flankenabfrage (Impuls) Operand ● ● ● ● ● Beschreibung: — Der Befehl LDF wird verwendet, um den Pulsstart einer logischen Verbindung zu programmieren. — Der Befehl LDF muss am Anfang der Schaltung programmiert werden. —...
Seite 56
Der Befehl "ANDP X1" erzeugt eine serielle logische Verbindung. Wenn der Eingang X1 von "0" auf "1" wechselt (und Х0 = 1), behält der Ausgang Y1 den Zustand "1" während eines Scans bei. Anleitung Funktion ANDF «AND» mit Abfrage bei fallender Flanke (Impuls) Operand ●...
Seite 57
Der Befehl "ORP X1" erzeugt eine parallele logische Verbindung. Der Ausgang Y1 behält den Zustand "1" während eines Zyklus, wenn der Eingang X1 von "0" auf "1" wechselt oder Х0 = 1 ist. Anleitung Funktion «OR» mit Flankenabfrage (Impuls) Operand ●...
Seite 58
Verwendung: Anleitung Funktion FEND Ende des Hauptprogramms Beschreibung: Das Ende des Hauptbenutzerprogramms und der Übergang zum Programmanfang (Schritt 0). Die Hauptunterschiede zum END-Befehl sind folgende: — Die Bearbeitung endet nicht mit dem FEND-Befehl. Der Befehl FEND trennt das Hauptprogramm von Unterprogrammen und Interrupt-Handlern, die sich im Bereich zwischen den Befehlen FEND und END befinden und von P und SRET, I und IRET eingerahmt werden.
Seite 59
Verwendung: NOP-Anweisungen werden in Kontaktplänen nicht angezeigt. Anleitung Funktion Invertierung - Ersetzen des Ergebnisses logischer Verknüpfungen durch das Gegenteil Beschreibung: — Der Befehl INV invertiert den Zustand des Ergebnissignals der davor platzierten Anweisungen. — Das Ergebnis der logischen Verknüpfung „1“ vor dem INV-Befehl wird danach zu „0“.
Seite 60
Verwendung: OUT Y1 Der Punkt P10 gibt die Übergangsadresse für die Ausführung des Befehls CJ Р10 Anleitung Funktion Adressierung eines Unterbrechungspunkts Operand 0…100, 1000…1007, 2000, 2001 Beschreibung: Der Befehl I wird verwendet, um den Übergangspunkt zum Interrupt-Handler anzuzeigen. Global werden Interrupts durch den Befehl EN aktiviert und durch den Befehl DS deaktiviert.
Seite 61
Verwendung: Aktivierung der Unterbrechungen Öffner X1 Ausgang Y1 … Unterbrechungssperre … FEND FEND Ende des Hauptprogramms I1001 1001 Einsprungpunkt für den Interrupt-Handler. IRET Öffner X2 Ausgang Y2 … IRET Ende der Interrupt- Bearbeitungsroutine rspro.com...
7. Anwendungshinweise Anleitung Operanden Zugehörige Funktion Varianten Bedingter Sprung Zeiger P werden als Operanden verwendet. Die Operanden können indiziert werden (A, B) Beschreibung: Mit dem Befehl CJ kann ein Teil des Programms übersprungen werden. Durch die Anwendung dieses Befehls kann die Ausführungszeit des Programms reduziert werden. Beispielsweise das Überspringen eines Programmabschnitts, der für die Initialisierung der Peripheriegeräte der Steuerung, das Aktivieren von Interrupts usw.
Seite 63
— Das Programm kehrt nach der Verarbeitung des SRET zu dem Befehl zurück, der dem CALL-Befehl folgt. — Der SRET-Befehl kann nur zusammen mit dem CALL-Befehl verwendet werden. Hinweis: Dieser Befehl benötigt keine Eingangsbedingung (Kontakte sind nicht erforderlich). IRET Ende der Interrupt-Bearbeitungsroutine Beschreibung: Der Befehl IRET definiert das Ende der Interrupt-Bearbeitung (weitere Details siehe Abschnitt 4.8).
Seite 64
Ausführung eines Interrupt-Unterprogramms Mehrere Interrupt-Unterprogramme, die nacheinander ablaufen, werden in der Reihenfolge ihres Aufrufs bearbeitet. Wenn mehrere Interrupt-Unterprogramme gleichzeitig aufgerufen werden, wird das Interrupt- Programm mit der niedrigsten Punktadresse zuerst bearbeitet. Schleifenanfang FÜR-NÄCHSTES ● ● ● ● ● ● ● Hinweis: Dieser Befehl benötigt keine Eingangsbedingung (Kontakte sind nicht erforderlich).
Seite 65
Der Programmteil B wird innerhalb jeder Wiederholung von Teil A 4-mal ausgeführt (K4 bedeutet Dezimalzahl 4). NEXT NEXT Vergleich der numerischen Daten ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Hinweis: Operand D belegt 3 Adressen. Beschreibung: Vergleich zweier numerischer Datenwerte (größer, kleiner, gleich).
Seite 66
Beispiel: If K10 > D10, Y0 = On If K10 = D10, Y1 = On If K10 < D10, Y2 = On Y0: wird eingeschaltet, wenn K10 > Datenregister D10 ist, Y1 und Y2 sind ausgeschaltet. Y1: wird eingeschaltet, wenn K10 = Datenregister D10 ist, Y0 und Y2 sind ausgeschaltet.
Seite 67
— Daten in der Quelle (S) werden mit Daten in beiden Quellen (S1) und (S2) verglichen. — Das Ergebnis des Vergleichs (größer, kleiner, gleich) wird durch Aktivieren des Relais M oder Ausgangs Y angezeigt. Welcher der Kontakte am Zieloperanden (D) aktiv ist, wird durch das Vergleichsergebnis bestimmt. (S) <...
Seite 68
DMOV DMOV BMOV Blockdatenübertragung ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beschreibung: Kopieren Sie das Datenpaket. Die Verschiebung während des Vorgangs wird sowohl für den Quelloperanden (S) als auch für den Zieloperanden (D) um (n) Blockelemente durchgeführt, abhängig vom Befehl (16-Bit oder 32-Bit).
Seite 69
FMOV Übertragung von Daten an mehrere Adressen ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beschreibung: Der Wert des Quelloperanden (S) wird in (n) Zieloperanden (D) desselben Typs kopiert.
Beispiel: Wenn X0 = 1 ist, wird der Datenaustausch durchgeführt: Addition von numerischen Daten ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beschreibung: — Binärdaten in den Quelloperanden (S1) und (S2) werden addiert. Das Ergebnis der Addition wird im Zieloperanden (D) gespeichert.
Seite 71
DADD (D31, D30) + (D41, D40) = (D51, D50) Wenn X0 eingeschaltet ist, wird das Ergebnis der Addition der Werte der Register (D31, D30) und (D41, D40) in den Datenregistern (D51, D50) gespeichert. Subtraktion numerischer Daten ● ● ● ● ●...
Seite 72
Wenn Х0 eingeschaltet ist, wird die Differenz zwischen den Datenwerten in den Registern (D31, D30) und (D41, D40) berechnet. Das Ergebnis wird in den Datenregistern (D51, D50) gespeichert. Multiplikation numerischer Daten ● ● ● ● ● ● ● ● ● ●...
Seite 73
Division numerischer Daten ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beschreibung: — Der Wert des Quelloperanden (S1) wird durch den Datenwert des Quelloperanden (S2) geteilt. Der ganze Teil des Divisionsergebnisses wird im Zieloperanden (D) gespeichert.
Seite 74
Berechnung des Restes der Division ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beschreibung: — Der Wert des Quelloperanden (S1) wird durch den Datenwert des Quelloperanden (S2) geteilt. Der Rest der Division wird im Zieloperanden (D) gespeichert.
Seite 75
Numerische Daten erhöhen ● ● ● ● ● Beschreibung: Der Wert im Operanden (D) wird um 1 erhöht. Beispiel: DINCP Der Wert in den Datenregistern (D1, D0) wird um 1 erhöht, wenn die Eingangsbedingung X0 eingeschaltet ist. Der Befehl wird aufgrund der angeschlossenen Pulsfunktion aktiviert, so dass der Summierungsvorgang nicht in jedem Programmzyklus durchgeführt wird.
Seite 76
WAND Logische Multiplikation numerischer Daten (Operation „AND“) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Hinweis: WAND ist ein 16-Bit-Befehl, DAND ist ein 32-Bit-Befehl. Beschreibung: — Die Operation "logisches AND" für numerische Daten ist eine Bitoperation (wird bitweise ausgeführt).
Seite 77
Logische Addition numerischer Daten (OR- Verknüpfung) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Hinweis: WOR ist ein 16-Bit-Befehl, DOR ist ein 32-Bit-Befehl. Beschreibung: — Die Operation "logisches OR" für numerische Daten ist eine Bitoperation (wird bitweise ausgeführt).
Seite 78
WXOR Logische Operation „Exklusives OR“ ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Hinweis:WXOR ist ein 16-Bit-Befehl, DXOR ist ein 32-Bit-Befehl. Beschreibung: — Die Operation "logisches exklusives OR" für numerische Daten ist eine Bitoperation (wird bitweise ausgeführt).
Seite 79
Logische Negation ● ● ● ● ● Beschreibung: Logische Negationsoperation (Inversion aller Bits in binärer Form und Addition mit 1) für numerische Daten. Beispiel: NEGP Wenn Х0 = 1 ist, wird die Operation der logischen Negation und Modifikation mit dem Wert im Operanden D0 durchgeführt. 13931 →...
Seite 80
Beschreibung: Bits Rotation um (n) Stellen nach links. Beispiel: ROLP Wenn Х0 = 1 ist, rotieren die Bits des Wertes im Datenregister D10 um 4 Bits nach links und der Wert wird geändert. rotation to the left high bit low bit high bit low bit Zyklische Verschiebung nach rechts...
Seite 81
rotation to the right high bit low bit high bit low bit ZRST Gruppenrücksetzung von Operanden ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beschreibung: Die Werte mehrerer nacheinanderfolgender Operanden (Operandenbereich) können durch den Befehl ZRST zurückgesetzt werden. Bitkontakte werden ausgeschaltet, die Register werden auf den Wert "0"...
Seite 82
DECO Decoder 8 → 256 Bit ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Hinweis:Wenn (D) ein Bit-Operand ist: (n) = 1…8. Wenn (D) ein numerischer Operand ist: (n) = 1…4.
Seite 83
Beispiel: Verwendung eines DECO-Befehls mit Bitoperanden in (D). DECOP Wenn (n) = 3 ist, werden die Eingangsoperanden Х0, X1 und Х2 verarbeitet. 2 8 Adressen werden als Ziel M10…M17 verwendet. Der Wert der Eingangsoperanden ist 1 + 2 = 3. Daher wird die 3. Adresse des Ziels, d.h.
Seite 84
ENCO Kodierer 256 → 8 Bit ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Hinweis: Wenn (D) ein Bit-Operand ist: (n) = 1…8. Wenn (D) ein numerischer Operand ist: (n) = 1…4.
Seite 85
Beispiel: Verwendung einer ENCO-Anweisung mit Bit-Operanden in (S). ENCOP All bits are reset Wenn 2 = 8 ist, dann sind die Ausgangsrelaisadressen M0.. .М7. Sobald der 3D- Ausgang aktiviert wird (d. h. M3 = 1), wird der Wert 3 in das Datenregister D0 geschrieben. Verwendung einer ENCO-Anweisung mit numerischen Operanden in (S).
Seite 86
Beschreibung: — Ermittlung der Anzahl der aktiven Bits in einem Datenwort. Die Anweisung zählt die eingeschalteten Bits in (S). — Der Ergebniswert wird in (D) geschrieben. Wenn eine 32-Bit-Anweisung verarbeitet wird, werden die oberen 16 Bits (D + 1) der Zieloperanden (D) auf Null gesetzt, da die maximale Anzahl der eingeschalteten Bits in (S) 32 beträgt.
Seite 87
Konvertierung einer Ganzzahl in eine Gleitkommazahl ● ● ● ● ● ● ● ● Beschreibung: Die Anweisung FLT konvertiert eine ganze Zahl mit Vorzeichen in das Gleitkommaformat. — Die Ganzzahl im Operanden (S) wird in eine Gleitkommazahl umgewandelt. Das Ergebnis wird im Operanden (D) gespeichert. —...
Seite 88
Beispiel: t – pulse width - sampling time T – period Die Abtastperiode sei 100 μs. Wenn die Eingangsbedingung X0 = 1 erfüllt ist, erscheint am Ausgang Y6 das PWM-Signal mit einer Periode von 8 x 100 μs = 0.8 ms und einer Impulsdauer von 3 x 100 μs = 0.3 ms.
Seite 89
Potenzieren ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Potenzieren: ( ) = (1) Beschreibung: (2) Der Befehl POW potenziert den Wert im Operanden (S1) mit (S2). Das Ergebnis wird im Operanden (D) gespeichert. Die Operation wird mit vorzeichenbehafteten Integer- Datentypen durchgeführt.
Seite 90
— Wenn die Zahl in (S2) kleiner als die Zahl in (S1) ist, wird der Bit-Operand (D) eingeschaltet. — Wenn die Zahl in (S2) gleich der Zahl in (S1) ist, wird der Bit-Operand ((D) +1) eingeschaltet. — Wenn die Zahl in (S2) größer als die Zahl in (S1) ist, wird der Bit-Operand ((D) +2) eingeschaltet.
Seite 91
Hinweis: — Nur 32-Bit-Befehl. — Der Operand (D) belegt 3 aufeinanderfolgende Adressen. — K- und H-Typen werden nicht in F konvertiert, sondern auf einen Speicherbereich projiziert. Um Integer-Datentypen in Gleitkommadaten zu konvertieren, verwenden Sie den Befehl FLT. Beschreibung: Vergleich der Gleitkommazahl mit dem ausgewählten (angegebenen) Bereich und Ausgabe des Vergleichsergebnisses.
Beschreibung: Berechnung der Summe zweier Zahlen im binären Gleitkommaformat. — Die in (S1) und (S2) angegebenen Gleitkommazahlen werden addiert. Das Ergebnis der Addition wird im Zieloperanden (D) gespeichert. — Für jeden Operanden werden zwei aufeinanderfolgende Register verwendet. — Derselbe Operand kann als Quelle und als Ziel verwendet werden. In diesem Fall wird das berechnete Ergebnis wieder im Quelloperanden gespeichert und kann für die nächste Berechnung verwendet werden.
Seite 93
— Die in (S2) angegebene Gleitkommazahl wird von der in (S1) angegebenen Gleitkommazahl subtrahiert. Das Ergebnis wird in (D) gespeichert. — Für jeden Operanden werden zwei aufeinanderfolgende Register verwendet. — Derselbe Operand kann als Quelle und als Ziel verwendet werden. In diesem Fall wird das berechnete Ergebnis wieder im Quelloperanden gespeichert und kann für die nächste Berechnung verwendet werden.
Seite 94
— Derselbe Operand kann als Quelle und als Ziel verwendet werden. In diesem Fall wird das berechnete Ergebnis wieder im Quelloperanden gespeichert und kann für die nächste Berechnung verwendet werden. Dieser Vorgang wird in jedem Programmzyklus wiederholt. Beispiele: DEMUL Wenn Eingang X0 eingeschaltet ist, wird die Gleitkommazahl in (D1, D0) mit der Gleitkommazahl in (D3, D2) multipliziert.
Seite 95
kann für die nächste Berechnung verwendet werden. Dieser Vorgang wird in jedem Programmzyklus wiederholt. — Der Operand (S2) darf nicht Null sein, da eine Division durch Null nicht zulässig ist. Beispiele: DEDIV Wenn der Eingang X0 eingeschaltet ist, wird die Gleitkommazahl in (D1, D0) durch die Gleitkommazahl in (D3, D2) geteilt.
Seite 96
Beispiele: DESQR �(1, 0) → (11, 10) Wenn der Eingang X0 eingeschaltet ist, wird die Quadratwurzel der Gleitkommazahl in (D1, D0) berechnet. Das Ergebnis wird in (D11, D10) gespeichert. DESQR Wenn der Eingang X0 eingeschaltet ist, wird die Quadratwurzel der Konstante F16 berechnet.
Seite 97
Konvertierung einer Gleitkommazahl in eine Ganzzahl ● ● ● ● ● ● Beschreibung: Der Befehl INT konvertiert Gleitkommazahlen in ganze Zahlen, gerundet auf die nächste ganze Zahl. — Die in (S) angegebene Gleitkommazahl wird auf den nächsten ganzzahligen Wert gerundet und in (D) gespeichert. —...
Seite 98
Beschreibung: Lesen des aktuellen Werts der Echtzeituhr. — Mit dem Befehl TRD werden Echtzeitdaten gelesen (Stunden, Minuten, Sekunden). — Diese Daten werden in 3 aufeinanderfolgenden Operandenadressen (D) gespeichert. Beispiel: Wenn Eingang X0 eingeschaltet ist, werden Echtzeitdaten gelesen und in den Registern D0 ...
Seite 99
Wenn die Eingangsbedingung erfüllt ist, wird die Echtzeituhr des Controllers auf die in den Registern D0 ... angegebenen Werte gesetzt. D2. Register Funktion Wert Beispiel Sekunden 0…59 42 Protokoll 0…59 11 03:11:42 Stunden 0…23 3 Datum lesen ● Hinweis: Der Operand D belegt 3 aufeinanderfolgende Adressen. Beschreibung: Lesen des aktuellen Datumswerts.
Seite 100
Aufzeichnungsdatum Daten ● Hinweis: Der Operand (S) belegt 3 aufeinanderfolgende Adressen. Beschreibung: Der Befehl DWR wird verwendet, um die Datumsdaten (Tag, Monat, Jahr) zu ändern. Die Daten werden aus 3 aufeinanderfolgenden Adressen entnommen, die in (S) angegeben sind. Wenn die Werte in (S) den zulässigen Wertebereich überschreiten, tritt ein Fehler auf.
Seite 101
— Bit-Operanden werden abhängig vom Befehlstyp als 16- oder 32-Bit-Werte genommen und für die weitere Verarbeitung in einen Integer-Datentyp konvertiert. Beschreibung: Durchführung der logischen Operation "AND", "OR" und " EXCLUSIVE OR" an den Operanden (S1) und (S2) und Einschalten des LD-Kontakts, abhängig vom Ergebnis der Operation.
Seite 102
Beschreibung: Durchführung der logischen Operation "AND", "OR", "Exclusive OR " an den Operanden (S1) und (S2) und Einschalten des AND-Kontakts abhängig vom Ergebnis der Operation. Die AND#-Anweisungen im Programm befinden sich nach den LD-Befehlen und erstellen eine logische AND-Verbindung. Kontakt 32-Bit- Kontakt offen, 16-Bit-Befehle...
Seite 103
Beschreibung: Durchführung der logischen Operation "AND", "OR", " Exclusive OR" an den Operanden (S1) und (S2) und Einschalten des OR-Kontakts abhängig vom Ergebnis der Operation. Die OR#-Anweisungen im Programm befinden sich links parallel zum LD-Befehl und erstellen eine logische OR-Verbindung. Kontakt 32-Bit- Kontakt offen,...
Seite 104
Beschreibung: Vergleich der Werte der Operanden (S1) und (S2) und Einschalten eines LD- Kontakts, abhängig vom Ergebnis der Operation. — Die LD *-Anweisungen im Programm befinden sich links und beginnen eine logische Verbindung oder sind Bedingungen für die Ausführung von Anweisungen rechts.
Seite 105
Beschreibung: Vergleich der Werte der Operanden S1 und S2 und Einschalten des AND-Kontakts, abhängig vom Ergebnis der Operation. — Die AND*-Befehle im Programm befinden sich nach den LD-Befehlen und stellen eine logische AND-Verbindung her. . — Wenn das Vergleichsergebnis wahr ist, wird der AND-Kontakt eingeschaltet. —...
Seite 106
Beschreibung: Vergleich der Werte der Operanden S1 und S2 und Einschalten des OR-Kontakts, abhängig vom Ergebnis der Operation. — Die OR*-Anweisungen im Programm befinden sich links parallel zur LD- Anweisung und erstellen eine logische OR-Verbindung. — Wenn das Vergleichsergebnis wahr ist, wird der OR-Kontakt eingeschaltet. —...
8. Anweisungen zur Steuerung des Schrittmotortreibers Der Schrittmotortreiber wird durch Befehle gesteuert, die die Parameter für Drehung oder Bewegung festlegen. Alle Befehle sind in zwei Gruppen unterteilt: RUN und MOVE. Die Gruppe RUN dient zur Steuerung der aktuellen Geschwindigkeit des Antriebs und MOVE zur Steuerung der Bewegung.
Seite 108
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 5002h Halteregister D359 MIN_SP Die minimale Drehzahl für die Befehle der RUN-Gruppe. Für die MOVE- Gruppe ist dies ebenfalls die minimale Drehzahl, wenn das CMIN_SPD_EN- Flag nicht gesetzt ist. Wenn CMIN_SPD_EN gesetzt ist, wird die optimale minimale Drehzahl...
Seite 109
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 500Bh Halteregister D377 FS_SPD Der Schwellenwert für den Übergang _THR Mikroschritt- Vollschrittmodus, gemessen Vollschritten pro Sekunde. 500Dh Halteregister D379 FS_SW Das Setzen des Objekts auf „1“ aktiviert die Morphing-Funktion – der Controller wechselt nach Erreichen der 500Dh Spulen FS_SW_EN...
Seite 111
Beschreibung (Bit) Zahl Name 5015h Halteregister D370 HOLD_ Haltestrom, mA. Gültiger Wertebereich: RS 434540 - 150…1500; RS 434542 – 1000…4200 RS 434543 – 2800…8000 5016h Halteregister D382 CMIN_S „1“ – Automatische Berechnung der PD_EN Anfangs- und Endgeschwindigkeit für die Bewegungsbefehle der MOVE- Gruppe verwenden.
Seite 112
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 501Ah Spulen DATA_ERROR_SET_HIZ 3-Bit des Registers D380. Ist das Bit gesetzt, führt ein Fehler DATA_ERROR (fehlerhafte Dateneingabe in ACC, DEC, U_STEP – das Register D381) zum Abschalten des Motors (HiZ-Zustand). 501Bh Spulen OUT_OF_LIM_MIN_SPD_ 4-Bit des Registers D380.
Seite 113
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 501Eh Spulen NOT_APP_FS_PARAM_ 7-Bit des Registers D380. ERROR_SET_HIZ Wenn das Bit gesetzt ist, führt ein Fehler NOT_APP_FS_PARAM_ERROR_SE T_HIZ (Übergang Drehmomentverstärkung nicht möglich, während der Motor dreht – das Register D381) zum Abschalten des Motors (HiZ-Zustand).
Seite 114
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 502Dh Spulen UNREACHABLE_FS_SP 6-Bit des Registers D381 D_ERROR UNREACHABLE_FS_SPD_ERROR – Die volle Schrittfrequenzschwelle im Drehmoment-Boost-Modus konnte nicht erreicht werden. 502Eh Spulen NOT_APP_FS_PARAM_E 7-Bit des Registers D381 RROR . NOT_APP_FS_ PARAM_ERROR – Übergang von Drehmomentverstärkung nicht möglich, während der Motor sich dreht.
Seite 115
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 503Ch Diskrete BUSY_MOVE 5-Bit des Registers D371. Eingänge Das Flag der Unmöglichkeit, die Befehle MOVE-Gruppe anzuwenden. 503Dh Diskrete BUSY_RUN 6-Bit des Registers D371. Die Flagge Eingänge der Unmöglichkeit, die Befehle der RUN-Gruppe zu verwenden. 5047h Eingaberegis D383 CURRE...
Seite 116
Adresse Objekttyp Serviceregister Größe Beschreibung (Bit) Zahl Name 5105h Spulen SHIZ (SLOW_HIZ) Das Setzen eines Objekts auf „1“ oder die Anwendung des SHIZ-Befehls stoppt den Motor gemäß DEC und wechselt dann in den HiZ-Zustand. Bewegungsbefehl (CMD-Register) Wert Gruppe Name Beschreibung Rotation gemäß...
Seite 117
GOUNTIL_SLOWSTOP Bewegung einer festgelegten Geschwindigkeit SPEED, Beschleunigung ACC, Richtung DIR bis der Sensor SW_INPUT einer steigenden Flanke ausgelöst wird, mit einer anfänglichen Überprüfung Eingangspegels, gefolgt von Abbremsen Stoppen gemäß einem festgelegten DEC. GOUNTIL_FRONT_SLOWSTOP Bewegung einer eingestellten Geschwindigkeit SPEED, Beschleunigung ACC, Richtung DIR bis der Sensor SW_INPUT einer...
Seite 118
RELEASE Bewegung einer festgelegten Geschwindigkeit SPEED, Beschleunigung ACC und Richtung DIR, bis der Sensor SW_INPUT an der fallenden Flanke auslöst, mit einer anfänglichen Überprüfung Eingangspegels, anschließend Haltemodus wechselt. FRONT_RELEASE Bewegung einer festgelegten Geschwindigkeit SPEED, Beschleunigung ACC, Richtung DIR bis der Sensor SW_INPUT an der fallenden Flanke auslöst und dann in den Haltemodus wechselt.
Seite 119
Beispiel: Acceleration current K1500 D367 1500 mA Deceleration current K1500 D368 1500 mA Constant speed current K1200 D369 1200 mA Holding current K600 D370 600 mA TORQUE Apply currents SSTOP Der Motor stoppt gemäß dem DEC- Parameter und geht dann in den Haltemodus.
Seite 120
Beispiel: SHIZ HSTOP Hält den Motor sofort an und wechselt dann in den Haltemodus. 5102h Spulen Das Schreiben von „1“ in ein Objekt (auch wenn es nicht zurückgesetzt wird) stoppt den Motor sofort und wechselt dann in den Haltemodus, das Zurücksetzen wird ignoriert.
9. Kommunikationsparameter Die Steuerung verfügt über eine USB- und eine RS-485-Schnittstelle, beide haben den gleichen Zugriff auf Register und Bit-Operanden. Die USB-Schnittstelle ist ein virtueller COM-Port (VCP), sie ist hauptsächlich für die Konfiguration der Steuerung und die Aufzeichnung von Benutzerprogrammen vorgesehen, daher hat sie feste Kommunikationsparameter: Modbus ASCII, ID 1, 115200 Baud, 7, Gerade, 1.
Seite 123
Fehlercode Beschreibung 0001h Speicherzuordnungsfehler. 0002h Prüfsummenfehler. Beim Empfangen und Verarbeiten eines Broadcast-Pakets ist ein Fehler 0003h aufgetreten. 0004h Rahmengrößenkonflikt. 0005h Funktionsfehler (0Fh). Nicht alle Bits wurden überschrieben. 0006h Funktionsfehler (10h). Nicht alle Register wurden überschrieben. 0007h Funktionsfehler (17h). Nicht alle Register wurden überschrieben. 0008h Verlorener Frame aufgrund eines DMA-Fehlers.
10. Einstellen der Echtzeituhr Die Steuerung verfügt über eine Echtzeituhr, die von einer internen Quelle (CR2032- Batterie) gespeist wird, wodurch der Betrieb der Uhr bei ausgeschalteter Hauptstromversorgung gewährleistet ist. Dieselbe Batterie wird für den Betrieb von nichtflüchtigen Registern und den Sicherheitseinstellungen der Steuerungskommunikationsparameter verwendet.
11. Ein Benutzerprogramm - Laden in die Steuerung und Lesen aus der Steuerung 11.1. Verfahren zum Hochladen/Herunterladen von Benutzerprogrammen Die Steuerung verfügt über zwei Bereiche zum Herunterladen von Programmen: einen allgemeinen und einen speziellen Bereich. Der allgemeine Bereich ist zum Laden eines Benutzerprogramms mit einer maximalen Länge von bis zu 59752 Zeilen vorgesehen (der Bereich ist standardmäßig leer).
Seite 126
;Eingangszustandfür Zonenvergleichsoperation K1024 K2048@A0 D354 M0 ;Zonenvergleich, Bestimmung der Position des; Potentiometers SPEED (2) ;wenn der Wert im Register D354 kleiner als 1024 ist, dann wird eingeschaltet, andernfalls – ausgeschaltet ;wenn der Wert im Register D354 größer oder gleich 1024 und kleiner oder gleich der Summe von 2048 und dem Wert von A0 ist, dann wird Y1 eingeschaltet, andernfalls –...
Seite 127
schreiben, setzen Sie die Coils F005h, um das Programm aus der Steuerung zu lesen – setzen Sie die Coils F005h zurück. 6) Wählen Sie den Programmtyp aus. Setzen Sie für das Benutzerprogramm die Coils F006h zurück, für das Serviceprogramm setzen Sie die Coils F006h. 7) Stellen Sie die Zeilennummer zum Schreiben/Lesen des Programms mithilfe der Holding-Register F100h ein.
Die Operandentypcodes sind in der folgenden Tabelle aufgeführt: Operand Code 11.2. Blockweises Hochladen/Herunterladen eines Benutzerprogramms Ein Benutzerprogramm kann schneller gelesen und geschrieben werden, wenn das blockweise Hochladen/Herunterladen verwendet wird. Die Vorgehensweise beim blockweisen Hochladen/Herunterladen eines Benutzerprogramms ähnelt dem Abschnitt «Benutzerprogramm Hochladen/Herunterladen Vorgehensweise», jedoch mit den folgenden Unterschieden: Ein Benutzerprogramm schreiben Beginn des Verfahrens...
Sektor hochladen Adressen Upload-Sektoren sind Holding-Register F401h…F4FFh. Sektor kann Befehlszeilen (Anweisungen) enthalten. Die Anzahl der zu lesenden Zeilen wird in den Holding-Registern F400h angegeben. Nach Abschluss des Vorgangs zeigt F400h die tatsächlich gelesene Zeilenanzahl an. . Für jede Befehlszeile im Download-/Upload-Sektor sind 34 Bytes Kommandozeile reserviert.
Fehlercode Beschreibung 0001h Der Schreibschutz für das Hauptprogramm wurde nicht gesetzt. 0002h Der Schreibschutz für das Serviceprogramm wurde nicht gesetzt. 0003h Löschen des Hauptprogrammsektors fehlgeschlagen. 0004h Löschen des Serviceprogramm-Sektors fehlgeschlagen. 0005h Das Schreiben des Befehls in das Hauptprogramm ist fehlgeschlagen. 0006h Das Schreiben des Befehls an das Serviceprogramm ist fehlgeschlagen.
Seite 132
Abb. 35. Anschluss der Bedienelemente rspro.com...
Achtung Wird der Controller im RUN-Modus eingeschaltet, während die Schalter SLOW STOP und HARD STOP geschlossen und der Schalter ENABLE geöffnet sind, führt dies zur Motorrotation. Um eine unkontrollierte Rotation zu vermeiden, drehen Sie das Potentiometer „SPEED“ auf die minimale Position oder ändern Sie die Position eines der oben genannten Schalter auf die im Diagramm angegebene entgegengesetzte Position.
Arbeitsstroms wird durch das Potentiometer (1) vom Minimal- bis zum Maximalwert für das – Öffnen des Stromkreises bewirkt, dass der Motor gemäß der durch Modell eingestellt. das Potentiometer (0) eingestellten Verzögerung stoppt (der Beschleunigungswert wird ebenfalls durch das Potentiometer (0) eingestellt). Der Code des Serviceprogramms ist in Anhang D.
Wenn sich der Controller im Zustand RUN befindet, sind die oben genannten Parameter festgelegt und werden nach dem Ausschalten gespeichert. Verwenden Sie die Ein- und Ausgänge des Controllers gemäß der Pinbelegungstabelle (Abb. 2). 14. Benutzerprogramm-Steuerungsmodus Der Controller bietet einen Steuerungsmodus gemäß einem Benutzerprogramm und wird über Modbus-Befehle gesteuert.
Adresse Größe Beschreibung 0x8111 Spulen Das Einstellen des Objekts setzt die Zeit aus den Registern 0x8110 - 0x8112. Nach dem Setzen des Objekts ist es erlaubt, die automatische Aktualisierung wieder einzuschalten. Datumseinstellung 0x8113 Bestände 16-Bit Tag. Register Gültige Werte: 1…31 0x8114 Bestände 16-Bit...
Adresse Größe Beschreibung 0xF000 Spulen Steuerelement für das zeilenweise Lesen/Schreiben eines Benutzerprogramms. Das Setzen des Objekts startet die in den Objekten 0xF005 und 0xF006 parametrierte Operation. 0xF001 Spulen Leseschutz des Haupt (benutzer) programms. Setzen – nicht geschützt. Zurücksetzen — Schreibschutz ist gesetzt. Der Versuch, das Objekt zu setzen, führt zum Löschen des Hauptprogramms.
Adresse Größe Beschreibung 0xF204 Eingaberegis 16-Bit Indextyp des ersten Operanden 0xF205 Eingaberegis 16-Bit Wert des ersten Index-Operanden 0xF206 Eingaberegis 16-Bit Typ des zweiten Operanden 0xF207 Eingaberegis 32-Bit Wert des zweiten Operanden 0xF209 Eingaberegis 16-Bit Indextyp des zweiten Operanden 0xF20A Eingaberegis 16-Bit Wert des zweiten Index-Operanden 0xF20B...
Adresse Größe Beschreibung 0xF30B Halteregister 16-Bit Typ des dritten Operanden 0xF30C Halteregister 32-Bit Wert des dritten Operanden 0xF30E Halteregister 16-Bit Indextyp des dritten Operanden 0xF30F Halteregister 16-Bit Wert des dritten Index-Operanden 0xF310 Halteregister 16-Bit Typ des vierten Operanden 0xF311 Halteregister 32-Bit Wert des vierten Operanden 0xF313 Halteregister 16-Bit...
Adresse Größe Beschreibung 0xF4F2 Halteregister 16-Bit Wert des Operanden 1 Index der Zeile 15 des Lese- /Schreibsektors 0xF4F3 Halteregister 16-Bit 8 Bits LSB – Operand 1 Typ – Zeile 15 des Lese- /Schreibsektors 8 Bit MSB – Indextyp des Operanden 1 des Lese- /Schreibsektors Operand 4 der Zeile 15 des Lese-/Schreibsektors 0xF4FC...
Adresse Größe Beschreibung 0xE004 Eingaberegis 16-Bit Benutzerprogramm-Fehlercode. 0xE084 Eingaberegis 16-Bit Die Nummer der Zeile, die den Fehler im Benutzerprogramm verursacht hat (Nummerierung beginnt bei 0, siehe Beschreibung der Coils 0xF100 oben). Zugriff auf Programmoperanden Diskrete Ausgänge 0x1000 Diskrete Diskretes Ausgangssignal Y0 Eingänge 0x1001 Diskrete...
0x8011 Leere Zeile im Programm 0x6051 Adressierung eines Sprungpunkts in einem Programm oder Unterprogramm 0x6031 Adressierung eines Unterbrechungspunkts 0x6023 Programmende Anweisungen für Schleifen, Übergänge, Unterprogramme 0x200D Bedingter Sprung - gehe zur angegebenen Programmzeile 0x280D Bedingter Sprung - gehe zur angegebenen Programmzeile mit Flankenabfrage (Impuls) CALL 0x200E Unterprogrammaufruf...
DMOVP 0x3818 Datenübertragung, 32-Bit-Instruktion mit Flankenabfrage (Impuls) BMOV 0x2038 Blockdatenübertragung BMOVP 0x2838 Blockdatenübertragung mit Flankenabfrage (Impuls) DBMOV 0x3038 Blockdatenübertragung, 32-Bit-Befehl DBMOVP 0x3838 Blockdatenübertragung, 32-Bit-Befehl mit Flankenabfrage (Impuls) FMOV 0x2058 Datenübertragung an mehrere Adressen FMOVP 0x2858 Datenübertragung an mehrere Adressen mit Flankenabfrage (Impuls) DFMOV 0x3058 Übertragung von Daten an mehrere Adressen, 32-Bit-Instruktion...
Seite 151
DDIV 0x3268 Division numerischer Daten, 32-Bit-Instruktion DDIVP 0x3A68 Division numerischer Daten, 32-Bit-Instruktion mit Flankenabfrage (Impuls) 0x22E8 Rest der Division MODP 0x2AE8 Rest der Division mit Flankenabfrage (Impuls) DMOD 0x32E8 Rest der Division, 32-Bit-Instruktion DMODP 0x3AE8 Rest der Division, 32-Bit-Instruktion mit Flankenabfrage (Impuls) 0x2037 Numerische Daten inkrementieren (um 1 erhöhen) INCP 0x2837 Numerische...
Datenverarbeitung ZRST 0x2203 Gruppenrücksetzung von Operanden in einem gegebenen Bereich ZRSTP 0x2A03 Gruppenrücksetzung von Operanden in einem gegebenen Bereich mit Flankenabfrage (Impuls) DECO 0x2211 Decoder 8 → 256-Bit DECOP 0x2A11 Decoder 8 → 256-Bit mit Flankenabfrage (Impuls) ENCO 0x2212 Kodierer 256 → 8 Bit ENCOP 0x2A12 Encoder 256 →...
DESUBP 0x2A37 Subtraktion von Gleitkommazahlen mit Flankenabfrage (Impuls) DEMUL 0x2257 Multiplikation von Gleitkommazahlen DEMULP 0x2A57 Multiplikation von Gleitkommazahlen mit Flankenabfrage (Impuls) DEDIV 0x2277 Gleitkommazahlendivision DEDIVP 0x2A77 Gleitkommazahlendivision mit Flankenabfrage (Impuls) DESQR 0x2218 Quadratwurzel im Gleitkommaformat DESQRP 0x2A18 Quadratwurzel im Gleitkommaformat mit Flankenabfrage (Impuls) DEPOW 0x2297 Potenzieren im Gleitkommaformat DEPOWP 0x2A97 Potenzieren im Gleitkommaformat mit Flankenabfrage (Impuls)
DLD| 0x5224 Kontakt ist geschlossen, wenn S1 | S2 ≠ 0, 32-Bit-Instruktion 0x4244 Kontakt ist geschlossen, wenn S1 ^ S2 ≠ 0 0x5244 Kontakt ist geschlossen, wenn S1 ^ S2 ≠ 0, 32-Bit-Instruktion 0x4205 Serienkontakt geschlossen, wenn S1 & S2 ≠ 0 DAND&...
0x42A5 Serienkontakt geschlossen, wenn S1 < S2 DAND< 0x52A5 Serienkontakt geschlossen, wenn S1 < S2, 32-Bit-Instruktion AND<> 0x42C5 Serienkontakt geschlossen, wenn S1 ≠ S2 DAND<> 0x52C5 Serienkontakt geschlossen, wenn S1 ≠ S2, 32-Bit-Instruktion AND<= 0x42E5 Serieller Kontakt geschlossen, wenn S1 ≤ S2 DAND<= 0x52E5 Serienkontakt geschlossen, wenn S1 ≤...
Seite 157
HHIZP 0x2A67 Motorphasen sofort (Welle dreht sich frei) mit Flankenabfrage (Impuls) stromlos schalten SSTOP 0x2287 Bis zum vollständigen Stillstand abbremsen und in den Haltemodus wechseln SSTOPP 0x2A87 Bis vollständigen Stillstand abbremsen Flankenauswertung (Impuls) in den Haltemodus wechseln SHIZ 0x22A7 Bis zum vollständigen Stillstand abbremsen und Motorphasen stromlos schalten (die Welle dreht sich frei) SHIZP 0x2AA7 Abbremsen...
Anhang C. Beispiele von Benutzerprogrammen Beispiel 1. Verwendung des RUN-Befehls ;erfasse den vorderen Teil des Impulses am Eingang X0 (Taste) DMOV D359 ;minimale Geschwindigkeit auf 8 pps setzen DMOV K120000 D357 ;Maximale Geschwindigkeit auf 120000 pps setzen FMOV K30000 D361 ;Beschleunigung und Verzögerung auf 30000 setzen D366...
Seite 159
;und springe zur mit P1 markierten Zeile M108 ;M108 Vorderflanke nur nach der Initialisierung DMOV K120000 D357 ;maximale Geschwindigkeit auf 120000 pps setzen FMOV K30000 D361 ;Beschleunigung und Verzögerung auf 30000pps setzen D366 ;Mikroschrittbetrieb 1/8 (siehe Beschreibung des Befehls SPIN) DMOV K6000 D377...
Seite 160
SSTOP ;gemäß dem voreingestellten DEC anhalten und in den Haltemodus wechseln ;erfasse den vorderen Teil des Impulses am Eingang X4 (Taste) SHIZ ;gemäß dem voreingestellten DEC anhalten und in den HiZ-Modus wechseln ;erfasse den vorderen Teil des Impulses am Eingang X5 (Taste) HSTOP ;...
Beispiel 3. Verwendung der Befehle GOUNTIL_SLOWSTOP und RELEASE Verwendung der Befehle GOUNTIL_SLOWSTOP und RELEASE als Beispiel für die Bewegung zur Ausgangsposition entlang des positiven Endschalters (siehe Abb. 36). Positive limit switch Abb. 36. Bewegung zum Ursprung ;um den Initialisierungsabschnitt zu überspringen, überprüfen Sie die Bedingung ;und springe zur mit P1 markierten Zeile M108...
Seite 162
SPIN ;Bewegung starten ;Setze das Flag, um die erste Stufe zu starten ;warte, wenn der Endschalter in der ersten Stufe aktiviert wird AND& D371 ;und der Motor stoppt ;Setze das Flag der ersten Stufe zurück DMOV K1000 D357 ;Geschwindigkeit verringern D376 ;Bewegung in die entgegengesetzte Richtung bis zum Endschalter...
Anhang D. Code des Dienstprogramms „Schrittmotordrehzahlregelung“ ;Initialisierungs-Bypass-Bedingung M108 ;Initialisierungsteil D320 ;D320 speichert Mikroschrittwert OR> D320 OR< D320 D320 D320 D366 D320 ;D0 – das Serviceregister für die Visualisierung von Mikroschritten AND> ;da der Controller kein Mikroschrittverfahren 1/64 unterstützt, ;überspringe diesen Wert DECO ;Visualisierung des Mikroschritts auf der Ausgangsskala...
Seite 164
D321 M108 D353 ;Daten des Potentiometers1 FMOV D367 ;Beschleunigungs-, Verzögerungs- und Konstantgeschwindigkeitsstrom einstellen D370 ;Halten des aktuellen Werts – 50% des Arbeitsstroms TORQUE D374 D374 DLD< D322 K250 ;D322, D323 Geschwindigkeitseinstellung über Tasten DOR> D322 K120000 DMOV K250 D322 DMOV D322 DLD<...
Seite 165
AND& D371 CALL P10A0 SPIN AND& D371 HSTOP M102 AND& D371 SSTOP M109 ;falls ein Fehler aufgetreten ist und die ERR-Anzeige leuchtete - ;Timer zum Ausschalten starten M109 LD<> ANDP DADD D354 DAND> K120000 DMOV K120000 DMOV D322 ANDP DSUB D354 DAND<...
Seite 166
D354 DMUL DADD D354 DMUL DADD DAND< K250 DMOV K250 DAND> K120000 DMOV K120000 DMOV D324 FEND ;Ende des Hauptprogramms ;Unterprogramm zum Einstellen der Geschwindigkeit über das Potentiometer M108 D354 AND= DMUL DAND< K250 DMOV K250 DMOV D357 CALL SRET ;...
Seite 167
M108 DMOV D324 D357 CALL SRET ;Unterprogramm zur Aktualisierung von Beschleunigung und Verzögerung M108 D352 AND= D361 D361 D362 SRET ;500 ms Unterbrechung zur Aktualisierung der Ströme M108 D353 FMOV D367 D370 TORQUE IRET ;Unterbrechung mit einer Periode von 100 ms zur Aktualisierung der Geschwindigkeit M102 D371...
Seite 168
D321 D321 D321 AND= D321 D355 M108 AND<> D321 D355 M108 D320 D320 D366 AND> DECO IRET 1004 ;Unterbrechung von der Eingabe IN4 M104 HHIZ M104 AND& D371 CALL P10A0 SPIN HSTOP IRET 1003 ;Unterbrechung von der Eingabe IN3 M103 HSTOP M103 AND&...
Seite 169
IRET 1002 ;Unterbrechung von der Eingabe IN2 M102 SSTOP M102 AND& D371 CALL P10A0 SPIN IRET 1007 ;Unterbrechung von der Eingabe IN7 LD& D371 M107 AND= D374 SSTOP M107 AND= D374 SSTOP M107 D374 AND& D371 CALL P10A0 SPIN M107 D374 AND&...
Anhang E. Die Lebensdauer der Flanken der Operanden M und Y Alle folgenden Informationen gelten für die Operanden M und Y, sowohl für die Vorder- als auch für die Rückflanke. Beispiel 1 Betrachten Sie die Lebensdauer der Vorderflanke des Operanden M0, mit garantierter Passage des Startpunkts der Lebensdauer beim nächsten Scan.
Seite 171
Die erste Unterbrechung tritt nach Zeile 2 beim ersten Scan auf. Zu diesem Zeitpunkt ist die Vorderflanke von M0 nicht vorhanden. Die zweite Unterbrechung wird nach Zeile 6 verarbeitet. Das Vorhandensein IRET einer Vorderflanke an M0 wird an die Unterbrechungsverarbeitung übertragen, sodass das Ergebnis der Arbeit D2 = 1 ist.
Seite 172
Der Beginn der Lebensdauer der Vorderflanke des Operanden M0 im ersten Scan. Der nächste Durchlauf dieses Punktes erfolgt erst im dritten Scan. Es wird zweimal funktionieren, da der Startpunkt der Lebensdauer der Vorderseite vom Befehlshandler im zweiten Scan übersprungen wurde und die Lebensdauer bis zum Empfang des END / FEND-Befehls erhöht wurde.
Anhang F. Debuggen des Benutzerprogramms Der Debug-Modus ermöglicht dem Benutzer: • vier Haltepunkte für die Ausführung des Benutzerprogramms zu setzen (Breakpoint), • Operanden anzuzeigen und zu bearbeiten, • die Ausführung des Benutzerprogramms anzuhalten und fortzusetzen. Unten finden Sie die Liste der Debugger-Register: Adresse Typ Größe Beschreibung Steuerung der Ausführung des Benutzerprogramms...
Adresse Typ Größe Beschreibung Haltepunkte Zusätzlich Einzelschritt-Debugging, wenn Ausführung eines Benutzerprogramms bei jeder nächsten Befehlszeile anhält, ist es möglich, vier Haltepunkte festzulegen, an denen die Programmausführung angehalten wird. Haltepunkt 1 0x6200 Spulen Das Setzen des Objekts aktiviert den Haltepunkt 1. Die Ausführung des Benutzerprogramms wird an dem Index angehalten, der in den Holding Registern 6200h angegeben ist.
Seite 175
Adresse Typ Größe Beschreibung 0x6001 Spulen Anforderung zum Schreiben von Daten durch Setzen Registers. Reset erfolgt automatisch. Die Antwort auf die Anfrage zeigt an, dass Daten in den Operanden geschrieben wurden. 0x6002 Spulen Größe der Registerdaten beim Lesen/Schreiben Zurücksetzen – 16-Bit Setzen –...
Seite 176
0x02 – hohe Ebene, 0x04 – niedriger Pegel, mit einer fallenden Flanke. Lieferung in kompletten Sets Schrittmotortreiber RS 434540 / RS 434542 / RS 434543 1 Stück Herstellerinformationen RS Components verfolgt die Linie der kontinuierlichen Entwicklung und behält sich das Recht vor, Änderungen und Verbesserungen am Design und der Software des Produkts ohne vorherige Ankündigung...