Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMMUNICATION SERIE AVEC VARIATEUR EUROTHERM SSD590 (PROTOCOL EI - BISYNCH ASCII)


Information sur la source

Catégorie :Divers Classé sous : eibisynch, eurotherm, ssd, parker Niveau : Débutant Date de création : 16/04/2007 Date de mise à jour : 18/04/2007 04:07:48 Vu / téléchargé: 4 461 / 353

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Bonjour,
Voici une classe tres simple pour communiquer avec les variateurs eurotherm (nouveau nom SSD Drive).
Les essais ont ete fait sur un 590, mais les fonctions sont valable aussi sur 590, 590+, 690+, 605,650v, & 584SV et sans doute d'autre.
J'ai utilise le protocol EI - Bisynch sur le port 3 (RS232 d'origine). Mais cela fonctionne aussi sur le port 2 RS422, port le port 1 RS485, il faut prendre en compte que l'on va recevoir ce que l'on a emis.
On a un programme d'exemple de toutes les fonctions de communication, il faut choisir le mnemonic et l'adresse du variateur.
Dans la classe il y a aussi des fonctions classique pour la communication serie qui ne sont pas liees au protocol de communication. Si des choses ne sont pas claire ou si vous avez des remarques n'hesite pas.



 

Source

  • Voici les fonctions de la classe (
  • GID Group ID du variateur, UID Unit ID, C1 partie gauche du mnemonic, C2 partie droite du Mnemonic)
  • - Recoit n byte sur la liaison serie et returne si la lecture est effectue
  • bool ReceptionNchar(unsigned char* tampon,unsigned long ncount);
  • - Renvoie le nombre de byte dans le tampon de reception
  • DWORD CheckNBChar();
  • - Emet n byte sur la liaison serie et renvoie l'etat d'envoie
  • bool EmissionsNchar(unsigned char* trame,unsigned char longueur_chaine);
  • - Sous fonction d'analyse de la reponse suite a une demande de lecture
  • short ResponseOfReadFromSSD590(unsigned char *C1,unsigned char *C2,char *Str_Value, bool CheckMnemo);
  • - Lit un Mnemonic dans le variateur. La valeur lu est retourne dans Str_Value et la fonctionne retourne l'etat de la lecture
  • short ReadFromSSD590(unsigned char GID,unsigned char UID,unsigned char C1,unsigned char C2,char *Str_Value);
  • - Demande le meme Mnemonic que dans la derniere demade de lecture
  • short PollingParameterSSD590(unsigned char C1,unsigned char C2,char *Str_Value);
  • - Va lire les Mmemonic qui suivent la dernier demande de lecture.
  • short SequentialPollingSSD590(unsigned char *C1,unsigned char *C2,char *Str_Value);
  • - Ecrit une valeur dans le variateur.
  • short WriteToSSD590(unsigned char GID,unsigned char UID,unsigned char C1,unsigned char C2,char *Str_Value);
  • - Ecrit une valeur dans le variateur sans specifier son adress, soit en fait le dernier variateur interroge.
  • short WriteToSSD590WithoutAdress(unsigned char C1,unsigned char C2,char *Str_Value);
  • - Lit le Menmonic sur les erreurs de communication
  • short ReadErrorFromSSD590(unsigned char GID,unsigned char UID,char *Str_Value);
  • - Renvoie un message d'erreur pour un code d'erreur donne
  • char* ConvertErrorMSGSSD590(char *Str_Error);
  • - Remise a zero du registre d'erreur
  • short ResetErrorFromSSD590(unsigned char GID,unsigned char UID);
  • - Calcul le BCC (somme en Xor)
  • char CheckSumBCC(unsigned char* tampon,unsigned char ncount);
  • - compare le BCC calcule avec celui recu
  • bool TestCheckSumBCC(unsigned char* tampon,unsigned char ncount);
  • - configuration du port Serie
  • bool SetUp(char * com, DWORD vitesse, BYTE taille,BYTE parite, BYTE stop,DWORD inqueue,DWORD outqueue);
Voici les fonctions de la classe (
GID Group ID du variateur, UID Unit ID, C1 partie gauche du mnemonic, C2 partie droite du Mnemonic)
- Recoit n byte sur la liaison serie et returne si la lecture est effectue
   bool  ReceptionNchar(unsigned char* tampon,unsigned long ncount);
- Renvoie le nombre de byte dans le tampon de reception
   DWORD CheckNBChar();
- Emet n byte sur la liaison serie et renvoie l'etat d'envoie
   bool  EmissionsNchar(unsigned char* trame,unsigned char longueur_chaine);
- Sous fonction d'analyse de la reponse suite a une demande de lecture 
   short ResponseOfReadFromSSD590(unsigned char *C1,unsigned char *C2,char *Str_Value, bool CheckMnemo);
- Lit un Mnemonic dans le variateur. La valeur lu est retourne dans Str_Value et la fonctionne retourne l'etat de la lecture
   short ReadFromSSD590(unsigned char GID,unsigned char UID,unsigned char C1,unsigned char C2,char *Str_Value);
- Demande le meme Mnemonic que dans la derniere demade de lecture
   short PollingParameterSSD590(unsigned char C1,unsigned char C2,char *Str_Value);
- Va lire les Mmemonic qui suivent la dernier demande de lecture.
   short SequentialPollingSSD590(unsigned char *C1,unsigned char *C2,char *Str_Value);
- Ecrit une valeur dans le variateur.
   short WriteToSSD590(unsigned char GID,unsigned char UID,unsigned char C1,unsigned char C2,char *Str_Value);
- Ecrit une valeur dans le variateur sans specifier son adress, soit en fait le dernier variateur interroge.
   short WriteToSSD590WithoutAdress(unsigned char C1,unsigned char C2,char *Str_Value);
- Lit le Menmonic sur les erreurs de communication
   short ReadErrorFromSSD590(unsigned char GID,unsigned char UID,char *Str_Value);
- Renvoie un message d'erreur pour un code d'erreur donne
   char* ConvertErrorMSGSSD590(char *Str_Error);
- Remise a zero du registre d'erreur
   short ResetErrorFromSSD590(unsigned char GID,unsigned char UID);
- Calcul le BCC (somme en Xor)
   char  CheckSumBCC(unsigned char* tampon,unsigned char ncount);
- compare le BCC calcule avec celui recu
   bool  TestCheckSumBCC(unsigned char* tampon,unsigned char ncount);
- configuration du port Serie
   bool  SetUp(char * com, DWORD vitesse, BYTE taille,BYTE parite, BYTE stop,DWORD inqueue,DWORD outqueue);

Conclusion

Si j'ai le courage je ferai la meme chose, mais avec un thread et les evenements. Pour eviter la boucle d'attente de reception.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

18 avril 2007 04:07:48 :
ajout de commentaire

Commentaires et avis

signaler à un administrateur
Commentaire de mitch97 le 23/08/2007 20:53:17

slt, tu pourrais me dire avec quoi a été compilé cette source??

signaler à un administrateur
Commentaire de ludolechinois le 27/02/2008 22:13:11

J'utilise C++ Builder 6. Mais je pense que cela fonctionne egalement avec la version 5

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.