Herunterladen Inhalt Inhalt Diese Seite drucken

Konsistentes Schreiben Und Lesen Von Variablen (Semaphoren); Konsistenter Datenzugriff; Semaphoren - Siemens SIMOTION SCOUT Funktionshandbuch

Vorschau ausblenden Andere Handbücher für SIMOTION SCOUT:
Inhaltsverzeichnis

Werbung

7.20.2

Konsistentes Schreiben und Lesen von Variablen (Semaphoren)

7.20.2.1

Konsistenter Datenzugriff

Alle Zugriffe auf Variablen elementarer Datentypen (siehe Kapitel
werden vom System konsistent gehandhabt. Es wird gewährleistet, dass diese Variablen
nicht zwischendurch geändert werden, während Sie sie bearbeiten.
Bei Zugriffen auf globale Variablen abgeleiteter Datentypen (siehe Kapitel
Anwenderdefinierte Datentypen (UDT))
Daten sorgen, falls mehrere Tasks auf dieselben Variablen zugreifen (symbolische I/O-
Variablen, Systemvariablen der SIMOTION Geräte, Systemvariablen der
Technologieobjekte, geräteglobale Variablen und Unit-Variablen, siehe Kapitel
Variablenmodell
Zugriffe auf lokale Variablen abgeleiteter Datentypen sind immer konsistent, da sie nur
innerhalb des Programms (bzw. Funktion oder Funktionsbausteinen) verwendet werden
können, in dem sie definiert sind.
Hinweis
Innerhalb einer Task ist konsistenter Datenzugriff immer gewährleistet.
7.20.2.2

Semaphoren

Um das konsistente Schreiben und Lesen von globalen Variablen sicherzustellen, arbeiten
Sie mit Semaphoren.
Als Semaphore dient eine globale Variable (z. B.
Element eines Arrays ist, muss der Index bereits beim Compilieren festgelegt werden (z.
B. a[2]).
Mit folgenden Funktionen ändern und prüfen Sie den Status des Semaphores:
● _testAndSetSemaphore (sema : DINT) : BOOL
● _releaseSemaphore (sema: DINT) : VOID
Zum formalen Aufbau der Funktionen siehe Kapitel
Das Semaphore wird freigegeben.
Unter folgenden Bedingungen ist nun konsistenter Datenzugriff auf globale Variablen
gewährleistet:
Basisfunktionen
Funktionshandbuch, 05/2009
.
Mit dieser Funktion überprüfen Sie, ob das Semaphore gesetzt ist:
– Rückgabewert TRUE: Das Semaphore ist freigegeben.
– Rückgabewert FALSE: Das Semaphore ist gesetzt.
Nach Beenden der Funktion ist das Semaphore immer gesetzt. Weitere Aufrufe der
Funktion (auch aus anderen Programmen) ergeben den Rückgabewert FALSE, solange
bis die Funktion _releaseSemaphore (semaA) aufgerufen wird.
Programmierung allgemeiner Standardfunktionen
7.20 Anwendung einiger Systemfunktionen
muss der Anwender selbst für die Konsistenz der
semaA
) vom Datentyp DINT. Falls sie
Variablenhandling
Elementare Datentypen
.
)
389

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis