Simulation d un programme automate sur Excel

Bonsoir,

Je ne vois pas toujours ce que tu cherches à faire... La position d'une bouteille n'a strictement aucune importance à mon sens, ce qui en a c'est la configuration de l'ensemble des bouteilles sur 6 positions, prise globalement... et pour gérer chaque situation élémentaire, il manque tous les paramètres :

  • temps de rotation élémentaire (soit avance d'une position à la suivante, 36° ainsi que tu l'as mentionné)
  • temps de remplissage
  • temps de bouchage
  • temps de vissage
éventuellement, autre temps qui interviennent :

- temps de reconnaissance (par la sonde puisqu'il n'y en a qu'une)

Si le cycle global est fixe, il n'y a rien à calculer, tout est donné par les paramètres de la machine ! Puisque dans ce cas tout avancera de la même façon qu'il y ait des bouteilles ou pas.

Par contre si ces temps (et éventuellement d'autres auxquels je ne pense pas) sont différents et peuvent être gérés pour optimiser la marche de la machine, on a matière à calculer pour chaque configuration...

Cordialement.

salut aucun temps n ai fixe, seule la vitesse, l angle et la pause de rotation de la table sont figés, mais les modules de travail ont leur propre cadence

donc je reexplique

une table qui tourne de 36°, une pause de 1 seconde, tout ça non stop

non stop, tant qu aucune bouteille ne rentre ne soit presente devant un module de trvail, les bouteilles arrivent automatiquement et de façon aleatoire

j'ai 3 modules de travail different autour de la table, et calé pile devant une encoche à a chaque arret de la table

la table ne tourne que dans un seul et unique sens

la machine doit donc passer par le premier module (remplissage), puis par le 2eme, puis par le 3eme, obligatoirement

mais ces 3 modules ne sont pas a suivre au niveau des encoches, il y a des trou entre eux

je n ai que 1 seule sonde de detection pour savoir si il y a une bouteille, cette sonde est au niveau du premier module

je dois donc etre capable de memoriser ou sont placé les bouteilles a chaque rotation, afin de declencher le ou les modules qui ont une bouteilles a leur niveau

la macro faite plus haut etait presque abouti niveau simlulation, il restait juste quelques trucs a pauffiner, pour etre coherent avec la realité


confere cette video:

https://www.youtube.com/watch?v=wMbMayCRYu0&feature=youtu.be

la je met la bouteille a la main

la doseuse se met en route, car je l ai detecté, ça c est facile

mais au moment ou la bouteille passe sous l autre module, il doit se mettre en route, et pareil pour le 3eme module

et là je n ai mis que une seule bouteille, mais je peux en avoir plein a suivre, avec des trous, donc facon aleatoire

Savoir combien et où sont les bouteilles dans le système est quelque peu trivial... ! Si on n'a aucun paramètre, je ne vois pas bien ce qu'on calcule !

On peut simuler de façon aléatoire les entrées dans le système : on peut faire varier la densité de présentation des bouteilles à l'entrée en fixant le taux de probabilité globale d'avoir une bouteille...

[Un petit code à cet égard, de H2so4 , aussi enfantin que génial !...]

On peut suivre la configuration des bouteilles dans le système à chaque position, pour décider... mais décider quoi !!?

Que la machine a un arrêt et qu'elle repart ! C'est sans intérêt si pour chaque cas on n'est pas en mesure d'évaluer l'arrêt à partir des durées de chaque opération élémentaire gérée par la machine.

Durées qui devraient être connues à un niveau un peu plus fin que la seconde !

On peut compter les entrées et sorties. On peut aussi voir les possibilités d'incidents qui n'ont pas été abordées...

Mais au départ si on ne prend pas appui sur les paramètres fonctionnels de la machine, soit les durées de chaque opération élémentaire à gérer et temporisations éventuelles selon cas... On perd son temps.

Entendons-nous, on le perd peut-être dans tous les cas... mais si on construit un modèle de simulation réaliste, on aura au moins procédé à une analyse fine du système qui pourra être comparée aux observations en fonctionnement réel pour détecter d'éventuelles anomalies sur lesquelles on n'aurait pas encore mis le doigt, sorte d'outil d'audit en quelque sorte [vieille déformation professionnelle ! Je fus auditeur quelques années durant ! ]

On aura toujours le plaisir d'avoir construit un module et d'avoir affiné quelques techniques réutilisables...

Mais pour l'instant la connaissance de la machine est bien trop embryonnaire !

Cordialement.

alors ne t embete pas pour tout ce qui est autour

la code de la table est fait

la doseuse est faite

chaque code est autonome

là ma problematique est de faire un tableau dynamique , une memoire

en abscisse les modules de 0 à 9

module 0 est la doseuse (rempli la bouteille), sonde de detection

module 3 est la boucheuse (met une pompe dans la bouteille)

module 5 est la visseur (visse la pompe)

a partir du module 6 les bouteilles quitte toute seule la table

lorsqu un module rentre en action, car le tableau de memoire en a décidé, la table se met en "veille", jusqu a ce que tout les modules ai fini leur travail

, comme je l ai dit tout se code est fait et marche deja

je pourrais tres simplement, mettre une cellule devant chaque module, des que la cellule detecte une bouteille, ça actionne le module, la table se met en veille, jusqu a ce que tout les modules soit a nouveau libre

mais j ai un probleme de nombre d'entrée sur mon automate donc j essaye d economisé, en passant un peu de temps sur le code pour faire ce tableau de memorisation

donc quel action on veut,

ba deja une action unique pour chaque module

1= dosage

2= bouchage

3= vissage

ensuite moi je transformerais ce 1/2/3 en action sur mes modules

le programme de d3d9x, est vraiment pas loin du compte

suffit juste de partir de 0 pour aller a 9, au lieu de 1 a 10

dire que l entrée n est pas 10 mais 0

et definir une action unique, au lieu de repeter plusieur fois bouteilles rempli-bouteille rempli-bouteille vissée-bouteille vissée

on ecrit plustot 1-0-2-0-0-3-0-0-------, par exemple

-singnifie que le module devant laquel une encoche passe sans bouteille

mais là je suis dessus je vais te faire une belle video

Hé bé ! Bonne continuation et amuse-toi bien !

ba quoi?

quelqu'un peu me donner son avis sur ce que je viens de faire?

ça ne marche pas car je ne sais pas dimensionner les variables

mais sinon, sur le principe ca devrait etre simple et efficace je pense

Bonjour à tous,

Je me suis perdu sur le web et suis tombé sur cette discussion... petit déterrage

Je n'apporterai pas d'aide sur excel mais plutôt coté automate. Comme d'autre participants, je ne comprends pas l'utilité du simulateur excel : Ne suffirait-t-il pas d'utiliser un mot, chaque bit correspondant à un "poste", 1 = présence bouteille, 0 = vide. Ensuite sur fais un ROL ou un ROR afin de suivre le produit.

Cordialement.

C est quoi un rol ou ror?

C'est une fonction de rotation a gauche (ROL) ou à droite (ROR) qui doit être présente dans tous les automates (d’ailleurs, tu bosse avec quoi?).

https://en.wikipedia.org/wiki/Circular_shift

Et en réfléchissant, pour ton exemple, je me suis planté, il faut utiliser un SHL ou SHR (cette instruction ne fait pas une rotation mais un décalage)

Exemple sur API Schneider (page 4-5, recherche "Décalage circulaire ou non circulaire logique" : http://solar.energy.free.fr/logiciel_automatisme/Ladder.pdf

Dans ton cas :

Admettons que la machine est vide :

Mot (16 bits) "SuiviProduit", où chaque bit correspond à un poste (si tu n'en as que 10, tu ne t'occupera pas des 6 derniers, si tu en a plus, tu prends un double mot)

MSB..................................................................................LSB

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |

Chargement d'un produit poste 1: SuiviProduit.X0 := 1

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |

Rotation: Décalage à gauche (SHL)

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |

Chargement d'un produit poste 1: SuiviProduit.X0 := 1

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |

Rotation: Décalage à gauche (SHL)

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |

Pas de Chargement d'un produit poste 1: SuiviProduit.X0 := 0

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |

Rotation: Décalage à gauche (SHL)

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |

Chargement d'un produit poste 1: SuiviProduit.X0 := 1

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |

Rotation: Décalage à gauche (SHL)

| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |

Etc...

J utilise des automates soprolec en vb script

Aie, quelle idée

Je ne connais pas mais il n'y a pas de raison que ces instructions n'existent pas, elles datent de l'assembleur

Pourquoi aie?

Ils sont abordables et simple à programmer

Je n'en doute pas, c'est juste que ça sort des "standards" industriels comme siemens, Schneider, Omron, Allen Bradley...

On va peut être continuer cette discussion en MP si tu veux, je ne connais pas les habitudes de ce forum, je ne voudrais pas le "polluer", on a un peu dévié du sujet excel là...

Rechercher des sujets similaires à "simulation programme automate"