ST6 Enregistrement des erreurs INTERBUS avec mémoire FIFO

La cible de la tâche complexe ST6 est de consigner les erreurs de bus signalées par le contrôleur INTERBUS (date, heure, le segment, la position et l'information de texte brut sur le dispositif respectif y compris). Ce message d'erreur doit être enregistrée dans un FIFO (First In First Out) mémoire à l'aide de dix éléments. L'élément 1 doit toujours être utilisé pour émettre le message d'erreur de courant.


[A] définition de type de données

1. La définition d'un type de données de structure selon les exigences du message


ST_Message

└ Date               Type: String

└ Time               Type: String

└ Segment         Type: Int

└ Position           Type: Int


2. Définition d'un type de données de réseau en fonction des exigences de la liste des messages

AR_1_10_Message

Type: Array [1..10] of ST_Message


[B] Programme pour l'enregistrement d'erreur:


Ajouter un programme avec le nom "PG_Messages" en texte structuré à l'arborescence de votre projet. Une fois terminé, instancier le programme en appelant la tâche cyclique disponible dans votre projet sous le nom de "I_Messages."

Le programme doit effectuer les tâches suivantes en cinq étapes:

1. Les valeurs de transformation fournies par les variables système et les enregistrer sur des variables locales.


Utilisez des valeurs à deux chiffres pour le jour, le mois, heure, minute et seconde. Utilisez une valeur à quatre chiffres pour l'année.

2. La combinaison des valeurs de date et d'heure à des variables de chaîne au format suivant:

Utilisez les formats standard pour la date et l'heure:

Exemple pour la date: '26 .01.2007 '

Exemple pour le temps: '14: 17: 52 '

3. Saisir les informations compilées des étapes précédentes dans une variable locale

Aperçu graphique des conversions et des affectations (section)


4. Création d'une variable globale pour entrer dans le message en cours. Cette variable représente la liste des messages

Pour mettre à jour la liste des messages, d'abord copier le contenu de l'élément 9 à l'élément 10, puis à partir de l'élément 8 à l'élément 9, etc. Enfin, le message actuel est entré dans l'élément 1.

Cette mise à jour peut être effectuée manuellement au moyen de dix états séparés ou mis en œuvre par l'intermédiaire d'une boucle "For" et une affectation supplémentaire. La boucle "For" est pas capable de décompter la variable de contrôle. Cela représente un défi particulier lors de la programmation de la boucle "For".

5. Exécution conditionnelle de la routine d'entrée

La routine d'entrée ne doit être exécutée, si le front descendant du bit de détection d'erreur et le bit d'erreur dans l'attente de bus du maître INTERBUS sont détectées par le programme. En ce qui concerne la détection, utiliser les variables système fournies par le contrôleur (informations supplémentaires peuvent être trouvées dans l'annexe).


[C] Nom de l'appareil dans le texte brut


Les tâches suivantes permettent le nom du périphérique respectif pour être montré en texte brut.

1. L'extension du type de données "SET_Message" par un paramètre.

2. L'intégration d'une bibliothèque utilisateur.


Intégrer la bibliothèque "BIB_IBS_CFG_INFO_V1_0_D.zwt" dans le projet actuel.


La bibliothèque fournit les éléments suivants:

Programmes:

"PG_InterbusConfiguration"


Le programme lit la configuration INTERBUS active à partir du maître INTERBUS utilisant le service de firmware "Read_Complete_Configuration" et détermine le nombre d'appareils dans la configuration. Les données acquises est entré dans les variables Stibs structure (segment de module et de position, l'état actif et l'état ponté, défaut périphérique se sont produits).

Les variables de structure sont classés en fonction du nombre consécutif des modules. En outre, le programme lit le fichier "Diag32" enregistré sur la carte mémoire du contrôleur en envoyant le projet de démarrage. Dans la variable "Stibs", les noms de station pour les modules IBS qui sont enregistrés dans ce fichier (avec la valeur initiale de la variable "iStartTabulatorForDetail = 10") sont ajoutés aux informations du module déjà acquis.


3. appel et le paramétrage du programme

Instancier le programme fourni par la bibliothèque et appeler le programme via la tâche cyclique disponible dans votre programme.

Dans le menu contextuel de l'arborescence du projet, sélectionnez la fonction pour transformer "VAR_EXTERNAL" en V"AR_GLOBAL".

Pour la variable "iStartTabulatorForDetail", affecter la valeur spécifiée dans la description.


4. En utilisant le nom de l'appareil à partir de la variable de structure de configuration.


Vérifiez la variable "Stibs" pour les entrées en matière de segment et position et utiliser le nom entré dans la variable, à condition que les deux paramètres correspondent aux valeurs actuellement fournis par le maître IBS.

Considérez les situations suivantes: Le maître IBS est rapporté comme un segment défectueux (segment: 0) ou un OUT1 ou OUT2 erreur d'interface de l'appareil a eu lieu. En cas d'erreurs d'interface, la variable de segment indique le segment du dispositif de bus à distance de rapports, la variable de position a la 80hex de valeur pour OUT1 ou 81hex pour OUT2.