Définir une adresse IP avec le protocole IPv4
Cette instruction FP configure une connexion à l’adresse IP spécifiée par sAddress via IPv4.
Entrée
Adresse IPv4 (paramètre requis)
Mot-clé : IP
Masque de sous-réseau (paramètre optionnel)
Mot-clé : MASK
Passerelle (paramètre optionnel)
Mot-clé : GWIP
Entrez "0" lorsque la passerelle par défaut n’est pas utilisée.
L’adresse IP 192.168.1.5 est définie, le masque de sous-réseau 255.255.255.0 et la passerelle 192.168.1.1 sont utilisés : 'IP=192.168.1.5,MASK=255.255.255.0,GWIP=192.168.1.1'
L’adresse IP 192.168.1.5 est définie, le masque de sous-réseau n’est pas utilisé, la passerelle 192.168.1.1 est utilisée : 'IP=192.168.1.5,,GWIP=192.168.1.1'
Sortie
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.
Il est recommandé d’exécuter cette instruction uniquement une fois au démarrage de l’automate et de ne pas l’exécuter plusieurs fois.
L’initialisation prend au moins trois secondes.
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.
La chaîne de caractères de sAddress ne doit pas contenir d’espace. Utilisez une virgule comme séparateur de caractères uniquement.
L’adresse IPv4 est obligatoire. Le masque de sous-réseau et la passerelle peuvent être omis.
Une partie des paramètres peut être omise. Lorsqu’ils sont omis partiellement, les paramètres restent inchangés.
Des lettres majuscules et minuscules peuvent être utilisées pour spécifier les mots-clés.
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.
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.
Avant d’exécuter l’instruction, vérifiez que la variable système sys_bIsEthernetIPAddressAssigned est TRUE. Si elle est FALSE pendant l’exécution de l’instruction, une erreur d’opération apparaît.
L’instruction ne peut être exécutée que lorsque sys_bIsEthernetCableNotConnected est FALSE.
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 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 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, un masque de sous-réseau, une passerelle incorrects ou une combinaison d'adresses IP incorrecte sys_iEthernetConnectionErrorCode est définie sur le code d’erreur correspondant (1–4).
Si l’instruction est exécutée alors que le câble Ethernet est déconnecté. sys_iEthernetConnectionErrorCode est définie sur "10 : câble Ethernet déconnecté".
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
bSetIpv4Address: BOOL:=FALSE;
bGetConnection: BOOL:=FALSE;
bGetMac: BOOL:=FALSE;
dutIPv4Connection: FP_IPv4_CONNECTION_DUT;
dutIPv4MAC: FP_IPv4_MAC_DUT;
END_VAR
Dans cet exemple, les paramètres de la connexion Ethernet sont spécifiés par s_Address. Vérifiez que les paramètres adaptés sont également entrés dans le navigateur sous .Lorsque bGetConnection est TRUE, les paramètres de la connexion sont entrés dans le DUT FP_IPv4_CONNECTION_DUT. Lorsque bGetMac est TRUE, les paramètres de l’adresse MAC sont entrés dans le DUT FP_IPv4_MAC_DUT.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bSetIpv4Address,4,2,6,4,R);
B(B_CONTACT,,sys_bIsEthernetInitializing,15,2,17,4,N);
B(B_F,FP_IPV4_SET_ADDRESS!,,31,1,43,5,,?DEN?DsAddress?AENO?CbError);
B(B_VARIN,,'IP=192.168.1.5~MASK=255.255.255.0~GWIP=192.168.1.1',29,3,31,5,);
B(B_VAROUT,,bError,43,3,45,5,);
L(1,0,1,5);
L(1,3,4,3);
L(6,3,15,3);
L(17,3,31,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bGetConnection,4,1,6,3,);
B(B_F,FP_IPV4_GET_CONNECTION!,,31,0,45,4,,?DEN?DnPort?AENO?CdutIPv4Connection);
B(B_VAROUT,,dutIPv4Connection,45,2,47,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,31,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bGetMac,4,1,6,3,);
B(B_F,FP_IPV4_GET_MAC!,,31,0,41,4,,?DEN?AENO?CdutIPv4MAC);
B(B_VAROUT,,dutIPv4MAC,41,2,43,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,31,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bSetIpv4Address) AND not(sys_bIsEthernetInitializing) then
FP_IPV4_SET_ADDRESS(sAddress := 'IP=192.168.1.5,MASK=255.255.255.0,GWIP=192.168.1.1',
bError => bError);
END_IF;
IF (bGetConnection) then
FP_IPV4_GET_CONNECTION(nPort := SYS_ETHERNET_USER_CONNECTION_2, dutIPv4Connection => dutIPv4Connection);
END_IF;
IF (bGetMac) then
FP_IPV4_GET_MAC(dutIPv4MAC => dutIPv4MAC);
END_IF;