Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added EKI interfaces #14

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions kuka_eki/krl/EkiHwInterface.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<TYPE>Client</TYPE> <!-- Users connect as clients -->
</EXTERNAL>
<INTERNAL>
<ENVIRONMENT>Program</ENVIRONMENT> <!-- Server run via robot interpreter -->
<BUFFERING Limit="512" /> <!-- Allow buffering of up to 512 messages (system max) -->
<ALIVE Set_Flag="1" /> <!-- Use $flag[1] to indicate alive/good connection status -->
<IP>10.181.116.41</IP> <!-- IP address for EKI interface on robot controller (KRC) -->
<PORT>54600</PORT> <!-- Port of EKI interface on robot controller (in [54600, 54615]) -->
<PROTOCOL>UDP</PROTOCOL> <!-- Use UDP protocol -->
</INTERNAL>
</CONFIGURATION>

<!-- Configured XML structure for data reception (external client to robot)
<RobotCommand>
<Pos A1="..." A2="..." A3="..." A4="..." A5="..." A6="...">
</Pos>
</RobotCommand>
-->
<RECEIVE>
<XML>
<!-- Joint position command -->
<ELEMENT Tag="RobotCommand/Pos/@A1" Type="REAL" />
<ELEMENT Tag="RobotCommand/Pos/@A2" Type="REAL" />
<ELEMENT Tag="RobotCommand/Pos/@A3" Type="REAL" />
<ELEMENT Tag="RobotCommand/Pos/@A4" Type="REAL" />
<ELEMENT Tag="RobotCommand/Pos/@A5" Type="REAL" />
<ELEMENT Tag="RobotCommand/Pos/@A6" Type="REAL" />
</XML>
</RECEIVE>

<!-- Configured XML structure for data transmission (robot to external client)
<RobotState>
<Pos A1="..." A2="..." A3="..." A4="..." A5="..." A6="...">
</Pos>
<Vel A1="..." A2="..." A3="..." A4="..." A5="..." A6="...">
</Vel>
<Eff A1="..." A2="..." A3="..." A4="..." A5="..." A6="...">
</Eff>
</RobotState>
-->
<SEND>
<XML>
<!-- Joint state positions -->
<ELEMENT Tag="RobotState/Pos/@A1"/>
<ELEMENT Tag="RobotState/Pos/@A2"/>
<ELEMENT Tag="RobotState/Pos/@A3"/>
<ELEMENT Tag="RobotState/Pos/@A4"/>
<ELEMENT Tag="RobotState/Pos/@A5"/>
<ELEMENT Tag="RobotState/Pos/@A6"/>
<!-- Joint state velocities -->
<ELEMENT Tag="RobotState/Vel/@A1"/>
<ELEMENT Tag="RobotState/Vel/@A2"/>
<ELEMENT Tag="RobotState/Vel/@A3"/>
<ELEMENT Tag="RobotState/Vel/@A4"/>
<ELEMENT Tag="RobotState/Vel/@A5"/>
<ELEMENT Tag="RobotState/Vel/@A6"/>
<!-- Joint state efforts (torques) -->
<ELEMENT Tag="RobotState/Eff/@A1"/>
<ELEMENT Tag="RobotState/Eff/@A2"/>
<ELEMENT Tag="RobotState/Eff/@A3"/>
<ELEMENT Tag="RobotState/Eff/@A4"/>
<ELEMENT Tag="RobotState/Eff/@A5"/>
<ELEMENT Tag="RobotState/Eff/@A6"/>
<!-- Interface state -->
<ELEMENT Tag="RobotState/RobotCommand/@Size"/> <!-- Number of elements currently in command buffer -->
</XML>
</SEND>
</ETHERNETKRL>
41 changes: 41 additions & 0 deletions kuka_eki/krl/EkiIOInterface.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<TYPE>Client</TYPE> <!-- Users connect as clients -->
</EXTERNAL>
<INTERNAL>
<ENVIRONMENT>Program</ENVIRONMENT> <!-- Server run via robot interpreter -->
<BUFFERING Limit="512"/> <!-- Allow buffering of up to 512 messages (system max) -->
<ALIVE Set_Flag="2"/> <!-- Use $flag[1] to indicate alive/good connection status -->
<IP>10.181.116.41</IP> <!-- IP address for EKI interface on robot controller (KRC) -->
<PORT>54601</PORT> <!-- Port of EKI interface on robot controller (in [54600, 54615]) -->
<PROTOCOL>UDP</PROTOCOL> <!-- Use UDP protocol -->
</INTERNAL>
</CONFIGURATION>


<RECEIVE>
<XML>
<ELEMENT Tag="IOCommand/IO1/@Mode"
Type="INT"/> <!--Mode: 0=Nothing, 1=GetInput, 2=SetOutput, 3=GetOutput -->
<ELEMENT Tag="IOCommand/IO1/@Pin" Type="INT"/>
<ELEMENT Tag="IOCommand/IO1/@Value" Type="INT"/>
<ELEMENT Tag="IOCommand/IO2/@Mode"
Type="INT"/> <!--Mode: 0=Nothing, 1=GetInput, 2=SetOutput, 3=GetOutput -->
<ELEMENT Tag="IOCommand/IO2/@Pin" Type="INT"/>
<ELEMENT Tag="IOCommand/IO2/@Value" Type="INT"/>
</XML>
</RECEIVE>

<SEND>
<XML>
<ELEMENT Tag="IOState/IO1/@Type"/> <!--Type: 0=None, 1=Input, 2=Output -->
<ELEMENT Tag="IOState/IO1/@Pin"/>
<ELEMENT Tag="IOState/IO1/@State"/>
<ELEMENT Tag="IOState/IO2/@Type"/> <!--Type: 0=None, 1=Input, 2=Output -->
<ELEMENT Tag="IOState/IO2/@Pin"/>
<ELEMENT Tag="IOState/IO2/@State"/>
<ELEMENT Tag="IOState/IOCommand/@Size"/>
</XML>
</SEND>
</ETHERNETKRL>
7 changes: 7 additions & 0 deletions kuka_eki/krl/kuka_eki_hw_interface.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
&ACCESS RVP
defdat kuka_eki_hw_interface
ext bas(bas_command :in,real :in )
decl int io_pins[2]
decl int io_types[2]
decl int io_cmd[2]
enddat
Loading