Page 1 sur 1

Comparer deux dates avec M221 et somachine Basic

Posté : 17 janv. 2017, 12:29
par philou77
Bonjour,

Je souhaite comparer deux dates (complètes avec les heures).
J'ai un M221 et somachine basic.

Ce dois être simple mais... je sèche

Merci de votre aide.

Re: Comparer deux dates avec M221 et somachine Basic

Posté : 17 janv. 2017, 14:00
par itasoft
slts,
deux dates ça veut rien dire, sous quel format sont ces dates et c’est pour comparer avec la date de l’automate ?

le mieux serait d'expliquer ce que tu veux faire .

Si c’est pour déclencher des actions en fonction de la date et l’heure ya le « Bloc horodateur qui fait ça »

Re: Comparer deux dates avec M221 et somachine Basic

Posté : 17 janv. 2017, 14:30
par philou77
Re !

Salut Itasoft.

Comparer deux dates :
IHM (HMIGTU) et Automate (M221).

Objectif, mettre Automate à l'heure automatiquement avec heure IHM.
Et cela pas en continu, seulement si dates différentes.

Re: Comparer deux dates avec M221 et somachine Basic

Posté : 17 janv. 2017, 21:37
par itasoft
Slts,
Disons qu’il faut récupérer dans l’automate la date/heure de IHM en décimal
La convertir en BCD dans le même format que les %SW51, %SW52, %SW53

EX :
IHM_MM = le mois sur IHM en décimal
IHM_JJ = le jour sur IHM en décimal
IHM_AA = l’année sur IHM en décimal
IHM_HH = l’heure sur IHM en décimal
IHM_MN = les minutes sur IHM en décimal

Opérations de conversion date/heure IHM en BCD
MOIS_BCD_IHM:=INT_TO_BCD(IHM_MM)
JOUR_BCD_IHM:=INT_TO_BCD(IHM_JJ)
ANNEE_BCD_IHM:=INT_TO_BCD(IHM_AA)
HEURE_BCD_IHM:=INT_TO_BCD(HM_HH)
MINUT_BCD_IHM:=INT_TO_BCD(IHM_MN)


Mois/Jour IHM au format %SW52
MOIS_JOUR_BCD:=SHL(MOIS_BCD_IHM,8) OR JOUR_BCD_IHM

Heures/Minutes IHM au format %SW51
HEURE_MINUT_BCD:= SHL(HEURE_BCD_IHM,8) OR MINUT_BCD_IHM

Comparer :
MOIS_JOUR_BCD avec %SW52
ANNEE_BCD_IHM avec %SW53
HEURE_MINUT_BCD avec %SW51

Re: Comparer deux dates avec M221 et somachine Basic

Posté : 18 janv. 2017, 00:29
par philou77
Re !

Merci Itasoft.

L'IHM transfert la date complète tout seul via la table de dialogue (format BCD, conversion déjà faite) donc :
Oui je compare les mots 1 par un, mais c'est pas très beau (c'est ce que j'avais fait), je cherchais une comparaison sur mot d'une table ou une instruction toute faite... mais bon je garde comme cela.

Encore merci de ton aide.

Re: Comparer deux dates avec M221 et somachine Basic

Posté : 18 janv. 2017, 05:22
par itasoft
slts,
dans ce cas tu copie ces variables dans deux tableaux et tu fais une comparaison de tableaux,
MDR
LOL
PL4

Re: Comparer deux dates avec M221 et somachine Basic

Posté : 18 janv. 2017, 10:48
par philou77
Re !

Oui Itasoft, mais la comparaison de tableau ne fonctionne que sur mot doubles ou flottant ;)
Il faut recopier les valeurs ailleurs, sortir les secondes et faire la comparaison sur deux mots doubles..
Je cherchais plus simple..;)

Merci quand même (j'ai égayé ta journée je crois :) )