Chapter 4 Parameters
VFD-EL-W
4-85
Explanation of exception codes:
Exception code
Explanation
01
Illegal function code:
The function code received in the command message is not available for the AC
motor drive.
02
Illegal data address:
The data address received in the command message is not available for the AC
motor drive.
03
Illegal data value:
The data value received in the command message is not available for the AC
motor drive.
04
Slave device failure:
The AC motor drive is unable to perform the requested action.
10
Communication time-out:
If Pr.09.03 is not equal to 0.0, and Pr.09.02 = 0–2, and there is no communication
on the bus during the time-out detection period (Pr.09.03), the keypad displays
“cE10”.
7. Communication program for a PC:
The following is a simple example of how to write a communication program for Modbus ASCII mode on a
PC in the C language.
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<process.h>
#define PORT 0x03F8 /* the address of COM1 */
/* the address offset value relative to COM1 */
#define THR 0x0000
#define RDR 0x0000
#define BRDL 0x0000
#define IER 0x0001
#define BRDH 0x0001
#define LCR 0x0003
#define MCR 0x0004
#define LSR 0x0005
#define MSR 0x0006
unsigned char rdat[60];
/* read 2 data from address 2102H of AC drive with address 1 */
unsigned char tdat[60]={':','0','1','0','3','2','1','0',’2', '0','0','0','2','D','7','\r','\n'};
void main(){
int i;
outportb(PORT+MCR,0x08); /* interrupt enable */
outportb(PORT+IER,0x01); /* interrupt as data in */
outportb(PORT+LCR,(inportb(PORT+LCR) | 0x80));
/* the BRDL/BRDH can be access as LCR.b7==1 */
outportb(PORT+BRDL,12); /* set baudrate=9600, 12=115200/9600*/
outportb(PORT+BRDH,0x00);
outportb(PORT+LCR,0x06); /* set protocol, <7,N,2>=06H, <7,E,1>=1AH, <7,O,1>=0AH,
<8,N,2>=07H, <8,E,1>=1BH, <8,O,1>=0BH */
for(i=0;i<=16;i++){
while(!(inportb(PORT+LSR) & 0x20)); /* wait until THR empty */
outportb(PORT+THR,tdat[i]); /* send data to THR */ }
i=0;
while(!kbhit()){
if(inportb(PORT+LSR) & 0x01){ /* b0==1, read data ready */
rdat[i++]=inportb(PORT+RDR); /* read data form RDR */
} } }
09.05 Reserved