EasyManua.ls Logo

Fuji Electric FRENIC-VG Series - Program Example

Fuji Electric FRENIC-VG Series
346 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...
5-32
5.2.7.4 Program example
This program is written in Microsoft QuickBASIC (MS-DOS QBasic), and runs in accordance with
Fuji general-purpose inverter protocol.
100 'FGI-Bus Sample Program(MS-DOS QBasic)
110 '
120 OPEN "COM1:38400,E,8,1" FOR RANDOM AS #1 'ComPort:BaudRate,Parity,DataBits,StopBits
130 soh$ = CHR$(1) 'FunctionCode H34, H36, H35, H37
140 etx$ = CHR$(3)
150 enq$ = CHR$(5)
160 ack$ = CHR$(6)
170 nak$ = CHR$(&H15)
180 esc$ = CHR$(&H1B)
190 CLS
200 '
1000 PRINT "Select Operation 1:Read,2:Write"
1010 key$ = INKEY$
1020 IF key$ = "1" THEN 2000
1030 IF key$ = "2" THEN 3000
1040 GOTO 1010
1050 '
2000 '==== Read(F03) ==== 'Refarence User's Manual 6-19
2010 cmd$ = soh$ 'SOH
2020 cmd$ = cmd$ + "01" 'Address(01 - 31) FunctionCode: H31
2030 cmd$ = cmd$ + enq$ 'ENQ
2040 cmd$ = cmd$ + "R" 'Command(R,W,A,E)
2050 cmd$ = cmd$ + "F03" 'Code(F00...)
2060 cmd$ = cmd$ + " 0000" 'Data(0000 - FFFF)
2070 cmd$ = cmd$ + etx$ 'ETX
2080 GOTO 4000
2090 '
3000 '==== Write(F03:1500r/m) ==== 'Refarence User's Manual 6-19
3010 cmd$ = soh$ 'SOH
3020 cmd$ = cmd$ + "01" 'Address(01 - 31) FunctionCode: H31
3030 cmd$ = cmd$ + enq$ 'ENQ
3040 cmd$ = cmd$ + "W" 'Command(R,W,A,E)
3050 cmd$ = cmd$ + "F03" 'Code(F00...)
3060 cmd$ = cmd$ + " 05DC" 'Data(0000 - FFFF)
3070 cmd$ = cmd$ + etx$ 'ETX
3080 '
4000 '==== Send ====
4010 buf$ = cmd$
4020 GOSUB calcbcc
4030 cmd$ = cmd$ + bcc$ 'Add BCC
4040 '
4050 PRINT #1, cmd$ 'Send
4060 '
5000 '==== Receive ====
5010 recv$ = INPUT$(1, #1) 'Receive
5020 IF recv$ = soh$ THEN answer$ = ""
5030 answer$ = answer$ + recv$
5040 IF recv$ <> etx$ THEN 5010
5050 answer$ = answer$ + INPUT$(2, #1)
5060 PRINT "Received Data:"; answer$
5070 '
5080 PRINT "Hit any key (ESC -> End)"
5090 key$ = INKEY$
5100 IF key$ = "" THEN 5090
5110 IF key$ <> esc$ THEN 1000
5120 CLOSE #1
5130 END
5140 '
6000 calcbcc:
6010 b = 0
6020 c = 2
6030 char$ = MID$(buf$, c, 1)
6040 b = b + ASC(char$) 'Add
6050 c = c + 1
6060 IF char$ <> etx$ THEN 6030
6070 b = b AND &HFF
6080 bin = INT(b / 16)
6090 GOSUB bintoasc 'BCC1(8bit High)Character
6100 bcc$ = ascii$
6110 bin = b MOD 16
6120 GOSUB bintoasc 'BCC2(8bit Low)Character
6130 bcc$ = bcc$ + ascii$ 'BCC1+2(Character)
6140 RETURN
6150 '
7000 bintoasc: 'Digit"0 - 15" to Character"0 - F"
7010 IF bin < 10 THEN ascii$ = CHR$(ASC("0") + bin) ELSE ascii$ = CHR$(ASC("A") + bin - 10)
7020 RETURN

Table of Contents

Related product manuals