Télécharger Imprimer la page

Siemens SIMATIC S7-1500 Manuel De L'appareil page 53

Masquer les pouces Voir aussi pour SIMATIC S7-1500:

Publicité

6.8.2.2
Recommandations pour les applications temps réel
Le correctif PREEMPR_RT est contenu dans le système d'exploitation du TM MFP. Le correctif
permet d'exécuter des applications client avec priorité temps réel, en particulier avec
plusieurs threads.
Applications temps réel avec plusieurs threads
Vous trouverez ci-dessous une procédure recommandée pour les applications temps réel avec
plusieurs threads.
1. Ajoutez le verrouillage de mémoire (Memory Locking).
La mémoire qui doit être utilisée pour la partie temps réel d'un programme doit être
verrouillée dans des tables de pages de manière à ce que la mémoire ne soit pas échangée
ou réorganisée :
int ret = mlockall(MCL_CURRENT | MCL_FUTURE);
2. Pour les threads en temps réel, il existe les 3 stratégies de planification suivantes :
SCHED_FIFO, SCHED_RR et SCHED_DEADLINE.
3. Utilisez des mutexes, des mutexes POSIX
Si l'héritage de priorité est actif, définissez l'attribut PTHREAD_PRIO_INHERIT :
int ret = pthread_mutexattr_setprotocol(&mattr,
PTHREAD_PRIO_INHERIT);
Temps absolus dans des threads temps réel
Utilisez des temps absolus dans des threads temps réel. Utilisez pour cela par exemple les
fonctions C-style clock_* avec l'argument CLOCK_MONOTONIC :
int ret = clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
&timespec_sleep_until, NULL);
REMARQUE
Horloge haute résolution
N'utilisez pas de high_resolution_clock.
Linux démarre par défaut sans comportement temps réel activé. Vous devez activer le
comportement temps réel explicitement avec la commande chrt. Cette commande exige
des droits root.
sudo chrt 60 ./bbus_example
Une autre possibilité consiste à définir la priorité temps réel dans le thread du code source.
Dans ce cas, le Binary doit avoir l'autorisation.
setcap "cap_sys_nice,cap_ipc_lock=eip" ./bbus_example
Le groupe d'utilisateurs qui exécute le Binary doit posséder une priorité temps réel maximale
admissible définie rtprio dans le fichier /etc/security/limits.conf.
REMARQUE
Priorité temps réel
Pour une performance et une stabilité maximales, la priorité temps réel doit être 60 ou
supérieure.
Module technologique TM MFP
Manuel, 03/2024, A5E52603218-AB
6.8 Exemple d'application pour le bus interne
Configuration
53

Publicité

loading

Ce manuel est également adapté pour:

6es7558-1aa00-0ab0