[PL7-Pro] Adressage (rapide?) de 448 entrées
-
viddal0co
- Code sa première boucle

- Messages : 12
- Enregistré le : 09 mars 2021, 08:44
- Localisation : Lyon
[PL7-Pro] Adressage (rapide?) de 448 entrées
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.
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.
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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...
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

- Messages : 12
- Enregistré le : 09 mars 2021, 08:44
- Localisation : Lyon
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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 ?
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

- Messages : 1573
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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)
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)
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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
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
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
Bonjour,
j'avais un doute, mais en effet cela marche pour 32bits.
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
Cellule B1
Cellule C1
Cellule D1
Cellule E1
Cellule F1
copie A1:H1 en A2:H2
Cellule C2
Cellule E2
Ensuite copie incrementale vers le bas de A2:H2 (suivant le besoin).
Copier A1:Ax coller cela dans la section litérale.
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.
j'avais un doute, mais en effet cela marche pour 32bits.
Exemple en Literal :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
Code : Tout sélectionner
%MD0:=%I4.0:32;
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)
Code : Tout sélectionner
%MD
Code : Tout sélectionner
0
Code : Tout sélectionner
:=I
Code : Tout sélectionner
0
Code : Tout sélectionner
.0:32;
Cellule C2
Code : Tout sélectionner
=C1+2
Code : Tout sélectionner
=E1+1
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;Code : Tout sélectionner
%MD0:=%I4.0:32;
%MD2:=%I5.0:32;
%MD4:=%I6.0:32;
%MD6:=%I7.0:32;
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

- Messages : 12
- Enregistré le : 09 mars 2021, 08:44
- Localisation : Lyon
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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.
J'espère que cela pourra être utile à d'autre.
Bonne semaine à tous.
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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;
%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;
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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

- Messages : 12
- Enregistré le : 09 mars 2021, 08:44
- Localisation : Lyon
Re: [PL7-Pro] Adressage (rapide?) de 448 entrées
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.
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.


