Skip to content
Open
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

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,43 @@
<ELEMENT TAG="DEF_RIst" TYPE="DOUBLE" INDX="INTERNAL" /> <!-- Cartesian position -->
<ELEMENT TAG="DEF_AIPos" TYPE="DOUBLE" INDX="INTERNAL" /> <!-- Joint position -->
<ELEMENT TAG="DEF_EIPos" TYPE="DOUBLE" INDX="INTERNAL" /> <!-- External axis position -->
<ELEMENT TAG="DEF_Delay" TYPE="LONG" INDX="INTERNAL" /> <!-- Number of late packets -->
<!-- Inputs -->
<ELEMENT TAG="GPIO.01" TYPE="BOOL" INDX="1" />
<ELEMENT TAG="GPIO.02" TYPE="BOOL" INDX="2" />
<ELEMENT TAG="DEF_Delay" TYPE="LONG" INDX="INTERNAL" /> <!-- Number of late packets -->
<!-- Contact feedback -->
<ELEMENT TAG="GPIO.extend_check_1" TYPE="BOOL" INDX="1" />
<ELEMENT TAG="GPIO.extend_check_3" TYPE="BOOL" INDX="2" />
<ELEMENT TAG="GPIO.retract_check_1" TYPE="BOOL" INDX="3" />
<ELEMENT TAG="GPIO.retract_check_3" TYPE="BOOL" INDX="4" />
<ELEMENT TAG="GPIO.extend_check_2" TYPE="BOOL" INDX="5" />
<ELEMENT TAG="GPIO.extend_check_4" TYPE="BOOL" INDX="6" />
<ELEMENT TAG="GPIO.retract_check_2" TYPE="BOOL" INDX="7" />
<ELEMENT TAG="GPIO.retract_check_4" TYPE="BOOL" INDX="8" />
</ELEMENTS>
</SEND>
<RECEIVE>
<ELEMENTS>
<!-- Stop flag -->
<ELEMENT TAG="Stop" TYPE="BOOL" INDX="1" HOLDON="0" />
<ELEMENT TAG="Stop" TYPE="BOOL" INDX="1" HOLDON="0" />
<!-- Joint setpoints -->
<ELEMENT TAG="AK.A1" TYPE="DOUBLE" INDX="2" HOLDON="1" />
<ELEMENT TAG="AK.A2" TYPE="DOUBLE" INDX="3" HOLDON="1" />
<ELEMENT TAG="AK.A3" TYPE="DOUBLE" INDX="4" HOLDON="1" />
<ELEMENT TAG="AK.A4" TYPE="DOUBLE" INDX="5" HOLDON="1" />
<ELEMENT TAG="AK.A5" TYPE="DOUBLE" INDX="6" HOLDON="1" />
<ELEMENT TAG="AK.A6" TYPE="DOUBLE" INDX="7" HOLDON="1" />
<!-- Outputs -->
<ELEMENT TAG="GPIO.01" TYPE="BOOL" INDX="8" HOLDON="1" />
<ELEMENT TAG="AK.A1" TYPE="DOUBLE" INDX="2" HOLDON="1" />
<ELEMENT TAG="AK.A2" TYPE="DOUBLE" INDX="3" HOLDON="1" />
<ELEMENT TAG="AK.A3" TYPE="DOUBLE" INDX="4" HOLDON="1" />
<ELEMENT TAG="AK.A4" TYPE="DOUBLE" INDX="5" HOLDON="1" />
<ELEMENT TAG="AK.A5" TYPE="DOUBLE" INDX="6" HOLDON="1" />
<ELEMENT TAG="AK.A6" TYPE="DOUBLE" INDX="7" HOLDON="1" />
<!-- Ejectors (suction) -->
<ELEMENT TAG="GPIO.suction_1" TYPE="BOOL" INDX="8" HOLDON="1" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But above those start at index 7, so the other file has to be adjusted

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but from what I have seen on the example file, there is an offset of 1 between the indexes in the .rsix and eth.xml as displayed with the example GPIO:

  • Map2DigOut_1: OutIdx:7 (.rsix) --> INDX:8 (eth.xml).
    The same pattern is followed by the other elements:
  • e.g: AK.A6: OutIdx:6 (.rsix) --> INDX:7 (.eth.xml)

I just want to confirm before making the change: shall we set the OutIdx to 8 in the .rsix file when mapping it to GPIO.suction_1? And change all indexes accordingly?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah OK, you are right! Ok we try it like this on the robot.

<ELEMENT TAG="GPIO.suction_2" TYPE="BOOL" INDX="9" HOLDON="1" />
<ELEMENT TAG="GPIO.suction_3" TYPE="BOOL" INDX="10" HOLDON="1" />
<ELEMENT TAG="GPIO.suction_4" TYPE="BOOL" INDX="11" HOLDON="1" />
<!-- Cylinder valves -->
<ELEMENT TAG="GPIO.retract_1" TYPE="BOOL" INDX="12" HOLDON="1" />
<ELEMENT TAG="GPIO.extend_1" TYPE="BOOL" INDX="13" HOLDON="1" />
<ELEMENT TAG="GPIO.retract_2" TYPE="BOOL" INDX="14" HOLDON="1" />
<ELEMENT TAG="GPIO.extend_2" TYPE="BOOL" INDX="15" HOLDON="1" />
<ELEMENT TAG="GPIO.retract_3" TYPE="BOOL" INDX="16" HOLDON="1" />
<ELEMENT TAG="GPIO.extend_3" TYPE="BOOL" INDX="17" HOLDON="1" />
<ELEMENT TAG="GPIO.retract_4" TYPE="BOOL" INDX="18" HOLDON="1" />
<ELEMENT TAG="GPIO.extend_4" TYPE="BOOL" INDX="19" HOLDON="1" />
</ELEMENTS>
</RECEIVE>
</ROOT>
73 changes: 73 additions & 0 deletions workspaces/kuka/KSS_above_v8.5/backup.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
@echo off
setlocal enabledelayedexpansion

REM ============================================
REM KUKA KSSv8.6 b_ctrldbox Backup Script
REM Copies the CURRENT on-controller files that
REM deploy.bat would overwrite into a timestamped
REM backup folder, for manual comparison later.
REM ============================================

echo.
echo ============================================
echo KUKA KSSv8.6 b_ctrldbox Backup
echo ============================================
echo.

REM ============================================
REM PATH CONFIGURATION - must match deploy.bat
REM ============================================
set "DST_RSI_CONFIG=C:\KRC\ROBOTER\Config\User\Common\SensorInterface"
set "DST_EKI_CONFIG=C:\KRC\ROBOTER\Config\User\Common\EthernetKRL"
set "DST_PROGRAM=C:\KRC\ROBOTER\KRC\R1\Program\b_ctrldbox"

REM ============================================
REM TIMESTAMP
REM ============================================
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set "MyDate=%%x"
set "TIMESTAMP=%MyDate:~0,8%_%MyDate:~8,6%"

set "BACKUP_ROOT=%~dp0Backup\%TIMESTAMP%"

echo Backup folder:
echo %BACKUP_ROOT%
echo.

call :BackupFolder "RSI config files" "%DST_RSI_CONFIG%" "%BACKUP_ROOT%\Config\User\Common\SensorInterface"
call :BackupFolder "EKI config files" "%DST_EKI_CONFIG%" "%BACKUP_ROOT%\Config\User\Common\EthernetKRL"
call :BackupFolder "Program files (RSI+EKI)" "%DST_PROGRAM%" "%BACKUP_ROOT%\KRC\R1\Program\b_ctrldbox"

echo.
echo ============================================
echo Backup finished.
echo Backed up files are in:
echo %BACKUP_ROOT%
echo ============================================
pause
goto :eof

REM ============================================
REM FUNCTION: BackupFolder
REM Arguments: %1=Description, %2=Source (current on-controller), %3=Destination (backup)
REM ============================================
:BackupFolder
set "desc=%~1"
set "src=%~2"
set "dst=%~3"

echo.
echo ============================================
echo BACKUP: %desc%
echo FROM: %src%
echo TO: %dst%
echo ============================================

if not exist "%src%\*" (
echo Source folder does not exist or is empty - nothing to back up.
goto :eof
)

if not exist "%dst%\" mkdir "%dst%"
xcopy /Y /E /I "%src%\*" "%dst%\"
echo Backup completed.
goto :eof
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<TYPE>Client</TYPE>
</EXTERNAL>
<INTERNAL>
<ENVIRONMENT>Submit</ENVIRONMENT>
<BUFFERING Limit="512" />
<ALIVE Set_Flag="105" Ping="120" />
<IP>10.28.23.240</IP>
<PORT>54600</PORT>
<PROTOCOL>TCP</PROTOCOL>
<MESSAGES Logging="warning" Display="disabled" />
</INTERNAL>
</CONFIGURATION>
<RECEIVE>
<XML>
<ELEMENT Tag="External/@REQTYPE" Type="INT" />
<ELEMENT Tag="External/@ControlMode" Type="INT" />
<ELEMENT Tag="External/@CycleTime" Type="INT" />
<ELEMENT Tag="External" Set_Flag="110" />
</XML>
</RECEIVE>
<SEND>
<XML>
<!-- BEGIN - Generic parameters -->
<ELEMENT Tag="Robot/Response/@EventID" />
<ELEMENT Tag="Robot/Response" />
<!-- END - Generic parameters -->
<!-- BEGIN - Status parameters -->
<ELEMENT Tag="Robot/Status/@ControlMode" />
<ELEMENT Tag="Robot/Status/@CycleTime" />
<ELEMENT Tag="Robot/Status/@DrivesPowered" />
<ELEMENT Tag="Robot/Status/@EmergencyStop" />
<ELEMENT Tag="Robot/Status/@GuardStop" />
<ELEMENT Tag="Robot/Status/@InMotion" />
<ELEMENT Tag="Robot/Status/@MotionPossible" />
<ELEMENT Tag="Robot/Status/@OperationMode" />
<ELEMENT Tag="Robot/Status/@RobotStopped" />
<!-- END - Status parameters -->
<!-- BEGIN - Initial parameters -->
<ELEMENT Tag="Robot/Init/@VER" />
<ELEMENT Tag="Robot/Init/@NumAxes" />
<ELEMENT Tag="Robot/Init/@NumExternalAxes" />
<ELEMENT Tag="Robot/Init/@Model" />
<ELEMENT Tag="Robot/Init/@RobVer" />
<!-- END - Initial parameters -->
</XML>
</SEND>
</ETHERNETKRL>
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<rSIModel dslVersion="1.0.0.0" name="" xmlns="http://schemas.microsoft.com/dsltools/RSIVisual">
<rSIObjects>
<rSIElement name="AxisCorr_1" objType="AXISCORR" objTypeID="33" maxInputs="0" maxOutputs="0">
<rSIInPorts>
<rSIInPort name="CorrA1" mandatory="false">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out2" />
</source>
</rSIInPort>
<rSIInPort name="CorrA2" mandatory="false">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out3" />
</source>
</rSIInPort>
<rSIInPort name="CorrA3" mandatory="false">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out4" />
</source>
</rSIInPort>
<rSIInPort name="CorrA4" mandatory="false">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out5" />
</source>
</rSIInPort>
<rSIInPort name="CorrA5" mandatory="false">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out6" />
</source>
</rSIInPort>
<rSIInPort name="CorrA6" mandatory="false">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out7" />
</source>
</rSIInPort>
</rSIInPorts>
<rSIOutPorts>
<rSIOutPort name="Stat" signalType="Int" />
<rSIOutPort name="A1" />
<rSIOutPort name="A2" />
<rSIOutPort name="A3" />
<rSIOutPort name="A4" />
<rSIOutPort name="A5" />
<rSIOutPort name="A6" />
</rSIOutPorts>
<rSIParameters>
<rSIParameter name="LowerLimA1" value="-170.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="1" />
<rSIParameter name="LowerLimA2" value="-135.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="2" />
<rSIParameter name="LowerLimA3" value="-210.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="3" />
<rSIParameter name="LowerLimA4" value="-185.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="4" />
<rSIParameter name="LowerLimA5" value="-210.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="5" />
<rSIParameter name="LowerLimA6" value="-350.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="6" />
<rSIParameter name="UpperLimA1" value="170.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="13" />
<rSIParameter name="UpperLimA2" value="90.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="14" />
<rSIParameter name="UpperLimA3" value="90.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="15" />
<rSIParameter name="UpperLimA4" value="90.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="16" />
<rSIParameter name="UpperLimA5" value="120.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="17" />
<rSIParameter name="UpperLimA6" value="350.0" paramType="System.Double" minVal="-2147483648" maxVal="2147483647" isEnum="false" isPublic="true" index="18" />
</rSIParameters>
</rSIElement>
<rSIElement name="ETHERNET1" objType="ETHERNET" objTypeID="64" maxInputs="64" maxOutputs="64">
<rSIInPorts>
<rSIInPort name="In1" mandatory="false" />
</rSIInPorts>
<rSIOutPorts>
<rSIOutPort name="Out1" />
<rSIOutPort name="Out2" />
<rSIOutPort name="Out3" />
<rSIOutPort name="Out4" />
<rSIOutPort name="Out5" />
<rSIOutPort name="Out6" />
<rSIOutPort name="Out7" />
<rSIOutPort name="Out8" />
</rSIOutPorts>
<rSIParameters>
<rSIParameter name="ConfigFile" value="b_ctrldbox_rsi_eth.xml" paramType="System.FileName" minVal="-2147483648" maxVal="2147483647" isEnum="false" isRuntime="false" index="1" />
<rSIParameter name="Timeout" value="100" paramType="System.Int32" minVal="0" maxVal="2147483647" isEnum="false" index="1" />
<rSIParameter name="Flag" value="1" paramType="System.Int32" minVal="-1" maxVal="999" isEnum="false" index="4" />
<rSIParameter name="Precision" value="4" paramType="System.Int32" minVal="1" maxVal="32" isEnum="false" index="8" />
</rSIParameters>
</rSIElement>
<rSIElement name="AxisCorrMon_1" objType="AXISCORRMON" objTypeID="82" maxInputs="0" maxOutputs="0">
<rSIOutPorts>
<rSIOutPort name="A1" />
<rSIOutPort name="A2" />
<rSIOutPort name="A3" />
<rSIOutPort name="A4" />
<rSIOutPort name="A5" />
<rSIOutPort name="A6" />
<rSIOutPort name="E1" />
<rSIOutPort name="E2" />
<rSIOutPort name="E3" />
<rSIOutPort name="E4" />
<rSIOutPort name="E5" />
<rSIOutPort name="E6" />
</rSIOutPorts>
<rSIParameters>
<rSIParameter name="MaxA1" value="360.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="1" />
<rSIParameter name="MaxA2" value="200.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="2" />
<rSIParameter name="MaxA3" value="360.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="3" />
<rSIParameter name="MaxA4" value="720.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="4" />
<rSIParameter name="MaxA5" value="360.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="5" />
<rSIParameter name="MaxA6" value="360.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="6" />
<rSIParameter name="MaxE1" value="6.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="7" />
<rSIParameter name="MaxE2" value="6.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="8" />
<rSIParameter name="MaxE3" value="6.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="9" />
<rSIParameter name="MaxE4" value="6.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="10" />
<rSIParameter name="MaxE5" value="6.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="11" />
<rSIParameter name="MaxE6" value="6.0" paramType="System.Double" minVal="0" maxVal="2147483647" isEnum="false" isPublic="true" index="12" />
</rSIParameters>
</rSIElement>
<rSIElement name="STOP1" objType="STOP" objTypeID="18" maxInputs="0" maxOutputs="0">
<rSIInPorts>
<rSIInPort name="In1" signalType="Bool">
<source>
<rSIOutPortMoniker name="//ETHERNET1/Out1" />
</source>
</rSIInPort>
</rSIInPorts>
<rSIParameters>
<rSIParameter name="Mode" value="ExitMoveCorr" paramType="KUKA.RSIVisual.RSI_StopType" minVal="-2147483648" maxVal="2147483647" isEnum="true" index="1" />
<rSIParameter name="Channel" value="0" paramType="System.Int32" minVal="0" maxVal="2147483647" isEnum="false" index="2" />
</rSIParameters>
</rSIElement>
</rSIObjects>
</rSIModel>
Loading