Herunterladen Inhalt Inhalt Diese Seite drucken

Bosch Rexroth HydraulicDrive Anwendungsbeschreibung Seite 151

Ab hdx18
Inhaltsverzeichnis

Werbung

DOK-HYDRV*-MLD3-**VRS*-AP01-DE-P
Rexroth HydraulicDrive Rexroth IndraMotion MLD (2G) ab HDx-18
IEC-Sprachauswahl
Programmcode
I/O-Konfiguration
IEC-Konstanten verwenden
Parameterzugriffe
Funktionen / Funktionsbausteine
Checkfunktion
Strukturierte Programmierung
Die Programmiersprache "Strukturierter Text" (ST) ist für eine performance‐
optimierte Programmierung empfehlenswert. Eine übersichtliche Program‐
mierung ist mit "ST" ebenfalls gegeben.
Bitverarbeitung ist deutlich langsamer als Byteverarbeitung. Dies betrifft
adressierte Variablen und Bitzugriffe in Worten (z. B. Eingänge %IX0.0,
Ausgänge %QX0.0, Merker oder Bitzugriff).
Division von Integertypen ist deutlich langsamer als REAL-Division.
Das I/O-Mapping auf BOOL-Variablen (8 Bit lang) ist deutlich schneller als
Bitvariablen (z. B. %IX0.0).
Die Verwendung von VAR CONSTANT ist schneller als die Verwendung von
konstanten Werten in Form von normalen Variablen. Eine Variablenadressie‐
rung entfällt, der Wert wird direkt eingesetzt.
Parameterzugriffe nur so häufig wie nötig durchführen.
Stringparameter ggf. in eigener Task ausführen, da sehr viel Rechenzeit
benötigt wird.
Zugriffe von Direktvariablen auf Parameter sind schneller als Funktio‐
nen.
Zugriffe von Funktionen auf Parameter sind schneller als Funktionsbau‐
steine.
Zugriffe auf lokale Listenparameter (Axis1) benötigen relativ viel Re‐
chenzeit und sollten entweder in eine langsame Task ausgegliedert
oder
elementweise
"MX_fWriteParamDINT()" durchgeführt werden.
Sollten in einem Taskzyklus mehrmals gleiche Bausteine oder Funktio‐
nen genutzt werden, sollten diese möglichst direkt hintereinander aufge‐
rufen werden (Cache-Effekt!).
Funktionsbaustein nur solange aufrufen wie notwendig ‑ speziell zykli‐
sche Funktionsbausteine.
Konstante Funktionsbaustein-Parameter können bereits bei der Dekla‐
ration belegt werden und Ausgänge direkt abgefragt werden.
Mit der Checkfunktion werden fehlerhafte Zugriffe erkannt und verhindert.
Geprüft werden Pointerzugriffe, Arrayzugriffe, Bereichsgrenzen, Division
durch 0... Ist der häufig durchlaufene Code ausreichend geprüft, kann diese
automatische Prüfung (implizite Checkfunktion) abgeschaltet werden.
Beispiel:
Implizite Checkfunktion abschalten
Hier werden innerhalb der POU keine Laufzeitprüfungen vorgenommen:
{attribute 'no check'}
FUNCTION MyFunc : INT
Die Aufteilung in Unterfunktionen bzw. Unterfunktionsbausteine ist nur
performanter, wenn diese Funktionen / Funktionsbausteine mehrfach
verwendet werden.
Über CASE-Anweisung können je nach Status der Funktionalität bzw.
der Applikation gezielt unterschiedliche Code-Zweige bearbeitet wer‐
den.
Übergabeparameter / Rückgabewerte an Funktionen und Funktionsbau‐
steine sollten möglichst kompakt sein. Bei größeren Daten global zu‐
greifen oder per VAR_IN_OUT oder REFERENCE übergeben.
Bosch Rexroth AG
Programmierhinweise
mit
"MX_fReadParamDINT()"
149/169
/

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis