Page 1 sur 1

Mise à l'heure API depuis panel.

Posté : 13 nov. 2017, 16:19
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

Re: Mise à l'heure API depuis panel.

Posté : 13 nov. 2017, 23:33
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

Re: Mise à l'heure API depuis panel.

Posté : 14 nov. 2017, 15:33
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 ;-)

Re: Mise à l'heure API depuis panel.

Posté : 14 nov. 2017, 18:08
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.

Re: Mise à l'heure API depuis panel.

Posté : 15 nov. 2017, 08:53
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 :( :( :(

Re: Mise à l'heure API depuis panel.

Posté : 15 nov. 2017, 09:52
par Valdub
Culpa Mia....

ça marche mieux comme ça. :D
Omron.png

Re: Mise à l'heure API depuis panel.

Posté : 15 nov. 2017, 11:43
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

Re: Mise à l'heure API depuis panel.

Posté : 15 nov. 2017, 19:24
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 !!

Re: Mise à l'heure API depuis panel.

Posté : 20 nov. 2017, 11:04
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