EasyManua.ls Logo

Mitsubishi FR-A800

Mitsubishi FR-A800
746 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
(N) Operation via communication and its settings
572
PARAMETERS
Instructions for the program
When data from the computer has any error, the inverter does not accept that data. Hence, in the user program, always
insert a retry program for data error.
All data communication, for example, run command or monitoring, are started when the computer gives a communication
request. The inverter does not return any data without the computer's request. Hence, design the program so that the
computer gives a data read request for monitoring, etc. as required.
Program example: To switch to the Network operation mode
Microsoft
Visual C++
(Ver.6.0) programming example
#include <stdio.h>
#include <windows.h>
void main(void){
HANDLE hCom; // Communication handle
DCB hDcb; // Structure for setting communication settings
COMMTIMEOUTS hTim; // Structure for setting timeouts
char szTx[0x10]; // Send buffer
char szRx[0x10]; // Receive buffer
char szCommand[0x10];// Command
int nTx,nRx; // For storing buffer size
int nSum; // For calculating sum code
BOOL bRet;
int nRet;
int i;
//Open COM1 port 
hCom = CreateFile("COM1", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hCom != NULL) {
//Set COM1 port communication 
GetCommState(hCom,&hDcb); // Get current communication information
hDcb.DCBlength = sizeof(DCB); // Structure size setting
hDcb.BaudRate = 19200; // Communication speed = 19200 bps
hDcb.ByteSize = 8; // Data length = 8 bits
hDcb.Parity = 2; // Parity check at even numbers
hDcb.StopBits = 2; // Stop bit = 2 bits
bRet = SetCommState(hCom,&hDcb); // Setting of changed communication information
if(bRet == TRUE) {
// Set COM1 port timeout 
GetCommTimeouts(hCom,&hTim); // Get current timeout values
hTim.WriteTotalTimeoutConstant = 1000; // Write timeout 1 second
hTim.ReadTotalTimeoutConstant = 1000; // Read timeout 1 second
hTim.ReadTotalTimeoutConstantSetCommTimeouts(hCom,&hTim);// Setting of changed timeout values
// Setting of command for switching the station number 1 inverter to the Network operation mode 
sprintf(szCommand,"01FB10000"); // Send data (NET operation write)
nTx = strlen(szCommand); // Send data size
// Generate sum code 
nSum = 0; // Initialize sum data
for(i = 0;i < nTx;i++) {
nSum += szCommand[i]; // Calculate sum code
nSum &= (0xff); // Mask data
}
// Generate send data 
memset(szTx,0,sizeof(szTx)); // Initialize send buffer
memset(szRx,0,sizeof(szRx)); // Initialize receive buffer
sprintf(szTx,"\5%s%02X",szCommand,nSum);// ENQ code + send data + sum code
nTx = 1 + nTx + 2; // ENQ code + number of send data + number of sum codes
nRet = WriteFile(hCom,szTx,nTx,&nTx,NULL);
// Send 
if(nRet != 0) {
nRet = ReadFile(hCom,szRx,sizeof(szRx),&nRx,NULL);
// Receive 
if(nRet != 0) {
// Display receive data 
for(i = 0;i < nRx;i++) {
printf("%02X ",(BYTE)szRx[i]);// Output received data to console
// Display ASCII code in Hexadecimal' In case of 0', "30" is displayed.
}
printf("\n\r");
}
}
}
CloseHandle(hCom); // Close communication port
}
}

Table of Contents

Related product manuals