Données acycliques
Pour les blocs de fonction qui utilisent une communication acyclique avec TeSys™ island, une référence à un module matériel contenant les données acycliques est nécessaire pour le bloc de fonction. Habituellement, cette référence est fournie à l’interface du bloc de fonction sous la forme d’une entrée de type « HW_IO » nommée « i_hwSubmHWID ». Lorsqu’un équipement est créé dans Siemens TIA Portal (par exemple, via l’importation d’un fichier AML), les constantes système contenant les valeurs d’ID matériel sont créées automatiquement pour tous les équipements, modules et sous-modules. Ceux-ci peuvent être directement utilisés pour paramétrer l’accès aux données acycliques d’un avatar ou d’un équipement. Les noms de ces constantes sont généralement créés à l’aide du modèle suivant : <nom de l’équipement>~<nom du module>~<nom du sous-module> (par exemple « montesysisland~PompeAv02~Acyclique »).
Pour l’accès aux données de gestion des équipements des équipements du TeSys™ island, ceux-ci sont également représentés sous forme de modules dans TeSys™ island. Les modules d’équipement sont placés dans les emplacements à partir du numéro 101 pour PROFINET IO et PROFIBUS DP.
-
Pour PROFIBUS DP, il n’y a pas de sous-modules dans un module. Toutes les données cycliques et acycliques appartiennent donc au module lui-même et non aux sous-modules individuels. Cela signifie que pour les blocs de fonction PROFIBUS DP qui impliquent une communication cyclique ou acyclique, l’ID matériel peut être directement dérivé de l’adresse de départ d’entrée, et aucun ID matériel supplémentaire ne doit être paramétré. Toutefois, pour les blocs de fonction qui n’utilisent que la communication acyclique (principalement les blocs de fonction de gestion des équipements de l’équipement), l’ID matériel du module doit être fourni à l’interface du bloc de fonction (variable d’interface « i_hwModuleHWID »).
-
Les blocs de fonction ne peuvent pas détecter s’il y a correspondance entre le module auquel l’ID matériel fourni à l’interface du bloc de fonction fait référence d’une part, et le type d’avatar ou d’équipement pour lequel le bloc de fonction est fait d’autre part. Vous devez donc veiller à ce que les bons identifiants matériels soient utilisés avec les blocs de fonction appropriés. Dans le cas contraire le TeSys™ island pourrait montrer un comportement inattendu.
La lecture ou l’écriture des données acycliques doit être déclenchée par un front montant à l’entrée du bloc de fonction « i_xExecute ». Toutefois, la lecture ou l’écriture acyclique n’est lancée que si le bloc de fonction est activé (« i_xEnable »), si aucune erreur n’a été détectée et si la variable d’entrée « i_xAcyclicBusy » est réglée sur FAUX. La variable « i_xAcyclicBusy » peut être utilisée pour verrouiller plusieurs instances de blocs de fonction en utilisant une communication acyclique (soit à partir de la bibliothèque TeSys™ island pour TIA Portal ou toute autre partie du programme d’automate utilisant les fonctions RDREC ou WRREC) afin d’éviter les erreurs détectées dues aux ressources limitées pour la communication acyclique des automates Siemens. Chaque bloc de fonction impliquant une communication acyclique fournit également une sortie « q_xAcyclicBusy » réglée sur VRAI lorsqu’une requête de lecture ou d’écriture acyclique est exécutée par le bloc de fonction et peut être utilisée pour l’interverrouillage avec d’autres blocs de fonction.
Si une erreur est détectée pendant une communication acyclique, le bloc de fonction indique cette occurrence par un front montant sur la sortie « q_xError », combiné avec le code d’erreur détectée correspondant dans « q_dwErrorID » du bloc de données ConstTeSysIsland. Toutes les sorties basées sur les résultats de la communication sont réinitialisées à leurs valeurs par défaut. (Même réaction que pour toutes les autres erreurs détectées : voir aussi Données cycliques. Pour plus de détails sur les valeurs de ConstTeSysIsland, voir Bloc de données ConstTeSysIsland.) En plus de l’ID de l’erreur détectée, le bloc de fonction fournit dans certains cas un code d’état pour la communication acyclique dans la variable « q_dwAcyclicStatus ». Le tableau ci-dessous donne tous les codes d’état acyclique utilisés.
Codes d’état acyclique
|
Code d’état acyclique |
Description |
|---|---|
|
Cdw_StsNoMsg |
Aucun détail sur l’état n’est disponible (voir aussi Bloc de données ConstTeSysIsland) |
|
Tous les autres |
État/code d’erreur spécifique à TIA Portal de la fonction système utilisée
Pour plus d’informations sur les codes d’erreur spécifiques à TIA, reportez-vous au système d’information de Siemens TIA Portal et Documentation externe. |
Si le bloc de fonction termine la communication acyclique avec succès, « q_xAcyclicBusy » revient à FAUX, « q_dwErrorID » affiche le code d’état approprié (voir Bloc de données ConstTeSysIsland) et les données lues de l’îlot de façon acyclique sont copiées dans les variables de sortie. Les données restent présentes sur les sorties jusqu’à ce qu’elles soient remplacées après une nouvelle demande acyclique, que le bloc de fonction soit désactivé ou qu’une erreur soit détectée et que les données de sortie soient remplacées par des valeurs par défaut.