|
Fics-III/Fics-IV Programming Language
|
| |
|
Features
|
| |
|
Basic System Setting Commands
|
| |
|
Basic Programming Commands
|
| |
|
List of Commands
|
| |
|
Motion Control Commands
Flow Control and I/O Control Commands
|
| |
|
Tips
|
| |
|
Palletizing Programming
|
| |
|
Fics-PT Option
|
| |
|
Applications
|
| |
|
Pick and Place
Coil Winding
Palletizing
Interpolation
|
| |
|
|
| |
|
Features
|
| |
|
Multi-tasking (8 tasks)
Up to 16 axes servo control (simultaneous start)
Point-to-point control with +/- 1 pulse accuracy
High-speed communication with drives (RS485@625kbps, RS422@2.5Mbps)
3D linear and 2D arc&circular interpolation
Support incremental (10,000P/R) and 17 bits absolute encoders (32,768 P/R)
Basic-like easy programming robot language
96 variables for arithmetic
96 system variables for system customization
96 flags for arithmetic and task communication
96 monitor variables for production management
Palletizing & matrix functions
Coil winding software
Tree-structured commands
Easy I/O operation (manual I/O operation)
I/O Check
Programmable homing sequence
Windows based and menu-driven programming software WinFics
Easy interface with Dynaservo touch screen and terminals
User programming in natural languages
EEPROM for program and parameter save
|
| |
|
|
| |
|
Basic System Setting Commands
|
| |
|
|
| |
|
|
| |
|
Basic Programming Commands
|
| |
|
|
| |
|
|
| |
|
Motion Control Commands
|
| |
|
| ORIGIN |
perform homing of the specified axes, one axis at a time or
simultaneously |
| PTP . ABS |
move to the specified absolute position |
| PTP . INC |
move to the specified incremental position |
| PTP -> ABS |
move to the specified absolute position but can excute the
next command which follows without waiting for the completion of this PTP |
| PTP -> INC |
move to the specified incremental position but can excute
the next command which follows without waiting for the completion of the
current PTP |
| SPEED |
specify the speed of the next PTP command |
| IN-AXIS |
set the current position of axes into VARiables |
| TASK |
start the excution of a task program |
| CALL |
excute a sub-program or a matrix program |
| PALLET CLEAR |
point to the starting position of the palletizing matrix. |
| PALLET CHECK |
check the completion of the palletizing matrix |
| PALLET |
excute the palletizing program by one step |
| MATRIX |
specify the type of the palletizing matrix |
| TYPE-A |
fetch type-A table data |
| TYPE-B |
fetch type-B table data |
| TYPE-C |
fetch type-C table data |
| TABLE |
create table data |
| LINE |
2-D linear interpolation |
| LINE-3 |
3-D linear interpolation |
| LINE-4 |
4-D linear interpolation |
| ARC |
2-D arc interpolation |
| CIRCLE |
2-D circular interpolation |
| COIL |
coil winding by specifying tranverse width, pitch and turns |
| VP-SPD |
variable pitch coil winding |
| BIND |
coil winding with binding (tie-up) |
| TRACK |
coil winding for any 2-D shapes of coils |
|
| |
|
|
| |
|
Flow Control and I/O Control Commands
|
| |
|
| IF DI :nn-m THEN GOTO |
branches if the specified DI bit turns ON or OFF |
| IF VARnn THEN GOTO |
branches if the specified VARIABLE satisfies certain
conditions |
| IF FLAGnn THEN GOTO |
branches if the specified FLAG is 1 or 0 |
| IF DO:nn-m THEN GOTO |
branches if the specified DO bit turns ON or OFF |
| IF DI:nn-m THEN STOP MOVING |
stops PTP if the specified DI bit turns ON or OFF |
| IF MONnn THEN GOTO |
branches if the specified MONITOR variable satisfies certain
conditions |
| REPEAT JUMP ** TIMES TO STEP *** |
repeats ** times to the specified program step *** |
| GOTO STEP |
jumps unconditionally to the specified program step |
| OUT |
turns ON or OFF the specified digital output bit |
| ATOM-DI |
inputs the DI bit of the Atoms-MFB module |
| ATOM-DO |
outputs the DO bit of the Atoms-MFB module |
| ATOM-AI |
reads the analog inputs of the Atoms-MFB module |
| ATOM-AO |
writes to the analog outputs of the Atoms-MFB module |
| VAR |
performs arithmetic operation of VARIABLEs |
| VARnn = LOW (HIGH, BCD) DI:?? |
input the lower 4 bit (higher 4 bits, BCD) of the specified DI channel |
| MONnn |
operations of MONitor variables |
| FLAG |
assigns 1 or 0 to FLAGs |
| TIMER START MONnn |
start MONitor variable timer |
| TIMER STOP MONnn |
stop MONitor variable timer |
| REM |
remarks |
| MESSAGE |
outputs messages |
| NOP |
no operation |
|
| |
|
|
| |
|
Tips
|
| |
|
- 999 programs
- 2000 steps in total
- No.999 specifies homing sequence
- No.998: System task, automatic start at power-on
- support 8 tasks
- divided into main program area and subprogram area: 0-99: main program,
100-997 subprogram by default.
- communication between tasks: using FLAG variables
- start tasks: TASK nnn START, "nnn" must be a subprogram.
- "CALL", "PALT", "STOP by DI" commands cannot be used in task programs.
Other commands OK.
- Task programs (except 998) stop when main program stops.
- Programs and parameters are memorized in SRAM which are battery-backuped
(3 years), but can be saved in FLASH memory.
- 96 variables for programming use (VAR01-VAR96, VAR96 is used by system)
- Arithmetic:
| VARnn = CONST or VARmm |
| VARnn = VARmm CONST or VARii |
| VARnn = VARmm - CONST or VARii |
| VARnn = VARmm * CONST or VARii |
| VARnn = VARmm / CONST or VARii |
| VARnn = BCD DI:xx |
- VARnn can only be substituted by integers
- For PTP using VARnn, VARnn corresponds to the pulse number.
- 96 Monitor variables used for production management
| Variable No. |
Description |
Unit |
| MON80 |
(system use: Power-ON timer) |
1 sec |
| MON81 |
(system use: automatic opertion time) |
1 sec |
| MON82 |
(system use: 1 cycle duct time) |
1 sec |
| MON83 |
(system use: unused) |
|
| MON84 |
(system use: decrement timer) |
10 msec |
| MON85 |
system use: decrement timer) |
10 msec |
| MON86 |
(system use: decrement timer) |
10 msec |
| MON87 |
(system use: increment timer) |
10 msec |
| MON88 |
(system use: increment timer) |
10 msec |
| MON89 |
(system use: increment timer) |
10 msec |
| MON90 |
(system use: reserved) |
|
| MON91 |
(system use: reserved) |
|
| MON92 |
(system use: reserved) |
|
| MON93 |
(system use: reserved) |
|
| MON94 |
(system use: for I/O wait command) |
|
| MON95 |
(system use: for I/O wait command) |
|
| MON96 |
(system use: for I/O wait command) |
|
|
| |
|
|
| |
|
Pick and Place
|
| |
|
|
| |
|
|
| |
|
001: PTP ABS X=0mm, Y=0mm, Z=0mm
002: IF IN 03-01 = OFF THEN GOTO 002
003: PTP ABS Y = +15mm
004: PTP ABS Z = +30mm
005: OUT 05-01 = ON
006: PTP ABS Z = +0mm
007: PTP ABS Y = +0mm
008: PTP ABS X = +200mm
009: PTP ABS Y = +15mm
010: PTP ABS Z = +30mm
011: OUT 05-01 = OFF
012: PTP ABS Z = +0mm
013: PTP ABS Y = +0mm
014: PTP ABS X = +0mm
015: GOTO 002
016: END
|
| |
|
|
| |
|
Coil Winding
|
| |
|
|
| |
|
|
| |
|
PGM=001
001: VAR80 = 0
002: PTP ABS X = +70mm
003: CALL 800
004: PTP INC Y = +40
005: VAR80 = VAR80 + 1
006: IF VAR80 < 9 THEN GOTO 003
007: PTP ABS X = +50mm
008: END
PGM = 800
001: LAYER p = +0.1mm 25T L = 6
002: END
|
| |
|
|
| |
|
Palletizing
|
| |
|
PGM=002
| 0001 PTP . ABS +0000.00 +0000.00 +0000.00 |
PTP move to home |
| 0002 CALL 200 |
call pallet matrix 200 |
| 0003 OUT 01-7:ON |
pick up object (assume ON/OFF switch is connected to bit 7) |
| 0004 PTP . ABS +0050.00 +0050.00 +0010.00 |
PTP move in absolute coordinate |
| 0005 CALL 201 |
call pallet matrix 201 |
| 0006 OUT 01-7:OFF |
place object |
| 0007 TIMER = 01.00sec |
wait for 1 second |
| 0008 GOTO 0001 |
goto step 1 |
| 0009 END |
|
PGM=200
| 0001 MATRIX G81INC X=0010.00 Y=0010.00 Xn=04
Ym=03 |
4 row and 3 column matrix of the type G81 |
| 0002 END |
|
PGM=201
| 0001 MATRIX G84INC X=0020.00 Y=0020.00
Xn=04 Ym=03 |
4 row and 3 column matrix of the type G84 |
0002 END |
|
|
| |
|
|
| |
|
Interpolation
|
| |
|
Write a "D" letter using linear and arc interpolations.
PGM=001
| 0001 REM Demostration the LINE and ARC
commands |
Remark |
| 0002 ORIGIN (XY) |
Homing XY axes |
| 0003 PTP . ABS +0010.00 +10.00 |
PTP move to the absolute position |
| 0004 LINE INC e:+0000.00 +0020.00 V=01 |
Linear interpolation (V stands for speed no.) |
0005 ARC INC c:+0020.00 +0010.00 V=01
e:+0000.00 +0000.00 |
Arc interpolation |
| END |
|
|