Makro Sprache Laufzeitumgebung
Gültig für S300, S700
Table of Contents
Für ein Anwendungsprogramm stehen bis zu 7 verschiedene Tasks, ein Interupt Task, bis zu 32 Prozeduren zur Fehlerbehandlung und eine unbegrenzte Anzahl benutzerdefinierter Programme zur Verfügung.
Alle Prozeduren können definiert werden mit
PROGRAM “task name”
...
END_PROGRAM
Für die „task names" gibt es einige vordefinierte Namen:
- PLCINIT
- PLCMAIN
- PLC62
- PLC250
- PLC1
- PLC4
- PLC16
- PLCIRQ
- ERRORxx mit xx=1…32
Das Aufrufen der Routinen mit den vordefinierten Namen wird über das operative System des S300/S700 abgewickelt. Alle anderen Namen können für benutzerdefinierte Programme verwendet werden.
Mit einer Sequenz wie:
FUNCTION(CALC_DATA);
können diese Programme überall im PLC - Programm augerufen werden. Das zugehörige Programm im Beispiel würde so aussehen:
PROGRAM CALC_DATA ... END_PROGRAM
Initialisierung des Programms
Die User Procedure PLCINIT wird beim Hochfahren des S300/700 einmalig aufgerufen. Wegen des sequenziellen Kompilierprozesses sollte PLCINIT die erste Task Quellcode der Anwendung sein. es ist z.B. sinnvoll dort Variablen zu deklarieren und initialisieren.
Beispiel:
PROGRAM PLCINIT
LONG TEST:=10;
END_PROGRAM ;
Dieses Beispiel definiert eine Variable TEST und initialisiert diese mit 10.
Interrupt Routinen
Die Benutzerprozedur PLCIRQ gestattet es, ein sehr kurzes Anwendungsprogramm auszuführen, das von einer steigenden Flanke des digitalen Input 2 interruptgesteuert wird. Input 1 ist hierfür nicht verfügbar. Um das Multitasking - System des Servoverstärkers nicht zu stören, muss dieses Programm sehr schnell sein.
Beispiel:
PROGRAM PLCIRQ
LATCHDATA := DATA ;
LATCHFLAG := 1 ;
END_PROGRAM ;
Dieses Programm latched den aktuellen Wert der Variablen DATA in dem Moment, in dem die ansteigende Flanke an Input 2 erkannt wird. LATCHFLAG signalisiert, dass die Daten an eine Anwendungsaufgabe niedriger Priorität gekoppelt sind. Es ist auch möglich, die Daten über einen Feldbus zu pollen.
PLCn
Die Anwender Prozeduren PLC62,PLC250,PLC1, PLC4 und PLC16 werden alle 62 µs, 250 µs, 1 ms, 4ms, 16ms aufgerufen. Der Code in diesen Prozeduren sollte nicht sehr zeitaufwändig sein. Diese Prozeduren sind für einige PLC Polling Features ideal.
Beispiel:
PROGRAM PLC4
OUTPUT1 := FLAG1 & FLAG2 ;
END_PROGRAM
Dieses Programm wird alle 4ms ausgeführt und versorgt OUTPUT1 mit internen Daten.
ERRORnn Ausnahmen
Die Prozedur zur Behebung von Benutzernfehlern ERRORnn (nn=01..32) wird immer dann aufgerufen, wenn ERRORnn auftritt. Die Benutzer können einige schnelle NOT - AUS Routinen in diese Prozeduren einbauen.
Beispiel:
PROGRAM ERROR04
OUTPUT1 := 1 ;
END_PROGRAM
Tritt Fehler 04 („Error 04") auf, setzt das Programm den Ausgang 1.
Anmerkung: Diese Fehlercodes sind identisch mit den standardisierten Fehlercodes, die im Display des Servoverstärkers angezeigt werden.
PLCMAIN
Das Programm mit den Benutzeranwendungen sollte in der Hintergrund - Task PLCMAIN gespeichert werden. Dort wird das S300/S700 Multitasking selbst durch langsame Routinen nicht gestört. Die Terminal- bzw. die Display - Kommunikation sollte innerhalb dieser Task stattfinden.
Beispiel:
PROGRAM PLCMAIN
BYTE VAR;
DO WHILE
...;
END_WHILE;
END_PROGRAM
Back to top
Startseite >
Knowledge Base >
FAQs nach Themen >
Downloads >