Herunterladen Diese Seite drucken

Siemens SIMATIC S7-1500 Gerätehandbuch Seite 47

Vorschau ausblenden Andere Handbücher für SIMATIC S7-1500:

Werbung

6.7.2.3
Empfehlungen für Echtzeit-Anwendungen
Der Patch PREEMPR_RT ist im Betriebssystem des TM MFP enthalten. Der Patch ermöglicht das
Ausführen von Client-Applikationen mit Echtzeitpriorität, insbesondere mit mehrere Threads.
Echtzeit-Anwendungen mit mehreren Threads
Im Folgenden finden Sie eine empfohle Handlungsanweisung für Echtzeit-Anwendungen mit
mehreren Threads.
1. Memory-Locking hinzufügen
Speicher, der für den Echtzeit-Anteil eines Programms verwendet werden soll, muss in
Seitentabellen verriegelt werden, so dass Speicher nicht getauscht oder reorganisiert wird:
int ret = mlockall(MCL_CURRENT | MCL_FUTURE);
2. Für Echtzeit-Threads gibt es die folgenden drei Scheduling-Policies: SCHED_FIFO,
SCHED_RR und SCHED_DEADLINE.
3. Für mutexes, POSIX mutexes verwenden
Wenn die Prioritätsvererbung aktiv ist, setzen Sie das Attribut PTHREAD_PRIO_INHERIT:
int ret = pthread_mutexattr_setprotocol(&mattr,
PTHREAD_PRIO_INHERIT);
Absolute Zeiten in Echtzeit-Threads
Verwenden Sie in Echtzeit-Threads absolute Zeiten. Verwenden Sie hierfür zum Beispiel die
Funktionen C-style clock_* mit dem CLOCK_MONOTONIC Argument:
int ret = clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
&timespec_sleep_until, NULL);
HINWEIS
High-Resolution-Clock
Verwenden Sie keine high_resolution_clock.
Linux startet standardmäßig ohne aktiviertes Echtzeitverhalten. Sie müssen das
Echtzeitverhalten explizit mit dem Befehl chrt setzen. Dieser Befehl erfordert Root-Rechte.
sudo chrt 90 ./bbus_example
Eine weitere Möglichkeit ist das Setzen von Echtzeit-Priorität im Thread des Quellcodes. In
diesem Fall benötigt das Binary die Fähigkeit dies zu tun.
setcap "cap_sys_nice,cap_ipc_lock=eip" ./bbus_example
Die Benutzergruppe, welche das Binary ausführt, muss eine definerte maximal zulässige
Echtzeit-Priorität rtprio in der Datei /etc/security/limits.conf besitzen.
Technologiemodul TM MFP
Gerätehandbuch, 04/2023, A5E52603178-AA
6.7 Beispielanwendung für den Rückwandbus
Projektieren
47

Werbung

loading

Diese Anleitung auch für:

6es7558-1aa00-0ab0