Paramètres du serveur pour une connexion HTTP
Cette instruction FP définit les paramètres du serveur pour une connexion au client HTTP spécifié dans l’unité centrale selon les paramètres configurés.
Entrée
Adresse du serveur (paramètre requis)
Mot-clé : SV
Valeurs : SV0–SV3 (Serveur 0–Serveur 3)
Adresse IP ou nom d’hôte (paramètre requis).
Adresse IP
Pour une adresse IP, spécifiez le mot clé IPv4
ou IPv6
au début.
Syntaxe pour IPv4 : par ex. 'IPv4=111.122.133.144'
Syntaxe pour IPv6 : par ex. 'IPv6=1111:122:2:1555:0:0:1888'
Notez bien que pour les adresses IPv4, il y a des restrictions d’intervalle. Lorsqu’une adresse IP est spécifiée avec une instruction, il n’y a pas d’erreur d’opération mais la sortie bError passe à TRUE.
Nom d’hôte
Mot-clé : HOST
Syntaxe : par ex. 'HOST=HTTP.pidsx.com'
Numéro de port (paramètre optionnel)
Mot-clé : 'PORT'
Syntaxe : 'PORT=xxxxx'
Valeurs : 1–65535 (par défaut : 80)
Identification SSL3/TSL1 (paramètre optionnel)
Spécifier si l’identification SSL3/TSL1 doit être utilisée.
Mots-clés :
SSL
: Utiliser SSL3/TLS1
NON
: SSL3/TLS1 non utilisé (par défaut)
Connexion au serveur HTTP numéro 0 avec l’adresse IP 192.255.2.10, numéro de port 80, avec identification SSL3/TLS1 : 'SV0,IPv4=192.255.2.10,PORT=80,SSL'
Connexion au serveur HTTP numéro 1 avec l’adresse IP 1111:1222::1555:0:0:1888, numéro de port 8080, avec identification SSL3/TLS1 : 'SV1,IPv6=1111:1222::1555:0:0:1888,PORT=8080,SSL'
Connexion au serveur HTTP numéro 2 avec le nom d’hôte HTTP.pidsx.com, numéro de port 80, sans identification SSL3/TLS1 : 'SV2,HOST=HTTP.pidsx.com,PORT=80,NON'
Définir les données de connexion
Nom d’utilisateur (32 caractères max.)
Mot-clé : USER
'USER=xxx'
(par défaut : root). Utiliser 'USER='
pour supprimer le nom d’utilisateur.Mot de passe (32 caractères max., lettres minuscules et majuscules autorisées)
Mot-clé : PASS
Syntaxe : 'PASS=passwd'
(par défaut : root). Utiliser 'PASS='
pour supprimer le mot de passe.
INITIAL
: Réinitialise le nom d’utilisateur et le mot de passe aux paramètres par défaut "root" et "root".
KEEP
: Garde les paramètres d’ouverture de session actuels.Exemples :
Entrer "Admin" comme nom d’utilisateur et "Panasonic" comme mot de passe : 'USER=Admin,PASS=Panasonic'
Entrer "Supervisor" comme nom d’utilisateur et supprimer le mot de passe : 'USER=Supervisor,PASS='
Entrer "Support" comme nom d’utilisateur et ne pas modifier le mot de passe : 'USER=Support'
'USER=,PASS='
Réinitialiser le nom d’utilisateur et le mot de passe aux paramètres par défaut : 'INITIAL'
'KEEP'
Définir les paramètres de communication si nécessaire.
Délai d’attente de connexion
Mot-clé : TOUT
Syntaxe :'TOUT=xxx'
(par défaut : 60 secondes)
Valeurs : 30-300 secondes
Nombre d’essais
Mot-clé : RTRY
Syntaxe : 'RTRY=x'
(par défaut : 3 fois)
Valeurs : 0–3
Intervalle entre les essais
Mot-clé : RTTM
Syntaxe : 'RTTM=xxxxx'
(par défaut : 600 secondes)
Valeurs : 10-86400 secondes
La valeur est spécifiée par unité de 10 secondes. Elle est arrondie à la dizaine inférieure. Exemple : Lorsque vous spécifiez 38 secondes, la valeur définie sera 30 secondes.
Pour ce paramètre, deux mots-clés supplémentaires sont disponibles :
INITIAL
: Réinitialise le délai d’attente de connexion, le nombre d’essais et l’intervalle entre les essais aux paramètres par défaut.
KEEP
: Garde les paramètres de communication actuels.
Exemples :
Définir le type de connexion : 30 secondes, nombre d’essais : 2, intervalle entre les essais : 500 secondes : 'TOUT=30,RTRY=2,RTTM=500'
Définir le type de connexion : 270 secondes, pas d’essais, intervalle entre les essais : 4900 secondes : 'TOUT=270,RTRY=0,RTTM=4900'
Définir le type de connexion. 30 secondes, nombre d’essais : 25, intervalle entre les essais : inchangé : 'TOUT=30,RTRY=25'
Définir le temps d’attente : inchangé, nombre d’essais : 25, intervalle entre les essais : 3000 secondes : ',RTRY=25,RTTM=3000'
Réinitialiser aux paramètres par défaut (temps d’attente : 60 secondes, nombre d’essais : 3, intervalle entre les essais : 600 secondes) : 'INITIAL'
Garder tous les paramètres actuels : 'KEEP'
Sortie
Devient TRUE dans les conditions suivantes :
Si le temps d’attente de connexion est dépassé.
Si une adresse IP est invalide.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Les mots-clés doivent être séparés par une virgule, par ex. 'NAME=abcd,FROM=sender@server.com'
Le nombre de caractères des données STRING ne doit pas être supérieur à 256.
Cette instruction n’est pas disponible dans les programmes d’interruption.
L’ordre des mots-clés ne doit pas être modifié. Spécifiez les mots-clés et leurs paramètres dans l’ordre indiqué ici.
Une partie de la syntaxe des paramètres peut être omise. Lorsqu’ils sont omis partiellement, les paramètres restent inchangés.
Lorsque la partie avant un mot-clé spécifié est omise, seul le mot-clé peut être omis mais pas la virgule "," séparant les mots-clés : ',RTRY=25,RTTM=3000'
.
Lorsque la partie après un mot-clé spécifié est omise, le mot-clé et la virgule "," doivent être omis : 'TOUT=30,RTRY=25'
.
N’indiquez pas le même mot-clé plus d’une fois. Si le même mot-clé apparaît plusieurs fois, une erreur apparaît.
Des caractères en lettres majuscules et minuscules peuvent être utilisés pour les opérandes pour lesquels une constante de caractères peut être spécifiée. "Abcd", "ABCD" et "abcd" sont synonymes, par contre, les noms de fichiers sont sensibles à la casse.
Avant d’exécuter l’instruction, vérifiez que sys_bIsEthernetInitializing est FALSE. sys_bIsEthernetInitializing passe à TRUE lorsque l’instruction est exécutée. Lorsque l’instruction est exécutée alors que sys_bIsEthernetInitializing est TRUE, une erreur apparaît.
L’instruction ne peut être exécutée que lorsque le drapeau de requête de transfert pour la configuration de transfert spécifiée est "FALSE : Pas de requête de transfert". Lorsque le drapeau de requête de transfert est "TRUE : Requête de transfert", une erreur d’opération apparaît.
Lorsque l’instruction a été exécutée avec succès, les variables système sys_bIsCarry et sys_iEthernetConnectionErrorCode sont réinitialisées.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si le même mot-clé est spécifié plusieurs fois.
Si le drapeau de requête de transfert pour la configuration de transfert spécifiée est "TRUE : Requête de transfert" lorsque l’instruction est exécutée.
Si les numéros de serveurs ne sont pas spécifiés dans l’ordre croissant.
Si l’instruction est exécutée dans un programme d’interruption.
Si le nombre de caractères des données STRING est supérieur à 256.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si le même mot-clé est spécifié plusieurs fois.
Si le drapeau de requête de transfert pour la configuration de transfert spécifiée est "TRUE : Requête de transfert" lorsque l’instruction est exécutée.
Si les numéros de serveurs ne sont pas spécifiés dans l’ordre croissant.
Si l’instruction est exécutée dans un programme d’interruption.
Si le nombre de caractères des données STRING est supérieur à 256.
Si l’instruction est exécutée avec une adresse IP incorrecte, sys_iEthernetConnectionErrorCode est définie sur "1 : Adresse IP spécifiée incorrecte".
Si l’instruction est exécutée pendant l’initialisation d’Ethernet, sys_iEthernetConnectionErrorCode est définie sur "11 : initialisation Ethernet en cours".
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
bSetConnectionError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
wErrorCode: WORD:=0;
bSetConnectionOK: BOOL:=FALSE;
END_VAR
Lorsque bSetConnection passe de FALSE à TRUE et lorsque sys_bIsEthernetInitializing est FALSE, l’instruction est exécutée.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 10 ;
NETWORK_BODY
B(B_VARIN,,'SV1~IPv4=192.255.2.10~PORT=21~OPEN=act~SSL',20,6,22,8,);
B(B_VARIN,,'USER=root~PASS=passwd',20,7,22,9,);
B(B_VARIN,,'TOUT=30~RTRY=2~RTTM=500',20,8,22,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bSetConnectionError,36,6,38,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,17,1,19,3,N);
B(B_F,FP_HTTP_SET_CONNECTION!,,22,4,36,10,,?DEN?DsServer?DsLogin?DsCommunication?AENO?CbError);
L(1,2,4,2);
L(6,2,17,2);
L(19,2,19,6);
L(19,6,22,6);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(6,2,25,2);
L(1,2,4,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,N);
B(B_COIL,,bSetConnectionOK,28,1,30,3,);
L(6,2,28,2);
L(1,2,4,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing then
FP_HTTP_SET_CONNECTION(sServer := 'SV1,IPv4=192.255.2.10,PORT=21,OPEN=act,SSL',
sLogin := 'USER=root,PASS=passwd',
sCommunication := 'TOUT=30,RTRY=2,RTTM=500',
bError => bSetConnectionError);
End_if;
If (bSetConnectionError) then
wErrorCode := sys_iEthernetConnectionErrorCode;
Else
bSetConnectionOK := True;
End_if;