Exemple De Programmation - Mitsubishi Electric FR-E700SC Série Manuel D'utilisation

Variateur de fréquence
Masquer les pouces Voir aussi pour FR-E700SC Série:
Table des Matières

Publicité

Paramètres

Exemple de programmation

Si les données de l'ordinateur externe sont entachées d'erreur, le variateur de fréquence n'accepte
pas ces données. Prévoyez donc toujours pour le cas d'erreur dans le programme d'application, un
programme pour l'exécution d'essais de répétition.
Chaque transmission de données, par ex. des instructions de fonctionnement ou des fonctions de
contrôle est effectuée seulement après une demande de communication de l'ordinateur externe.
Sans une demande, le variateur de fréquence n'envoie aucune donnée. Prévoyez donc dans le pro-
gramme une demande pour la lecture des données.
L'exemple suivant présente la commutation dans le fonctionnement pour la communication de don-
nées série.L'exemple de programme a été réalisé en utilisant Microsoft
#include <stdio.h>
#include <windows.h>
void main(void){
HANDLE
hCom;
DCB
hDcb;
COMMTIMEOUTS
hTim;
char
szTx[0x10];
char
szRx[0x10];
char
szCommand[0x10];
int
nTx,nRx;
int
nSum;
BOOL
bRet;
int
nRet;
int
i;
//**** Ouvre COM1 Port****
hCom = CreateFile ("COM1", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hCom != NULL) {
//**** Configuration de la communication du port COM1 ****
GetCommState(hCom,&hDcb);
hDcb.DCBlength = sizeof(DCB);
hDcb.BaudRate = 19200;
hDcb.ByteSize = 8;
hDcb.Parity = 2;
hDcb.StopBits = 2;
bRet = SetCommState(hCom,&hDcb);
if (bRet == TRUE) {
//**** Configuration de la temporisation du port COM1****
Get CommTimeouts(hCom,&hTim);
hTim.WriteTotalTimeoutConstant = 1000;
hTim.ReadTotalTimeoutConstant = 1000;
SetCommTimeouts(hCom,&hTim);
//**** Spécifie l'instruction pour commuter le mode opératoire du variateur de la station 1 au fonctionnement via le réseau ****
sprintf(szCommand,"01FB10000");
nTx = strlen(szCommand);
//**** Génère le code de totalisation****
nSum = 0;
for (i = 0;i < nTx;i++) {
nSum += szCommand[i];
nSum &= (0xff );
}
//**** Génère les données à transmettre****
memset(szTx,0,sizeof(szTx));
memset(szRx,0,sizeof(szRx));
sprintf(szTx,"\5%s%02X",szCommand,nSum);
nTx = 1 + nTx + 2;
nRet = WriteFile(hCom,szTx,nTx,&nTx,NULL);
//**** Opération d'envoi ****
if(nRet != 0) {
nRet = ReadFile(hCom,szRx,sizeof(szRx),&nRx,NULL);
//**** Opération de réception ****
if(nRet != 0) {
//**** Affichage des données de réception ****
for(i = 0;i < nRx;i++) {
}
printf("\n\r");
}
}
}
CloseHandle(hCom);
}
}
Fig. 6-126:
Exemple de programmation
FR-E700SC EC
//Pointeur de communication
//Structure pour les configurations de la communication
//Structure pour les configurations de temporisation
//Tampon d'envoi
//Tampon de réception
//Instruction
//Pour les grandeurs tampon
//Pour le calcul des totaux de contrôle
//Lit les informations actuelles de communication
//Grandeur de la structure
//Vitesse de transmission = 19200 bps
//Longueur des données = 8 bits
//Parité paire
//Bit d'arrêt = 2 bits
//Spécifie les données de communication modifiées
//Lit la valeur actuelle de temporisation
//Temporisation d'accès d'écriture 1 s
//Temporisation d'accès de lecture 1 s
//Spécifie la configuration de temporisation modifiée
//Données à transmettre (écriture fonctionnement via le réseau)
//Grandeur des données à transmettre
//Initialisation du total de contrôle
//Calcule le total de contrôle
//Masque les données
//Initialisation du tampon d'envoi
//Initialisation du tampon de réception
//ENQ Code+données à transmettre+total de contrôle
//Longueur des données à transmettre ENQ Code+longueur des données à
transmettre+longueur du total de contrôle
printf("%02X ",(BYTE)szRx[i]);
//Sortie console des données de réception
//Représente le code ASCII en hexadécimal. Affichage 30 pour « 0 ».
//Fermer le port de communication
Mode de communication et réglages
®
®
Visual C++
(Ver. 6.0).
6 - 247

Publicité

Table des Matières
loading

Table des Matières