|
Description Pour l'échange de données par l'interface PROFINET intégrée d'une CPU, vous pouvez utiliser, entre autres, la communication ouverte sur Industrial Ethernet. Les protocoles suivants sont supportés :
Les blocs de communication suivants sont disponibles, pour la communication ouverte sur Industrial Ethernet au moyen du protocole UDP :
- FB65 "TCON" pour la création du nœud d'extrémité UDP
- FB66 "TDISCON" pour la fermeture du nœud d'extrémité UDP
- FB67 "TUSEND" pour l'émission de données
- FB68 "TURCV" pour la réception de données
Vous trouverez ces blocs de communication dans la Standard Library - > Communication Blocks.
Copiez la version actuelle des blocs fonctionnels mentionnés ci-dessus depuis la bibliothèque standard dans votre programme utilisateur et appelez-les dans votre programme utilisateur.
Les paramètres pour la création du nœud d'extrémité UDP sont mémorisés dans une structure de données. Dans cet exemple, la structure de données UDT65 "TCON_PAR" est utilisée. Elle doit être paramétrée par l'utilisateur. Il n'y a aucune liaison configurée dans NetPro.
Note Vous trouverez des informations détaillées sur la communication ouverte par Industrial Ethernet dans le manuel "Logiciel système pour SIMATIC S7-300/400 Fonctions standard et fonctions système" dans l'article ID: 1214574.
Description du programme exemple Le programme S7 contient l'appel du FB65 "TCON" et la structure de données UDT65 "TCON_PAR" avec les paramètres pour la création du nœud d'extrémité UDP. En outre, le programme S7 contient l'appel des blocs de communication FB67 "TUSEND" et FB68 "TURCV" de la Standard Library - > Communication Blocks. Le FB67 "TUSEND" sert à envoyer des données à une station S7, à une station PC ou à un système tiers. Le FB68 "TURCV" sert à la réception des données d'une station S7, d'une station PC ou d'un système tiers.
Créez d'abord la configuration matérielle de votre station S7-300. Vérifiez que l'octet mémento 10 est configuré comme mémento de cadence. C'est par ces bits de l'octet mémento de cadence que la commande d'émission sera lancée. Enregistrez et compilez la configuration matérielle de votre station S7-300 et chargez-la ensuite dans la CPU.
Le programme STEP 7 est constitué des blocs OB100, OB1, FB500, DB500, FC95, FC96, UDT65, UDT66 et FB63, FB64, FB67 et FB68.
OB100 L'OB100 est un OB de démarrage qui est exécuté lorsque la CPU est redémarrée à chaud (Warmstart) . Dans cet OB, la première tentative de communication est démarrée avec le mémento M0.3.
OB1 L'OB1 est appelé cycliquement. Dans cet OB, l'appel du FB500 ( bloc d'instance DB500 ) est paramétré avec M0.3 comme paramètre INIT_COM. Le bit M0.3 est remis à zéro dans l'OB1 après l'appel du FB500.

Figure 01
FB500 Le FB500 est appelé dans le cycle OB1.
Dans le FB500, les fonctions FC95 "SET_UDP_REMOTE" et FC96 "SET_UDP_ENDPOINT" ainsi que les blocs fonctionnels FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" et FB66 "TDISCON" sont appelés.

Figure 02
Les paramètres du nœud d'extrémité UDP local sont définis aux paramètres d'entrées de la fonction FC96 "SET_UDP_ENDPOINT".
| Paramètre d'entrée |
Type de données |
Description |
| ID |
Word |
Numéro de liaison |
| DEV_ID |
Byte |
B#16#01 pour la CPU IM151-8 PN/DP
B#16#02 pour les CPU 31x-2PN/DP, IM154-8
B#16#03 pour la CPU 319-3PN/DP
B#16#05 pour les CPU 412-2PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP |
| LOC_PORT |
DInt |
Port local dans la CPU
-numéros de port autorisés pour les CPU S7-300 jusqu'à V2.6 inclus et les CPU S7-400 jusqu'à V5.1 inclus: 2000 à 5000
-numéros de port autorisés pour les CPU S7-300 à partir de V2.7 et les CPU S7-400 à partir de V5.2: 1 à 49151 |

Figure 03
Les paramètres du nœud d'extrémité UDP distant sont définis aux paramètres d'entrées de la fonction FC95 "SET_UDP_REMOTE".
| Paramètre d'entrée |
Type de données |
Description |
| REM_PORT |
DInt |
Port distant du partenaire de communication
-numéros de port autorisés pour les CPU S7-300 jusqu'à V2.6 inclus et les CPU S7-400 jusqu'à V5.1 inclus: 2000 à 5000
-numéros de port autorisés pour les CPU S7-300 à partir de V2.7 et les CPU S7-400 à partir de V5.2: 1 à 49151 |
| IP_ADDR1 |
Int |
Adresse IP du partenaire de communication |
| IP_ADDR2 |
Int |
| IP_ADDR3 |
Int |
| IP_ADDR4 |
Int |
Note Le numéro de liaison est indiqué dans le réseau 2 du FB500. Celui-ci est mémorisé dans une variable statique et donc dans le bloc de données d'instance DB500.

Figure 04
La création du nœud d'extrémité UDP est démarrée par un front montant sur le paramètre d'entrée "REQ" du FB65 "TCON". La structure de données UDT65 "TCON_PAR" avec le paramétrage du nœud d'extrémité UDP local est incluse dans le bloc de données d'instance du FB500.
La plage mémoire contenant le nœud d'extrémité local est indiquée sur le paramètre d'entrée "CONNECT" du FB65 "TCON".
La création du nœud d'extrémité UDP est établie lors du démarrage du système. Elle reste connectée tant qu'elle n'est pas, par exemple, fermée par le FB66 "TDISCON", par un passage en STOP de la CPU ou par la mise hors tension de l'alimentation.

Figure 05
Le contrat d'émission est lancé par un front montant sur le paramètre d'entrée "REQ" du FB67 "TUSEND". Le lancement de l'émission sera activé par le mémento de cadence M10.6 et la variable "C1.SEND_BUSY". Si le contrat d'émission est lancé lorsque "C1. SEND_BUSY" est positionné, alors un nouveau contrat d'émission ne sera pas possible.
Indiquez au paramètre d'entrée "DATA" la plage de données qui contient les données à envoyer.
Au paramètre d'entrée "LEN", indiquez le nombre d'octets à envoyer.
Indiquez dans le paramètre d'entrée ADDR la plage de données, dans laquelle l'adresse IP du récepteur est enregistrée. Dans cet exemple, le paramètre d'adresse du partenaire de communication est enregistré dans la structure de données UDT66 "TADDR_PAR". Celle-ci est incluse dans le bloc de données d'instance DB500.
Les paramètres de sortie "DONE", "ERROR" et "STATUS" seront nécessaires pour suivre l'exécution du contrat.

Figure 06
Lorsque le contrat d'émission s'est terminé avec succès, alors "C1.SEND_BUSY" est remis à zéro. Un nouveau contrat pourra alors être relancé.
Lorsque le contrat d'émission se termine avec une erreur, alors "C1.SEND_BUSY" est également remis à zéro et la valeur du paramètre de sortie STATUS du FB67 sera sauvegardée pour une analyse de l'erreur.

Figure 07

Figure 08
Dès que la création du nœud d'extrémité UDP est initialisée, les données peuvent être reçues.
L'adresse et la longueur de la plage de données dans laquelle les données reçues doivent être rangées, sont indiquées au paramètre d'entrée "DATA".
Indiquez dans le paramètre d'entrée ADDR la plage de données dans laquelle l'adresse IP de l'émetteur est enregistrée. Dans cet exemple, le paramètre d'adresse du partenaire de communication est enregistré dans la structure de données UDT66 "TADDR_PAR". Celle-ci est incluse dans le bloc de données d'instance DB500.

Figure 09
Le paramètre de sortie "NDR" sert d'indicateur informant que de nouvelles données ont été reçues. Le paramètre de sortie "RCVD_LEN" donne la longueur des données qui ont été reçues.
Si les données sont reçues avec succès, la valeur du paramètre de sortie RCVD_LEN est mémorisée.
Si les données ne sont pas reçues avec succès, la valeur du paramètre de sortie "STATUS" sera sauvegardée et exploitée.

Figure 10
Avec le FB66 "TDISCON", il est possible de fermer volontairement le nœud d'extrémité UDP. La commande pour la fermeture du nœud d'extrémité UDP est démarrée par un front montant sur le paramètre d'entrée "REQ" du FB66 "TDISCON".

Figure 11
Le projet STEP 7 à télécharger Le projet STEP 7 contient un programme exemple pour l'appel du FB500 ainsi que les fonctions FC95 "SET_UDP_ENDPOINT", FC96 "SET_UDP_REMOTE", les blocs fonctionnels FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" et FB68 "TURECV" avec une évaluation des mots d'états. Il a été créé avec STEP 7 V5.4 SP3.
Sample_open_UDP.zip ( 44 KB )
Configuration de plusieurs liaisons UDP Pour envoyer des datagrammes UDP vers plusieurs partenaires de communication, configurez d’autres nœuds d’extrémité locaux et distants. Copiez le FB500 autant de fois que de liaisons souhaitées ( par exemple FB501… ). Modifiez les paramètres des nœuds UDP locaux et distants et générez les nouveaux DB d’instance.
La valeur du paramètre ID du nœud local UDP peut être choisi librement dans la plage 1 à 4095.
Le port local et le port distant peuvent être choisis librement dans la plage 1 à 49151 pour les CPU S7-300 à partir de V2.7 et pour les CPU S7-400 à partir de V5.2.
Les valeurs des paramètres ID et Port doivent être univoques pour chaque nœud local, c'est-à-dire que vous devez définir pour chaque nœud local un ID différent et un port différent.
Définissez le port distant et l’adresse IP en fonction du paramétrage du partenaire de communication.
Le tableau suivant présente un exemple pour la configuration de plusieurs nœuds UDP locaux et distants. Dans cet exemple, on utilise sur chaque partenaire toujours le même ID et numéro de port.
| Nœud UDP local/distant |
1 |
2 |
3 |
| ID |
1 |
2 |
3 |
| LOC_PORT |
2000 |
2001 |
2002 |
| REM_PORT |
2000 |
2001 |
2002 |
| Adresse IP du partenaire de communication |
172.16.43.40 |
172.16.43.50 |
172.16.43.60 |
Autres informations
- Des informations détaillées traitant de la communication ouverte par Industrial Ethernet figurent dans le manuel opérateur "S7-300/400 Fonctions standard et fonctions système Volume 1 et Volume 2" dans l'article ID: 44240604.
- Vous trouverez un guide pour la configuration d'une liaison UDP pour la communication via les CP Industrial Ethernet des APIs S7-300 et S7-400 dans l'article ID: 47885893.
|