Herunterladen Inhalt Inhalt Diese Seite drucken

Siemens SIMATIC NET CP 5613 Handbuch Seite 252

Programmierschnittstelle dp-base
Inhaltsverzeichnis

Werbung

FAQ (Frequently Asked Questions)
Soll ich den Zeiger währen der Laufzeit meines Programms behalten?
Solange Ihr Anwenderprogramm den Zeiger auf das Prozessabbild hat (Aufruf
DP_get_pointer), kann kein anderes Anwenderprogramm darauf zugreifen. In die-
sem Fall behalten Sie den Zeiger bis zum Programmende. Wenn Sie aber nur
„sporadisch" auf das Prozessabbild zugreifen, z. B. als Diagnoseprogramm oder
wenn Sie keine Echtzeitanforderungen haben, dann sollten Sie den Zeiger nach
jedem Zugriff bzw. Zyklus wieder freigeben.
Was ist beim Zugriff auf Datenbereiche besonders zu beachten?
Das Prozessabbild ist vom Anwenderprogramm und den Slaves entkoppelt. Be-
achten Sie hierzu die Hinweise in Kapitel 2.7.
Überprüfen Sie Ihre Datenbereiche auf folgende Punkte:
• Dimensionieren Sie die Datenpuffer für die größtmögliche Datenlänge.
• Verketten Sie bereits im Anlauf Ihres Programms Auftragsblöcke mit gültigen
Datenpuffern.
• Benutzen Sie mehrere Threads, so sollte jeder Thread seine eigenen Auftrags-
blöcke und Datenpuffer haben.
• Verriegeln Sie Threads gegeneinander, wenn diese gleichzeitig auf das Dual-
port RAM zugreifen können, um Zugriffskonflikte zu vermeiden.
Worauf ist beim Einsatz von Hardware-Events und Semaphore besonders zu
achten?
• Solange Ihr Anwenderprogramm ein Semaphor für Hardware-Events nicht
durchlaufen hat, wird es nicht nochmals aufgezogen. Sie sollten also nach dem
Durchlaufen durch ein Semaphor prüfen, ob mehrere Ereignisse aufgetreten
sind. (Das ist bei Software-Events nicht nötig.)
• Nach dem Eintreffen eines Hardware-Events wird die auslösende Steuerbedin-
gung zurückgesetzt, so dass Ihr Anwenderprogramm ihn erneut setzen muss.
• Ihr Anwenderprogramm muss Semaphore mit DP_delete_sema_object abmel-
den, nicht mit Windows-API-Funktionen.
Wie kann ich in einem Thread auf mehrere Ereignisse gleichzeitig warten?
Erzeugen Sie für jede Ereignisart ein Semaphor (DP_create_sema_object), stoßen
Sie gegebenenfalls Ihre Aufträge an und warten Sie dann an den Semaphoren
durch einen Aufruf der Win32-API-Funktion „WaitForMultipleObjects" oder
„MsgWaitForMultipleObjects".
252
Programmierschnittstelle DP-Base für CP 5613/CP 5614
C79000-G8900-C139-04

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Simatic net cp 5614

Inhaltsverzeichnis