Integrate industrial Fanuc Robots (R-30iB Plus controllers) with AutomationView sequences using digital handshakes, position registers, and TP program triggers.
Industrial robots must never move autonomously without synchronous confirmation from the cell supervisor:
| Signal Direction | PLC Variable | Robot Signal (Fanuc) | Description |
|---|---|---|---|
| PLC -> Robot | bRobot_Start_Req |
DI[1: Start_Req] |
Command robot to begin trajectory |
| PLC -> Robot | iRobot_Job_ID |
GI[1: Program_Select] |
Group Input: Trajectory ID (1=Pick, 2=Place) |
| Robot -> PLC | bRobot_Busy |
DO[1: Busy] |
Robot arm in motion |
| Robot -> PLC | bRobot_Done |
DO[2: Done] |
Robot reached target and completed task |
| Robot -> PLC | bRobot_At_Home |
DO[3: At_Home] |
Robot parked safely in home interference zone |
from automation_machine import Sequence, StepType
class FanucPickPlaceCell(Sequence):
def setup(self):
s0 = self.add_step(StepType.INITIAL, name="Wait_For_Part")
s1 = self.add_step(name="Trigger_Robot_Pick")
s2 = self.add_step(name="Robot_In_Motion")
s3 = self.add_step(name="Handshake_Complete")
self.add_transition(s0, s1, condition="bPart_Detected AND bRobot_At_Home")
self.add_transition(s1, s2, condition="bRobot_Busy")
self.add_transition(s2, s3, condition="bRobot_Done")
self.add_transition(s3, s0, condition="NOT bRobot_Start_Req")
s1.add_action("bRobot_Start_Req", "Pulse start request to robot")
s1.add_action("iRobot_Job_ID", "Job 1: Pick from conveyor")
AutomationView translates sequences into standard ASCII Teach Pendant listings (.ls / .fanuc-tp files):
LBL[n] with step flag assignments F[n].IF (<condition>), JMP LBL[n].To produce executable .TP programs for Fanuc controllers:
maketp.exe to convert the ASCII .LS file into binary .TP:maketp.exe sequence_main.ls
.LS file directly to the robot controller via FTP or USB. The controller compiles it automatically upon loading.PR[i]) and numerical registers (R[i]).