Contrôle d'éclairage (chenillard) d'un portail d'entrée sur IPX V5

Bonjour à toute la commu !

Comme beaucoup ici je pense avoir été un grand habitué de la V4 et je prends donc mes marques avec la V5. J’ai un projet assez sympa mais sur lequel je dois avouer me casser les dents …

Voici le projet résumé :

J’ai un portail d’entrée autonome (piloté par la carte du fabricant) et fonctionnel. Ce portail d’entrée dispose de 2 cellules photoélectriques, l’une placée à l’extérieur du terrain, l’autre placée côté intérieur de l’allée (jusqu’ici rien d’extraordinaire me direz-vous).

Là où ça devient intéressant :

Le portail est à la fin du terrain et une belle allée carrossable y emmène, tout le long, 6 spots délimitent l’allée placés chacun à environ une dizaine de mètre. L’idée est d’allumer ces spots un à un façon “chenillard” avec un délai d’1 à 2s entre chaque allumage (puis de les éteindre lors du passage de la seconde cellule ou bien après un certain temps pour simplifier).

Le déclenchement se ferait soit du sens extérieur vers intérieur lorsqu’on rentre sur le terrain (allumage des spots progressif 1 à 6) via la cellule “extérieur”, soit du sens intérieur vers extérieur lorsqu’on sort du terrain (allumage des spots progressif 6 à 1) via la cellule “intérieur”.

Il faut que j’ajoute à cela une fonction “allumage forcé” (l’info des cellules n’est plus prise en compte et les spots restent tous allumés).

Les cellules sont de types impulsionnelles et branchées en entrée Digital In, les spots sont branchés sur les sorties relais.

Le projet n’est pas du complexité folle mais je dois avouer que je galère …

Je pense savoir qu’il faut privilégier le moteur de scénarios et qu’il faudra surement passer par des variables IO de transition.

Pour l’instant j’arrive simplement à déclencher un allumage progressif via l’activation de l’entrée Digital In puis en utilisant plusieurs objets Délais (dans l’exemple il est vrai que l’ensemble des instructions de Start Délai pourraient être mises à la suite).

Lorsque j’essaie cependant de faire une fonction d’extinction dans l’autre sens (déclenchée lorsque le véhicule passe la seconde cellule) les allumages interfèrent (bref cela fait n’importe quoi).

Je ne pense pas avoir la bonne méthodologie et j’ai du mal à comprendre comment fonctionnent les variables IO (est-il possible d’assigner des valeurs 0 ou 1 “à la main” dans ces variables ?).

En effet les objets Délais devront déclencher à la suite du temps écoulés parfois des allumages de spot et parfois des extinctions et il faut que j’arrive à inhiber cette fonction lors de l’allumage forcé.

J’en appel à votre grand savoir faire !

Merci d’avance !

Bonjour,

des widgets sont à disposition sur dashboard et Liveview. C’est jouable aussi par le moteur de scénario.
Voici un peu de lecture :

Pouvez vous faire un croquis ? la cellule « intérieur » est déportée à l’autre extrémité de l’allée ?
Pas si simple de déterminer le sens de circulation avec une distance si grande entre les 2 cellules (le vehicule ne cache pas les cellules simultanément)

Il est possible d’utiliser l’état du spot le plus proche de chaque cellule en tant que 2eme information. En effet, si la cellule extérieure est activée alors que le spot 1 est éteint, alors le véhicule vient de l’extérieur. Inversement, si le spot 1 est allumé lorsque la cellule extérieure est activée, alors le véhicule sort.

//entrée sur terrain

  • Cellule1ETNONSpot1ETNONIO_Allumage_forcéONIO_SENS_ENTREE
  • IO_SENS_ENTREEONDélai1.startDélai2.startDélai3.startDélai4.startDélai5.startDélai6.start
  • IO_SENS_ENTREEETDélai1.outputONSpot1
  • IO_SENS_ENTREEETDélai2.outputONSpot2
  • IO_SENS_ENTREEETDélai6.outputONSpot6
  • IO_SENS_ENTREEETCellule2OFFSpot1Spot2Spot3Spot4Spot5Spot6IO_SENS_ENTREE

//sortie du terrain

  • Cellule2ETNONSpot6ETNONIO_Allumage_forcéONIO_SENS_SORTIE
  • IO_SENS_SORTIEONDélai1.startDélai2.startDélai3.startDélai4.startDélai5.startDélai6.start
  • IO_SENS_SORTIEETDélai1.outputONSpot6
  • IO_SENS_SORTIEETDélai2.outputONSpot5
  • IO_SENS_SORTIEETDélai6.outputONSpot1
  • IO_SENS_SORTIEETCellule1OFFSpot1Spot2Spot3Spot4Spot5Spot6IO_SENS_SORTIE

bonne journée

Bonjour et merci pour cette réponse si rapide !

Voici un petit schéma rapide de l’ensemble, pour faciliter la compréhension j’ai plus mis en avant la situation plus que le câblage. A savoir que la partie hardware pure et dure est fonctionnelle (je vois bien les 2 Digital In répondre aux coupures des faisceaux et j’arrive bien à activer chaque spot).

Il y aurait donc un sens “sortie” qui déclenche les spots 6 –> 1 et un sens “entrée” qui déclenche les spots 1 –> 6.

J’arrive (à peu près) à faire ce qu’il faut pour un sens mais la combinaison des 2 produits des résultats disons “pas ouf”.

Merci encore !

Ma réponse correspond à ce schéma (on a de la chance, c’est le même que le votre :slight_smile: )

Pour la gestion d’un allumage forcé, il y a quelques modifs à faire, par exemple vous pouvez ajouter une condition pour bloquer l’extinction automatique.
Exemple avec la sortie :
IO_SENS_SORTIEETCellule1ETNONIO_Allumage_forcéOFFSpot1Spot2Spot3Spot4Spot5Spot6IO_SENS_SORTIE

et cette règle pour l’allumage forcé (sans chenillard)
IO_Allumage_forcéON/OFFSpot1Spot2Spot3Spot4Spot5Spot6

Ne pas oublier de désactiver IO_SENS_ENTREE et IO_SENS_SORTIE comme proposé.

Il faudra penser à désactiver la sortie de tous les délais, à défaut, utilisez des objets type impulsions avec TA=retard à l’allumage et TB pour une désactivation auto.

Remarque : avec le principe de la seconde cellule qui éteint tout, il y aura forcément des loupés si les 2 cellules sont coupées, mais pas par le même déclencheur (2ème véhicule, piéton, animal, …)
exemple : vous entrez et le chien passe la cellule 2 pour venir à votre rencontre : tout s’éteint

Il vaut mieux conditionner l’extinction des spots sur une temporisation :
Voici la prog :

//entrée sur terrain

  • Cellule1ETNONSpot1ETNONIO_Allumage_forcéONIO_SENS_ENTREEtempo_ecl.start
  • IO_SENS_ENTREEONDélai1.startDélai2.startDélai3.startDélai4.startDélai5.startDélai6.start
  • IO_SENS_ENTREEETDélai1.outputONSpot1
  • IO_SENS_ENTREEETDélai2.outputONSpot2
  • IO_SENS_ENTREEETDélai6.outputONSpot6

//sortie du terrain

  • Cellule2ETNONSpot6ETNONIO_Allumage_forcéONIO_SENS_SORTIEtempo_ecl.start
  • IO_SENS_SORTIEONDélai1.startDélai2.startDélai3.startDélai4.startDélai5.startDélai6.start
  • IO_SENS_SORTIEETDélai1.outputONSpot6
  • IO_SENS_SORTIEETDélai2.outputONSpot5
  • IO_SENS_SORTIEETDélai6.outputONSpot1

//extinction automatique

  • NONtempo_ecl.outputETNONIO_Allumage_forcéOFFSpot1Spot2Spot3Spot4Spot5Spot6IO_SENS_SORTIEIO_SENS_ENTREE
  • NONtempo_ecl.outputETNONIO_Allumage_forcéOFFDélai1.outputDélai2.outputDélai3.outputDélai4.outputDélai5.outputDélai6.output

//allumage forcé

  • IO_Allumage_forcéON/OFFSpot1Spot2Spot3Spot4Spot5Spot6
1 « J'aime »

Bonjour

Peut être utiliser deux objets Fader ( un pour chaque sens) et des comparateurs pour chaque spots.

-Une impulsion pour déclencher le sens de passage

-les comparateurs font le “chenillard” ( valeur fader = x allume spot y)

C’est juste une autre idée.

Bonne journée

1 « J'aime »

bien vu, c’est effectivement une autre solution fonctionnelle, la V5 permet d’aborder des problématiques sous plusieurs angles, grâce à ses diverses objets. Il existe toujours plusieurs solutions à un pb. Chacun peut ainsi choisir l’approche qui lui convient.
Cependant, une programmation avec analogiques est toujours un peu plus touchy (ça n’engage que moi). Dans votre exemple, il faut 12 comparateurs mais les règles seront sensiblement les mêmes qu’avec les Délais.

1 « J'aime »