netIC Benutzerhandbuch und Design Guide - Hilscher
netIC Benutzerhandbuch und Design Guide - Hilscher
netIC Benutzerhandbuch und Design Guide - Hilscher
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Datenmodell 90/227<br />
umgekehrten Reihenfolge wäre nämlich die Aktualität der System<br />
Flags nicht gewährleistet.<br />
# Sie haben nun die zu schreibenden Daten in den zyklischen<br />
Ausgangsdatenbereich geschrieben <strong>und</strong> die zu lesenden Daten aus<br />
dem Eingangsdatenbereich gelesen. Außerdem sind nun bekannt:<br />
• Die System Flags (Inhalt von Register 999) stehen zur Auswertung<br />
zur Verfügung<br />
• Falls ein neues Paket vorhanden ist, also falls das Flag<br />
RX_MBX_FULL gesetzt ist, ist die Größe des empfangenen Pakets<br />
bekannt (Inhalt von Register 998).<br />
2. Register Application-Paket schicken<br />
Hinweis: Dieser Schritt muss nur einmal zur Initialisierung durchgeführt<br />
werden. Das gilt ebenfalls für die beiden nachfolgenden Schritte. Setzen<br />
Sie also in der Programmschleife nach Schritt 4 ein Flag, das die<br />
erfolgreiche Initialisierung anzeigt, <strong>und</strong> machen Sie die Ausführung der<br />
Schritte 2, 3 <strong>und</strong> 4 davon abhängig, dass dieses Flag noch nicht gesetzt<br />
ist, um diese Schritte nur beim erstmaligen Schleifendurchlauf<br />
durchzuführen. Dies ist notwendig, da Schritt 2 auf Ergebnissen des<br />
Schritts 1 aufsetzt (speziell: Verfügbarkeit des System Flags<br />
TX_MBX_FULL (Register 999, Bit 5) <strong>und</strong> deswegen nicht außerhalb der<br />
Schleife durchgeführt werden kann..<br />
Bevor es möglich ist, Indications zu empfangen, muss zuerst ein<br />
Register Application Paket gesendet worden sein. Diese<br />
Funktionalität steht in allen Protocol Stacks zur Verfügung.<br />
Um zu testen, ob Paketversand zur Zeit möglich ist, wertet man das<br />
aktuelle System Flag TX_MBX_FULL (Register 999, Bit 5) aus.<br />
Dieses muss 0 sein, damit Paketversand möglich ist.<br />
Wenn dies der Fall ist, kann das Paket, das einen reduzierten rcX-<br />
Header (Adressen 3994-3999) enthält, mit dem MODBUS-<br />
Schreibbefehl (FC 16) versendet werden:<br />
Modbus FC16<br />
Variable Beschreibung Wert (Beispiel)<br />
Device Address MODBUS -<br />
Geräteadresse<br />
Die Adresse, mit der der<br />
<strong>netIC</strong> mit Hilfe des netX<br />
Configuration Tools oder<br />
per MODBUS RTU<br />
konfiguriert wurde<br />
FunctionCode „Write multiple registers“ 16<br />
Data Address Write Offset, ab dem<br />
3994<br />
geschrieben wird<br />
Data Count Write<br />
Anzahl der zu<br />
6<br />
schreibenden Register<br />
Data<br />
Zu schreibende Daten<br />
folgen hier<br />
Daten des Register –<br />
Application-Pakets.<br />
Tabelle 54: Modbus Funktionscode 16 zum Schreiben des Register Application-<br />
Pakets<br />
Dabei müssen die Register 3994 (Send Packet Command), 3996<br />
(Send Packet Error Code), 3998 (Send Packet Size) <strong>und</strong> 3999 (Send<br />
Packet Identifier) entsprechend gesetzt sein.<br />
<strong>netIC</strong> | Real-Time-Ethernet- <strong>und</strong> Feldbus-Gateways<br />
DOC080601UM21DE | Revision 21 | Deutsch | 2012-01 | Freigegeben | Öffentlich © <strong>Hilscher</strong>, 2008-2012