robotif_eng
robotif_eng
Overview
1 Overview
FANUC Robot Interface (FRRJIF.DLL) is Windows software module to read/write robot data with
robot over Ethernet.
Read:
I/O, current position, numeric
registers, position registers, string
registers, system variables, KAREL
variables, program task status, and
alarms
Write:
I/O, numeric registers, position
registers, string registers, system
variables, and KAREL variables
(*) FANUC Robot Interface does not support file transferring. Please use FTP or HTTP
for it.
-1-
1.Overview
FANUC Robot Interface is an ActiveX module. This document describes software interface of it.
FRRJIF.Core object provide methods to read/write robot I/O. It is possible to read/write area of
integrated PMC.
For accessing current position, position registers, string registers, comments, system variables,
KAREL variables, program status and alarm history, it is necessary to add needed data to DataTable
object (FRRJIF.Core.DataTable) at first. FRRJIF reads all of DataTable object at a time. It is called
‘Refresh’. Read values are kept until next refresh.
(*) DataTable for reducing read data by accessing data at a time.
A robot can have one connection with FANUC Robot Interface. A robot cannot have multiple
connections between multiple PCs. A robot cannot have multiples connections between multiple
applications on a PC. If multiple PCs or multiple applications access to a robot with FANUC Robot
Interface, it is not guaranteed.
You need to purchase one FANUC Robot Interface (A08B-9410-J575) to one development PC. For
additional licenses, you need to purchase one FANUC Robot Interface Runtime Library
(A08B-9410-J576) or one FANUC Robot interface runtime library with USB protector
(A08B-9410-J579) to one PC.
You can use FANUC Robot Interface 30 days after installation without license registration. You need
to input registration key to use it. Please refer "1.1 About Registration Key".
Or you can purchase or USB hard key. If you insert a hard key to your PC, you do not need to input
password. Please install hard key driver. You must not set hard key to the PC in the installing. Please
check protection status with "Robot Interface Protect Check" after the driver installation (Task bar
Start/Program/FANUC Robotics/ Robot Interface Protect Check)
FANUC Robot Interface does not have file transfer functions. You can use FTP to transfer files
between PC and robot.
-2-
1.Overview
- Basic Flow
Start Start
Set DataTable
Set DataTable
Connect
Connect
Write I/O
Read I/O
Write Data
DataTable.Refresh Continue
Exit or Error
Remove Objects
End
End
(*) When communication is terminated, communication error or time out occurs, please remove all robot
interface objects. It is necessary to create objects in order to start communication again.
(*) The data reading is a kind of polling procedure for monitoring. It is not possible to get all data
transition since robot interface applications can read data periodically.
-3-
1.Overview
The sales personnel will send you registration key (RegKey1 RegKey2) like as follows:
Please open license manager and click "Robot Interface" in the list. Please input RegKey1 to [REG1] text
box. Please input RegKey2 to [REG2] text box. Then, please click [Register] button. If the registration
success, the registration status becomes "Registered". Please reboot your PC after that.
-4-
2.Environment
2 Environment
OS:
Windows Vista (32bit), Windows 7(32bit), Windows 7(64bit) (*1),
Windows 8(32bit), Windows 8(64bit) (*1),
Windows 8.1(32bit), Windows 8.1(64bit) (*1)
Windows 10(32bit), Windows 10(64bit) (*1)
Development language:
Microsoft Visual Basic 6.0 + Service pack6 (*2)
Microsoft Visual Basic 2008 + Service pack1
Microsoft Visual Basic 2010, 2012, 2013, 2015
Microsoft Visual C++ 6.0 + Service pack6 (*2)
Microsoft Visual C++ 2008 + Service pack1
Microsoft Visual C++ 2010, 2012, 2013, 2015
Microsoft Visual C# 2008 + Service pack1
Microsoft Visual C# 2010, 2012, 2013, 2015
Robot Controllers:
R-J3iB 7D80/45 or later
R-J3iB 7D81/09 or later
R-J3iB 7D82/01 or later
R-J3iB Mate 7D91/01 or later
R-30iA, R-30iA Mate All Versions (*3)
R-30iB All Versions (*3)
ROBOGUIDE: (*3)
ROBOGUIDE V7 Rev.F(7N06) or later
Virtual Robot R-30iA 7DA5/15 or later
Virtual Robot R-30iA 7DA7/13 or later
Virtual Robot R-30iB All Versions
PC must communicate with robot over Ethernet. (Noise must not stop the communication. Correct
security settings are needed. )
(*) Virtual PC, VMWare and similar software are not supported.
Windows XP Mode of Windows 7 is not supported.
Remote desktop is not supported.
(*1) Even if you use Windows x64, you need to develop 32bit application with robot interface, not 64bit
application. You need to specify your project as x86. And you need to disable the Visual studio hosting
process in debug setting. Windows RT is not supported. Windows Store Application is not supported.
Windows Universal Application is not supported.
(*2) You can develop robot interface applications on only Windows XP for Visual Basic 6.0 and Visual
C++ 6.0.
(*3) If R650 FRA Params is selected, R553 "HMI Device (SNPX)" is needed. If R651 FRL Params is
selected, no option is needed.
-5-
2.Environment
(*) Please refer "Ethernet Function Operator's Manual" of robot controller.
(*) Windows, Visual Basic, Visual C++, Visual C# is a registered trademark of Microsoft Cooperation in
the United States and other countries.
-6-
3.Limitations
3 Limitations
When you update FANUC Robot Interface, you may need to re-compile your application that uses
FANUC Robot Interface.
Robot interface communication response time is not guaranteed. Communication environment, robot
status and PC status may affect response time. Enough long time out value
(FRRJIF.Core.TimeOutValue) is recommended.
If noise affects the communication, robot interface may not work. For example, robot interface might
not work correctly during robot working. You need to shield Ethernet cables or set apart cables from
noise source. (Please refer Appendix "Network design and performance", "Cable connection" of Ethernet
function operator's manual.)
When communication error or time out occur, please disconnect the connection and delete all FRRJIF
objects. If you need to connect again, please re-create objects.
When amount of data or the number of send data is large, it may be necessary long time. If you need
fast communication, please reduce amount of data or the number of send data.
Reading nonexistent data (for example, reading nonexistent system variable) does not return error.
Read data value is indefinite. Writing nonexistent data does not return error. Such writings are ignored.
-7-
4.New Features
4 New Features
-8-
4.New Features
-9-
5.Object Reference
5 Object Reference
5.1 Symbols
VB Visual Basic 6.0, Visual Basic 2008, 2010, 2012, 2013, and 2015
VB6 Visual Basic 6.0
VB2008 Visual Basic 2008, 2010, 2012, 2013, and 2015
VC++ Visual C++ 6.0, Visual C++ 2008, 2010, 2012, 2013, and 2015
VC++6 Visual C++ 6.0
VC++2008 Visual C++ 2008, 2010, 2012, 2013, and 2015
C# Visual C# 2008, 2010, 2012, 2013, and 2015
5.2 FRRJIF.Core
5.2.1 Methods
- Connect Methods
Connect, Disconnect, TimeOutValue
- IO Methods
ReadSDI, ReadSDO, ReadRDI, ReadRDO, ReadSI, ReadSO, ReadUI, ReadUO, ReadGI, ReadGO,
WriteSDI, WriteSDO, WriteRDO, WriteSO, WriteUO, WriteGI, WriteGO
- DataTable Methods
DataTable, DataTable2
- Alarm Methods
ClearAlarm
- Protect Methods
ProtectAvailable, ProtectTrialRemainDays, ProtectStatus
Success returns True, fails returns False. If protected, it also returns False. You can check protection
with ProtectAvailable method.
- 10 -
5.Object Reference
(*) When disconnected, please delete all FRRJIF objects. If you need to connect again, please re-create
objects.
This is time out value for communication error. Default value is 10000 (msec). Minimum value is 100. If
you apply small time out value, then you may encounter time out often. The time out value is discard at
deleting Core object. Please specify time out again when Core object is created.
(*) When timeout, please disconnect and delete all FRRJIF objects. If you need to connect again, please
re-create objects.
- 11 -
5.Object Reference
- You can read integrated PMC D area (GO[10001] or later) with ReadGO method. However, you cannot
read both normal GO and D area at a time. You need to read normal GO and D area separately.
In R-30iB, the PMC data, SDO[10001-] (K area), SDO[11001-] (R area) and GO[10001-] (D area),
cannot be accessed by default. By using the compatibility setup function, the PMC data, K0-K17,
R0-R1499 and D0-D2999, can be accessed as the same as the conventional model. However, a part of
PMC function is restricted by the compatibility setup function.
To exchange the data between Robot Interface and PMC in R-30iB, please setup PMC internal I/O
assignment to assign F of PMC to DO of Robot, or G of PMC to DI of Robot. For example, when the
following setting is done, the 32 points signal of DO[1-32] of Robot are assigned to the 4 byte PMC
signal address of F0-F3 in 1st path PMC. Robot Interface can access F0-F3 by accessing DO[1-32].
You can read WI with ReadSDI method. You need to add 8000 to the index. For example, you need to
specify 8001 in order to access WI[1].
You can read WSI with ReadSDI method. You need to add 8400 to the index. For example, you need to
specify 8401 in order to access WSI[1].
You can read WO with ReadSDO method. You need to add 8000 to the index. For example, you need to
specify 8001 in order to access WO[1].
You can read AI with ReadGI method. You need to add 1000 to the index. For example, you need to
specify 1001 in order to access AI[1].
You can read AO with ReadGO method. You need to add 1000 to the index. For example, you need to
specify 1001 in order to access AO[1].
Success returns True, fails returns False in Visual Basic, C# cases. Success returns 0, fails returns non
0 in Visual C++ cases. Return value of Visual Basic, C# cases is different form Visual C++ cases. (When
accessed non-exist I/O, this method returns True. In the case, the values are unknown values.)
(*) You had better read a series of I/O at a time to reduce access time.
- 12 -
5.Object Reference
VB6: Function WriteXX(Index As Long, Buffer() As Long, Count As Long) As
Boolean
VB2008: Function WriteXX(ByVal Index As Integer, ByRef Buffer As System.Array, ByVal Count
As Integer) As Boolean
VC++6: long ILibCore.WriteXX(short Index, long* Buf, short Cnt);
VC++2008 long CLibCore.WriteXX(short Index, long * Buf, short Cnt)
C# WriteXX(int Index, ref System.Array Buffer, int Count)
(XX is one of GI or GO)
In R-30iB, the PMC data, SDO[10001-] (K area), SDO[11001-] (R area) and GO[10001-] (D area),
cannot be accessed by default. By using the compatibility setup function, the PMC data, K0-K17,
R0-R1499 and D0-D2999, can be accessed as the same as the conventional model. However, a part of
PMC function is restricted by the compatibility setup function.
To exchange the data between Robot Interface and PMC in R-30iB, please setup PMC internal I/O
assignment to assign F of PMC to DO of Robot, or G of PMC to DI of Robot. For example, when the
following setting is done, the 32 points signal of DO[1-32] of Robot are assigned to the 4 byte PMC
signal address of F0-F3 in 1st path PMC. Robot Interface can access F0-F3 by accessing DO[1-32].
You can Write AO with WriteGO method. You need to add 1000 to the index. For example, you need to
specify 1001 in order to access AO[1].
Success returns True, fails returns False in Visual Basic, C# cases. Success returns 0 or positive
number, fails returns negative number in Visual C++ cases. Return value of Visual Basic, C# cases is
different form Visual C++ cases. (When accessed non-exist I/O, this method returns True. In the case, the
values are unknown values.)
intBuffer(0) = 1
intBuffer(1) = 1
intBuffer(2) = 1
intBuffer(3) = 1
intBuffer(4) = 1
blnResult = objCore.WriteSDO(1, intBuffer(), 5)
- 13 -
5.Object Reference
(*) You had better write a series of I/O at a time to reduce access time.
(*) It is necessary to get DataTable2 after all AddXXX method for the first data table finish. When you
get second data table, you cannot call AddXXX for the first data table.
For Visual C++, pass 0 as vlngType. Success returns True, fails returns False.
- 14 -
5.Object Reference
If Robot Interface is available, this property is True. If Robot Interface is not available for protected, this
property is False.
You can use FANUC Robot Interface 30 days after installation without license registration. This property
returns remain days. After registration, this property returns 0. If there is no remain day, this property
returns minus value.
Before registration, this property returns ”TRIAL #days”. (# is remain days) After registration, this
property returns “REGISTERED”. If there is no remain day, this property returns “PROTECTED”.
Remark
(*) When communication fails like timeout, please disconnect and delete all FRRJIF objects. If you
need to connect again, please re-create objects.
5.3 FRRJIF.DataTable
5.3.1 Methods
- Data register methods
Clear, AddCurPos, AddCurPosUF, AddNumReg, AddPosReg, AddPosRegXyzwpr, AddPosRegMG,
AddSysVar, AddSysVarPos, AddTask, AddAlarm, AddString
- Data read method
Refresh
- 15 -
5.Object Reference
When it succeeds, this method returns DataCurPos object. When it fails, this method returns Nothing.
DataCurPos object is to read current world position.
Specify DataType(CURPOS=3), motion group number and user frame number as arguments.
When it succeeds, this method returns DataCurPos object. When it fails, this method returns Nothing.
DataCurPos object is to read current position with specified user frame number. The user frame number
zero means world position. The following user frame number means current frame number.
7DA4(V7.40)before UF=15
7DA4/P01 – 7DA4/P11 UF=63
7DA4/P12 or later UF=-1
- 16 -
5.Object Reference
EndIndex As Long) As DataNumReg
VB2008: Function AddNumReg(ByVal DataType As FRRJIf.FRIF_DATA_TYPE, ByVal
StartIndex As Integer, ByVal EndIndex As Integer) As FRRJIf.DataNumReg
VC++: LPDISPATCH AddNumReg(long DataType, long StartIndex, long EndIndex);
C# FRRJIf.DataNumReg AddNumReg(FRRJIf.FRIF_DATA_TYPE DataType, int StartIndex,
int EndIndex)
Specify DataType(NUMREG_INT=0 for integer case, NUMREG_REAL=1 for float case) , the first and
end index of numeric registers.
When NUMREG_INT is specified, float values are translated to integer. When NUMREG_REAL is
specified, integer values are translated to float.
When it succeeds, this method returns DataNumReg object. When it fails, this method returns Nothing.
DataNumReg object is to read/write numeric register values.
Specify DataType(POSREG=2) , motion group number, the first and end index of position registers.
When it succeeds, this method returns DataPosReg object. When it fails, this method returns Nothing.
DataPosReg object is to read/write position register values.
Specify DataType(POSREG_XYZWPR=12) , motion group number, the first and end index of position
registers.
When it succeeds, this method returns DataPosRegXyzwpr object. When it fails, this method returns
Nothing. DataPosRegXyzwpr object is to write position register values fast.
Specify DataType(POSREGMG=36) , a string to specify motion group, the first and end index of
position registers.
The string to specify motion group is each motion group strings (“C” for Cartesian, “J#” for joint) that
are connected with comma.
When it succeeds, this method returns DataPosRegMG object. When it fails, this method returns Nothing.
DataPosRegMG object is to read/write position register values fast.
<Example> Register PR[1] to PR[10]. Motion group 1 is Cartesian. From motion group 2 to 5 are joint 1
axis
Dim objDataPosRegMG As DataPosRegMG
- 18 -
5.Object Reference
When it succeeds, this method returns DataSysVar object. When it fails, this method returns Nothing.
DataSysVar object is to access system variable and KAREL variable.
When succeeded, this method returns DataSysVarPos object. When failed, this method returns Nothing.
DataSysVarPos object is to access position type system variable and KAREL variable.
Specify DataType and task number. DataType should be one of the followings.
DataType Meaning
TASK(=4) Return executing program name and line number.
- 19 -
5.Object Reference
(Original)
TASK_IGNORE_MACRO If executing program is a macro program, return caller
(=33) program name and line number instead of the macro
program. If all caller programs are macro, program name
is"" and line number is zero.
TASK_IGNORE_KAREL If executing program is a KAREL program, return caller
(=34) program name and line number instead of the KAREL
program. If all caller programs are KAREL, program
name is"" and line number is zero.
TASK_IGNORE_MACRO_KAREL If executing program is a macro or KAREL program,
(=35) return caller program name and line number instead of the
macro or KAREL program. If all caller programs are
macro or KAREL, program name is"" and line number is
zero.
(*) If you would like to ignore macro program or KAREL program, you specify
TASK_IGNORE_MACRO, TASK_IGNORE_KAREL or TASK_IGNORE_MACRO_KAREL.
When two tasks run in the multiple task system, task number 1 is to access the first one, task number 2
is to access second one. A task keeps the task number when executing.
When it succeeds, this method returns DataTask object. When it fails, this method returns Nothing.
DataTask object is to read program execution status.
When it succeeds, this method returns DataAlarm object. When it fails, this method returns Nothing.
DataAlarm object is to read alarm history.
When it succeeds, this method returns DataString object. When it fails, this method returns Nothing.
DataString object is to access string data.
When Refresh method is called, data of DataTable object are refreshed. DataTable object keeps the value
until next Refresh method calling. If you want to get the latest robot data, you need to call this method. If
- 21 -
5.Object Reference
you do not call this method, data on data table are not changed.
Remark
(*) You must call data register methods like AddCurPos before connecting. You must not call data
register methods after connecting. If you need to change data table, then you need to disconnect, delete
all FRRJIF objects and create data table again.
5.4 FRRJIF.DataCurPos
5.4.1 Methods
Valid, GetValue
When this object is valid, returns True. When this object is invalid, returns False.
Argument Xyzwpr() will have returned Cartesian values in Visual Basic. Xyzwpr() should have 9
elements (robot 6 axes + 3 extended axes).
Arugument Config() will have returned configuration of current position.
Config(0) to Config(3) mean as follows:
Non 0 0
Config(0) F(Flip) N(NonFlip)
Config(1) L(Left) R(Right)
Config(2) U(Up) D(Down)
- 22 -
5.Object Reference
Config(3) T(Front) B(Back)
5.5 FRRJIF.DataNumReg
5.5.1 Methods
Valid, GetValue, SetValue, SetValues
When this object is valid, returns True. When this object is invalid, returns False.
Specify the index of target numeric register. Argument Value will have returned value.
This method is to set a series of numeric register values at a time. It is faster than SetValue method.
Specify the index of the first target numeric register. Argument Value is array of set values. Specify
the number of registers to argument Count.
In Visual C++, you use SetValuesInt to set integer values, use SetValuesReal to set real values.
5.6 FRRJIF.DataPosReg
5.6.1 Methods
Valid, GetValue, SetValueJoint, SetValueXyzwpr
When this object is valid, returns True. When this object is invalid, returns False.
- 24 -
5.Object Reference
Specify the index of target position register. Other arguments are the same as arguments of
DataCurPos.GetValue method.
Specify the index of target position register. Specify joint values, user frame number and user tool
number to Joint(), UF and UT.
Specify the index of target position register. Specify Cartesian values, configuration, user frame
number and user tool number to Joint(), Config(), UF and UT.
In Visual C++, use each value, not array of values.
5.7 FRRJIF.DataPosRegXyzwpr
5.7.1 Methods
Valid, SetValueXyzwpr, Update, Reset
When this object is valid, returns True. When this object is invalid, returns False.
Specify the index of target position register. Specify Cartesian values and configuration. The data is
store in buffer. The data is not transfer immediately. You call SetValueXyzwpr multiple times to store a
series of position registers, then you need to call Update method to transfer stored data.
In Visual C++, use each value, not array of values.
This method is to transfer data in the buffer to robot. The transferred data is from minimum index that
you call SetValueXyzwpr to maximum index that you call SetValueXyzwpr. (Transfer data that you do
not call SetValueXyzwpr is zero value.) The buffer is reset after the transferring.
5.8 FRRJIF.DataPosRegMG
5.8.1 Methods
Valid、GetValueJoint, GetValueXyzwpr,SetValueJoint, SetValueXyzwpr, Update, Reset
- 26 -
5.Object Reference
VB: Property Valid As Boolean (read only)
VC++6: BOOL GetValid();
VC++2008 BOOL get_Valid();
C# bool Valid { get; }
When this object is valid, returns True. When this object is invalid, returns False.
Specify the index of target position register. Specify the group number. The motion group should be
specified as joint in AddPosRegMG calling.
Specify the index of target position register. Specify the group number. The motion group should be
specified as Cartesian in AddPosRegMG calling.
- 27 -
5.Object Reference
VB2008: Function SetValueJoint(ByVal Index As Integer, ByVal Group As Integer, ByRef
Joint As System.Array) As Boolean
VC++: BOOL SetValueJoint2(long Index, long Group, float J1, float J2, float J3, float J4,
float J5, float J6, float J7, float J8, float J9);
C# bool SetValueJoint(int Index, int Group, ref System.Array Joint)
Specify the index of target position register. Specify the motion group number. The motion group should
be specified as joint in AddPosRegMG calling. The number of elements of the joint array must equal
joint number in AddPosRegMG calling.
The data is store in buffer. The data is not transfer immediately. You call SetValueJoint or
SetValueXyzwpr multiple times to store a series of position registers, and then you need to call Update
method to transfer stored data.
Specify the index of target position register. Specify the group number. The motion group should be
specified as Cartesian in AddPosRegMG calling.
The data is store in buffer. The data is not transfer immediately. You call SetValueJoint or
SetValueXyzwpr multiple times to store a series of position registers, and then you need to call Update
method to transfer stored data.
This method is to transfer data in the buffer to robot. The transferred data is from minimum index that is
specified in AddPosRegMG calling to maximum index that is specified in AddPosRegMG calling.
(Transfer data that you do not call SetValueJoint or SetValueXyzwpr is zero value.) The buffer is reset
after the transferring.
- 28 -
5.Object Reference
C# void Reset()
5.9 FRRJIF.DataSysVar
5.9.1 Methods
Valid, GetValue
When this object is valid, returns True. When this object is invalid, returns False.
5.10 FRRJIF.DataSysVarPos
5.10.1 Methods
Valid, GetValue, SetValueJoint, SetValueXyzwpr
- 29 -
5.Object Reference
When this object is valid, returns True. When this object is invalid, returns False.
Specify joint values, user frame number and user tool number to Joint(), UF and UT. In Visual C++,
use each value, not array of values.
Specify Cartesian values, configuration, user frame number and user tool number to Joint(), Config(), UF
and UT. In Visual C++, use each value, not array of values.
5.11 FRRJIF.DataTask
5.11.1 Methods
Valid, GetValue
When this object is valid, returns True. When this object is invalid, returns False.
(*) DataType for FRRJIF.DataTable.AddTask affects target current executing program. Please refer
FRRJIF.DataTable.AddTask.
- 31 -
5.Object Reference
5.12 FRRJIF.DataAlarm
5.12.1 Methods
Valid, GetValue
When this object is valid, returns True. When this object is invalid, returns False.
Specify argument Count as index of target alarm history item. (Specify 1 for the first item.)
Argument AlarmID will have returned alarm ID. In case of ‘SRVO-001’, AlarmID is 11 that represents
‘SRVO’. Please see alarm code table in R-J3 reference. If there is no active alarm, AlarmID is zero for
active alarm reference.
Argument AlarmNumber will have returned alarm number. In case of ‘SRVO-001’, AlarmNumber is 1.
If there is no active alarm, AlarmNumber is zero for active alarm reference.
Argument CauseAlarmID will have returned cause alarm ID. Some alarm have two alarm messages.
The second alarm is cause code. This argument is to read cause code. If there is no cause code,
CauseAlarmID is 0.
Argument CauseAlarmNumber will have returned cause alarm Number. This argument is to read cause
code alarm number. If there is no cause code, CauseAlarmNumber is 0.
Argument Severity will have return alarm severity. Severity value means as follows:
- 32 -
5.Object Reference
NONE 128
WARN 0
PAUSE.L 2
PAUSE.G 34
STOP.L 6
STOP.G 38
SERVO 54
ABORT.L 11
ABORT.G 43
SERVO2 58
SYSTEM 123
Argument Year, Month, Day, Hour, Minute, Second will have returned alarm occurred date and time (24
hours format).
Argument AlarmMessage will have returned alarm message. The message is the top line to teach
pendant screen includes alarm code like ‘SRVO-001’. (Kanji message not supported.)
Argument CauseAlarmMessage will have returned cause code alarm message. (Kanji message not
supported)
Argument SeverityMessage will have returned alarm severity string like ‘WARN’.
5.13 FRRJIF.DataString
Only R-30iA 7DA7/13 or later supports this service.
5.13.1 Methods
Valid, GetValue, SetValue, Update, Reset
When this object is valid, returns True. When this object is invalid, returns False.
Specify the index of target string data (string register or comment). Argument Value will have
returned string data value.
- 33 -
5.Object Reference
Specify the index of target string data (string register or comment). Specify a string data. The data is
store in buffer. The data is not transfer immediately. You call SetValue multiple times to store a series of
string data, then you need to call Update method to transfer stored data.
This method is to transfer data in the buffer to robot. The transferred data is from most minimum index
that you call SetValue to maximum index that you call SetValue. The buffer is reset after the transferring.
- 34 -
6.Connect To ROBOGUIDE
6 Connect To ROBOGUIDE
You can connect your robot interface application to virtual robots on ROBOGUIDE. You can use
ROBOGUIDE for developing/testing your application with virtual robots.
6.1 Environment
ROBOGUIDE V7 Rev.F(7N06) or later is needed. Virtual robot should be R-30iA 7DA5/15, R-30iA
7DA7/13 or later.
(*) Port number is used for virtual robot connection. Port number is not used for actual robot connection.
You can confirm port number in the robot controller property page of ROBOGUIDE. The property page
has "Order and Configuration Information". It includes "Current Port Numbers". "Robot IF Server" is the
port number. In the below example, the port number is 9023.
- 35 -
6.Connect To ROBOGUIDE
(*) If you cannot see port number information in the property page, ROBOGUIDE and/or virtual robot is
old. You need to update ROBOGUIDE.
(*) If R650 FRA Params is selected and R553 "HMI Device (SNPX)" is not selected on the virtual robot,
you cannot see the port number. Please add R553 "HMI Device (SNPX)" to the virtual robot.
Another way to get port number is reading from a file in the workcell directory. ROBOGUIDE assigns
ID to every virtual robot at creating. You can confirm ID of target virtual robot in cell browser. Robot
controller node has text like "C: ID - Name". For example, the robot controller node has "C : 1 - Left
Robot", the ID is 1. After starting up virtual robots, you can access workcell_folder/robot_ID/services.txt.
(If ID is 1. Robot_ID is Robot_1.) Services.txt has port number information. You can get the port number
in the line that begins with "Robot IF Server".
'connect
blnRes = mobjCore.Connect(strHost)
If blnRes = False Then
msubDisconnected
Else
msubConnected
End If
- 37 -
7.Trouble Shooting
7 Trouble Shooting
Please confirm communication between PC and robot without robot interface. For example, open
robot home page with Internet Explorer. If you cannot open robot home page, your network may
have trouble. Please confirm IP configuration, cable, hub and so on.
Please use robot interface sample program in order to test communication between robot and PC.
Please set enough time out value. If time out value is too short, it may cause communication errors
since response time is not constant.
Please consider to retry connection for communication errors. It will be more robust software.
When communication error occur, robot interface write error messages with OutputDebugString API.
You will get like the following messages.
If the message includes "Time Out", enlarge time out value may fix the communication error.
(*) FANUC provides dbmon.exe that is to capture the messages. Please find dbmon.exe in install
CD-ROM tools folder. Please use in on PC local disk.
Network protocol analyzer for Windows may help you to grasp the situation.
If communication errors occur with robot moving, the noise may cause the errors. Please suppress
noise such cases.
If hard key does not work, please try the following procedure.
(*) Please enable logging function only when you need it. It may make performance down.
- 39 -