[PL7-Pro] Adressage (rapide?) de 448 entrées

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
viddal0co
Code sa première boucle
Code sa première boucle
Messages : 12
Enregistré le : 09 mars 2021, 08:44
Localisation : Lyon

[PL7-Pro] Adressage (rapide?) de 448 entrées

Message par viddal0co »

Bonjour,

Afin de pouvoir exploiter 448 entrées avec mon Proface, je dois, dans mon programme machine (PL7 Pro), adresser celles-ci sur des bits de mots.

Ma question est la suivante : existe-t-il un moyen "rapide" de réaliser cette opération ? Manuellement, une à une, ça prendrait un temps fou.

Petite précision, utile ou pas, l'intégrateur à construit l'entièreté de son programme en ladder.

En vous remerciant par avance,

Cordialement,

David.
dpo
Dieu du process
Dieu du process
Messages : 818
Enregistré le : 27 nov. 2015, 20:03

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par dpo »

tu fais une section en langage structuré et tu recopies les entrées par paquet de 16 dans un mot (soit 28 lignes de code)
Pour aller vite, tu peux le faire avec quelques formules dans excel et tu copies/colles d'excel dans PL7
de mémoire
%MW0:=%I1.0:16; (* les entrées 0 à 15 de la carte 1*)
%MW1:=%I1.16:16; (* les entrées 16 à 31 de la carte 1*)
...
à l'adresse %MW0:x0 tu auras la première entrée...
viddal0co
Code sa première boucle
Code sa première boucle
Messages : 12
Enregistré le : 09 mars 2021, 08:44
Localisation : Lyon

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par viddal0co »

Merci beaucoup pour ce conseil !

Du coup si j'utilise des mots doubles, je réduis le nombre de ligne de code a 14 ?

Exemple : %MDx := %I1.0:32

Sinon, j'ai vu que la fonction BIT_D de PL7 Pro pouvait éventuellement être utile pour ce genre de problématique, non ?
Modifié en dernier par viddal0co le 26 oct. 2023, 21:56, modifié 1 fois.
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1573
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par MiGaNuTs »

En PL7 Pro je crois que ca marche, mais Excel ne peut pas écrire de code ladder a ta place, alors que du ST, oui.
Déjà ça va plus vite, et en plus il fait pas de fautes de frappe vicieuses et bien cachées lui au moins. (Bon, moi non plus. C'est mon clavier qui bug)
dpo
Dieu du process
Dieu du process
Messages : 818
Enregistré le : 27 nov. 2015, 20:03

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par dpo »

en ladder , tu dois te taper les operate un par un
ou alors en mode sauvage, tu fais juste deux lignes en ladder, tu exportes la section, tu l'ouvres avec blocnote, tu comprends comment c'est fait.
et tu en déduis comment ajouter la vingtaine de ligne codée "dans excel", et tu re-importes.
c'est d'un intérêt très très limité dans ton cas, le ladder n'apportera pas plus de lisibilité au programme

j'ai toujours fait par mot, mais tu peux aussi essayer via un double, ça fait deux fois moins de ligne
%MD0:=%I1.0:32;
%MD2:=%I1.32:32
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par DurandO »

Bonjour,
j'avais un doute, mais en effet cela marche pour 32bits.
dpo a écrit : 26 oct. 2023, 21:59 en ladder , tu dois te taper les operate un par un
ou alors en mode sauvage, tu fais juste deux lignes en ladder, tu exportes la section, tu l'ouvres avec blocnote, tu comprends comment c'est fait.
et tu en déduis comment ajouter la vingtaine de ligne codée "dans excel", et tu re-importes.
c'est d'un intérêt très très limité dans ton cas, le ladder n'apportera pas plus de lisibilité au programme

j'ai toujours fait par mot, mais tu peux aussi essayer via un double, ça fait deux fois moins de ligne
%MD0:=%I1.0:32;
%MD2:=%I1.32:32
Exemple en Literal :

Code : Tout sélectionner

%MD0:=%I4.0:32;
Sous réserve que les entrées soient en 32 voies bien sur.

Apres pour s'aider d'Excel, voici ma technique :
colonne A écrire la formule

Code : Tout sélectionner

=concatener(B1;C1;D1;E1;F1;G1;H1)
Cellule B1

Code : Tout sélectionner

%MD
Cellule C1 Cellule D1

Code : Tout sélectionner

:=I
Cellule E1 Cellule F1

Code : Tout sélectionner

.0:32;
copie A1:H1 en A2:H2
Cellule C2

Code : Tout sélectionner

=C1+2
Cellule E2

Code : Tout sélectionner

=E1+1
Ensuite copie incrementale vers le bas de A2:H2 (suivant le besoin).

Code : Tout sélectionner

%MD0:=%I4.0:32;	%MD	0	:=%I	4	.0:32;
%MD2:=%I5.0:32;	%MD	2	:=%I	5	.0:32;
%MD4:=%I6.0:32;	%MD	4	:=%I	6	.0:32;
%MD6:=%I7.0:32;	%MD	6	:=%I	7	.0:32;
Copier A1:Ax coller cela dans la section litérale.

Code : Tout sélectionner

%MD0:=%I4.0:32;
%MD2:=%I5.0:32;
%MD4:=%I6.0:32;
%MD6:=%I7.0:32;
Sous réserve que les entrées soient bien configurées et successives!

Cette technique marche aussi en Ladder mais la syntaxe est lourde à gérer.
Copier un Rung dans Pl7 puis coller dans le bloc note pour obtenir le code.
viddal0co
Code sa première boucle
Code sa première boucle
Messages : 12
Enregistré le : 09 mars 2021, 08:44
Localisation : Lyon

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par viddal0co »

J'en demandais pas autant, merci beaucoup, c'est d'une aide précieuse !
J'espère que cela pourra être utile à d'autre.

Bonne semaine à tous.
Cedric39
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 134
Enregistré le : 05 déc. 2015, 09:47

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par Cedric39 »

J'ajouterai que si tu préfère le faire bit a bit, ceci est vite fait dans un Excel aussi:

%MW0:X0:=%I0.3.0;
%MW0:X1:=%I0.3.1;
%MW0:X2:=%I0.3.2;
%MW0:X3:=%I0.3.3;
%MW0:X4:=%I0.3.4;
%MW0:X5:=%I0.3.5;
%MW0:X6:=%I0.3.6;
%MW0:X7:=%I0.3.7;
%MW0:X8:=%I0.3.8;
%MW0:X9:=%I0.3.9;
%MW0:X10:=%I0.3.10;
%MW0:X11:=%I0.3.11;
%MW0:X12:=%I0.3.12;
%MW0:X13:=%I0.3.13;
%MW0:X14:=%I0.3.14;
%MW0:X15:=%I0.3.15;
%MW0:X16:=%I0.3.16;
dpo
Dieu du process
Dieu du process
Messages : 818
Enregistré le : 27 nov. 2015, 20:03

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par dpo »

Cedric39 a écrit : 30 oct. 2023, 16:03 J'ajouterai que si tu préfère le faire bit a bit, ceci est vite fait dans un Excel aussi:

%MW0:X16:=%I0.3.16;
le bit X16 va être dur à faire passer...

Perso je fais bit à bit pour toutes mes entrées, je ne travaille qu'avec les bits internes et à la mise en service si le contact n'est pas dans le sens que je souhaite, j'ajoute juste un NOT dans la ligne pour inverser.
viddal0co
Code sa première boucle
Code sa première boucle
Messages : 12
Enregistré le : 09 mars 2021, 08:44
Localisation : Lyon

Re: [PL7-Pro] Adressage (rapide?) de 448 entrées

Message par viddal0co »

J'ai adressé toutes mes cartes entrées/sorties sur des blocs operate exemple : %MDx := %I1.0:32 ; %MDx' := %I1.32:32.

De cette façon j'utilise donc 4 mots et leur 16 bits respectifs par carte donc 64 bits au total pour adresser mes 64 entrées et 64 sorties, ayant 7 cartes d'entrées et 6 cartes de sorties.

J'ai donc 28 mots pour mes entrées et 24 mots pour les sorties.

Et tout ceci me prend deux rung séparés de 14 et 12 lignes.

Merci encore pour votre aide.
Répondre