# How to start a program via PC

**URL:** <https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280>\
**Category:** Developer Tools\
**Created:** [June 21, 2007, 7:22pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280 "2007-06-21T19:22:05Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![cookie](https://avatars.discourse-cdn.com/v4/letter/c/d26b3c/32.png) [@cookie](https://tech-community.robotics.abb.com/u/cookie)\
**Post date:** [June 21, 2007, 7:22pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/1 "2007-06-21T19:22:05Z")

</div>

I wanna control the robot via PC, but first problem is that I have to use FP to start the movement program, who can help me out of this problem, or discuss the problem with me on the forum. Thanks a lot!

PS:I guess I/O is useful, but I couldn’t find the reference signal.

---

<div class="post-metadata">

**Author:** ![claudio](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@claudio](https://tech-community.robotics.abb.com/u/claudio)\
**Post date:** [June 24, 2007, 7:57pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/2 "2007-06-24T19:57:11Z")

</div>

In an application, I did a PC-Based interface written in VB, connected to a robot via serial cable. A parallel semi-static task controlled the serial communication. Cross-connecting some virtual outputs to some virtual input and defining them as MotOn and Start signals, you can start your movement task 0 from the other task.

If you are intersted, I can give you more details.

Best Regards

Claudio

---

<div class="post-metadata">

**Author:** ![cookie](https://avatars.discourse-cdn.com/v4/letter/c/d26b3c/32.png) [@cookie](https://tech-community.robotics.abb.com/u/cookie)\
**Post date:** [June 25, 2007, 7:56am UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/3 "2007-06-25T07:56:32Z")

</div>

I appreciate so much, that would help me a lot.could you send details to my Email? My Email: [bluegaoming@yahoo.com.cn](mailto:bluegaoming@yahoo.com.cn)

I’m looking forward to your leteer.

Best Regards!

gaoming

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/system/32/6_2.png) [@system](https://tech-community.robotics.abb.com/u/system)\
**Post date:** [July 11, 2007, 7:44am UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/4 "2007-07-11T07:44:06Z")

</div>

Hi Claudio  
I also have much interested in your application. I’d like to have your details.

[simon-fusheng.tan@cn.abb.com](mailto:simon-fusheng.tan@cn.abb.com)

---

<div class="post-metadata">

**Author:** ![Marcel](https://avatars.discourse-cdn.com/v4/letter/m/71e660/32.png) [@Marcel](https://tech-community.robotics.abb.com/u/Marcel)\
**Post date:** [August 7, 2007, 9:59am UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/5 "2007-08-07T09:59:07Z")

</div>

Hi Claudio

Could you please send me your solution. Thank you.

[marcel.rieder@ch.abb.com](mailto:marcel.rieder@ch.abb.com)

Best regards

Marcel

---

<div class="post-metadata">

**Author:** ![whm418](https://avatars.discourse-cdn.com/v4/letter/w/df705f/32.png) [@whm418](https://tech-community.robotics.abb.com/u/whm418)\
**Post date:** [September 7, 2007, 10:15am UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/6 "2007-09-07T10:15:55Z")

</div>

Hi Claudio

I am interested in your application.Could you please give me your solution.

My [Email:whm@mail.ustc.edu.cn](mailto:Email:whm@mail.ustc.edu.cn)

Thank you

---

<div class="post-metadata">

**Author:** ![Magnus\_Larsson](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/magnus_larsson/32/3400_2.png) [@Magnus\_Larsson](https://tech-community.robotics.abb.com/u/Magnus_Larsson)\
**Post date:** [September 12, 2007, 10:51pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/7 "2007-09-12T22:51:46Z")

</div>

You can start program execution from the Task Window in Robot Studio Online, connected via LAN or the service port.

Another possibility is to write a RAB application for your PC that starts the program.

The ABB WebWare product is used to control and monitor production, but it might be off the mark depending on what you have in mind.

---

<div class="post-metadata">

**Author:** ![irb66\_say](https://avatars.discourse-cdn.com/v4/letter/i/b3f665/32.png) [@irb66\_say](https://tech-community.robotics.abb.com/u/irb66_say)\
**Post date:** [October 2, 2007, 12:40pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/8 "2007-10-02T12:40:32Z")

</div>

Hi Claudio

I am interested in your application.Could you please send me your solution?

Regards

[sinan.aydin@abrotech.com.tr](mailto:sinan.aydin@abrotech.com.tr)

---

<div class="post-metadata">

**Author:** ![Jake](https://avatars.discourse-cdn.com/v4/letter/j/f475e1/32.png) [@Jake](https://tech-community.robotics.abb.com/u/Jake)\
**Post date:** [October 3, 2007, 7:09pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/9 "2007-10-03T19:09:17Z")

</div>

What’s wrong with using the .Rapid.Start() method?

---

<div class="post-metadata">

**Author:** ![claudio](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@claudio](https://tech-community.robotics.abb.com/u/claudio)\
**Post date:** [October 7, 2007, 12:46pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/10 "2007-10-07T12:46:41Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![doc-zee](https://avatars.discourse-cdn.com/v4/letter/d/f1d935/32.png) [@doc-zee](https://tech-community.robotics.abb.com/u/doc-zee)\
**Post date:** [September 15, 2011, 4:02pm UTC](https://tech-community.robotics.abb.com/t/how-to-start-a-program-via-pc/1280/11 "2011-09-15T16:02:51Z")

</div>

I appreciate so much, that would help me a lot.could you send details to my Email? My Email: [zx5721@126.com](mailto:zx5721@126.com)

I’m looking forward to your leteer.

Best Regards!

gaoming
