# check the created layouts in Roboguide - as PC browsers do not display the Fanuc's ActiveX controls properly and the Teach Pendant's browser generally displays pages a bit differently # always use the CLRCACHE command of the TP Browser's screen before checking your new HMI pages. The rest you can find in the iPendant customization manual. Before using the Robot, be sure to read the 'FANUC Robot Safety Manual (B-80687EN)' and understand the content. No part of this manual may be reproduced in any form. All specifications and designs are subject to change without notice. The products in this manual are controlled based on Japan’s “Foreign Exchange and Foreign Trade Law”.

Motion Controls Robotics recently received a question from a fellow Twitter follower. The follower asked, “Outside of the teach pendant, how are robotic movements typically programmed?“ Since this answer obviously contains more than 140 characters, we wanted to share some robot programming information with all our followers through a Tech Talk article.

  • The benefits of Fanuc A05B-2518-C204#ESW Fanuc A05B-2518-C204#SGL teach pendant.Users can develop process or application specific status pages and “Operator Panels” for the iPendant in HTML using commercially available web development tools such as Microsoft.s FrontPage. Or even online on the iPendant itself.
  • FANUC’s TP programming language and the teach pendant’s built-in editor are great tools. They allow relatively novice programmers to get up and running very quickly. Teach a couple points, throw in a couple labels and IF statements, and you’re off to the races.
  • Turning the teach pendent on: A) Activates the default program. B) Enables Communication with External Devices. C) Gives motion control soley to the operator via the TP.

It is a typical sight on the MCRI design floor to see a Programmer positioning a robot in relation to other items in the system with a teach pendant. The teach pendant can be used to manually program points and move the robot almost like a remote control. Teaching a robot means programming precise positions (movement) and procedures. While this manual controller is easy to spot and commonly used, there are a variety of other programming techniques that can also be used to program the robot’s positions.

Robot Programming

Motion Controls Robotics uses a variety of robotic simulation software tools to help customers visualize systems and determine cycle times, cell layout and longevity estimations.
  • CAD to Path – operator gives a robot the ability to perform certain functions by defining part geometry in CAD and downloading it to the robot controller – to paint a car, weld a seam, or grind the edge of a product for example. FANUC has a very informational web page describing CAD to Path programming and comparing and it to CNC processing.
  • ROBOGUIDE – PC software designed to simulate the physical robot and the equipment it will interface with. Programming can occur on the Virtual Teach Pendant available through the ROBOGUIDE software. Actual real world robot programs can be loaded into ROBOGUIDE and the programmer can make program changes and additions using the software and then load these files into the real world robot. Programs created or modified in ROBOGUIDE can be ran and tested in the virtual world using the software.
  • Some robots can be manually guided through motions, with input buttons used to record or mark start and finish points of moves, and to identify where other functions need to be performed such as gripping or releasing a part. FANUC’s new collaborative CR-35 robot allows programming through manual manipulation at the end of arm tool.
Teach
  • Robots that are already programmed to handle specific parts and perform specific functions can be parametrically told to handle similar parts with different dimensions, or case pack or palletize in a different pattern, or insert screws into a different shaped product. The integrator needs to create the parametric programming up front and load it into the robot’s controller, then provide a means for an operator to add parts and new part parameters (usually through an HMI operator screen).

Motion Controls Robotics is happy to answer any of our Social Media followers’ questions about robotics. Follow us on Twitter, LinkedIn and/or Facebook to read all our new Tech Talk articles.

Thursday and Friday, July 23 & 24 9AM to 4PM Visit Motion Controls Robotics’ 20th…

Motion Controls Robotics to Exhibit at the 1st Annual Converters Expo South in Charlotte, North…

Motion Controls Robotics is having a meetup during this year's 2018 Pack Expo. During this…

Fanuc Teach Pendant Programming Manual

Volume 2 Product Spotlight We have stacked over 200 square miles of boards - enough…

FANUC’s Snap-in-Motion is a high speed vision function available for robotic pick and place applications.…

Motion Controls Robotics' latest integration project is a small footprint robotic cell designed for plastic…

by Julie Beaschler, Project Manager To understand LEAN manufacturing, we need to understand the two…

PRESS RELEASE December 17, 2019 Fremont, OH - Motion Controls Robotics, Inc (MCRI) is excited…

FANUC’s TP programming language and the teach pendant’s built-in editorare great tools. They allow relatively novice programmers to get up andrunning very quickly. Teach a couple points, throw in a couple labelsand IF statements, and you’re off to the races. However, anyone who’stried to do anything a bit more complex quickly realizes how cumbersomeprogramming on the teach pendant is. Navigating through multiple levelsof menus to find the PAYLOAD instruction or creating an extensivemixed-logic conditional is really painful. At this point manyprogrammers switch to programming .LS files by hand.

Here’s the smallest program you can load onto a robot:

However, it might be good practice to start with a template thatincludes all available sections:

The /PROG section simply accepts the name of your program (letters,numbers and underscores only, and it must start with a letter) followedby an optional sub-type (e.g. Macro, Cond, etc.).

The /ATTR section stores the rest of the program header information:things like the creation date, comment, group mask, etc. If you choosenot to include any of this, the robot assumes a sensible set ofdefaults.

Pendant

I’m not sure what /MN stands for (motion?), but this is where yourprogram goes. You must start each line with a : and end it with a ;.You can optionally include a line number before the colon, but I thinkincluding line numbers in your source code is a tragedy.

At this point there’s no good way of populating the /POS section ofyour program. I generally upload my program to the robot, teach thepoint, then use the robot web page to view the program source andcopy/paste the position data after positions are taught. Maybe I’llwrite something better someday.

Getting the Files to Your Robot

Unfortunately FANUC decided to squeeze an additional $500 out ofanyone who needs to do any real programming. The robot will nottranslate your ASCII *.LS files into binary .TP files unless youpurchase the ASCII Upload option.

If you’re lucky enough to have a ROBOGUIDE license, you can side-stepthe ASCII Upload option by having your virtual robot translate them foryou.

Here’s a simple Windows Batch file and FTP script that will upload all.LS files located in ./src to the virtual robot on 127.0.0.2and then download the .TP files into ./bin:

Note: keep an eye on your virtual robot’s error log or the FTP outputto see if any files failed to translate. Also make sure your thecurrently selected program on your virtual does not to be translated.(Abort all then select another program.)

You might write another batch file to then upload files to your realrobot at 192.168.1.101:

Fanuc Robot Teach Pendant Manual

Note: Again, the robot won’t load a file if that file is currentlyselected on the teach pendant. (Abort all, select another program)

“I Wish I Had Used TP+”

That’s what I said to myself last week while trying to find a rare bughidden within 15000 lines of TP code. The bug ended up being a simpletypo… something like this:

Can you spot the issue? Here’s how it looks after translating andloading the file onto the controller:

I meant to use R[2:numreg two] in both conditionals, but Iaccidentally changed the 2 to a 3 while hastily changing the otherexpressions. The translator ignores the comment completely, so you haveno idea your code doesn’t work until you test it.

This can be particularly catastrophic when using positions and positionregisters. Tell the robot to move to P[10:position one] when you meantP[1:position one] could be pretty bad. Gotta be careful whenprogramming by hand.

TP+ to the Rescue

Here’s how this program might look if written with TP+:

Of course you can still make typos, but I think it’s a lot harder tomis-type names than numbers. The translator will catch it if you typenmrg_one instead of numreg_one.

Fanuc Advanced Teach Pendant Programming Manual Download

Interested?

Fanuc Advanced Teach Pendant Programming Manual Free

I introduced TP+ back in January.There’s a demo where you can try it out.

I used TP+ exclusively on my most recent machine tending project, and itwas really refreshing. A single environment file holds all variables fornumeric registers, position registers, I/O, etc. Namespaces allow me toorganize data and I/O into logical groups independent of the robot datanumbering.

Let’s say you have to move DI[1] to DI[56] for some reason, and this inputis used in 100 programs. Simply update the variable definition in theenvironment file, re-translate and all the programs are instantlyup-to-date.

I’ll release a standalone version of TP+ eventually. Let me know ifyou’re interested and I might get it done sooner rather than later.