About Robot Reference Interface(RRI)and Externally Guided Motion(EGM)
I'm trying to use Robot Reference Interface (RRI) -- which is the predecessor of the EGM -- to get position robot. I have put the three xml files in the correct folders. My C++ server is listening on the port I have defined on Description.xml. I try my server with a simple client application and it works.
But when I run the Rapid code ( SiConnect ),The result is that Rapid, not being able to initialize the communication, stops the application reporting the event message 112600.
My configuration and actions:
1) builded the virtual system in RobotStudio.(including EGM but RRI , because the 6.x versions has only EGM)
2) In the folder Home, I added the following files: GSI/Settings.xml, GSI/TestDevice/Description.xml, GSI/TestDevice/Configuration.xml.
Their contents :
~Setting~
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<Servers></Servers>
<Clients>
<Client Convention="CDP" Name="TestDevice" />
</Clients>
</Settings>
~ Configuration~
<?xml version="1.0" encoding="utf-8"?>
<Enums>
<Enum Name="opmode" Link="Intern">
<Member Name="ReducedSpeed" />
<Member Name="FullSpeed" />
<Member Name="Automatic" />
</Enum>
</Enums>
<Records>
<Record Name="robotdata">
<Field Name="type" Type="Real" Alias="Type" />
<Field Name="status" Type="String" Alias="Status" />
<Field Name="OperationMode" Type="opmode" Link="Intern" Alias="Mode" />
<Field Name="PredictedTime" Type="Time" Link="Intern" Alias="Time" />
<Field Name="PlannedPose" Type="Frame" Link="Intern" Alias="Frame" />
<Field Name="PlannedJoints" Type="Joints" Link="Intern" Alias="Joints" />
<Field Name="FeedbackTime" Type="Time" Link="Intern" Alias="FTime" />
<Field Name="FeedbackPose" Type="Frame" Link="Intern" Alias="FFrame" />
<Field Name="FeedbackJoints" Type="Joints" Link="Intern" Alias="FJoints" />
</Record>
<Record Name="replydata">
<Field Name="type" Type="Real" Alias="Type" />
</Record>
</Records>
<Properties>
<Property Name="RobotMessage" Type="robotdata" Flag="WriteOnly" />
<Property Name="ReplyMessage" Type="replydata" Flag="ReadOnly" />
</Properties>
</Configuration>
~ Description~
<?xml version="1.0" encoding="utf-8"?>
<Description>
<Name>TestDevice</Name>
<Convention>CDP</Convention>
<Type>SomeType</Type>
<Class>SomeClass</Class>
<Network Address="127.0.0.1" Port="Lan">
<Channel Type="Cyclic" Protocol="Udp" Port="4999" />
</Network>
<Settings>
<TimeOut>2000</TimeOut>
<MaxLost>200</MaxLost>
<DryRun>false</DryRun>
</Settings>
</Description>
3) I wrote the following Rapid Module
MODULE RRI_module
RECORD robotdata
num type;
string status;
ENDRECORD
RECORD replydata
num type;
ENDRECORD
PERS sensor TestDevice := [-1,-1,0];
PERS robotdata RobotMessage := [0,""];
PERS replydata ReplyMessage := [0];
PROC Main()
SiConnect TestDevice;
ENDPROC
ENDMODULE
"Compiling" this module, no errors are reported
4) Finally, I started the C++ server listening on port 4999 and, just after, I run the rapid program.
The result is that Rapid, not being able to initialize the communication, stops the application reporting the event message 112600.
Now, my questions:
1) Do my configuration and actions have anything wrong?
2) Does the means of using EGM differ from RRI and how to use the EGM?
3) Are there version problems of robot or RobotStudio? My RobotWare version is 6.02.1029.
4) Could you send me the code of a server listening on a port?
5) Is there any other documentation on the Robot Reference Interface or EGM? Could someone provide me with more details about how to get position of robot(communicate with robot)?
Thanks in
advance!
Categories
- All Categories
- 5.5K RobotStudio
- 395 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 310 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 785 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 4 Job listings