Carte SD, .CSV et Omron NX ...

Forum traitant des automates industriels de marque Omron
MiGaNuTs
Codeur fou
Codeur fou
Messages : 236
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret

Carte SD, .CSV et Omron NX ...

Message par MiGaNuTs » 14 janv. 2020, 14:07

Bonjour a tous.

Je cherche a importer des données depuis un fichier .csv sur la carte SD d'un NX1P2xxx vers la mémoire du bouzin.

J'arrive a faire des trucs avec le FileOpen, puis a avoir des choses dans le FileGets, mais je n'arrive pas a en faire ce dont j'ai besoin.
Apparemment il y'a bien un moment ou j'ai quelquechose dans le Filegets.Our, mais je n'arrive pas a recopier la chaine de caractères en question ailleurs.
Je fait un move() faute d'avoir trouvé un genre de strcpy() mais ca ne semble pas fonctionner.
Est ce que quelqu'un aurait un bout de code qui manipule des fichiers .csv sous sysmac a me filer, histoire de m'en inspirer ?

Merci.

Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1033
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Carte SD, .CSV et Omron NX ...

Message par JC87 » 14 janv. 2020, 14:43

Bonjour,

Je n'ai jamais travaillé avec la nouvelle génération Omron donc je n'ai pas d'exemple sous la main. Par contre on trouve assez facilement une vidéo Youtube qui s'appelle "Tech Tip: Omron Programmable Controllers SD Card Functionality" et qui devrait pouvoir t'aider. Sinon sur le site français du support Omron il y a des exemples de programmes, peut être y-a-t'il ce que tu cherche : https://www.support-omron.fr/automatisa ... p?ref=NX1P

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."

philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1029
Enregistré le : 21 oct. 2015, 10:00

Re: Carte SD, .CSV et Omron NX ...

Message par philou77 » 14 janv. 2020, 15:33

Salut !

Pourquoi faire un move ?

FileGets est un bloc qui lit une ligne text, retire les caractères de fin et place son résultat dans sa sortie OUT !

tu places une variable sur OUT non ?
dans le le format texte, chaque caractère est codé sur un octet, donc un mot = 2caractères !
un move ne va aps suffire, sauf si tu transfère, depuis et vers les bonnes zones mémoires, le nombre de mots nécessaire à la longueur de ta chaine de caractère !

Si tu dois mettre la sortie OUT aiileurs, dans une autre variable par exemple, tu peux utiliser l'instruction LEFT par exemple...
Page 613 de ce manuel !
https://assets.omron.eu/downloads/manua ... ual_en.pdf

Si tu dois utiliser les caractères lus en variables numérique ! faut convertir avant (de string vers le format voulu )

amha
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D

MiGaNuTs
Codeur fou
Codeur fou
Messages : 236
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret

Re: Carte SD, .CSV et Omron NX ...

Message par MiGaNuTs » 14 janv. 2020, 16:47

Pour l'instant je veux juste lire mon fichier ligne par ligne, et le stocker dans un tableau de lignes de caractères.
Il me faudrait un genre de "strcpy", mais j'ai pas trouvé ça dans la doc. Je suppose que ca existe, mais je ne sait pas sous quel nom.
J'ai fouillé sur le site de support omron avant de poser la question ici, j'ai pas trouvé ce que je voulais.
Une fois mon tableau de lignes de caractères recu, je peu le parser ligne par ligne, le couper en p'tits bouts, etc...
j'ai pleins de colonnes, pas toutes du même type. j'ai des string, des real, des int, des bool. Bref, une recette quoi.

philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1029
Enregistré le : 21 oct. 2015, 10:00

Re: Carte SD, .CSV et Omron NX ...

Message par philou77 » 14 janv. 2020, 16:55

Re !

Si t’es données sont organisées, faut passer par filereadvar et pas ligne par ligne !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D

Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1033
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Carte SD, .CSV et Omron NX ...

Message par JC87 » 14 janv. 2020, 17:35

Je n'ai pas le son donc je ne sait pas ce que raconte le gars dans la vidéo dont j'ai parlé mais ce qu'il fait c'est lire des données de recette en csv sur une carte SD. A la fin de la vidéo, le gars met la carte dans le contrôleur et ensuite on voit en dynamique les valeurs qu'il avait mis dans son fichier sous Excel. C'est bien ce que tu veut faire non ?

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."

MiGaNuTs
Codeur fou
Codeur fou
Messages : 236
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret

Re: Carte SD, .CSV et Omron NX ...

Message par MiGaNuTs » 15 janv. 2020, 08:33

philou77 a écrit :
14 janv. 2020, 16:55
Re !

Si t’es données sont organisées, faut passer par filereadvar et pas ligne par ligne !
Le readfilevar ne lit que des int.
Mon .csv y'a du texte (déjà toute la première ligne, vu que c'est le titre des colonnes), et dans les datas j'ai des string, des float, des int, des bool et même potentiellement des trucs qui ne m'intéressent pas.
C'est pour ça que je veux d'abord lire mon fichier en entier. Comme ça je ensuite peut "jeter" ce dont j'ai pas besoin (la première ligne, et les éventuelles lignes vides ou incomplètes, les datas qui ne m'intéressent pas), puis couper le reste en morceaux et convertir dans les formats dont j'ai besoin.

JC87 a écrit :
14 janv. 2020, 17:35
Je n'ai pas le son donc je ne sait pas ce que raconte le gars dans la vidéo dont j'ai parlé mais ce qu'il fait c'est lire des données de recette en csv sur une carte SD. A la fin de la vidéo, le gars met la carte dans le contrôleur et ensuite on voit en dynamique les valeurs qu'il avait mis dans son fichier sous Excel. C'est bien ce que tu veut faire non ?

JC
C'est exactement ce que je veux faire, mais la vidéo sert juste au gars a vendre ses formations.
Il parle beaucoup mais en fait il ne dit rien, et surtout il ne donne jamais son code ...
Déjà tout le début de la vidéo ne sert qu'a faire joli. Du bon vieux marketing.

philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1029
Enregistré le : 21 oct. 2015, 10:00

Re: Carte SD, .CSV et Omron NX ...

Message par philou77 » 15 janv. 2020, 11:18

Salut !

Ok, je comprend, tes données sont organisées par ligne !

- Il te faut lire une ligne (en string)
- Puis extraire chaque donnée de cette ligne (string, int , double, real, etc..)

Regarde dans le lien que je t'ai donné page 644
- Instruction SubDelimiter fera ce que tu souhaites !

Bien sûr il te faudra autant d'instruction subdelimiter que tu auras de lignes 'Différentes' dans ton fichier !

- Il te faudra relire ton fichier de la même manière qu'il a été enregistré, tenir compte des lignes vides, etc...
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D

MiGaNuTs
Codeur fou
Codeur fou
Messages : 236
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret

Re: Carte SD, .CSV et Omron NX ...

Message par MiGaNuTs » 15 janv. 2020, 16:43

Bon, maintenant que j'ai compris que certains trucs pourtant écrits dans la doc omron ne fonctionnent pas, j'ai réussi a avancer pas mal.
En fait si je mets mon SubDelimiter sur la même ligne que le filegets, ça marche. Si je le mets a la ligne d'en dessous, après un -l l- sur 'chargefichier.done', comme dans la doc, ça ne marche pas.
Sans titre.png

philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1029
Enregistré le : 21 oct. 2015, 10:00

Re: Carte SD, .CSV et Omron NX ...

Message par philou77 » 15 janv. 2020, 18:11

Re !
MiGaNuTs a écrit :
15 janv. 2020, 16:43
Bon, maintenant que j'ai compris que certains trucs pourtant écrits dans la doc omron ne fonctionnent pas
hum, je suis septique, omron n'a pas pour habitude d'écrire des exemples non fonctionnels !
par contre ils sont.....compliqués des fois !

Ca marche pas, ça veut dire quoi ?

N'ayant ni automate ni sysmac studio, je vais pas pouvoir t'aider beaucoup !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D

Répondre