[Unity Pro 12] conversion d'un tableau d'entiers en type DT

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Laurent
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 125
Enregistré le : 20 oct. 2015, 11:16
Localisation : Oise et Ile-de-France / France

[Unity Pro 12] conversion d'un tableau d'entiers en type DT

Message par Laurent »

Bonjour,

Dans un programme de M580, je veux convertir un tableau d'entiers contenant la date et l'heure en format BCD, en type DT, pour passer le résultat en entrée de la fonction WRTC_DT().
Le code :

Code : Tout sélectionner

nouv_date[ 1 ] := word_to_int( API_S_entrees[ 5 ] );
nouv_date[ 2 ] := word_to_int( API_S_entrees[ 6 ] );
nouv_date[ 3 ] := word_to_int( API_S_entrees[ 7 ] );
nouv_date[ 4 ] := word_to_int( API_S_entrees[ 8 ] );
(*nouv_date : tableau défini comme ARRAY [ 1..4 ] OF INT *)
(* API_S_entrees : tableau défini comme ARRAY [0..9] OF WORD *)

nouv_dt := ARINT_TO_DT( IN := nouv_date );
(* nouv_dt est définie comme une variable de type DT *)

(* l'objectif étant de pouvoir enchainer sur ceci : *)
WRTC_DT( IN := nouv_dt );
Pour la fonction ARINT_TO_DT(), Unity Pro indique une erreur "E1208: l"utilisation des tableaux dynamiques est inhibée".

Je ne comprends pas cette erreur:
- qu'est-ce qu'un tableau dynamique ?
- pourquoi nouv_date, telle que définie ci-dessus, est-elle vue comme un tableau dynamique (je ne vois pas ce qu'il y a de dynamique, la taille est fixée, le type des éléments aussi) ?

Bien sûr, dans les options du projet, je peux activer l'option Autoriser les tableaux dynamiques (ANY_ARRAY_XXX), mais si cette option est désactivée parce que imposé par le client, comment s'en sortir ?
Laurent
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: [Unity Pro 12] conversion d'un tableau d'entiers en type DT

Message par itasoft »

slts,
essayer ça:

DTX:=ARINT_TO_DT(mouv_date);
(* DTX défini comme type DT *)

(* l'objectif étant de pouvoir enchainer sur ceci : *)
WRTC_DT(DTX);
Automaticien privé (de tout)
itasoft@free.fr
Laurent
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 125
Enregistré le : 20 oct. 2015, 11:16
Localisation : Oise et Ile-de-France / France

Re: [Unity Pro 12] conversion d'un tableau d'entiers en type DT

Message par Laurent »

En fait, je crois comprendre que le problème ne vient pas de mes variables, mais de l'EF ARINT_TO_DT() : le type de données du paramètre IN est ANY_ARRAY_XXX, c'est donc lui qui travaille avec un tableau dynamique.

Donc, pas 36 solutions :
soit on active la gestion des tableaux dynamiques pour pouvoir utiliser les fonctions élémentaires qui travaillent avec,
soit on se paluche la conversion de type à l'ancienne.

J'ai activé la gestion des tableaux dynamiques, ça me paraît plus propre de travailler avec les EF plutôt que de bidouiller avec un DFB perso juste pour ça.
Merci quand même de ton attention, itasoft.
Laurent
Répondre