×
Siemens Industry Online Support
Siemens AG
Type de contribution : FAQ ID de la contribution : 18513371, Date de la contribution : 18/01/2018
(5)
Évaluer

Comment programmer les fonctions de communication FC50 et FC60 ?

  • Contribution
  • Concerne le/les produits(s)

Instruction

Les blocs de communication FC50 "AG_LSEND" et FC60 "AG_LRECV" doivent être appelés dans le programme S7 du S7-400 pour la communication avec une des liaisons de communication suivantes.

  • Liaison TCP
  • Liaison ISO-on-TCP (RFC 1006)
  • Liaison de transport ISO
  • Liaison UDP
  • Liaison FDL

Caractéristiques des fonctions de communication FC50 "AG_LSEND" et FC60 "AG_LRECV"

  • FC50 et FC60 sont des fonctions de communication asynchrones.
  • FC50 et FC60 s'exécutent sur plusieurs cycles OB1.
  • FC50 est activé par le paramètre d'entrée "ACT".
  • La fin du contrat est indiquée par "DONE" ou "ERROR".
  • AG_LSEND et AG_LRECV peuvent communiquer simultanément via une liaison.
  • Vous trouvez la version actuelle des fonctions de communication FC50 "AG_LSEND" et FC60 "AG_LRCV" dans la bibliothèque SIMATIC_NET_CP sous "CP 400 > Blocs".

Description du programme exemple
Le programme S7 contient l'appel des blocs de communication FC50 "AG_LSEND" et FC60 "AG_LRECV" de la bibliothèque SIMATIC_NET_CP. Le FC50 "AG_LSEND" sert à envoyer des données vers une station S7 ou une station S5, vers une station PC ou un système tiers. Le FC60 "AG_LRECV" sert à la réception des données d'une station S7 ou d'une station S5, d'une station PC ou d'un système tiers.
Le programme exemple montre le fonctionnement des blocs de communication FC50 "AG_LSEND" et FC60 "AG_LRCV" à l'aide d'une liaison ISO-on-TCP.

Créez d'abord la configuration matérielle de votre station S7-400.

Remarque
Configurez l'octet de mémentos 10 en mémento de cadence. Le contrat d'émission est activé par ce mémento de cadence. Enregistrez et compilez la configuration matérielle de votre station S7-400 et chargez la dans la CPU.
Ce programme exemple utilise la temporisation T10.

Pour la CPU, configurez dans NetPro une des liaisons de communication citées plus haut. Si les partenaires de communication sont tous configurés dans le projet STEP 7, alors vous pouvez configurer une liaison de communication spécifiée. Si le partenaire de communication n'est pas configuré dans le même projet S7 que la station S7-400, alors on configurera une liaison non spécifiée. Lors de la configuration de la liaison de communication, faites attention à l'attribution correcte de l'adresse IP ou PROFIBUS. De plus faites attention à l'attribution correcte des PORT, TSAP et LSAP. Ceux ci servent à l'identification univoque de la liaison de communication entre les partenaires de communication.

Dans le dialogue des propriétés de la liaison de communication -> onglet "Général", vous trouverez la valeur qu'il faudra affecter aux paramètres d'entrée "ID" et "LADDR" des blocs de communication FC50 "AG_LSEND" et FC60 "AG_LRECV".


Figure 01

Le programme STEP 7 est composé des blocs OB100, OB1, FB200, DB200, DB201, FC50 et FC60.

OB100
L' OB100 est un OB de mise en route, il est parcouru lors du démarrage à chaud (Warmstart) de la CPU. C'est dans cet OB que la première requête de communication est démarrée avec le mémento 1.0.

OB1
L' OB1 est appelé cycliquement. L'appel du FB200 (bloc de données d'instance: DB200) se trouve dans cet OB, avec M1.0 pour paramètre (INIT_COM). M1.0 est remis à zéro dès que le FB200 a été exécuté.


Figure 02

FB200
Le FB200 est appelé dans le cycle OB1. Ce FB contient l'appel des FC50 "AG_LSEND" et FC60 "AG_LRECV". Le contrat d'émission est déclenché par un front montant au niveau du paramètre d'entrée "ACT" du FC50. Le déclenchement du contrat d'émission est piloté par le mémento de cadence M10.7 et la variable "SND_BUSY". "SND_BUSY" est mis à un lorsque le contrat d'émission est en cours. Ainsi il n'est pas possible de lancer un nouveau contrat d'émission.
Le déclenchement du contrat de réception est piloté par la variable "RCV_DISABLE". La valeur de cette variable est FALSE afin que le FC50 "AG_LRCV" soit toujours prêt à recevoir et que des données puissent être réceptionnées à tout moment. 

Ce verrouillage de la fonction est particulièrement important car la fonction est asynchrone et peut durer plusieurs cycles. Un déclenchement permanent de nouveaux contrats d'émission sans attendre qu'ils se soient terminés avec succès ou avec erreur peut entraîner une surcharge de communication.

Les valeurs pour les paramètres d'entrée "ID" et "LADDR" doivent être reprises du dialogue des propriétés de la liaison de communication dans NetPro (voir figure 01).
Le paramètre d'entrée "SEND" du FC50 doit recevoir l'adresse et la longueur de la zone de données qui contient les données à envoyer (tampon d'émission), par exemple: P#DB201.DBX0.0 BYTE 100.
Le paramètre d'entrée "LEN" doit recevoir la longueur des données à envoyer en octets. Dans cet exemple, la longueur des données à envoyer a été définie à 100 octets.
Les paramètre de sortie "DONE", "ERROR" et "STATUS" sont nécessaires à l'évaluation du contrat et sont seulement valides dans le même cycle!


Figure 03


Figure 04

Lorsque le contrat d'émission s'est terminé sans erreur, alors "SND_BUSY" est remis à zéro. Un nouveau contrat d'émission peut ainsi être déclenché.


Figure 05

Si le contrat d'émission s'est terminé avec erreur, alors "SND_BUSY" est également remis à zéro et la valeur du paramètre de sortie "STATUS" du FC50 est mémorisée pour une analyse d'erreur.
Si la valeur du paramètre de sortie "STATUS" est 0x7000Hex (28672Dez), alors la fonction FC50 "AG_LSEND" est à nouveau appelée.


Figure 06

Si la valeur du paramètre de sortie "STATUS" est 0x8183Hex (32381Dez) ou 0x8304Hex (31996Dez), cela signifie que la liaison de communication n'est pas établie, alors un contrat d'émission est seulement initialisé toutes les 10s.


Figure 07

Les valeurs des paramètres d'entrée "ID" et "LADDR" doivent être reprises de la boîte de dialogue des propriétés de la liaison de communication dans NetPro (voir figure 01). Le paramètre d'entrée "RECV" du FC60 doit recevoir l'adresse et la longueur de la zone de données dans laquelle les données reçues sont mémorisées (tampon de réception), par exemple : P#DB201.DBX100.0 BYTE 100.


Figure 08

Le paramètre de sortie "NDR" sert d'indicateur lorsque de nouvelles données ont été réceptionnées. Le paramètre de sortie "LEN" indique la longueur des données réceptionnées.
Si les données ne sont pas réceptionnées correctement, alors la valeur du paramètre de sortie "STATUS" est mémorisée et évaluée.


Figure 09

Si la valeur du paramètre de sortie "STATUS" est 0x8183Hex (32381Dez) ou 0x8304Hex (31996Dez), cela signifie que la liaison de communication n'est pas établie, la variable "RCV_DISABLE" est mise à un pendant 10s. Pendant ce temps aucune donnée n'est réceptionnée. Ce n'est qu'après l'écoulement de ce temps (10s) que de nouvelles données peuvent à nouveau être réceptionnées.


Figure 10

La longueur des données réceptionnées avec succès est mémorisée dans une variable statique.


Figure 11

Le FB200 évalue la fréquence d'apparition des différentes valeurs de STATUS délivrées par le FC50 "AG_LSEND" et par le FC60 "AG_LRCV". Cette information est mémorisée dans les paramètres statiques de l'interface du FB200 dans la variable "STATISTIC" de type de données "Structure". 


Figure 12

La variable "#STATISTIC.ON_OFF" permet d'activer ou de désactiver l'évaluation du STATUS. L'évaluation du STATUS est activée par défaut.


Figure 13

Cas particulier
Lorsque l'échange de données a lieu via une liaison TCP, le paramètre de sortie "NDR" n'est alors mis à un que lorsque le tampon de réception a été entièrement rempli ! La valeur du paramètre de sortie "LEN" indique ainsi toujours la longueur totale du tampon de réception !

Le projet  STEP 7 à télécharger
Le projet STEP 7 contient un programme exemple pour l'appel des fonctions FC50 et FC60 avec évaluation d'état. Il a été créé avec STEP 7 V5.5 SP2.

NET_S7400_LSEND_LRECV.zip ( 195 KB )

Note
Copiez la version actuelle des blocs de communication  FC50 et FC60 dans votre programme utilisateur à partir de la bibliothèque SIMATIC_NET_CP ou de la Standard Library, et appelez les dans votre programme utilisateur.

Mots-clés complémentaires
send, receive

Notes relatives à la sécurité
La protection des installations, systèmes, machines et réseaux contre les cyber-menaces nécessite la réalisation (et le maintien continu) d'un concept global de sécurité IT à la pointe de la technique. Les produits et solutions Siemens ne constituent qu'un élément d'un tel concept. Pour plus d’informations sur la cyber-sécurité, rendez-vous sur
https://www.siemens.com/cybersecurity#Ouraspiration.
Aide pour la statistique
Cette fonction permet de délivrer les identifiants des résultats de la recherche selon la quantité souhaitée (format .txt).

Générer une liste
Copier l'URL
Afficher cette page dans le nouveau design
Poste de commande mySupport
Liens connexes