This page is only available in English.
Inputs & Outputs
Read, write, simulate, and unsimulate digital, analog, group, and robot I/O ports via CGTP.
CGTP enables reading, writing, simulating, and unsimulating I/O ports on your Fanuc robot. Requires firmware V8.30+.
Supported I/O types
CgtpIoPortType | Description |
|---|---|
DI / DO | Digital Input / Output |
AI / AO | Analog Input / Output |
RI / RO | Robot Input / Output |
GI / GO | Group Input / Output |
Flag | Flags (F[]) |
Read & Write I/O
FanucRobot robot = new FanucRobot();robot.Connect("192.168.0.1");// Read I/Oint di1 = robot.Cgtp.ReadIo(CgtpIoPortType.DI, 1);int ao5 = robot.Cgtp.ReadIo(CgtpIoPortType.AO, 5);int flag10 = robot.Cgtp.ReadIo(CgtpIoPortType.Flag, 10);// Write I/Orobot.Cgtp.WriteIo(CgtpIoPortType.DO, 1, 1);robot.Cgtp.WriteIo(CgtpIoPortType.AO, 1, 500);robot.Cgtp.WriteIo(CgtpIoPortType.GO, 1, 255);}}
Click to see the full code
Simulate and unsimulate
Simulation forces an I/O to a specific value, ignoring the physical signal:
FanucRobot robot = new FanucRobot();robot.Connect("192.168.0.1");// Simulate DI[5]robot.Cgtp.SimulateIo(CgtpIoPortType.DI, 5);// Check if DI[5] is simulatedbool isSimulated = robot.Cgtp.GetIoSimulationStatus(CgtpIoPortType.DI, 5);// Unsimulate DI[5]robot.Cgtp.UnsimulateIo(CgtpIoPortType.DI, 5);}}
Click to see the full code
Complete example
using UnderAutomation.Fanuc;using UnderAutomation.Fanuc.Cgtp;public class CgtpIo{public static void Main(){FanucRobot robot = new FanucRobot();ConnectionParameters parameters = new ConnectionParameters("192.168.0.1");parameters.Cgtp.Enable = true;robot.Connect(parameters);// Read digital inputint di1 = robot.Cgtp.ReadIo(CgtpIoPortType.DI, 1);// Write digital outputrobot.Cgtp.WriteIo(CgtpIoPortType.DO, 1, 1);// Read analog inputint ai1 = robot.Cgtp.ReadIo(CgtpIoPortType.AI, 1);// Write analog outputrobot.Cgtp.WriteIo(CgtpIoPortType.AO, 1, 500);// Read group inputint gi1 = robot.Cgtp.ReadIo(CgtpIoPortType.GI, 1);// Write group outputrobot.Cgtp.WriteIo(CgtpIoPortType.GO, 1, 255);// Read/write robot I/Oint ri1 = robot.Cgtp.ReadIo(CgtpIoPortType.RI, 1);robot.Cgtp.WriteIo(CgtpIoPortType.RO, 1, 1);// Read/write flagint flag = robot.Cgtp.ReadIo(CgtpIoPortType.Flag, 10);robot.Cgtp.WriteIo(CgtpIoPortType.Flag, 10, 1);// Simulate an I/Orobot.Cgtp.SimulateIo(CgtpIoPortType.DI, 5);// Check simulation statusbool isSimulated = robot.Cgtp.GetIoSimulationStatus(CgtpIoPortType.DI, 5);// Unsimulaterobot.Cgtp.UnsimulateIo(CgtpIoPortType.DI, 5);}}