Mise à l'heure API depuis panel.
-
- Forcené des structures
- Messages : 159
- Enregistré le : 24 janv. 2016, 21:47
Mise à l'heure API depuis panel.
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
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
-
- Mi homme - Mi automate
- Messages : 2079
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Mise à l'heure API depuis panel.
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
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 !
Re: Mise à l'heure API depuis panel.
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....
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
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....
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.
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.
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 ...
Re: Mise à l'heure API depuis panel.
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
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.
Culpa Mia....
ça marche mieux comme ça.
ça marche mieux comme ça.
Re: Mise à l'heure API depuis panel.
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
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
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
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
-
- Mi homme - Mi automate
- Messages : 2079
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Mise à l'heure API depuis panel.
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 !!
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 !
Re: Mise à l'heure API depuis panel.
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
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