Beschreibung
Mit der Anweisung "FW_IOT" werden die Dienste FETCH/WRITE über die ISO-on-TCP Verbindung zur Verfügung gestellt.
Aufruf
Da für die Dienste FETCH/WRITE jeweils eine separate ISO-on-TCP Verbindung benötigt wird, wird die Anweisung "FW_IOT" zweimal im OB1 aufgerufen.
-
Der erste Aufruf mit Instanzdatenbaustein FETCH_IOT_DB stellt den Dienst FETCH über die ISO-on-TCP Verbindungen zur Verfügung.
-
Der zweite Aufruf mit Instanzdatenbaustein WRITE_IOT_DB stellt den Dienst WRITE über die ISO-on-TCP Verbindung zur Verfügung.
Die ISO-on-TCP Verbindung wird nach Kalt-, Warmstart und Wiederanlauf der CPU sowie nach Änderung der Verbindungsparameter automatisch aufgebaut. Die Parameter für den Verbindungsaufbau sind im DB "ConnectParam" hinterlegt. Über den Eingangsparameter ENABLE hat der Anwender die Möglichkeit den Verbindungsaufbau und -abbau manuell zu steuern. Wenn die Verbindungsparameter geändert werden, dann wird die Verbindung automatisch ab- und wieder aufgebaut. Die folgende Tabelle zeigt die Datenstruktur der Verbindungsparameter für eine ISO-on-TCP Verbindung. Diese ist 64 Byte lang.
In der folgenden Abbildung ist der Ablauf der Anweisung "FW_IOT", der im OB1 aufgerufen wird und die Dienste FETCH und WRITE über ISO-on-TCP Verbindungen realisiert, schematisch dargestellt.
Verbindungsparameter des Instanzdatenbausteins "ConnectParam"
Folgende Verbindungsparameter werden vor dem Verbindungsaufbau überprüft:
-
connection_type
-
id
-
local_tsap_id
-
local_tsap_id _len
Wenn einer dieser Parameter nicht korrekt definiert ist, dann wird die Kommunikationsverbindung nicht aufgebaut. Es werden keine Daten gesendet bzw. empfangen.
-
Nachdem die Kommunikationsverbindung aufgebaut ist, wird ein 16 Byte langes Header-Telegramm der Dienste FETCH/WRITE empfangen. Das Header-Telegramm enthält die Information, ob ein FETCH- oder WRITE-Auftrag ansteht.
-
Wenn ein FETCH-Auftrag vorliegt, dann werden die Daten, die vom Kommunikationspartner angefordert werden, im Instanz-Datenbaustein FETCH_IOT_DB der Anweisung aufbereitet und das Quittungstelegramm generiert. Das Quittungstelegramm wird inklusive der aufbereiteten Daten gesendet.
-
Wenn ein WRITE-Auftrag vorliegt, dann werden nach der Auswertung der 16 Bytes Header-Telegramm die Nutzdaten empfangen und in den Zielbereich geschrieben. Anschließend wird das Quittungstelegramm im Instanzdatenbaustein WRITE_IOT_DB generiert und gesendet.
Die folgende Tabelle zeigt die Datenstruktur der Verbindungsparameter für eine TCP Verbindung. Diese ist 64 Byte lang.
|
Parameter |
Datentyp |
Startwert |
Beschreibung |
|---|---|---|---|
|
id |
WORD |
W#16#1 |
Verbindungs-ID: Der Wert des Parameters muss in folgendem Wertebereich liegen: id = W#16#0001 bis W#16#0FFF (1 bis 4095) |
|
connection_type |
BYTE |
B#16#12 |
Verbindungstyp. Für ISO-on-TCP Verbindung gilt: connection_type = B#16#12 |
|
active_est |
BOOL |
FALSE |
Passiver Verbindungsaufbau. |
|
local_device_id |
BYTE |
B#16#3 |
Kennung für die lokale PN/IE-Schnittstelle (hier: CPU 319-3PN/DP). |
|
local_tsap_id_len |
BYTE |
B#16#2 |
Verwendete Länge des Parameters local_tsap_id in Byte:
|
|
rem_subnet_id_len |
BYTE |
B#16#0 |
Dieser Parameter wird nicht verwendet. |
|
rem_staddr_len |
BYTE |
B#16#0 |
Länge der Adresse des Partner-Endpunkts (Parameter rem_staddr) in Byte. Da es sich um eine unspezifizierte Verbindung handelt, ist der Parameter irrelevant. |
|
rem_tsap_id_len |
BYTE |
B#16#0 |
Verwendete Länge des Parameters rem_tsap_id in Byte:
|
|
next_staddr_len |
BYTE |
B#16#0 |
Dieser Parameter wird nicht verwendet. |
|
local_tsap_id |
ARRAY [1..16] of BYTE |
B#16#7 B#16#D0 B#16#0 : : B#16#0 |
Lokale TSAP-ID für die ISO-on-TCP Verbindung.
Hinweis: Stellen Sie sicher, dass jeder Wert von local_tsap_id innerhalb der CPU eindeutig ist. |
|
rem_subnet_id |
ARRAY [1..6] of BYTE |
B#16#0 … |
Dieser Parameter wird nicht verwendet. |
|
rem_staddr |
ARRAY [1..6] of BYTE |
B#16#0 |
IP-Adresse des Partner-Endpunkts, z. B. für 192.168.2.3:
Nicht relevant bei unspezifizierten Verbindungen mit passiven Verbindungsaufbau. |
|
rem_tsap_id |
ARRAY [1..16] of BYTE |
B#16#0 |
Port des Kommunikationspartners. Für Partner-TSAP-ID bei ISO-on-TCP:
Nicht relevant bei unspezifizierten Verbindungen mit passiven Verbindungsaufbau. |
|
next_staddr |
ARRAY [1..6] of BYTE |
B#16#0 |
Dieser Parameter wird nicht verwendet. |
|
spare |
WORD |
W#16#0 |
Dieser Parameter wird nicht verwendet. |
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "FW_IOT":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
ENABLE |
Input |
BOOL |
E, A, M, D, L, T, Z |
Mit diesem Parameter wird der Verbindungsaufbau bzw. -abbau initiiert:
|
|
CONNECT |
Input |
ANY |
D |
ANY-Pointer auf den Datenbereich des DB, welcher die Parameter für den Aufbau der TCP Verbindung enthält. Dieser Datenbereich muss mindestens 64 Byte groß sein. |
|
ADDRMODE |
Input |
INT |
E, A, M, D, L oder Konstante |
Mit diesem Parameter wird festgelegt, wie die Adressierung der Daten des FETCH bzw. WRITE-Auftrags erfolgt (im S7- oder S5-Adressiermodus).
|
|
NDR |
Output |
BOOL |
E, A, M, D, L |
Parameter new data record: Mit diesem Parameter wird angezeigt, dass die Daten des WRITE-Auftrags erfolgreich übernommen und das Quittungstelegramm generiert und gesendet wurde. |
|
ERROR |
Output |
BOOL |
E, A, M, D, L |
Dieser Parameter wird gesetzt, wenn:
|
|
MODE |
Output |
BYTE |
E, A, M, D, L |
Mit diesem Parameter wird angezeigt, ob ein FETCH- oder WRITE-Auftrag ausgeführt wird.
|
|
Output |
WORD |
M, D |
Im Parameter STATUS werden interne Kommunikationsstatusbits ausgegeben. |
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".