Typ |
Funktionsbaustein |
Verfügbar ab |
V1.1.0.0 |
Kommunikation mit dem angegebenen DNS-Server zur Anforderung der Auflösung eines Domänennamens in eine IPv4-Adresse.
Dieser Funktionsbaustein ermöglicht die Kommunikation mit einem DNS-Server (gemäß RFC1035), um die registrierte IPv4-Adresse abzurufen, die dem angegebenen Domänennamen entspricht. Zu diesem Zweck wird ein UDP-Socket geöffnet und ein DNS-Request an den über die Eingänge i_sDnsServerIp und i_uiDnsServerPort festgelegten Server gesendet. Sobald eine Antwort vom Server empfangen wird bzw. das Timeout erreicht ist, wird der Socket wieder geschlossen.
HINWEIS: Der Funktionsbaustein unterstützt sowohl autoritative als auch rekursive Antworten vom DNS-Server.
Wenn der Domänenname vom Server aufgelöst werden konnte und die Antwort fehlerfrei empfangen wurde, sind die aufgelöste IPv4-Adresse und die zugehörige Lebenzeit (Time-to-Live: TTL) am Ausgang q_astDnsAddressInfo verfügbar. Um den Netzwerkverkehr einzuschränken, kann der TTL-Wert zur Zwischenspeicherung der aufgelösten Adressen verwendet werden.
HINWEIS: Aktualisieren Sie den IP-Cachespeicher in Übereinstimmung mit den von TTL bereitgestellten Informationen.
Die Kommunikation mit dem DNS-Server nimmt mehrere Programmzyklen in Anspruch. Der Status des Funktionsbausteins wird von den Ausgängen q_xBusy, q_xError und q_xDone angegeben.
Während der Ausführung des Funktionsbausteins steht der Ausgang q_xBusy auf TRUE. Der Ausgang q_xDone wird auf TRUE gesetzt, sobald der Funktionsbaustein erfolgreich ausgeführt wurde.
Statusmeldungen und Diagnoseinformationen werden unter Verwendung der Ausgänge q_xError (TRUE, wenn ein Fehler erkannt wurde), q_etResult und q_etResultMsg bereitgestellt.
Um erkannte Fehler zu quittieren, deaktivieren und reaktivieren Sie den Funktionsbaustein, um einen neuen Versuch zur Auflösung des Domänennamens unternehmen zu können.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xEnable |
BOOL |
Aktivierung und Initialisierung des Funktionsbausteins |
i_xExecute |
BOOL |
Bei steigender Flanke an diesem Eingang wird der DNS-Request an den DNS-Server gesendet. |
i_sDnsServerIP |
STRING(15) |
Verweist auf die IP-Adresse des externen DNS-Servers. |
i_uiDnsServerPort |
UINT |
Gibt den Port am externen DNS-Server an. Wenn der Steckanschluss nicht zugewiesen wurde, wird der Standardwert 53 verwendet. |
i_sDomainName |
STRING(255) |
Aufzulösender Domänenname.(Nur ASCII-Symbole werden unterstützt.) |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xActive |
BOOL |
Wenn der Funktionsbaustein aktiv ist, wird dieser Ausgang auf TRUE gesetzt. |
q_xReady |
BOOL |
Steht auf TRUE, wenn der Funktionsbaustein bereit für den Empfang eines Ausführungsbefehls ist. |
q_xBusy |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein ausgeführt wird. |
q_xDone |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, wurde die Ausführung erfolgreich abgeschlossen. |
q_xError |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg, |
q_etResult |
ET_Result |
Stellt Diagnose- und Statusinformationen in Form numerischer Werte bereit. |
q_sResultMsg |
STRING(80) |
Stellt zusätzliche Diagnose- und Statusinformationen in Form von Textmeldungen bereit. |
q_uiNumberOfIpAddresses |
UINT |
Anzahl der vom DNS-Server zurückgegebenen IP-Adressen. |
q_astDnsAddressInfo |
ARRAY [0..GPL.Gc_uiDnsNumberOfIPs-1] OF ST_DnsAddressInfo |
Struktur mit Informationen zu dem vom DNS-Server empfangenen aufgelösten Domain-Namen. |