Ejemplo De Programación - Mitsubishi Electric FR-D700 Serie Instrucciones De Operación

Ocultar thumbs Ver también para FR-D700 Serie:
Tabla de contenido

Publicidad

Parámetros
Ejemplo de programación
Si son erróneos los datos del ordenador, el variador de frecuencia no los acepta. Prevea por ello
en el programa de aplicación, para el caso de un error, siempre un programa para la ejecución
de reintentos de comunicación.
Toda transmisión de datos, p.ej. de las instrucciones de funcionamiento o de funciones de
supervisión, tiene lugar después de una solicitud de comunicación del ordenador. Sin una
solicitud, el variador de frecuencia no envía ningún dato. Por ello, prevea en el programa una
solicitud para el registro de los datos.
En el siguiente ejemplo se representa el cambio al funcionamiento para la comunicación serie
de datos. El ejemplo de programación ha sido preparado empleando Microsoft
(Ver. 6.0).
#include <stdio.h>
#include <windows.h>
void main(void){
HANDLE
hCom;
DCB
hDcb;
COMMTIMEOUTS
hTim;
char
szTx[0x10];
char
szRx[0x10];
char
szCommand[0x10]; //Instrucción
int
nTx,nRx;
int
nSum;
BOOL
bRet;
int
nRet;
int
i;
//**** Abre el puerto COM1****
hCom = CreateFile ("COM1", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hCom != NULL) {
//**** Ajustes de comunicación del puerto 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) {
//**** Ajustes de timeout del puerto COM1****
Get CommTimeouts(hCom,&hTim);
hTim.WriteTotalTimeoutConstant = 1000;
hTim.ReadTotalTimeoutConstant = 1000;
SetCommTimeouts(hCom,&hTim);
//**** Pone la instrucción para cambiar el modo de funcionamiento del variador de la estación 1 al funcionamiento de red****
sprintf(szCommand,"01FB10000");
nTx = strlen(szCommand);
//**** Genera código de suma****
nSum = 0;
for (i = 0;i < nTx;i++) {
}
//**** Genera datos de envío****
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);
//**** Proceso de envío ****
if(nRet != 0) {
nRet = ReadFile(hCom,szRx,sizeof(szRx),&nRx,NULL);
//**** Proceso de recepción ****
}
}
CloseHandle(hCom);
}
}
Fig. 6-113: Ejemplo de programación
FR-D700 SC EC
//Handle comunicación
//Estructura para los ajustes de comunicación
//Estructura para los ajustes de timeout
//Búfer de envío
//Búfer de recepción
//Para los tamaños de búfer
//Para la calculación de las sumas de control
nSum += szCommand[i];
nSum &= (0xff);
if(nRet != 0) {
//**** Indica los datos recibidos ****
for(i = 0;i < nRx;i++) {
printf("%02X ",(BYTE)szRx[i]);//Salida en consola de los datos recibidos
//Visualiza el código ASCII en hexadecimal. Visualiza 30 con "0".
}
printf("\n\r");
}
Funcionamiento en modo de comunicación y ajustes
//Lee la información de comunicación actual
//Tamaño de la estructura
//Velocidad de transferencia = 19200 bps
//Longitud de datos = 8 bits
//Paridad par
//Bit de stop = 2 bits
//Pone los datos de comunicación modificados
//Lee el valor de timeout actual
//Timeout acceso de escritura 1 s
//Timeout acceso de lectura 1 s
//Pone el ajuste de timeout modificado
//Datos de envío (escribir funcionamiento de red)
//Tamaño datos de envío
//Initialisierung der Prüfsumme
//Calcula la suma de control
//Enmascara datos
//Inicialización del búfer de envío
//Inicialización del búfer de recepción
//ENQ Code+Datos de envío+Suma de control
//Longitud de datos de envío ENQ Code+Longitud datos de envío+Longitud suma de control
//Cerrar puerto de comunicación
®
®
Visual C++
6 - 213

Hide quick links:

Publicidad

Tabla de contenido
loading

Este manual también es adecuado para:

Fr-d720s sc ecFr-d740 sc ecFr-d700Fr-d720s ecFr-d740 ec

Tabla de contenido