Hi everybody
Here what I know about starting an ABB robot.
Basically, the robot is started with system I/O.
Following details are relative to a C4G+ controller. If you’re using an IRC5 you will probably need to modify the code a little bit.
First, you’ll need to modify your EIO.CFG. You need to define a simulated board:
EIO_UNIT:
-Name “System” -Type “eip000” -Bus “SIM”
-Digin 32 -Digout 32 -PollRate 500
Next, you need some signals:
EIO_USER_SIGNAL = EIO_SIGNAL:
-Name “DOSYS_MOTORON” -Type “DO” -Unit “System” -Phsig 1
-Name “DOSYS_MOTONST” -Type “DO” -Unit “System” -Phsig 2
-Name “DOSYS_MOTOROFF” -Type “DO” -Unit “System” -Phsig 3
-Name “DOSYS_MOTOFFST” -Type “DO” -Unit “System” -Phsig 4
-Name “DOSYS_CYCLEON” -Type “DO” -Unit “System” -Phsig 5
-Name “DOSYS_AUTOON” -Type “DO” -Unit “System” -Phsig 6
-Name “DOSYS_RUNCHOK” -Type “DO” -Unit “System” -Phsig 7
-Name “DOSYS_ERROR” -Type “DO” -Unit “System” -Phsig 8
-Name “DOSYS_STOPEM” -Type “DO” -Unit “System” -Phsig 9
-Name “DOSM_SELFSTART” -Type “DO” -Unit “System” -Phsig 10
-Name “DOSM_SELFSTMAIN” -Type “DO” -Unit “System” -Phsig 11
-Name “DOSM_SELFSTOP” -Type “DO” -Unit “System” -Phsig 12
-Name “DOSM_SELFMOTON” -Type “DO” -Unit “System” -Phsig 13
-Name “DOSM_SELFMOTOFF” -Type “DO” -Unit “System” -Phsig 14
-Name “DOSM_SELFSTCYC” -Type “DO” -Unit “System” -Phsig 15
-Name “DOSM_SELFSTINST” -Type “DO” -Unit “System” -Phsig 16
-Name “DOSM_SELFRSTERR” -Type “DO” -Unit “System” -Phsig 17
-Name “DISYS_MOTORON” -Type “DI” -Unit “System” -Phsig 1
-Name “DISYS_MOTONSTART” -Type “DI” -Unit “System” -Phsig 2
-Name “DISYS_MOTOROFF” -Type “DI” -Unit “System” -Phsig 3
-Name “DISYS_START” -Type “DI” -Unit “System” -Phsig 4
-Name “DISYS_STARTMAIN” -Type “DI” -Unit “System” -Phsig 5
-Name “DISYS_STOP” -Type “DI” -Unit “System” -Phsig 6
-Name “DISYS_QUICKSTOP” -Type “DI” -Unit “System” -Phsig 7
-Name “DISYS_STOPINSTR” -Type “DI” -Unit “System” -Phsig 8
-Name “DISYS_STOPCYCLE” -Type “DI” -Unit “System” -Phsig 9
-Name “DISYS_SYSRESET” -Type “DI” -Unit “System” -Phsig 10
-Name “DISYS_INTERRUPT” -Type “DI” -Unit “System” -Phsig 11
-Name “DISYS_RESETERROR” -Type “DI” -Unit “System”
-Phsig 12
-Name “DISYS_RESETESTOP” -Type “DI” -Unit “System”
-Phsig 13
Then, define DOSYS and DISYS signals as system signals
SYSSIG_IN:
-Signal “DISYS_MOTORON” -Action “MotorOn”
-Signal “DISYS_MOTONSTART” -Action “MotOnStart”
-Signal “DISYS_MOTOROFF” -Action “MotorOff”
-Signal “DISYS_START” -Action “Start”
-Signal “DISYS_STARTMAIN” -Action “StartMain”
-Signal “DISYS_STOP” -Action “Stop”
-Signal “DISYS_QUICKSTOP” -Action “QuickStop”
-Signal “DISYS_STOPINSTR” -Action “StopInstr”
-Signal “DISYS_STOPCYCLE” -Action “StopCycle”
-Signal “DISYS_SYSRESET” -Action “SysReset”
-Signal “DISYS_INTERRUPT” -Action “Interrupt”
-Signal “DISYS_RESETERROR” -Action “ResetError”
-Signal “DISYS_RESETESTOP” -Action “ResetEstop”
SYSSIG_OUT:
-Status “MotorOn” -Signal “DOSYS_MOTORON”
-Status “MotOnState” -Signal “DOSYS_MOTONST”
-Status “MotorOff” -Signal “DOSYS_MOTOROFF”
-Status “MotOffState” -Signal “DOSYS_MOTOFFST”
-Status “CycleOn” -Signal “DOSYS_CYCLEON”
-Status “AutoOn” -Signal “DOSYS_AUTOON”
-Status “RunchOk” -Signal “DOSYS_RUNCHOK”
-Status “Error” -Signal “DOSYS_ERROR”
-Status “EmStop” -Signal “DOSYS_STOPEM”
Even if you don’t need to start remotely your robot, SYS signals are useful to determine the state of your robot in the program, especially in parallel tasks.
Now, cross simulated DOSM outputs to DISYS inputs to be able to force your robot to start/stop, reset emergency, etc..
EIO_CROSS:
-Lact “DOSM_SELFSTMAIN” -Lres “DISYS_STARTMAIN”
-Lact “DOSM_SELFSTART” -Lres “DISYS_MOTONSTART”
-Lact “DOSM_SELFMOTON” -Lres “DISYS_MOTORON”
-Lact “DOSM_SELFMOTOFF” -Lres “DISYS_MOTOROFF”
-Lact “DOSM_SELFSTOP” -Lres “DISYS_STOP”
-Lact “DOSM_SELFSTCYC” -Lres “DISYS_STOPCYCLE”
-Lact “DOSM_SELFSTINST” -Lres “DISYS_STOPINSTR”
-Lact “DOSM_SELFRSTERR” -Lres “DISYS_RESETERROR”
Now your robot is able to control itself. Via a semistatic parallel task, you can start the execution of the motion task, stop it, turn motor on or off, reset errors.
To start the robot from your PC, you need some kind of communication. Attached to this message you can find a solution using a serial channel, but probably you may have some difficulty in understanding everything. The VB code is written in Microsoft Visual Basic 6.0. The code is running for real in a factory in U.S.
Another solution is to write a program that check periodically (say each 3 seconds) the presence of a file on the disk (say “START.EVT”) . When the file is present, the task starts the motion program (pulsing DOSM_SELFSTART), and then delete the file. A more sophisticated version can start the specified motion file.
I hope this material is useful for you.
Don’t hesitate to cantact me again, even on the forum or by email.
Unfortunately I’m very busy in this period, so I don’t know when I can reply. Sorry for that.
Best Regards
Claudio
2007-10-07_124621_RemStart.zip