OFS ET chaine de caractere

Forum traitant des automates industriels de marque Schneider - Telemecanique
ariana
Aguerri de l'automation
Aguerri de l'automation
Messages : 82
Enregistré le : 04 mai 2017, 09:58

Re: OFS ET chaine de caractere

Message par ariana »

j'ai pas compris ce que tu veux me dire , mon problème c que l'automate ne reçois aucune valeur ni ascii ni decimale ni quoi que ce soit .
je m'exlique ;d’après ce que j'ai testé:
etant donné que je peux ajouter que des @ de type mot/bit memoire (%MDX %MWX %MX) au client ofs
* si j’écris un entier/float par le client , le client autorise l'ecriture --> je peux lire la valeur au niveau du logiciel smachine basic
*si j'ecris un caractère par le client , le client n'autorise pas l'ecriture et m'affiche une erreur (quelque soit le type que je choisi : par exemple si je choisi le type short pour ecrire le caractere a->:erreur entrer un entier), au niveau de somachine la valeur ne change pas (l'automate n'a rien reçu)
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7167
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: OFS ET chaine de caractere

Message par itasoft »

slts,
tu dis : oui le ping marche en plus j'ai pu écrire des valeurs de type int et float

donc si sur OFS tu met la valeur décimale 16961 dans la variable d'adresse %MW50 de type short
tu reçois bien les caractères ascii "AB" dans %MW50 de l'automate ,
oui ou non ?
Automaticien privé (de tout)
itasoft@free.fr
ariana
Aguerri de l'automation
Aguerri de l'automation
Messages : 82
Enregistré le : 04 mai 2017, 09:58

Re: OFS ET chaine de caractere

Message par ariana »

Oui ça marche comme ça si je procède à la conversion ASCII Comme ceci
1.PNG
2.PNG
2.PNG (1.85 Kio) Vu 3293 fois
3.png
ariana
Aguerri de l'automation
Aguerri de l'automation
Messages : 82
Enregistré le : 04 mai 2017, 09:58

Re: OFS ET chaine de caractere

Message par ariana »

4.png
4.png (4.95 Kio) Vu 3293 fois

je peux lire des codes ascii si j'entre ses codes décimale par contre moi je veux faire entrer des code ascii directement dans le client ofs sans passer par le codage décimale
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7167
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: OFS ET chaine de caractere

Message par itasoft »

slts,
répondre à la question:
Tu veux écrire une chaîne de caractères dans une variable de l'automate
ou
Tu veux recevoir une chaîne de caractères qui arrive depuis l'automate
ou
les deux

???
Automaticien privé (de tout)
itasoft@free.fr
ariana
Aguerri de l'automation
Aguerri de l'automation
Messages : 82
Enregistré le : 04 mai 2017, 09:58

Re: OFS ET chaine de caractere

Message par ariana »

je veux ecrire une chaine de caractere dans une variable de l'automate via un client OPC D'une part puis lire cette valeur par un autre client Opc d'une autre part : en effet j'ai 2 clients ofs l'un pour l'ecriture et l'autre pour la lecture , le premier doit etre capable d'ecrire une chaine dans l'automate et l'autre doit lire cette valeur .
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7167
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: OFS ET chaine de caractere

Message par itasoft »

slts,

******* On ne peut pas faire ça sur SoMachine Basic et l’automate M221 **********

Car il ni as pas de variables de type String et de ce fait pas de traitement possible
Automaticien privé (de tout)
itasoft@free.fr
ariana
Aguerri de l'automation
Aguerri de l'automation
Messages : 82
Enregistré le : 04 mai 2017, 09:58

Re: OFS ET chaine de caractere

Message par ariana »

ok merci pour votre aide , malheureusement c'est ce que j'ai remarqué d'après mes tests mais j'ai dit peut être que j'ai mal programmé , mais normalement c l'ofs qui est incapable de le faire c'est pas le somachine vue que sur somachine je peux ecrire une chaine de caractère et la lire via la table d'animation mais je peux pas faire la meme chose par OFS pour le type string .
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7167
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: OFS ET chaine de caractere

Message par itasoft »

slts,
je veux ecrire une chaine de caractere dans une variable de l'automate via un client OPC
Réponse: pas possible ya pas de variables chaine de caracteres (String) sur SoMachine Basic
puis lire cette valeur par un autre client Opc
Réponse: Si on ne peut pas l'écrire , on ne peut pas la lire non plus.
A savoir:
Sur SoMachine Basic tu ne peux pas écrire une chaîne de caractère, tu peux écrire des caractères dans des mots %MW
ça te donne pas une variable String pour y faire du traitement du type comparaison ou autre

De même sur somachine basic tu peux recevoir des caractère ascii dans des mots %MW mais tu peux pas les mettre dans une variable du type String pour y faire du traitement du type comparaison ou autre

Ceci dit,
sur OFS en Visual Basic, ya toujours la méthode empirique et bestiale qui consiste à reconstituer la chaîne de caractères reçue depuis l’automate dans les mots %MW50 à %MW52
exemple :

Dim TXT As String
TXT = String(64, Chr(0))

Mid(TXT, 1) = Chr(MW50 And 255)
Mid(TXT, 2) = Chr(MW50 \ 256)

Mid(TXT, 3) = Chr(MW51 And 255)
Mid(TXT, 4) = Chr(MW51 \ 256)

Mid(TXT, 5) = Chr(MW52 And 255)
Mid(TXT, 6) = Chr(MW52 \ 256)

'Affichage de la chaîne de caractères
MsgBox (TXT)



même principe bestial dans l'autre sens
'Envoi de la chaine de caracteres "ABCDEF" dans les mots automate %MW50 à %MW52


TXT = "ABCDEF"
MW50 = Asc(Mid(TXT, 1)) Or Asc(Mid(TXT, 2)) * 256
MW51 = Asc(Mid(TXT, 3)) Or Asc(Mid(TXT, 4)) * 256
MW52 = Asc(Mid(TXT, 5)) Or Asc(Mid(TXT, 6)) * 256
Automaticien privé (de tout)
itasoft@free.fr
Répondre