Organisation DB défauts + synthèse défauts

Forum traitant des automates industriels de marque Siemens.
JeremAuto07
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Inscription : 23 sept. 2019, 18:21

Organisation DB défauts + synthèse défauts

Message par JeremAuto07 »

Bonjour,

Afin de pouvoir transmettre l'intégralité des défauts d'une installation ou de plusieurs installations pilotées par un API à l'IHM j'utilisais un DB non optimisé "Défaut". Dans ce DB je créé diverses structures afin de classer mes défauts par élément ou installation. Ensuite pour chaque élément ou installation je créé une structure pour les défauts bloquants et une pour les défauts non bloquants. J'aimerais savoir s'il y a un moyen simple pour créer une synthèse de défaut général, et par zone sans devoir faire un gigantesque "ou" avec tous les bit défauts.

Exemple de structure:

Zone1 (Struct)
Bloquants (Struct)
Défaut 1
Défaut 2
Défaut n
Non Bloquants (Struct)
Défaut 1
Défaut 2
Défaut n
Zone2 (Struct)
Bloquants (Struct)
Défaut 1
Défaut 2
Défaut n
Non Bloquants (Struct)
Défaut 1
Défaut 2
Défaut n

J'aimerai avoir un bit "synthèse défaut général" qui prend la valeur 1 si au moins un défaut est présent
"synthèse défaut Z1 non bloquant"
"synthèse défaut Z1 bloquant"
.......

Si vous avez des idées pour avoir quelque chose de simple et efficaces
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Organisation DB défauts + synthèse défauts

Message par itasoft »

Slts,
Disons que moi je met les défauts dans les bits d’un tableau de mots (WORD) et si la somme du tableau est <>0 alors défaut général
Automaticien privé (de tout)
itasoft@free.fr
JeremAuto07
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Inscription : 23 sept. 2019, 18:21

Re: Organisation DB défauts + synthèse défauts

Message par JeremAuto07 »

c'est une solution, mais comment fait tu pour mettre des tagues sur tes défauts ? quand tu exporte ton DB pour l'importer dans un IHM tu ne "vois" que des mots avec des adresses sans connaitre bit a bit leurs significations.

Jusqu'à présent je comparé mes structures comme si c'était des mots via l'adressage absolu.
EX: DB1000 Défaut
Défaut_Presse Struct 0.0
...

%DB1000.DBW0 <> 0 alors "Synthèse défaut presse" =1

Le souci avec cette méthode c'est que l'adresse n'est pas "réellement" liée à un mot donc si je change la structure et que cela décale les adresses et bien la structure "Défaut_Presse" ne sera plus en 0.0 par conséquent dans le programme le %DB1000.DBW0 sera lié à autre chose.
steph68
Codeur fou
Codeur fou
Messages : 268
Inscription : 21 oct. 2015, 08:23

Re: Organisation DB défauts + synthèse défauts

Message par steph68 »

Salut,

Sur des S7-1200 / 1500, ma table d'alarmes est un tableau de mots (WORD) et j'utilise le "bit slicing" pour l'accès au bit (exemple avec tableau[3].X7 pour l'alarme 3 * 16 + 7 = 55).
Comme tout est sur mot, suffit juste de comparer ces mots avec 0 pour savoir si au moins un bit est actif.
Idem pour remettre à 0 la table, un MOVE à plusieurs sorties.
L'IHM veut aussi des mots, pas besoin d'inverser le poids forts / poids faibles des octets ...
Tout est parfait, sauf la gymnastique pour calculer le n° d'alarme (le 3 * 16 + 7)

Si tu as des gros volumes, une petite boucle en SCL fera l'affaire.

Sur des S7-300, ma table d'alarmes est un tableau de bool.
J'ai fais une fonction "TEST_BLOCK" qui prend un ANY en entrée et retourne un booléen en sortie qui est la somme de tous les bits du bloc mémoire.
Idem avec une fonction "CLEAR_BLOCK" et une autre "SWAP_BLOCK" pour inverser les poids forts / faibles pour l'IHM.
Si tu es dans ce cas sur du S7-300, je peux te fournir les sources de ces 3 fonctions.
Si tu es dans ce cas sur du S7-1200/1500, il y a maintenant des fonctions comme "FILL" ou "GATHER" en équivalent à "CLEAR_BLOCK" et "SWAP_BLOCK" mais pas "TEST_BLOCK" (remplaçable par une simple boucle en SCL).

Dans tous les cas, évite l'adressage absolu.
Reste tout le temps en symbolique !

@+
JeremAuto07
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Inscription : 23 sept. 2019, 18:21

Re: Organisation DB défauts + synthèse défauts

Message par JeremAuto07 »

Salut !

Merci pour ton explication ! ta méthode utilisé pour les S71200 1500 je ne connaissais absolument pas. Aurai tu un exemple pour l'utilisation du "bit slicing" ? car je ne vois même pas de quoi il s'agit.

Lorsque tu exporte tes mots dans ton IHM il ne reste plus qu'à savoir quel bit de quel mot correspond une alarme précise.
steph68
Codeur fou
Codeur fou
Messages : 268
Inscription : 21 oct. 2015, 08:23

Re: Organisation DB défauts + synthèse défauts

Message par steph68 »

JeremAuto07
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Inscription : 23 sept. 2019, 18:21

Re: Organisation DB défauts + synthèse défauts

Message par JeremAuto07 »

Super merci pour les informations !

Le programme sur lequel je suis gère l'intégralité du chauffage et ventilation d'une usine. Je travail donc par "zone" j'en ai env 10 et chacune possède des défauts bloquant et non bloquant réarmable auto réarmé. J'ai également des défauts généraux concernant l'intégralité de l'installation.
Le pupitre est un KEP donc je remonte mes défauts bit à bit.
Il faut donc que j'arrive à trouver un compromis entre tout ça
Cedric39
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 116
Inscription : 05 déc. 2015, 09:47

Re: Organisation DB défauts + synthèse défauts

Message par Cedric39 »

Bonjour,

J'ai pas lu toutes réponses précédentes mais j'apporte ma contribution :

Tu met ton DB en adressé, ca coute pas plus cher et le jour ou une supervision ou un afficheur autre marque veux lire, c'est fait. (Et tu met des réserves dans ta structure)

Comme dit plus haut du compare DBx.DBD00 <>0 OU DBx.DBD4 <>0 OU ...8...12.... ect . tu compare 32 bit d'un coup.
JeremAuto07
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Inscription : 23 sept. 2019, 18:21

Re: Organisation DB défauts + synthèse défauts

Message par JeremAuto07 »

Salut !

en effet c'est ce que je fais actuellement, je crée différente structures mais lorsque je compare avec 0 une structure l'adresse est en absolu et j'aurai aimé éviter ça
JeremAuto07
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Inscription : 23 sept. 2019, 18:21

Re: Organisation DB défauts + synthèse défauts

Message par JeremAuto07 »

Bonjour,

je n'arrive pas à me décider sur quelle option choisir. Ce qui est sur c'est que j'ai besoin de mettre chaque défaut dans un bit individuel pour mon IHM.
Voici mon DB Défaut relié à l'iHM:

Image

Toutes les zones sont structuré de la même manière, et comme tout n'est pas rentré sur la capture, à la fin j'ai besoin d'un bit "Defaut_Bloquant_Général" et un bit "Defaut_Non_Bloquant_Generale". Voila se d'ont j'ai besoin pour mon IHM
Répondre