BECKHOFF CX1100-000x Benutzerhandbuch

Seite 14

Advertising
background image

Produktübersicht

12

Embedded-PC

Das Programm initialisiert den Klemmbus. Details hierzu sind im GCB beschrieben. (Servicefunktion: Reset node)
Dann wird eine beliebige Nummer (hier 4711) als aktuelle Zyklusnummer in das Feld "PD cycle request" des GCBs
geschrieben. Es kann dabei jede beliebige Zahl verwendet werden. Es bietet sich aber an, eine aufsteigende
Nummerierung zu verwenden, um im Fehlerfall den Zyklus identifizieren zu können. Der Microcontroller liest den
Wert und veranlasst die Klemmen ihre Daten an den Controller zu senden. Dieser schreibt die Daten in das
Prozessabbild im DPRAM. Sind alle Daten im DPRAM abgelegt, wird die Zyklusnummer in das Feld "PD cycle
ready" im GCB geschrieben. Das Programm prüft alle 10 ms, ob Daten von dem Klemmbus geliefert wurden. Ein K-
Bus-Zyklus ist auch bei maximaler Klemmenzahl deutlich kleiner als 10 ms. Die Zeit liegt in etwa zwischen 700 µs
und 5 ms. Ist nach 10 ms keine gültige Zyklusnummer (also die gleiche wie die aktuelle Nummer) im Register "DP
cycle ready" im GCB, so ist wahrscheinlich ein Fehler aufgetreten und das Programm versucht den Fehler
auszuwerten und beendet danach die Schleife. Ist die Zyklusnummer korrekt gesendet worden können die Daten aus
dem DPRAM gelesen und verarbeitet werden. Die Ergebnisse der Verarbeitung werden dann wieder ins DPRAM
geschrieben und ein neuer Zyklus wird angestoßen indem die Zyklusnummer erhöht und ins Register "PD cycle
request" geschrieben wird.

Da die Klemmen im K-Bus mit einem Watchdog versehen sind, sollte der K-Bus mindestens alle 100 ms abgefragt
werden, da sonst der K-Bus angehalten wird. Sollten mehr als ein Prozess Zugriff auf den Klemmbus benötigen, so
greifen alle Prozesse auf das gleiche Speicherabbild des DPRAMs zu. Nur der Prozess mit der höchsten Priorität
initiiert den Datenaustausch mit dem K-Bus. Auf diese Weise sollte gewährleistet sein, dass alle Prozesse ihre Daten
in gewünschter Form erhalten. Zugriffskonflikte muss der Anwender selbst ausschließen!

Advertising