Zugriff auf einfache und komplexe Datentypen
Bereitstellen komplexer Slave-Datenpunkte für den Master
I/O-Module stellen Ihre Daten als Einzelvariablen zur Verfügung. Einige I/O-Module*) stellen Daten außerdem als Array/Struktur zur Verfügung. Je nachdem, an welcher Stelle und wie tief Sie sich in der Baumstruktur des Feldbuskonfigurators befinden und an welcher Stelle Sie auf [Bereitstellen] klicken, können Sie für diese I/O-Module entweder auf die Einzelvariablen, auf Arrays oder auf das gesamte I/O-Modul zugreifen. Diese Wahlmöglichkeit bietet sich, wenn ein Feldbuskoppler als Kopfstation dient, denn dieser leitet Daten unverändert von den I/O-Modulen über den Bus weiter und lässt einen vollen Zugriff auf die Datenstrukturen der I/O-Module zu.
Controller hingegen haben die Aufgabe, Daten der I/O-Module zunächst vorzuverarbeiten und erst das Ergebnis über den Bus weiterzugeben. Applikationsvariablen („Programmvariablen“) werden innerhalb des Applikationsprogramms mit Daten der I/O-Module verknüpft und erst dann über den Bus kommuniziert. Die Konfiguration wird hierbei also nicht automatisch erstellt.
In folgendem Beispiel wurde das komplexe I/O-Modul 750-645 hinter einem Koppler eingefügt. Es kann hier entweder das I/O-Modul als Ganzes (1), ein Array (2) oder die Einzelvariable (3) für den Master bereitgestellt werden.
Der Zugriff auf die Datenpunkte der I/O-Module*) erfolgt einheitlich, unabhängig davon, ob die I/O-Module direkt am Controller angereiht sind oder dezentral über Modbus angesprochen werden.
Beim Bereitstellen der Datenpunkte werden automatisch Programmbausteine und Instanzen vorbereiteter Funktionsbausteine generiert, über welche der Datenaustausch realisiert wird. Diese Programmbausteine können Sie ohne weitere Anpassungen direkt in Ihrem Programm verwenden.
*) Das Bereitstellen kompletter Datenstrukturen ist für diejenigen I/O-Module möglich, deren zugehörige Funktionsbausteine einen iPort für Verbindungen anbieten: 0750-0636, 0750-0642, 0750-0643, 0753-1630, 0753-1631, 0753- 0646, 0753-0647, 0753-0649, 075x-0482, 075x-0484, 075x-0493, 075x-0494, 075x-0495, 75x-0632, 075x-0635, 075x-0640, 075x-0644, 075x-0645, 075x- 0650, 075x-0651, 075x-0652, 075x-0653, 075x-0655, 075x-0657, 075x-0658, 075x-0670, 075x-0671, 075x-0672, 075x-0673, 075x-0511, 075x-0633
Beschaltung des IPorts für komplexe Datenstrukturen
Für komplexe I/O-Module*), die Daten über Arrays austauschen, werden in den verwendeten Funktionsblöcken automatisch Instanzen sogenannter IPorts angelegt. Auf diese Schnittstelle kann direkt zugegriffen werden. Über die IPorts werden bei jedem Modbus-Zyklus Daten empfangen und über Modbus in einheitlicher Weise weiterverarbeitet.
Der Zugriff auf den IPort erfolgt wie nachfolgend dargestellt:
Modbus . Slave-Name _tcp . Modul-/Datenpunktname . IPort;
| Festgelegt durch die Nutzung des Modbus-Konfigurators |
| Abhängig von der Benennung im Projekt |
| Festgelegt durch die gewählte Verbindungsart zum Slave (z. B. tcp, udp) |
| Abhängig von der Benennung im Projekt |
| Festgelegt durch die Nutzung des IPorts |
Programmbeispiel in Strukturiertem Text (ST):
Beispiel in Funktionsbausteinsprache (FUP):