Skip to main content
Makro Sprache Laufzeitumgebung | 01 Mai 2017 | |

Makro Sprache Laufzeitumgebung

Gültig für S300, S700

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

About this Article

Kollmorgen Support