Mise à l'heure API depuis panel.

Forum traitant des automates industriels de marque Omron
valerypetit
Forcené des structures
Forcené des structures
Messages : 157
Inscription : 24 janv. 2016, 21:47

Mise à l'heure API depuis panel.

Message par valerypetit »

Bonjour

Débutant sur Omron, j'aurai voulu avoir votre avis sur la meilleur méthode pour mettre à l'heure mon API CJ2 depuis le panel.

je suis embêté par le format des mots :

A351 > DINT > MIN SEC
A352 > DINT > DATE HEURE
A353 > DINT > Année Mois

j'ai déjà un bloc qui sépare le tout pour l'utiliser dans le programme mais je ne vois pas trop comment faire l'inverse.
j'ai déjà passé pas mal de temps dessus et suis malgré tout dans le flou total donc votre aide serait la bienvenue.

pour info, j'utilise un panel KEP 7097 en Fins/TCP

Merci à vous
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Mise à l'heure API depuis panel.

Message par philou77 »

Salut,

place toutes tes valeurs dans des INT dans l'ihm...
utilise MOVD ( transferer n bits depuis Source position A vers Source position B) dans automate pour transférer les 8 premiers bit des INT A la bonne place dans des INT qui se suivent dans l'automate.
ET utilise l'instruction DATE pour mettre à l'heure l'automate !

Ton IHM peut utiliser l'horloge de l'automate ou la sienne ... tu peux spécifier cela dans l'onglet paramètres/Modèle
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Valdub
Code sa première boucle
Code sa première boucle
Messages : 11
Inscription : 04 nov. 2016, 13:33

Re: Mise à l'heure API depuis panel.

Message par Valdub »

Bonjour

Merci Philou77 pour ta réponse

Je suis désolé, petit problème d'identifiant. j'arrive donc avec un nouveau compte.

Bon je me suis fais un bloc en suivant tes explications.
Je fais les MOVD à l'intérieur, puis sort les résultats pour pouvoir faire un DATE (test fait également hors bloc pour les MOVD)

Pour transférer mes deux digits seconde vers le mot "minute_Seconde" j'utilise la valeur 010 dans le mot de contrôle
et pour les minutes, j'utilise la valeur 210

dans la théorie ça a l'air super simple, mais en simu c'est moins ça....

Image

j'ai fait une erreur???

Ps : ne prend pas en compte le /EN devant le bloc des minute, c’était un test.

Merci pour ton aide en tout cas ;-)
Pièces jointes
Omron.png
Avatar de l’utilisateur
josé
Codeur fou
Codeur fou
Messages : 263
Inscription : 20 oct. 2015, 17:02

Re: Mise à l'heure API depuis panel.

Message par josé »

bonsoir.
Bizarre les valeurs d'entrées, en Hexa il y en a une égale a #C , je pensais que en Omron travaillais en BCD.
Créateur de pannes ...
Valdub
Code sa première boucle
Code sa première boucle
Messages : 11
Inscription : 04 nov. 2016, 13:33

Re: Mise à l'heure API depuis panel.

Message par Valdub »

salut José,

Oui j'avais remarqué. je ne savais pas que Omron travaillait plutôt en BCD.

Dans la doc, le MOVD a besoin d'un mot source S "WORD" et de mot de control et de destination "UINT".

Après ça n'est pas proposé lors de la création de variables dans des blocs, mais si je le fait dans symboles, il y a un type de variable "UINT_BCD" qui est proposé.....

je ne sais pas si c'est ça qui bloque, mais c'est chelou :( :( :(
Valdub
Code sa première boucle
Code sa première boucle
Messages : 11
Inscription : 04 nov. 2016, 13:33

Re: Mise à l'heure API depuis panel.

Message par Valdub »

Culpa Mia....

ça marche mieux comme ça. :D
Omron.png
Valdub
Code sa première boucle
Code sa première boucle
Messages : 11
Inscription : 04 nov. 2016, 13:33

Re: Mise à l'heure API depuis panel.

Message par Valdub »

Dernière petite question,
dans la doc de la fonction "DATE" il y a un paragraphe:"Applicable Program Area" avec un petit Ok Sous chaques Area, y complis:
- Fonction block definitions
- Block program area

du coup je me dis que ce que j'avais essayé de faire au début, (Mettre le date dans mon bloc fonction) doit être faisable tout compte fait :D

je viens de tâtonner plusieurs solutions "DDT en entrée Sortie", Mot internet LWord,.... sans résultat.....

ça n'est pas vital mais vu que c'est un bloc voué à être utilisé sur d'autre projets j'aimerai bien le finaliser pour être tranquille ensuite.

Encore Merci Pour votre aide

Valery
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Mise à l'heure API depuis panel.

Message par philou77 »

Salut !

Le 'Applicable Program Area' te donne la liste de toutes les sections ou la fonction peut être utilisée.

La date est bien en BCD (ça revient à écrire en hexa sur 4 quartets cf 16#0420 = 4 Minutes et 20 secondes en BCD)

Name Addresses Function
Clock data:
A351 to A354
A351.00 to A351.07 Second: 00 to 59 (BCD)
A351.08 to A351.15 Minute: 00 to 59 (BCD)
A352.00 to A352.07 Hour: 00 to 23 (BCD)
A352.08 to A352.15 Day of the month: 00 to 31 (BCD)
A353.00 to A353.07 Month: 00 to 12 (BCD)
A353.08 to A353.15 Year: 00 to 99 (BCD)
A354.00 to A354.07 Day of the week:
00: Sunday, 01: Monday,
02: Tuesday, 03: Wednesday,
04: Thursday, 05: Friday, 06: Saturday

Tu peux faire un bloc fonction paramétré si tu veux,
Le plus simple serait de mettre des uint (BCD) en entrée de ton bloc, comme cela pas de conversion à faire (simplement paramétrer ta variable et la saisie du pupitre en 16Bit BCD) , puis juste les transferts pour concaténation et enfin la mise à l'heure.

Attention car une mise à une date erronée de la CPU ne provoque pas d'erreur !!
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Valdub
Code sa première boucle
Code sa première boucle
Messages : 11
Inscription : 04 nov. 2016, 13:33

Re: Mise à l'heure API depuis panel.

Message par Valdub »

Salut Philou77

Merci beaucoup pour ta réponse,
Effectivement, il faut tout mettre en BCD pour que ce soit plus symple
Panel: 16 bit BCD
entrée bloc: UInt_BCD
Sortie Bloc: Uint_BCD

je n'ai pas encore mis la fonction date dans le bloc, je ferai un essai quand j'aurai plus de temps.

bonne semaine à tous

Valery
Répondre