FP_IPV4_SET_ADDRESS

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.

Paramètres

Entrée

sAddress (STRING)
  • 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.

Exemples :
  1. 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'

  2. 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

bError (BOOL)
  • 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.

Remarques

  • 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.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • 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.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • 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.

sys_bIsCarry (passe à TRUE pendant un cycle)
  • 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".

Exemple

En-tête du POU

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

Corps du POU

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 Registres système > Ethernet > Adresses IP. 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.

Corps en LD

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

Corps en ST

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;

Modifié le : 2024-04-25Commentaires sur cette pageAssistance téléphonique