Définir une connexion Ethernet
Cette instruction FP configure une connexion Ethernet spécifiée par sMode et sAddress dans l’intervalle des connexions utilisateur, spécifié par nStartPort et nEndPort. Vérifiez que les paramètres adaptés sont également entrés dans le navigateur sous .
Entrée
Définir le mode de communication et les paramètres de communication.
Mode de communication (paramètre requis)
Spécifiez les paramètres du mode de communication.
Mots-clés :
'MEWCOM'
: MEWTOCOL-COM (par défaut)
'MEW7COM'
: MEWTOCOL7-COM
'MODBUS'
: MODBUS-TCP
'MEWDAT'
: MEWTOCOL-DAT
'GP'
: Contrôle via le programme API [Usage général] (disponible uniquement pour 16 connexions utilisateur)
'GP_LARGE'
: Contrôle via le programme API [Usage général] avec capacité de réception élevée (disponible uniquement pour la première connexion utilisateur et uniquement pour les automates de types CPS4* et CPS3* version 4.32 ou supérieure)
Paramètres des options (paramètre requis)
Certains modes de communication ont des options de protocole supplémentaires qui peuvent être activées. Spécifiez si l’option doit être utilisée pour le mode de communication sélectionné.
'OPTAV'
: L’option disponible pour le mode de communication sélectionné est activée.
'OPTNAV'
: Soit il n’y a pas d’option disponible pour le mode de communication sélectionné soit l’option disponible n’est pas activée.
Mode de communication |
|
|
---|---|---|
MEWTOCOL-COM |
Connecter avec FP2 ET-LAN |
Ne pas connecter |
MEWTOCOL7-COM |
Non disponible |
Non disponible |
MODBUS-TCP |
Non disponible |
Non disponible |
MEWTOCOL-DAT |
Connecter avec FP2 ET-LAN |
Ne pas connecter |
Contrôle via le programme API [Usage général] |
Ne pas ajouter d’en-tête spécial |
Ajouter un en-tête spécial |
Contrôle via le programme API [Usage général] avec capacité de réception élevée |
Ne pas ajouter d’en-tête spécial |
Non disponible. Si ce mot-clé est spécifié, une erreur d’opération apparaît. |
Spécifier quel type de connexion Ethernet doit être ouvert (paramètre requis).
'CL'
: Connexion client (par défaut)
Pour les connexions clients, l’adresse IP de l’unité de destination est incrémentée de 1 pour chaque connexion utilisateur, de la connexion utilisateur spécifiée par nStartPort à la connexion utilisateur spécifiée par nEndPort.
'SV'
: Connexion serveur
Pour les connexions serveurs, le numéro de port de l’unité maître est incrémenté de 1 pour chaque connexion utilisateur, de la connexion utilisateur spécifiée par nStartPort à la connexion utilisateur spécifiée par nEndPort.
Spécifier la méthode d’ouverture de la connexion Ethernet (paramètre requis)
'AUTO'
: Ouvrir la connexion automatiquement (par défaut)
'MANU'
: Ne pas ouvrir la connexion automatiquement (utiliser l’instruction FP_ETHERNET_CONNECTION_OPEN)
Spécifier le type de communication Ethernet (paramètre requis).
'TCP'
: Paramètres TCP/IP (par défaut)
'UDP'
: Paramètres UDP/IP (non disponible pour le mode de communication GP_LARGE)
Nota :
Si vous avez spécifié UDP comme type de communication, il y a une différence si vous utilisez les instructions FP ou le navigateur de projets pour entrer les paramètres. L’option "Type de connexion" n’est pas disponible dans le navigateur de projets. Cependant l’option "Type de connexion" doit être spécifiée dans les instructions FP. Utilisez les mots-clés 'SV'
pour une connexion esclave et 'CL'
pour une connexion maître.
Le type de communication UDP ne doit pas être spécifié pour le mode de communication GP_LARGE, cela entraîne une erreur d’opération.
Réinitialiser aux valeurs par défaut
'INITIAL'
: Réinitialise tous les paramètres à leurs valeurs par défaut.
Exemples :
Définir MEWTOCOL-COM en tant que mode de communication, utiliser l’option de connexion avec FP2 ET-LAN, une connexion client doit être établie et ouverte automatiquement, et le type de communication est TCP/IP : 'MEWCOM,OPTAV,CL,AUTO,TCP'
Définir MODBUS-TCP en tant que mode de communication, l’option n’est pas disponible, une connexion serveur doit être établie mais non ouverte automatiquement, et le type de communication est UDP/IP : 'MODBUS,OPTNAV,SV,MANU,UDP'
Définir le mode de communication contrôlée via le programme API, ajouter un en-tête spécial, une connexion serveur doit être établie et ouverte automatiquement, et le type de communication est UDP/IP : 'GP,OPTNAV,SV,AUTO,UDP'
Définir le mode de communication contrôlée via le programme API avec capacité de réception élevée, ne pas ajouter d’en-tête spécial, une connexion serveur doit être établie mais non ouverte automatiquement, et le type de communication est TCP/IP : 'GP_LARGE,OPTAV,SV,MANU,TCP'
Pour réinitialiser la configuration aux valeurs par défaut, c.-à-d. le mode de communication est MEWTOCOL-COM, sans connexion avec FP2 ET-LAN, une connexion client doit être établie et ouverte automatiquement, et le type de communication est TCP/IP : 'INITIAL'
Définir les paramètres des adresses. Les paramètres diffèrent selon que la connexion spécifiée est de type serveur ou client.
Pour les connexions clients, vous devez spécifier les adresses IP et les numéros de port des unités de destination ainsi que le temps de déconnexion pour des connexions non utilisées.
Pour les connexions serveurs, vous devez spécifier les numéros de port de l’unité maître ainsi que le temps de déconnexion pour des connexions non utilisées.
Spécifier une connexion client
Adresse IP de l’unité de destination (paramètre requis)
Spécifiez l’adresse IP de l’unité de destination pour la première connexion utilisateur dans l’intervalle des connexions utilisateur spécifié par nStartPort et nEndPort. Pour les connexions utilisateur suivantes, le dernier bloc de l’adresse IP est incrémenté de 1. Les paramètres du numéro de port de l’unité de destination et le temps de déconnexion sont identiques pour toutes les connexions et ne sont pas incrémentés.
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. Pour IPv4, 000.000.000.000 (0.0.0.0) ne peut pas être spécifiée. 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. La variable système sys_iEthernetConnectionErrorCode est définie sur "1 : Adresse IP spécifiée incorrecte".
Numéro du port de l’unité de destination (paramètre requis)
Mot-clé : 'PORT'
Syntaxe :'PORT=xxxxx'
Valeurs : 1–65535
Temps de déconnexion pour les connexions non utilisées (paramètre requis)
Mot-clé : 'DISCONT'
Syntaxe : 'DISCONT=xxxx'
Valeurs : 0–4294967295ms par pas de 10ms. 0 : La connexion n’est pas déconnectée automatiquement.
Adresse de départ du tampon de réception (paramètre optionnel)
Ce paramètre est disponible uniquement pour FP0H C32ET/EP et FP-XH C40ET, C60ET, FP-XH C60ETF lorsque le mode de communication est défini sur "Contrôle via le programme API [Usage général]".
Mot-clé : 'BUFTOP'
Syntaxe : 'BUFTOP=xxxx'
Valeurs : DT0 jusqu’au dernier DT possible
Taille du tampon de réception (paramètre optionnel)
Ce paramètre est disponible uniquement pour FP0H C32ET/EP et FP-XH C40ET, C60ET, FP-XH C60ETF lorsque le mode de communication est défini sur "Contrôle via le programme API [Usage général]".
Mot-clé : 'BUFSIZE'
Syntaxe : 'BUFSIZE=xxxx'
Valeurs : 0–2048
Exemples :
Définir l’adresse de l’unité de destination sur 192.244.2.10 et le numéro du port de l’unité de destination sur 9000, ne pas déconnecter automatiquement même si la connexion est inutilisée : 'IPv4=192.244.2.10,PORT=9000,DISCONT=0'
Définir l’adresse de l’unité de destination sur 1222::1555:0:0:1999 et le numéro du port de l’unité de destination sur 10000, déconnecter automatiquement lorsque la connexion n’a pas été utilisée pendant 30 secondes : 'IPv6=1222::1555:0:0:1999,PORT=10000,DISCONT=30000'
Définir l’adresse de l’unité de destination sur 192.168.1.5 et le numéro du port de l’unité de destination sur 4000, déconnecter automatiquement lorsque la connexion n’a pas été utilisée pendant 50 secondes, définir l’adresse de départ du tampon de réception sur DT4 et la taille du tampon de réception sur 256 : 'IPv4=192.168.1.5, PORT=4000, DISCONT=100, BUFTOP=DT4, BUFSIZE=256'
Spécifier une connexion serveur
Numéro du port de l’unité maître (paramètre requis)
Mot-clé : 'PORT'
Syntaxe : 'PORT=xxxxx'
Valeurs : 1–65535
Temps de déconnexion pour les connexions non utilisées (paramètre requis)
Mot-clé : 'DISCONT'
Syntaxe : 'DISCONT=xxxx'
Valeurs : 0–4294967295ms par pas de 10ms. 0 : La connexion n’est pas déconnectée automatiquement.
Exemples :
Définir le numéro du port de l’unité maître sur 9000, ne pas déconnecter automatiquement même si la connexion est inutilisée : 'PORT=9000,DISCONT=0'
Définir le numéro du port de l’unité maître sur 10000, déconnecter automatiquement lorsque la connexion n’a pas été utilisée pendant 30 secondes : 'PORT=10000,DISCONT=30000'
Définir le numéro du port de l’unité maître sur 11111, déconnecter automatiquement lorsque la connexion n’a pas été utilisée pendant 70 millisecondes : 'PORT=11111,DISCONT=70'
Définir le numéro de la première connexion utilisateur
SYS_ETHERNET_USER_CONNECTION_1–SYS_ETHERNET_USER_CONNECTION_216
Définir le numéro de la dernière connexion utilisateur
SYS_ETHERNET_USER_CONNECTION_1–SYS_ETHERNET_USER_CONNECTION_216
Sortie
Si une adresse IP est invalide.
Si l’instruction est exécutée alors que l’adresse IP n’est pas établie.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
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.
Utilisez une virgule "," pour séparer un mot-clé et ses paramètres du mot-clé suivant.
nStartPort doit être £ nEndPort
Veillez à spécifier nStartPort and nEndPort de telle sorte que toutes les adresses IP des unités de destination (connexion client) ou tous les numéros de port des unités maîtres (connexion serveur) soient dans l’intervalle autorisé.
Le nombre maximum de connexions utilisateur Ethernet est de 216.
Si vous exécutez l’instruction lorsqu’une connexion est ouverte ou lorsque l’ouverture de la connexion est définie sur automatique, une erreur d’opération apparaît. Cependant, en cas de connexions utilisateur multiples, lorsqu’une erreur d’opération apparaît sur une connexion utilisateur, les modifications de paramètres sont effectués pour les connexions utilisateur précédant cette erreur d’opération. Les paramètres des connexions utilisateur suivantes ne sont pas modifiés.
Si vous utilisez cette instruction pour des connexions client multiples dont certaines ont déjà été configurées, une erreur d’opération apparaît car les connexions utilisateurs qui ont été configurées pour un serveur sont reliées les unes aux autres et sont toutes ouvertes ou fermées en même temps.
Cette instruction n’est pas disponible dans les programmes d’interruption.
Des caractères en lettres majuscules et minuscules peuvent être utilisés. Dans ce cas. "Abcd", "ABCD" et "abcd" sont synonymes.
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 sys_bIsEthernetIPAddressAssigned est TRUE. Lorsque l’instruction est exécutée alors que sys_bIsEthernetIPAddressAssigned est FALSE, bError devient TRUE et l’instruction est terminée sans avoir été exécutée.
Lorsqu’une adresse IP incorrecte est spécifiée, bError est activée et aucune opération n’est exécutée.
Lorsque l’instruction a été exécutée avec succès, les variables système sys_bIsCarry et sys_iEthernetConnectionErrorCode sont réinitialisées.
Les données de configuration Ethernet enregistrées dans l’automate sont remplacées temporairement par les données de l’instruction. Lorsque l’automate est rallumé, les données de configuration Ethernet sauvegardées dans l’automate sont réutilisées.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Si nStartPort > nEndPort
Si le numéro de connexion utilisateur est en dehors de l’intervalle autorisé.
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 un numéro de port est invalide.
Si le nombre de caractères des données STRING est supérieur à 256.
Si une connexion est ouverte.
Si une connexion est définie pour être ouverte automatiquement.
Si une ou plusieurs connexions utilisateur dans l’intervalle spécifié par nStartPort et nEndPort appartiennent à une configuration serveur déjà existante.
Si GP_LARGE est spécifié en tant que mode de communication et OPTNAV est défini comme option de protocole.
Si GP_LARGE est spécifié en tant que mode de communication et UDP est défini comme type de communication Ethernet.
Si GP_LARGE est spécifié en tant que mode de communication et nStartPort ou nEndPort n’est pas 1.
Si l’instruction est exécutée dans un programme d’interruption.
Si nStartPort > nEndPort
Si le numéro de connexion utilisateur est en dehors de l’intervalle autorisé.
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 un numéro de port est invalide.
Si le nombre de caractères des données STRING est supérieur à 256.
Si une connexion est ouverte.
Si une connexion est définie pour être ouverte automatiquement.
Si une ou plusieurs connexions utilisateur dans l’intervalle spécifié par nStartPort et nEndPort appartiennent à une configuration serveur déjà existante.
Si GP_LARGE est spécifié en tant que mode de communication et OPTNAV est défini comme option de protocole.
Si GP_LARGE est spécifié en tant que mode de communication et UDP est défini comme type de communication Ethernet.
Si GP_LARGE est spécifié en tant que mode de communication et nStartPort ou nEndPort n’est pas 1.
Si l’instruction est exécutée dans un programme d’interruption.
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
bSetConnection: BOOL:=FALSE;
bOpenConnection: BOOL:=FALSE;
bCloseConnection: BOOL:=FALSE;
END_VAR
Lorsque la variable bSetConnection passe de FALSE à TRUE et lorsque la variable système sys_bIsEthernetInitializing n’est pasTRUE, la fonction 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 := 7 ;
NETWORK_BODY
B(B_VARIN,,'GP~OPTNAV~SV~AUTO~UDP',30,2,32,4,);
B(B_VARIN,,'PORT=9000~DISCONT=0',30,3,32,5,);
B(B_VARIN,,SYS_ETHERNET_USER_CONNECTION_1,30,4,32,6,);
B(B_VARIN,,SYS_ETHERNET_USER_CONNECTION_13,30,5,32,7,);
B(B_CONTACT,,sys_bIsEthernetInitializing,15,1,17,3,N);
B(B_CONTACT,,bSetConnection,5,1,7,3,R);
B(B_VAROUT,,bError,48,2,50,4,);
B(B_F,FP_ETHERNET_CONNECTION_SET!,,32,0,48,7,,?DEN?DsMode?DsAddress?DnStartPort?DnEndPort?AENO?CbError);
L(17,2,32,2);
L(1,2,5,2);
L(7,2,15,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing Then
FP_ETHERNET_CONNECTION_SET(sMode := 'GP,OPTNAV,SV,AUTO,UDP',
sAddress := 'PORT=9000,DISCONT=0,BUFTOP=DT10000,BUFSIZE=100',
nStartPort := SYS_ETHERNET_USER_CONNECTION_1,
nEndPort := SYS_ETHERNET_USER_CONNECTION_13);
END_IF;