TP+
TP+ is Open Source
This post is about 6 weeks overdue, but the full TP+ source code is now available on GitHub. I’ve already accepted some improvements from Group Six Technologies Inc, and I’m happy to accept more.
TP+ should still likely be considered beta software, but feel free to play around with it in the comfort of your own console (instead of the demo site). Please give it a try and let me know what you think!
Writing TP Programs by Hand - Pros and Cons
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 andIFstatements, and you’re off to the races. However, anyone who’s tried to do anything a bit more complex quickly realizes how cumbersome programming on the teach pendant is. Navigating through multiple levels of menus to find thePAYLOADinstruction or creating an extensive mixed-logic conditional is really painful. At this point many programmers switch to programming.LSfiles by hand.Don't Jump Around
I hate to disagree with the wise words of House of Pain, but excessive jumping around is the most common issue I see when reviewing others’ TP code. Labels and jump-statements come natural in a language that doesn’t support actual code-blocks for simple if-statements. Within just a few minutes of programming, a beginner sees an
IF (...),JMP LBL[X]and decides that this is how FANUC programming is done.Randall Munroe from xkcd sums up the potential for catastrophe when using GOTO statements (TP’s JMP) in this comic:
Introducing TP+
TP+ is a slightly higher-level language that translates into valid FANUC TP code. Its goal is to make programming FANUC robots easier. TP+ includes a number of features from newer programming languages that TP does not support.
Features
- Variables for registers, I/O, etc.
- Automatic label numbering
- IF-ELSE blocks
- Improved readability
- Less stringent syntax
- Syntax sugar
Demo
You can try out TP+ here: TP+ Demo
Example code:
Paste this code into the demo and see how it’s translated into TP.
