Création d'un DFB dans somachine Basic

Forum traitant des automates industriels de marque Schneider - Telemecanique
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Création d'un DFB dans somachine Basic

Message par itasoft »

slts,
s'incrémentent correctement mais quand je recopie dans des MW j'obtiens des valeurs incohérentes.

d'après la capture d'écran, tu ne les copies pas mais tu les additionnes

les copier c'est comme dans l'exemple d'appel du bloc et copie de PARAM0 dans %MW0 de cedric39
Automaticien privé (de tout)
itasoft@free.fr
Cedric39
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 136
Enregistré le : 05 déc. 2015, 09:47

Re: Création d'un DFB dans somachine Basic

Message par Cedric39 »

Oui tu fait %MW20:= %MW20+PARAM0 a tout les cycles automates, donc ca peut pas marcher.

Mais je vois ta question. Est ce ce que les valeurs dans les dfb sont sauvegardé en cas de coupure. Je ne sais pas.
Pour palier, tu peut copier au premier cycle automate la valeur de %MW20 qui lui est sauvegardé (Operation PARAM0:=%MW20) Et seulement au premier cycle automate

Ou alors avant l'appel du DFB
PARAM0:=%MW20

Dans le dfb, il faudra conditionner PARAM0:=PARAM0+1

Après le dbf %MW20:=PARAM0
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Slts,

dans mon idée j'additionne la valeur du mot MW20 avec la valeur de l'incrémentation du compteur et je donne le résultat pour valeur à MW20.

Comme la valeur du compteur est remise à 0 à chaque cold start, le mot MW20 reprend sa valeur et l'incrémentation reprend, c'est pour ca que j'avais fait une addition.

Si je met %MW20 := DFB1_x.PARAM0, à chaque redémarrage de l'automate le mot va prendre la valeur 0.

Par contre l'idée de Cédric de faire UDFB1_x.PARAMO := %MW20 est une piste intéressante mais je ne sais pas comment faire pour qu'il ne s'exécute que sur le premier cycle de scrutation.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Création d'un DFB dans somachine Basic

Message par itasoft »

slts,
autre solution bestiale
---clic dessus pour zoom -------
AXXX.JPG
---
AXXX1.JPG
-----------
(* Conversion en H/MN/S *)
HEURES :=%PARAM0 / 3600
RESTE :=%PARAM0 REM 3600
MINUTES :=RESTE / 60
SECONDES :=RESTE REM 60
Modifié en dernier par itasoft le 26 avr. 2020, 09:01, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Slts,

j'ai peut être une autre solution avec le bit système %S93 qui permet d'enregistrer les mots mémoire dans le mot système %SW148 puis le bit système %S94 qui restaure les données sauvegardées.

J'ai aussi compris pourquoi les mots sont réinitialisés à chaque fois que je modifie le programme, j'ai oublié de décocher "réinitialiser les mémoires" dans les paramètres de chargement.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Création d'un DFB dans somachine Basic

Message par philou77 »

Salut !

Suffit juste de faire
param = %MW20
Appel dfb
%MW20 = param

il me semble que les bits système c'est pour forcer le système a sauver ou restaurer ses variables rémanentes non ?
Modifié en dernier par philou77 le 26 avr. 2020, 01:59, modifié 1 fois.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Création d'un DFB dans somachine Basic

Message par itasoft »

@philou,
oui ça marche, mais la présentation est moins compacte et moins élégante, param=%MW20 dans le RUN précédent et %MW20:=param dans le RUNG suivant. Bon d'accord on est pas dans un défile de mode pour faire dans l'élégance, LOL
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Création d'un DFB dans somachine Basic

Message par philou77 »

Lol

Dans le même rung ça marche pas ?
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Création d'un DFB dans somachine Basic

Message par itasoft »

non un bloc ou une tempo doit être seul dans le RUNG, on peut rien mettre d'autre
Automaticien privé (de tout)
itasoft@free.fr
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Le truc c'est que les variables persistantes sont réinitialisées après activation du bit système %S0 et ce bit système passe à 1 lors du 1er cycle de scrutation après un cold start...J'ai intérêt à faire gaffe à l'état de la pile :D
Répondre