Compare commits

...

94 Commits

Author SHA1 Message Date
zhusenlin
090cf5d57f 增加烤箱和上位机通信文档 2026-03-18 15:06:32 +08:00
zhusenlin
9fd5c0cbf7 增加工站和WCS交互地址 2026-03-18 11:07:35 +08:00
zhusenlin
e6aaa56041 更新:优化StationWcs功能块 2026-03-05 18:33:07 +08:00
zhusenlin
705667388c 更新:优化StationWcs功能块 2026-03-05 16:59:45 +08:00
zhusenlin
fe6eb15362 更新:readme 2026-03-03 16:19:36 +08:00
zhusenlin
c6a445d73b 更新:更新机器人通信 2026-03-02 17:57:17 +08:00
zhusenlin
7856b0ba55 更新:更新kuka程序 2026-03-02 16:05:08 +08:00
zhusenlin
0538d8045a 添加HMI软件 2026-02-25 15:55:18 +08:00
zhusenlin
cf8621a662 优化程序 2026-02-25 15:51:17 +08:00
zhusenlin
1e50ed4bda 更新:增加夹具测试程序,HMI增加相应按钮 2026-02-25 10:37:25 +08:00
zhusenlin
133c77280b 更新:增加夹具测试程序 2026-02-25 10:24:06 +08:00
zhusenlin
a828c74c1b 更新PLC程序 2026-02-24 16:37:44 +08:00
zhusenlin
e4a0c1d358 验证kuka功能块 2026-02-12 17:08:23 +08:00
zhusenlin
caf8655e71 PLC优化夹爪控制程序,kuka优化下方物料检测,更新README 2026-02-12 14:59:14 +08:00
zhusenlin
2a95796b9a 更新优化程序 2026-02-12 11:51:44 +08:00
zhusenlin
cee4549e79 更新优化程序 2026-02-11 17:34:41 +08:00
zhusenlin
62cf9a191c 更新README 2026-02-10 09:26:01 +08:00
zhusenlin
61ed212487 更新程序,更新README 2026-02-09 21:10:48 +08:00
zhusenlin
1c4f599405 更新程序,更新README 2026-02-09 15:34:30 +08:00
zhusenlin
c50224498a 更新PLC程序,验证水份上料OK 2026-02-09 09:52:19 +08:00
zhusenlin
13ce765083 更新PLC 2026-02-09 09:33:29 +08:00
zhusenlin
043b025c78 更新README 2026-02-08 16:50:55 +08:00
zhusenlin
78b4b39b53 更新忽略文件 2026-02-08 16:49:30 +08:00
zhusenlin
64bea70945 更新doc 2026-02-08 16:47:12 +08:00
zhusenlin
665a28a02a 更新HMI 2026-02-08 16:46:42 +08:00
zhusenlin
08766bb1a9 更新PLC程序,更新机器人程序 2026-02-08 16:40:58 +08:00
zhusenlin
278ad57620 更新PLC程序,循环轴绝对定位逻辑 2026-02-08 15:43:26 +08:00
zhusenlin
c9a5a3cc62 更新PLC,HMI,README 2026-02-08 13:52:54 +08:00
zhusenlin
6a73817bb4 更新PLC重新 2026-02-08 11:50:28 +08:00
zhusenlin
44d6b01bef 更新README 2026-02-08 11:30:01 +08:00
zhusenlin
307889f441 更新DOC 2026-02-08 11:28:28 +08:00
zhusenlin
318c486bc9 更新DOC 2026-02-08 11:27:32 +08:00
zhusenlin
6818a94e30 更新程序,更新README 2026-02-08 11:26:25 +08:00
zhusenlin
45144a2db2 更新程序 2026-02-07 20:52:35 +08:00
zhusenlin
64f5fb38cf 更新kuka程序 2026-02-06 20:19:20 +08:00
zhusenlin
2cb6759b07 删除kuka za08 2026-02-06 19:32:59 +08:00
zhusenlin
bdc205a668 更新KUKA程序 2026-02-06 19:32:09 +08:00
zhusenlin
fdd197f9cd 更新DOC 2026-02-06 14:20:13 +08:00
zhusenlin
d56935cd85 更新:README,程序 2026-02-06 14:19:17 +08:00
zhusenlin
8a29e4612f 更新:README,程序 2026-02-06 11:53:28 +08:00
zhusenlin
d250f11749 更新:README,程序 2026-02-06 11:47:41 +08:00
zhusenlin
d1a579e937 更新:README,程序 2026-02-06 11:45:06 +08:00
zhusenlin
146c9405c6 更新:README,程序 2026-02-06 10:17:37 +08:00
zhusenlin
238ec778c7 更新机器人通信地址 2026-02-05 15:29:52 +08:00
zhusenlin
8f350a4c66 更新程序 2026-02-05 15:29:18 +08:00
zhusenlin
7e49b38ac7 更新kuka程序 2026-02-05 11:20:27 +08:00
zhusenlin
14f5578e85 增加kuka程序 2026-02-05 11:06:30 +08:00
zhusenlin
72a819e252 更新README 2026-02-05 11:04:45 +08:00
zhusenlin
a0fa7e8d61 更新README,更新程序 2026-02-05 11:02:56 +08:00
zhusenlin
21c38434e0 更新README,更新机器人通信,更新程序 2026-02-04 20:48:38 +08:00
zhusenlin
e5bbcf3958 更新README,更新机器人通信,更新程序 2026-02-04 20:44:37 +08:00
zhusenlin
3b50b1b377 更新README,更新机器人通信,更新程序 2026-02-04 20:43:36 +08:00
zhusenlin
c791e43019 更新机器人通信地址,更新程序 2026-02-04 16:45:39 +08:00
zhusenlin
24b450c3cd 更新机器人通信地址,更新轴功能块 2026-02-04 14:27:50 +08:00
zhusenlin
255d20d4a1 更新程序 2026-02-04 10:06:02 +08:00
zhusenlin
c6291458d5 更新README,更新机器人通信地址 2026-02-03 20:46:43 +08:00
zhusenlin
cbc19893b9 更新伺服回原参数 2026-02-03 18:51:46 +08:00
zhusenlin
a8ee3aedad 更新README 2026-02-03 18:44:12 +08:00
zhusenlin
a3b93b814f 更新文档,机器人eip通信设置 2026-02-03 18:21:34 +08:00
zhusenlin
005b0a26d0 更新文档,机器人和PLC通信协议 2026-02-03 18:20:33 +08:00
zhusenlin
a0267f61fe 更新程序,增广功能功验证ok 2026-02-03 18:19:15 +08:00
zhusenlin
4927da0aa9 更新程序 2026-02-03 14:48:44 +08:00
zhusenlin
ca7fdf1e50 更新REAMDE 2026-02-03 11:02:29 +08:00
zhusenlin
9cc05715e9 更新程序 2026-02-03 11:00:51 +08:00
zhusenlin
3abeb8fcb8 更新程序 2026-02-03 10:58:05 +08:00
zhusenlin
49ca5f9d30 更新程序 2026-02-03 10:46:04 +08:00
zhusenlin
0c85f618ea 更新程序 2026-02-02 20:54:40 +08:00
zhusenlin
0c16ea5b0b 更新程序 2026-02-02 16:58:47 +08:00
zhusenlin
8a53d0ef3b 更新程序 2026-02-02 11:19:00 +08:00
zhusenlin
2d978c91eb 更新程序,增加急停安全继电器复位 2026-02-01 18:25:58 +08:00
zhusenlin
3d87f84bb0 更新程序 2026-02-01 17:23:26 +08:00
zhusenlin
ccc9ad5a62 更新hmi 2026-02-01 17:00:47 +08:00
zhusenlin
e3768ad09a 更新IP地址规划文档 2026-02-01 15:06:20 +08:00
zhusenlin
50649b38d8 更新IP地址规划文档 2026-02-01 15:03:38 +08:00
zhusenlin
e1d40dcda8 更新忽略文件 2026-02-01 14:48:28 +08:00
zhusenlin
c4379cab1e 更新HMI程序 2026-02-01 14:32:43 +08:00
zhusenlin
9ec80e5e16 更新忽略文件 2026-02-01 11:46:05 +08:00
zhusenlin
62e9f20609 更新忽略文件 2026-02-01 11:45:40 +08:00
zhusenlin
1d8afb1385 更新忽略文件 2026-02-01 11:45:01 +08:00
zhusenlin
5e882ecbfc 更新忽略文件 2026-02-01 11:44:09 +08:00
zhusenlin
9b1ab02aa1 解决README的合并冲突 2026-02-01 11:39:01 +08:00
zhusenlin
33fd39bbd4 更新:README 2026-02-01 11:35:56 +08:00
503e4bc5fb 更新 README.md 2026-02-01 11:33:18 +08:00
zhusenlin
dea94246ec 更新:更新程序 2026-02-01 09:32:27 +08:00
zhusenlin
eb91c36099 更新:增加kuku c5电柜说明书 2026-01-31 16:36:39 +08:00
zhusenlin
9d68e25f2f 更新:增加堆垛机交互文档 2026-01-31 15:56:46 +08:00
zhusenlin
a1d39e70df 更新:增加其他工位画面,未更改内容 2026-01-30 17:01:53 +08:00
zhusenlin
152ea70d36 更新:Readme 2026-01-30 16:57:25 +08:00
zhusenlin
06b7c13e93 更新:删除V2.0版本 2026-01-30 16:55:06 +08:00
zhusenlin
0daf6a6ce4 更新:更新程序 2026-01-30 16:43:22 +08:00
zhusenlin
a2b52f32b0 更新:增加增广夹爪说明书 2026-01-30 14:31:18 +08:00
zhusenlin
94b38e1455 更新:增加雷赛说明书 2026-01-30 14:29:44 +08:00
zhusenlin
7cfb7edb55 更新:增加KUKA eds文件 2026-01-30 11:33:36 +08:00
zhusenlin
571dba2a8b 更新:增加电气原理图 2026-01-30 11:16:51 +08:00
108 changed files with 11627 additions and 15 deletions

8
.gitignore vendored
View File

@@ -5,4 +5,12 @@ CppProject/
*.projectbackup
*.~u
*.project.autosave
*.project.autosave
*.Device.*
*.bak1
*.bak2
*.bak3
*.debug
*.cxob
~*

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

4
KUKA/Connections.xml Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Connections>
<Connection Type="KukaRoboter.WorkOnline.Connections.KrcConnectionTarget" ConnectionString="PCRC-3HXLTUHYM6;PCRC-3HXLTUHYM6;192.168.1.15;810169497;V8.7.9.701;KR C;Options:DiagnosisSafety,3.2.4.84|DiagnosisServiceEtherCAT,1.0.4.187|EthernetKRL,3.2.5.1098|KUKA.BoardPackage,3.6.5.4|KUKA.DeviceConnector pre-installed,2.1.13.17|KUKA.EtherNetIP MS,5.1.3.18|KUKA.SoftwarePackage smartPAD-2,1.1.6.1|KUKA.UpdatePackageFirmware,1.2.2.71|KUKA.UpdateService,1.1.24.822|KUKA.UpdateServiceConfiguration,1.0.14.269" LastActive="true" />
</Connections>

View File

@@ -0,0 +1,5 @@
&ACCESS R1
DEFDAT CollDetect_UserAction
ENDDAT

View File

@@ -0,0 +1,5 @@
&ACCESS R1
DEF CollDetect_UserAction( )
END

View File

@@ -0,0 +1,25 @@
&ACCESS RV
&REL 1
&COMMENT Mastering Reference User Program
&PARAM DISKPATH = KRC:\R1\Program
DEFDAT MasRef_User PUBLIC
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make here your modifications
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
;FOLD reference groups
; order of master reference group number in array is of no relevance, but group "1" is required
; "0" means no master reference test
; "1" means group number for robot axes and robroot kinematic axes
; "2", "3" means group number of external kinematic axes
DECL GLOBAL CONST INT MASREFg_GroupSequence[3] ; contains reference groups to test
MASREFg_GroupSequence[1]=1
MASREFg_GroupSequence[2]=0
MASREFg_GroupSequence[3]=0
;ENDFOLD (reference groups)
ENDDAT

View File

@@ -0,0 +1,42 @@
&ACCESS RV
&REL 1
&COMMENT Mastering Reference User Program
&PARAM DISKPATH = KRC:\R1\Program
DEF MasRef_USER()
END
GLOBAL DEF MASREFSTARTG1()
;FOLD Teach path and position for reference group 1
;ENDFOLD
END
GLOBAL DEF MASREFBACKG1()
;FOLD Teach path back for reference group 1
;ENDFOLD
END
GLOBAL DEF MASREFSTARTG2()
;FOLD Teach path and position for reference group 2
;ENDFOLD
END
GLOBAL DEF MASREFBACKG2()
;FOLD Teach path back for reference group 2
;ENDFOLD
END
GLOBAL DEF MASREFSTARTG3()
;FOLD Teach path and position for reference group 3
;ENDFOLD
END
GLOBAL DEF MASREFBACKG3()
;FOLD Teach path back for reference group 3
;ENDFOLD
END

View File

@@ -0,0 +1,642 @@
&ACCESS RV$
&PARAM VERSION = 1.0.0
DEFDAT $MACHINE PUBLIC
CHAR $V_R1MADA[32]
$V_R1MADA[]="V42.601.8.1/KUKA8.7" ;VERSIONSKENNUNG
INT $TECH_MAX=6 ;MAX. ANZAHL FUNKTIONSGENERATOREN
INT $NUM_AX=6 ;ACHSEN DES ROBOTERSYSTEMS
INT $AXIS_TYPE[12] ;ACHSENKENNUNG
$AXIS_TYPE[1]=3 ;1 = LINEAR, 3 = ROTATORISCH, 5 = ENDLOS
$AXIS_TYPE[2]=3
$AXIS_TYPE[3]=3
$AXIS_TYPE[4]=3
$AXIS_TYPE[5]=3
$AXIS_TYPE[6]=3
$AXIS_TYPE[7]=3
$AXIS_TYPE[8]=3
$AXIS_TYPE[9]=3
$AXIS_TYPE[10]=3
$AXIS_TYPE[11]=3
$AXIS_TYPE[12]=3
DECL FRA $COUP_COMP[6,6] ;ACHSKOPPLUNGSFAKTOR N = ZAEHLER, D = NENNER
$COUP_COMP[1,2]={N 0,D 1}
$COUP_COMP[1,3]={N 0,D 1}
$COUP_COMP[1,4]={N 0,D 1}
$COUP_COMP[1,5]={N 0,D 1}
$COUP_COMP[1,6]={N 0,D 1}
$COUP_COMP[2,1]={N 0,D 1}
$COUP_COMP[2,3]={N 0,D 1}
$COUP_COMP[2,4]={N 0,D 1}
$COUP_COMP[2,5]={N 0,D 1}
$COUP_COMP[2,6]={N 0,D 1}
$COUP_COMP[3,1]={N 0,D 1}
$COUP_COMP[3,2]={N 0,D 1}
$COUP_COMP[3,4]={N 0,D 1}
$COUP_COMP[3,5]={N 0,D 1}
$COUP_COMP[3,6]={N 0,D 1}
$COUP_COMP[4,1]={N 0,D 1}
$COUP_COMP[4,2]={N 0,D 1}
$COUP_COMP[4,3]={N 0,D 1}
$COUP_COMP[4,5]={N -161,D 12580}
$COUP_COMP[4,6]={N -172,D 22917}
$COUP_COMP[5,1]={N 0,D 1}
$COUP_COMP[5,2]={N 0,D 1}
$COUP_COMP[5,3]={N 0,D 1}
$COUP_COMP[5,4]={N 0,D 1}
$COUP_COMP[5,6]={N -188,D 21461}
$COUP_COMP[6,1]={N 0,D 1}
$COUP_COMP[6,2]={N 0,D 1}
$COUP_COMP[6,3]={N 0,D 1}
$COUP_COMP[6,4]={N 0,D 1}
$COUP_COMP[6,5]={N 0,D 1}
DECL FRA $EXCOUP_COMP[6,6] ;KOPPLUNGSFAKTOREN ACHSE 7 (INDEX 1) BIS ACHSE 12 (INDEX 6), N = ZAEHLER, D =NENNER
$EXCOUP_COMP[1,2]={N 0,D 1}
$EXCOUP_COMP[1,3]={N 0,D 1}
$EXCOUP_COMP[1,4]={N 0,D 1}
$EXCOUP_COMP[1,5]={N 0,D 1}
$EXCOUP_COMP[1,6]={N 0,D 1}
$EXCOUP_COMP[2,1]={N 0,D 1}
$EXCOUP_COMP[2,3]={N 0,D 1}
$EXCOUP_COMP[2,4]={N 0,D 1}
$EXCOUP_COMP[2,5]={N 0,D 1}
$EXCOUP_COMP[2,6]={N 0,D 1}
$EXCOUP_COMP[3,1]={N 0,D 1}
$EXCOUP_COMP[3,2]={N 0,D 1}
$EXCOUP_COMP[3,4]={N 0,D 1}
$EXCOUP_COMP[3,5]={N 0,D 1}
$EXCOUP_COMP[3,6]={N 0,D 1}
$EXCOUP_COMP[4,1]={N 0,D 1}
$EXCOUP_COMP[4,2]={N 0,D 1}
$EXCOUP_COMP[4,3]={N 0,D 1}
$EXCOUP_COMP[4,5]={N 0,D 1}
$EXCOUP_COMP[4,6]={N 0,D 1}
$EXCOUP_COMP[5,1]={N 0,D 1}
$EXCOUP_COMP[5,2]={N 0,D 1}
$EXCOUP_COMP[5,3]={N 0,D 1}
$EXCOUP_COMP[5,4]={N 0,D 1}
$EXCOUP_COMP[5,6]={N 0,D 1}
$EXCOUP_COMP[6,1]={N 0,D 1}
$EXCOUP_COMP[6,2]={N 0,D 1}
$EXCOUP_COMP[6,3]={N 0,D 1}
$EXCOUP_COMP[6,4]={N 0,D 1}
$EXCOUP_COMP[6,5]={N 0,D 1}
REAL $MAMES[12] ;VERSCHIEBUNG ZW. MECH. UND MATH. NULLPUNKT ACHSE[I] (I=1:A1,I=7:E1) [MM,GRAD]
$MAMES[1]=-25.0000
$MAMES[2]=-100.000
$MAMES[3]=100.000
$MAMES[4]=0.0
$MAMES[5]=0.0
$MAMES[6]=0.0
$MAMES[7]=0.0
$MAMES[8]=0.0
$MAMES[9]=0.0
$MAMES[10]=0.0
$MAMES[11]=0.0
$MAMES[12]=0.0
DECL INDIVIDUAL_MAMES $INDIVIDUAL_MAMES=#RDC ; Existenz individueller MAMES-Werte
FRAME $ROBROOT={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ROBOTER IM WELTKOORDINATENSYSTEM [MM,GRAD]
FRAME $ERSYSROOT={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ROBOTERFUSSPUNKTKINEMATIK IM WELTKOORDINATENSYSTEM [MM,GRAD]
DECL FRA $RAT_MOT_AX[12] ;UEBERSETZUNG MOTOR-ACHSE N = ZAEHLER, D = NENNER
$RAT_MOT_AX[1]={N -1798,D 7}
$RAT_MOT_AX[2]={N -4576,D 17}
$RAT_MOT_AX[3]={N 754,D 3}
$RAT_MOT_AX[4]={N -10387,D 55}
$RAT_MOT_AX[5]={N -91834,D 483}
$RAT_MOT_AX[6]={N 6485103,D 49400}
$RAT_MOT_AX[7]={N 0,D 1}
$RAT_MOT_AX[8]={N 0,D 1}
$RAT_MOT_AX[9]={N 0,D 1}
$RAT_MOT_AX[10]={N 0,D 1}
$RAT_MOT_AX[11]={N 0,D 1}
$RAT_MOT_AX[12]={N 0,D 1}
REAL $VEL_AXIS_MA[12] ;NENNDREHZAHL DES MOTORS ACHSE[I] (I=1:A1,I=7:E1) [U/MIN]
$VEL_AXIS_MA[1]=4999.99
$VEL_AXIS_MA[2]=4999.99
$VEL_AXIS_MA[3]=4999.99
$VEL_AXIS_MA[4]=5980.39
$VEL_AXIS_MA[5]=5703.97
$VEL_AXIS_MA[6]=5688.68
$VEL_AXIS_MA[7]=0.0
$VEL_AXIS_MA[8]=0.0
$VEL_AXIS_MA[9]=0.0
$VEL_AXIS_MA[10]=0.0
$VEL_AXIS_MA[11]=0.0
$VEL_AXIS_MA[12]=0.0
INT $VEL_CPT1_MA[12]
$VEL_CPT1_MA[1]=29
$VEL_CPT1_MA[2]=29
$VEL_CPT1_MA[3]=29
$VEL_CPT1_MA[4]=29
$VEL_CPT1_MA[5]=29
$VEL_CPT1_MA[6]=29
$VEL_CPT1_MA[7]=29
$VEL_CPT1_MA[8]=29
$VEL_CPT1_MA[9]=29
$VEL_CPT1_MA[10]=29
$VEL_CPT1_MA[11]=29
$VEL_CPT1_MA[12]=29
INT $VEL_MOT_MON[12] ;achsweise Ueberwachungsgrenzen der Geschwindigkeit
$VEL_MOT_MON[1]=136
$VEL_MOT_MON[2]=136
$VEL_MOT_MON[3]=136
$VEL_MOT_MON[4]=136
$VEL_MOT_MON[5]=136
$VEL_MOT_MON[6]=136
$VEL_MOT_MON[7]=136
$VEL_MOT_MON[8]=136
$VEL_MOT_MON[9]=136
$VEL_MOT_MON[10]=136
$VEL_MOT_MON[11]=136
$VEL_MOT_MON[12]=136
INT $RED_VEL_AXC[12] ;REDUZIERFAKTOR FUER AXIALE GESCHWINDIGKEIT BEI ACHSSPEZ. HANDVERFAHREN UND KOMMANDOBETRIEB (PTP) ACHSE[I] (I=1:A1,I=7:E1) [%]
$RED_VEL_AXC[1]=13
$RED_VEL_AXC[2]=12
$RED_VEL_AXC[3]=11
$RED_VEL_AXC[4]=9
$RED_VEL_AXC[5]=10
$RED_VEL_AXC[6]=5
$RED_VEL_AXC[7]=0
$RED_VEL_AXC[8]=0
$RED_VEL_AXC[9]=0
$RED_VEL_AXC[10]=0
$RED_VEL_AXC[11]=0
$RED_VEL_AXC[12]=0
INT $RED_ACC_AXC[12] ;REDUZIERFAKTOR FUER AXIALE BESCHLEUNIGUNG BEI ACHSSPEZ. HANDVERFAHREN UND KOMMANDOBETRIEB (PTP) ACHSE[I] (I=1:A1,I=7:E1) [%]
$RED_ACC_AXC[1]=15
$RED_ACC_AXC[2]=15
$RED_ACC_AXC[3]=15
$RED_ACC_AXC[4]=15
$RED_ACC_AXC[5]=15
$RED_ACC_AXC[6]=15
$RED_ACC_AXC[7]=0
$RED_ACC_AXC[8]=0
$RED_ACC_AXC[9]=0
$RED_ACC_AXC[10]=0
$RED_ACC_AXC[11]=0
$RED_ACC_AXC[12]=0
INT $RED_ACC_DYN=100
REAL $RED_VEL_CPC=6.67000 ;REDUZIERFAKTOR FUER BAHN-UND ORIENTIERUNGSGESCHWINDIGKEIT BEI KARTESISCHEM HANDVERFAHREN UND KOMMANDOBETRIEB [CP] [%]
REAL $RED_ACC_CPC=8.00000 ;REDUZIERFAKTOR FUER BAHN-UND ORIENTIERUNGSBESCHLEUNIGUNGEN BEI KARTESISCHEM HANDVERFAHREN UND KOMMANDOBETRIEB [CP] [%]
REAL $VEL_CP_T1=0.229000 ;BAHNGESCHWINDIGKEIT IN T1 [M/S] MAX: 0.25
REAL $SPEED_LIMIT_TEACH_MODE=0.229000 ;REDUZIERUNG DER TCP- UND FLANSCHGESCHWINDIGKEIT IN [M/S] MAX: 0.25
REAL $RED_JUS_UEB=100.000 ;REDUZIERFAKTOR FUER UEBERNAHMEFAHRT [%]
INT $RED_ACC_OV[12] ;AXIALE REDUZIERUNG DER BESCHLEUNIGUNG FUER OVERRIDE ACHSE[I] (I=1:A1,I=7:E1) [%]
$RED_ACC_OV[1]=100
$RED_ACC_OV[2]=100
$RED_ACC_OV[3]=100
$RED_ACC_OV[4]=100
$RED_ACC_OV[5]=100
$RED_ACC_OV[6]=100
$RED_ACC_OV[7]=0
$RED_ACC_OV[8]=0
$RED_ACC_OV[9]=0
$RED_ACC_OV[10]=0
$RED_ACC_OV[11]=0
$RED_ACC_OV[12]=0
FRAME $ACC_CAR_TOOL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME (ACCORDING TO FLANGE) FOR CARTESIAN ACCELERATION MONITORING
DECL ACC_CAR $ACC_CAR_LIMIT={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,ABS 0.0} ;LIMITS FOR THE CARTESIAN ACCELERATION $ACC_CAR_ACT
BOOL $ACC_CAR_STOP=FALSE ;ENABLE (TRUE) OR DISABLE (FALSE) CARTESIAN ACCELERATION MONITORING
INT $RED_ACC_EMX[12] ;REDUZIERFAKTOR FUER BAHNTREUE NOT-AUS-RAMPE [ % ]
$RED_ACC_EMX[1]=165
$RED_ACC_EMX[2]=280
$RED_ACC_EMX[3]=200
$RED_ACC_EMX[4]=250
$RED_ACC_EMX[5]=250
$RED_ACC_EMX[6]=250
$RED_ACC_EMX[7]=0
$RED_ACC_EMX[8]=0
$RED_ACC_EMX[9]=0
$RED_ACC_EMX[10]=0
$RED_ACC_EMX[11]=0
$RED_ACC_EMX[12]=0
INT $RED_VEL_ECO_LEVEL[12] ; Reduzierfaktor der Achse [I] fuer Geschwindigkeit im EcoLevel (I=1: A1,I=7: E1) [%]
$RED_VEL_ECO_LEVEL[1]=100
$RED_VEL_ECO_LEVEL[2]=100
$RED_VEL_ECO_LEVEL[3]=100
$RED_VEL_ECO_LEVEL[4]=100
$RED_VEL_ECO_LEVEL[5]=100
$RED_VEL_ECO_LEVEL[6]=100
$RED_VEL_ECO_LEVEL[7]=100
$RED_VEL_ECO_LEVEL[8]=100
$RED_VEL_ECO_LEVEL[9]=100
$RED_VEL_ECO_LEVEL[10]=100
$RED_VEL_ECO_LEVEL[11]=100
$RED_VEL_ECO_LEVEL[12]=100
INT $RED_ACC_ECO_LEVEL[12] ; Reduzierfaktor der Achse [I] fuer Beschleunigung im EcoLevel (I=1: A1,I=7: E1) [%]
$RED_ACC_ECO_LEVEL[1]=100
$RED_ACC_ECO_LEVEL[2]=100
$RED_ACC_ECO_LEVEL[3]=100
$RED_ACC_ECO_LEVEL[4]=100
$RED_ACC_ECO_LEVEL[5]=100
$RED_ACC_ECO_LEVEL[6]=100
$RED_ACC_ECO_LEVEL[7]=100
$RED_ACC_ECO_LEVEL[8]=100
$RED_ACC_ECO_LEVEL[9]=100
$RED_ACC_ECO_LEVEL[10]=100
$RED_ACC_ECO_LEVEL[11]=100
$RED_ACC_ECO_LEVEL[12]=100
BOOL $WARMUP_RED_VEL=FALSE ;WARMFAHR-FUNKTIONALITAET EINGESCHALTET
REAL $WARMUP_TIME=30.0000 ;[MIN]
REAL $COOLDOWN_TIME=360.000 ;NACH DIESER ZEIT IM STILLSTAND [MIN] WIRD DER ROBOTER ALS KALT BETRACHTET
INT $WARMUP_CURR_LIMIT=99 ;[%] DES MAXIMAL STROM
INT $WARMUP_MIN_FAC=60 ;[%]
REAL $WARMUP_SLEW_RATE=5.00000 ;[%/sec]
REAL $ST_TOL_VEL[12] ;GESCHWINDIGKEITSTOLERANZ FUER STILLSTANDSERKENNUNG ACHSE[I] (I=1:A1,I=7:E1) [U_MOT/MIN]
$ST_TOL_VEL[1]=15.0000
$ST_TOL_VEL[2]=15.0000
$ST_TOL_VEL[3]=15.0000
$ST_TOL_VEL[4]=15.0000
$ST_TOL_VEL[5]=15.0000
$ST_TOL_VEL[6]=15.0000
$ST_TOL_VEL[7]=15.0000
$ST_TOL_VEL[8]=15.0000
$ST_TOL_VEL[9]=15.0000
$ST_TOL_VEL[10]=15.0000
$ST_TOL_VEL[11]=15.0000
$ST_TOL_VEL[12]=15.0000
INT $ST_TOL_TIME=200 ;ERKENNUNGSZEIT [MS]
REAL $VEL_AX_JUS[12] ;GESCHWINDIGKEIT BEI EMT-JUSTAGE ACHSE[I] (I=1:A1,I=7:E1) [GRAD/SEC]
$VEL_AX_JUS[1]=0.0520870
$VEL_AX_JUS[2]=0.0563930
$VEL_AX_JUS[3]=0.0757880
$VEL_AX_JUS[4]=0.169510
$VEL_AX_JUS[5]=0.572960
$VEL_AX_JUS[6]=0.203180
$VEL_AX_JUS[7]=0.0
$VEL_AX_JUS[8]=0.0
$VEL_AX_JUS[9]=0.0
$VEL_AX_JUS[10]=0.0
$VEL_AX_JUS[11]=0.0
$VEL_AX_JUS[12]=0.0
REAL $L_EMT_MAX[12] ;LAENGE JUSTAGE-WEG EMT ACHSE[I] (I=1:A1,I=7:E1) [GRAD]
$L_EMT_MAX[1]=1.60000
$L_EMT_MAX[2]=1.76000
$L_EMT_MAX[3]=2.40000
$L_EMT_MAX[4]=4.32000
$L_EMT_MAX[5]=11.0000
$L_EMT_MAX[6]=4.80000
$L_EMT_MAX[7]=0.0
$L_EMT_MAX[8]=0.0
$L_EMT_MAX[9]=0.0
$L_EMT_MAX[10]=0.0
$L_EMT_MAX[11]=0.0
$L_EMT_MAX[12]=0.0
REAL $TC_SYM=0.100000 ;ZEITKONST. SYMMETRIERFILTER
INT $TM_CON_VEL=0 ;MINIMALE KONSTANTFAHRPHASE [MS]
REAL $APO_DIS_PTP[12] ;MAXIMALER UEBERSCHLEIFWEG PTP ACHSE[I] (I=1:A1,I=7:E1) [MM,GRAD]
$APO_DIS_PTP[1]=90.0000
$APO_DIS_PTP[2]=90.0000
$APO_DIS_PTP[3]=90.0000
$APO_DIS_PTP[4]=90.0000
$APO_DIS_PTP[5]=90.0000
$APO_DIS_PTP[6]=90.0000
$APO_DIS_PTP[7]=0.0
$APO_DIS_PTP[8]=0.0
$APO_DIS_PTP[9]=0.0
$APO_DIS_PTP[10]=0.0
$APO_DIS_PTP[11]=0.0
$APO_DIS_PTP[12]=0.0
DECL CP $ACC_MA={CP 10.0000,ORI1 1000.00,ORI2 1000.00} ;CP = MAX. BAHNBESCHLEUNIGUNG [M/SEC2], ORI1 = MAX. SCHWENKBESCHLEUNIGUNG [GRAD/SEC2], ORI2 = MAX. DREHBESCHLEUNIGUNG [GRAD/SEC2]
DECL JERK_STRUC $JERK_MA={CP 500.000,ORI 50000.0,AX {A1 1000.00,A2 1000.00,A3 1000.00,A4 1000.00,A5 1000.00,A6 1000.00,E1 1000.00,E2 1000.00,E3 1000.00,E4 1000.00,E5 1000.00,E6 1000.00}} ;Maximaler Ruck CP: [m/s^3], ORI: [deg/^3], AX: [deg/s^3] (rotatorisch) bzw. [m/s^3] (linear)
DECL CP $VEL_MA={CP 3.00000,ORI1 400.000,ORI2 400.000} ;CP = MAX. BAHNGESCHWINDIGKEIT [M/SEC], ORI1 = MAX. SCHWENKGESCHWINDIGKEIT [GRAD/SEC], ORI2 = MAX. DREHGESCHWINDIGKEIT [GRAD/SEC]
DECL CP $ACC_OV={CP 4.60000,ORI1 200.000,ORI2 200.000} ;CP = BAHNBESCHL. BEI OV.-AEND. [M/SEC2], ORI1 = SCHWENKBESCHL. BEI OV.-AEND. [GRAD/SEC2], ORI2 = DREHBESCHL. BEI OV.-AEND. [GRAD/SEC2]
INT $RED_T1=7 ;REDUKTIONSFAKTOR T1 [%] MAX: 15%
INT $DEF_FLT_PTP=204 ;DEFAULTFILTER PTP
INT $DEF_FLT_CP=144 ;DEFAULTFILTER CP
INT $DEF_OV_JOG=10 ;VORBESETZUNG FUER OVERRIDE
INT $SEQ_CAL[12] ;REFERIER-REIHENFOLGE DER ACHSEN SCHRITT[I]
$SEQ_CAL[1]='B0001'
$SEQ_CAL[2]='B0010'
$SEQ_CAL[3]='B0100'
$SEQ_CAL[4]='B1000'
$SEQ_CAL[5]='B00010000'
$SEQ_CAL[6]='B00100000'
$SEQ_CAL[7]='B01000000'
$SEQ_CAL[8]='B10000000'
$SEQ_CAL[9]='B000100000000'
$SEQ_CAL[10]='B001000000000'
$SEQ_CAL[11]='B010000000000'
$SEQ_CAL[12]='B100000000000'
INT $DIR_CAL='B000111111111' ;REFERIER-RICHTUNG
INT $RECOVERY_MASTERING_AXES='B0000' ;Achsen die Recovery Justage unterstuetzen
INT $RED_CAL_SD=0 ;REDUKTIONSFAKTOR NACH ERREICHEN DES NOCKENS [%]
INT $RED_CAL_SF=0 ;REDUKTIONSFAKTOR VOR ERREICHEN DES NOCKENS [%]
INT $BRK_DEL=20000 ;BREMSVERZOEGERUNGSZEIT [MS]
BOOL $GEARTORQ_MON=TRUE ;GETRIEBEMOMENTENUEBERWACHUNG EIN/AUS
INT $ACC_ACT_MA=250 ;GRENZWERT SOLLBESCHLEUNIGUNG [%]
INT $VEL_ACT_MA=110 ;GRENZWERT SOLLGESCHWINDIGKEIT [%]
INT $ILLEGAL_SPEED=200 ; GRENZWERT GESCHWINDIGKEIT VOR FILTER [%]
BOOL $MONITOR_ILLEGAL_SPEED=TRUE ; GESCHWINDIGKEITSUEBERWACHUNG VOR FILTER
REAL $IN_POS_CAR=0.100000 ;KARTESISCHES POSITIONIERFENSTER (TRANSLATIONSSTEIL) [MM]
REAL $IN_POS_ORI=0.100000 ;KARTESISCHES POSITIONIERFENSTER (ORIENTIERUNGSTEIL) [DEG]
REAL $IN_POS_MA[12] ;POSITIONIERFENSTER ACHSE[I] (I=1:A1,I=7:E1) [MM,GRAD]
$IN_POS_MA[1]=0.100000
$IN_POS_MA[2]=0.100000
$IN_POS_MA[3]=0.100000
$IN_POS_MA[4]=0.100000
$IN_POS_MA[5]=0.100000
$IN_POS_MA[6]=0.100000
$IN_POS_MA[7]=0.0
$IN_POS_MA[8]=0.0
$IN_POS_MA[9]=0.0
$IN_POS_MA[10]=0.0
$IN_POS_MA[11]=0.0
$IN_POS_MA[12]=0.0
INT $TIME_POS[12] ;POSITIONIERZEIT ACHSE[I] (I=1:A1,I=7:E1)
$TIME_POS[1]=512
$TIME_POS[2]=512
$TIME_POS[3]=512
$TIME_POS[4]=512
$TIME_POS[5]=512
$TIME_POS[6]=512
$TIME_POS[7]=512
$TIME_POS[8]=512
$TIME_POS[9]=512
$TIME_POS[10]=512
$TIME_POS[11]=512
$TIME_POS[12]=512
INT $IN_STILL_MA=4 ;FAKTOR FUER STILLSTANDSFENSTER
INT $VEL_ENC_CO=50 ;DREHZAHLSOLLWERTSCHWELLE FUER GEBERUEBERWACHUNG [WANDLERINKR.]
REAL $COM_VAL_MI[12] ;SOLLDREHZAHLBEGRENZUNG ACHSE[I] (I=1:A1,I=7:E1) [%]
$COM_VAL_MI[1]=150.000
$COM_VAL_MI[2]=150.000
$COM_VAL_MI[3]=150.000
$COM_VAL_MI[4]=150.000
$COM_VAL_MI[5]=150.000
$COM_VAL_MI[6]=150.000
$COM_VAL_MI[7]=150.000
$COM_VAL_MI[8]=150.000
$COM_VAL_MI[9]=150.000
$COM_VAL_MI[10]=150.000
$COM_VAL_MI[11]=150.000
$COM_VAL_MI[12]=150.000
INT $TL_COM_VAL=50 ;TOLERANZZEIT SOLLDREHZAHLBEGRENZUNG [MS]
REAL $SOFTN_END[12] ;SOFTWARE-ENDSCHALTER NEGATIV ACHSE[I] (I=1:A1,I=7:E1) [MM,GRAD]
$SOFTN_END[1]=-185.000
$SOFTN_END[2]=-140.000
$SOFTN_END[3]=-120.000
$SOFTN_END[4]=-350.000
$SOFTN_END[5]=-125.000
$SOFTN_END[6]=-178.000
$SOFTN_END[7]=0.0
$SOFTN_END[8]=0.0
$SOFTN_END[9]=0.0
$SOFTN_END[10]=0.0
$SOFTN_END[11]=0.0
$SOFTN_END[12]=0.0
REAL $SOFTP_END[12] ;SOFTWARE-ENDSCHALTER POSITIV ACHSE[I] (I=1:A1,I=7:E1) [MM,GRAD]
$SOFTP_END[1]=185.000
$SOFTP_END[2]=-5.00000
$SOFTP_END[3]=168.000
$SOFTP_END[4]=350.000
$SOFTP_END[5]=125.000
$SOFTP_END[6]=178.000
$SOFTP_END[7]=0.0
$SOFTP_END[8]=0.0
$SOFTP_END[9]=0.0
$SOFTP_END[10]=0.0
$SOFTP_END[11]=0.0
$SOFTP_END[12]=0.0
DECL AXBOX $AXWORKSPACE[8] ;ACHSSPEZ. ARBEITSRAEUME
$AXWORKSPACE[1]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[2]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[3]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[4]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[5]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[6]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[7]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
$AXWORKSPACE[8]={A1_N 0.0,A1_P 0.0,A2_N 0.0,A2_P 0.0,A3_N 0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P 0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N 0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #OFF,STATE FALSE}
CHAR $AXWORKSPACE_NAME1[24]
$AXWORKSPACE_NAME1[]="AXWORKSPACE_NAME 1"
CHAR $AXWORKSPACE_NAME2[24]
$AXWORKSPACE_NAME2[]="AXWORKSPACE_NAME 2"
CHAR $AXWORKSPACE_NAME3[24]
$AXWORKSPACE_NAME3[]="AXWORKSPACE_NAME 3"
CHAR $AXWORKSPACE_NAME4[24]
$AXWORKSPACE_NAME4[]="AXWORKSPACE_NAME 4"
CHAR $AXWORKSPACE_NAME5[24]
$AXWORKSPACE_NAME5[]="AXWORKSPACE_NAME 5"
CHAR $AXWORKSPACE_NAME6[24]
$AXWORKSPACE_NAME6[]="AXWORKSPACE_NAME 6"
CHAR $AXWORKSPACE_NAME7[24]
$AXWORKSPACE_NAME7[]="AXWORKSPACE_NAME 7"
CHAR $AXWORKSPACE_NAME8[24]
$AXWORKSPACE_NAME8[]="AXWORKSPACE_NAME 8"
DECL CYLINDER $CYLWORKSPACE[8] ;ZYLINDRISCHE KARTESISCHE ARBEITSRAEUME
$CYLWORKSPACE[1]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[2]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[3]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[4]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[5]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[6]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[7]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
$CYLWORKSPACE[8]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,Z1 0.0,Z2 0.0,R 0.0,MODE #OFF,REFERENCE #WORLD,STATE FALSE}
CHAR $CYLWORKSPACE_NAME1[24]
$CYLWORKSPACE_NAME1[]="CYLWORKSPACE_NAME 1"
CHAR $CYLWORKSPACE_NAME2[24]
$CYLWORKSPACE_NAME2[]="CYLWORKSPACE_NAME 2"
CHAR $CYLWORKSPACE_NAME3[24]
$CYLWORKSPACE_NAME3[]="CYLWORKSPACE_NAME 3"
CHAR $CYLWORKSPACE_NAME4[24]
$CYLWORKSPACE_NAME4[]="CYLWORKSPACE_NAME 4"
CHAR $CYLWORKSPACE_NAME5[24]
$CYLWORKSPACE_NAME5[]="CYLWORKSPACE_NAME 5"
CHAR $CYLWORKSPACE_NAME6[24]
$CYLWORKSPACE_NAME6[]="CYLWORKSPACE_NAME 6"
CHAR $CYLWORKSPACE_NAME7[24]
$CYLWORKSPACE_NAME7[]="CYLWORKSPACE_NAME 7"
CHAR $CYLWORKSPACE_NAME8[24]
$CYLWORKSPACE_NAME8[]="CYLWORKSPACE_NAME 8"
DECL DELTA_WORKSPACE $DELTA_WORKSPACE={Z1 0.0,Z2 0.0,Z3 0.0,R1 0.0,R2 0.0,MODE #OFF} ;KARTESISCHER ARBEITSRAUM FUER DELTA-ROBOTER
INT $BRK_MAX_TM=0 ;MAX. BREMSZEIT [MS]
INT $EMSTOP_TIME=100 ;ZEITUEBERWACHUNG FUER NOT_STOP [MS]
INT $ACT_VAL_DIF=0 ;GEBERISTWERTDIFFERENZ [INKR]
CHAR $TRAFONAME[32] ;NAME DER KOORDINATENTRANSFORMATION
$TRAFONAME[]="#KR120R3100_2 C4 FLR" ;MAXIMAL 32 ZEICHEN
DECL SUPPLY_VOLTAGE $SUPPLY_VOLTAGE=#SV380 ; NETZSPANNUNG [#SV120, #SV200, #SV230, #SV380 ;#SV400; #SV440; #SV480]; Netzspannung in [V]
DECL KINCLASS $KINCLASS=#STANDARD ;KINEMATIKKLASSEN (STANDARD,SPECIAL,TEST,NONE,DELTA_KIN)
INT $SIMULATED_AXIS='B0000' ;Simulation von Roboterachsen
INT $SIMULATED_COOP_ROBOTS='B0000' ;Simulierte Roboter im Roboteam-Verbund
INT $ACTIVE_AXIS_MASK='B00111111' ;Aktive Verfahrtasten, achsspez.
INT $ACTIVE_KAR_MASK='B00111111' ;Aktive Verfahrtasten, kartesisch
INT $TRAFO_AXIS=6 ;ANZAHL DER TRANSFORMIERTEN ACHSEN
DECL MAIN_AXIS $MAIN_AXIS=#NR ;GRUNDACHSENKENNUNG (SS = PORTAL, CC = SCARA, NR = GELENKROBOTER)
DECL WRIST_AXIS $WRIST_AXIS=#ZEH ;HANDACHSENKENNUNG (NOH = KEINE HAND, ZEH = ZENTRALHAND, SRH = SCHRAEGHAND DSH = DOPPELSCHRAEGHAND, WIH = WINKELHAND, WSH = WINKELSCHRAEGHAND
INT $A4PAR=0 ;0=ACHSE 4 NICHT PARALLEL, 1=ACHSE 4 PARALLEL ZUR LETZEN ROTATORISCHEN GRUNDACHSE, 2=SONDERKINEMATIK: ACHSE 4 IMMER PARALLEL ZUR Z-IRO ACHSE
BOOL $DEF_A4FIX=FALSE ;ACHSE 4 FIXIERT
BOOL $DEF_A5LINK=FALSE ;4-ACHS-PALETTIERER ( A4=0 GRAD; A5 WIRD UEBER PARALLELOGRAMM GEFUEHRT )
INT $SPINDLE=0 ;SPINDELN (0 = NEIN, 1 = JA)
INT $AXIS_SEQ[6] ;UMORDNUNG VON ACHSE[I] (I=1:A1,I=7:E1)
$AXIS_SEQ[1]=1
$AXIS_SEQ[2]=2
$AXIS_SEQ[3]=3
$AXIS_SEQ[4]=4
$AXIS_SEQ[5]=5
$AXIS_SEQ[6]=6
INT $AXIS_DIR[12] ;DREHRICHTUNG DER ACHSE[I] (I=1:A1,I=7:E1)
$AXIS_DIR[1]=-1
$AXIS_DIR[2]=1
$AXIS_DIR[3]=1
$AXIS_DIR[4]=-1
$AXIS_DIR[5]=-1
$AXIS_DIR[6]=-1
$AXIS_DIR[7]=0
$AXIS_DIR[8]=0
$AXIS_DIR[9]=0
$AXIS_DIR[10]=0
$AXIS_DIR[11]=0
$AXIS_DIR[12]=0
REAL $INC_AXIS[6] ;SCHRITTMASS ACHSSPEZIFISCH
$INC_AXIS[1]=0.00500000
$INC_AXIS[2]=0.000500000
$INC_AXIS[3]=0.000500000
$INC_AXIS[4]=0.00200000
$INC_AXIS[5]=0.00200000
$INC_AXIS[6]=0.00200000
REAL $INC_EXTAX[6] ;SCHRITTMASS ACHSSPEZIFISCH EXTERNE ACHSEN
$INC_EXTAX[1]=10.0000
$INC_EXTAX[2]=10.0000
$INC_EXTAX[3]=10.0000
$INC_EXTAX[4]=10.0000
$INC_EXTAX[5]=10.0000
$INC_EXTAX[6]=10.0000
REAL $INC_CAR[6] ;SCHRITTMASS KARTESISCH WERKZEUGBEZOGEN
$INC_CAR[1]=50.0000
$INC_CAR[2]=50.0000
$INC_CAR[3]=50.0000
$INC_CAR[4]=50.0000
$INC_CAR[5]=50.0000
$INC_CAR[6]=50.0000
INT $POS_SWB[3] ;S-SCHALTBAR
$POS_SWB[1]=0 ;S-SCHALTBAR; UEBERKOPF (O = NEIN, 1 = JA)
$POS_SWB[2]=0 ;S-SCHALTBAR; ACHSE 2-3 (0 = NEIN, 1 = JA)
$POS_SWB[3]=0 ;S-SCHALTBAR; ACHSE 5 (0 = NEIN, 1 = JA)
INT $SINGUL_POS[3] ;BEHANDLUNG UNDEFINIERTER GELENKSTELLUNGEN BEI VORGABE EINES SINGULAEREN PTP-PUNKTES
$SINGUL_POS[1]=0 ;BEHANDLUNG EINER UNDEFINIERTER GELENKSTELLUNG (0 = THETA=0, 1 = THETA=THETA ALT)
$SINGUL_POS[2]=0 ;BEHANDLUNG EINER UNDEFINIERTER GELENKSTELLUNG (0 = THETA=0, 1 = THETA=THETA ALT)
$SINGUL_POS[3]=0 ;BEHANDLUNG EINER UNDEFINIERTER GELENKSTELLUNG (0 = THETA=0, 1 = THETA=THETA ALT)
REAL $DIS_WRP1=1635.00 ;MITTLERER ABSTAND HANDPUNKT ZUR SINGULARITAET 1
REAL $DIS_WRP2=0.0 ;MITTLERER ABSTAND HANDPUNKT ZUR SINGULARITAET 2
INT $ORI_CHECK=0 ;ORIENTIERUNGSPRUEFUNG AN CP-ENDPUNKTEN (NUR BEIM 5 ACHSER)
FRAME $TIRORO={X 0.0,Y 0.0,Z 645.000,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN INTERNEN ROBOTERKOORDINATENSYSTEM UND ROBOTERKOORDINATENSYSTEM
FRAME $TFLWP={X 0.0,Y 0.0,Z 215.000,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN FLANSCH- UND HANDPUNKTKOORDINATENSYSTEM
FRAME $TX3P3={X 1420.00,Y 0.0,Z 115.000,A 0.0,B 90.0000,C 0.0} ;ANBRINGUNG DER ROBOTERHAND
REAL $LENGTH_A=330.000 ;GRUNDACHSLAENGE A
REAL $LENGTH_B=1350.00 ;GRUNDACHSLAENGE B
DECL DHART $DH_4={DHART_A 0.0,DHART_D 0.0,DHART_ALPHA 90.0000} ;A = LAENGE A, D = LAENGE D, ALPHA = WINKEL ALPHA
DECL DHART $DH_5={DHART_A 0.0,DHART_D 0.0,DHART_ALPHA -90.0000} ;A = LAENGE A, D = LAENGE D, ALPHA = WINKEL ALPHA
DECL SPIN $SPIN_A={SPIN_AXIS 0,SPIN_RAD_G 0.0,SPIN_RAD_H 0.0,SPIN_SG 0,SPIN_BETA 0.0} ;AXIS = ACHSE,AUF DIE DIE SPINDEL WIRKT, RAD_G = RADIUS G, RAD_H = RADIUS H SG = VORZEICHEN, BETA = WINKELVERSATZ
DECL SPIN $SPIN_B={SPIN_AXIS 0,SPIN_RAD_G 0.0,SPIN_RAD_H 0.0,SPIN_SG 0,SPIN_BETA 0.0}
DECL SPIN $SPIN_C={SPIN_AXIS 0,SPIN_RAD_G 0.0,SPIN_RAD_H 0.0,SPIN_SG 0,SPIN_BETA 0.0}
DECL TRPSPIN $TRP_A={TRPSP_AXIS 0,TRPSP_COP_AX 0,TRPSP_A 0.0,TRPSP_B 0.0,TRPSP_C 0.0,TRPSP_D 0.0} ;AXIS = UEBER TRAPEZ ANGETRIEBENE ACHSE, COP_AXIS = KOPPELNDE ACHSE, A = TRAPEZLAENGE A, B= TRAPEZLAENGE B, C = TRAPEZLAENGE C, D = TRAPEZLAENGE D
REAL $SPC_KIN[30] ;SONDERKINEMATIKEN
$SPC_KIN[1]=0.0 ;A-PARAMETER FUER GRENZEBACHKINEMATIK
$SPC_KIN[2]=0.0 ;D-PARAMETER FUER GRENZEBACHKINEMATIK
$SPC_KIN[3]=0.0 ;W12-PARAMETER FUER ALLGEMEINE (NICHT-ORTHOGONALE) PORTALKINEMATIKEN
$SPC_KIN[4]=0.0 ;LG-PARAMETER FUER ALLGEMEINE (NICHT-ORTHOGONALE) PORTALKINEMATIKEN
$SPC_KIN[5]=0.0 ;BG-PARAMETER FUER ALLGEMEINE (NICHT-ORTHOGONALE) PORTALKINEMATIKEN
$SPC_KIN[6]=0.0
$SPC_KIN[7]=0.0
$SPC_KIN[8]=0.0
$SPC_KIN[9]=0.0
$SPC_KIN[10]=0.0
$SPC_KIN[11]=0.0
$SPC_KIN[12]=0.0
$SPC_KIN[13]=0.0
$SPC_KIN[14]=0.0
$SPC_KIN[15]=0.0
$SPC_KIN[16]=0.0
$SPC_KIN[17]=0.0
$SPC_KIN[18]=0.0
$SPC_KIN[19]=0.0
$SPC_KIN[20]=0.0
$SPC_KIN[21]=0.0
$SPC_KIN[22]=0.0
$SPC_KIN[23]=0.0
$SPC_KIN[24]=0.0
$SPC_KIN[25]=0.0
$SPC_KIN[26]=0.0
$SPC_KIN[27]=0.0
$SPC_KIN[28]=0.0
$SPC_KIN[29]=0.0
$SPC_KIN[30]=0.0
INT $EX_AX_NUM=0 ;ANZAHL EXTERNER ACHSEN (0-6)
INT $EX_AX_ASYNC='B0000' ;EXTERNE ACHSEN ASYNCHRON
INT $ASYNC_T1_FAST='B0000' ;GESCHW.-RED. DEAKTIVIERT ( T1 )
DECL EX_KIN $EX_KIN={ET1 #NONE,ET2 #NONE,ET3 #NONE,ET4 #NONE,ET5 #NONE,ET6 #NONE} ;EXTERNE KINEMATIKEN #NONE,#EASYS,#EBSYS,#ECSYS,#EDSYS,#EESYS,#EFSYS,#ERSYS
DECL ET_AX $ET1_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET1_NAME[40] ;NAME DER TRANSFORMATION ET1
$ET1_NAME[]=" "
FRAME $ET1_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET1
FRAME $ET1_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET1_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET1_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3
FRAME $ET1_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
DECL ET_AX $ET2_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET2_NAME[40] ;NAME DER TRANSFORMATION ET2
$ET2_NAME[]=" "
FRAME $ET2_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET2
FRAME $ET2_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET2_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET2_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3
FRAME $ET2_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
DECL ET_AX $ET3_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET3_NAME[40] ;NAME DER TRANSFORMATION ET3
$ET3_NAME[]=" "
FRAME $ET3_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET3
FRAME $ET3_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET3_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET3_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3
FRAME $ET3_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
DECL ET_AX $ET4_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET4_NAME[40] ;NAME DER TRANSFORMATION ET4
$ET4_NAME[]=" "
FRAME $ET4_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET4
FRAME $ET4_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET4_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET4_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3
FRAME $ET4_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
DECL ET_AX $ET5_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET5_NAME[40] ;NAME DER TRANSFORMATION ET5
$ET5_NAME[]=" "
FRAME $ET5_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET5
FRAME $ET5_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET5_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET5_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3
FRAME $ET5_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
DECL ET_AX $ET6_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET6_NAME[40] ;NAME DER TRANSFORMATION ET6
$ET6_NAME[]=" "
FRAME $ET6_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET6
FRAME $ET6_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET6_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET6_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3
FRAME $ET6_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
E6AXIS $H_POS={A1 -40.3666763,A2 -84.9813843,A3 100.802277,A4 -0.0544359796,A5 73.7439957,A6 -25.0959282,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS $AXIS_HOME[5]
$AXIS_HOME[1]={A1 -40.3666763,A2 -84.9813843,A3 100.802277,A4 -0.0544359796,A5 73.7439957,A6 -25.0959282,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[2]={A1 -40.3666763,A2 -84.9813843,A3 100.802277,A4 -0.0544359796,A5 73.7439957,A6 -25.0959282,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[3]={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[4]={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[5]={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS $H_POS_TOL={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000}
E6AXIS $H_AXIS_TOL[5] ;TOLERANZFENSTER FUER ERREICHEN DER HOME-STELLUNG $AXIS_HOME[.]
$H_AXIS_TOL[1]={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000}
$H_AXIS_TOL[2]={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000}
$H_AXIS_TOL[3]={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000}
$H_AXIS_TOL[4]={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000}
$H_AXIS_TOL[5]={A1 2.00000,A2 2.00000,A3 2.00000,A4 2.00000,A5 2.00000,A6 2.00000,E1 2.00000,E2 2.00000,E3 2.00000,E4 2.00000,E5 2.00000,E6 2.00000}
REAL $AXIS_JERK[12] ; ERLAUBTER ACHSRUCK [DEG/S^3] / [M/S^3]
$AXIS_JERK[1]=11625.6270
$AXIS_JERK[2]=9117.67188
$AXIS_JERK[3]=31472.6113
$AXIS_JERK[4]=89802.2109
$AXIS_JERK[5]=50787.6
$AXIS_JERK[6]=48245.1914
$AXIS_JERK[7]=1.00000E+19
$AXIS_JERK[8]=1.00000E+19
$AXIS_JERK[9]=1.00000E+19
$AXIS_JERK[10]=1.00000E+19
$AXIS_JERK[11]=1.00000E+19
$AXIS_JERK[12]=1.00000E+19
ENDDAT

View File

@@ -0,0 +1,955 @@
&ACCESS RV$
&REL 2
&PARAM VERSION = 1.0.0
DEFDAT $ROBCOR PUBLIC
CHAR $V_ROBCOR[32]
$V_ROBCOR[]="V42.601.8.1/KUKA8.7" ;VERSIONSKENNUNG
CHAR $MODEL_NAME[32]
$MODEL_NAME[]="#KR120R3100_2 C4 FLR"
DECL ADAP_ACC $ADAP_ACC=#STEP2 ;BESCHLEUNIGUNGSANPASSUNG ( #NONE, #STEP1, #STEP2 )
DECL ADAP_ACC $OPT_MOVE=#STEP2 ;HOEHERES FAHRPROFIL (#NONE, #STEP1, #STEP2)
DECL MODEL_TYPE $MODEL_TYPE=#STANDARD ;Dynamikmodelltyp (#STANDARD, #TORQUE_COUPLED)
DECL ADAP_ACC $EXT_DYN_DAT=#NONE ; Erweiterungsmodus Dynamikmodell (#NONE, #STEP1, #STEP2)
DECL BOOL $OPT_TIME_PTP=FALSE
DECL BOOL $OPT_FLT_PTP=FALSE
DECL CONTROL_PARAMETER $CONTROL_PARAMETER=#MODEL ; Zyklische Parameter fuer die Regelung
BOOL $SPECIAL_CONTROL_T1=FALSE ;Verwendung des konfigurierten Reglerparamters in T1
BOOL $PROG_TORQ_MON=TRUE ;UEBERWACHUNG DER SOLL-MOMENTE MOTOR UND GETRIEBE
BOOL $ENERGY_MON=TRUE ;UEBERWACHUNG KINETISCHE ENERGIE BEI CRASH
BOOL $ENERGY_MODULE_ACTIVE=TRUE
INT $ITER=2 ;ANZAHL DER ITERATIONEN
INT $SYNC=1 ;PHASENANPASSUNG ( 1 = SYNCHRON, 0 = NICHT SYNCHRON )
INT $OPT_APPROX=100 ;REDUZIERUNGSFAKTOR ZUR UEBERSCHLEIFPLANUNG
DECL EKO_MODE $EKO_MODE=#ON ;EKO-MODUS (#OFF,#ON,#OPT)
REAL $DEF_L_M=120.000 ;DEFAULTMASSE AM FLANSCH
FRAME $DEF_L_CM={X 270.000,Y 0.0,Z 240.000,A 0.0,B 0.0,C 0.0} ;MASSENSCHWERPUNKT-FRAME
DECL INERTIA $DEF_L_J={X 60.0000,Y 60.0000,Z 60.0000} ;EIGENTRAEGHEITSMOMENTE DER LAST
REAL $DEF_LA3_M=50.0000 ;DEFAULTMASSE AUF DER ACHSE 3
FRAME $DEF_LA3_CM={X -200.000,Y 0.0,Z -1560.00,A 0.0,B 0.0,C 0.0} ;MASSENSCHWERPUNKT-FRAME A3
DECL INERTIA $DEF_LA3_J={X 10.0000,Y 10.0000,Z 10.0000} ;EIGENTRAEGHEITSMOMENTE DER LAST AUF A3
REAL $COMPENSATED_LOAD=0.0 ;MASSENAEQUIVALENT FUER KONSTANTEN GEWICHTSAUSGLEICH EINER LINEARACHSE
REAL $DYN_DAT[500]
$DYN_DAT[1]=31.5035782
$DYN_DAT[2]=6.74725866
$DYN_DAT[3]=82.8798370
$DYN_DAT[4]=82.4939957
$DYN_DAT[5]=3.72506523
$DYN_DAT[6]=32.2409897
$DYN_DAT[7]=31.8371220
$DYN_DAT[8]=2.93833089
$DYN_DAT[9]=2.83191609
$DYN_DAT[10]=0.354919046
$DYN_DAT[11]=305.600
$DYN_DAT[12]=645.000
$DYN_DAT[13]=330.000
$DYN_DAT[14]=1350.00
$DYN_DAT[15]=115.000
$DYN_DAT[16]=1028.00
$DYN_DAT[17]=1420.00
$DYN_DAT[18]=215.000
$DYN_DAT[19]=577.871155
$DYN_DAT[20]=262.230225
$DYN_DAT[21]=91.4090042
$DYN_DAT[22]=250.560
$DYN_DAT[23]=199.330
$DYN_DAT[24]=66.0035248
$DYN_DAT[25]=200.000
$DYN_DAT[26]=800.041931
$DYN_DAT[27]=1669.00
$DYN_DAT[28]=1.67000
$DYN_DAT[29]=130.000
$DYN_DAT[30]=150.000
$DYN_DAT[31]=607.433105
$DYN_DAT[32]=505.850342
$DYN_DAT[33]=434.668365
$DYN_DAT[34]=63.7413063
$DYN_DAT[35]=73.4352
$DYN_DAT[36]=36.9605522
$DYN_DAT[37]=7290.00
$DYN_DAT[38]=8910.00
$DYN_DAT[39]=7653.15039
$DYN_DAT[40]=2462.39209
$DYN_DAT[41]=1491.69885
$DYN_DAT[42]=908.431213
$DYN_DAT[43]=35.1000
$DYN_DAT[44]=50.3100
$DYN_DAT[45]=50.3100
$DYN_DAT[46]=16.8100
$DYN_DAT[47]=16.8100
$DYN_DAT[48]=19.7500
$DYN_DAT[49]=264.680420
$DYN_DAT[50]=542.622803
$DYN_DAT[51]=562.341858
$DYN_DAT[52]=154.141571
$DYN_DAT[53]=68.1906891
$DYN_DAT[54]=22.8365917
$DYN_DAT[55]=539.213867
$DYN_DAT[56]=436.685333
$DYN_DAT[57]=231.943405
$DYN_DAT[58]=51.0789948
$DYN_DAT[59]=96.4913254
$DYN_DAT[60]=123.570305
$DYN_DAT[61]=1.00000
$DYN_DAT[62]=1.00000
$DYN_DAT[63]=1.00000
$DYN_DAT[64]=1.00000
$DYN_DAT[65]=1.00000
$DYN_DAT[66]=1.00000
$DYN_DAT[67]=1.00000
$DYN_DAT[68]=1.00000
$DYN_DAT[69]=1.00000
$DYN_DAT[70]=1.00000
$DYN_DAT[71]=1.00000
$DYN_DAT[72]=1.00000
$DYN_DAT[73]=0.900000
$DYN_DAT[74]=0.900000
$DYN_DAT[75]=0.900000
$DYN_DAT[76]=0.900000
$DYN_DAT[77]=0.900000
$DYN_DAT[78]=0.900000
$DYN_DAT[79]=0.0
$DYN_DAT[80]=0.0
$DYN_DAT[81]=0.0
$DYN_DAT[82]=-1.00000
$DYN_DAT[83]=-4.99800
$DYN_DAT[84]=0.0
$DYN_DAT[85]=0.0
$DYN_DAT[86]=0.0
$DYN_DAT[87]=0.0
$DYN_DAT[88]=0.0
$DYN_DAT[89]=0.0
$DYN_DAT[90]=0.0
$DYN_DAT[91]=0.0
$DYN_DAT[92]=0.0
$DYN_DAT[93]=0.0
$DYN_DAT[94]=0.0
$DYN_DAT[95]=0.0
$DYN_DAT[96]=0.0
$DYN_DAT[97]=0.0
$DYN_DAT[98]=1.00000
$DYN_DAT[99]=0.0
$DYN_DAT[100]=363.070
$DYN_DAT[101]=28.7872
$DYN_DAT[102]=-11.8752
$DYN_DAT[103]=539.628296
$DYN_DAT[104]=0.0
$DYN_DAT[105]=0.0
$DYN_DAT[106]=225.960
$DYN_DAT[107]=1.33000
$DYN_DAT[108]=0.0
$DYN_DAT[109]=0.0
$DYN_DAT[110]=0.0
$DYN_DAT[111]=0.0
$DYN_DAT[112]=0.0
$DYN_DAT[113]=0.0
$DYN_DAT[114]=0.0
$DYN_DAT[115]=0.0
$DYN_DAT[116]=165.000
$DYN_DAT[117]=69.7000
$DYN_DAT[118]=-125.571701
$DYN_DAT[119]=137.627701
$DYN_DAT[120]=0.0
$DYN_DAT[121]=0.0
$DYN_DAT[122]=0.0
$DYN_DAT[123]=0.0
$DYN_DAT[124]=0.0
$DYN_DAT[125]=0.0
$DYN_DAT[126]=0.0
$DYN_DAT[127]=0.0
$DYN_DAT[128]=0.0
$DYN_DAT[129]=0.0
$DYN_DAT[130]=0.0
$DYN_DAT[131]=0.0
$DYN_DAT[132]=0.0
$DYN_DAT[133]=0.0
$DYN_DAT[134]=0.0
$DYN_DAT[135]=0.0
$DYN_DAT[136]=0.0
$DYN_DAT[137]=0.0
$DYN_DAT[138]=0.0
$DYN_DAT[139]=0.0
$DYN_DAT[140]=0.0
$DYN_DAT[141]=0.0
$DYN_DAT[142]=0.0
$DYN_DAT[143]=0.0
$DYN_DAT[144]=0.0
$DYN_DAT[145]=0.0
$DYN_DAT[146]=0.0
$DYN_DAT[147]=0.0
$DYN_DAT[148]=0.0
$DYN_DAT[149]=0.0
$DYN_DAT[150]=0.0
$DYN_DAT[151]=0.0
$DYN_DAT[152]=0.0
$DYN_DAT[153]=0.0
$DYN_DAT[154]=0.0
$DYN_DAT[155]=0.0
$DYN_DAT[156]=0.0
$DYN_DAT[157]=0.0
$DYN_DAT[158]=0.0
$DYN_DAT[159]=0.0
$DYN_DAT[160]=0.0
$DYN_DAT[161]=0.0
$DYN_DAT[162]=0.0
$DYN_DAT[163]=0.0
$DYN_DAT[164]=0.0
$DYN_DAT[165]=0.0
$DYN_DAT[166]=0.0
$DYN_DAT[167]=0.0
$DYN_DAT[168]=0.0
$DYN_DAT[169]=0.0
$DYN_DAT[170]=0.0
$DYN_DAT[171]=0.0
$DYN_DAT[172]=0.0
$DYN_DAT[173]=0.0
$DYN_DAT[174]=0.0
$DYN_DAT[175]=0.0
$DYN_DAT[176]=0.0
$DYN_DAT[177]=0.0
$DYN_DAT[178]=0.0
$DYN_DAT[179]=0.0
$DYN_DAT[180]=0.0
$DYN_DAT[181]=0.0
$DYN_DAT[182]=0.0
$DYN_DAT[183]=0.0
$DYN_DAT[184]=0.0
$DYN_DAT[185]=0.0
$DYN_DAT[186]=0.0
$DYN_DAT[187]=0.0
$DYN_DAT[188]=0.0
$DYN_DAT[189]=0.0
$DYN_DAT[190]=0.0
$DYN_DAT[191]=0.0
$DYN_DAT[192]=0.0
$DYN_DAT[193]=0.0
$DYN_DAT[194]=0.0
$DYN_DAT[195]=0.0
$DYN_DAT[196]=0.0
$DYN_DAT[197]=0.0
$DYN_DAT[198]=0.0
$DYN_DAT[199]=0.0
$DYN_DAT[200]=0.0
$DYN_DAT[201]=0.0
$DYN_DAT[202]=0.0
$DYN_DAT[203]=0.0
$DYN_DAT[204]=0.0
$DYN_DAT[205]=0.0
$DYN_DAT[206]=0.0
$DYN_DAT[207]=0.0
$DYN_DAT[208]=0.0
$DYN_DAT[209]=0.0
$DYN_DAT[210]=0.0
$DYN_DAT[211]=0.0
$DYN_DAT[212]=0.0
$DYN_DAT[213]=0.0
$DYN_DAT[214]=0.0
$DYN_DAT[215]=0.0
$DYN_DAT[216]=0.0
$DYN_DAT[217]=0.0
$DYN_DAT[218]=0.0
$DYN_DAT[219]=0.0
$DYN_DAT[220]=0.0
$DYN_DAT[221]=0.0
$DYN_DAT[222]=0.0
$DYN_DAT[223]=0.0
$DYN_DAT[224]=1.00000
$DYN_DAT[225]=3.00000
$DYN_DAT[226]=5.00000
$DYN_DAT[227]=0.0
$DYN_DAT[228]=0.0
$DYN_DAT[229]=0.0
$DYN_DAT[230]=0.0
$DYN_DAT[231]=250.000
$DYN_DAT[232]=250.000
$DYN_DAT[233]=250.000
$DYN_DAT[234]=250.000
$DYN_DAT[235]=250.000
$DYN_DAT[236]=250.000
$DYN_DAT[237]=0.0
$DYN_DAT[238]=0.0
$DYN_DAT[239]=0.0
$DYN_DAT[240]=0.0
$DYN_DAT[241]=0.0
$DYN_DAT[242]=0.0
$DYN_DAT[243]=6300.00
$DYN_DAT[244]=3300.00
$DYN_DAT[245]=1800.00
$DYN_DAT[246]=750.000
$DYN_DAT[247]=675.000
$DYN_DAT[248]=600.000
$DYN_DAT[249]=0.0
$DYN_DAT[250]=0.0
$DYN_DAT[251]=0.0
$DYN_DAT[252]=0.0
$DYN_DAT[253]=0.0
$DYN_DAT[254]=0.0
$DYN_DAT[255]=0.0
$DYN_DAT[256]=0.0
$DYN_DAT[257]=0.0
$DYN_DAT[258]=0.0
$DYN_DAT[259]=0.0
$DYN_DAT[260]=0.0
$DYN_DAT[261]=0.0
$DYN_DAT[262]=0.0
$DYN_DAT[263]=0.0
$DYN_DAT[264]=0.0
$DYN_DAT[265]=0.0
$DYN_DAT[266]=0.0
$DYN_DAT[267]=0.0
$DYN_DAT[268]=71470.5859
$DYN_DAT[269]=87352.9375
$DYN_DAT[270]=75030.8828
$DYN_DAT[271]=24141.1
$DYN_DAT[272]=14624.4980
$DYN_DAT[273]=8906.18848
$DYN_DAT[274]=0.0
$DYN_DAT[275]=0.0
$DYN_DAT[276]=0.0
$DYN_DAT[277]=0.0
$DYN_DAT[278]=0.0
$DYN_DAT[279]=0.0
$DYN_DAT[280]=0.0
$DYN_DAT[281]=0.0
$DYN_DAT[282]=0.0
$DYN_DAT[283]=0.0
$DYN_DAT[284]=0.0
$DYN_DAT[285]=0.0
$DYN_DAT[286]=0.0
$DYN_DAT[287]=0.0
$DYN_DAT[288]=0.0
$DYN_DAT[289]=0.0
$DYN_DAT[290]=0.0
$DYN_DAT[291]=0.0
$DYN_DAT[292]=0.0
$DYN_DAT[293]=0.0
$DYN_DAT[294]=0.0
$DYN_DAT[295]=0.0
$DYN_DAT[296]=0.0
$DYN_DAT[297]=0.0
$DYN_DAT[298]=0.0
$DYN_DAT[299]=0.0
$DYN_DAT[300]=0.0
$DYN_DAT[301]=0.0
$DYN_DAT[302]=0.0
$DYN_DAT[303]=0.0
$DYN_DAT[304]=0.0
$DYN_DAT[305]=0.0
$DYN_DAT[306]=0.0
$DYN_DAT[307]=0.0
$DYN_DAT[308]=0.0
$DYN_DAT[309]=0.0
$DYN_DAT[310]=0.0
$DYN_DAT[311]=0.0
$DYN_DAT[312]=0.0
$DYN_DAT[313]=0.0
$DYN_DAT[314]=0.0
$DYN_DAT[315]=0.0
$DYN_DAT[316]=0.0
$DYN_DAT[317]=0.0
$DYN_DAT[318]=0.0
$DYN_DAT[319]=0.0
$DYN_DAT[320]=0.0
$DYN_DAT[321]=0.0
$DYN_DAT[322]=0.0
$DYN_DAT[323]=0.0
$DYN_DAT[324]=0.0
$DYN_DAT[325]=0.0
$DYN_DAT[326]=0.0
$DYN_DAT[327]=0.0
$DYN_DAT[328]=0.0
$DYN_DAT[329]=0.0
$DYN_DAT[330]=0.0
$DYN_DAT[331]=0.0
$DYN_DAT[332]=0.0
$DYN_DAT[333]=0.0
$DYN_DAT[334]=0.0
$DYN_DAT[335]=0.0
$DYN_DAT[336]=0.0
$DYN_DAT[337]=0.0
$DYN_DAT[338]=0.0
$DYN_DAT[339]=0.0
$DYN_DAT[340]=0.0
$DYN_DAT[341]=0.0
$DYN_DAT[342]=0.0
$DYN_DAT[343]=0.0
$DYN_DAT[344]=0.0
$DYN_DAT[345]=0.0
$DYN_DAT[346]=0.0
$DYN_DAT[347]=0.0
$DYN_DAT[348]=0.0
$DYN_DAT[349]=0.0
$DYN_DAT[350]=0.0
$DYN_DAT[351]=221.356613
$DYN_DAT[352]=375.734467
$DYN_DAT[353]=575.960754
$DYN_DAT[354]=576.061279
$DYN_DAT[355]=0.0
$DYN_DAT[356]=0.0
$DYN_DAT[357]=35.1000
$DYN_DAT[358]=20.8000
$DYN_DAT[359]=12.9000
$DYN_DAT[360]=0.0
$DYN_DAT[361]=0.0
$DYN_DAT[362]=0.0
$DYN_DAT[363]=169.225037
$DYN_DAT[364]=331.331207
$DYN_DAT[365]=523.596680
$DYN_DAT[366]=523.640686
$DYN_DAT[367]=0.0
$DYN_DAT[368]=0.0
$DYN_DAT[369]=50.3100
$DYN_DAT[370]=28.3900
$DYN_DAT[371]=15.7300
$DYN_DAT[372]=0.0
$DYN_DAT[373]=0.0
$DYN_DAT[374]=0.0
$DYN_DAT[375]=169.225037
$DYN_DAT[376]=331.331207
$DYN_DAT[377]=523.596680
$DYN_DAT[378]=523.640686
$DYN_DAT[379]=0.0
$DYN_DAT[380]=0.0
$DYN_DAT[381]=50.3100
$DYN_DAT[382]=28.3900
$DYN_DAT[383]=15.7300
$DYN_DAT[384]=0.0
$DYN_DAT[385]=0.0
$DYN_DAT[386]=0.0
$DYN_DAT[387]=219.597321
$DYN_DAT[388]=406.207916
$DYN_DAT[389]=628.318542
$DYN_DAT[390]=628.381348
$DYN_DAT[391]=0.0
$DYN_DAT[392]=0.0
$DYN_DAT[393]=16.8100
$DYN_DAT[394]=9.40000
$DYN_DAT[395]=4.65000
$DYN_DAT[396]=0.0
$DYN_DAT[397]=0.0
$DYN_DAT[398]=0.0
$DYN_DAT[399]=219.597321
$DYN_DAT[400]=406.207916
$DYN_DAT[401]=628.318542
$DYN_DAT[402]=628.381348
$DYN_DAT[403]=0.0
$DYN_DAT[404]=0.0
$DYN_DAT[405]=16.8100
$DYN_DAT[406]=6.40000
$DYN_DAT[407]=1.00000
$DYN_DAT[408]=0.0
$DYN_DAT[409]=0.0
$DYN_DAT[410]=0.0
$DYN_DAT[411]=254.783157
$DYN_DAT[412]=418.899963
$DYN_DAT[413]=628.318542
$DYN_DAT[414]=628.381348
$DYN_DAT[415]=0.0
$DYN_DAT[416]=0.0
$DYN_DAT[417]=19.7500
$DYN_DAT[418]=8.00000
$DYN_DAT[419]=1.00000
$DYN_DAT[420]=0.0
$DYN_DAT[421]=0.0
$DYN_DAT[422]=0.0
$DYN_DAT[423]=1.26103401
$DYN_DAT[424]=1.71415257
$DYN_DAT[425]=1.95936179
$DYN_DAT[426]=2.03848243
$DYN_DAT[427]=0.0
$DYN_DAT[428]=0.0
$DYN_DAT[429]=5988.09668
$DYN_DAT[430]=4502.76611
$DYN_DAT[431]=2891.08862
$DYN_DAT[432]=1215.00
$DYN_DAT[433]=0.0
$DYN_DAT[434]=0.0
$DYN_DAT[435]=1.20332015
$DYN_DAT[436]=1.63570070
$DYN_DAT[437]=1.86968756
$DYN_DAT[438]=1.94518697
$DYN_DAT[439]=0.0
$DYN_DAT[440]=0.0
$DYN_DAT[441]=7318.78516
$DYN_DAT[442]=5503.38086
$DYN_DAT[443]=3533.55298
$DYN_DAT[444]=1485.00
$DYN_DAT[445]=0.0
$DYN_DAT[446]=0.0
$DYN_DAT[447]=1.28874850
$DYN_DAT[448]=1.75182557
$DYN_DAT[449]=2.00242400
$DYN_DAT[450]=2.08328342
$DYN_DAT[451]=0.0
$DYN_DAT[452]=0.0
$DYN_DAT[453]=6813.30957
$DYN_DAT[454]=5855.14258
$DYN_DAT[455]=4815.47070
$DYN_DAT[456]=3734.24780
$DYN_DAT[457]=0.0
$DYN_DAT[458]=0.0
$DYN_DAT[459]=2.05140209
$DYN_DAT[460]=2.78851819
$DYN_DAT[461]=3.18741512
$DYN_DAT[462]=3.31612563
$DYN_DAT[463]=0.0
$DYN_DAT[464]=0.0
$DYN_DAT[465]=2073.56714
$DYN_DAT[466]=1629.96
$DYN_DAT[467]=1148.61816
$DYN_DAT[468]=648.039307
$DYN_DAT[469]=0.0
$DYN_DAT[470]=0.0
$DYN_DAT[471]=1.94343352
$DYN_DAT[472]=2.64175391
$DYN_DAT[473]=3.01965642
$DYN_DAT[474]=3.14159274
$DYN_DAT[475]=0.0
$DYN_DAT[476]=0.0
$DYN_DAT[477]=1309.49817
$DYN_DAT[478]=1101.62708
$DYN_DAT[479]=876.073669
$DYN_DAT[480]=641.506
$DYN_DAT[481]=0.0
$DYN_DAT[482]=0.0
$DYN_DAT[483]=2.80718184
$DYN_DAT[484]=3.81586695
$DYN_DAT[485]=4.36172628
$DYN_DAT[486]=4.53785610
$DYN_DAT[487]=0.0
$DYN_DAT[488]=0.0
$DYN_DAT[489]=781.865356
$DYN_DAT[490]=637.467468
$DYN_DAT[491]=480.786652
$DYN_DAT[492]=317.844
$DYN_DAT[493]=0.0
$DYN_DAT[494]=0.0
$DYN_DAT[495]=0.0
$DYN_DAT[496]=0.0
$DYN_DAT[497]=0.0
$DYN_DAT[498]=0.0
$DYN_DAT[499]=0.0
$DYN_DAT[500]=0.0
REAL $EKO_DAT[400] ;MODELLPARAMETER FUER DIE ELASTIZITAETSKOMPENSATION
$EKO_DAT[1]=1.00000
$EKO_DAT[2]=32.0000
$EKO_DAT[3]=2.00000
$EKO_DAT[4]=0.0
$EKO_DAT[5]=1.00000
$EKO_DAT[6]=0.0
$EKO_DAT[7]=1.00000
$EKO_DAT[8]=0.0
$EKO_DAT[9]=0.0
$EKO_DAT[10]=0.0
$EKO_DAT[11]=0.0
$EKO_DAT[12]=0.0
$EKO_DAT[13]=1.00000
$EKO_DAT[14]=1.00000
$EKO_DAT[15]=1.00000
$EKO_DAT[16]=0.0
$EKO_DAT[17]=0.0
$EKO_DAT[18]=0.0
$EKO_DAT[19]=0.0
$EKO_DAT[20]=0.0
$EKO_DAT[21]=0.0
$EKO_DAT[22]=0.0
$EKO_DAT[23]=0.0
$EKO_DAT[24]=0.0
$EKO_DAT[25]=26.4680
$EKO_DAT[26]=54.2623
$EKO_DAT[27]=56.2342
$EKO_DAT[28]=0.0
$EKO_DAT[29]=0.0
$EKO_DAT[30]=0.0
$EKO_DAT[31]=0.0
$EKO_DAT[32]=0.0
$EKO_DAT[33]=0.0
$EKO_DAT[34]=0.0
$EKO_DAT[35]=0.0
$EKO_DAT[36]=0.0
$EKO_DAT[37]=53.9213905
$EKO_DAT[38]=43.6685333
$EKO_DAT[39]=23.1943398
$EKO_DAT[40]=0.0
$EKO_DAT[41]=0.0
$EKO_DAT[42]=0.0
$EKO_DAT[43]=0.0
$EKO_DAT[44]=0.0
$EKO_DAT[45]=0.0
$EKO_DAT[46]=0.0
$EKO_DAT[47]=0.0
$EKO_DAT[48]=0.0
$EKO_DAT[49]=100.000
$EKO_DAT[50]=100.000
$EKO_DAT[51]=100.000
$EKO_DAT[52]=0.0
$EKO_DAT[53]=0.0
$EKO_DAT[54]=0.0
$EKO_DAT[55]=0.0
$EKO_DAT[56]=0.0
$EKO_DAT[57]=0.0
$EKO_DAT[58]=0.0
$EKO_DAT[59]=0.0
$EKO_DAT[60]=0.0
$EKO_DAT[61]=2158993.00
$EKO_DAT[62]=2893251.00
$EKO_DAT[63]=3236854.75
$EKO_DAT[64]=0.0
$EKO_DAT[65]=0.0
$EKO_DAT[66]=0.0
$EKO_DAT[67]=0.0
$EKO_DAT[68]=0.0
$EKO_DAT[69]=0.0
$EKO_DAT[70]=0.0
$EKO_DAT[71]=0.0
$EKO_DAT[72]=0.0
$EKO_DAT[73]=2158994.00
$EKO_DAT[74]=2893252.00
$EKO_DAT[75]=3236855.75
$EKO_DAT[76]=0.0
$EKO_DAT[77]=0.0
$EKO_DAT[78]=0.0
$EKO_DAT[79]=0.0
$EKO_DAT[80]=0.0
$EKO_DAT[81]=0.0
$EKO_DAT[82]=0.0
$EKO_DAT[83]=0.0
$EKO_DAT[84]=0.0
$EKO_DAT[85]=0.000273910
$EKO_DAT[86]=0.000376320
$EKO_DAT[87]=0.000664540
$EKO_DAT[88]=0.0
$EKO_DAT[89]=0.0
$EKO_DAT[90]=0.0
$EKO_DAT[91]=0.0
$EKO_DAT[92]=0.0
$EKO_DAT[93]=0.0
$EKO_DAT[94]=0.0
$EKO_DAT[95]=0.0
$EKO_DAT[96]=0.0
$EKO_DAT[97]=0.000334920
$EKO_DAT[98]=0.000141890
$EKO_DAT[99]=0.000337550
$EKO_DAT[100]=0.0
$EKO_DAT[101]=0.0
$EKO_DAT[102]=0.0
$EKO_DAT[103]=0.0
$EKO_DAT[104]=0.0
$EKO_DAT[105]=0.0
$EKO_DAT[106]=0.0
$EKO_DAT[107]=0.0
$EKO_DAT[108]=0.0
$EKO_DAT[109]=5592.42285
$EKO_DAT[110]=4180.37500
$EKO_DAT[111]=6869.48438
$EKO_DAT[112]=0.0
$EKO_DAT[113]=0.0
$EKO_DAT[114]=0.0
$EKO_DAT[115]=0.0
$EKO_DAT[116]=0.0
$EKO_DAT[117]=0.0
$EKO_DAT[118]=0.0
$EKO_DAT[119]=0.0
$EKO_DAT[120]=0.0
$EKO_DAT[121]=1.00000
$EKO_DAT[122]=1.00000
$EKO_DAT[123]=1.00000
$EKO_DAT[124]=0.0
$EKO_DAT[125]=0.0
$EKO_DAT[126]=0.0
$EKO_DAT[127]=0.0
$EKO_DAT[128]=0.0
$EKO_DAT[129]=0.0
$EKO_DAT[130]=0.0
$EKO_DAT[131]=0.0
$EKO_DAT[132]=0.0
$EKO_DAT[133]=607.433105
$EKO_DAT[134]=505.850342
$EKO_DAT[135]=434.668365
$EKO_DAT[136]=63.7413063
$EKO_DAT[137]=73.4352
$EKO_DAT[138]=36.9605522
$EKO_DAT[139]=0.0
$EKO_DAT[140]=0.0
$EKO_DAT[141]=0.0
$EKO_DAT[142]=0.0
$EKO_DAT[143]=0.0
$EKO_DAT[144]=0.0
$EKO_DAT[145]=238.212402
$EKO_DAT[146]=488.360504
$EKO_DAT[147]=506.107697
$EKO_DAT[148]=0.0
$EKO_DAT[149]=0.0
$EKO_DAT[150]=0.0
$EKO_DAT[151]=0.0
$EKO_DAT[152]=0.0
$EKO_DAT[153]=0.0
$EKO_DAT[154]=0.0
$EKO_DAT[155]=0.0
$EKO_DAT[156]=0.0
$EKO_DAT[157]=485.292511
$EKO_DAT[158]=393.016815
$EKO_DAT[159]=208.749054
$EKO_DAT[160]=0.0
$EKO_DAT[161]=0.0
$EKO_DAT[162]=0.0
$EKO_DAT[163]=0.0
$EKO_DAT[164]=0.0
$EKO_DAT[165]=0.0
$EKO_DAT[166]=0.0
$EKO_DAT[167]=0.0
$EKO_DAT[168]=0.0
$EKO_DAT[169]=100.000
$EKO_DAT[170]=100.000
$EKO_DAT[171]=100.000
$EKO_DAT[172]=0.0
$EKO_DAT[173]=0.0
$EKO_DAT[174]=0.0
$EKO_DAT[175]=0.0
$EKO_DAT[176]=0.0
$EKO_DAT[177]=0.0
$EKO_DAT[178]=0.0
$EKO_DAT[179]=0.0
$EKO_DAT[180]=0.0
$EKO_DAT[181]=0.0
$EKO_DAT[182]=0.0
$EKO_DAT[183]=0.0
$EKO_DAT[184]=0.0
$EKO_DAT[185]=0.0
$EKO_DAT[186]=0.0
$EKO_DAT[187]=0.0
$EKO_DAT[188]=0.0
$EKO_DAT[189]=0.0
$EKO_DAT[190]=0.0
$EKO_DAT[191]=0.0
$EKO_DAT[192]=0.0
$EKO_DAT[193]=0.0
$EKO_DAT[194]=0.0
$EKO_DAT[195]=0.0
$EKO_DAT[196]=0.0
$EKO_DAT[197]=0.0
$EKO_DAT[198]=0.0
$EKO_DAT[199]=0.0
$EKO_DAT[200]=0.0
$EKO_DAT[201]=0.0
$EKO_DAT[202]=0.0
$EKO_DAT[203]=0.0
$EKO_DAT[204]=0.0
$EKO_DAT[205]=0.0
$EKO_DAT[206]=0.0
$EKO_DAT[207]=0.0
$EKO_DAT[208]=0.0
$EKO_DAT[209]=0.0
$EKO_DAT[210]=0.0
$EKO_DAT[211]=0.0
$EKO_DAT[212]=0.0
$EKO_DAT[213]=0.0
$EKO_DAT[214]=0.0
$EKO_DAT[215]=0.0
$EKO_DAT[216]=0.0
$EKO_DAT[217]=0.0
$EKO_DAT[218]=0.0
$EKO_DAT[219]=0.0
$EKO_DAT[220]=0.0
$EKO_DAT[221]=0.0
$EKO_DAT[222]=0.0
$EKO_DAT[223]=0.0
$EKO_DAT[224]=0.0
$EKO_DAT[225]=0.0
$EKO_DAT[226]=0.0
$EKO_DAT[227]=0.0
$EKO_DAT[228]=0.0
$EKO_DAT[229]=0.0
$EKO_DAT[230]=0.0
$EKO_DAT[231]=0.0
$EKO_DAT[232]=0.0
$EKO_DAT[233]=0.0
$EKO_DAT[234]=0.0
$EKO_DAT[235]=0.0
$EKO_DAT[236]=0.0
$EKO_DAT[237]=0.0
$EKO_DAT[238]=0.0
$EKO_DAT[239]=1406028.88
$EKO_DAT[240]=2700795.25
$EKO_DAT[241]=1.00100
$EKO_DAT[242]=-49678.1406
$EKO_DAT[243]=-17286.8516
$EKO_DAT[244]=170667.734
$EKO_DAT[245]=42144.5977
$EKO_DAT[246]=154361.125
$EKO_DAT[247]=318340.125
$EKO_DAT[248]=-93479.8
$EKO_DAT[249]=-129813.617
$EKO_DAT[250]=110971.758
$EKO_DAT[251]=-449806.719
$EKO_DAT[252]=-1328978.88
$EKO_DAT[253]=-246033.625
$EKO_DAT[254]=-820159.063
$EKO_DAT[255]=-2096703.00
$EKO_DAT[256]=243348.875
$EKO_DAT[257]=2740767.50
$EKO_DAT[258]=0.0
$EKO_DAT[259]=0.0
$EKO_DAT[260]=0.0
$EKO_DAT[261]=0.0
$EKO_DAT[262]=0.0
$EKO_DAT[263]=0.0
$EKO_DAT[264]=0.0
$EKO_DAT[265]=0.0
$EKO_DAT[266]=0.0
$EKO_DAT[267]=0.0
$EKO_DAT[268]=0.0
$EKO_DAT[269]=0.0
$EKO_DAT[270]=0.0
$EKO_DAT[271]=0.0
$EKO_DAT[272]=0.0
$EKO_DAT[273]=0.0
$EKO_DAT[274]=0.0
$EKO_DAT[275]=0.0
$EKO_DAT[276]=0.0
$EKO_DAT[277]=0.0
$EKO_DAT[278]=0.0
$EKO_DAT[279]=0.0
$EKO_DAT[280]=0.0
$EKO_DAT[281]=0.0
$EKO_DAT[282]=0.0
$EKO_DAT[283]=0.0
$EKO_DAT[284]=0.0
$EKO_DAT[285]=0.0
$EKO_DAT[286]=0.0
$EKO_DAT[287]=0.0
$EKO_DAT[288]=0.0
$EKO_DAT[289]=0.0
$EKO_DAT[290]=0.0
$EKO_DAT[291]=0.0
$EKO_DAT[292]=0.0
$EKO_DAT[293]=0.0
$EKO_DAT[294]=0.0
$EKO_DAT[295]=0.0
$EKO_DAT[296]=0.0
$EKO_DAT[297]=0.0
$EKO_DAT[298]=0.0
$EKO_DAT[299]=0.0
$EKO_DAT[300]=0.0
$EKO_DAT[301]=0.0
$EKO_DAT[302]=0.0
$EKO_DAT[303]=0.0
$EKO_DAT[304]=0.0
$EKO_DAT[305]=0.0
$EKO_DAT[306]=0.0
$EKO_DAT[307]=0.0
$EKO_DAT[308]=0.0
$EKO_DAT[309]=0.0
$EKO_DAT[310]=0.0
$EKO_DAT[311]=0.0
$EKO_DAT[312]=0.0
$EKO_DAT[313]=0.0
$EKO_DAT[314]=0.0
$EKO_DAT[315]=0.0
$EKO_DAT[316]=0.0
$EKO_DAT[317]=0.0
$EKO_DAT[318]=0.0
$EKO_DAT[319]=0.0
$EKO_DAT[320]=0.0
$EKO_DAT[321]=0.0
$EKO_DAT[322]=0.0
$EKO_DAT[323]=0.0
$EKO_DAT[324]=0.0
$EKO_DAT[325]=0.0
$EKO_DAT[326]=0.0
$EKO_DAT[327]=0.0
$EKO_DAT[328]=0.0
$EKO_DAT[329]=0.0
$EKO_DAT[330]=0.0
$EKO_DAT[331]=0.0
$EKO_DAT[332]=0.0
$EKO_DAT[333]=0.0
$EKO_DAT[334]=0.0
$EKO_DAT[335]=0.0
$EKO_DAT[336]=0.0
$EKO_DAT[337]=0.0
$EKO_DAT[338]=0.0
$EKO_DAT[339]=0.0
$EKO_DAT[340]=0.0
$EKO_DAT[341]=0.0
$EKO_DAT[342]=0.0
$EKO_DAT[343]=0.0
$EKO_DAT[344]=0.0
$EKO_DAT[345]=0.0
$EKO_DAT[346]=0.0
$EKO_DAT[347]=0.0
$EKO_DAT[348]=0.0
$EKO_DAT[349]=0.0
$EKO_DAT[350]=0.0
$EKO_DAT[351]=0.0
$EKO_DAT[352]=0.0
$EKO_DAT[353]=0.0
$EKO_DAT[354]=0.0
$EKO_DAT[355]=0.0
$EKO_DAT[356]=0.0
$EKO_DAT[357]=0.0
$EKO_DAT[358]=0.0
$EKO_DAT[359]=0.0
$EKO_DAT[360]=0.0
$EKO_DAT[361]=0.0
$EKO_DAT[362]=0.0
$EKO_DAT[363]=0.0
$EKO_DAT[364]=0.0
$EKO_DAT[365]=0.0
$EKO_DAT[366]=0.0
$EKO_DAT[367]=0.0
$EKO_DAT[368]=0.0
$EKO_DAT[369]=0.0
$EKO_DAT[370]=0.0
$EKO_DAT[371]=0.0
$EKO_DAT[372]=0.0
$EKO_DAT[373]=0.0
$EKO_DAT[374]=0.0
$EKO_DAT[375]=0.0
$EKO_DAT[376]=0.0
$EKO_DAT[377]=0.0
$EKO_DAT[378]=0.0
$EKO_DAT[379]=0.0
$EKO_DAT[380]=0.0
$EKO_DAT[381]=0.0
$EKO_DAT[382]=0.0
$EKO_DAT[383]=0.0
$EKO_DAT[384]=0.0
$EKO_DAT[385]=0.0
$EKO_DAT[386]=0.0
$EKO_DAT[387]=0.0
$EKO_DAT[388]=0.0
$EKO_DAT[389]=0.0
$EKO_DAT[390]=0.0
$EKO_DAT[391]=0.0
$EKO_DAT[392]=0.0
$EKO_DAT[393]=0.0
$EKO_DAT[394]=0.0
$EKO_DAT[395]=0.0
$EKO_DAT[396]=0.0
$EKO_DAT[397]=0.0
$EKO_DAT[398]=0.0
$EKO_DAT[399]=0.0
$EKO_DAT[400]=0.0
BOOL $EMSTOP_ADAP=TRUE ;NOT-AUS MIT DYNAMIKMODELL
REAL $EMSTOP_GEARTORQ[6] ;MAX. GETRIEBEMOMENT BEI NOT-AUS [Nm]
$EMSTOP_GEARTORQ[1]=17496.0
$EMSTOP_GEARTORQ[2]=21384.0
$EMSTOP_GEARTORQ[3]=18367.5605
$EMSTOP_GEARTORQ[4]=5909.74121
$EMSTOP_GEARTORQ[5]=3580.07715
$EMSTOP_GEARTORQ[6]=2180.23486
REAL $EMSTOP_TORQRATE=187.578903 ;MAX. AENDERUNG DER MOMENTE BEI NOT-AUS MIT DYNAMIKMODELL [Nm/msec]
DECL SPO_REACTION $SPO_REACTION=#MODEL_RAMP_STOP ; REAKTION AUF SAFE POWER OFF
REAL $SPO_GEARTORQ[6] ;MAX. GETRIEBEMOMENT BEI SAFE POWER OFF [Nm]
$SPO_GEARTORQ[1]=0.0
$SPO_GEARTORQ[2]=0.0
$SPO_GEARTORQ[3]=0.0
$SPO_GEARTORQ[4]=0.0
$SPO_GEARTORQ[5]=0.0
$SPO_GEARTORQ[6]=0.0
BOOL $USE_CUSTOM_MODEL=FALSE ;NACHLADBARES MODELL ZUR KINEMATISCHEN TRANSFORMATION
CHAR $CUSTOM_MODEL_NAME[32] ;NAME DES NACHLADBAREN ROBOTER-MODELS
$CUSTOM_MODEL_NAME[]=" "
CHAR $CUSTOM_MODEL_VERSION[32] ;VERSION DES NACHLADBAREN ROBOTERMODEL
$CUSTOM_MODEL_VERSION[]=" "
ENDDAT

View File

@@ -0,0 +1,8 @@
&ACCESS RV
DEF ActionReturn (nRet:IN )
DECL INT nRet
Q_CmdCountRet=CmdCountLast
Q_CmdResult=nRet
Q_CmdRet=CmdSave
Q_Cmd_Running=0
END

View File

@@ -0,0 +1,20 @@
&ACCESS RV1
DEFDAT CONFIG PUBLIC
GLOBAL INT PdtTypeLast=0
GLOBAL INT CmdSave=11
GLOBAL INT CmdCountLast=108
GLOBAL INT PlaceOffsetX_Save=-1258
GLOBAL INT PlaceOffsetY_Save=-3000
GLOBAL INT PlaceOffsetZ_Save=0
GLOBAL INT PickOffsetX_Save=0
GLOBAL INT PickOffsetY_Save=0
GLOBAL INT PickOffsetZ_Save=0
GLOBAL INT CountX_Save=10
GLOBAL INT CountY_Save=2
GLOBAL BOOL ConfMessSave=FALSE
DECL GLOBAL E6POS END_POS={X 234.879028,Y 2044.02686,Z 377.353760,A -165.224686,B 0.377169758,C 179.736649,S 'B0010',T 'B00101011',E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
ENDDAT

View File

@@ -0,0 +1,10 @@
&ACCESS RVO
DEF GripClose ( )
Q_GripPosIndex=102
Q_GripPosCount=I_GripPosCountRet+1
IF Q_GripPosCount>1000 THEN
Q_GripPosCount=1
ENDIF
WAIT FOR (I_GripPosIndexRet==Q_GripPosIndex) AND (I_GripPosCountRet==Q_GripPosCount) AND I_GripClose
END

View File

@@ -0,0 +1,11 @@
&ACCESS RVO
DEF GripOpen ( )
Q_GripPosIndex=101
Q_GripPosCount=I_GripPosCountRet+1
IF Q_GripPosCount>1000 THEN
Q_GripPosCount=1
ENDIF
WAIT FOR (I_GripPosIndexRet==Q_GripPosIndex) AND (I_GripPosCountRet==Q_GripPosCount) AND I_GripOpen
END

View File

@@ -0,0 +1,16 @@
&ACCESS RVO
&REL 3
&PARAM DISKPATH = KRC:\R1\Program\Home
DEFDAT HOMEMODULE
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT3; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT3; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2="}
ENDDAT

View File

@@ -0,0 +1,34 @@
&ACCESS RVO
&REL 3
&PARAM DISKPATH = KRC:\R1\Program\Home
DEF HomeModule ( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
Q_Cmd_Running=0
PTP $POS_ACT
IF $POS_ACT.Z<1600 THEN
LIN {Z 1600}
ENDIF
;FOLD PTP HOME Vel=100 % DEFAULT ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=DEFAULT; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PDEFAULT
FDAT_ACT = FHOME
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME
;ENDFOLD
END

View File

@@ -0,0 +1,14 @@
&ACCESS RVO
&REL 1
DEFDAT MainModule
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
ENDDAT

View File

@@ -0,0 +1,79 @@
&ACCESS RVO
&REL 1
DEF MainModule()
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS == TRUE DO IR_STOPM()
INTERRUPT ON 3
;ENDFOLD
;FOLD USER INI
;Make your modifications here
;ENDFOLD
;ENDFOLD
$CYCFLAG[1]=(I_GripSafty1 == FALSE) OR (I_GripSafty2==FALSE)
INTERRUPT DECL 24 WHEN $CYCFLAG[1] DO StopSafty()
INTERRUPT ON 24
;FOLD PTP $POS_ACT Tool[1] Base[1]
BAS(#INITMOV, 0)
BAS(#BASE, 1)
BAS(#TOOL, 1)
PTP $POS_ACT
;ENDFOLD
$ov_pro=40
LOOP
AutoRun()
ENDLOOP
END
DEF AutoRun()
IF I_ProductType <> PdtTypeLast THEN
MsgNotify("PdtType is Change", "SafeErr")
Q_Error1=TRUE
$FLAG[10]=TRUE
HALT
ENDIF
PdtTypeLast=I_ProductType
WAIT FOR (I_Cmd > 0) AND (I_CmdCount <> Q_CmdCountRet) AND (Q_Cmd_Running==0)
CmdSave = I_Cmd
CmdCountLast=I_CmdCount
Q_Cmd_Running=CmdSave
PickOffsetX_Save=GetInt16(I_PickOffsetX)
PickOffsetY_Save=GetInt16(I_PickOffsetY)
PickOffsetZ_Save=GetInt16(I_PickOffsetZ)
PlaceOffsetX_Save=GetInt16(I_PlaceOffsetX)
PlaceOffsetY_Save=GetInt16(I_PlaceOffsetY)
PlaceOffsetZ_Save=GetInt16(I_PlaceOffsetZ)
CountX_Save=I_CountX
CountY_Save=I_CountY
SWITCH CmdSave
CASE 1
FeedBelt1Pick()
CASE 2
FeedBelt2Pick()
CASE 3
ReFeedBeltPick()
CASE 4
WaterBeltPick()
CASE 5
NgBeltPlace()
CASE 10
Pallet1Place()
CASE 11
Pallet2Place()
ENDSWITCH
END
DEF StopSafty()
INTERRUPT OFF 24
BRAKE F
BAS(#BASE, 1)
BAS(#TOOL, 1)
LIN_REL {Z 20}
INTERRUPT ON 24
END

View File

@@ -0,0 +1,17 @@
&ACCESS RVO
DEFFCT BOOL CheckInPos (R_offset:IN,EndPos:IN )
DECL REAL R_offset
DECL BOOL b_Pok
DECL E6POS ACT_Point
DECL E6POS EndPos
BAS(#BASE,1)
BAS(#TOOL,1)
ACT_Point = $POS_ACT
IF (ABS(ACT_Point.X - EndPos.X) > R_offset) OR (ABS(ACT_Point.Y - EndPos.Y) > R_offset) OR (ABS(ACT_Point.Z - EndPos.Z) > R_offset) OR (ABS(ACT_Point.A - EndPos.A) > 0.5) OR (ABS(ACT_Point.B - EndPos.B) > 0.5) OR (ABS(ACT_Point.C - EndPos.C) > 0.5) OR (ABS(ACT_Point.E1 - EndPos.E1) > R_offset) THEN
b_Pok=FALSE
ELSE
b_Pok=TRUE
ENDIF
RETURN b_Pok
ENDFCT

View File

@@ -0,0 +1,18 @@
&ACCESS RV
DEFFCT E6POS FixA6Jump(TargetPos:IN)
DECL E6POS TargetPos,NewPos
DECL REAL dA6
NewPos=TargetPos
dA6 = TargetPos.A - $AXIS_ACT.A6
WHILE dA6 > 180.0
NewPos.A = NewPos.A - 360.0
dA6 = TargetPos.A - $AXIS_ACT.A6
ENDWHILE
WHILE dA6 < -180.0
NewPos.A = NewPos.A + 360.0
dA6 = NewPos.A - $AXIS_ACT.A6
ENDWHILE
RETURN NewPos
ENDFCT

View File

@@ -0,0 +1,10 @@
&ACCESS RV
DEFFCT INT GetInt16 (iVal:IN )
DECL INT iVal,iRet
IF iVal>32767 THEN
iRet=iVal-65536
ELSE
iRet=iVal
ENDIF
RETURN iRet
ENDFCT

View File

@@ -0,0 +1,12 @@
&ACCESS RVO
DEFFCT CHAR[32] INT_TO_STR(iVal:IN)
DECL INT iVal,I,offset
DECL CHAR Ret[32]
DECL STATE_T state
offset=0
FOR I=1 TO 32
Ret[I]=0
ENDFOR
SWRITE(Ret[],state,offset,"%d",iVal)
Return (Ret[])
ENDFCT

View File

@@ -0,0 +1,12 @@
&ACCESS RV
DEF Initmove ( )
CONTINUE
IF ($T1 OR $T2) AND NOT $NEAR_POSRET THEN
CONTINUE
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
CONTINUE
PTP $POS_ACT C_DIS
ENDIF
END

View File

@@ -0,0 +1,64 @@
&ACCESS RV
&REL 1
DEFFCT E6POS OffsetByBase(Position:IN, rRelX:IN, rRelY:IN, rRelZ:IN, rRelA:IN, rRelB:IN, rRelC:IN)
DECL E6POS Position, rPosition
DECL REAL rRelX, rRelY, rRelZ, rRelA, rRelB, rRelC
DECL FRAME FrameTrans, FrameRot, PosTrans, PosRot
IF VARSTATE("rRelX") <> #INITIALIZED THEN
rRelX = 0
ENDIF
IF VARSTATE("rRelY") <> #INITIALIZED THEN
rRelY = 0
ENDIF
IF VARSTATE("rRelZ") <> #INITIALIZED THEN
rRelZ = 0
ENDIF
IF VARSTATE("rRelA") <> #INITIALIZED THEN
rRelA = 0
ENDIF
IF VARSTATE("rRelB") <> #INITIALIZED THEN
rRelB = 0
ENDIF
IF VARSTATE("rRelC") <> #INITIALIZED THEN
rRelC = 0
ENDIF
rPosition = Position
FrameTrans = $NULLFRAME
FrameTrans.X = rRelX
FrameTrans.Y = rRelY
FrameTrans.Z = rRelZ
FrameRot = $NULLFRAME
FrameRot.A = rRelA
FrameRot.B = rRelB
FrameRot.C = rRelC
PosTrans = $NULLFRAME
PosTrans.X = rPosition.X
PosTrans.y = rPosition.Y
PosTrans.Z = rPosition.Z
PosRot = $NULLFRAME
PosRot.A = rPosition.A
PosRot.B = rPosition.B
PosRot.C = rPosition.C
;Positionstransformation durchfuehren
rPosition = FrameTrans:PosTrans:FrameRot:PosRot
;Status & Turn der Originalposition uebernehmen
;Werte der externen Achse der Orignalposition
;uebernehmen
rPosition.E1 = Position.E1
rPosition.E2 = Position.E2
rPosition.E3 = Position.E3
rPosition.E4 = Position.E4
rPosition.E5 = Position.E5
rPosition.E6 = Position.E6
RETURN(rPosition)
ENDFCT

View File

@@ -0,0 +1,45 @@
&ACCESS RV
&REL 1
DEFFCT E6POS OffsetByTool(Position:IN, rRelX:IN, rRelY:IN, rRelZ:IN, rRelA:IN, rRelB:IN, rRelC:IN)
DECL E6POS Position,rPosition
DECL REAL rRelX, rRelY, rRelZ, rRelA, rRelB, rRelC
DECL FRAME FrameTmp
IF VARSTATE("rRelX") <> #INITIALIZED THEN
rRelX = 0
ENDIF
IF VARSTATE("rRelY") <> #INITIALIZED THEN
rRelY = 0
ENDIF
IF VARSTATE("rRelZ") <> #INITIALIZED THEN
rRelZ = 0
ENDIF
IF VARSTATE("rRelA") <> #INITIALIZED THEN
rRelA = 0
ENDIF
IF VARSTATE("rRelB") <> #INITIALIZED THEN
rRelB = 0
ENDIF
IF VARSTATE("rRelC") <> #INITIALIZED THEN
rRelC = 0
ENDIF
FrameTmp = $NULLFRAME
FrameTmp.X = rRelX
FrameTmp.Y = rRelY
FrameTmp.Z = rRelZ
FrameTmp.A = rRelA
FrameTmp.B = rRelB
FrameTmp.C = rRelC
rPosition = Position:FrameTmp
rPosition.E1 = Position.E1
rPosition.E2 = Position.E2
rPosition.E3 = Position.E3
rPosition.E4 = Position.E4
rPosition.E5 = Position.E5
rPosition.E6 = Position.E6
RETURN(rPosition)
ENDFCT

View File

@@ -0,0 +1,19 @@
&ACCESS RV
DEFFCT INT REAL_TO_Output (rVal:IN )
DECL REAL rVal
DECL INT Offset,Ret
DECL INT INTS[4]
DECL CHAR Bytes[4]
Offset=0
Ret=0
CAST_TO(Bytes[],Offset,rVal)
INTS[1] = Bytes[1]
INTS[2] = Bytes[2]
INTS[2] = INTS[2]*256
INTS[3] = Bytes[3]
INTS[3] = INTS[3]*65536
INTS[4] = Bytes[4]
INTS[4] = INTS[4]*16777216
Ret=INTS[1]+INTS[2]+INTS[3]+INTS[4]
RETURN Ret
ENDFCT

View File

@@ -0,0 +1,22 @@
&ACCESS RVO
DEFFCT CHAR[32] REAL_TO_STR(iVal:IN)
DECL REAL iVal
DECL INT I,offset
DECL CHAR Ret[32]
DECL STATE_T state
offset=0
FOR I=1 TO 32
Ret[I]=0
ENDFOR
SWRITE(Ret[],state,offset,"%.3f",iVal)
Return (Ret[])
ENDFCT

View File

@@ -0,0 +1,28 @@
&ACCESS RVO
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT FEEDBELT1PICK
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT3; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2="}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPickH={X -368.575958,Y 3343.96265,Z 553.180481,A -166.138535,B 0.376172692,C 179.734436,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPick={X -368.575958,Y 3343.96265,Z 53.1804581,A -166.138535,B 0.376172692,C 179.734436,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT3={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,69 @@
&ACCESS RVO
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF FeedBelt1Pick ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPick=XFeedBelt1Pick
x_offset=PickOffsetX_Save/10.0
y_offset=PickOffsetY_Save/10.0
z_offset=PickOffsetZ_Save/10.0
XPick.X=XFeedBelt1Pick.X + x_offset
XPick.Y=XFeedBelt1Pick.Y + y_offset
XPick.Z=XFeedBelt1Pick.Z + z_offset
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD PTP PickH CONT Vel=100 % PDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT2
FDAT_ACT = FPickH
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPickH C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal1 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD LIN Pick Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPick
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPick
;ENDFOLD
GripClose()
;FOLD LIN PickH Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPickH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPickH
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,26 @@
&ACCESS RVO
&REL 9
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT FEEDBELT2PICK
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick_1={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT3; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2="}
DECL E6POS XPickH={X -507.873199,Y 3343.96265,Z 553.180481,A -166.138535,B 0.376172692,C 179.734436,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL E6POS XPick={X -507.873199,Y 3343.96265,Z 53.1804581,A -166.138535,B 0.376172692,C 179.734436,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL LDAT LCPDAT3={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,70 @@
&ACCESS RVO
&REL 9
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF FeedBelt2Pick ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPick=XFeedBelt2Pick
x_offset=PickOffsetX_Save/10.0
y_offset=PickOffsetY_Save/10.0
z_offset=PickOffsetZ_Save/10.0
XPick.X=XFeedBelt2Pick.X + x_offset
XPick.Y=XFeedBelt2Pick.Y + y_offset
XPick.Z=XFeedBelt2Pick.Z + z_offset
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD PTP PickH CONT Vel=100 % PDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT2
FDAT_ACT = FPickH
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPickH C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal2 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD LIN Pick Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPick
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPick
;ENDFOLD
GripClose()
;FOLD LIN PickH Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPickH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPickH
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,26 @@
&ACCESS RVO
&REL 3
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT NGBELTPLACE
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2="}
DECL FDAT FPlaceH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceH={X 1800.64709,Y -146.362045,Z 1228.85449,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlace={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlace={X -372.497620,Y -392.548706,Z 42.0128441,A 103.970634,B 0.387568325,C 179.739,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME1={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT3={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
ENDDAT

View File

@@ -0,0 +1,81 @@
&ACCESS RVO
&REL 3
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF NgBeltPlace ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPlace=XNgBeltPlace
x_offset=PlaceOffsetX_Save/10.0
y_offset=PlaceOffsetY_Save/10.0
z_offset=PlaceOffsetZ_Save/10.0
XPlace.X=XNgBeltPlace.X + x_offset
XPlace.Y=XNgBeltPlace.Y + y_offset
XPlace.Z=XNgBeltPlace.Z + z_offset
XPlaceH=XPlace
XPlaceH.Z=XPlace.Z+500
;FOLD PTP PlaceH CONT Vel=100 % PDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT1
FDAT_ACT = FPlaceH
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPlaceH C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_AreaReady4 AND NOT I_Signal5 AND NOT I_GripBelowExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter2=TRUE
;FOLD LIN Place Vel=2 m/s CPDAT3 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Place; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT3; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT3
FDAT_ACT = FPlace
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlace
;ENDFOLD
GripOpen()
;FOLD LIN PlaceH CONT Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPlaceH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceH C_Dis C_Dis
;ENDFOLD
CONTINUE
Q_AreaEnter2=FALSE
ActionReturn(1)
;FOLD PTP HOME1 Vel=100 % PDAT2 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT2
FDAT_ACT = FHOME1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME1
;ENDFOLD
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,41 @@
&ACCESS RV
&REL 15
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT PALLET1PLACE
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS = {PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT6; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPlaceH={BASE_NO 1,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceH={X 1501.64038,Y 1742.32153,Z 765.978271,A -164.789139,B 0.414351225,C 179.724762,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlace={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlace={X 1501.64038,Y 1742.32153,Z 265.978241,A -164.789139,B 0.414351225,C 179.724762,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}},APO_FAC 50.0,APO_DIST 500,AXIS_ACC 100.0,AXIS_VEL 100.0,CIRC_TYP #BASE,JERK_FAC 50.0,ORI_TYP #VAR,VEL 2,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME1={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT3={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT3={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT4={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT4={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT5={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT5={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL E6POS XPlaceSigH={X 666666.688,Y 66.6000,Z 666.660,A 6.60000,B 66.6600,C 666.600,S 0,T 0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT7={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlaceSigH={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceSig={X 1407.35193,Y 1196.59705,Z 1498.33838,A -164.745041,B 0.371815890,C 179.768021,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL PDAT PPDAT6={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FPlaceSig={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL LDAT LCPDAT8={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
ENDDAT

View File

@@ -0,0 +1,100 @@
&ACCESS RV
&REL 15
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF Pallet1Place ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPlace=XPallet1PlaceB
x_offset=PlaceOffsetX_Save/10.0
y_offset=PlaceOffsetY_Save/10.0
z_offset=PlaceOffsetZ_Save/10.0
XPlace.X=XPallet1PlaceB.X + CountX_Save*x_offset
XPlace.Y=XPallet1PlaceB.Y + CountY_Save*y_offset
XPlace.Z=XPallet1PlaceB.Z + z_offset
XPlaceH=XPlace
XPlaceH.Z=XPlace.Z+310+z_offset
XPlaceSigH=XPlace
XPlaceSigH.Z=XPlace.Z+500
XPlaceSigH.X=XPlace.X-50
XPlaceSig=XPlace
XPlaceSig.Z=XPlace.Z+310+z_offset
XPlaceSig.X=XPlace.X-50
;FOLD LIN PlaceSigH CONT Vel=2 m/s CPDAT7 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceSigH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT7; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT7
FDAT_ACT = FPlaceSigH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceSigH C_Dis C_Dis
;ENDFOLD
;FOLD LIN PlaceSig Vel=2 m/s CPDAT8 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceSig; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT8; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT8
FDAT_ACT = FPlaceSig
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceSig
;ENDFOLD
;FOLD LIN PlaceH CONT Vel=2 m/s CPDAT5 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT5; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT5
FDAT_ACT = FPlaceH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceH C_Dis C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_AreaReady2 AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter2=TRUE
;FOLD LIN Place Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Place; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPlace
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlace
;ENDFOLD
GripOpen()
;FOLD LIN PlaceH Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPlaceH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceH
;ENDFOLD
Q_AreaEnter2=FALSE
ActionReturn(1)
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,44 @@
&ACCESS RVO
&REL 26
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT PALLET2PLACE
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceSigH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT19; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT7; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPlaceH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceH={X 234.879028,Y 2044.02686,Z 377.353760,A -165.224686,B 0.377169758,C 179.736649,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlace={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlace={X 234.879028,Y 2044.02686,Z 67.3537521,A -165.224686,B 0.377169758,C 179.736649,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME1={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT3={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT3={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME2={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XHOME1={X 1407.35352,Y 1741.39893,Z 1283.17041,A -164.745026,B 0.372301966,C 179.768570,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL PDAT PPDAT4={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT4={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT17={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL E6POS XPass={X 569.963684,Y 3051.40015,Z 726.036499,A 165.563766,B 0.200981423,C 179.586945,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPass={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT18={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT5={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL E6POS XPlaceSigH={X 184.879028,Y 2044.02686,Z 567.353760,A -165.224686,B 0.377169758,C 179.736649,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPlaceSigH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL LDAT LCPDAT6={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT19={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT7={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL E6POS XPlaceSig={X 184.879028,Y 2044.02686,Z 377.353760,A -165.224686,B 0.377169758,C 179.736649,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPlaceSig={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL LDAT LCPDAT8={VEL 2.00000,ACC 100.000,APO_DIST 493.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
ENDDAT

View File

@@ -0,0 +1,101 @@
&ACCESS RVO
&REL 26
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF Pallet2Place ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPlace=XPallet2PlaceB
x_offset=PlaceOffsetX_Save/10.0
y_offset=PlaceOffsetY_Save/10.0
z_offset=PlaceOffsetZ_Save/10.0
XPlace.X=XPallet1PlaceB.X + CountX_Save*x_offset
XPlace.Y=XPallet1PlaceB.Y + CountY_Save*y_offset
XPlace.Z=XPallet1PlaceB.Z + z_offset
XPlaceH=XPlace
XPlaceH.Z=XPlace.Z+310+z_offset
XPlaceSigH=XPlace
XPlaceSigH.X=XPlace.X-50
XPlaceSigH.Z=XPlace.Z+500
XPlaceSig=XPlace
XPlaceSig.X=XPlace.X-50
XPlaceSig.Z=XPlace.Z+310+z_offset
;FOLD LIN PlaceSigH CONT Vel=2 m/s CPDAT7 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceSigH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT7; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT7
FDAT_ACT = FPlaceSigH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceSigH C_Dis C_Dis
;ENDFOLD
;FOLD LIN PlaceSig Vel=2 m/s CPDAT8 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceSig; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT8; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT8
FDAT_ACT = FPlaceSig
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceSig
;ENDFOLD
WAIT FOR NOT I_GripBelowExist
;FOLD LIN PlaceH CONT Vel=2 m/s CPDAT5 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT5; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT5
FDAT_ACT = FPlaceH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceH C_Dis C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_AreaReady2 AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter3=TRUE
;FOLD LIN Place Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Place; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPlace
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlace
;ENDFOLD
GripOpen()
;FOLD LIN PlaceH Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPlaceH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPlaceH
;ENDFOLD
Q_AreaEnter3=FALSE
ActionReturn(1)
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,28 @@
&ACCESS RVO
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT REFEEDBELTPICK
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPickH={X 1797.49475,Y 1360.66516,Z 1167.60986,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPick={X -355.786682,Y 285.198730,Z 34.5330734,A 103.969742,B 0.385545075,C 179.739044,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL E6POS XPass={X 222.125137,Y 367.555359,Z 612.758301,A 105.463463,B 0.376274645,C 179.736298,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPass={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,80 @@
&ACCESS RVO
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF ReFeedBeltPick ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPick=XReFeedBeltPick
x_offset=PickOffsetX_Save/10.0
y_offset=PickOffsetY_Save/10.0
z_offset=PickOffsetZ_Save/10.0
XPick.X=XReFeedBeltPick.X + x_offset
XPick.Y=XReFeedBeltPick.Y + y_offset
XPick.Z=XReFeedBeltPick.Z + z_offset
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD PTP PickH CONT Vel=100 % PDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT1
FDAT_ACT = FPickH
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPickH C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal1 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD LIN Pick Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPick
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPick
;ENDFOLD
GripClose()
;FOLD LIN PickH Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPickH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPickH
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
;;FOLD PTP Pass Vel=100 % PDAT2 Tool[1] Base[1] ;%{PE}
;;FOLD Parameters ;%{h}
;;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pass; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;;ENDFOLD
;$BWDSTART = FALSE
;PDAT_ACT = PPDAT2
;FDAT_ACT = FPass
;BAS(#PTP_PARAMS, 100.0)
;SET_CD_PARAMS (0)
;PTP XPass
;;ENDFOLD
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,28 @@
&ACCESS RVO
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\PL
DEFDAT WATERBELTPICK
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPickH={X -374.435608,Y -52.7464218,Z 548.319702,A 104.528885,B 0.376218826,C 179.734528,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPick={X -374.435608,Y -52.7464218,Z 48.3197289,A 104.528885,B 0.376218826,C 179.734528,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL E6POS XPass={X 222.125137,Y 367.555359,Z 612.758301,A 105.463463,B 0.376274645,C 179.736298,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPass={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,80 @@
&ACCESS RVO
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\PL
DEF WaterBeltPick ( )
DECL REAL x_offset,y_offset,z_offset
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPick=XWaterBeltPick
x_offset=PickOffsetX_Save/10.0
y_offset=PickOffsetY_Save/10.0
z_offset=PickOffsetZ_Save/10.0
XPick.X=XWaterBeltPick.X + x_offset
XPick.Y=XWaterBeltPick.Y + y_offset
XPick.Z=XWaterBeltPick.Z + z_offset
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD PTP PickH CONT Vel=100 % PDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT1
FDAT_ACT = FPickH
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPickH C_Dis
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal1 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD LIN Pick Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPick
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPick
;ENDFOLD
GripClose()
;FOLD LIN PickH Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPickH
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPickH
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
;;FOLD PTP Pass Vel=100 % PDAT2 Tool[1] Base[1] ;%{PE}
;;FOLD Parameters ;%{h}
;;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pass; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;;ENDFOLD
;$BWDSTART = FALSE
;PDAT_ACT = PPDAT2
;FDAT_ACT = FPass
;BAS(#PTP_PARAMS, 100.0)
;SET_CD_PARAMS (0)
;PTP XPass
;;ENDFOLD
END_POS=$POS_ACT
END

View File

@@ -0,0 +1,62 @@
&ACCESS RVP
&COMMENT USER specified PLC program
DEF PLC ( )
DECL STATE_T STAT
DECL MODUS_T MODE
DECL E6POS ACT_Point
LOOP
ON_ERROR_PROCEED
IF $ERR.NUMBER > 0 THEN
Q_ActPosErr = TRUE
ERR_CLEAR($ERR)
ELSE
Q_ActPosErr=FALSE
IF ($ACT_TOOL==1) AND ($ACT_BASE==1) THEN
ON_ERROR_PROCEED
ACT_Point = $POS_ACT
IF ACT_Point.Z>350.0 THEN
Q_PlaceSafe=TRUE
ELSE
Q_PlaceSafe=FALSE
ENDIF
ELSE
Q_PlaceSafe=FALSE
ENDIF
ENDIF
IF $FLAG[10] THEN
CWRITE($CMD,STAT,MODE,"RESET/R1/cell()")
;CWRITE($CMD,STAT,MODE,"RESET/R1/MainModule()")
$FLAG[10]=FALSE
ENDIF
IF $FLAG[11] THEN
CWRITE($CMD,STAT,MODE,"STOP 1")
$FLAG[11]=FALSE
ENDIF
IF $FLAG[12] THEN
CWRITE($CMD,STAT,MODE,"CANCEL 1")
$FLAG[12]=FALSE
ENDIF
IF $CONF_MESS AND NOT ConfMessSave THEN
Q_Error1=FALSE
Q_Error2=FALSE
Q_Error3=FALSE
Q_Error4=FALSE
Q_Error5=FALSE
Q_Error6=FALSE
Q_Error7=FALSE
Q_Error8=FALSE
Q_Error9=FALSE
Q_Error10=FALSE
Q_Error11=FALSE
Q_Error12=FALSE
Q_Error13=FALSE
Q_Error14=FALSE
Q_Error15=FALSE
Q_Error16=FALSE
ENDIF
ConfMessSave=$CONF_MESS
ENDLOOP
END

View File

@@ -0,0 +1,21 @@
&ACCESS RV
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\TP
DEFDAT POSBASE PUBLIC
;***************************************************
; *
;***************************************************
DECL GLOBAL E6POS XPallet1PlaceB={X 1492.87903,Y 2644.02686,Z 67.3537521,A -165.224686,B 0.377169758,C 179.736649,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XPallet2PlaceB={X 1492.87903,Y 2644.02686,Z 67.3537521,A -165.224686,B 0.377169758,C 179.736649,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XFeedBelt1Pick={X -368.575958,Y 3343.96265,Z 53.1804581,A -166.138535,B 0.376172692,C 179.734436,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XFeedBelt2Pick={X -507.873199,Y 3343.96265,Z 53.1804581,A -166.138535,B 0.376172692,C 179.734436,S 2,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XNgBeltPlace={X -377.579193,Y -392.592957,Z 48.2309685,A 104.528885,B 0.376219094,C 179.734528,S 2,T 10,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XWaterBeltPick={X -374.435608,Y -52.7464218,Z 48.3197289,A 104.528885,B 0.376218826,C 179.734528,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XReFeedBeltPick={X -364.351349,Y 284.098267,Z 50.3441315,A 104.528885,B 0.376218945,C 179.734528,S 2,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
ENDDAT

View File

@@ -0,0 +1,136 @@
&ACCESS RV
&REL 1
DEFDAT SignalIO PUBLIC
;FOLD PLC_TO_KUKA
GLOBAL SIGNAL I_AreaReady1 $IN[17]
GLOBAL SIGNAL I_AreaReady2 $IN[18]
GLOBAL SIGNAL I_AreaReady3 $IN[19]
GLOBAL SIGNAL I_AreaReady4 $IN[20]
GLOBAL SIGNAL I_AreaReady5 $IN[21]
GLOBAL SIGNAL I_AreaReady6 $IN[22]
GLOBAL SIGNAL I_AreaReady7 $IN[23]
GLOBAL SIGNAL I_AreaReady8 $IN[24]
GLOBAL SIGNAL I_AreaReady9 $IN[25]
GLOBAL SIGNAL I_AreaReady10 $IN[26]
GLOBAL SIGNAL I_AreaReady11 $IN[27]
GLOBAL SIGNAL I_AreaReady12 $IN[28]
GLOBAL SIGNAL I_AreaReady13 $IN[29]
GLOBAL SIGNAL I_AreaReady14 $IN[30]
GLOBAL SIGNAL I_AreaReady15 $IN[31]
GLOBAL SIGNAL I_AreaReady16 $IN[32]
GLOBAL SIGNAL I_Signal1 $IN[33]
GLOBAL SIGNAL I_Signal2 $IN[34]
GLOBAL SIGNAL I_Signal3 $IN[35]
GLOBAL SIGNAL I_Signal4 $IN[36]
GLOBAL SIGNAL I_Signal5 $IN[37]
GLOBAL SIGNAL I_Signal6 $IN[38]
GLOBAL SIGNAL I_Signal7 $IN[39]
GLOBAL SIGNAL I_Signal8 $IN[40]
GLOBAL SIGNAL I_Signal9 $IN[41]
GLOBAL SIGNAL I_Signal10 $IN[42]
GLOBAL SIGNAL I_Signal11 $IN[43]
GLOBAL SIGNAL I_Signal12 $IN[44]
GLOBAL SIGNAL I_Signal13 $IN[45]
GLOBAL SIGNAL I_Signal14 $IN[46]
GLOBAL SIGNAL I_Signal15 $IN[47]
GLOBAL SIGNAL I_Signal16 $IN[48]
GLOBAL SIGNAL I_GripSafty1 $IN[49]
GLOBAL SIGNAL I_GripSafty2 $IN[50]
GLOBAL SIGNAL I_GripBelowExist $IN[51]
GLOBAL SIGNAL I_GripExist $IN[52]
GLOBAL SIGNAL I_GripOpen $IN[53]
GLOBAL SIGNAL I_GripClose $IN[54]
GLOBAL SIGNAL I_ProductType $IN[65] TO $IN[80]
GLOBAL SIGNAL I_Cmd $IN[81] TO $IN[96]
GLOBAL SIGNAL I_CmdCount $IN[97] TO $IN[112]
GLOBAL SIGNAL I_GripPosIndexRet $IN[113] TO $IN[128]
GLOBAL SIGNAL I_GripPosCountRet $IN[129] TO $IN[144]
GLOBAL SIGNAL I_GripPosResult $IN[145] TO $IN[160]
GLOBAL SIGNAL I_CountX $IN[161] TO $IN[176]
GLOBAL SIGNAL I_CountY $IN[177] TO $IN[192]
GLOBAL SIGNAL I_PickOffsetX $IN[193] TO $IN[208]
GLOBAL SIGNAL I_PickOffsetY $IN[209] TO $IN[224]
GLOBAL SIGNAL I_PickOffsetZ $IN[225] TO $IN[240]
GLOBAL SIGNAL I_PlaceOffsetX $IN[241] TO $IN[256]
GLOBAL SIGNAL I_PlaceOffsetY $IN[257] TO $IN[272]
GLOBAL SIGNAL I_PlaceOffsetZ $IN[273] TO $IN[288]
;ENDFOLD
;FOLD KUKA_TO_PLC
GLOBAL SIGNAL Q_PickDone $OUT[33]
GLOBAL SIGNAL Q_PlaceDone $OUT[34]
GLOBAL SIGNAL Q_PlaceSafe $OUT[35]
GLOBAL SIGNAL Q_ActPosErr $OUT[36]
GLOBAL SIGNAL Q_InHome1 $OUT[49]
GLOBAL SIGNAL Q_InHome2 $OUT[50]
GLOBAL SIGNAL Q_InHome3 $OUT[51]
GLOBAL SIGNAL Q_InHome4 $OUT[52]
GLOBAL SIGNAL Q_InHome5 $OUT[53]
GLOBAL SIGNAL Q_InHome6 $OUT[54]
GLOBAL SIGNAL Q_InHome7 $OUT[55]
GLOBAL SIGNAL Q_InHome8 $OUT[56]
GLOBAL SIGNAL Q_InHome9 $OUT[57]
GLOBAL SIGNAL Q_InHome10 $OUT[58]
GLOBAL SIGNAL Q_InHome11 $OUT[59]
GLOBAL SIGNAL Q_InHome12 $OUT[60]
GLOBAL SIGNAL Q_InHome13 $OUT[61]
GLOBAL SIGNAL Q_InHome14 $OUT[62]
GLOBAL SIGNAL Q_InHome15 $OUT[63]
GLOBAL SIGNAL Q_InHome16 $OUT[64]
GLOBAL SIGNAL Q_AreaEnter1 $OUT[65]
GLOBAL SIGNAL Q_AreaEnter2 $OUT[66]
GLOBAL SIGNAL Q_AreaEnter3 $OUT[67]
GLOBAL SIGNAL Q_AreaEnter4 $OUT[68]
GLOBAL SIGNAL Q_AreaEnter5 $OUT[69]
GLOBAL SIGNAL Q_AreaEnter6 $OUT[70]
GLOBAL SIGNAL Q_AreaEnter7 $OUT[71]
GLOBAL SIGNAL Q_AreaEnter8 $OUT[72]
GLOBAL SIGNAL Q_AreaEnter9 $OUT[73]
GLOBAL SIGNAL Q_AreaEnter10 $OUT[74]
GLOBAL SIGNAL Q_AreaEnter11 $OUT[75]
GLOBAL SIGNAL Q_AreaEnter12 $OUT[76]
GLOBAL SIGNAL Q_AreaEnter13 $OUT[77]
GLOBAL SIGNAL Q_AreaEnter14 $OUT[78]
GLOBAL SIGNAL Q_AreaEnter15 $OUT[79]
GLOBAL SIGNAL Q_AreaEnter16 $OUT[80]
GLOBAL SIGNAL Q_Error1 $OUT[81]
GLOBAL SIGNAL Q_Error2 $OUT[82]
GLOBAL SIGNAL Q_Error3 $OUT[83]
GLOBAL SIGNAL Q_Error4 $OUT[84]
GLOBAL SIGNAL Q_Error5 $OUT[85]
GLOBAL SIGNAL Q_Error6 $OUT[86]
GLOBAL SIGNAL Q_Error7 $OUT[87]
GLOBAL SIGNAL Q_Error8 $OUT[88]
GLOBAL SIGNAL Q_Error9 $OUT[89]
GLOBAL SIGNAL Q_Error10 $OUT[90]
GLOBAL SIGNAL Q_Error11 $OUT[91]
GLOBAL SIGNAL Q_Error12 $OUT[92]
GLOBAL SIGNAL Q_Error13 $OUT[93]
GLOBAL SIGNAL Q_Error14 $OUT[94]
GLOBAL SIGNAL Q_Error15 $OUT[95]
GLOBAL SIGNAL Q_Error16 $OUT[96]
GLOBAL SIGNAL Q_CmdRet $OUT[97] TO $OUT[112]
GLOBAL SIGNAL Q_CmdCountRet $OUT[113] TO $OUT[128]
GLOBAL SIGNAL Q_CmdResult $OUT[129] TO $OUT[144]
GLOBAL SIGNAL Q_Cmd_Running $OUT[145] TO $OUT[160]
GLOBAL SIGNAL Q_GripPosIndex $OUT[161] TO $OUT[176]
GLOBAL SIGNAL Q_GripPosCount $OUT[177] TO $OUT[192]
;ENDFOLD
ENDDAT

View File

@@ -0,0 +1,32 @@
&ACCESS RVO
&REL 19
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\TP
DEFDAT T
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL FDAT Fhome1={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.MoveDataPtpName=PDAT6; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.PointName=Pass; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.FrameData.point2=; Kuka.isglobalpoint=False; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2 "}
DECL E6POS XPass={X 1496.99622,Y 1744.02686,Z 677.063965,A 165.215530,B 0.220793873,C 179.554840,S 2,T 11,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPass={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT3={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT4={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL E6POS XPass2={X 1017.04706,Y 1744.06714,Z 677.063965,A 165.215530,B 0.220793888,C 179.554840,S 2,T 11,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPass2={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT5={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT3={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT6={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,53 @@
&ACCESS RVO
&REL 19
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\TP
DEF T( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;FOLD PTP home CONT Vel=100 % PDAT3 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=home; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT3; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT3
FDAT_ACT = Fhome
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP Xhome C_Dis
;ENDFOLD
;FOLD PTP Pass2 Vel=100 % PDAT5 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pass2; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT5; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT5
FDAT_ACT = FPass2
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPass2
;ENDFOLD
;FOLD PTP Pass Vel=100 % PDAT6 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pass; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT6; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT6
FDAT_ACT = FPass
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XPass
;ENDFOLD
END

View File

@@ -0,0 +1,44 @@
&ACCESS RVO
&REL 31
&PARAM DISKPATH = KRC:\R1\Program\TP
DEFDAT TESTMODULE
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL FDAT FPallet1PlaceB={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=Pallet1PlaceB; Kuka.FrameData.base_no=1; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT16; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.FrameData.point2=; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2"}
DECL FDAT FPallet2PlaceB={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FFeedBelt1Pick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT3={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FFeedBelt2Pick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT4={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT5={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FNgBeltPlace={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT6={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FWaterBeltPick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT7={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FReFeedBeltPick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL FDAT FHOME1={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT8={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME2={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT9={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT10={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT11={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FXFeedBelt1Pick={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT12={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT13={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT14={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT15={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL PDAT PPDAT16={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
ENDDAT

View File

@@ -0,0 +1,127 @@
&ACCESS RVO
&REL 31
&PARAM DISKPATH = KRC:\R1\Program\TP
DEF TestModule ( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;FOLD PTP HOME Vel=100 % PDAT10 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT10; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT10
FDAT_ACT = FHOME
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME
;ENDFOLD
;FOLD PTP HOME2 Vel=100 % PDAT9 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME2; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT9; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT9
FDAT_ACT = FHOME2
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME2
;ENDFOLD
;FOLD PTP HOME1 Vel=100 % PDAT8 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT8; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT8
FDAT_ACT = FHOME1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME1
;ENDFOLD
;FOLD LIN Pallet1PlaceB Vel=2 m/s CPDAT2 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pallet1PlaceB; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = FPallet1PlaceB
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPallet1PlaceB
;ENDFOLD
;FOLD LIN Pallet2PlaceB Vel=2 m/s CPDAT1 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=Pallet2PlaceB; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT1
FDAT_ACT = FPallet2PlaceB
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XPallet2PlaceB
;ENDFOLD
;FOLD PTP FeedBelt1Pick Vel=100 % PDAT12 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=FeedBelt1Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT12; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT12
FDAT_ACT = FFeedBelt1Pick
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XFeedBelt1Pick
;ENDFOLD
;FOLD PTP FeedBelt2Pick Vel=100 % PDAT13 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=FeedBelt2Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT13; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT13
FDAT_ACT = FFeedBelt2Pick
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XFeedBelt2Pick
;ENDFOLD
;FOLD PTP NgBeltPlace Vel=100 % PDAT14 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=NgBeltPlace; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT14; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT14
FDAT_ACT = FNgBeltPlace
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XNgBeltPlace
;ENDFOLD
;FOLD PTP WaterBeltPick Vel=100 % PDAT15 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=WaterBeltPick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT15; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT15
FDAT_ACT = FWaterBeltPick
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XWaterBeltPick
;ENDFOLD
;FOLD PTP ReFeedBeltPick Vel=100 % PDAT16 Tool[1] Base[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=ReFeedBeltPick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT16; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT16
FDAT_ACT = FReFeedBeltPick
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XReFeedBeltPick
;ENDFOLD
END

View File

@@ -0,0 +1,835 @@
&ACCESS RV$2
DEFDAT $CONFIG
;FOLD BASISTECH GLOBALS
;==================================
; Default parameters for movement
; These values shouldn't be changed
;==================================
;----------------------------------
; general MOVEMENT - parameters:
;----------------------------------
INT DEF_OV_PRO=100
INT DEF_ADVANCE=3
; PTP - MOVEMENTS
;----------------------------------
INT DEF_VEL_PTP=100 ; ptp velocity [%]
INT DEF_ACC_PTP=50 ; ptp acceleration [%]
; CP - MOVEMENTS
;----------------------------------
DECL CIRC_TYPE DEF_CIRC_TYP=#BASE
DECL JERK_STRUC DEF_JERK_STRUC={CP 500.000,ORI 50000.0,AX {A1 1000.00,A2 1000.00,A3 1000.00,A4 1000.00,A5 1000.00,A6 1000.00,E1 1000.00,E2 1000.00,E3 1000.00,E4 1000.00,E5 1000.00,E6 1000.00}} ; jerk value for the spline. CP: [m/Sec3], ORI: [[GRAD/Sec3], AX: [[GRAD/Sec3] (rotatory) resp. [m/Sec3] (linear)
REAL DEF_GEAR_JERK=100.000 ; gear jerk of axes [%]
REAL DEF_VEL_CP=2.00000 ; path velocity [M/SEC]
REAL DEF_VEL_ORI1=200.000 ; swivel velocity [GRAD/Sec]
REAL DEF_VEL_ORI2=200.000 ; rotation velocity [GRAD/Sec]
REAL DEF_VEL_ORIS=200.000 ; spline swivel velocity [GRAD/Sec]
REAL DEF_ACC_CP=2.30000 ; path acceleration [m/Sec2]
REAL DEF_ACC_ORI1=100.000 ; swivel acceleration [GRAD/Sec2]
REAL DEF_ACC_ORI2=100.000 ; rotation acceleration [GRAD/Sec2]
REAL DEF_ACC_ORIS=200.000 ; spline swivel acceleration [GRAD/Sec2]
REAL DEF_VEL_FACT=1.00000
REAL DEF_ACC_SPTP=100.000 ; ptp spline acceleration [%]
; APO - parameters
;--------------------------------
INT DEF_APO_CPTP=50 ; PTP-Approximation [%]
INT DEF_APO_CVEL=100 ; Speed-Approximation [%]
REAL DEF_APO_CDIS=3.00000 ; Distance-Approximation [mm]
REAL DEF_APO_CORI=5.00000 ; Orientation-Approximation [Grad]
REAL DEF_APO_CORIS=80.0000 ; spline Orientation-Approximation [Grad]
;==================================
; Structures:
;==================================
ENUM BAS_COMMAND INITMOV,ACC_CP,ACC_PTP,VEL_CP,VEL_PTP,ACC_GLUE,TOOL,BASE,EX_BASE,PTP_DAT,CP_DAT,OUT_SYNC,OUT_ASYNC,GROUP,FRAMES,PTP_PARAMS,CP_PARAMS
ENUM OUT_MODETYPE TRIGGER_,CONT_,STOP_
ENUM IPO_M_T NONE,TCP,BASE
ENUM APO_MODE_T CPTP,CDIS
ENUM LDD_MODE_T NONE,CAD,T1,T2,AUT,EX,MANUAL
ENUM LDD_RESULT_T NONE,APP,STATOVL,DYNOVL,CTCHCK,OVL,APPSLOOR,SLOOR
STRUC DIG_OUT_TYPE INT FIRST_BIT,LENGTH,PARITY,CODING
STRUC CTRL_IN_T INT IN_NR,CHAR NAME_NAT[20]
STRUC CTRL_OUT_T INT OUT_NR,BOOL INI,CHAR NAME_NAT[20]
STRUC FCT_OUT_T INT NO,REAL PULS_TIME,BOOL STATE
STRUC FCT_IN_T INT NO,BOOL STATE
STRUC PDAT REAL VEL,ACC,APO_DIST,APO_MODE_T APO_MODE,REAL GEAR_JERK,INT EXAX_IGN
STRUC LDAT REAL VEL,ACC,APO_DIST,APO_FAC,AXIS_VEL,AXIS_ACC,ORI_TYPE ORI_TYP,CIRC_TYPE CIRC_TYP,REAL JERK_FAC,GEAR_JERK,INT EXAX_IGN,CIRC_MODE CB
STRUC FDAT INT TOOL_NO,BASE_NO,IPO_MODE IPO_FRAME,CHAR POINT2[24],BOOL TQ_STATE
STRUC ODAT INT OUT_NO,BOOL STATE,REAL PULSE_TIME,OUT_MODETYPE OUT_MODE,REAL TIME_DELAY,OFFSET
STRUC BASIS_SUGG_T CHAR POINT1[24],POINT2[24],CP_PARAMS[24],PTP_PARAMS[24],CONT[24],CP_VEL[24],PTP_VEL[24],SYNC_PARAMS[24],SPL_NAME[24],A_PARAMS[24],PC_SYNCSTRING[24],GL_SYNCSTRING[24]
STRUC HDAT REAL HT_START,HT_DEST,APO_START,APO_DEST,ACC_START,ACC_DEST,VEL_START,VEL_DEST
STRUC OUT_SUGG_T CHAR PARAMS[24]
STRUC MACHINE_DEF_T CHAR NAME[40],INT COOP_KRC_INDEX,CHAR PARENT[40],FRAME ROOT,ESYS MECH_TYPE,CHAR GEOMETRY[255]
STRUC MACHINE_TOOL_T INT MACH_DEF_INDEX,CHAR PARENT[40],CHAR GEOMETRY[255]
STRUC MACHINE_FRAME_T INT MACH_DEF_INDEX,CHAR PARENT[40],CHAR GEOMETRY[255]
STRUC TRIGGER_PARA INT TriggerPath,BOOL TriggerOnStart,INT TriggerDelay,CHAR TriggerTask[40]
STRUC CONSTVEL_PARA INT ConstVelTyp,INT ConstVelPath,BOOL ConstVelOnStart
STRUC CONDSTOP_PARA INT CondStopPath,BOOL CondStopOnStart,CHAR StopCondition[40]
STRUC ADAT TRIGGER_PARA TriggerPara,CONSTVEL_PARA ConstVelPara,CONDSTOP_PARA CondStopPara
STRUC MODULEPARAM_T CHAR PARAMS[2000]
STRUC TRACECACHE_T CHAR NAME[64],INT ACT_ITER,INT MAX_ITER
;FOLD OLD TORQUE MONITORING - Do not remove! Needed to prevent syntax errors in old user modules!
STRUC TM_SUGG_T CHAR TM_ID[24]
STRUC TQM_TQDAT_T INT T11,T12,T13,T14,T15,T16,T21,T22,T23,T24,T25,T26,K1,K2,K3,K4,K5,K6,O1,O2,ID,OVM,REAL TMF
;ENDFOLD
;==================================
; External declarations:
;==================================
EXT BAS (BAS_COMMAND :IN,REAL :IN )
EXT IR_STOPM ( )
;====================
; Signal declarations
; Do not change !!!!!
;====================
SIGNAL CHANNEL_1 $ANOUT[1]
SIGNAL CHANNEL_2 $ANOUT[2]
SIGNAL CHANNEL_3 $ANOUT[3]
SIGNAL CHANNEL_4 $ANOUT[4]
SIGNAL CHANNEL_5 $ANOUT[5]
SIGNAL CHANNEL_6 $ANOUT[6]
SIGNAL CHANNEL_7 $ANOUT[7]
SIGNAL CHANNEL_8 $ANOUT[8]
SIGNAL CHANNEL_9 $ANOUT[9]
SIGNAL CHANNEL_10 $ANOUT[10]
SIGNAL CHANNEL_11 $ANOUT[11]
SIGNAL CHANNEL_12 $ANOUT[12]
SIGNAL CHANNEL_13 $ANOUT[13]
SIGNAL CHANNEL_14 $ANOUT[14]
SIGNAL CHANNEL_15 $ANOUT[15]
SIGNAL CHANNEL_16 $ANOUT[16]
SIGNAL CHANNEL_17 $ANOUT[17]
SIGNAL CHANNEL_18 $ANOUT[18]
SIGNAL CHANNEL_19 $ANOUT[19]
SIGNAL CHANNEL_20 $ANOUT[20]
SIGNAL CHANNEL_21 $ANOUT[21]
SIGNAL CHANNEL_22 $ANOUT[22]
SIGNAL CHANNEL_23 $ANOUT[23]
SIGNAL CHANNEL_24 $ANOUT[24]
SIGNAL CHANNEL_25 $ANOUT[25]
SIGNAL CHANNEL_26 $ANOUT[26]
SIGNAL CHANNEL_27 $ANOUT[27]
SIGNAL CHANNEL_28 $ANOUT[28]
SIGNAL CHANNEL_29 $ANOUT[29]
SIGNAL CHANNEL_30 $ANOUT[30]
SIGNAL CHANNEL_31 $ANOUT[31]
SIGNAL CHANNEL_32 $ANOUT[32]
;==================================
; ID external user log-on:
;==================================
SIGNAL ExtUserID $IN[1026] TO $IN[1026]
SIGNAL ExtUserIDWatchDog $IN[1026]
;==================================
; Variables:
;==================================
DECL PDAT PDEFAULT={VEL 100.000,ACC 100.000,APO_DIST 100.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT LDEFAULT={VEL 2.00000,ACC 100.000,APO_DIST 100.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0}
DECL LDAT CDEFAULT={CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FDEFAULT={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL FDAT FHOME={TOOL_NO 1,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL ODAT ODEFAULT={OUT_NO 1,STATE TRUE,PULSE_TIME 0.0,OUT_MODE #STOP_,TIME_DELAY 0.0,OFFSET 0.0}
DECL HDAT HDEFAULT={HT_START 250.000,HT_DEST 250.000,APO_START 200.000,APO_DEST 200.000,ACC_START 100.000,ACC_DEST 100.000,VEL_START 2.00000,VEL_DEST 2.00000}
DECL ADAT TDEFAULT={TriggerPara {TriggerPath 0,TriggerOnStart FALSE,TriggerDelay 0,TriggerTask[] " "}}
DECL ADAT CVDEFAULT={ConstVelPara {ConstVelTyp 0,ConstVelPath 0,ConstVelOnStart FALSE}}
DECL ADAT CSDEFAULT={CondStopPara {CondStopPath 0,CondStopOnStart FALSE,StopCondition[] " "}}
DECL PDAT PDAT_ACT
DECL LDAT LDAT_ACT
DECL FDAT FDAT_ACT
DECL ODAT ODAT_ACT
DECL INT ACT_FILTER
DECL INT ACT_DELAY
DECL INT ACT_DISTANCE
DECL CHAR SPL_NAME[24]
DECL MSGBUF_T TouchUpCheckMsgBuffer[100]
;GROUP-Definitions
;----------------------------------
INT COMPL_GROUP='B0001'
INT DEF_GROUP[10]
DEF_GROUP[1]='B1111' ; complete
DEF_GROUP[2]='B0001' ; robot only
DEF_GROUP[3]='B0011' ; robot and track
DEF_GROUP[4]='B0111' ; robot, track and ext. axis2
DEF_GROUP[5]='B1011' ; robot, track and ext. axis3
DEF_GROUP[6]='B1111' ; robot, track and ext. axis2+3
DEF_GROUP[7]='B1111' ; complete
DEF_GROUP[8]='B1111' ; complete
DEF_GROUP[9]='B1111' ; complete
DEF_GROUP[10]='B1111' ; complete
INT $ACT_GROUP='B0001'
; HOME POSITION
;----------------------------------
E6AXIS XHOME={A1 -40.3666763,A2 -84.9813843,A3 100.802277,A4 -0.0544359796,A5 73.7439957,A6 -25.0959282,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS XHOME1={A1 -40.3666763,A2 -84.9813843,A3 100.802277,A4 -0.0544359796,A5 73.7439957,A6 -25.0959282,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS XHOME2={A1 -40.3666763,A2 -84.9813843,A3 100.802277,A4 -0.0544359796,A5 73.7439957,A6 -25.0959282,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS XHOME3={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS XHOME4={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS XHOME5={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
; REFERENCE POINTS
;----------------------------------
DECL FRAME REF_PT[16]
REF_PT[1]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[2]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[3]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[4]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[5]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[6]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[7]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[8]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[9]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[10]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[11]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[12]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[13]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[14]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[15]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
REF_PT[16]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
FRAME REF_TOOL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
; TOOL and BASE data
;----------------------------------
BOOL AUTO_IPO_M=FALSE
BOOL STOPM_FLAG=FALSE
BOOL TOOL_CORR_ON=FALSE
BOOL TOOL_CORR_W_ON=FALSE
BOOL BASE_CORR_ON=FALSE
BOOL M_BAS_COR_ON=FALSE
FRAME TOOL_CORR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
FRAME TOOL_CORR_W={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
FRAME BASE_CORR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
FRAME M_BASE_CORR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
INT COR_TOOL_NO=0
INT MAX_TOOL=16
DECL FRAME TOOL_DATA[16]
TOOL_DATA[1]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[2]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[3]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[4]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[5]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[6]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[7]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[8]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[9]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[10]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[11]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[12]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[13]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[14]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[15]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
TOOL_DATA[16]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
DECL CHAR TOOL_NAME[16,24]
TOOL_NAME[1,]=" "
TOOL_NAME[2,]=" "
TOOL_NAME[3,]=" "
TOOL_NAME[4,]=" "
TOOL_NAME[5,]=" "
TOOL_NAME[6,]=" "
TOOL_NAME[7,]=" "
TOOL_NAME[8,]=" "
TOOL_NAME[9,]=" "
TOOL_NAME[10,]=" "
TOOL_NAME[11,]=" "
TOOL_NAME[12,]=" "
TOOL_NAME[13,]=" "
TOOL_NAME[14,]=" "
TOOL_NAME[15,]=" "
TOOL_NAME[16,]=" "
INT MAX_LOAD=16
DECL LOAD LOAD_DATA[16]
LOAD_DATA[1]={M 20.0000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[2]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[3]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[4]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[5]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[6]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[7]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[8]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[9]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[10]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[11]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[12]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[13]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[14]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[15]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[16]={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
DECL CHAR LOAD_NAME[16,24]
LOAD_NAME[1,]=" "
LOAD_NAME[2,]=" "
LOAD_NAME[3,]=" "
LOAD_NAME[4,]=" "
LOAD_NAME[5,]=" "
LOAD_NAME[6,]=" "
LOAD_NAME[7,]=" "
LOAD_NAME[8,]=" "
LOAD_NAME[9,]=" "
LOAD_NAME[10,]=" "
LOAD_NAME[11,]=" "
LOAD_NAME[12,]=" "
LOAD_NAME[13,]=" "
LOAD_NAME[14,]=" "
LOAD_NAME[15,]=" "
LOAD_NAME[16,]=" "
DECL LDD_MODE_T LOAD_MODE[16]
LOAD_MODE[1]=#MANUAL
LOAD_MODE[2]=#NONE
LOAD_MODE[3]=#NONE
LOAD_MODE[4]=#NONE
LOAD_MODE[5]=#NONE
LOAD_MODE[6]=#NONE
LOAD_MODE[7]=#NONE
LOAD_MODE[8]=#NONE
LOAD_MODE[9]=#NONE
LOAD_MODE[10]=#NONE
LOAD_MODE[11]=#NONE
LOAD_MODE[12]=#NONE
LOAD_MODE[13]=#NONE
LOAD_MODE[14]=#NONE
LOAD_MODE[15]=#NONE
LOAD_MODE[16]=#NONE
DECL LDD_RESULT_T LOAD_RESULT[16]
LOAD_RESULT[1]=#NONE
LOAD_RESULT[2]=#NONE
LOAD_RESULT[3]=#NONE
LOAD_RESULT[4]=#NONE
LOAD_RESULT[5]=#NONE
LOAD_RESULT[6]=#NONE
LOAD_RESULT[7]=#NONE
LOAD_RESULT[8]=#NONE
LOAD_RESULT[9]=#NONE
LOAD_RESULT[10]=#NONE
LOAD_RESULT[11]=#NONE
LOAD_RESULT[12]=#NONE
LOAD_RESULT[13]=#NONE
LOAD_RESULT[14]=#NONE
LOAD_RESULT[15]=#NONE
LOAD_RESULT[16]=#NONE
DECL IPO_M_T TOOL_TYPE[16]
TOOL_TYPE[1]=#BASE
TOOL_TYPE[2]=#NONE
TOOL_TYPE[3]=#NONE
TOOL_TYPE[4]=#NONE
TOOL_TYPE[5]=#NONE
TOOL_TYPE[6]=#NONE
TOOL_TYPE[7]=#NONE
TOOL_TYPE[8]=#NONE
TOOL_TYPE[9]=#NONE
TOOL_TYPE[10]=#NONE
TOOL_TYPE[11]=#NONE
TOOL_TYPE[12]=#NONE
TOOL_TYPE[13]=#NONE
TOOL_TYPE[14]=#NONE
TOOL_TYPE[15]=#NONE
TOOL_TYPE[16]=#NONE
DECL LOAD LOAD_A1_DATA={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
DECL LOAD LOAD_A2_DATA={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
DECL LOAD LOAD_A3_DATA={M -1.00000,CM {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},J {X 0.0,Y 0.0,Z 0.0}}
INT MAX_BASE=32
DECL FRAME BASE_DATA[32]
BASE_DATA[1]={X 823.726135,Y -1331.62146,Z 626.088379,A -0.308851,B 0.00167013647,C -0.0266715586}
BASE_DATA[2]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[3]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[4]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[5]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[6]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[7]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[8]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[9]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[10]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[11]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[12]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[13]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[14]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[15]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[16]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[17]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[18]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[19]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[20]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[21]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[22]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[23]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[24]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[25]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[26]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[27]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[28]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[29]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[30]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[31]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
BASE_DATA[32]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}
DECL CHAR BASE_NAME[32,24]
BASE_NAME[1,]=" "
BASE_NAME[2,]=" "
BASE_NAME[3,]=" "
BASE_NAME[4,]=" "
BASE_NAME[5,]=" "
BASE_NAME[6,]=" "
BASE_NAME[7,]=" "
BASE_NAME[8,]=" "
BASE_NAME[9,]=" "
BASE_NAME[10,]=" "
BASE_NAME[11,]=" "
BASE_NAME[12,]=" "
BASE_NAME[13,]=" "
BASE_NAME[14,]=" "
BASE_NAME[15,]=" "
BASE_NAME[16,]=" "
BASE_NAME[17,]=" "
BASE_NAME[18,]=" "
BASE_NAME[19,]=" "
BASE_NAME[20,]=" "
BASE_NAME[21,]=" "
BASE_NAME[22,]=" "
BASE_NAME[23,]=" "
BASE_NAME[24,]=" "
BASE_NAME[25,]=" "
BASE_NAME[26,]=" "
BASE_NAME[27,]=" "
BASE_NAME[28,]=" "
BASE_NAME[29,]=" "
BASE_NAME[30,]=" "
BASE_NAME[31,]=" "
BASE_NAME[32,]=" "
DECL IPO_M_T BASE_TYPE[32]
BASE_TYPE[1]=#NONE
BASE_TYPE[2]=#NONE
BASE_TYPE[3]=#NONE
BASE_TYPE[4]=#NONE
BASE_TYPE[5]=#NONE
BASE_TYPE[6]=#NONE
BASE_TYPE[7]=#NONE
BASE_TYPE[8]=#NONE
BASE_TYPE[9]=#NONE
BASE_TYPE[10]=#NONE
BASE_TYPE[11]=#NONE
BASE_TYPE[12]=#NONE
BASE_TYPE[13]=#NONE
BASE_TYPE[14]=#NONE
BASE_TYPE[15]=#NONE
BASE_TYPE[16]=#NONE
BASE_TYPE[17]=#NONE
BASE_TYPE[18]=#NONE
BASE_TYPE[19]=#NONE
BASE_TYPE[20]=#NONE
BASE_TYPE[21]=#NONE
BASE_TYPE[22]=#NONE
BASE_TYPE[23]=#NONE
BASE_TYPE[24]=#NONE
BASE_TYPE[25]=#NONE
BASE_TYPE[26]=#NONE
BASE_TYPE[27]=#NONE
BASE_TYPE[28]=#NONE
BASE_TYPE[29]=#NONE
BASE_TYPE[30]=#NONE
BASE_TYPE[31]=#NONE
BASE_TYPE[32]=#NONE
;******************************************
; Variables for CELL DEFINITION
;******************************************
INT MAX_MACHINES=16
DECL MACHINE_DEF_T MACHINE_DEF[16]
MACHINE_DEF[1]={NAME[] "KR 120 R3100-2",COOP_KRC_INDEX 1,PARENT[] "WORLD",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #ROBOT,GEOMETRY[] "ObjectId = 1232261811"}
MACHINE_DEF[2]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[3]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[4]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[5]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[6]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[7]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[8]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[9]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[10]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[11]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[12]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[13]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[14]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[15]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
MACHINE_DEF[16]={NAME[] " ",COOP_KRC_INDEX 0,PARENT[] " ",ROOT {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #NONE,GEOMETRY[] " "}
DECL MACHINE_TOOL_T MACHINE_TOOL_DAT[16]
MACHINE_TOOL_DAT[1]={MACH_DEF_INDEX 1,PARENT[] "KR 120 R3100-2",GEOMETRY[] " "}
MACHINE_TOOL_DAT[2]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[3]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[4]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[5]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[6]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[7]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[8]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[9]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[10]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[11]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[12]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[13]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[14]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[15]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_TOOL_DAT[16]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
DECL MACHINE_FRAME_T MACHINE_FRAME_DAT[32]
MACHINE_FRAME_DAT[1]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[2]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[3]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[4]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[5]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[6]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[7]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[8]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[9]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[10]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[11]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[12]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[13]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[14]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[15]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[16]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[17]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[18]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[19]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[20]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[21]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[22]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[23]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[24]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[25]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[26]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[27]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[28]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[29]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[30]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[31]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
MACHINE_FRAME_DAT[32]={MACH_DEF_INDEX 0,PARENT[] " ",GEOMETRY[] " "}
;******************************************
; Variables for axis CALIBRATING
;******************************************
DECL INT CAL_AXIS
BOOL CONST_SPEED
;******************************************
; Variables for added TechPackages
;******************************************
INT POWER
;******************************************
; General purpose return value of functions
; like INVERSE, FORWARD
;******************************************
INT ERR_STATUS=-1
;******************************************
; Variables for TOUCHUP user limit
;******************************************
BOOL UM_TOUCHUP=FALSE
REAL CARTESIAN_TOL=5.00000
REAL ROTATION_ANGLE=10.0000
REAL EXTAX_TOL[6]
EXTAX_TOL[1]=10.0000
EXTAX_TOL[2]=10.0000
EXTAX_TOL[3]=10.0000
EXTAX_TOL[4]=10.0000
EXTAX_TOL[5]=10.0000
EXTAX_TOL[6]=10.0000
;******************************************
; Variables for Displaying and Konfiguring
;******************************************
DECL INT I[20]
I[1]=0
I[2]=0
I[3]=0
I[4]=0
I[5]=0
I[6]=0
I[7]=0
I[8]=0
I[9]=0
I[10]=0
I[11]=0
I[12]=0
I[13]=0
I[14]=0
I[15]=0
I[16]=0
I[17]=0
I[18]=0
I[19]=0
I[20]=0
;******************************************
; Variables for Tracing
;******************************************
DECL TRACECACHE_T TRACE_CACHE[10]
TRACE_CACHE[1]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[2]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[3]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[4]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[5]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[6]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[7]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[8]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[9]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
TRACE_CACHE[10]={NAME[] " ",ACT_ITER 0,MAX_ITER 1}
DECL INT TraceOverflowIndex=1
;******************************************
; all for InterBus Mapping on optional segments
;******************************************
DECL INT IBUS_SEGMENT[16]
IBUS_SEGMENT[1]=0
IBUS_SEGMENT[2]=0
IBUS_SEGMENT[3]=0
IBUS_SEGMENT[4]=0
IBUS_SEGMENT[5]=0
IBUS_SEGMENT[6]=0
IBUS_SEGMENT[7]=0
IBUS_SEGMENT[8]=0
IBUS_SEGMENT[9]=0
IBUS_SEGMENT[10]=0
IBUS_SEGMENT[11]=0
IBUS_SEGMENT[12]=0
IBUS_SEGMENT[13]=0
IBUS_SEGMENT[14]=0
IBUS_SEGMENT[15]=0
IBUS_SEGMENT[16]=0
;******************************************
; Reduction factors
;******************************************
DECL REAL RedVelExAx[6]
RedVelExAx[1]=100.000
RedVelExAx[2]=100.000
RedVelExAx[3]=100.000
RedVelExAx[4]=100.000
RedVelExAx[5]=100.000
RedVelExAx[6]=100.000
DECL REAL RedAccExAx[6]
RedAccExAx[1]=100.000
RedAccExAx[2]=100.000
RedAccExAx[3]=100.000
RedAccExAx[4]=100.000
RedAccExAx[5]=100.000
RedAccExAx[6]=100.000
;******************************************
; Joint offset
;******************************************
STRUC JOINT_DEVICE_T CHAR NAME[39],REAL OFFSET,INT AXIS_INDEX
DECL JOINT_DEVICE_T JOINT_DEVICE[32]
JOINT_DEVICE[1]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[2]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[3]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[4]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[5]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[6]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[7]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[8]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[9]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[10]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[11]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[12]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[13]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[14]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[15]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[16]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[17]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[18]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[19]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[20]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[21]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[22]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[23]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[24]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[25]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[26]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[27]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[28]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[29]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[30]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[31]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
JOINT_DEVICE[32]={NAME[] " ",OFFSET 0.0,AXIS_INDEX -1}
DECL INT JOINT_DEVICE_INDEX[32]
JOINT_DEVICE_INDEX[1]=-1
JOINT_DEVICE_INDEX[2]=-1
JOINT_DEVICE_INDEX[3]=-1
JOINT_DEVICE_INDEX[4]=-1
JOINT_DEVICE_INDEX[5]=-1
JOINT_DEVICE_INDEX[6]=-1
JOINT_DEVICE_INDEX[7]=-1
JOINT_DEVICE_INDEX[8]=-1
JOINT_DEVICE_INDEX[9]=-1
JOINT_DEVICE_INDEX[10]=-1
JOINT_DEVICE_INDEX[11]=-1
JOINT_DEVICE_INDEX[12]=-1
JOINT_DEVICE_INDEX[13]=-1
JOINT_DEVICE_INDEX[14]=-1
JOINT_DEVICE_INDEX[15]=-1
JOINT_DEVICE_INDEX[16]=-1
JOINT_DEVICE_INDEX[17]=-1
JOINT_DEVICE_INDEX[18]=-1
JOINT_DEVICE_INDEX[19]=-1
JOINT_DEVICE_INDEX[20]=-1
JOINT_DEVICE_INDEX[21]=-1
JOINT_DEVICE_INDEX[22]=-1
JOINT_DEVICE_INDEX[23]=-1
JOINT_DEVICE_INDEX[24]=-1
JOINT_DEVICE_INDEX[25]=-1
JOINT_DEVICE_INDEX[26]=-1
JOINT_DEVICE_INDEX[27]=-1
JOINT_DEVICE_INDEX[28]=-1
JOINT_DEVICE_INDEX[29]=-1
JOINT_DEVICE_INDEX[30]=-1
JOINT_DEVICE_INDEX[31]=-1
JOINT_DEVICE_INDEX[32]=-1
BOOL bJointOffsetHasBeenSet=FALSE
INT iLastAxisNo=0
ENUM TIMER_ACTIONTYPE TimerStart,TimerStop,TimeOut
BOOL EasyTeachKeepOriWarning=FALSE
INT EasyTeachKeepOriHandle=0
;ENDFOLD (BASISTECH GLOBALS)
;FOLD AUTOEXT GLOBALS
;==================================
; Structures:
;==================================
ENUM FUNCT_TYPE PGNO_GET,PGNO_ACKN,PGNO_FAULT
ENUM P00_COMMAND INIT_EXT,EXT_PGNO,CHK_HOME,EXT_ERR
STRUC SPS_PROG_TYPE INT PROG_NR,CHAR PROG_NAME[12]
;==================================
; External declarations:
;==================================
EXT P00 (P00_COMMAND :IN,FUNCT_TYPE :IN,CHAR [] :OUT,INT :IN )
;External declaration for Submit controlled AutoExt
EXT P00_SUBM (P00_COMMAND :IN,FUNCT_TYPE :IN )
;==================================
; Variables:
;==================================
; Variables for internal
; Communication:
;----------------------------------
BOOL ERROR_FLAG
BOOL CHECK_HOME=TRUE
BOOL PROG_CONTROL=FALSE
DECL CHAR PRO_NAME1_L[8]
PRO_NAME1_L[]=" "
DECL CHAR PRO_NAME1_A[8]
PRO_NAME1_A[]=" "
INT PGNO=0 ;copy of ext. pgno
INT PGNO_ERROR=0 ;transmission error
INT PGNO_TYPE=1 ;coding type of ext. pgno
INT REFLECT_PROG_NR=0 ; enable mirroring of program number inputs (1=enabled, 0=disabled)
; Variables for External
; Communication: I/O-Interface
;----------------------------------
INT PGNO_FBIT=9 ;first bit of ext. pgno input $IN[]
INT PGNO_FBIT_REFL=999 ;first bit of ext. pgno reflection output $OUT[]
INT PGNO_LENGTH=8 ;length of ext. pgno (max. 16)
INT PGNO_PARITY=1 ;parity bit of ext. pgno
INT PGNO_REQ=6 ;request ext. pgno input
INT PGNO_VALID=2 ;validate ext. pgno input
INT APPL_RUN=7 ;application program is running output
INT ERR_TO_PLC=35 ;error output to PLC
INT P01_STEP
INT CHK_STEP
INT PGNO_FLAG
; Table for assign SPS program number to program name
INT MAX_SPS_PROG=12
DECL SPS_PROG_TYPE SPS_PROG[12]
SPS_PROG[1]={PROG_NR 1,PROG_NAME[] "HP01() "}
SPS_PROG[2]={PROG_NR 2,PROG_NAME[] "HP02() "}
SPS_PROG[3]={PROG_NR 3,PROG_NAME[] "HP03() "}
SPS_PROG[4]={PROG_NR 4,PROG_NAME[] "HP04() "}
SPS_PROG[5]={PROG_NR 5,PROG_NAME[] "HP05() "}
SPS_PROG[6]={PROG_NR 6,PROG_NAME[] "HP06() "}
SPS_PROG[7]={PROG_NR 7,PROG_NAME[] "HP07() "}
SPS_PROG[8]={PROG_NR 8,PROG_NAME[] "HP08() "}
SPS_PROG[9]={PROG_NR 9,PROG_NAME[] "HP09() "}
SPS_PROG[10]={PROG_NR 10,PROG_NAME[] "HP10() "}
SPS_PROG[11]={PROG_NR 62,PROG_NAME[] "HP62() "}
SPS_PROG[12]={PROG_NR 63,PROG_NAME[] "HP63() "}
DECL CHAR TMPNAME[128]
TMPNAME[]=" "
;ENDFOLD (AUTOEXT GLOBALS)
;FOLD BackupManagerConfig
BOOL BM_ENABLED
INT BM_OUTPUTVALUE
SIGNAL BM_OutputSignal $OUT[4095] TO $OUT[4096]
SIGNAL BM_InputSignal $IN[1026] TO $IN[1026]
;ENDFOLD BackupManagerConfig
;FOLD Conveyor
DECL INT CONV_PART_NBR[16]
CONV_PART_NBR[1]=0
CONV_PART_NBR[2]=0
CONV_PART_NBR[3]=0
CONV_PART_NBR[4]=0
CONV_PART_NBR[5]=0
CONV_PART_NBR[6]=0
CONV_PART_NBR[7]=0
CONV_PART_NBR[8]=0
CONV_PART_NBR[9]=0
CONV_PART_NBR[10]=0
CONV_PART_NBR[11]=0
CONV_PART_NBR[12]=0
CONV_PART_NBR[13]=0
CONV_PART_NBR[14]=0
CONV_PART_NBR[15]=0
CONV_PART_NBR[16]=0
ENUM CONV_MODE_TYPE Absolute,Relative
DECL CONV_MODE_TYPE ActualConveyorMode=#Relative
;ENDFOLD Conveyor
;FOLD USER GLOBALS
;*******************************************
;Make your modifications -ONLY- here
;*******************************************
;==================================
; Userdefined Types
;==================================
;==================================
; Userdefined Externals
;==================================
;==================================
; Userdefined Variables
;==================================
;ENDFOLD (USER GLOBALS)
ENDDAT

View File

@@ -0,0 +1,5 @@
&ACCESS R
&COMMENT global points
DEFDAT GLOBAL_POINTS PUBLIC
ENDDAT

View File

@@ -0,0 +1,12 @@
&ACCESS RV
DEFDAT MqttConfig PUBLIC
; Publisher IP address for KukaConnect data-set configuration.
; Should either start with "mqtt://" or "mqtts://".
GLOBAL CHAR KUKACONNECT_BROKERIP[100]
KUKACONNECT_BROKERIP[]="mqtts://broker-ip:8883"
; Publisher for KukaConnect data-set only starts if enabled.
GLOBAL BOOL KUKACONNECT_ENABLED=FALSE;
ENDDAT

View File

@@ -0,0 +1,7 @@
&ACCESS R1
&COMMENT Message library
DEFDAT MsgLib PUBLIC
DECL INT lnHandle=0
ENDDAT

View File

@@ -0,0 +1,753 @@
&ACCESS R1
&COMMENT Message library
DEF MsgLib ( )
;**************************************************
;Creation Date: 7.12.2007
;Change: 23.06.2012 additional properties possible
; for logging and advance stop control
;**************************************************
;FOLD Interfaces and message examples within this fold
;----------Global subroutines and functions: -------
;MsgNotify(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
;MsgNotifyTextPar(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, sTextPar2[]:IN, nMsgNr:IN,MsgOpt:IN)
;MsgQuit(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
;MsgState(nHandle:OUT, sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
;MsgLoop(sText[]:IN,sModul[]:IN)
;MsgDialog(nAnswer:OUT,sText[]:IN,sModul[]:IN,sTextPar[]:IN,sDialogSK1[]:IN,sDialogSK2[]:IN,sDialogSK3[]:IN,sDialogSK4[]:IN,sDialogSK5[]:IN,sDialogSK6[]:IN,sDialogSK7[]:IN,NoBrakes:IN, nMsgNr:IN,MsgOpt:IN)
;----------Explainations for parameters: -----------
;CHAR sText[] message text or message DB-key (80 chars)
;CHAR sModul[] (option) modulname or key (24 char)
;INT nNumPar (option)numeric value inserted in sText[] at the position %1
;CHAR sTextPar[] (option)text or message DB-key inserted in sText[] at the position %1 (26 char)
;MsgOpt (option) Structure KrlMsgOpt_T BOOL VL_Stop,Clear_P_Reset,Log_To_DB
; (option) VL_Stop=TRUE => Creates an advance stop | FALSE avoids this behavior
; (option) Clear_P_Reset=TRUE (Default) deletes Messages at program reset / cancelled
; (option) Log_To_DB=TRUE => entry into logbook => enfluence to system performance
;----------Examples: -------------------------------
;MsgNotifyTextPar("Error", "CrossMeld", 0, "Error message 1", "Error message 2", 511)
;MsgNotify("this is a notify message")
;MsgQuit("this is a quit message", "myMod")
;MsgQuit("this is a quit message", "myMod",,,12345)
;INT myInt=123
;MsgQuit("this is the %1 quit message", "Module", myInt)
;MsgNotify("this is a %1 notify message", "Tech", , "asd")
;MsgLoop("this is the loop message")
;MsgLoop(" "); cancels loop message
;MsgDialog(DialogAnswer, "DBKEY" OR "dialog message", "Module", "TextPar for %1 in DBKey", "DialogKey1", "DialogKey2", "DialogKey3",,,,,,12345)
;MsgDialog(DialogAnswer, "StartPTP", "CrossMeld", "Achse 3", "YES", "NO", "Cancel")
;MsgNotifyTextPar("DBKEY" OR "notify message", "Module", 0 OR >0, "TextPar for %1", "TextPar for %2")
;nNumPar = 0: TextPar will be send as %1 %2 nNumPar > 0: nNumPar will be send as %1
;ENDFOLD
END
;***************************
;Execution of notify message
;***************************
GLOBAL DEF MsgNotify(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
DECL CHAR sText[], sModul[], sTextPar[]
DECL KrlMsg_T Msg
DECL KrlMsgParType_T MsgParType
DECL KrlMsgPar_T MsgPar[3]
DECL KrlMsgOpt_T MsgOpt ;Bool-elements: VL_Stop,Clear_P_Reset,Log_To_DB
DECL KrlMsgOpt_T DummyMsgOpt
DECL State_T State
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
;Default Values: MsgOpt={ VL_Stop TRUE, Clear_P_Reset TRUE, Log_To_DB False }
ON_ERROR_PROCEED
DummyMsgOpt=MsgOpt
IF ($ERR.Number<>0) THEN
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
MsgOpt.Clear_P_Reset=TRUE
MsgOpt.Log_To_DB=FALSE
ERR_CLEAR($ERR)
ENDIF
;Creates default values in case of none availability
MsgOpt=CheckOfMsgOpt(MsgOpt)
Msg.Nr=1
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
Msg.Nr=nMsgNr
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
Msg.Msg_txt[count]=sText[count]
ENDFOR
ELSE
Msg.Msg_txt[]="parameter sText[] is missing"
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
Msg.Modul[count]=sModul[count]
ENDFOR
ELSE
Msg.Modul[]="Appl"
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
offset=nNumPar
IF $ERR.Number==0 THEN
offset=0
MsgPar[1].Par_Txt[]=" "
SWRITE(MsgPar[1].Par_Txt[], State, Offset, "%d", nNumPar)
MsgPar[1].Par_type=#Value
ELSE
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sTextPar[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[1].Par_Txt[count]=sTextPar[count]
ENDFOR
MsgPar[1].Par_type=#Value
ENDIF
ENDIF
nHandle=Set_KrlMsg (#NOTIFY, Msg, MsgPar[], MsgOpt)
END ;(MsgNotify)
;*****************************
;Execution of the quit message
;*****************************
GLOBAL DEF MsgQuit(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
DECL CHAR sText[], sModul[], sTextPar[]
DECL KrlMsg_T Msg
DECL KrlMsgParType_T MsgParType
DECL KrlMsgPar_T MsgPar[3]
DECL KrlMsgOpt_T MsgOpt
DECL KrlMsgOpt_T DummyMsgOpt
DECL State_T State
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
ON_ERROR_PROCEED
DummyMsgOpt=MsgOpt
IF ($ERR.Number<>0) THEN
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
MsgOpt.Clear_P_Reset=TRUE
MsgOpt.Log_To_DB=FALSE
ERR_CLEAR($ERR)
ENDIF
;Creates default values in case of none availability
MsgOpt=CheckOfMsgOpt(MsgOpt)
Msg.Nr=1
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
Msg.Nr=nMsgNr
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
Msg.Msg_txt[count]=sText[count]
ENDFOR
ELSE
Msg.Msg_txt[]="parameter sText[] is missing"
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
Msg.Modul[count]=sModul[count]
ENDFOR
ELSE
Msg.Modul[]="Appl"
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
offset=nNumPar
IF $ERR.Number==0 THEN
offset=0
MsgPar[1].Par_Txt[]=" "
SWRITE(MsgPar[1].Par_Txt[], State, offset, "%d", nNumPar)
MsgPar[1].Par_type=#Value
ELSE
ERR_CLEAR($ERR)
len=STRLEN(sTextPar[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[1].Par_Txt[count]=sTextPar[count]
ENDFOR
MsgPar[1].Par_type=#Value
ENDIF
ENDIF
nHandle=Set_KrlMsg (#QUIT, Msg, MsgPar[], MsgOpt)
WHILE ( Exists_KrlMsg(nHandle) )
WAIT sec 0.1
ENDWHILE
END ;(MsgQuit)
;******************************
;Execution of the state message
;******************************
GLOBAL DEF MsgState(nHandle:OUT, sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
DECL CHAR sText[], sModul[], sTextPar[]
DECL KrlMsg_T Msg
DECL KrlMsgParType_T MsgParType
DECL KrlMsgPar_T MsgPar[3]
DECL KrlMsgOpt_T MsgOpt
DECL KrlMsgOpt_T DummyMsgOpt
DECL State_T State
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
ON_ERROR_PROCEED
DummyMsgOpt=MsgOpt
IF ($ERR.Number<>0) THEN
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
MsgOpt.Clear_P_Reset=TRUE
MsgOpt.Log_To_DB=FALSE
ERR_CLEAR($ERR)
ENDIF
;Creates default values in case of none availability
MsgOpt=CheckOfMsgOpt(MsgOpt)
Msg.Nr=1
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
Msg.Nr=nMsgNr
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
Msg.Msg_txt[count]=sText[count]
ENDFOR
ELSE
Msg.Msg_txt[]="parameter sText[] is missing"
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
Msg.Modul[count]=sModul[count]
ENDFOR
ELSE
Msg.Modul[]="Appl"
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
offset=nNumPar
IF $ERR.Number==0 THEN
offset=0
MsgPar[1].Par_Txt[]=" "
SWRITE(MsgPar[1].Par_Txt[], State, offset, "%d", nNumPar)
MsgPar[1].Par_type=#Value
ELSE
ERR_CLEAR($ERR)
len=STRLEN(sTextPar[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[1].Par_Txt[count]=sTextPar[count]
ENDFOR
MsgPar[1].Par_type=#Value
ENDIF
ENDIF
nHandle=Set_KrlMsg (#STATE, Msg, MsgPar[], MsgOpt)
END ;(MsgState)
;***************************
;Execution of loop message
;***************************
GLOBAL DEF MsgLoop(sText[]:IN,sModul[]:IN)
DECL CHAR sText[], sModul[]
DECL CHAR sMsg[80]
DECL CHAR sMod[24]
DECL INT count,len
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
sMsg[count]=sText[count]
ENDFOR
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
sMod[count]=sModul[count]
ENDFOR
ELSE
sMod[]="Appl"
ENDIF
IF (STRLEN(sMsg[])>0) THEN
IF lnHandle>0 THEN
WAIT FoR Clear_KrlMsg (lnHandle) OR TRUE
lnHandle=0
ENDIF
FOR count=1 TO STRLEN(sMsg[])
IF sMsg[count]<>" " THEN
MsgState(lnHandle, sMsg[], sMod[])
EXIT
ENDIF
ENDFOR
ENDIF
END ;(MsgLoop)
;*************************************************
;Execution of dialog message
;parameter NoBrakes: Robot leaves brakes open
;*************************************************
GLOBAL DEF MsgDialog(nAnswer:OUT,sText[]:IN,sModul[]:IN,sTextPar[]:IN,sDialogSK1[]:IN,sDialogSK2[]:IN,sDialogSK3[]:IN,sDialogSK4[]:IN,sDialogSK5[]:IN,sDialogSK6[]:IN,sDialogSK7[]:IN,NoBrakes:IN, nMsgNr:IN,MsgOpt:IN)
DECL KrlMsg_T Msg
DECL KrlMsgPar_T MsgPar[3]
DECL KrlMsgOpt_T MsgOpt
DECL KrlMsgOpt_T DummyMsgOpt
DECL KrlMsgDlgSK_T Msg_SOFTKEY[7]
DECL INT count, len, nHandle, nAnswer, nMsgNr
DECL BOOL NoBrakes
DECL CHAR sText[], sModul[], sTextPar[], sDialogSK1[], sDialogSK2[], sDialogSK3[], sDialogSK4[], sDialogSK5[], sDialogSK6[], sDialogSK7[]
DECL CHAR sMsg[80]
ON_ERROR_PROCEED
DummyMsgOpt=MsgOpt
IF ($ERR.Number<>0) THEN
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
MsgOpt.Clear_P_Reset=TRUE
MsgOpt.Log_To_DB=FALSE
ERR_CLEAR($ERR)
ENDIF
;Creates default values in case of none availability
MsgOpt=CheckOfMsgOpt(MsgOpt)
Msg.Nr=1
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
Msg.Nr=nMsgNr
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
Msg.Msg_txt[count]=sText[count]
ENDFOR
ELSE
Msg.Msg_txt[]="parameter sText[] is missing"
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
Msg.Modul[count]=sModul[count]
ENDFOR
ELSE
Msg.Modul[]="Appl"
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK1[])
IF $ERR.Number==0 THEN
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[7].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[7].Sk_txt[count] = sDialogSK1[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[7].Sk_txt[count] = " "
ENDFOR
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK2[])
IF $ERR.Number==0 THEN
len=STRLEN(sDialogSK2[])
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[6].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[6].Sk_txt[count] = sDialogSK2[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[6].Sk_txt[count] = " "
ENDFOR
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK3[])
IF $ERR.Number==0 THEN
len=STRLEN(sDialogSK3[])
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[5].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[5].Sk_txt[count] = sDialogSK3[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[5].Sk_txt[count] = " "
ENDFOR
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK4[])
IF $ERR.Number==0 THEN
len=STRLEN(sDialogSK4[])
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[4].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[4].Sk_txt[count] = sDialogSK4[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[4].Sk_txt[count] = " "
ENDFOR
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK5[])
IF $ERR.Number==0 THEN
len=STRLEN(sDialogSK5[])
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[3].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[3].Sk_txt[count] = sDialogSK5[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[3].Sk_txt[count] = " "
ENDFOR
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK6[])
IF $ERR.Number==0 THEN
len=STRLEN(sDialogSK6[])
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[2].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[2].Sk_txt[count] = sDialogSK6[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[2].Sk_txt[count] = " "
ENDFOR
ENDIF
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
len=STRLEN(sDialogSK7[])
IF $ERR.Number==0 THEN
len=STRLEN(sDialogSK7[])
IF len > 0 THEN
IF len>24 THEN
len=24
ENDIF
Msg_SOFTKEY[1].Sk_Type = #KEY
FOR count=1 TO len
Msg_SOFTKEY[1].Sk_txt[count] = sDialogSK7[count]
ENDFOR
ENDIF
ELSE
FOR count=1 TO 24
Msg_SOFTKEY[1].Sk_txt[count] = " "
ENDFOR
ENDIF
len=STRLEN(sTextPar[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[1].Par_Txt[count]=sTextPar[count]
ENDFOR
MsgPar[1].Par_type=#Value
ENDIF
nHandle=SET_KRLDLG(Msg, MsgPar[], Msg_SOFTKEY[], MsgOpt)
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
NoBrakes=NoBrakes
IF NOT($ERR.Number==0) THEN
NoBrakes=FALSE
ENDIF
IF (nHandle > 0) THEN
WHILE (Exists_KrlDlg(nHandle, nAnswer))
WAIT SEC 0.5
IF NoBrakes THEN
PTP $AXIS_ACT
ENDIF
ENDWHILE
ENDIF
END ;(MsgDialog)
;*************************************************
;Execution of notify message with text parameter
;*************************************************
GLOBAL DEF MsgNotifyTextPar(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, sTextPar2[]:IN, nMsgNr:IN,MsgOpt:IN)
DECL CHAR sText[], sModul[], sTextPar[], sTextPar2[]
DECL KrlMsg_T Msg
DECL EKrlMsgType MsgType
DECL KrlMsgParType_T MsgParType
DECL KrlMsgPar_T MsgPar[3]
DECL KrlMsgOpt_T MsgOpt
DECL KrlMsgOpt_T DummyMsgOpt
DECL State_T State
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
ON_ERROR_PROCEED
DummyMsgOpt=MsgOpt
IF ($ERR.Number<>0) THEN
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
MsgOpt.Clear_P_Reset=TRUE
MsgOpt.Log_To_DB=FALSE
ERR_CLEAR($ERR)
ENDIF
;Creates default values in case of none availability
MsgOpt=CheckOfMsgOpt(MsgOpt)
MsgType=#Notify
Msg.Nr=1
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
Msg.Nr=nMsgNr
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
Msg.Msg_txt[count]=sText[count]
ENDFOR
ELSE
Msg.Msg_txt[]="parameter sText[] is missing"
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
Msg.Modul[count]=sModul[count]
ENDFOR
ELSE
Msg.Modul[]="Appl"
ENDIF
offset=nNumPar
IF nNumPar==0 THEN
; 1st Parameter
len=STRLEN(sTextPar[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[1].Par_Txt[count]=sTextPar[count]
ENDFOR
MsgPar[1].Par_type=#Value
ENDIF
; 2nd Parameter
len=STRLEN(sTextPar2[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[2].Par_Txt[count]=sTextPar2[count]
ENDFOR
MsgPar[2].Par_type=#Value
ENDIF
ELSE
offset=0
MsgPar[1].Par_Txt[]=" "
SWRITE(MsgPar[1].Par_Txt[], State, Offset, "%d", nNumPar)
MsgPar[1].Par_type=#Value
ENDIF
nHandle=Set_KrlMsg (MsgType, Msg, MsgPar[], MsgOpt)
END ;(MsgNotifyTextPar)
;*************************************************
;Execution of quit message with text parameter
;*************************************************
GLOBAL DEF MsgQuitTextPar(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, sTextPar2[]:IN, nMsgNr:IN,MsgOpt:IN)
DECL CHAR sText[], sModul[], sTextPar[], sTextPar2[]
DECL KrlMsg_T Msg
DECL EKrlMsgType MsgType
DECL KrlMsgParType_T MsgParType
DECL KrlMsgPar_T MsgPar[3]
DECL KrlMsgOpt_T MsgOpt
DECL KrlMsgOpt_T DummyMsgOpt
DECL State_T State
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
ON_ERROR_PROCEED
DummyMsgOpt=MsgOpt
IF ($ERR.Number<>0) THEN
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
MsgOpt.Clear_P_Reset=TRUE
MsgOpt.Log_To_DB=FALSE
ERR_CLEAR($ERR)
ELSE
ERR_RAISE($ERR)
ENDIF
;Creates default values in case of none availability
MsgOpt=CheckOfMsgOpt(MsgOpt)
MsgType=#QUIT
Msg.Nr=1
ERR_CLEAR($ERR)
ON_ERROR_PROCEED
Msg.Nr=nMsgNr
len=STRLEN(sText[])
IF len>0 THEN
IF len>80 THEN
len=80
ENDIF
FOR count=1 TO len
Msg.Msg_txt[count]=sText[count]
ENDFOR
ELSE
Msg.Msg_txt[]="parameter sText[] is missing"
ENDIF
len=STRLEN(sModul[])
IF len>0 THEN
IF len>24 THEN
len=24
ENDIF
FOR count=1 TO len
Msg.Modul[count]=sModul[count]
ENDFOR
ELSE
Msg.Modul[]="Appl"
ENDIF
offset=nNumPar
IF nNumPar==0 THEN
; 1st Parameter
len=STRLEN(sTextPar[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[1].Par_Txt[count]=sTextPar[count]
ENDFOR
MsgPar[1].Par_type=#Value
ENDIF
; 2nd Parameter
len=STRLEN(sTextPar2[])
IF len>0 THEN
IF len>26 THEN
len=26
ENDIF
FOR count=1 TO len
MsgPar[2].Par_Txt[count]=sTextPar2[count]
ENDFOR
MsgPar[2].Par_type=#Value
ENDIF
ELSE
offset=0
MsgPar[1].Par_Txt[]=" "
SWRITE(MsgPar[1].Par_Txt[], State, Offset, "%d", nNumPar)
MsgPar[1].Par_type=#Value
ENDIF
nHandle=Set_KrlMsg (MsgType, Msg, MsgPar[], MsgOpt)
END ;(MsgQuitTextPar)
;*****************************
;* Check of missing elements *
;*****************************
DEFFCT KrlMsgOpt_T CheckOfMsgOpt(LocalMsgOpt:IN)
DECL KrlMsgOpt_T LocalMsgOpt ;Bool-elements: VL_Stop,Clear_P_Reset,Log_To_DB
DECL KrlMsgOpt_T DummyMsgOpt
;Default Values: MsgOpt={ VL_Stop TRUE, Clear_P_Reset TRUE, Log_To_DB False }
ON_ERROR_PROCEED
DummyMsgOpt.VL_Stop=LocalMsgOpt.VL_Stop
IF ($ERR.Number<>0) THEN
LocalMsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
ERR_CLEAR($ERR)
ENDIF
ON_ERROR_PROCEED
DummyMsgOpt.Clear_P_Reset=LocalMsgOpt.Clear_P_Reset
IF ($ERR.Number<>0) THEN
LocalMsgOpt.Clear_P_Reset=TRUE ;DEFAULT setting TRUE
ERR_CLEAR($ERR)
ENDIF
ON_ERROR_PROCEED
DummyMsgOpt.Log_To_DB=LocalMsgOpt.Log_To_DB
IF ($ERR.Number<>0) THEN
LocalMsgOpt.Log_To_DB=FALSE ;DEFAULT setting FALSE
ERR_CLEAR($ERR)
ENDIF
RETURN(LocalMsgOpt)
ENDFCT ;(CheckOfMsgOpt)

2084
KUKA/KRC/R1/System/bas.src Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,817 @@
&ACCESS R1
&COMMENT Collision monitoring library
DEFDAT COLLMONLIB PUBLIC
;DO NOT MODIFY THIS FILE
INT NUM_COLLMON_SETTINGS=30
INT COLLMON_SETTING[30,12]
COLLMON_SETTING[1,1]=150
COLLMON_SETTING[1,2]=150
COLLMON_SETTING[1,3]=150
COLLMON_SETTING[1,4]=150
COLLMON_SETTING[1,5]=150
COLLMON_SETTING[1,6]=150
COLLMON_SETTING[1,7]=150
COLLMON_SETTING[1,8]=150
COLLMON_SETTING[1,9]=150
COLLMON_SETTING[1,10]=150
COLLMON_SETTING[1,11]=150
COLLMON_SETTING[1,12]=150
COLLMON_SETTING[2,1]=150
COLLMON_SETTING[2,2]=150
COLLMON_SETTING[2,3]=150
COLLMON_SETTING[2,4]=150
COLLMON_SETTING[2,5]=150
COLLMON_SETTING[2,6]=150
COLLMON_SETTING[2,7]=150
COLLMON_SETTING[2,8]=150
COLLMON_SETTING[2,9]=150
COLLMON_SETTING[2,10]=150
COLLMON_SETTING[2,11]=150
COLLMON_SETTING[2,12]=150
COLLMON_SETTING[3,1]=150
COLLMON_SETTING[3,2]=150
COLLMON_SETTING[3,3]=150
COLLMON_SETTING[3,4]=150
COLLMON_SETTING[3,5]=150
COLLMON_SETTING[3,6]=150
COLLMON_SETTING[3,7]=150
COLLMON_SETTING[3,8]=150
COLLMON_SETTING[3,9]=150
COLLMON_SETTING[3,10]=150
COLLMON_SETTING[3,11]=150
COLLMON_SETTING[3,12]=150
COLLMON_SETTING[4,1]=150
COLLMON_SETTING[4,2]=150
COLLMON_SETTING[4,3]=150
COLLMON_SETTING[4,4]=150
COLLMON_SETTING[4,5]=150
COLLMON_SETTING[4,6]=150
COLLMON_SETTING[4,7]=150
COLLMON_SETTING[4,8]=150
COLLMON_SETTING[4,9]=150
COLLMON_SETTING[4,10]=150
COLLMON_SETTING[4,11]=150
COLLMON_SETTING[4,12]=150
COLLMON_SETTING[5,1]=150
COLLMON_SETTING[5,2]=150
COLLMON_SETTING[5,3]=150
COLLMON_SETTING[5,4]=150
COLLMON_SETTING[5,5]=150
COLLMON_SETTING[5,6]=150
COLLMON_SETTING[5,7]=150
COLLMON_SETTING[5,8]=150
COLLMON_SETTING[5,9]=150
COLLMON_SETTING[5,10]=150
COLLMON_SETTING[5,11]=150
COLLMON_SETTING[5,12]=150
COLLMON_SETTING[6,1]=150
COLLMON_SETTING[6,2]=150
COLLMON_SETTING[6,3]=150
COLLMON_SETTING[6,4]=150
COLLMON_SETTING[6,5]=150
COLLMON_SETTING[6,6]=150
COLLMON_SETTING[6,7]=150
COLLMON_SETTING[6,8]=150
COLLMON_SETTING[6,9]=150
COLLMON_SETTING[6,10]=150
COLLMON_SETTING[6,11]=150
COLLMON_SETTING[6,12]=150
COLLMON_SETTING[7,1]=150
COLLMON_SETTING[7,2]=150
COLLMON_SETTING[7,3]=150
COLLMON_SETTING[7,4]=150
COLLMON_SETTING[7,5]=150
COLLMON_SETTING[7,6]=150
COLLMON_SETTING[7,7]=150
COLLMON_SETTING[7,8]=150
COLLMON_SETTING[7,9]=150
COLLMON_SETTING[7,10]=150
COLLMON_SETTING[7,11]=150
COLLMON_SETTING[7,12]=150
COLLMON_SETTING[8,1]=150
COLLMON_SETTING[8,2]=150
COLLMON_SETTING[8,3]=150
COLLMON_SETTING[8,4]=150
COLLMON_SETTING[8,5]=150
COLLMON_SETTING[8,6]=150
COLLMON_SETTING[8,7]=150
COLLMON_SETTING[8,8]=150
COLLMON_SETTING[8,9]=150
COLLMON_SETTING[8,10]=150
COLLMON_SETTING[8,11]=150
COLLMON_SETTING[8,12]=150
COLLMON_SETTING[9,1]=150
COLLMON_SETTING[9,2]=150
COLLMON_SETTING[9,3]=150
COLLMON_SETTING[9,4]=150
COLLMON_SETTING[9,5]=150
COLLMON_SETTING[9,6]=150
COLLMON_SETTING[9,7]=150
COLLMON_SETTING[9,8]=150
COLLMON_SETTING[9,9]=150
COLLMON_SETTING[9,10]=150
COLLMON_SETTING[9,11]=150
COLLMON_SETTING[9,12]=150
COLLMON_SETTING[10,1]=150
COLLMON_SETTING[10,2]=150
COLLMON_SETTING[10,3]=150
COLLMON_SETTING[10,4]=150
COLLMON_SETTING[10,5]=150
COLLMON_SETTING[10,6]=150
COLLMON_SETTING[10,7]=150
COLLMON_SETTING[10,8]=150
COLLMON_SETTING[10,9]=150
COLLMON_SETTING[10,10]=150
COLLMON_SETTING[10,11]=150
COLLMON_SETTING[10,12]=150
COLLMON_SETTING[11,1]=150
COLLMON_SETTING[11,2]=150
COLLMON_SETTING[11,3]=150
COLLMON_SETTING[11,4]=150
COLLMON_SETTING[11,5]=150
COLLMON_SETTING[11,6]=150
COLLMON_SETTING[11,7]=150
COLLMON_SETTING[11,8]=150
COLLMON_SETTING[11,9]=150
COLLMON_SETTING[11,10]=150
COLLMON_SETTING[11,11]=150
COLLMON_SETTING[11,12]=150
COLLMON_SETTING[12,1]=150
COLLMON_SETTING[12,2]=150
COLLMON_SETTING[12,3]=150
COLLMON_SETTING[12,4]=150
COLLMON_SETTING[12,5]=150
COLLMON_SETTING[12,6]=150
COLLMON_SETTING[12,7]=150
COLLMON_SETTING[12,8]=150
COLLMON_SETTING[12,9]=150
COLLMON_SETTING[12,10]=150
COLLMON_SETTING[12,11]=150
COLLMON_SETTING[12,12]=150
COLLMON_SETTING[13,1]=150
COLLMON_SETTING[13,2]=150
COLLMON_SETTING[13,3]=150
COLLMON_SETTING[13,4]=150
COLLMON_SETTING[13,5]=150
COLLMON_SETTING[13,6]=150
COLLMON_SETTING[13,7]=150
COLLMON_SETTING[13,8]=150
COLLMON_SETTING[13,9]=150
COLLMON_SETTING[13,10]=150
COLLMON_SETTING[13,11]=150
COLLMON_SETTING[13,12]=150
COLLMON_SETTING[14,1]=150
COLLMON_SETTING[14,2]=150
COLLMON_SETTING[14,3]=150
COLLMON_SETTING[14,4]=150
COLLMON_SETTING[14,5]=150
COLLMON_SETTING[14,6]=150
COLLMON_SETTING[14,7]=150
COLLMON_SETTING[14,8]=150
COLLMON_SETTING[14,9]=150
COLLMON_SETTING[14,10]=150
COLLMON_SETTING[14,11]=150
COLLMON_SETTING[14,12]=150
COLLMON_SETTING[15,1]=150
COLLMON_SETTING[15,2]=150
COLLMON_SETTING[15,3]=150
COLLMON_SETTING[15,4]=150
COLLMON_SETTING[15,5]=150
COLLMON_SETTING[15,6]=150
COLLMON_SETTING[15,7]=150
COLLMON_SETTING[15,8]=150
COLLMON_SETTING[15,9]=150
COLLMON_SETTING[15,10]=150
COLLMON_SETTING[15,11]=150
COLLMON_SETTING[15,12]=150
COLLMON_SETTING[16,1]=150
COLLMON_SETTING[16,2]=150
COLLMON_SETTING[16,3]=150
COLLMON_SETTING[16,4]=150
COLLMON_SETTING[16,5]=150
COLLMON_SETTING[16,6]=150
COLLMON_SETTING[16,7]=150
COLLMON_SETTING[16,8]=150
COLLMON_SETTING[16,9]=150
COLLMON_SETTING[16,10]=150
COLLMON_SETTING[16,11]=150
COLLMON_SETTING[16,12]=150
COLLMON_SETTING[17,1]=150
COLLMON_SETTING[17,2]=150
COLLMON_SETTING[17,3]=150
COLLMON_SETTING[17,4]=150
COLLMON_SETTING[17,5]=150
COLLMON_SETTING[17,6]=150
COLLMON_SETTING[17,7]=150
COLLMON_SETTING[17,8]=150
COLLMON_SETTING[17,9]=150
COLLMON_SETTING[17,10]=150
COLLMON_SETTING[17,11]=150
COLLMON_SETTING[17,12]=150
COLLMON_SETTING[18,1]=150
COLLMON_SETTING[18,2]=150
COLLMON_SETTING[18,3]=150
COLLMON_SETTING[18,4]=150
COLLMON_SETTING[18,5]=150
COLLMON_SETTING[18,6]=150
COLLMON_SETTING[18,7]=150
COLLMON_SETTING[18,8]=150
COLLMON_SETTING[18,9]=150
COLLMON_SETTING[18,10]=150
COLLMON_SETTING[18,11]=150
COLLMON_SETTING[18,12]=150
COLLMON_SETTING[19,1]=150
COLLMON_SETTING[19,2]=150
COLLMON_SETTING[19,3]=150
COLLMON_SETTING[19,4]=150
COLLMON_SETTING[19,5]=150
COLLMON_SETTING[19,6]=150
COLLMON_SETTING[19,7]=150
COLLMON_SETTING[19,8]=150
COLLMON_SETTING[19,9]=150
COLLMON_SETTING[19,10]=150
COLLMON_SETTING[19,11]=150
COLLMON_SETTING[19,12]=150
COLLMON_SETTING[20,1]=150
COLLMON_SETTING[20,2]=150
COLLMON_SETTING[20,3]=150
COLLMON_SETTING[20,4]=150
COLLMON_SETTING[20,5]=150
COLLMON_SETTING[20,6]=150
COLLMON_SETTING[20,7]=150
COLLMON_SETTING[20,8]=150
COLLMON_SETTING[20,9]=150
COLLMON_SETTING[20,10]=150
COLLMON_SETTING[20,11]=150
COLLMON_SETTING[20,12]=150
COLLMON_SETTING[21,1]=150
COLLMON_SETTING[21,2]=150
COLLMON_SETTING[21,3]=150
COLLMON_SETTING[21,4]=150
COLLMON_SETTING[21,5]=150
COLLMON_SETTING[21,6]=150
COLLMON_SETTING[21,7]=150
COLLMON_SETTING[21,8]=150
COLLMON_SETTING[21,9]=150
COLLMON_SETTING[21,10]=150
COLLMON_SETTING[21,11]=150
COLLMON_SETTING[21,12]=150
COLLMON_SETTING[22,1]=150
COLLMON_SETTING[22,2]=150
COLLMON_SETTING[22,3]=150
COLLMON_SETTING[22,4]=150
COLLMON_SETTING[22,5]=150
COLLMON_SETTING[22,6]=150
COLLMON_SETTING[22,7]=150
COLLMON_SETTING[22,8]=150
COLLMON_SETTING[22,9]=150
COLLMON_SETTING[22,10]=150
COLLMON_SETTING[22,11]=150
COLLMON_SETTING[22,12]=150
COLLMON_SETTING[23,1]=150
COLLMON_SETTING[23,2]=150
COLLMON_SETTING[23,3]=150
COLLMON_SETTING[23,4]=150
COLLMON_SETTING[23,5]=150
COLLMON_SETTING[23,6]=150
COLLMON_SETTING[23,7]=150
COLLMON_SETTING[23,8]=150
COLLMON_SETTING[23,9]=150
COLLMON_SETTING[23,10]=150
COLLMON_SETTING[23,11]=150
COLLMON_SETTING[23,12]=150
COLLMON_SETTING[24,1]=150
COLLMON_SETTING[24,2]=150
COLLMON_SETTING[24,3]=150
COLLMON_SETTING[24,4]=150
COLLMON_SETTING[24,5]=150
COLLMON_SETTING[24,6]=150
COLLMON_SETTING[24,7]=150
COLLMON_SETTING[24,8]=150
COLLMON_SETTING[24,9]=150
COLLMON_SETTING[24,10]=150
COLLMON_SETTING[24,11]=150
COLLMON_SETTING[24,12]=150
COLLMON_SETTING[25,1]=150
COLLMON_SETTING[25,2]=150
COLLMON_SETTING[25,3]=150
COLLMON_SETTING[25,4]=150
COLLMON_SETTING[25,5]=150
COLLMON_SETTING[25,6]=150
COLLMON_SETTING[25,7]=150
COLLMON_SETTING[25,8]=150
COLLMON_SETTING[25,9]=150
COLLMON_SETTING[25,10]=150
COLLMON_SETTING[25,11]=150
COLLMON_SETTING[25,12]=150
COLLMON_SETTING[26,1]=150
COLLMON_SETTING[26,2]=150
COLLMON_SETTING[26,3]=150
COLLMON_SETTING[26,4]=150
COLLMON_SETTING[26,5]=150
COLLMON_SETTING[26,6]=150
COLLMON_SETTING[26,7]=150
COLLMON_SETTING[26,8]=150
COLLMON_SETTING[26,9]=150
COLLMON_SETTING[26,10]=150
COLLMON_SETTING[26,11]=150
COLLMON_SETTING[26,12]=150
COLLMON_SETTING[27,1]=150
COLLMON_SETTING[27,2]=150
COLLMON_SETTING[27,3]=150
COLLMON_SETTING[27,4]=150
COLLMON_SETTING[27,5]=150
COLLMON_SETTING[27,6]=150
COLLMON_SETTING[27,7]=150
COLLMON_SETTING[27,8]=150
COLLMON_SETTING[27,9]=150
COLLMON_SETTING[27,10]=150
COLLMON_SETTING[27,11]=150
COLLMON_SETTING[27,12]=150
COLLMON_SETTING[28,1]=150
COLLMON_SETTING[28,2]=150
COLLMON_SETTING[28,3]=150
COLLMON_SETTING[28,4]=150
COLLMON_SETTING[28,5]=150
COLLMON_SETTING[28,6]=150
COLLMON_SETTING[28,7]=150
COLLMON_SETTING[28,8]=150
COLLMON_SETTING[28,9]=150
COLLMON_SETTING[28,10]=150
COLLMON_SETTING[28,11]=150
COLLMON_SETTING[28,12]=150
COLLMON_SETTING[29,1]=150
COLLMON_SETTING[29,2]=150
COLLMON_SETTING[29,3]=150
COLLMON_SETTING[29,4]=150
COLLMON_SETTING[29,5]=150
COLLMON_SETTING[29,6]=150
COLLMON_SETTING[29,7]=150
COLLMON_SETTING[29,8]=150
COLLMON_SETTING[29,9]=150
COLLMON_SETTING[29,10]=150
COLLMON_SETTING[29,11]=150
COLLMON_SETTING[29,12]=150
COLLMON_SETTING[30,1]=150
COLLMON_SETTING[30,2]=150
COLLMON_SETTING[30,3]=150
COLLMON_SETTING[30,4]=150
COLLMON_SETTING[30,5]=150
COLLMON_SETTING[30,6]=150
COLLMON_SETTING[30,7]=150
COLLMON_SETTING[30,8]=150
COLLMON_SETTING[30,9]=150
COLLMON_SETTING[30,10]=150
COLLMON_SETTING[30,11]=150
COLLMON_SETTING[30,12]=150
INT COLLMON_DISPLAYED[30,12]
COLLMON_DISPLAYED[1,1]=150
COLLMON_DISPLAYED[1,2]=150
COLLMON_DISPLAYED[1,3]=150
COLLMON_DISPLAYED[1,4]=150
COLLMON_DISPLAYED[1,5]=150
COLLMON_DISPLAYED[1,6]=150
COLLMON_DISPLAYED[1,7]=150
COLLMON_DISPLAYED[1,8]=150
COLLMON_DISPLAYED[1,9]=150
COLLMON_DISPLAYED[1,10]=150
COLLMON_DISPLAYED[1,11]=150
COLLMON_DISPLAYED[1,12]=150
COLLMON_DISPLAYED[2,1]=150
COLLMON_DISPLAYED[2,2]=150
COLLMON_DISPLAYED[2,3]=150
COLLMON_DISPLAYED[2,4]=150
COLLMON_DISPLAYED[2,5]=150
COLLMON_DISPLAYED[2,6]=150
COLLMON_DISPLAYED[2,7]=150
COLLMON_DISPLAYED[2,8]=150
COLLMON_DISPLAYED[2,9]=150
COLLMON_DISPLAYED[2,10]=150
COLLMON_DISPLAYED[2,11]=150
COLLMON_DISPLAYED[2,12]=150
COLLMON_DISPLAYED[3,1]=150
COLLMON_DISPLAYED[3,2]=150
COLLMON_DISPLAYED[3,3]=150
COLLMON_DISPLAYED[3,4]=150
COLLMON_DISPLAYED[3,5]=150
COLLMON_DISPLAYED[3,6]=150
COLLMON_DISPLAYED[3,7]=150
COLLMON_DISPLAYED[3,8]=150
COLLMON_DISPLAYED[3,9]=150
COLLMON_DISPLAYED[3,10]=150
COLLMON_DISPLAYED[3,11]=150
COLLMON_DISPLAYED[3,12]=150
COLLMON_DISPLAYED[4,1]=150
COLLMON_DISPLAYED[4,2]=150
COLLMON_DISPLAYED[4,3]=150
COLLMON_DISPLAYED[4,4]=150
COLLMON_DISPLAYED[4,5]=150
COLLMON_DISPLAYED[4,6]=150
COLLMON_DISPLAYED[4,7]=150
COLLMON_DISPLAYED[4,8]=150
COLLMON_DISPLAYED[4,9]=150
COLLMON_DISPLAYED[4,10]=150
COLLMON_DISPLAYED[4,11]=150
COLLMON_DISPLAYED[4,12]=150
COLLMON_DISPLAYED[5,1]=150
COLLMON_DISPLAYED[5,2]=150
COLLMON_DISPLAYED[5,3]=150
COLLMON_DISPLAYED[5,4]=150
COLLMON_DISPLAYED[5,5]=150
COLLMON_DISPLAYED[5,6]=150
COLLMON_DISPLAYED[5,7]=150
COLLMON_DISPLAYED[5,8]=150
COLLMON_DISPLAYED[5,9]=150
COLLMON_DISPLAYED[5,10]=150
COLLMON_DISPLAYED[5,11]=150
COLLMON_DISPLAYED[5,12]=150
COLLMON_DISPLAYED[6,1]=150
COLLMON_DISPLAYED[6,2]=150
COLLMON_DISPLAYED[6,3]=150
COLLMON_DISPLAYED[6,4]=150
COLLMON_DISPLAYED[6,5]=150
COLLMON_DISPLAYED[6,6]=150
COLLMON_DISPLAYED[6,7]=150
COLLMON_DISPLAYED[6,8]=150
COLLMON_DISPLAYED[6,9]=150
COLLMON_DISPLAYED[6,10]=150
COLLMON_DISPLAYED[6,11]=150
COLLMON_DISPLAYED[6,12]=150
COLLMON_DISPLAYED[7,1]=150
COLLMON_DISPLAYED[7,2]=150
COLLMON_DISPLAYED[7,3]=150
COLLMON_DISPLAYED[7,4]=150
COLLMON_DISPLAYED[7,5]=150
COLLMON_DISPLAYED[7,6]=150
COLLMON_DISPLAYED[7,7]=150
COLLMON_DISPLAYED[7,8]=150
COLLMON_DISPLAYED[7,9]=150
COLLMON_DISPLAYED[7,10]=150
COLLMON_DISPLAYED[7,11]=150
COLLMON_DISPLAYED[7,12]=150
COLLMON_DISPLAYED[8,1]=150
COLLMON_DISPLAYED[8,2]=150
COLLMON_DISPLAYED[8,3]=150
COLLMON_DISPLAYED[8,4]=150
COLLMON_DISPLAYED[8,5]=150
COLLMON_DISPLAYED[8,6]=150
COLLMON_DISPLAYED[8,7]=150
COLLMON_DISPLAYED[8,8]=150
COLLMON_DISPLAYED[8,9]=150
COLLMON_DISPLAYED[8,10]=150
COLLMON_DISPLAYED[8,11]=150
COLLMON_DISPLAYED[8,12]=150
COLLMON_DISPLAYED[9,1]=150
COLLMON_DISPLAYED[9,2]=150
COLLMON_DISPLAYED[9,3]=150
COLLMON_DISPLAYED[9,4]=150
COLLMON_DISPLAYED[9,5]=150
COLLMON_DISPLAYED[9,6]=150
COLLMON_DISPLAYED[9,7]=150
COLLMON_DISPLAYED[9,8]=150
COLLMON_DISPLAYED[9,9]=150
COLLMON_DISPLAYED[9,10]=150
COLLMON_DISPLAYED[9,11]=150
COLLMON_DISPLAYED[9,12]=150
COLLMON_DISPLAYED[10,1]=150
COLLMON_DISPLAYED[10,2]=150
COLLMON_DISPLAYED[10,3]=150
COLLMON_DISPLAYED[10,4]=150
COLLMON_DISPLAYED[10,5]=150
COLLMON_DISPLAYED[10,6]=150
COLLMON_DISPLAYED[10,7]=150
COLLMON_DISPLAYED[10,8]=150
COLLMON_DISPLAYED[10,9]=150
COLLMON_DISPLAYED[10,10]=150
COLLMON_DISPLAYED[10,11]=150
COLLMON_DISPLAYED[10,12]=150
COLLMON_DISPLAYED[11,1]=150
COLLMON_DISPLAYED[11,2]=150
COLLMON_DISPLAYED[11,3]=150
COLLMON_DISPLAYED[11,4]=150
COLLMON_DISPLAYED[11,5]=150
COLLMON_DISPLAYED[11,6]=150
COLLMON_DISPLAYED[11,7]=150
COLLMON_DISPLAYED[11,8]=150
COLLMON_DISPLAYED[11,9]=150
COLLMON_DISPLAYED[11,10]=150
COLLMON_DISPLAYED[11,11]=150
COLLMON_DISPLAYED[11,12]=150
COLLMON_DISPLAYED[12,1]=150
COLLMON_DISPLAYED[12,2]=150
COLLMON_DISPLAYED[12,3]=150
COLLMON_DISPLAYED[12,4]=150
COLLMON_DISPLAYED[12,5]=150
COLLMON_DISPLAYED[12,6]=150
COLLMON_DISPLAYED[12,7]=150
COLLMON_DISPLAYED[12,8]=150
COLLMON_DISPLAYED[12,9]=150
COLLMON_DISPLAYED[12,10]=150
COLLMON_DISPLAYED[12,11]=150
COLLMON_DISPLAYED[12,12]=150
COLLMON_DISPLAYED[13,1]=150
COLLMON_DISPLAYED[13,2]=150
COLLMON_DISPLAYED[13,3]=150
COLLMON_DISPLAYED[13,4]=150
COLLMON_DISPLAYED[13,5]=150
COLLMON_DISPLAYED[13,6]=150
COLLMON_DISPLAYED[13,7]=150
COLLMON_DISPLAYED[13,8]=150
COLLMON_DISPLAYED[13,9]=150
COLLMON_DISPLAYED[13,10]=150
COLLMON_DISPLAYED[13,11]=150
COLLMON_DISPLAYED[13,12]=150
COLLMON_DISPLAYED[14,1]=150
COLLMON_DISPLAYED[14,2]=150
COLLMON_DISPLAYED[14,3]=150
COLLMON_DISPLAYED[14,4]=150
COLLMON_DISPLAYED[14,5]=150
COLLMON_DISPLAYED[14,6]=150
COLLMON_DISPLAYED[14,7]=150
COLLMON_DISPLAYED[14,8]=150
COLLMON_DISPLAYED[14,9]=150
COLLMON_DISPLAYED[14,10]=150
COLLMON_DISPLAYED[14,11]=150
COLLMON_DISPLAYED[14,12]=150
COLLMON_DISPLAYED[15,1]=150
COLLMON_DISPLAYED[15,2]=150
COLLMON_DISPLAYED[15,3]=150
COLLMON_DISPLAYED[15,4]=150
COLLMON_DISPLAYED[15,5]=150
COLLMON_DISPLAYED[15,6]=150
COLLMON_DISPLAYED[15,7]=150
COLLMON_DISPLAYED[15,8]=150
COLLMON_DISPLAYED[15,9]=150
COLLMON_DISPLAYED[15,10]=150
COLLMON_DISPLAYED[15,11]=150
COLLMON_DISPLAYED[15,12]=150
COLLMON_DISPLAYED[16,1]=150
COLLMON_DISPLAYED[16,2]=150
COLLMON_DISPLAYED[16,3]=150
COLLMON_DISPLAYED[16,4]=150
COLLMON_DISPLAYED[16,5]=150
COLLMON_DISPLAYED[16,6]=150
COLLMON_DISPLAYED[16,7]=150
COLLMON_DISPLAYED[16,8]=150
COLLMON_DISPLAYED[16,9]=150
COLLMON_DISPLAYED[16,10]=150
COLLMON_DISPLAYED[16,11]=150
COLLMON_DISPLAYED[16,12]=150
COLLMON_DISPLAYED[17,1]=150
COLLMON_DISPLAYED[17,2]=150
COLLMON_DISPLAYED[17,3]=150
COLLMON_DISPLAYED[17,4]=150
COLLMON_DISPLAYED[17,5]=150
COLLMON_DISPLAYED[17,6]=150
COLLMON_DISPLAYED[17,7]=150
COLLMON_DISPLAYED[17,8]=150
COLLMON_DISPLAYED[17,9]=150
COLLMON_DISPLAYED[17,10]=150
COLLMON_DISPLAYED[17,11]=150
COLLMON_DISPLAYED[17,12]=150
COLLMON_DISPLAYED[18,1]=150
COLLMON_DISPLAYED[18,2]=150
COLLMON_DISPLAYED[18,3]=150
COLLMON_DISPLAYED[18,4]=150
COLLMON_DISPLAYED[18,5]=150
COLLMON_DISPLAYED[18,6]=150
COLLMON_DISPLAYED[18,7]=150
COLLMON_DISPLAYED[18,8]=150
COLLMON_DISPLAYED[18,9]=150
COLLMON_DISPLAYED[18,10]=150
COLLMON_DISPLAYED[18,11]=150
COLLMON_DISPLAYED[18,12]=150
COLLMON_DISPLAYED[19,1]=150
COLLMON_DISPLAYED[19,2]=150
COLLMON_DISPLAYED[19,3]=150
COLLMON_DISPLAYED[19,4]=150
COLLMON_DISPLAYED[19,5]=150
COLLMON_DISPLAYED[19,6]=150
COLLMON_DISPLAYED[19,7]=150
COLLMON_DISPLAYED[19,8]=150
COLLMON_DISPLAYED[19,9]=150
COLLMON_DISPLAYED[19,10]=150
COLLMON_DISPLAYED[19,11]=150
COLLMON_DISPLAYED[19,12]=150
COLLMON_DISPLAYED[20,1]=150
COLLMON_DISPLAYED[20,2]=150
COLLMON_DISPLAYED[20,3]=150
COLLMON_DISPLAYED[20,4]=150
COLLMON_DISPLAYED[20,5]=150
COLLMON_DISPLAYED[20,6]=150
COLLMON_DISPLAYED[20,7]=150
COLLMON_DISPLAYED[20,8]=150
COLLMON_DISPLAYED[20,9]=150
COLLMON_DISPLAYED[20,10]=150
COLLMON_DISPLAYED[20,11]=150
COLLMON_DISPLAYED[20,12]=150
COLLMON_DISPLAYED[21,1]=150
COLLMON_DISPLAYED[21,2]=150
COLLMON_DISPLAYED[21,3]=150
COLLMON_DISPLAYED[21,4]=150
COLLMON_DISPLAYED[21,5]=150
COLLMON_DISPLAYED[21,6]=150
COLLMON_DISPLAYED[21,7]=150
COLLMON_DISPLAYED[21,8]=150
COLLMON_DISPLAYED[21,9]=150
COLLMON_DISPLAYED[21,10]=150
COLLMON_DISPLAYED[21,11]=150
COLLMON_DISPLAYED[21,12]=150
COLLMON_DISPLAYED[22,1]=150
COLLMON_DISPLAYED[22,2]=150
COLLMON_DISPLAYED[22,3]=150
COLLMON_DISPLAYED[22,4]=150
COLLMON_DISPLAYED[22,5]=150
COLLMON_DISPLAYED[22,6]=150
COLLMON_DISPLAYED[22,7]=150
COLLMON_DISPLAYED[22,8]=150
COLLMON_DISPLAYED[22,9]=150
COLLMON_DISPLAYED[22,10]=150
COLLMON_DISPLAYED[22,11]=150
COLLMON_DISPLAYED[22,12]=150
COLLMON_DISPLAYED[23,1]=150
COLLMON_DISPLAYED[23,2]=150
COLLMON_DISPLAYED[23,3]=150
COLLMON_DISPLAYED[23,4]=150
COLLMON_DISPLAYED[23,5]=150
COLLMON_DISPLAYED[23,6]=150
COLLMON_DISPLAYED[23,7]=150
COLLMON_DISPLAYED[23,8]=150
COLLMON_DISPLAYED[23,9]=150
COLLMON_DISPLAYED[23,10]=150
COLLMON_DISPLAYED[23,11]=150
COLLMON_DISPLAYED[23,12]=150
COLLMON_DISPLAYED[24,1]=150
COLLMON_DISPLAYED[24,2]=150
COLLMON_DISPLAYED[24,3]=150
COLLMON_DISPLAYED[24,4]=150
COLLMON_DISPLAYED[24,5]=150
COLLMON_DISPLAYED[24,6]=150
COLLMON_DISPLAYED[24,7]=150
COLLMON_DISPLAYED[24,8]=150
COLLMON_DISPLAYED[24,9]=150
COLLMON_DISPLAYED[24,10]=150
COLLMON_DISPLAYED[24,11]=150
COLLMON_DISPLAYED[24,12]=150
COLLMON_DISPLAYED[25,1]=150
COLLMON_DISPLAYED[25,2]=150
COLLMON_DISPLAYED[25,3]=150
COLLMON_DISPLAYED[25,4]=150
COLLMON_DISPLAYED[25,5]=150
COLLMON_DISPLAYED[25,6]=150
COLLMON_DISPLAYED[25,7]=150
COLLMON_DISPLAYED[25,8]=150
COLLMON_DISPLAYED[25,9]=150
COLLMON_DISPLAYED[25,10]=150
COLLMON_DISPLAYED[25,11]=150
COLLMON_DISPLAYED[25,12]=150
COLLMON_DISPLAYED[26,1]=150
COLLMON_DISPLAYED[26,2]=150
COLLMON_DISPLAYED[26,3]=150
COLLMON_DISPLAYED[26,4]=150
COLLMON_DISPLAYED[26,5]=150
COLLMON_DISPLAYED[26,6]=150
COLLMON_DISPLAYED[26,7]=150
COLLMON_DISPLAYED[26,8]=150
COLLMON_DISPLAYED[26,9]=150
COLLMON_DISPLAYED[26,10]=150
COLLMON_DISPLAYED[26,11]=150
COLLMON_DISPLAYED[26,12]=150
COLLMON_DISPLAYED[27,1]=150
COLLMON_DISPLAYED[27,2]=150
COLLMON_DISPLAYED[27,3]=150
COLLMON_DISPLAYED[27,4]=150
COLLMON_DISPLAYED[27,5]=150
COLLMON_DISPLAYED[27,6]=150
COLLMON_DISPLAYED[27,7]=150
COLLMON_DISPLAYED[27,8]=150
COLLMON_DISPLAYED[27,9]=150
COLLMON_DISPLAYED[27,10]=150
COLLMON_DISPLAYED[27,11]=150
COLLMON_DISPLAYED[27,12]=150
COLLMON_DISPLAYED[28,1]=150
COLLMON_DISPLAYED[28,2]=150
COLLMON_DISPLAYED[28,3]=150
COLLMON_DISPLAYED[28,4]=150
COLLMON_DISPLAYED[28,5]=150
COLLMON_DISPLAYED[28,6]=150
COLLMON_DISPLAYED[28,7]=150
COLLMON_DISPLAYED[28,8]=150
COLLMON_DISPLAYED[28,9]=150
COLLMON_DISPLAYED[28,10]=150
COLLMON_DISPLAYED[28,11]=150
COLLMON_DISPLAYED[28,12]=150
COLLMON_DISPLAYED[29,1]=150
COLLMON_DISPLAYED[29,2]=150
COLLMON_DISPLAYED[29,3]=150
COLLMON_DISPLAYED[29,4]=150
COLLMON_DISPLAYED[29,5]=150
COLLMON_DISPLAYED[29,6]=150
COLLMON_DISPLAYED[29,7]=150
COLLMON_DISPLAYED[29,8]=150
COLLMON_DISPLAYED[29,9]=150
COLLMON_DISPLAYED[29,10]=150
COLLMON_DISPLAYED[29,11]=150
COLLMON_DISPLAYED[29,12]=150
COLLMON_DISPLAYED[30,1]=150
COLLMON_DISPLAYED[30,2]=150
COLLMON_DISPLAYED[30,3]=150
COLLMON_DISPLAYED[30,4]=150
COLLMON_DISPLAYED[30,5]=150
COLLMON_DISPLAYED[30,6]=150
COLLMON_DISPLAYED[30,7]=150
COLLMON_DISPLAYED[30,8]=150
COLLMON_DISPLAYED[30,9]=150
COLLMON_DISPLAYED[30,10]=150
COLLMON_DISPLAYED[30,11]=150
COLLMON_DISPLAYED[30,12]=150
GLOBAL CHAR CDSet_NAME[30,24]
CDSet_NAME[1,]=" "
CDSet_NAME[2,]=" "
CDSet_NAME[3,]=" "
CDSet_NAME[4,]=" "
CDSet_NAME[5,]=" "
CDSet_NAME[6,]=" "
CDSet_NAME[7,]=" "
CDSet_NAME[8,]=" "
CDSet_NAME[9,]=" "
CDSet_NAME[10,]=" "
CDSet_NAME[11,]=" "
CDSet_NAME[12,]=" "
CDSet_NAME[13,]=" "
CDSet_NAME[14,]=" "
CDSet_NAME[15,]=" "
CDSet_NAME[16,]=" "
CDSet_NAME[17,]=" "
CDSet_NAME[18,]=" "
CDSet_NAME[19,]=" "
CDSet_NAME[20,]=" "
CDSet_NAME[21,]=" "
CDSet_NAME[22,]=" "
CDSet_NAME[23,]=" "
CDSet_NAME[24,]=" "
CDSet_NAME[25,]=" "
CDSet_NAME[26,]=" "
CDSet_NAME[27,]=" "
CDSet_NAME[28,]=" "
CDSet_NAME[29,]=" "
CDSet_NAME[30,]=" "
INT COLLMON_TOL_PRO[12]
COLLMON_TOL_PRO[1]=-1
COLLMON_TOL_PRO[2]=-1
COLLMON_TOL_PRO[3]=-1
COLLMON_TOL_PRO[4]=-1
COLLMON_TOL_PRO[5]=-1
COLLMON_TOL_PRO[6]=-1
COLLMON_TOL_PRO[7]=-1
COLLMON_TOL_PRO[8]=-1
COLLMON_TOL_PRO[9]=-1
COLLMON_TOL_PRO[10]=-1
COLLMON_TOL_PRO[11]=-1
COLLMON_TOL_PRO[12]=-1
INT COLLMON_IDX=-1
BOOL LEARN_MODE=FALSE
INT OFFSET_LEARN_MODE=20
INT OFFSET_ROOT_AXES=10
INT OFFSET_HAND_AXES=10
INT OFFSET_EXT_AXES=10
BOOL UPDATE_DISPLAY_DATA=FALSE
CHAR COLLMON_RESET_TIMESTAMP[31,18]
COLLMON_RESET_TIMESTAMP[1,]=" "
COLLMON_RESET_TIMESTAMP[2,]=" "
COLLMON_RESET_TIMESTAMP[3,]=" "
COLLMON_RESET_TIMESTAMP[4,]=" "
COLLMON_RESET_TIMESTAMP[5,]=" "
COLLMON_RESET_TIMESTAMP[6,]=" "
COLLMON_RESET_TIMESTAMP[7,]=" "
COLLMON_RESET_TIMESTAMP[8,]=" "
COLLMON_RESET_TIMESTAMP[9,]=" "
COLLMON_RESET_TIMESTAMP[10,]=" "
COLLMON_RESET_TIMESTAMP[11,]=" "
COLLMON_RESET_TIMESTAMP[12,]=" "
COLLMON_RESET_TIMESTAMP[13,]=" "
COLLMON_RESET_TIMESTAMP[14,]=" "
COLLMON_RESET_TIMESTAMP[15,]=" "
COLLMON_RESET_TIMESTAMP[16,]=" "
COLLMON_RESET_TIMESTAMP[17,]=" "
COLLMON_RESET_TIMESTAMP[18,]=" "
COLLMON_RESET_TIMESTAMP[19,]=" "
COLLMON_RESET_TIMESTAMP[20,]=" "
COLLMON_RESET_TIMESTAMP[21,]=" "
COLLMON_RESET_TIMESTAMP[22,]=" "
COLLMON_RESET_TIMESTAMP[23,]=" "
COLLMON_RESET_TIMESTAMP[24,]=" "
COLLMON_RESET_TIMESTAMP[25,]=" "
COLLMON_RESET_TIMESTAMP[26,]=" "
COLLMON_RESET_TIMESTAMP[27,]=" "
COLLMON_RESET_TIMESTAMP[28,]=" "
COLLMON_RESET_TIMESTAMP[29,]=" "
COLLMON_RESET_TIMESTAMP[30,]=" "
COLLMON_RESET_TIMESTAMP[31,]=" "
ENDDAT

View File

@@ -0,0 +1,385 @@
&ACCESS R1
&COMMENT Collision monitoring library
DEF CollMonLib( )
END
; Schreibt die 6 Parameter (fuer jede Roboter-Achse einen) in den
; entsprechenden Eintrag des $COLLMON_TOL PRO[]-Felds.
; Falls ein Parameter nicht SAVE_CM_PRO_SETTING wird, behaelt der entsprechende
; $COLLMON_TOL_PRO[]-Eintrag seinen Wert.
GLOBAL DEF SET_CM_PRO_VALUES(CM_AX1:IN, CM_AX2:IN, CM_AX3:IN, CM_AX4:IN, CM_AX5:IN, CM_AX6:IN)
INT TEST, CM_AX1, CM_AX2, CM_AX3, CM_AX4, CM_AX5, CM_AX6
ON_ERROR_PROCEED
TEST=CM_AX1
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[1]=CM_AX1
ENDIF
ON_ERROR_PROCEED
TEST=CM_AX2
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[2]=CM_AX2
ENDIF
ON_ERROR_PROCEED
TEST=CM_AX3
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[3]=CM_AX3
ENDIF
ON_ERROR_PROCEED
TEST=CM_AX4
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[4]=CM_AX4
ENDIF
ON_ERROR_PROCEED
TEST=CM_AX5
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[5]=CM_AX5
ENDIF
ON_ERROR_PROCEED
TEST=CM_AX6
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[6]=CM_AX6
ENDIF
ERR_CLEAR($ERR)
$COLLMON_IDX = 0
END
; Setzt $COLLMON_TOL_PRO[] auf die Defaultwerte aus.
; der $CUSTOM.DAT
GLOBAL DEF SET_CM_PRO_DEFAULT()
INT I
FOR I=1 TO 12
$COLLMON_TOL_PRO[I]=$COLLMON_TOL_PRO_DEF[I]
ENDFOR
$COLLMON_IDX = 0
END
; Setzt die globalen Werte falls welche vorhanden oder
; deaktiviert die verbesserte Kollisionsueberwachung indem
; $COLLMON_TOL_PRO[] auf Null gesetzt wird.
GLOBAL DEF SET_CM_PRO_INACTIVE()
INT I
IF $IMPROVED_COLLMON== TRUE THEN
FOR I=1 TO 12
IF (COLLMON_TOL_PRO[I] < 0) THEN ;no global COLLMON_TOL_PRO[I] exists
$COLLMON_TOL_PRO[I]=0
$COLLMON_IDX = 0
ELSE
$COLLMON_TOL_PRO[I]=COLLMON_TOL_PRO[I] ;sets $COLLMON_TOL_PRO[I] from global
$COLLMON_IDX=COLLMON_IDX
ENDIF
ENDFOR
ELSE
FOR I=1 TO 12
$COLLMON_TOL_PRO[I]=0
ENDFOR
ENDIF
END
; Setzt $COLLMON_MAX auf 0 zurueck. Alle folgenden
; Bewegungen gehen in die Maximumsbildung ein.
GLOBAL DEF RESET_CM_MAX()
INT I
FOR I=1 TO 12
$COLLMON_MAX[I]=0
ENDFOR
END
; Sichert die aktuellen $COLLMON_TOL_PRO[]-Werte in ein
; Parameter-Feld.
; Parameter SETTING_IDX: Index des Collmon-Datensatz
GLOBAL DEF SAVE_CM_PRO_SETTING(SETTING_IDX:IN)
INT SETTING_IDX,I
FOR I=1 to 12
COLLMON_SETTING[SETTING_IDX,I]=$COLLMON_TOL_PRO[I]
ENDFOR
END
; Sichert die aktuellen $COLLMON_TOL_COM[]-Werte in ein
; Parameter-Feld.
; Parameter SETTING_IDX: Index des Collmon-Datensatz
GLOBAL DEF SAVE_CM_COM_SETTING(SETTING_IDX:IN)
INT SETTING_IDX,I
FOR I=1 to 12
COLLMON_SETTING[SETTING_IDX,I]=$COLLMON_TOL_COM[I]
ENDFOR
END
; Liest einen aktuell gespeicherten Collmon-Datensatz
; Parameter SETTING_IDX: Index des Collmon-Datensatzes
; Parameter VALUES: Array der Groesse 12 mit den Werten des Collmon-Datensatzes
GLOBAL DEF READ_CM_SETTING(SETTING_IDX:IN, VALUES[]:OUT)
INT SETTING_IDX
INT VALUES[]
INT I
IF ((SETTING_IDX < 1) OR (SETTING_IDX > NUM_COLLMON_SETTINGS)) THEN
RETURN
ENDIF
FOR I = 1 TO 12
VALUES[I] = COLLMON_SETTING[SETTING_IDX,I]
ENDFOR
END
; Beschreibt einen Collmon-Datensatz
; Parameter SETTING_IDX: Index des Collmon-Datensatzes
; Parameter VALUES: Array der Groesse 12 mit den neuen Werten des Collmon-Datensatzes
GLOBAL DEF WRITE_CM_SETTING(SETTING_IDX:IN, VALUES[]:OUT)
INT SETTING_IDX
INT VALUES[]
INT I
IF ((SETTING_IDX < 1) OR (SETTING_IDX > NUM_COLLMON_SETTINGS)) THEN
RETURN
ENDIF
FOR I = 1 TO 12
IF (VALUES[I] < 0) THEN
COLLMON_SETTING[SETTING_IDX,I] = 0
ELSE
IF VALUES[I] > 500 THEN
COLLMON_SETTING[SETTING_IDX,I] = 500
ELSE
COLLMON_SETTING[SETTING_IDX,I] = VALUES[I]
ENDIF
ENDIF
ENDFOR
END
; Sichert die aktuellen $COLLMON_MAX[]-Werte in ein
; Collmon-Datensatz-Feld. Optional kann ein Skalierungs-Prozentwert
; angegeben werden.
; Parameter SETTING_IDX: Index des Collmon-Datensatz
; Parameter OFFSET: optionaler Offset auf alle Komponenten von $COLLMON_MAX[]. Default-Wert=0.
; Expert call
GLOBAL DEF SAVE_CM_MAX_SETTING(SETTING_IDX:IN,OFFSET:IN)
INT SETTING_IDX,OFFSET,TEST,OFFSET_WERT,I
DECL INT SET_VALUES[12]
; Vorbelegung mit Default-Wert 0
OFFSET_WERT=0
ON_ERROR_PROCEED
TEST=OFFSET
IF $ERR.NUMBER == 0 THEN
OFFSET_WERT=OFFSET ; Parameter verwenden
ENDIF
GET_COLLMON_SET(SETTING_IDX, SET_VALUES[])
FOR I=1 to 12
; durch Lernfahrt will man auskeschaltete Achsen nicht einschalten
IF COLLMON_SETTING[SETTING_IDX,I] <> 0 THEN
COLLMON_SETTING[SETTING_IDX,I]=SET_VALUES[I] + OFFSET_WERT
ENDIF
ENDFOR
ERR_CLEAR($ERR)
END
; Schreibt einen gesicherten Collmon-Datensatz zurueck
; in das $COLLMON_TOL_PRO[]-Feld.
; Parameter SETTING_IDX: Index des Collmon-Datensatz
GLOBAL DEF USE_CM_PRO_SETTING(SETTING_IDX:IN)
INT SETTING_IDX,I
FOR I=1 to 12
$COLLMON_TOL_PRO[I]=COLLMON_SETTING[SETTING_IDX,I]
ENDFOR
$COLLMON_IDX = SETTING_IDX
END
; Initialisiert alle Collmon-Datensaetze auf 100.
GLOBAL DEF INIT_CM_SETTINGS()
INT I,J
FOR I=1 TO NUM_COLLMON_SETTINGS
FOR J=1 TO 12
COLLMON_SETTING[I,J]=100
ENDFOR
ENDFOR
END
;used in old motion command to set all 12 values
;Expert call
GLOBAL DEF SET_CD_PARAMS (Index :IN)
DECL INT Index
IF (Index > 0) AND (Index < 31) THEN
USE_CM_PRO_SETTING (Index)
ELSE
SET_CM_PRO_INACTIVE()
ENDIF
END
;Expert call
GLOBAL DEF USE_CD_PARAMS (Index :IN)
DECL INT Index, I
IF (Index > 0) AND (Index < 31) THEN
FOR I=1 to 12
COLLMON_TOL_PRO[I]=COLLMON_SETTING[Index,I] ; saves COLLMON_TOL_PRO for global using
ENDFOR
COLLMON_IDX=Index
USE_CM_PRO_SETTING (Index)
ELSE
FOR I=1 to 12
COLLMON_TOL_PRO[I]=-1 ; saves COLLMON_TOL_PRO for global using
ENDFOR
COLLMON_IDX=-1
SET_CM_PRO_INACTIVE()
ENDIF
END
;resets COLLMON_TOL_PRO on the begin of KRL module
;by call BAS(#INITMOV,0)
GLOBAL DEF RESET_CD_PARAMS ()
DECL INT I
FOR I=1 to 12
COLLMON_TOL_PRO[I]=-1 ; resets COLLMON_TOL_PRO for global using
ENDFOR
COLLMON_IDX=-1
END
;used in spline command to set all 12 values by just one call
;like ...WITH $COLLMON_TOL_PRO[1]=USE_CM_PRO_VALUES(SETTING_IDX)
GLOBAL DEFFCT INT USE_CM_PRO_VALUES(SETTING_IDX:IN)
INT SETTING_IDX
IF (SETTING_IDX == -1) THEN ;Force deactivation
$COLLMON_TOL_PRO[2]=0
$COLLMON_TOL_PRO[3]=0
$COLLMON_TOL_PRO[4]=0
$COLLMON_TOL_PRO[5]=0
$COLLMON_TOL_PRO[6]=0
$COLLMON_TOL_PRO[7]=0
$COLLMON_TOL_PRO[8]=0
$COLLMON_TOL_PRO[9]=0
$COLLMON_TOL_PRO[10]=0
$COLLMON_TOL_PRO[11]=0
$COLLMON_TOL_PRO[12]=0
$COLLMON_IDX = 0
RETURN 0
ENDIF
IF (SETTING_IDX > 0) AND (SETTING_IDX < 31) THEN
$COLLMON_TOL_PRO[2]=COLLMON_SETTING[SETTING_IDX,2]
$COLLMON_TOL_PRO[3]=COLLMON_SETTING[SETTING_IDX,3]
$COLLMON_TOL_PRO[4]=COLLMON_SETTING[SETTING_IDX,4]
$COLLMON_TOL_PRO[5]=COLLMON_SETTING[SETTING_IDX,5]
$COLLMON_TOL_PRO[6]=COLLMON_SETTING[SETTING_IDX,6]
$COLLMON_TOL_PRO[7]=COLLMON_SETTING[SETTING_IDX,7]
$COLLMON_TOL_PRO[8]=COLLMON_SETTING[SETTING_IDX,8]
$COLLMON_TOL_PRO[9]=COLLMON_SETTING[SETTING_IDX,9]
$COLLMON_TOL_PRO[10]=COLLMON_SETTING[SETTING_IDX,10]
$COLLMON_TOL_PRO[11]=COLLMON_SETTING[SETTING_IDX,11]
$COLLMON_TOL_PRO[12]=COLLMON_SETTING[SETTING_IDX,12]
$COLLMON_IDX = SETTING_IDX
RETURN COLLMON_SETTING[SETTING_IDX,1]
ELSE
IF (COLLMON_TOL_PRO[1] < 0) THEN ;no global COLLMON_TOL_PRO[I] exists
$COLLMON_TOL_PRO[2]=0
$COLLMON_TOL_PRO[3]=0
$COLLMON_TOL_PRO[4]=0
$COLLMON_TOL_PRO[5]=0
$COLLMON_TOL_PRO[6]=0
$COLLMON_TOL_PRO[7]=0
$COLLMON_TOL_PRO[8]=0
$COLLMON_TOL_PRO[9]=0
$COLLMON_TOL_PRO[10]=0
$COLLMON_TOL_PRO[11]=0
$COLLMON_TOL_PRO[12]=0
$COLLMON_IDX = 0
RETURN 0
ELSE
$COLLMON_TOL_PRO[2]=COLLMON_TOL_PRO[2] ;sets $COLLMON_TOL_PRO[I] from global
$COLLMON_TOL_PRO[3]=COLLMON_TOL_PRO[3] ;sets $COLLMON_TOL_PRO[I] from global
$COLLMON_TOL_PRO[4]=COLLMON_TOL_PRO[4] ;sets $COLLMON_TOL_PRO[I] from global
$COLLMON_TOL_PRO[5]=COLLMON_TOL_PRO[5] ;sets $COLLMON_TOL_PRO[I] from global
$COLLMON_TOL_PRO[6]=COLLMON_TOL_PRO[6] ;sets $COLLMON_TOL_PRO[I] from global
IF (COLLMON_TOL_PRO[7]>-1) THEN
$COLLMON_TOL_PRO[7]=COLLMON_TOL_PRO[7] ;sets $COLLMON_TOL_PRO[I] from global
ELSE
$COLLMON_TOL_PRO[7]=0
ENDIF
IF (COLLMON_TOL_PRO[8]>-1) THEN
$COLLMON_TOL_PRO[8]=COLLMON_TOL_PRO[8] ;sets $COLLMON_TOL_PRO[I] from global
ELSE
$COLLMON_TOL_PRO[8]=0
ENDIF
IF (COLLMON_TOL_PRO[9]>-1) THEN
$COLLMON_TOL_PRO[9]=COLLMON_TOL_PRO[9] ;sets $COLLMON_TOL_PRO[I] from global
ELSE
$COLLMON_TOL_PRO[9]=0
ENDIF
IF (COLLMON_TOL_PRO[10]>-1) THEN
$COLLMON_TOL_PRO[10]=COLLMON_TOL_PRO[10] ;sets $COLLMON_TOL_PRO[I] from global
ELSE
$COLLMON_TOL_PRO[10]=0
ENDIF
IF (COLLMON_TOL_PRO[11]>-1) THEN
$COLLMON_TOL_PRO[11]=COLLMON_TOL_PRO[11] ;sets $COLLMON_TOL_PRO[I] from global
ELSE
$COLLMON_TOL_PRO[11]=0
ENDIF
IF (COLLMON_TOL_PRO[12]>-1) THEN
$COLLMON_TOL_PRO[12]=COLLMON_TOL_PRO[12] ;sets $COLLMON_TOL_PRO[I] from global
ELSE
$COLLMON_TOL_PRO[12]=0
ENDIF
$COLLMON_IDX=COLLMON_IDX
RETURN COLLMON_TOL_PRO[1] ;returns $COLLMON_TOL_PRO[I] from global
ENDIF
ENDIF
ENDFCT
;Expert call
GLOBAL DEF SET_TQ_VALUES ( TQ_AX1:IN, TQ_AX2:IN, TQ_AX3:IN, TQ_AX4:IN, TQ_AX5:IN, TQ_AX6:IN)
INT I, TQ_AX1, TQ_AX2, TQ_AX3, TQ_AX4, TQ_AX5, TQ_AX6
IF $IMPROVED_COLLMON== TRUE THEN
ON_ERROR_PROCEED
$COLLMON_TOL_PRO[1]=TQ_AX1
IF $ERR.NUMBER == 0 THEN
$COLLMON_TOL_PRO[2]=TQ_AX2
$COLLMON_TOL_PRO[3]=TQ_AX3
$COLLMON_TOL_PRO[4]=TQ_AX4
$COLLMON_TOL_PRO[5]=TQ_AX5
$COLLMON_TOL_PRO[6]=TQ_AX6
ELSE
FOR I=1 TO 12
$COLLMON_TOL_PRO[I]=$COLLMON_TOL_PRO_DEF[I]
ENDFOR
ERR_CLEAR($ERR)
ENDIF
FOR I=1 TO 12
COLLMON_TOL_PRO[I]=$COLLMON_TOL_PRO[I]
ENDFOR
COLLMON_IDX=0
$COLLMON_IDX = 0
ELSE
ON_ERROR_PROCEED
$TORQMON[1]=TQ_AX1
IF $ERR.NUMBER == 0 THEN
$TORQMON[2]=TQ_AX2
$TORQMON[3]=TQ_AX3
$TORQMON[4]=TQ_AX4
$TORQMON[5]=TQ_AX5
$TORQMON[6]=TQ_AX6
ELSE
FOR I=1 TO 12
$TORQMON[I]=$TORQMON_DEF[I]
ENDFOR
ERR_CLEAR($ERR)
ENDIF
ENDIF
END

View File

@@ -0,0 +1,70 @@
&ACCESS R1
&COMMENT HandlerOnRobotFault
DEF IR_STOPM ( )
;-----------------------------------
; Error Handling Robot Controller
; Switch OFF and Switch ON processes
; KRC Version >= V5.5
;-----------------------------------
;FOLD DECLARATIONS
;FOLD USER DECL
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;FOLD BASISTECH DECL
BOOL ApplicationRunFlag
DECL CHAR ID[3]
;ENDFOLD (BASISTECH DECL)
;ENDFOLD (DECLARATIONS)
;FOLD BASISTECH INIT
INTERRUPT OFF 3
STOPM_FLAG=TRUE ;Reflects state of interrupt 3 to activate/deactivate $Stopmess interrupt
ID[]="CTL"
If ($STOPMESS==TRUE) THEN ;APP// "IF" ~ Notepad++ Formatierung
BRAKE
;ENDFOLD (BASISTECH INIT)
;FOLD USER STOP
;Make your modifications here
;ENDFOLD (USER STOP)
;FOLD COLLISION DETECTION
IF ($IMPROVED_COLLMON == TRUE) AND ($COLL_ALARM == TRUE) THEN
CollDetect_UserAction()
ENDIF
;ENDFOLD COLLISION DETECTION
;FOLD BASISTECH STOP
P00 (#EXT_ERR,#PGNO_GET,ID[],128 )
ApplicationRunFlag=FALSE
IF (Appl_Run>0) THEN
IF $OUT[Appl_Run] THEN
ApplicationRunFlag=TRUE
$OUT[Appl_Run]=FALSE
ENDIF
ENDIF
REPEAT
POWER=SYNC()
HALT
UNTIL (($STOPMESS==FALSE) AND ($POWER_FAIL==FALSE))
;ENDFOLD (BASISTECH STOP)
;FOLD BASISTECH RESTART
P00 (#EXT_ERR,#PGNO_GET,ID[],0 )
IF (ApplicationRunFlag==TRUE) THEN
IF (Appl_Run>0) THEN
$OUT[Appl_Run]=TRUE
ENDIF
ENDIF
;ENDFOLD (BASISTECH RESTART)
;FOLD USER RESTART
;Make your modifications here
;ENDFOLD (USER RESTART)
;FOLD BASISTECH REACTIVATE
Endif ;APP// "ENDIF" ~ Notepad++ Formatierung
INTERRUPT ON 3
STOPM_FLAG=FALSE ;Reflects state of interrupt 3 to activate/deactivate $Stopmess interrupt
;ENDFOLD (BASISTECH REACTIVATE)
END

View File

@@ -0,0 +1,30 @@
&ACCESS RVO
&REL 4
&COMMENT Mastering Reference Main Task
&PARAM EDITMASK = *
&PARAM DISKPATH = KRC:\R1\System
DEFDAT MASREF_MAIN
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLERATIONS)
;FOLD Messages
DECL CONST CHAR MASREF_Modulname[6]
MASREF_Modulname[]="MasRef"
DECL KRLMSGOPT_T MASREF_MsgOptWithLogging={VL_STOP TRUE,CLEAR_P_RESET TRUE,LOG_TO_DB TRUE}
DECL INT MASREF_StateMsgHandle=0 ; 0=> no handle exists
;ENDFOLD (Messages)
;FOLD timeout
DECL CONST REAL MASREF_TimeoutOneCycle=0.096 ; one wait cycle is 8*12ms=96ms
DECL CONST INT MASREF_nLapsedTimeout=30 ; means ca. 3s
DECL INT MASREF_nLapsedTime=0 ; actual count of wait cycle
;ENDFOLD (timeout)
;FOLD reference groups
DECL CONST INT MASREF_GroupSequenceSize=3 ; length of sequence list for reference groups
DECL INT MASREF_GroupSequenceIdx=0 ; for iteration over the array of group sequence
DECL INT MASREF_GroupNumber=0 ; actual group under test
;ENDFOLD (reference groups)
ENDDAT

View File

@@ -0,0 +1,128 @@
&ACCESS RVO
&REL 4
&COMMENT Mastering Reference Main Task
&PARAM EDITMASK = *
&PARAM DISKPATH = KRC:\R1\System
DEF MasRef_Main()
;*******************************************
;* main module for safety relevant feature *
;* 'Master Reference' *
;*******************************************
;FOLD Start conditions for mastering reference
MsgState(MASREF_StateMsgHandle,"MasterReferenceCheckStartConditions",MASREF_Modulname[],,, 103)
IF Varstate("$pro_ip.si01.name[]") <> #DECLARED THEN
;APP//MasRef_Main() wurde von einem uebergeordneten Programm aufgerufen
IF NOT $MasteringTest_Req_Ext AND NOT $MasteringTest_Req_Int THEN
;APP//weder interne noch externe Anforderung ist freigegeben
WAIT FOR Clear_KrlMsg(MASREF_StateMsgHandle)
RETURN
ENDIF
ENDIF
;APPBLOCK/*
;Signale Referenzgruppe in Position und
;Justagereferenzierung aktiv zuruecksetzen
;APPBLOCK*/
$MasteringTest_Group = 0
$MasteringTest_Active = FALSE
;APPBLOCK/*
;Schalter Hardware pruefen und
;Schalter darf nicht bedaempft sein
;APPBLOCK*/
REPEAT
IF NOT $MasteringTest_Switch_OK THEN
;APP//wartet auf Quittierung
MsgQuit("MasterReferenceSwitchFailure", MASREF_Modulname[], , , 100, MASREF_MsgOptWithLogging)
ENDIF
;APP//aktiviert Safety-Modul
$MasteringTest_Active = TRUE
WAIT SEC 0.2
;APP//lesend: Safety-Modul hat Variable wieder deaktiviert
IF NOT $MasteringTest_Active THEN
;APP//wartet auf Quittierung
MsgQuit("MasterReferenceNotActivated", MASREF_Modulname[], , , 101, MASREF_MsgOptWithLogging)
ENDIF
UNTIL $MasteringTest_Active AND $MasteringTest_Switch_OK
WAIT FOR Clear_KrlMsg(MASREF_StateMsgHandle)
;ENDFOLD (Start conditions for mastering reference)
;FOLD Reference group testing
FOR MASREF_GroupSequenceIdx = 1 TO MASREF_GroupSequenceSize
MASREF_GroupNumber = MASREFg_GroupSequence[MASREF_GroupSequenceIdx]
IF MASREF_GroupNumber > 0 THEN
MsgState(MASREF_StateMsgHandle,"MasterReferenceGroup",MASREF_Modulname[], MASREF_GroupNumber, , 104, MASREF_MsgOptWithLogging)
RunTest_Group(MASREF_GroupNumber)
WAIT FOR Clear_KrlMsg(MASREF_StateMsgHandle)
ENDIF
ENDFOR
;ENDFOLD (Reference group testing)
;FOLD Finalize mastering reference
MsgState(MASREF_StateMsgHandle,"MasterReferenceFinalize",MASREF_Modulname[],,, 106)
;APP//Positionspruefung in Sicherheitssteuerung beendet
$MasteringTest_Active = FALSE
MASREF_nLapsedTime = 0
REPEAT
WAIT SEC MASREF_TimeoutOneCycle
MASREF_nLapsedTime = MASREF_nLapsedTime + 1
;APPBLOCK/*
;lesend: warte bis Safety-Modul Variable auf FALSE setzt
;oder Timeout abgelaufen
;APPBLOCK*/
UNTIL (NOT $MasteringTest_Active AND NOT $MasteringTest_Req_Int) or (MASREF_nLapsedTime > MASREF_nLapsedTimeout)
IF $MasteringTest_Active THEN
;APP//wartet auf Quittierung
MsgQuit("MasterReferenceFailed", MASREF_Modulname[], , , 102, MASREF_MsgOptWithLogging)
ENDIF
WAIT FOR Clear_KrlMsg(MASREF_StateMsgHandle)
;ENDFOLD (Finalize mastering reference)
END
DEF RunTest_Group(nGrpNr:IN)
;FOLD Declaration
INT nGrpNr
;ENDFOLD (Declaration)
;FOLD Implementation
IF (nGrpNr <= 0) OR (nGrpNr > 3) THEN
MsgQuit("MasterReferenceUnknownGroup", MASREF_Modulname[], nGrpNr, , 105, MASREF_MsgOptWithLogging)
RETURN
ENDIF
SWITCH nGrpNr
CASE 1
;APP//Pruefposition Gruppe 1 anfahren
MasRefStartG1()
CASE 2
;APP//Pruefposition Gruppe 2 anfahren
MasRefStartG2()
CASE 3
;APP//Pruefposition Gruppe 3 anfahren
MasRefStartG3()
DEFAULT
ENDSWITCH
;APP//warte bis Pruefposition sicher erreicht
WAIT SEC 0.5
;APP//aktiviert Signal Referenzgruppe x in Position
$MasteringTest_Group = nGrpNr
;APP//warte bis Pruefung abgeschlossen
WAIT SEC 0.5
SWITCH nGrpNr
CASE 1
;APP//zurueck von Pruefposition Gruppe 1
MasRefBackG1()
CASE 2
;APP//zurueck von Pruefposition Gruppe 2
MasRefBackG2()
CASE 3
;APP// zurueck von Pruefposition Gruppe 3
MasRefBackG3()
DEFAULT
ENDSWITCH
WAIT SEC 0.2
;APP//deaktiviert Signal Referenzgruppe x in Position
$MasteringTest_Group = 0
WAIT SEC 0.2
;ENDFOLD (Implementation)
END

View File

@@ -0,0 +1,87 @@
&ACCESS RVP
&COMMENT PLC on control
DEF SPS ( )
;FOLD DECLARATIONS
;FOLD BASISTECH DECL
;Automatik extern
DECL STATE_T STAT
DECL MODUS_T MODE
;ENDFOLD (BASISTECH DECL)
;FOLD USER DECL
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
;FOLD INI
;FOLD BASISTECH INIT
BasisTech_PLC_INIT()
;ENDFOLD (BASISTECH INIT)
;FOLD AUTOEXT INIT
INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()
INTERRUPT ON 91
INTERRUPT DECL 92 WHEN $PRO_MOVE==TRUE DO RESET_LINESEL()
INTERRUPT ON 92
$LOOP_MSG[]=" "
MODE=#SYNC
$H_POS=$H_POS
;Automatik extern
IF $MODE_OP==#EX THEN
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
ENDIF
;ENDFOLD (AUTOEXT INIT)
;FOLD BACKUPMANAGER PLC INIT
BM_ENABLED = FALSE
BM_OUTPUTVALUE = 0
;ENDFOLD (BACKUPMANAGER PLC INIT)
;FOLD USER INIT
; Please insert user defined initialization commands
;ENDFOLD (USER INIT)
;ENDFOLD (INI)
LOOP
WAIT FOR NOT($POWER_FAIL)
;FOLD BASISTECH PLC
BasisTech_PLC_LOOP()
;ENDFOLD (BASISTECH PLC)
;FOLD BACKUPMANAGER PLC
IF BM_ENABLED THEN
BM_OUTPUTSIGNAL = BM_OUTPUTVALUE
ENDIF
;ENDFOLD (BACKUPMANAGER PLC)
;FOLD USER PLC
;Make your modifications here
;ENDFOLD (USER PLC)
ENDLOOP
;FOLD ;%{H}
;FOLD
END
;ENDFOLD
DEF RESET_OUT ( )
INT N
MsgLoop(" ")
IF REFLECT_PROG_NR == 1 THEN
FOR N = 0 TO PGNO_LENGTH - 1
$OUT[PGNO_FBIT_REFL + N] = FALSE
ENDFOR
ENDIF
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=FALSE
ELSE
IF (PGNO_REQ<0) THEN
$OUT[-PGNO_REQ]=TRUE
ENDIF
ENDIF
END
DEF RESET_LINESEL()
$LINE_SEL_OK=FALSE
END
;FOLD USER SUBROUTINE
; Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
;ENDFOLD

View File

@@ -0,0 +1,15 @@
&ACCESS RVO
&REL 1
&COMMENT BrkTst-main task for unconfigured brake test axes
&PARAM EDITMASK = *
&PARAM DISKPATH = KRC:\R1\TP\BrakeTest
DEFDAT BrakeTestAxes PUBLIC
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLERATIONS)
ENDDAT

View File

@@ -0,0 +1,30 @@
&ACCESS RVO
&REL 1
&COMMENT BrkTst-main task for unconfigured brake test axes
&PARAM EDITMASK = *
&PARAM DISKPATH = KRC:\R1\TP\BrakeTest
DEF BRAKETESTAXES(AxesBitMask: IN)
;BRAKETESTAXES(AxesBitMask: IN)
;examples for parameter AxesBitMask
;no parameter or -1 means all configured axes
;'b00000000000011' means axis 1 and 2
;'b10000000000001' means axis 1 and 12
;'b11000000000000' means axis 11 and 12
;FOLD {H}
INT AxesBitMask
ON_ERROR_PROCEED
AxesBitMask=AxesBitMask*1
IF ($ERR.Number<>0) THEN
AxesBitMask=-1
ERR_CLEAR($ERR)
ELSE
ERR_RAISE($ERR)
ENDIF
gBraketestForce=true
BRAKETESTREQ(AxesBitMask)
gBraketestForce=false
;ENDFOLD
END

View File

@@ -0,0 +1,17 @@
&ACCESS RV
&REL 1
&COMMENT path after test
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
DEFDAT BrakeTestBack
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make here your modifications
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLERATIONS)
ENDDAT

View File

@@ -0,0 +1,19 @@
&ACCESS RV
&REL 1
&COMMENT path after test
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
DEF BrakeTestBack( )
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;Teach here the motion to the position after the brake test.
END

View File

@@ -0,0 +1,19 @@
&ACCESS RV
&REL 1
&COMMENT parkposition
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\TP\BrakeTest
DEFDAT BRAKETESTPARK PUBLIC
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make here your modifications
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLERATIONS)
DECL E6AXIS XParkPosition={A1 999.000,A2 999.000,A3 999.000,A4 999.000,A5 999.000,A6 999.000,E1 999.000,E2 999.000,E3 999.000,E4 999.000,E5 999.000,E6 999.000}
DECL FDAT FParkPosition={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
ENDDAT

View File

@@ -0,0 +1,35 @@
&ACCESS RV
&REL 1
&COMMENT parkposition
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\TP\BrakeTest
DEF BrakeTestPark( )
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;Teach here the motion to the parking position. The parking position is needed when the robot has failed the brake test.
;FOLD {h}
WHILE ParkPositionInNotValid()
MsgDialog(SUCCESS,"ParkPositionIsNotValid",brakeTestMdbName[],,,,,,,"Ok")
HALT
ENDWHILE
;ENDFOLD
;FOLD SPTP ParkPosition Vel=10 % DEFAULT Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=ParkPosition; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=DEFAULT; Kuka.VelocityPtp=10; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XParkPosition WITH $VEL_AXIS[1] = SVEL_JOINT(10.0), $TOOL = STOOL2(FParkPosition), $BASE = SBASE(FParkPosition.BASE_NO), $IPO_MODE = SIPO_MODE(FParkPosition.IPO_FRAME), $LOAD = SLOAD(FParkPosition.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PDEFAULT), $APO = SAPO_PTP(PDEFAULT), $GEAR_JERK[1] = SGEAR_JERK(PDEFAULT), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
END
;FOLD {h}
Global DEFFCT BOOL ParkPositionInNotValid()
RETURN ((XParkPosition.A1 == 999) AND (XParkPosition.A2 == 999) AND (XParkPosition.A3 == 999) AND (XParkPosition.A4 == 999) AND (XParkPosition.A5 == 999) AND (XParkPosition.A6 == 999) AND (XParkPosition.E1 == 999) AND (XParkPosition.E2 == 999) AND (XParkPosition.E3 == 999) AND (XParkPosition.E4 == 999) AND (XParkPosition.E5 == 999) AND (XParkPosition.E6 == 999))
ENDFCT
;ENDFOLD

View File

@@ -0,0 +1,24 @@
&ACCESS RVO
&REL 1
&COMMENT BrkTst-main task
&PARAM EDITMASK = *
&PARAM DISKPATH = TP/BrakeTest
DEFDAT BRAKETESTREQ PUBLIC
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLERATIONS)
DECL BRAKE_STATE RobotBrkState
GLOBAL CHAR brakeTestMdbName[30]
brakeTestMdbName[]="BrkTst"
GLOBAL INT MaxCountResultUnknown = 10
GLOBAL BOOL gBraketestForce=false
DECL INT CountResultUnknown = 0
ENDDAT

View File

@@ -0,0 +1,122 @@
&ACCESS RVO
&REL 1
&COMMENT BrkTst-main task
&PARAM EDITMASK = *
&PARAM DISKPATH = TP/BrakeTest
DEF BRAKETESTREQ(AxesBitMask: IN)
;BRAKETESTREQ
;fold {h}
INT Idx, Key, AxesBitMask
BOOL Test_Ende
BOOL BraketestForce
BraketestForce=false
IF gBraketestForce THEN
BraketestForce=true
ENDIF
gBraketestForce=false
ON_ERROR_PROCEED
AxesBitMask=AxesBitMask*1
IF ($ERR.Number<>0) THEN
AxesBitMask=-1
ERR_CLEAR($ERR)
ELSE
ERR_RAISE($ERR)
ENDIF
IF Varstate("$pro_ip.si01.name[]")==#declared THEN ;program selected
MsgDialog(Key, "DlgPeformManuallyBrakeTest", brakeTestMdbName[], , "Cancel", "GoToPark", "BTman",,,,,FALSE)
SWITCH Key ;dialogue answer
CASE 5
BraketestForce=TRUE
CASE 6
BrakeTestStart()
BraketestError()
CASE 7
Return
DEFAULT
Return
ENDSWITCH
ELSE ;cyclic call
IF NOT($BRAKETEST_REQ_INT) AND NOT(BraketestForce) THEN
Return
ENDIF
ENDIF
Test_Ende=false
RobotBrkState=#BT_UNTESTED
BrakeTestStart()
BAS (#INITMOV,0 )
repeat
PTP $AXIS_ACT
RobotBrkState = Test_BRAKE(AxesBitMask, BraketestForce)
SWITCH RobotBrkState
CASE #BT_WARNING,#BT_EXCESSIVE, #BT_MAXUNKNOWN, #BT_READY
CountResultUnknown = 0
Test_Ende = TRUE
CASE #BT_ERROR
BraketestError()
CASE #BT_UNKNOWN
Test_Ende = BraketestUnknown()
CASE #BT_UNTESTED
Test_Ende = TRUE
ENDSWITCH
until Test_Ende
BrakeTestBack()
END
DEF BraketestError()
INT Key
Key = 0
MsgDialog(Key, "BT_BRAKE_ERROR", brakeTestMdbName[]," ", "GoToPark",,,,,,,FALSE)
BrakeTestPark()
WAIT FOR TRUE
repeat
MsgNotify("ParkPositionReached", brakeTestMdbName[])
halt
until false
END
DEFFCT BOOL BraketestUnknown()
INT Key
Key=0
CountResultUnknown = CountResultUnknown + 1
IF (CountResultUnknown >= MaxCountResultUnknown) THEN
MsgDialog(Key, "BT_BRAKE_UNKNOWN", brakeTestMdbName[]," ", "TryAgain", "Cancel",,,,,,FALSE)
IF Key==7 then
Return FALSE
ELSE
Return TRUE
ENDIF
ELSE
Return TRUE
ENDIF
ENDFCT
;endfold

View File

@@ -0,0 +1,17 @@
&ACCESS RV
&REL 1
&COMMENT path to test
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
DEFDAT BrakeTestStart
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make here your modifications
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLERATIONS)
ENDDAT

View File

@@ -0,0 +1,19 @@
&ACCESS RV
&REL 1
&COMMENT path to test
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
DEF BrakeTestStart( )
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;Teach here the motion to the start position of the brake test.
END

View File

@@ -0,0 +1,27 @@
&ACCESS RO
&REL 2396
&PARAM DISKPATH = KRC:\R1\TP\EthernetKRL
DEFDAT EthernetKRL PUBLIC
;************************************************************
; CopyRight KUKA Deutschland GmbH 2018
; last modified 23.11.2016
; prefix EKI
; functions Interface between KRL and Ethernet (non Realtime)
; This file is mainly designed to communicate
; with external devices like sensors, vision
; systems, other controllers and so on.
;************************************************************
;FOLD EKI_Declaration
;FOLD INTERNAL
GLOBAL STRUC EKI_STATUS INT Buff,Read,Msg_No,BOOL Connected,INT Counter
DECL CONST EKI_STATUS EKI_NULL_STATUS={Buff 0,Read 0,Msg_No 0,Connected FALSE,Counter 0}
DECL CONST INT TYPEFRAME=6
DECL CONST INT TYPENULL=0
DECL CONST INT ERRMSG_FORBIDDEN = 32768
DECL CONST INT ERRMSG_ALL = 32767
;ENDFOLD
;ENDFOLD EKI_Declaration
ENDDAT

View File

@@ -0,0 +1,707 @@
&ACCESS RO
&REL 2396
&PARAM DISKPATH = KRC:\R1\TP\EthernetKRL
DEF EthernetKRL( )
;************************************************************
; CopyRight KUKA Deutschland GmbH 2018
; last modified 11.07.2012
; prefix EKI
; functions Interface between KRL and Ethernet (non Realtime)
; This file is mainly designed to communicate
; with external devices like sensors, vision
; systems, other controllers and so on.
;************************************************************
END
;FOLD EKI_InternalProgram
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_Init(strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Ret = EKI_NULL_STATUS
Mode = #SYNC
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Init",strChannelName[])
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_Close(strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Ret = EKI_NULL_STATUS
Mode = #SYNC
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Close",strChannelName[])
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_LOCK(strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
DECL BOOL LOCK
Ret = EKI_NULL_STATUS
Mode = #SYNC
LOCK = TRUE
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_LockUnLock",strChannelName[], LOCK, Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_UNLOCK(strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
DECL BOOL LOCK
Ret = EKI_NULL_STATUS
Mode = #SYNC
LOCK = FALSE
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_LockUnLock",strChannelName[], LOCK, Ret.Connected)
; interrupt timeout to detect new edge
CONTINUE
wait sec 0.002
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_ClearBuffer(strChannelName[]:IN,strPlace[]:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Ret = EKI_NULL_STATUS
Mode = #SYNC
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_ClearBuff",strChannelName[],strPlace[],Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_Open(strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Open",strChannelName[])
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
IF (Ret.Msg_No == 0) THEN
Ret.Connected = true
ENDIF
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_Clear(strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Clear",strChannelName[])
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_GetInteger(strChannelName[]:IN,strPlace[]:IN,value:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL INT value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value,Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
GLOBAL DEFFCT EKI_STATUS EKI_GetInt(strChannelName[]:IN,strPlace[]:IN,value:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL INT value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value,Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_GetIntegerArray(strChannelName[]:IN,strPlace[]:IN,value[]:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL INT value[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value[],Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
GLOBAL DEFFCT EKI_STATUS EKI_GetIntArray(strChannelName[]:IN,strPlace[]:IN,value[]:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL INT value[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value[],Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_GetBool(strChannelName[]:IN,strPlace[]:IN,value:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL BOOL value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value,Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
GLOBAL DEFFCT EKI_STATUS EKI_GetBoolArray(strChannelName[]:IN,strPlace[]:IN,value[]:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL BOOL value[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value[],Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_GetReal(strChannelName[]:IN,strPlace[]:IN,value:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL REAL value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value,Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
GLOBAL DEFFCT EKI_STATUS EKI_GetRealArray(strChannelName[]:IN,strPlace[]:IN,value[]:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL REAL value[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value[],Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_GetString(strChannelName[]:IN,strPlace[]:IN,value[]:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL CHAR value[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],value[],Ret.Buff, Ret.Read, TYPENULL,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_GetFrame(strChannelName[]:IN,strPlace[]:IN,value:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL FRAME value
DECL CHAR Buff[24]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
DECL INT Offset
Mode = #SYNC
Ret = EKI_NULL_STATUS
Ret.buff=1
Offset = 0
Cast_To(Buff[], Offset,value)
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],Buff[],Ret.Buff, Ret.Read, TYPEFRAME,Ret.Connected, Ret.Counter)
Offset=0
Cast_From(Buff[], Offset,value)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
GLOBAL DEFFCT EKI_STATUS EKI_GetFrameArray(strChannelName[]:IN,strPlace[]:IN,value[]:OUT)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL FRAME value[]
DECL CHAR Buff[3600]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
DECL INT Offset
DECL INT i,arraysize
DECL BOOL ReadContinue
DECL INT MayArrSz
DECL INT ReadElements
MayArrSz = 150
Mode = #SYNC
Ret = EKI_NULL_STATUS
REPEAT
ReadContinue = false
ReadElements=0
arraysize=0
; detect array size!
Offset=0
WHILE(($ERR.NUMBER==0) AND (arraysize<MayArrSz))
arraysize = arraysize + 1
ON_ERROR_PROCEED
CAST_TO(Buff[],Offset,value[arraysize+Ret.read])
ENDWHILE
IF ((arraysize+Ret.read == 1) AND ($ERR.NUMBER<>0)) THEN
Ret.Msg_No = -26
EXIT
ENDIF
IF ((arraysize == 1) AND ($ERR.NUMBER<>0)) THEN
EXIT
ENDIF
IF ((arraysize == MayArrSz) AND ($ERR.NUMBER==0)) THEN
ReadContinue = true;
ELSE
arraysize = arraysize - 1
ENDIF
Ret.Buff = arraysize
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],Buff[],Ret.Buff,ReadElements, TYPEFRAME,Ret.Connected, Ret.Counter)
Offset = 0
FOR i=1 to ReadElements
Cast_From(Buff[], Offset,value[i + Ret.Read])
ENDFOR
Ret.Read = Ret.Read + ReadElements
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
UNTIL ((Ret.Msg_No <> 0) OR (ReadContinue == false) OR (Ret.Buff == 0) OR (arraysize<MayArrSz))
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_Send(strChannelName[]:IN,strPlace[]:IN, Len:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
DECL INT Len
Mode = #SYNC
Ret = EKI_NULL_STATUS
IF (VARSTATE("Len") == #Declared) THEN
Len = 0
ENDIF
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Send",strChannelName[],strPlace[],Ret.Connected,Len)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_SetInt(strChannelName[]:IN,strPlace[]:IN,value:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL INT value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Set",strChannelName[],strPlace[],value,TYPENULL,Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_SetReal(strChannelName[]:IN,strPlace[]:IN,value:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL REAL value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Set",strChannelName[],strPlace[],value,TYPENULL,Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_SetBool(strChannelName[]:IN,strPlace[]:IN,value:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL BOOL value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Set",strChannelName[],strPlace[],value,TYPENULL,Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_SetString(strChannelName[]:IN,strPlace[]:IN,value[]:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL CHAR value[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Set",strChannelName[],strPlace[],value[],TYPENULL,Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_SetFrame(strChannelName[]:IN,strPlace[]:IN,value:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL FRAME value
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
DECL CHAR BUFF[24]
DECL INT Offset
Mode = #SYNC
Ret = EKI_NULL_STATUS
Offset = 0
Cast_To(BUFF[], Offset,value)
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Set",strChannelName[],strPlace[], BUFF[], TYPEFRAME,Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_SetParameter(strChannelName[]:IN,strParName[]:IN,strValue[]:IN)
DECL CHAR strChannelName[]
DECL CHAR strParName[]
DECL CHAR strValue[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_SetParam",strChannelName[],strParName[],strValue[],Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
GLOBAL DEF EKI_Check(Ret:IN,Type:IN,strChannelName[]:IN)
DECL CHAR strChannelName[]
DECL EKI_STATUS Ret
DECL EKrlMsgType Type
INT Handle
DECL KrlMsg_T name
DECL KrlMsgPar_T params[3]
DECL KrlMsgOpt_T options
DECL STATE_T Stat
DECL MODUS_T Mode
DECL INT Offset
DECL INT Filter
DECL INT i
IF (VARSTATE("strChannelName[]")==#INITIALIZED) THEN
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_CheckErr",strChannelName[],Ret.Connected)
Ret.Msg_No = -Stat.Msg_No
ENDIF
Ret.Msg_No = (ERRMSG_ALL B_AND Ret.Msg_No)
IF (Ret.Msg_No <>0) THEN
name={modul[] "EthernetKRL", Nr 1, msg_txt[] "0"}
Filter = 255
FOR i=(0) TO (1)
name.nr = (Ret.Msg_No B_AND Filter)
IF (name.nr <> 0) THEN
Offset = 0
CONTINUE
SWRITE(name.msg_txt[],Stat,Offset,"eki%i",name.nr)
Handle = Set_KrlMsg(Type, name, params[], options)
ENDIF
Filter = 65280
ENDFOR
IF(Type==#Quit) THEN
WHILE(Exists_KrlMsg(Handle))
wait sec 0.2
ENDWHILE
ENDIF
ENDIF
IF (VARSTATE("strChannelName[]")==#INITIALIZED) THEN
EKI_Check_User(Ret,Type,strChannelName[])
ELSE
EKI_Check_User(Ret,Type)
ENDIF
END
; ===========================================================
GLOBAL DEFFCT EKI_STATUS EKI_CheckBuffer(strChannelName[]:IN,strPlace[]:IN)
DECL CHAR strChannelName[]
DECL CHAR strPlace[]
DECL STATE_T Stat
DECL MODUS_T Mode
DECL EKI_STATUS Ret
Mode = #SYNC
Ret = EKI_NULL_STATUS
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_CheckBuff",strChannelName[],strPlace[],Ret.Buff,Ret.Connected, Ret.Counter)
Ret.Msg_No = -Stat.Msg_No
showMsgDepend(Ret)
RETURN Ret
ENDFCT
; ===========================================================
DEF showMsgDepend(Ret:OUT)
DECL EKI_STATUS Ret
IF (Ret.Msg_no B_AND ERRMSG_FORBIDDEN)==0 THEN
EKI_CHECK(Ret,#QUIT)
ENDIF
Ret.Msg_no = Ret.Msg_no B_AND ERRMSG_ALL
END
;ENDFOLD EKI_InternalProgram

View File

@@ -0,0 +1,39 @@
&ACCESS RO
&REL 2314
&PARAM DISKPATH = TP/EthernetKRL
DEF EthernetKRL_USER( )
;************************************************************
; CopyRight KUKA Deutschland GmbH 2018
; last modified 11.07.2012
; prefix EKI
; functions user routine for error handling
;************************************************************
END
;FOLD EKI_UserProgram
; ===========================================================
GLOBAL DEF EKI_Check_User(Ret:IN,Type:IN,strChannelName[]:IN)
;FOLD Initialize variables
DECL CHAR strChannelName[]
DECL EKI_STATUS Ret
DECL EKrlMsgType Type
INT Handle
DECL KrlMsg_T name
DECL KrlMsgPar_T params[3]
DECL KrlMsgOpt_T options
DECL STATE_T Stat
DECL MODUS_T Mode
DECL BOOL B
DECL INT Offset
;ENDFOLD
IF (VARSTATE("strChannelName[]")==#INITIALIZED) THEN
; strChannelName is initialized
ENDIF
;************************************************************
;write your error handling here
;************************************************************
END
;ENDFOLD EKI_UserProgram

View File

@@ -0,0 +1,3 @@
&ACCESS RV
DEFDAT SIGNALS PUBLIC
ENDDAT

103
KUKA/KRC/R1/TP/p00.dat Normal file
View File

@@ -0,0 +1,103 @@
&ACCESS R1
&COMMENT EXTERNAL package
DEFDAT P00
BOOL PLC_ENABLE=FALSE ; Enable error-code transmission to plc
INT I
INT F_NO=1
INT MAXERR_C=1 ; maximum messages for $STOPMESS
INT MAXERR_A=1 ; maximum messages for APPLICATION
DECL STOPMESS MLD
SIGNAL ERR $OUT[25] TO $OUT[32]
BOOL FOUND
STRUC PRESET INT OUT,CHAR PKG[3],INT ERR
DECL PRESET P[255]
; z.B. P[1] FEHLERCODE AN SPS = 1
;WENN:
;AUTOMATIK_EXTERN PKG[] = "P00"
;PARITAETSFEHLER = 10
; z.B. P[128] FEHLERCODE AN SPS = 128
;WENN:
;$STOPMESS-MELDUNG PKG[] = "CTL"
;NOT-AUS: = 1
; APPLICATION MESSAGES: P[1]...P[127]
P[1]={OUT 2,PKG[] "P00",ERR 10}
;...
;...
; $STOPMESS MESSAGES: P[128]...P[255]
P[128]={OUT 128,PKG[] "CTL",ERR 1}
;...
;...
P[255]={OUT 255,PKG[] "CTL",ERR 1001}
STRUC ERR_MESS CHAR P[3],INT E
DECL ERR_MESS ERR_FILE[64]
ERR_FILE[1]={P[] "XXX",E 0}
ERR_FILE[2]={P[] "XXX",E 0}
ERR_FILE[3]={P[] "XXX",E 0}
ERR_FILE[4]={P[] "XXX",E 0}
ERR_FILE[5]={P[] "XXX",E 0}
ERR_FILE[6]={P[] "XXX",E 0}
ERR_FILE[7]={P[] "XXX",E 0}
ERR_FILE[8]={P[] "XXX",E 0}
ERR_FILE[9]={P[] "XXX",E 0}
ERR_FILE[10]={P[] "XXX",E 0}
ERR_FILE[11]={P[] "XXX",E 0}
ERR_FILE[12]={P[] "XXX",E 0}
ERR_FILE[13]={P[] "XXX",E 0}
ERR_FILE[14]={P[] "XXX",E 0}
ERR_FILE[15]={P[] "XXX",E 0}
ERR_FILE[16]={P[] "XXX",E 0}
ERR_FILE[17]={P[] "XXX",E 0}
ERR_FILE[18]={P[] "XXX",E 0}
ERR_FILE[19]={P[] "XXX",E 0}
ERR_FILE[20]={P[] "XXX",E 0}
ERR_FILE[21]={P[] "XXX",E 0}
ERR_FILE[22]={P[] "XXX",E 0}
ERR_FILE[23]={P[] "XXX",E 0}
ERR_FILE[24]={P[] "XXX",E 0}
ERR_FILE[25]={P[] "XXX",E 0}
ERR_FILE[26]={P[] "XXX",E 0}
ERR_FILE[27]={P[] "XXX",E 0}
ERR_FILE[28]={P[] "XXX",E 0}
ERR_FILE[29]={P[] "XXX",E 0}
ERR_FILE[30]={P[] "XXX",E 0}
ERR_FILE[31]={P[] "XXX",E 0}
ERR_FILE[32]={P[] "XXX",E 0}
ERR_FILE[33]={P[] "XXX",E 0}
ERR_FILE[34]={P[] "XXX",E 0}
ERR_FILE[35]={P[] "XXX",E 0}
ERR_FILE[36]={P[] "XXX",E 0}
ERR_FILE[37]={P[] "XXX",E 0}
ERR_FILE[38]={P[] "XXX",E 0}
ERR_FILE[39]={P[] "XXX",E 0}
ERR_FILE[40]={P[] "XXX",E 0}
ERR_FILE[41]={P[] "XXX",E 0}
ERR_FILE[42]={P[] "XXX",E 0}
ERR_FILE[43]={P[] "XXX",E 0}
ERR_FILE[44]={P[] "XXX",E 0}
ERR_FILE[45]={P[] "XXX",E 0}
ERR_FILE[46]={P[] "XXX",E 0}
ERR_FILE[47]={P[] "XXX",E 0}
ERR_FILE[48]={P[] "XXX",E 0}
ERR_FILE[49]={P[] "XXX",E 0}
ERR_FILE[50]={P[] "XXX",E 0}
ERR_FILE[51]={P[] "XXX",E 0}
ERR_FILE[52]={P[] "XXX",E 0}
ERR_FILE[53]={P[] "XXX",E 0}
ERR_FILE[54]={P[] "XXX",E 0}
ERR_FILE[55]={P[] "XXX",E 0}
ERR_FILE[56]={P[] "XXX",E 0}
ERR_FILE[57]={P[] "XXX",E 0}
ERR_FILE[58]={P[] "XXX",E 0}
ERR_FILE[59]={P[] "XXX",E 0}
ERR_FILE[60]={P[] "XXX",E 0}
ERR_FILE[61]={P[] "XXX",E 0}
ERR_FILE[62]={P[] "XXX",E 0}
ERR_FILE[63]={P[] "XXX",E 0}
ERR_FILE[64]={P[] "XXX",E 0}
ENDDAT

452
KUKA/KRC/R1/TP/p00.src Normal file
View File

@@ -0,0 +1,452 @@
&ACCESS R1
&COMMENT EXTERNAL package
DEF P00 (COMMAND :IN,PGNO_FUNCT :IN,P_ID[] :OUT,E_NO :IN )
DECL P00_COMMAND COMMAND
DECL FUNCT_TYPE PGNO_FUNCT
DECL CHAR P_ID[]
E6AXIS AK_AXIS
REAL AX_DIST
INT E_NO
SWITCH COMMAND
CASE #INIT_EXT
INIT_EXT ( )
CASE #EXT_PGNO
EXT_PGNO (PGNO_FUNCT )
CASE #CHK_HOME
CHK_HOME ( )
CASE #EXT_ERR
EXT_ERR (P_ID[],E_NO )
ENDSWITCH
END
DEF INIT_EXT ( )
;********************************
; Function: initializing of the
; external interface
;********************************
BOOL ERROR
INT N
PGNO_ERROR=0
;********************************
;CHECK HOME
;********************************
;********************************
;INIT PGNO_REQ UND APPL_RUN
;********************************
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=FALSE
ENDIF
IF (PGNO_REQ<0) THEN
$OUT[-PGNO_REQ]=TRUE
ENDIF
IF (APPL_RUN>0) THEN
$OUT[APPL_RUN]=FALSE
ENDIF
IF PLC_ENABLE AND (ERR_TO_PLC>0) THEN
$OUT[ERR_TO_PLC]=FALSE
ENDIF
IF REFLECT_PROG_NR==1 THEN
FOR N=0 TO PGNO_LENGTH-1
$OUT[PGNO_FBIT_REFL+N]=FALSE
ENDFOR
ENDIF
;*******************
REPEAT
;***********************************************************
ERROR=FALSE
REPEAT
IF ($I_O_ACTCONF==FALSE) THEN
ERROR=TRUE
MsgQuit("OperatorModeWrong", "P00")
ENDIF
UNTIL ($I_O_ACTCONF==TRUE)
SWITCH PGNO_TYPE
;*********************************************************
CASE 1,2 ;bci-coding,bcd-coding
;*********************************************************
;***** CHECK PGNO_LENGTH *****
IF (PGNO_LENGTH<1) THEN
ERROR=TRUE ;pgno_length
MsgQuit("PgNo_LengthRangeWrong", "P00")
ENDIF
IF (PGNO_TYPE==1) THEN ;bci-coding
IF (PGNO_LENGTH>16) THEN
ERROR=TRUE ;pgno_length
MsgQuit("PgNo_LengthRangeWrong", "P00")
ENDIF
ENDIF
IF (PGNO_TYPE==2) THEN ;bcd-coding
SWITCH PGNO_LENGTH
CASE 4,8,12,16
DEFAULT
ERROR=TRUE ;pgno_length
MsgQuit("PgNo_LengthWrong", "P00")
ENDSWITCH
ENDIF
;***** CHECK PGNO_FBIT *****
IF (PGNO_FBIT<1) THEN
ERROR=TRUE ;pgno_fbit
MsgQuit("PgNo_FBitWrong", "P00")
ENDIF
;***** CHECK PGNO_REQ *****
IF (PGNO_REQ==0) THEN
ERROR=TRUE ;pgno_req
MsgQuit("PgNo_ReqWrong", "P00")
ENDIF
IF (PGNO_REQ>0) THEN ;active high
$OUT[PGNO_REQ]=FALSE ;reset
WAIT SEC 0.2 ;delay for plc
ENDIF
IF (PGNO_REQ<0) THEN ;active low
$OUT[PGNO_REQ*(-1)]=TRUE ;reset
WAIT SEC 0.2 ;delay for plc
ENDIF
;*********************************************************
CASE 3 ;one out of n
;*********************************************************
;***** CHECK PGNO_LENGTH *****
IF (PGNO_LENGTH<1) THEN
ERROR=TRUE ;pgno_length
MsgQuit("PgNo_LengthRangeWrong", "P00")
ENDIF
IF (PGNO_LENGTH>16) THEN
ERROR=TRUE ;pgno_length
MsgQuit("PgNo_LengthRangeWrong", "P00")
ENDIF
;***** CHECK PGNO_FBIT *****
IF (PGNO_FBIT<1) THEN
ERROR=TRUE ;pgno_fbit
MsgQuit("PgNo_FBitWrong", "P00")
ENDIF
;*********************************************************
DEFAULT ;PGNO_TYPE wrong type
;*********************************************************
ERROR=TRUE ;pgno_type
MsgQuit ("PgNo_TypeWrong", "P00")
ENDSWITCH
;***********************************************************
UNTIL (ERROR==FALSE)
END
DEF EXT_PGNO (FUNCT :OUT )
;********************************
; Function: communication program
; for external mode
;********************************
DECL FUNCT_TYPE FUNCT
INT I,J,K,L,M,N,nHandle
BOOL P_RECV,P_CALC,bRes
J=1
K=0
L=1
P_RECV=FALSE
P_CALC=FALSE
IF (APPL_RUN>0) THEN
$OUT[APPL_RUN]=FALSE
ENDIF
SWITCH FUNCT
;*******************
CASE #PGNO_ACKN
;*******************
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=FALSE
ENDIF
IF (PGNO_REQ<0) THEN
$OUT[PGNO_REQ*(-1)]=TRUE
ENDIF
IF (APPL_RUN>0) THEN
$OUT[APPL_RUN]=TRUE
ENDIF
;*******************
CASE #PGNO_GET
;*******************
IF REFLECT_PROG_NR==1 THEN
FOR N=0 TO PGNO_LENGTH-1
$OUT[PGNO_FBIT_REFL+N]=FALSE
ENDFOR
ENDIF
SWITCH PGNO_TYPE
;*******************
CASE 1,2
;*******************
IF (PGNO_VALID>0) THEN
WAIT FOR $IN[PGNO_VALID]==FALSE
ENDIF
IF (PGNO_VALID==0) THEN
WAIT FOR $EXT_START==FALSE
ENDIF
IF (PGNO_VALID<0) THEN
WAIT FOR $IN[PGNO_VALID*(-1)]==TRUE
ENDIF
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=TRUE
ENDIF
IF (PGNO_REQ<0) THEN
$OUT[PGNO_REQ*(-1)]=FALSE
ENDIF
IF (PGNO_VALID>0) THEN
MsgState(nHandle, "Wait for PGNO_VALID=True", "P00")
REPEAT
IF REFLECT_PROG_NR==1 THEN
FOR I=0 TO PGNO_LENGTH-1
IF $IN[PGNO_FBIT+I]==TRUE THEN
$OUT[PGNO_FBIT_REFL+I]=TRUE
ELSE
$OUT[PGNO_FBIT_REFL+I]=FALSE
ENDIF
ENDFOR
ENDIF
UNTIL $IN[PGNO_VALID]==TRUE
bRes=Clear_KrlMsg (nHandle)
ENDIF
IF (PGNO_VALID==0) THEN
MsgState(nHandle, "Wait for $EXT_START=True", "P00")
REPEAT
IF REFLECT_PROG_NR==1 THEN
FOR I=0 TO PGNO_LENGTH-1
IF $IN[PGNO_FBIT+I]==TRUE THEN
$OUT[PGNO_FBIT_REFL+I]=TRUE
ELSE
$OUT[PGNO_FBIT_REFL+I]=FALSE
ENDIF
ENDFOR
ENDIF
UNTIL $EXT_START==TRUE
bRes=Clear_KrlMsg (nHandle)
ENDIF
IF (PGNO_VALID<0) THEN
MsgState(nHandle, "Wait for PGNO_VALID=False", "P00")
REPEAT
IF REFLECT_PROG_NR==1 THEN
FOR I=0 TO PGNO_LENGTH-1
IF $IN[PGNO_FBIT+I]==TRUE THEN
$OUT[PGNO_FBIT_REFL+I]=TRUE
ELSE
$OUT[PGNO_FBIT_REFL+I]=FALSE
ENDIF
ENDFOR
ENDIF
UNTIL $IN[PGNO_VALID*(-1)]==FALSE
bRes=Clear_KrlMsg (nHandle)
ENDIF
PGNO=0
SWITCH PGNO_TYPE
;*******************
CASE 1
;*******************
FOR I=0 TO PGNO_LENGTH-1
IF $IN[PGNO_FBIT+I] THEN
IF REFLECT_PROG_NR==1 THEN
$OUT[PGNO_FBIT_REFL+I]=TRUE
ENDIF
PGNO=PGNO+J
ENDIF
J=J*2
ENDFOR
;*******************
CASE 2
;*******************
FOR I=0 TO PGNO_LENGTH-1 STEP 4
N=0
J=1
FOR M=I TO I+3
IF $IN[PGNO_FBIT+M] THEN
N=N+J
IF REFLECT_PROG_NR==1 THEN
$OUT[PGNO_FBIT_REFL+M]=TRUE
ENDIF
ENDIF
J=J*2
ENDFOR
IF (N>9) THEN
PGNO_ERROR=2
PGNO=0
EXIT
ELSE
PGNO=PGNO+N*L
L=L*10
ENDIF
ENDFOR
ENDSWITCH
IF (PGNO_ERROR<>2) THEN
IF (PGNO_PARITY>0) THEN
P_RECV=$IN[PGNO_PARITY]
FOR I=0 TO PGNO_LENGTH-1
P_CALC=P_CALC EXOR $IN[PGNO_FBIT+I]
ENDFOR
IF (P_RECV<>P_CALC) THEN
PGNO=0
PGNO_ERROR=1
ELSE
PGNO_ERROR=0
ENDIF
ENDIF
IF (PGNO_PARITY<0) THEN
P_RECV=$IN[PGNO_PARITY*(-1)]
FOR I=0 TO PGNO_LENGTH-1
P_CALC=P_CALC EXOR $IN[PGNO_FBIT+I]
ENDFOR
IF (P_RECV<> NOT (P_CALC)) THEN
PGNO=0
PGNO_ERROR=1
ELSE
PGNO_ERROR=0
ENDIF
ENDIF
ENDIF
;*******************
CASE 3
;*******************
IF PGNO>0 THEN
WAIT FOR $IN[PGNO_FBIT+PGNO-1]==FALSE
ENDIF
K=0
REPEAT
FOR I=0 TO PGNO_LENGTH-1
IF $IN[PGNO_FBIT+I] THEN
IF K==0 THEN
K=I+1
ELSE
PGNO_ERROR=0
K=0
ENDIF
ENDIF
ENDFOR
UNTIL ((K<>0) OR (PGNO_ERROR==0))
PGNO=K
ENDSWITCH
;***********************************************************
CASE #PGNO_FAULT
;***********************************************************
IF PGNO_ERROR==1 THEN
MsgQuit("ParityFault", "P00", PGNO)
ENDIF
IF PGNO_ERROR==2 THEN
MsgQuit("BCDCodeError", "P00", PGNO)
ENDIF
IF PGNO_ERROR==0 THEN
IF (PGNO_TYPE==3) THEN
MsgQuit("ProgNumberWrong", "P00")
ELSE
MsgQuit("ProgramNotAvailable", "P00", PGNO)
ENDIF
ENDIF
PGNO_ERROR=0
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=FALSE
ENDIF
IF (PGNO_REQ<0) THEN
$OUT[PGNO_REQ*(-1)]=TRUE
ENDIF
WAIT SEC 0.5
ENDSWITCH
END
DEF CHK_HOME ( )
BOOL H
IF ($I_O_ACTCONF==TRUE) THEN
REPEAT
H=TRUE
IF ($IN_HOME==FALSE) THEN
H=FALSE
REPEAT
MsgQuit("MoveHomeInT1", "P00")
IF (($MODE_OP==#T1) OR ($MODE_OP==#T2)) THEN
RETURN
ENDIF
HALT
UNTIL $IN_HOME==TRUE
ELSE
H=TRUE
ENDIF
UNTIL ((H==TRUE) OR ($I_O_ACTCONF==FALSE))
ENDIF
END
DEF EXT_ERR (P_ID :OUT, E_NO :IN )
;******************************
;Function : ext. error messages
; for package P00
;******************************
CHAR P_ID[]
INT E_NO,M
;********* MODUL-/FEHLER-NUMMER AUSWERTEN ********
I=1
FOUND=FALSE
IF (E_NO==0) THEN
IF PLC_ENABLE THEN
ERR=0
WAIT SEC 0.2
IF (ERR_TO_PLC >0) THEN
$OUT[ERR_TO_PLC]=FALSE
WAIT SEC 0.2
ENDIF
ENDIF
ELSE
IF PLC_ENABLE THEN
FOUND=FALSE
;******************************
; APPLIKATIONS-FEHLER AUSWERTEN
;******************************
I=1
REPEAT
IF (E_NO==P[I].ERR) THEN
IF (P_ID[1]==P[I].PKG[1]) THEN
IF (P_ID[2]==P[I].PKG[2]) THEN
IF (P_ID[3]==P[I].PKG[3]) THEN
FOUND=TRUE
ERR=P[I].OUT
F_WRITE ( )
ENDIF
ENDIF
ENDIF
ENDIF
I=I+1
UNTIL (I>MAXERR_A) OR FOUND
;***************************
; $STOPMESS-FEHLER AUSWERTEN
;***************************
I=128
IF (P_ID[1]=="C") THEN
IF (P_ID[2]=="T") THEN
IF (P_ID[3]=="L") THEN
M=MBX_REC(1,MLD)
IF M==0 THEN
REPEAT
IF (MLD.MESSNO==P[I].ERR) THEN
FOUND=TRUE
ERR=P[I].OUT
F_WRITE ( )
ENDIF
I=I+1
UNTIL (I>MAXERR_C+128-1) OR FOUND
ENDIF
ENDIF
ENDIF
ENDIF
IF (ERR_TO_PLC >0) THEN
$OUT[ERR_TO_PLC]=TRUE
ENDIF
ENDIF
ENDIF
END
DEF F_WRITE ( )
IF (F_NO>64) THEN
F_NO=1
ENDIF
ERR_FILE[F_NO].P[1]=P[I].PKG[1]
ERR_FILE[F_NO].P[2]=P[I].PKG[2]
ERR_FILE[F_NO].P[3]=P[I].PKG[3]
ERR_FILE[F_NO].E=P[I].ERR
F_NO=F_NO+1
END

31
KUKA/KRC/R1/cell.src Normal file
View File

@@ -0,0 +1,31 @@
&ACCESS RVO
&COMMENT HANDLER on external automatic
DEF CELL ( )
;EXT EXAMPLE1 ( )
;EXT EXAMPLE2 ( )
;EXT EXAMPLE3 ( )
;FOLD INIT
DECL CHAR DMY[3]
DMY[]="---"
;ENDFOLD (INIT)
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD CHECK HOME
$H_POS=XHOME
IF CHECK_HOME==TRUE THEN
P00 (#CHK_HOME,#PGNO_GET,DMY[],0 ) ;Testing Home-Position
ENDIF
;ENDFOLD (CHECK HOME)
Initmove()
;FOLD AUTOEXT INI
P00 (#INIT_EXT,#PGNO_GET,DMY[],0 ) ; Initialize extern mode
;ENDFOLD (AUTOEXT INI)
LOOP
MainModule()
ENDLOOP
END

View File

@@ -0,0 +1,4 @@
&ACCESS RV$2
DEFDAT $CONFIG
ENDDAT

View File

@@ -0,0 +1,650 @@
&ACCESS RV$
&PARAM VERSION = 1.0.0
DEFDAT $CUSTOM PUBLIC
DECL SPREADSTARTPOLICY $SPREADSTARTPOLICY=#DEFAULT_BCO ;Zu nutzende Regel beim Verteilen des Start-Kommandos im RoboTeam
CHAR $V_CUSTOM[32]
$V_CUSTOM[]="V1.0.0/KUKA8.7" ;VERSIONSKENNUNG
BOOL $SR_VEL_RED=TRUE ;TRUE: Overrideregelung des SafeRobot fuer Geschwindigkeitsgrenzen im Grundsystem aktiviert
BOOL $BRAKE_ON_SBH=TRUE ;TRUE: Je nach anliegenden SBH werden entweder alle Bremsen sofort geschlossen bzw. nur diejenigen die zur Achsgruppe gehoeren
BOOL $NO_MOVEMENT_ON_SBH=TRUE ;Bewegungsstart nicht moeglich bei SBH
BOOL $SR_WORKSPACE_RED=TRUE ;TRUE: Overrideregelung des SafeRobot fuer Ueberwachungsraeume im Grundsystem aktiviert
BOOL $TOOL_DIRECTION_LIN_CIRC=FALSE ;TRUE $TOOL_DIRECTION-Wert wird fuer Drehen und Schwenken und die TTS-Berechnung bei LIN- und CIRC-Bewegungen verwendet
INT $SR_OV_RED=75 ;Reduzierungsfaktor der SafeRobot Overrideregelung zu Geschwindigkeitsgrenzen [10-95]
DECL MOTION_MODE $DEFAULT_MOTION_MODE=#STANDARD ; Mit $DEFAULT_MOTION_MODE wird der default MotionMode angegeben
BOOL $COLL_ENABLECAV=FALSE ;Enable/Disable Collision Avoidance
REAL $COLL_DISTANCE_MAN[16] ;Distance tolerances when jogging manually or when no program running
$COLL_DISTANCE_MAN[1]=0.0 ;
$COLL_DISTANCE_MAN[2]=0.0 ;
$COLL_DISTANCE_MAN[3]=0.0 ;
$COLL_DISTANCE_MAN[4]=0.0 ;
$COLL_DISTANCE_MAN[5]=0.0 ;
$COLL_DISTANCE_MAN[6]=0.0 ;
$COLL_DISTANCE_MAN[7]=0.0 ;
$COLL_DISTANCE_MAN[8]=0.0 ;
$COLL_DISTANCE_MAN[9]=0.0 ;
$COLL_DISTANCE_MAN[10]=0.0 ;
$COLL_DISTANCE_MAN[11]=0.0 ;
$COLL_DISTANCE_MAN[12]=0.0 ;
$COLL_DISTANCE_MAN[13]=0.0 ;
$COLL_DISTANCE_MAN[14]=0.0 ;
$COLL_DISTANCE_MAN[15]=0.0 ;
$COLL_DISTANCE_MAN[16]=0.0 ;
REAL $COLL_DISTANCE_PROG[16] ;Distance tolerance when program is selected
BOOL $WORKSPACERESTOREACTIVE=FALSE ; Fuer Aktivierung der Arbeitsbereich Zustand-Wiederherstellung
DECL AXIS_OF_COORDINATES $TOOL_DIRECTION=#X ;Werkzeugstossrichtung fuer neue CP-Bewegungen (Spline)
DECL AXIS_OF_COORDINATES $BASE_ALIGN=#Z ;Achse des Base um Werkzeug auszurichten
DECL SPLINE_PARA_VARIANT $SPTP_EXAX_PARA[6] ;Parametrisierungsart einer Zusatzachse beim PTP-Spline
$SPTP_EXAX_PARA[1]=#DEFAULT_PARA
$SPTP_EXAX_PARA[2]=#DEFAULT_PARA
$SPTP_EXAX_PARA[3]=#DEFAULT_PARA
$SPTP_EXAX_PARA[4]=#DEFAULT_PARA
$SPTP_EXAX_PARA[5]=#DEFAULT_PARA
$SPTP_EXAX_PARA[6]=#DEFAULT_PARA
DECL STRIKE_OUT_COMPONENTS $MAX_ABS_STRIKE_OUT={ORIENTATION 20.0000,ROT_EXT_AXES 20.0000,LIN_EXT_AXES 100.000} ;maximaler Wert der ABSOLUTE-Komponenten von $STRIKE_OUT_DEFAULT oder $STRIKE_OUT
DECL STRIKE_OUT_STRUC $STRIKE_OUT_DEFAULT={MODE #ON,ABSOLUTE {ORIENTATION 7.50000,ROT_EXT_AXES 7.50000,LIN_EXT_AXES 50.0000},RELATIVE {ORIENTATION 40.0000,ROT_EXT_AXES 40.0000,LIN_EXT_AXES 40.0000}} ;Standardkonfiguration der Ausholstrategie fuer SPL-Segmente im Spline-Block
DECL PRO_IO_T $PRO_I_O_SYS={MODULE[] "/R1/SPS()",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID3={MODULE[] "/R1/PLC()",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID4={MODULE[] " ",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID5={MODULE[] " ",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID6={MODULE[] " ",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID7={MODULE[] " ",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID8={MODULE[] " ",COLD_BOOT_RUN #ON}
DECL PRO_IO_T $PRO_I_O_PROC_ID9={MODULE[] " ",COLD_BOOT_RUN #ON}
DECL SER $PSER_1={PROTO 1,PROC 0,RCO 5,BL 0,BAUD 19200,NOC 8,NOS 1,PARITY 2,TRC 1,FLP 0,LLP 0,RT 300,PT 5,DSR 0,WCCXON 0,VXON 0,VXOFF 0,WEOBC 0,VEOBC 0} ;SCHNITTSTELLE 1
DECL SER $PSER_2={PROTO 0,PROC 3,RCO 0,BL 0,BAUD 9600,NOC 7,NOS 2,PARITY 2,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 11,VXOFF 13,WEOBC 1,VEOBC 3} ;SCHNITTSTELLE 2
DECL SER $PSER_3={PROTO 0,PROC 3,RCO 0,BL 0,BAUD 9600,NOC 7,NOS 2,PARITY 2,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 11,VXOFF 13,WEOBC 1,VEOBC 3} ;SCHNITTSTELLE 2
DECL SER $PSER_4={PROTO 0,PROC 3,RCO 0,BL 0,BAUD 9600,NOC 7,NOS 2,PARITY 2,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 11,VXOFF 13,WEOBC 1,VEOBC 3} ;SCHNITTSTELLE 2
DECL SER $PPG={PROTO 2,PROC 4,BAUD 9600} ;PG-SCHNITTSTELLE
DECL EXT_MOD_T $EXT_MOD_1={O_FILE[] " ",OPTION 'B0000'} ;ext. Modul Informationen
DECL EXT_MOD_T $EXT_MOD_2={O_FILE[] " ",OPTION 'B0000'} ;ext. Modul Informationen
DECL EXT_MOD_T $EXT_MOD_3={O_FILE[] " ",OPTION 'B0000'} ;ext. Modul Informationen
DECL EXT_MOD_T $EXT_MOD_4={O_FILE[] " ",OPTION 'B0000'} ;ext. Modul Informationen
CHANNEL :SER_1 :SER_1 $PSER_1
CHANNEL :SER_2 :SER_2 $PSER_2
CHANNEL :SER_3 :SER_3 $PSER_3
CHANNEL :SER_4 :SER_4 $PSER_4
CHANNEL :PG :SER_1 $PPG
CHANNEL :LD_EXT_OBJ1 :LD_EXT_OBJ1 $EXT_MOD_1 ;external module 1
CHANNEL :LD_EXT_OBJ2 :LD_EXT_OBJ2 $EXT_MOD_2 ;external module 2
CHANNEL :LD_EXT_FCT1 :LD_EXT_FCT1 $EXT_MOD_3 ;external module 3
CHANNEL :LD_EXT_FCT2 :LD_EXT_FCT2 $EXT_MOD_4 ;external module 4
INT $IBUS_ON=0 ;EINSCHALTEN ALTERNATIVER INTERBUSGRUPPEN
INT $EDIT_MODE=1 ;KOMMUNIKATION TP - XEDIT
INT $IBUS_OFF=0 ;ABSCHALTEN ALTERNATIVER INTERBUSGRUPPEN
DECL BOX $WORKSPACE[8] ;UEBERWACHT ARBEITSRAEUME
$WORKSPACE[1]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[2]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[3]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[4]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[5]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[6]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[7]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
$WORKSPACE[8]={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,X1 0.0,Y1 0.0,Z1 0.0,X2 0.0,Y2 0.0,Z2 0.0,MODE #OFF}
BOOL $ABS_CONVERT=FALSE ;KONVERTIERUNG DER PUNKTKOORDINATEN
BOOL $DEACTIVATE_ABS_ACCUR=FALSE
REAL $NEARPATHTOL=200.000 ;TOLERANZ FUER DIE ABWEICHUNG VON $POS_RET
INT $ASYNC_MODE='B0000' ;MODE FUER ASYNCHRONE ZUSATZACHSEN
INT $TECH_FUNC='B0000' ;BITS ZUM AKTIVIEREN EINZELNER FUNKTIONEN DES FUNKTIONSGENERATORS
BOOL $IMPROVED_COLLMON=TRUE ;Schalter Verbesserte Kollisionserkennung
INT $COLLMON_STARTUP_MAX=200 ;maximale Abschaltzeit [ms] der Kollisionserkennung am Bewegungsstart (unbeschraenkt falls <=0)
INT $COLLMON_TOL_PRO_DEF[12] ;Verbesserte Kollisionserkennung: Default-Sensibilitaetseinstellung Programm
$COLLMON_TOL_PRO_DEF[1]=0 ;Achse 1
$COLLMON_TOL_PRO_DEF[2]=0 ;Achse 2
$COLLMON_TOL_PRO_DEF[3]=0 ;Achse 3
$COLLMON_TOL_PRO_DEF[4]=0 ;Achse 4
$COLLMON_TOL_PRO_DEF[5]=0 ;Achse 5
$COLLMON_TOL_PRO_DEF[6]=0 ;Achse 6
$COLLMON_TOL_PRO_DEF[7]=0 ;Achse 7
$COLLMON_TOL_PRO_DEF[8]=0 ;Achse 8
$COLLMON_TOL_PRO_DEF[9]=0 ;Achse 9
$COLLMON_TOL_PRO_DEF[10]=0 ;Achse 10
$COLLMON_TOL_PRO_DEF[11]=0 ;Achse 11
$COLLMON_TOL_PRO_DEF[12]=0 ;Achse 12
INT $COLLMON_TOL_COM_DEF[12] ;Verbesserte Kollisionserkennung: Default-Sensibilitaetseinstellung Kommando
$COLLMON_TOL_COM_DEF[1]=0 ;Achse 1
$COLLMON_TOL_COM_DEF[2]=0 ;Achse 2
$COLLMON_TOL_COM_DEF[3]=0 ;Achse 3
$COLLMON_TOL_COM_DEF[4]=0 ;Achse 4
$COLLMON_TOL_COM_DEF[5]=0 ;Achse 5
$COLLMON_TOL_COM_DEF[6]=0 ;Achse 6
$COLLMON_TOL_COM_DEF[7]=0 ;Achse 7
$COLLMON_TOL_COM_DEF[8]=0 ;Achse 8
$COLLMON_TOL_COM_DEF[9]=0 ;Achse 9
$COLLMON_TOL_COM_DEF[10]=0 ;Achse 10
$COLLMON_TOL_COM_DEF[11]=0 ;Achse 11
$COLLMON_TOL_COM_DEF[12]=0 ;Achse 12
INT $TORQMON_DEF[12] ;DEFAULTWERTE FUER DEN MOMENTENUEBERWACHUNGSSCHLAUCH IM PROGRAMMBETRIEB [%]
$TORQMON_DEF[1]=0 ;ACHSE 1
$TORQMON_DEF[2]=0 ;ACHSE 2
$TORQMON_DEF[3]=0 ;ACHSE 3
$TORQMON_DEF[4]=0 ;ACHSE 4
$TORQMON_DEF[5]=0 ;ACHSE 5
$TORQMON_DEF[6]=0 ;ACHSE 6
$TORQMON_DEF[7]=0 ;ACHSE 7
$TORQMON_DEF[8]=0 ;ACHSE 8
$TORQMON_DEF[9]=0 ;ACHSE 9
$TORQMON_DEF[10]=0 ;ACHSE 10
$TORQMON_DEF[11]=0 ;ACHSE 11
$TORQMON_DEF[12]=0 ;ACHSE 12
INT $TORQMON_COM_DEF[12] ;DEFAULTWERTE FUER DEN MOMENTENUEBERWACHUNGSSCHLAUCH IM KOMMANDOBETRIEB [%]
$TORQMON_COM_DEF[1]=0 ;ACHSE 1
$TORQMON_COM_DEF[2]=0 ;ACHSE 2
$TORQMON_COM_DEF[3]=0 ;ACHSE 3
$TORQMON_COM_DEF[4]=0 ;ACHSE 4
$TORQMON_COM_DEF[5]=0 ;ACHSE 5
$TORQMON_COM_DEF[6]=0 ;ACHSE 6
$TORQMON_COM_DEF[7]=0
$TORQMON_COM_DEF[8]=0
$TORQMON_COM_DEF[9]=0
$TORQMON_COM_DEF[10]=0
$TORQMON_COM_DEF[11]=0
$TORQMON_COM_DEF[12]=0
REAL $TORQMON_TIME=0.0120000 ;ZEIT [MS], NACH DER DIE FAHRMOMENTUEBERWACHUNG ZUSCHLAEGT
FRAME $SINGUL_ERR_PRO={A 0.0,B 0.0,C 0.0} ;MAX. ORIENTIERUNGSFEHLER PROGRAMMVERFAHREN
FRAME $SINGUL_ERR_JOG={A 5.00000,B 5.00000,C 5.00000} ;MAX. ORIENTIERUNGSFEHLER HANDVERFAHREN
DECL TARGET_STATUS $TARGET_STATUS=#SOURCE
BOOL $RED_T1_OV_CP=FALSE ;BEHANDLUNG VON CP_BAHNEN IN T1 (FALSE=GESCHW.-REDUZ. AUF $VEL_CP_T1, TRUE=OVERRIDE-REDUZIERUNG UM $RED_T1)
DECL CP_VEL_TYPE $CP_VEL_TYPE=#VAR_T1 ;RED. DER CP-GESCHW. BEI UEBERSCHREITUNG DER ACHSGRENZWERTE (#VAR_T1 : NUR IM T1-Betrieb, #VAR_ALL : IMMER, #VAR_ALL_MODEL: modellbasierte Achsgrenzwerte im Programmbetrieb und T2,AUT,EXT)
DECL CP_STATMON $CP_STATMON=#NONE ;variable fuer die CP Konfigurationsueberwachung
REAL $KCP_POS=0.0 ;STELLUNG DES KCP BZGL. DES ROBOTERS ( WINDROSE )
BOOL $TECH_ANA_FLT_OFF[6] ;ZYKL. ANALOGAUSGABE DES TECHVALS GEFILTERT (FALSE)/UNGEFILTERT (TRUE) AUSGEBEN
$TECH_ANA_FLT_OFF[1]=FALSE
$TECH_ANA_FLT_OFF[2]=FALSE
$TECH_ANA_FLT_OFF[3]=FALSE
$TECH_ANA_FLT_OFF[4]=FALSE
$TECH_ANA_FLT_OFF[5]=FALSE
$TECH_ANA_FLT_OFF[6]=FALSE
CHAR $WORKSPACE_NAME1[24]
$WORKSPACE_NAME1[]="WORKSPACE 1"
CHAR $WORKSPACE_NAME2[24]
$WORKSPACE_NAME2[]="WORKSPACE 2"
CHAR $WORKSPACE_NAME3[24]
$WORKSPACE_NAME3[]="WORKSPACE 3"
CHAR $WORKSPACE_NAME4[24]
$WORKSPACE_NAME4[]="WORKSPACE 4"
CHAR $WORKSPACE_NAME5[24]
$WORKSPACE_NAME5[]="WORKSPACE 5"
CHAR $WORKSPACE_NAME6[24]
$WORKSPACE_NAME6[]="WORKSPACE 6"
CHAR $WORKSPACE_NAME7[24]
$WORKSPACE_NAME7[]="WORKSPACE 7"
CHAR $WORKSPACE_NAME8[24]
$WORKSPACE_NAME8[]="WORKSPACE 8"
DECL COOP_KRC $COOP_KRC[16] ;POTENTIAL REMOTE ROBOTS
$COOP_KRC[1]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[2]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[3]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[4]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[5]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[6]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[7]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[8]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[9]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[10]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[11]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[12]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[13]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[14]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[15]={IP_ADDR[] " ",NAME[] " "}
$COOP_KRC[16]={IP_ADDR[] " ",NAME[] " "}
DECL WS_CONFIG $WS_CONFIG[32] ;WORKSPACE CONFIGURATION FOR WORKSPACE SHARING
$WS_CONFIG[1]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[2]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[3]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[4]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[5]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[6]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[7]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[8]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[9]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[10]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[11]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[12]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[13]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[14]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[15]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[16]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[17]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[18]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[19]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[20]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[21]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[22]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[23]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[24]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[25]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[26]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[27]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[28]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[29]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[30]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[31]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
$WS_CONFIG[32]={COOP_KRC 0,WS_NAME[] " ",WS_PRIO 0}
INT $COUNT_I[160] ;COUNTER
$COUNT_I[1]=0
$COUNT_I[2]=0
$COUNT_I[3]=0
$COUNT_I[4]=0
$COUNT_I[5]=0
$COUNT_I[6]=0
$COUNT_I[7]=0
$COUNT_I[8]=0
$COUNT_I[9]=0
$COUNT_I[10]=0
$COUNT_I[11]=0
$COUNT_I[12]=0
$COUNT_I[13]=0
$COUNT_I[14]=0
$COUNT_I[15]=0
$COUNT_I[16]=0
$COUNT_I[17]=0
$COUNT_I[18]=0
$COUNT_I[19]=0
$COUNT_I[20]=0
$COUNT_I[21]=0
$COUNT_I[22]=0
$COUNT_I[23]=0
$COUNT_I[24]=0
$COUNT_I[25]=0
$COUNT_I[26]=0
$COUNT_I[27]=0
$COUNT_I[28]=0
$COUNT_I[29]=0
$COUNT_I[30]=0
$COUNT_I[31]=0
$COUNT_I[32]=0
$COUNT_I[33]=0
$COUNT_I[34]=0
$COUNT_I[35]=0
$COUNT_I[36]=0
$COUNT_I[37]=0
$COUNT_I[38]=0
$COUNT_I[39]=0
$COUNT_I[40]=0
$COUNT_I[41]=0
$COUNT_I[42]=0
$COUNT_I[43]=0
$COUNT_I[44]=0
$COUNT_I[45]=0
$COUNT_I[46]=0
$COUNT_I[47]=0
$COUNT_I[48]=0
$COUNT_I[49]=0
$COUNT_I[50]=0
$COUNT_I[51]=0
$COUNT_I[52]=0
$COUNT_I[53]=0
$COUNT_I[54]=0
$COUNT_I[55]=0
$COUNT_I[56]=0
$COUNT_I[57]=0
$COUNT_I[58]=0
$COUNT_I[59]=0
$COUNT_I[60]=0
$COUNT_I[61]=0
$COUNT_I[62]=0
$COUNT_I[63]=0
$COUNT_I[64]=0
$COUNT_I[65]=0
$COUNT_I[66]=0
$COUNT_I[67]=0
$COUNT_I[68]=0
$COUNT_I[69]=0
$COUNT_I[70]=0
$COUNT_I[71]=0
$COUNT_I[72]=0
$COUNT_I[73]=0
$COUNT_I[74]=0
$COUNT_I[75]=0
$COUNT_I[76]=0
$COUNT_I[77]=0
$COUNT_I[78]=0
$COUNT_I[79]=0
$COUNT_I[80]=0
$COUNT_I[81]=0
$COUNT_I[82]=0
$COUNT_I[83]=0
$COUNT_I[84]=0
$COUNT_I[85]=0
$COUNT_I[86]=0
$COUNT_I[87]=0
$COUNT_I[88]=0
$COUNT_I[89]=0
$COUNT_I[90]=0
$COUNT_I[91]=0
$COUNT_I[92]=0
$COUNT_I[93]=0
$COUNT_I[94]=0
$COUNT_I[95]=0
$COUNT_I[96]=0
$COUNT_I[97]=0
$COUNT_I[98]=0
$COUNT_I[99]=0
$COUNT_I[100]=0
$COUNT_I[101]=0
$COUNT_I[102]=0
$COUNT_I[103]=0
$COUNT_I[104]=0
$COUNT_I[105]=0
$COUNT_I[106]=0
$COUNT_I[107]=0
$COUNT_I[108]=0
$COUNT_I[109]=0
$COUNT_I[110]=0
$COUNT_I[111]=0
$COUNT_I[112]=0
$COUNT_I[113]=0
$COUNT_I[114]=0
$COUNT_I[115]=0
$COUNT_I[116]=0
$COUNT_I[117]=0
$COUNT_I[118]=0
$COUNT_I[119]=0
$COUNT_I[120]=0
$COUNT_I[121]=0
$COUNT_I[122]=0
$COUNT_I[123]=0
$COUNT_I[124]=0
$COUNT_I[125]=0
$COUNT_I[126]=0
$COUNT_I[127]=0
$COUNT_I[128]=0
$COUNT_I[129]=0
$COUNT_I[130]=0
$COUNT_I[131]=0
$COUNT_I[132]=0
$COUNT_I[133]=0
$COUNT_I[134]=0
$COUNT_I[135]=0
$COUNT_I[136]=0
$COUNT_I[137]=0
$COUNT_I[138]=0
$COUNT_I[139]=0
$COUNT_I[140]=0
$COUNT_I[141]=0
$COUNT_I[142]=0
$COUNT_I[143]=0
$COUNT_I[144]=0
$COUNT_I[145]=0
$COUNT_I[146]=0
$COUNT_I[147]=0
$COUNT_I[148]=0
$COUNT_I[149]=0
$COUNT_I[150]=0
$COUNT_I[151]=0
$COUNT_I[152]=0
$COUNT_I[153]=0
$COUNT_I[154]=0
$COUNT_I[155]=0
$COUNT_I[156]=0
$COUNT_I[157]=0
$COUNT_I[158]=0
$COUNT_I[159]=0
$COUNT_I[160]=0
DECL BIN_TYPE $BIN_OUT[64] ;Binary Output configuration
$BIN_OUT[1]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[2]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[3]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[4]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[5]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[6]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[7]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[8]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[9]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[10]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[11]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[12]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[13]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[14]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[15]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[16]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[17]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[18]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[19]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[20]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[21]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[22]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[23]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[24]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[25]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[26]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[27]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[28]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[29]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[30]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[31]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[32]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[33]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[34]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[35]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[36]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[37]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[38]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[39]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[40]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[41]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[42]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[43]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[44]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[45]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[46]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[47]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[48]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[49]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[50]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[51]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[52]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[53]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[54]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[55]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[56]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[57]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[58]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[59]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[60]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[61]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[62]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[63]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_OUT[64]={F_BIT 1,LEN 0,PARITY #NONE}
DECL BIN_TYPE $BIN_IN[64] ;Binary Output configuration
$BIN_IN[1]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[2]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[3]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[4]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[5]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[6]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[7]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[8]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[9]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[10]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[11]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[12]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[13]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[14]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[15]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[16]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[17]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[18]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[19]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[20]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[21]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[22]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[23]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[24]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[25]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[26]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[27]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[28]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[29]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[30]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[31]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[32]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[33]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[34]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[35]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[36]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[37]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[38]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[39]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[40]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[41]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[42]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[43]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[44]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[45]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[46]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[47]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[48]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[49]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[50]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[51]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[52]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[53]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[54]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[55]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[56]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[57]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[58]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[59]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[60]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[61]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[62]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[63]={F_BIT 1,LEN 0,PARITY #NONE}
$BIN_IN[64]={F_BIT 1,LEN 0,PARITY #NONE}
INT $SYNCCMD_SIM=0 ;Simulation aller ProgSync und MotionSync Befehle fuer eine def. Steuerung
INT $SYNCLINESELECTMASK=0 ;erzwingt eine synchrone Statzanwahl auf Remote-Steuerung
INT $SPREADACTION=0 ;kennzeichnet die angegebenen Steuerungen als Verbund
BOOL $COLL_AVOID=FALSE ; COLL_AVOID
DECL COOP_UPDATE_T $COOP_UPDATE ;Kommunikation zwische WCD und TPBASIS
INT $TP_COOP_UPDATE=0 ;Kommunikation zwische CellMap und TPBASIS
INT $TP_WS_UPDATE=0 ;Kommunikation zwische workspace sharing und TPBASIS
DECL LDC_REACTION $LDC_CONFIG[128] ;Konfiguration der Lastdatenpruefung
$LDC_CONFIG[1]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[2]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[3]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[4]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[5]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[6]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[7]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[8]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[9]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[10]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[11]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[12]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[13]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[14]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[15]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[16]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[17]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[18]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[19]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[20]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[21]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[22]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[23]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[24]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[25]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[26]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[27]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[28]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[29]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[30]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[31]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[32]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[33]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[34]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[35]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[36]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[37]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[38]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[39]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[40]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[41]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[42]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[43]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[44]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[45]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[46]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[47]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[48]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[49]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[50]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[51]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[52]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[53]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[54]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[55]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[56]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[57]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[58]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[59]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[60]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[61]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[62]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[63]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[64]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[65]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[66]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[67]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[68]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[69]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[70]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[71]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[72]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[73]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[74]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[75]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[76]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[77]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[78]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[79]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[80]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[81]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[82]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[83]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[84]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[85]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[86]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[87]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[88]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[89]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[90]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[91]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[92]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[93]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[94]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[95]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[96]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[97]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[98]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[99]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[100]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[101]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[102]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[103]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[104]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[105]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[106]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[107]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[108]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[109]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[110]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[111]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[112]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[113]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[114]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[115]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[116]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[117]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[118]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[119]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[120]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[121]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[122]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[123]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[124]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[125]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[126]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[127]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
$LDC_CONFIG[128]={UNDERLOAD #WARNONLY,OVERLOAD #STOPROBOT}
ENDDAT

View File

@@ -0,0 +1,103 @@
&ACCESS RV$
&REL 8
&PARAM VERSION = 1.0.0
DEFDAT $MACHINE PUBLIC
SIGNAL $CRIT_PERI_ACK_REQ $IN[1026] ;Schalter zur Konfiguration der Bewegung kritischer Peripherie
SIGNAL $CRIT_PERI_ACK FALSE
CHAR $V_STEUMADA[32]
$V_STEUMADA[]="V1.0.0/KUKA8.3" ;VERSIONSKENNUNG
SIGNAL $MASTERINGTEST_REQ_EXT $IN[1026] ;TRUE = Referenzfahrt angefordert (extern)
SIGNAL $BRAKETEST_REQ_EX $IN[1026] ;TRUE = Bremsentest soll gestartet werden
SIGNAL $BRAKETEST_MONTIME FALSE
SIGNAL $MAINTENANCE_TO_PLC FALSE
SIGNAL $DRIVE_STOP_NOT_REQ $IN[1025] ;FALSE = Drehzahlstopp Anforderung
SIGNAL $BRAKETEST_REQ_INT FALSE
SIGNAL $BRAKETEST_WORK FALSE
SIGNAL $BRAKES_OK FALSE
SIGNAL $BRAKETEST_WARN FALSE
DECL EMSTOP_PATH $EMSTOP_PATH={T1 #ON,T2 #ON,AUT #ON,EX #ON} ;PROJEKTIERUNG DES BAHNTREUEN NOT-AUS FUER T1,T2,AUT,EX
SIGNAL $EXT_START $IN[3] ;EXTERNER START
SIGNAL $MOVE_ENABLE $IN[4] ;FAHRFREIGABE GESAMT
SIGNAL $RC_RDY1 $OUT[17] ;RC-BETRIEBSBEREIT 1
SIGNAL $SPOC_MOTION_ENABLE $OUT[1015] ; FAHRFREIGABE DURCH SAFETY CONTROLLER
SIGNAL $ALARM_STOP $OUT[1] ;NOT-STOP
SIGNAL $T1 $OUT[10] ;BETRIEBSART T1
SIGNAL $T2 $OUT[11] ;BETRIEBSART T2
SIGNAL $AUT $OUT[12] ;BETRIEBSART AUTOMATIK
SIGNAL $I_O_ACTCONF $OUT[18] ;E/A-SCHNITTSTELLE AKTIV QUITTUNG
SIGNAL $MODE_AUTO FALSE
SIGNAL $MODE_TEST FALSE
SIGNAL $LOCAL_NETWORK_OK FALSE
SIGNAL $COMPLETE_NETWORK_OK FALSE
SIGNAL $EXT $OUT[13] ;BETRIEBSART EXTERN
SIGNAL $STOPMESS $OUT[4] ;STOP-MELDUNG
SIGNAL $CONF_MESS $IN[5] ;EXTERNE QUITTUNG
SIGNAL $USER_SAF $OUT[2]
SIGNAL $PERI_RDY $OUT[3]
SIGNAL $IN_HOME $OUT[8] ;ROB IN HOMEPOSITION
SIGNAL $IN_HOME1 $OUT[49]
SIGNAL $IN_HOME2 $OUT[50]
SIGNAL $IN_HOME3 $OUT[51]
SIGNAL $IN_HOME4 $OUT[52]
SIGNAL $IN_HOME5 $OUT[53]
SIGNAL $DRIVES_ON $IN[7] ;ANTRIEBE EIN
SIGNAL $DRIVES_OFF $IN[6] ;ANTRIEBE ENABLE
SIGNAL $ON_PATH $OUT[9] ;ROB AUF BAHN
SIGNAL $PR_MODE $OUT[19] ;HAND/PROGRAMMIERMODUS
SIGNAL $SS_MODE $OUT[20] ;HAND/SINGLE-STEP
SIGNAL $ALARM_STOP_INTERN $OUT[1002] ;NOT-STOP INTERN
SIGNAL $WORKSTATE1 FALSE
SIGNAL $WORKSTATE2 FALSE
SIGNAL $WORKSTATE3 FALSE
SIGNAL $WORKSTATE4 FALSE
SIGNAL $WORKSTATE5 FALSE
SIGNAL $WORKSTATE6 FALSE
SIGNAL $WORKSTATE7 FALSE
SIGNAL $WORKSTATE8 FALSE
SIGNAL $CYLWORKSTATE1 FALSE
SIGNAL $CYLWORKSTATE2 FALSE
SIGNAL $CYLWORKSTATE3 FALSE
SIGNAL $CYLWORKSTATE4 FALSE
SIGNAL $CYLWORKSTATE5 FALSE
SIGNAL $CYLWORKSTATE6 FALSE
SIGNAL $CYLWORKSTATE7 FALSE
SIGNAL $CYLWORKSTATE8 FALSE
SIGNAL $AXWORKSTATE1 FALSE
SIGNAL $AXWORKSTATE2 FALSE
SIGNAL $AXWORKSTATE3 FALSE
SIGNAL $AXWORKSTATE4 FALSE
SIGNAL $AXWORKSTATE5 FALSE
SIGNAL $AXWORKSTATE6 FALSE
SIGNAL $AXWORKSTATE7 FALSE
SIGNAL $AXWORKSTATE8 FALSE
SIGNAL $DELTAWORKSTATE FALSE
SIGNAL $ASYNC_AX1_P $IN[1026]
SIGNAL $ASYNC_AX2_P $IN[1026]
SIGNAL $ASYNC_AX3_P $IN[1026]
SIGNAL $ASYNC_AX4_P $IN[1026]
SIGNAL $ASYNC_AX5_P $IN[1026]
SIGNAL $ASYNC_AX6_P $IN[1026]
SIGNAL $ASYNC_AX1_M $IN[1026]
SIGNAL $ASYNC_AX2_M $IN[1026]
SIGNAL $ASYNC_AX3_M $IN[1026]
SIGNAL $ASYNC_AX4_M $IN[1026]
SIGNAL $ASYNC_AX5_M $IN[1026]
SIGNAL $ASYNC_AX6_M $IN[1026]
SIGNAL $ZUST_ASYNC $IN[1026]
SIGNAL $NEAR_POSRET $OUT[14] ;ROBOTER IN TOLERANZFENSTER
SIGNAL $COLLISION FALSE
SIGNAL $COLLISION_STOP FALSE
SIGNAL $I_O_ACT $IN[1025] ;E/A-SCHNITTSTELLE AKTIV
SIGNAL $SAFEGATE_OP $IN[1025] ;SAFETY GATE ON PATH STOP
SIGNAL $MOVE_ENA_ACK FALSE
SIGNAL $COLL_ALARM FALSE
SIGNAL $COLL_ENABLE FALSE
SIGNAL $IMM_STOP $IN[1025] ;NOT-AUS VON DER SPS
SIGNAL $AUX_POWER $IN[1026] ;EXTERNE SPANNUNGSVERSORGUNG AKTIV
SIGNAL $T2_ENABLE $IN[1025] ;SAFETY-SPEED
REAL $FAN_FOLLOW_UP_TIME=5.00000 ;NACHLAUFZEIT FUER DIE FAN-ANSTEUERUNG
SIGNAL $ROB_STOPPED $OUT[1023] ;ROBOTER STEHT
SIGNAL $ROB_CAL $OUT[1001] ;ROBOTER SYNCHRON
SIGNAL $PRO_ACT $OUT[5] ;PROZESS AKTIV
SIGNAL $PRO_MOVE $OUT[1022] ;PROGRAMMBEWEGUNG AKTIV
ENDDAT

View File

@@ -0,0 +1,29 @@
&ACCESS RV$
&PARAM VERSION = 1.0.0
DEFDAT $OPTION PUBLIC
CHAR $V_OPTION[32]
$V_OPTION[]="V1.0.0/KUKA8.3" ;VERSIONSKENNUNG
BOOL $TECH_OPT=TRUE ;FUNKTIONSGENERATOR
BOOL $CONSIDER_DLIN_ENERGY=FALSE ;Energie bei DLIN-Planung beruecksichtigen
BOOL $TCP_IPO=TRUE ;GREIFERBEZOGENE INTERPOLATION
BOOL $SEP_ASYNC_OV=FALSE ;Schalter fuer asynchrone Hand-Overrides
BOOL $LOOP_CONT=FALSE
CHAR $LOOP_MSG[128]
BOOL $IDENT_OPT=TRUE
INT $SINGUL_STRATEGY=0 ;0=NONE, 1=APPROX
BOOL $MOT_STOP_OPT=FALSE ;AKTIVIERUNG "BLOCK EXTERNAL START"
BOOL $CHCK_MOVENA=TRUE ;AB-UND EINSCHALTEN DER UEBERPRUEFUNG DER EINGANGSNUMMER VON $MOVE_ENABLE
BOOL $COLLISAVOID=FALSE ;
BOOL $MOTIONCOOP=FALSE ;
BOOL $PROGCOOP=FALSE ;
BOOL $T2_OV_REDUCE=TRUE ;TRUE = Overridereduzierung auf 10 % in Mode T2
BOOL $VAR_TCP_IPO=FALSE
BOOL $SPL_VEL_MODE_OPT=TRUE ; Defaulteinstellung fuer $SPL_VEL_MODE
INT $SPL_PTP_PARA_OPT=2 ; Defaulteinstellung fuer PTP-Spline Parametrisierung
BOOL $IMPROVEDMIXEDBLENDING=TRUE ; verbessertes gemischtes Ueberschleifen
BOOL $IMPROVEDSPLINEGEOMETRY=TRUE ;verbesserte Spline Geometrie
DECL STEP_ENUM $SPL_MIXEDBLENDING_OPT=#STEP2 ;Optimierungen des gemischten Ueberschleifens im Spline
DECL INSTALLED_MOTION_MODES $INSTALLED_MOTION_MODES={PATH FALSE,DYNAMIC FALSE,ECO FALSE} ;Motion modes are subject to charges! Do not set manually to true.
CHAR $MAX_XROB_VERS[32] ;Hoechste zu verwendende Version des XROB-Absolutgenauigkeitsmodells
$MAX_XROB_VERS[]="4.2" ;="Major.Minor"
ENDDAT

107
KUKA/Modifications.xml Normal file
View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<Folder OriginalName="" CurrentName="" Type="None" OriginalPath="">
<Folder OriginalName="KRC" CurrentName="KRC:" Type="None" OriginalPath="KRC:\">
<Folder OriginalName="R1" CurrentName="R1" Type="None" OriginalPath="KRC:\R1">
<Folder OriginalName="KUKA" CurrentName="KUKA" Type="None" OriginalPath="KRC:\R1\KUKA">
<File OriginalName="CollDetect_UserAction.dat" CurrentName="CollDetect_UserAction.dat" Type="None" OriginalPath="KRC:\R1\KUKA\CollDetect_UserAction.dat" OriginalChecksum="525fb8ceb628df9818e433edf1e6f1bf" CurrentChecksum="525fb8ceb628df9818e433edf1e6f1bf" />
<File OriginalName="CollDetect_UserAction.src" CurrentName="CollDetect_UserAction.src" Type="None" OriginalPath="KRC:\R1\KUKA\CollDetect_UserAction.src" OriginalChecksum="66e63c582463d895b3c02d3a038a6672" CurrentChecksum="66e63c582463d895b3c02d3a038a6672" />
<File OriginalName="masref_user.dat" CurrentName="masref_user.dat" Type="None" OriginalPath="KRC:\R1\KUKA\masref_user.dat" OriginalChecksum="f67ff606ea52204705eb1141cf7808a2" CurrentChecksum="f67ff606ea52204705eb1141cf7808a2" />
<File OriginalName="masref_user.src" CurrentName="masref_user.src" Type="None" OriginalPath="KRC:\R1\KUKA\masref_user.src" OriginalChecksum="a78246b787ecdb0d82dc7e0181ae9159" CurrentChecksum="a78246b787ecdb0d82dc7e0181ae9159" />
</Folder>
<Folder OriginalName="Mada" CurrentName="Mada" Type="None" OriginalPath="KRC:\R1\Mada">
<File OriginalName="$machine.dat" CurrentName="$machine.dat" Type="None" OriginalPath="KRC:\R1\Mada\$machine.dat" OriginalChecksum="a6d2cc938e2a1ef1ef3017affa67f2de" CurrentChecksum="a6d2cc938e2a1ef1ef3017affa67f2de" />
<File OriginalName="$robcor.dat" CurrentName="$robcor.dat" Type="None" OriginalPath="KRC:\R1\Mada\$robcor.dat" OriginalChecksum="b016257e7ddafcec6947463b0b21adff" CurrentChecksum="b016257e7ddafcec6947463b0b21adff" />
</Folder>
<Folder OriginalName="Program" CurrentName="Program" Type="None" OriginalPath="KRC:\R1\Program">
<Folder OriginalName="Grip" CurrentName="Grip" Type="None" OriginalPath="KRC:\R1\Program\Grip">
<File OriginalName="GripClose.src" CurrentName="GripClose.src" Type="None" OriginalPath="KRC:\R1\Program\Grip\GripClose.src" OriginalChecksum="515576abd3bed6643921712f74c40398" CurrentChecksum="515576abd3bed6643921712f74c40398" />
<File OriginalName="GripOpen.src" CurrentName="GripOpen.src" Type="None" OriginalPath="KRC:\R1\Program\Grip\GripOpen.src" OriginalChecksum="2f43186412afa7640a5063bdbc8327c9" CurrentChecksum="2f43186412afa7640a5063bdbc8327c9" />
</Folder>
<Folder OriginalName="Home" CurrentName="Home" Type="None" OriginalPath="KRC:\R1\Program\Home">
<File OriginalName="HomeModule.dat" CurrentName="HomeModule.dat" Type="None" OriginalPath="KRC:\R1\Program\Home\HomeModule.dat" OriginalChecksum="e1cdb53da7936d066fa7ba26f287260d" CurrentChecksum="e1cdb53da7936d066fa7ba26f287260d" />
<File OriginalName="HomeModule.src" CurrentName="HomeModule.src" Type="None" OriginalPath="KRC:\R1\Program\Home\HomeModule.src" OriginalChecksum="595fe373cf05f593fe99ea18621b695b" CurrentChecksum="595fe373cf05f593fe99ea18621b695b" />
</Folder>
<Folder OriginalName="Mylib" CurrentName="Mylib" Type="None" OriginalPath="KRC:\R1\Program\Mylib">
<File OriginalName="Initmove.src" CurrentName="Initmove.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\Initmove.src" OriginalChecksum="7ad76e14bd6f62a6a1d15f79e8bccbe6" CurrentChecksum="7ad76e14bd6f62a6a1d15f79e8bccbe6" />
<File OriginalName="INT_TO_STR.src" CurrentName="INT_TO_STR.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\INT_TO_STR.src" OriginalChecksum="646cdf41c243fc31ba6e305a02dc2351" CurrentChecksum="646cdf41c243fc31ba6e305a02dc2351" />
<File OriginalName="OffsetByBase.src" CurrentName="OffsetByBase.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\OffsetByBase.src" OriginalChecksum="ef740ebd42dbb3f0124a5c22a1f00154" CurrentChecksum="ef740ebd42dbb3f0124a5c22a1f00154" />
<File OriginalName="OffsetByTool.src" CurrentName="OffsetByTool.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\OffsetByTool.src" OriginalChecksum="389f847e2c2ddac716192ad378ee4721" CurrentChecksum="389f847e2c2ddac716192ad378ee4721" />
<File OriginalName="REAL_TO_Output.src" CurrentName="REAL_TO_Output.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\REAL_TO_Output.src" OriginalChecksum="0be03b9bb12a8f6a384c1d17c9c0e13b" CurrentChecksum="0be03b9bb12a8f6a384c1d17c9c0e13b" />
<File OriginalName="REAL_TO_STR.src" CurrentName="REAL_TO_STR.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\REAL_TO_STR.src" OriginalChecksum="635d9acbc7b60201068468750e81c849" CurrentChecksum="635d9acbc7b60201068468750e81c849" />
<File OriginalName="CheckInPos.src" CurrentName="CheckInPos.src" Type="None" OriginalPath="KRC:\R1\Program\Mylib\CheckInPos.src" OriginalChecksum="a4a92fd5053ad106fb6652d7f460f2d4" CurrentChecksum="a4a92fd5053ad106fb6652d7f460f2d4" />
</Folder>
<Folder OriginalName="PL" CurrentName="PL" Type="None" OriginalPath="KRC:\R1\Program\PL">
<File OriginalName="FeedBelt1Pick.dat" CurrentName="FeedBelt1Pick.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\FeedBelt1Pick.dat" OriginalChecksum="80ee14183b9bf2e108f163aaf1414549" CurrentChecksum="80ee14183b9bf2e108f163aaf1414549" />
<File OriginalName="FeedBelt1Pick.src" CurrentName="FeedBelt1Pick.src" Type="None" OriginalPath="KRC:\R1\Program\PL\FeedBelt1Pick.src" OriginalChecksum="843b2d84122a384e169ef660b907d573" CurrentChecksum="843b2d84122a384e169ef660b907d573" />
<File OriginalName="FeedBelt2Pick.dat" CurrentName="FeedBelt2Pick.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\FeedBelt2Pick.dat" OriginalChecksum="0bb6d2212e6b5fd8395592432599760c" CurrentChecksum="0bb6d2212e6b5fd8395592432599760c" />
<File OriginalName="FeedBelt2Pick.src" CurrentName="FeedBelt2Pick.src" Type="None" OriginalPath="KRC:\R1\Program\PL\FeedBelt2Pick.src" OriginalChecksum="83c35da000d384f9729eca03fe7a9878" CurrentChecksum="83c35da000d384f9729eca03fe7a9878" />
<File OriginalName="NgBeltPlace.dat" CurrentName="NgBeltPlace.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\NgBeltPlace.dat" OriginalChecksum="cd6c1b64ac4e5fb68ad3c35581b0279c" CurrentChecksum="cd6c1b64ac4e5fb68ad3c35581b0279c" />
<File OriginalName="NgBeltPlace.src" CurrentName="NgBeltPlace.src" Type="None" OriginalPath="KRC:\R1\Program\PL\NgBeltPlace.src" OriginalChecksum="0d66063b40d8bb9a642953fbbbe536c5" CurrentChecksum="0d66063b40d8bb9a642953fbbbe536c5" />
<File OriginalName="Pallet1Place.dat" CurrentName="Pallet1Place.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\Pallet1Place.dat" OriginalChecksum="4884cd7a5fc72d96fa9594d216bfa17a" CurrentChecksum="4884cd7a5fc72d96fa9594d216bfa17a" />
<File OriginalName="Pallet1Place.src" CurrentName="Pallet1Place.src" Type="None" OriginalPath="KRC:\R1\Program\PL\Pallet1Place.src" OriginalChecksum="25e20450bdd213ff1fd395331572bc9d" CurrentChecksum="25e20450bdd213ff1fd395331572bc9d" />
<File OriginalName="Pallet2Place.dat" CurrentName="Pallet2Place.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\Pallet2Place.dat" OriginalChecksum="8c318a64a7d2ff7a05bd4cf867daa98a" CurrentChecksum="8c318a64a7d2ff7a05bd4cf867daa98a" />
<File OriginalName="Pallet2Place.src" CurrentName="Pallet2Place.src" Type="None" OriginalPath="KRC:\R1\Program\PL\Pallet2Place.src" OriginalChecksum="054aec9dc299b6ba959b0af4a3f8dd5a" CurrentChecksum="054aec9dc299b6ba959b0af4a3f8dd5a" />
<File OriginalName="PosBase.dat" CurrentName="PosBase.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\PosBase.dat" OriginalChecksum="6bb2b5b37146dcb80ac4fde52070247b" CurrentChecksum="6bb2b5b37146dcb80ac4fde52070247b" />
<File OriginalName="ReFeedBeltPick.dat" CurrentName="ReFeedBeltPick.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\ReFeedBeltPick.dat" OriginalChecksum="32334f6612b59e5e51f5660abb52bc61" CurrentChecksum="32334f6612b59e5e51f5660abb52bc61" />
<File OriginalName="ReFeedBeltPick.src" CurrentName="ReFeedBeltPick.src" Type="None" OriginalPath="KRC:\R1\Program\PL\ReFeedBeltPick.src" OriginalChecksum="c75737d6cedc50c965d169b75a957de5" CurrentChecksum="c75737d6cedc50c965d169b75a957de5" />
<File OriginalName="WaterBeltPick.dat" CurrentName="WaterBeltPick.dat" Type="None" OriginalPath="KRC:\R1\Program\PL\WaterBeltPick.dat" OriginalChecksum="a4dce7c3b2908fb1e63976a018aab475" CurrentChecksum="a4dce7c3b2908fb1e63976a018aab475" />
<File OriginalName="WaterBeltPick.src" CurrentName="WaterBeltPick.src" Type="None" OriginalPath="KRC:\R1\Program\PL\WaterBeltPick.src" OriginalChecksum="23a7cb96dbc926fc70de395cd7e061dd" CurrentChecksum="23a7cb96dbc926fc70de395cd7e061dd" />
</Folder>
<Folder OriginalName="TP" CurrentName="TP" Type="None" OriginalPath="KRC:\R1\Program\TP">
<File OriginalName="TestModule.dat" CurrentName="TestModule.dat" Type="None" OriginalPath="KRC:\R1\Program\TP\TestModule.dat" OriginalChecksum="73fb2fd3f59f35130a5a4faba51f9787" CurrentChecksum="73fb2fd3f59f35130a5a4faba51f9787" />
<File OriginalName="TestModule.src" CurrentName="TestModule.src" Type="None" OriginalPath="KRC:\R1\Program\TP\TestModule.src" OriginalChecksum="a50e73c1c034bf9c36ba50942d524146" CurrentChecksum="a50e73c1c034bf9c36ba50942d524146" />
</Folder>
<File OriginalName="ActionReturn.src" CurrentName="ActionReturn.src" Type="None" OriginalPath="KRC:\R1\Program\ActionReturn.src" OriginalChecksum="3b7ea0d927814bda90401a3671b6efa9" CurrentChecksum="3b7ea0d927814bda90401a3671b6efa9" />
<File OriginalName="Config.dat" CurrentName="Config.dat" Type="None" OriginalPath="KRC:\R1\Program\Config.dat" OriginalChecksum="087530c4c809b7abdd208a824e32bce1" CurrentChecksum="087530c4c809b7abdd208a824e32bce1" />
<File OriginalName="MainModule.dat" CurrentName="MainModule.dat" Type="None" OriginalPath="KRC:\R1\Program\MainModule.dat" OriginalChecksum="4776fe0191d16db190dc94ab5686ca57" CurrentChecksum="4776fe0191d16db190dc94ab5686ca57" />
<File OriginalName="MainModule.src" CurrentName="MainModule.src" Type="None" OriginalPath="KRC:\R1\Program\MainModule.src" OriginalChecksum="99287dc9ae739811ad9eabbdf0de9b57" CurrentChecksum="99287dc9ae739811ad9eabbdf0de9b57" />
<File OriginalName="SignalIO.dat" CurrentName="SignalIO.dat" Type="None" OriginalPath="KRC:\R1\Program\SignalIO.dat" OriginalChecksum="dfe2df15b3f5150d1e890507d685a0a2" CurrentChecksum="dfe2df15b3f5150d1e890507d685a0a2" />
</Folder>
<Folder OriginalName="System" CurrentName="System" Type="None" OriginalPath="KRC:\R1\System">
<File OriginalName="$config.dat" CurrentName="$config.dat" Type="None" OriginalPath="KRC:\R1\System\$config.dat" OriginalChecksum="2004cbaeeadd8fb010085babd25ac2b9" CurrentChecksum="2004cbaeeadd8fb010085babd25ac2b9" />
<File OriginalName="bas.src" CurrentName="bas.src" Type="None" OriginalPath="KRC:\R1\System\bas.src" OriginalChecksum="6208846cbb3162dc70f79e924a705b32" CurrentChecksum="6208846cbb3162dc70f79e924a705b32" />
<File OriginalName="collmonlib.dat" CurrentName="collmonlib.dat" Type="None" OriginalPath="KRC:\R1\System\collmonlib.dat" OriginalChecksum="984b722e665de4e0594a259e9c250552" CurrentChecksum="984b722e665de4e0594a259e9c250552" />
<File OriginalName="collmonlib.src" CurrentName="collmonlib.src" Type="None" OriginalPath="KRC:\R1\System\collmonlib.src" OriginalChecksum="a51a060c8c31b7a274667f023cd031e8" CurrentChecksum="a51a060c8c31b7a274667f023cd031e8" />
<File OriginalName="Global_Points.dat" CurrentName="Global_Points.dat" Type="None" OriginalPath="KRC:\R1\System\Global_Points.dat" OriginalChecksum="3f5487667627d201746ee8d57b9300d4" CurrentChecksum="3f5487667627d201746ee8d57b9300d4" />
<File OriginalName="ir_stopm.src" CurrentName="ir_stopm.src" Type="None" OriginalPath="KRC:\R1\System\ir_stopm.src" OriginalChecksum="3991d21dcf3fb403f09a3f67574fece6" CurrentChecksum="3991d21dcf3fb403f09a3f67574fece6" />
<File OriginalName="masref_main.dat" CurrentName="masref_main.dat" Type="None" OriginalPath="KRC:\R1\System\masref_main.dat" OriginalChecksum="1bb5d06ccb2b89ecda13ff7b7d69fc69" CurrentChecksum="1bb5d06ccb2b89ecda13ff7b7d69fc69" />
<File OriginalName="masref_main.src" CurrentName="masref_main.src" Type="None" OriginalPath="KRC:\R1\System\masref_main.src" OriginalChecksum="0bf966476bc5a47eba933e80b15733ad" CurrentChecksum="0bf966476bc5a47eba933e80b15733ad" />
<File OriginalName="MqttConfig.dat" CurrentName="MqttConfig.dat" Type="None" OriginalPath="KRC:\R1\System\MqttConfig.dat" OriginalChecksum="5c0344fca2007755a77cce000ea1adde" CurrentChecksum="5c0344fca2007755a77cce000ea1adde" />
<File OriginalName="MsgLib.dat" CurrentName="MsgLib.dat" Type="None" OriginalPath="KRC:\R1\System\MsgLib.dat" OriginalChecksum="41b47238c5c391cb2e0dffad9ba5641f" CurrentChecksum="41b47238c5c391cb2e0dffad9ba5641f" />
<File OriginalName="MsgLib.src" CurrentName="MsgLib.src" Type="None" OriginalPath="KRC:\R1\System\MsgLib.src" OriginalChecksum="b2e67e9f2a364568cdc36dafbabfe5c4" CurrentChecksum="b2e67e9f2a364568cdc36dafbabfe5c4" />
<File OriginalName="sps.sub" CurrentName="sps.sub" Type="None" OriginalPath="KRC:\R1\System\sps.sub" OriginalChecksum="8b0233bab85a94dbb5a6b2c9e091fa84" CurrentChecksum="8b0233bab85a94dbb5a6b2c9e091fa84" />
</Folder>
<Folder OriginalName="TP" CurrentName="TP" Type="None" OriginalPath="KRC:\R1\TP">
<Folder OriginalName="BrakeTest" CurrentName="BrakeTest" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest">
<File OriginalName="BrakeTestAxes.dat" CurrentName="BrakeTestAxes.dat" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestAxes.dat" OriginalChecksum="afb4da69e365f8e7c97ae9955fe31c88" CurrentChecksum="afb4da69e365f8e7c97ae9955fe31c88" />
<File OriginalName="BrakeTestAxes.src" CurrentName="BrakeTestAxes.src" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestAxes.src" OriginalChecksum="32b4a97956306e60dc01e755dd60401c" CurrentChecksum="32b4a97956306e60dc01e755dd60401c" />
<File OriginalName="BrakeTestBack.dat" CurrentName="BrakeTestBack.dat" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestBack.dat" OriginalChecksum="8ca66738dc9d32e457971bdb69021496" CurrentChecksum="8ca66738dc9d32e457971bdb69021496" />
<File OriginalName="BrakeTestBack.src" CurrentName="BrakeTestBack.src" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestBack.src" OriginalChecksum="d54d5bf10a2c0cd62df368c96fe01ece" CurrentChecksum="d54d5bf10a2c0cd62df368c96fe01ece" />
<File OriginalName="BrakeTestPark.dat" CurrentName="BrakeTestPark.dat" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestPark.dat" OriginalChecksum="855dd9a3fbeece7656ebef7cb89c52dc" CurrentChecksum="855dd9a3fbeece7656ebef7cb89c52dc" />
<File OriginalName="BrakeTestPark.src" CurrentName="BrakeTestPark.src" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestPark.src" OriginalChecksum="0af88332ce0fefb0a9e558526927a6a3" CurrentChecksum="0af88332ce0fefb0a9e558526927a6a3" />
<File OriginalName="BrakeTestReq.dat" CurrentName="BrakeTestReq.dat" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestReq.dat" OriginalChecksum="081ed4cf4cc222b65aa11103162acdb3" CurrentChecksum="081ed4cf4cc222b65aa11103162acdb3" />
<File OriginalName="BrakeTestReq.src" CurrentName="BrakeTestReq.src" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestReq.src" OriginalChecksum="caa9a554f588e8479ecbbfd3e94ce200" CurrentChecksum="caa9a554f588e8479ecbbfd3e94ce200" />
<File OriginalName="BrakeTestStart.dat" CurrentName="BrakeTestStart.dat" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestStart.dat" OriginalChecksum="004198a1a87e50ec3d26591772bdc22d" CurrentChecksum="004198a1a87e50ec3d26591772bdc22d" />
<File OriginalName="BrakeTestStart.src" CurrentName="BrakeTestStart.src" Type="None" OriginalPath="KRC:\R1\TP\BrakeTest\BrakeTestStart.src" OriginalChecksum="2872134dcf6bc698ce343dd84c4c6ed5" CurrentChecksum="2872134dcf6bc698ce343dd84c4c6ed5" />
</Folder>
<Folder OriginalName="EthernetKRL" CurrentName="EthernetKRL" Type="None" OriginalPath="KRC:\R1\TP\EthernetKRL">
<File OriginalName="EthernetKRL.dat" CurrentName="EthernetKRL.dat" Type="None" OriginalPath="KRC:\R1\TP\EthernetKRL\EthernetKRL.dat" OriginalChecksum="dbbb7b7928542c37a2211b2acc8ff2aa" CurrentChecksum="dbbb7b7928542c37a2211b2acc8ff2aa" />
<File OriginalName="EthernetKRL.src" CurrentName="EthernetKRL.src" Type="None" OriginalPath="KRC:\R1\TP\EthernetKRL\EthernetKRL.src" OriginalChecksum="b1d8270052d1185c9fa41cb993a7162c" CurrentChecksum="b1d8270052d1185c9fa41cb993a7162c" />
<File OriginalName="EthernetKRL_USER.src" CurrentName="EthernetKRL_USER.src" Type="None" OriginalPath="KRC:\R1\TP\EthernetKRL\EthernetKRL_USER.src" OriginalChecksum="3031f4efb4be48beacf547c180c0acac" CurrentChecksum="3031f4efb4be48beacf547c180c0acac" />
</Folder>
<File OriginalName="p00.dat" CurrentName="p00.dat" Type="None" OriginalPath="KRC:\R1\TP\p00.dat" OriginalChecksum="976925778011f82c7cae80d6e287eeb1" CurrentChecksum="976925778011f82c7cae80d6e287eeb1" />
<File OriginalName="p00.src" CurrentName="p00.src" Type="None" OriginalPath="KRC:\R1\TP\p00.src" OriginalChecksum="ead0efefbde68dcceac4e3479ab671eb" CurrentChecksum="ead0efefbde68dcceac4e3479ab671eb" />
<File OriginalName="Signals.dat" CurrentName="Signals.dat" Type="None" OriginalPath="KRC:\R1\TP\Signals.dat" OriginalChecksum="7c23e2e5347474611b59961e02dba2f0" CurrentChecksum="7c23e2e5347474611b59961e02dba2f0" />
</Folder>
<File OriginalName="cell.src" CurrentName="cell.src" Type="None" OriginalPath="KRC:\R1\cell.src" OriginalChecksum="3e132389c72da99a3bf85da49dd451c8" CurrentChecksum="3e132389c72da99a3bf85da49dd451c8" />
</Folder>
<Folder OriginalName="STEU" CurrentName="STEU" Type="None" OriginalPath="KRC:\STEU">
<Folder OriginalName="Mada" CurrentName="Mada" Type="None" OriginalPath="KRC:\STEU\Mada">
<File OriginalName="$custom.dat" CurrentName="$custom.dat" Type="None" OriginalPath="KRC:\STEU\Mada\$custom.dat" OriginalChecksum="f087df76bcdb3ee7916d584906a8e28a" CurrentChecksum="f087df76bcdb3ee7916d584906a8e28a" />
<File OriginalName="$machine.dat" CurrentName="$machine.dat" Type="None" OriginalPath="KRC:\STEU\Mada\$machine.dat" OriginalChecksum="d3a507bd6698aecb01eedbeaaad269e2" CurrentChecksum="d3a507bd6698aecb01eedbeaaad269e2" />
<File OriginalName="$option.dat" CurrentName="$option.dat" Type="None" OriginalPath="KRC:\STEU\Mada\$option.dat" OriginalChecksum="b14809a4ed34d4fd3ace9e88f982729c" CurrentChecksum="b14809a4ed34d4fd3ace9e88f982729c" />
</Folder>
<File OriginalName="$config.dat" CurrentName="$config.dat" Type="None" OriginalPath="KRC:\STEU\$config.dat" OriginalChecksum="bb819252e2bd4be741415f13f83eba3f" CurrentChecksum="bb819252e2bd4be741415f13f83eba3f" />
</Folder>
</Folder>
</Folder>

53
KUKA/actions.log Normal file
View File

@@ -0,0 +1,53 @@
Repository '810169497(PCRC-3HXLTUHYM6)', 'D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)'
====================================================================================================
2026-02-05 03:19:10.654 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Mylib\CheckPosArea.src
2026-02-05 03:19:10.692 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Mylib
2026-02-05 03:20:11.856 下午 | DELETED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Mylib\CheckPosArea.src
2026-02-05 03:20:11.940 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Mylib
2026-02-05 03:21:08.416 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:08.433 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:08.433 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:08.433 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:23.788 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:23.807 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:23.807 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:23.807 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:21:51.851 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Config.dat
2026-02-05 03:21:51.863 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Config.dat
2026-02-05 03:21:51.863 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Config.dat
2026-02-05 03:21:51.863 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\Config.dat
2026-02-05 03:22:27.575 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\ActionReturn.src
2026-02-05 03:22:27.586 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\ActionReturn.src
2026-02-05 03:22:27.586 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\ActionReturn.src
2026-02-05 03:22:27.587 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\ActionReturn.src
2026-02-05 03:23:13.336 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:23:13.352 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:23:13.352 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:23:13.352 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt1Pick.src
2026-02-05 03:23:48.803 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt2Pick.src
2026-02-05 03:23:48.819 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt2Pick.src
2026-02-05 03:23:48.819 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt2Pick.src
2026-02-05 03:23:48.819 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\FeedBelt2Pick.src
2026-02-05 03:23:48.819 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\NgBeltPlace.src
2026-02-05 03:23:48.820 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\NgBeltPlace.src
2026-02-05 03:23:48.820 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\NgBeltPlace.src
2026-02-05 03:23:48.820 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\NgBeltPlace.src
2026-02-05 03:24:02.210 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet1Place.src
2026-02-05 03:24:02.226 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet1Place.src
2026-02-05 03:24:02.226 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet1Place.src
2026-02-05 03:24:02.227 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet1Place.src
2026-02-05 03:24:37.067 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet2Place.src
2026-02-05 03:24:37.082 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet2Place.src
2026-02-05 03:24:37.082 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet2Place.src
2026-02-05 03:24:37.082 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\Pallet2Place.src
2026-02-05 03:24:37.082 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\ReFeedBeltPick.src
2026-02-05 03:24:37.082 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\ReFeedBeltPick.src
2026-02-05 03:24:37.082 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\ReFeedBeltPick.src
2026-02-05 03:24:37.083 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\ReFeedBeltPick.src
2026-02-05 03:24:37.083 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\WaterBeltPick.src
2026-02-05 03:24:37.083 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\WaterBeltPick.src
2026-02-05 03:24:37.083 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\WaterBeltPick.src
2026-02-05 03:24:37.083 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\KRC\R1\Program\PL\WaterBeltPick.src
2026-02-05 03:25:29.120 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\Modifications.xml
2026-02-05 03:25:29.120 下午 | CHANGED | D:\系统文件\文档\WorkVisual 6.0\Repositories\810169497(PCRC-3HXLTUHYM6)\Modifications.xml

View File

@@ -1,20 +1,85 @@
# 6040-003
### 机器人命令程序号
# 电芯尺寸范围
长度120mm-330mm
宽度18mm-90mm
高度75mm-250mm
# 待办工作
- [ ] 轴功能块和触摸屏心跳,防止JOG过程中HMI掉线
- [x] 轴掉线后无法复位
- [x] 增广功能块验证,功能块基本OK增广回零完成finish4没有给脉冲
- [ ] kuka功能块验证
- [x] 其他工位HMI IO显示
- [x] 轴画面不能设负数
- [x] 界面少在原位标志
- [x] 机器人程序增加中断保护,防止撞击,
- [x] 机器人放料前检测下方是否有电池
- [x] 伺服手动页面可以直接跳转到伺服参数页面
- [x] 伺服手动页面增加皮带测试按钮
- [x] 调试NG下料拉带程序
- [x] 调试水份上线拉带程序
- [x] 调试复投上线程序
- [x] 机器人所有取放位置都要使用偏移计算,一键换型
- [x] 机器人基准点放在独立Data文件中
- [x] 机器人程序优化,判断计数不等不要用内部变量,用反馈的PLC的计数
- [ ] 抓取位完光电判断报警
## 设备动作说明
### 上料机器人
- 机器人从来料拉带取电池放到夹具上如果扫码失败放到NG拉带
- 夹具到位后上位机告诉PLC是空夹具还是有电池并且告诉PLC假电池位置
- 如果夹具已经有电池,是重新放假电池,直接等待放假电池
- 如果夹具是空的,一个一个上电池
- 优先放假电池,其次放来料拉带电池,都不满足条件才取复投拉带电池
### 下料机器人
- 夹具到位后上位机告诉PLC是取假电池还是正常下料并告诉假电池位置
- 如果是取假电池,只取一个假电池放到水份检测拉带,取完假电池,通知上位机下料完成,由上位机安排堆垛机将夹具取走
- 如果是正常下料,除了假电池位置,其他电池依次取出放到下料拉带上,下料完成后,通知上位机下料完成,由上位机安排堆垛机将夹具取走
## 机器人命令程序号
### 上料机器人
|名称|主程序号|电池位置XY
| :-------------------: | :---------------------: | :---------------------: |
|来料1取料|1|
|来料2取料|2|
|复投取料|3|
|水份取料|4|
|NG拉带放料|5|
|夹具1放料|10|0..9,0..99|
|夹具2放料|11|0..9,0..99|
### 下料机器人
|名称|主程序号|电池位置XY
| :-------------------: | :---------------------: | :---------------------: |
|下料拉带放料|1|
|水份拉带放料|2|
|夹具1取料|6|0..9,0..99|
|夹具2取料|7|0..9,0..99|
## PLC内部程序号
- 组合逻辑:百位是取料程序号,个位十位是放料程序号
|名称|程序号|
| :-------------------: | :---------------------: |
|来料1去NG拉带|1|
|来料2去NG拉带|2|
|||
|||
|来料1去夹具1|101-148|
|来料2去夹具1|201-248|
|来料1去夹具2|301-348|
|来料2去夹具2|401-448|
|||
|||
|复投去夹具1|501-548|
|复投去夹具2|601-648|
|水份去夹具1|701-748|
|水份去夹具2|801-848|
|来料1去NG拉带|105|
|来料2去NG拉带|205|
|来料1去夹具1|110|
|来料2去夹具1|210|
|来料1去夹具2|111|
|来料2去夹具2|211|
|复投去夹具1|310|
|复投去夹具2|311|
|水份去夹具1|410|
|水份去夹具2|411|

BIN
doc/6040-003上下料.pdf Normal file

Binary file not shown.

BIN
doc/DM3C-EC882AC.pdf Normal file

Binary file not shown.

BIN
doc/IP地址规划.xlsx Normal file

Binary file not shown.

335
doc/KRC5EtherNetIP.eds Normal file
View File

@@ -0,0 +1,335 @@
$ EZ-EDS Version 3.25.1.20181218 Generated Electronic Data Sheet
$ Modified by molex
[File]
DescText = "EthernetIP Scanner/Adapter KRC5";
CreateDate = 07-11-2011;
CreateTime = 16:52:29;
ModDate = 12-07-2020;
ModTime = 15:12:16;
Revision = 2.3;
HomeURL = " ";
[Device]
VendCode = 121;
VendName = "KUKA Deutschland GmbH";
ProdType = 12;
ProdTypeStr = "Communications Adapter";
ProdCode = 3;
MajRev = 5;
MinRev = 1;
ProdName = "KR C5 - EtherNet/IP";
Catalog = "KRC";
Icon = "Kuka.ico";
[Device Classification]
Class1 = EtherNetIP;
[Params]
Param1 =
0, $ reserved, shall equal 0
,, $ Link Path Size, Link Path
0x0000, $ Descriptor
0xC7, $ Data Type
2, $ Data Size in bytes
"OT Size", $ name
"Bytes", $ units
"OT Size", $ help string
1,509,256, $ min, max, default data values
,,,, $ mult, div, base, offset scaling
,,,, $ mult, div, base, offset links
; $ decimal places
Param2 =
0, $ reserved, shall equal 0
,, $ Link Path Size, Link Path
0x0000, $ Descriptor
0xC7, $ Data Type
2, $ Data Size in bytes
"TO Size", $ name
"Bytes", $ units
"TO Size", $ help string
1,505,256, $ min, max, default data values
,,,, $ mult, div, base, offset scaling
,,,, $ mult, div, base, offset links
; $ decimal places
Param6 =
0, $ reserved, shall equal 0
,, $ Link Path Size, Link Path
0x0010, $ Descriptor
0xC8, $ Data Type
4, $ Data Size in bytes
"RPI Adapter", $ name
"", $ units
"RPI constrains for Adapter", $ help string
4000,5000000,4000, $ min, max, default data values
,,,, $ mult, div, base, offset scaling
,,,, $ mult, div, base, offset links
; $ decimal places
[Assembly]
Object_Name = "Assembly Object";
Object_Class_Code = 0x04;
Assem1 =
"OT Data",
,
,
0x0001,
,,
4040,;
Assem2 =
"TO Data",
,
,
0x0001,
,,
4072,;
[Connection Manager]
Revision = 1;
Object_Name = "Connection Manager Object";
Object_Class_Code = 0x06;
MaxInst = 1;
Number_Of_Static_Instances = 1;
Max_Number_Of_Dynamic_Instances = 0;
Connection1 =
0x04030002, $ 0-15 = supported transport classes
$ 16 = trigger: cyclic
$ 17 = trigger: change of state
$ 18 = trigger: application
$ 19-23 = trigger: reserved
$ 24 = application type: listen-only
$ 25 = application type: input-only
$ 26 = application type: exclusive-owner
$ 27 = application type: redundant-owner
$ 28-30 = reserved
$ 31 = Direction: Client = 0 / Server = 1
0x66740405, $ 0 = O->T fixed size supported
$ 1 = O->T variable size supported
$ 2 = T->O fixed size supported
$ 3 = T->O variable size supported
$ 4-5 = O->T number of bytes per slot (obsolete)
$ 6-7 = T->O number of bytes per slot (obsolete)
$ 8-10 = O->T Real time transfer format
$ 11 = reserved
$ 12-14 = T->O Real time transfer format
$ 15 = reserved
$ 16 = O->T connection type: NULL
$ 17 = O->T connection type: MULTICAST
$ 18 = O->T connection type: POINT2POINT
$ 19 = O->T connection type: reserved
$ 20 = T->O connection type: NULL
$ 21 = T->O connection type: MULTICAST
$ 22 = T->O connection type: POINT2POINT
$ 23 = T->O connection type: reserved
$ 24 = O->T priority: LOW
$ 25 = O->T priority: HIGH
$ 26 = O->T priority: SCHEDULED
$ 27 = O->T priority: reserved
$ 28 = T->O priority: LOW
$ 29 = T->O priority: HIGH
$ 30 = T->O priority: SCHEDULED
$ 31 = T->O priority: reserved
Param6,Param1,Assem1, $ O->T RPI, size, format
Param6,Param2,Assem2, $ T->O RPI, size, format
,, $ proxy config size, format
,, $ target config size, format
"Local Slave 1 - Exclusive Owner", $ Connection Name
"Exclusive owner connection", $ help string
"20 04 24 67 2C 66 2C 65"; $ Path
Connection2 =
0x04030002, $ 0-15 = supported transport classes
$ 16 = trigger: cyclic
$ 17 = trigger: change of state
$ 18 = trigger: application
$ 19-23 = trigger: reserved
$ 24 = application type: listen-only
$ 25 = application type: input-only
$ 26 = application type: exclusive-owner
$ 27 = application type: redundant-owner
$ 28-30 = reserved
$ 31 = Direction: Client = 0 / Server = 1
0x66740405, $ 0 = O->T fixed size supported
$ 1 = O->T variable size supported
$ 2 = T->O fixed size supported
$ 3 = T->O variable size supported
$ 4-5 = O->T number of bytes per slot (obsolete)
$ 6-7 = T->O number of bytes per slot (obsolete)
$ 8-10 = O->T Real time transfer format
$ 11 = reserved
$ 12-14 = T->O Real time transfer format
$ 15 = reserved
$ 16 = O->T connection type: NULL
$ 17 = O->T connection type: MULTICAST
$ 18 = O->T connection type: POINT2POINT
$ 19 = O->T connection type: reserved
$ 20 = T->O connection type: NULL
$ 21 = T->O connection type: MULTICAST
$ 22 = T->O connection type: POINT2POINT
$ 23 = T->O connection type: reserved
$ 24 = O->T priority: LOW
$ 25 = O->T priority: HIGH
$ 26 = O->T priority: SCHEDULED
$ 27 = O->T priority: reserved
$ 28 = T->O priority: LOW
$ 29 = T->O priority: HIGH
$ 30 = T->O priority: SCHEDULED
$ 31 = T->O priority: reserved
Param6,Param1,Assem1, $ O->T RPI, size, format
Param6,Param2,Assem2, $ T->O RPI, size, format
,, $ proxy config size, format
,, $ target config size, format
"Local Slave 2 - Exclusive Owner", $ Connection Name
"Exclusive owner connection", $ help string
"20 04 24 71 2C 70 2C 6F"; $ Path
Connection3 =
0x04030002, $ 0-15 = supported transport classes
$ 16 = trigger: cyclic
$ 17 = trigger: change of state
$ 18 = trigger: application
$ 19-23 = trigger: reserved
$ 24 = application type: listen-only
$ 25 = application type: input-only
$ 26 = application type: exclusive-owner
$ 27 = application type: redundant-owner
$ 28-30 = reserved
$ 31 = Direction: Client = 0 / Server = 1
0x66740405, $ 0 = O->T fixed size supported
$ 1 = O->T variable size supported
$ 2 = T->O fixed size supported
$ 3 = T->O variable size supported
$ 4-5 = O->T number of bytes per slot (obsolete)
$ 6-7 = T->O number of bytes per slot (obsolete)
$ 8-10 = O->T Real time transfer format
$ 11 = reserved
$ 12-14 = T->O Real time transfer format
$ 15 = reserved
$ 16 = O->T connection type: NULL
$ 17 = O->T connection type: MULTICAST
$ 18 = O->T connection type: POINT2POINT
$ 19 = O->T connection type: reserved
$ 20 = T->O connection type: NULL
$ 21 = T->O connection type: MULTICAST
$ 22 = T->O connection type: POINT2POINT
$ 23 = T->O connection type: reserved
$ 24 = O->T priority: LOW
$ 25 = O->T priority: HIGH
$ 26 = O->T priority: SCHEDULED
$ 27 = O->T priority: reserved
$ 28 = T->O priority: LOW
$ 29 = T->O priority: HIGH
$ 30 = T->O priority: SCHEDULED
$ 31 = T->O priority: reserved
Param6,Param1,Assem1, $ O->T RPI, size, format
Param6,Param2,Assem2, $ T->O RPI, size, format
,, $ proxy config size, format
,, $ target config size, format
"Local Slave 3 - Exclusive Owner", $ Connection Name
"Exclusive owner connection", $ help string
"20 04 24 7B 2C 7A 2C 79"; $ Path
Connection4 =
0x04030002, $ 0-15 = supported transport classes
$ 16 = trigger: cyclic
$ 17 = trigger: change of state
$ 18 = trigger: application
$ 19-23 = trigger: reserved
$ 24 = application type: listen-only
$ 25 = application type: input-only
$ 26 = application type: exclusive-owner
$ 27 = application type: redundant-owner
$ 28-30 = reserved
$ 31 = Direction: Client = 0 / Server = 1
0x66740405, $ 0 = O->T fixed size supported
$ 1 = O->T variable size supported
$ 2 = T->O fixed size supported
$ 3 = T->O variable size supported
$ 4-5 = O->T number of bytes per slot (obsolete)
$ 6-7 = T->O number of bytes per slot (obsolete)
$ 8-10 = O->T Real time transfer format
$ 11 = reserved
$ 12-14 = T->O Real time transfer format
$ 15 = reserved
$ 16 = O->T connection type: NULL
$ 17 = O->T connection type: MULTICAST
$ 18 = O->T connection type: POINT2POINT
$ 19 = O->T connection type: reserved
$ 20 = T->O connection type: NULL
$ 21 = T->O connection type: MULTICAST
$ 22 = T->O connection type: POINT2POINT
$ 23 = T->O connection type: reserved
$ 24 = O->T priority: LOW
$ 25 = O->T priority: HIGH
$ 26 = O->T priority: SCHEDULED
$ 27 = O->T priority: reserved
$ 28 = T->O priority: LOW
$ 29 = T->O priority: HIGH
$ 30 = T->O priority: SCHEDULED
$ 31 = T->O priority: reserved
Param6,Param1,Assem1, $ O->T RPI, size, format
Param6,Param2,Assem2, $ T->O RPI, size, format
,, $ proxy config size, format
,, $ target config size, format
"Local Slave 4 - Exclusive Owner", $ Connection Name
"Exclusive owner connection", $ help string
"20 04 24 85 2C 84 2C 83"; $ Path
Connection5 =
0x04030002, $ 0-15 = supported transport classes
$ 16 = trigger: cyclic
$ 17 = trigger: change of state
$ 18 = trigger: application
$ 19-23 = trigger: reserved
$ 24 = application type: listen-only
$ 25 = application type: input-only
$ 26 = application type: exclusive-owner
$ 27 = application type: redundant-owner
$ 28-30 = reserved
$ 31 = Direction: Client = 0 / Server = 1
0x66740405, $ 0 = O->T fixed size supported
$ 1 = O->T variable size supported
$ 2 = T->O fixed size supported
$ 3 = T->O variable size supported
$ 4-5 = O->T number of bytes per slot (obsolete)
$ 6-7 = T->O number of bytes per slot (obsolete)
$ 8-10 = O->T Real time transfer format
$ 11 = reserved
$ 12-14 = T->O Real time transfer format
$ 15 = reserved
$ 16 = O->T connection type: NULL
$ 17 = O->T connection type: MULTICAST
$ 18 = O->T connection type: POINT2POINT
$ 19 = O->T connection type: reserved
$ 20 = T->O connection type: NULL
$ 21 = T->O connection type: MULTICAST
$ 22 = T->O connection type: POINT2POINT
$ 23 = T->O connection type: reserved
$ 24 = O->T priority: LOW
$ 25 = O->T priority: HIGH
$ 26 = O->T priority: SCHEDULED
$ 27 = O->T priority: reserved
$ 28 = T->O priority: LOW
$ 29 = T->O priority: HIGH
$ 30 = T->O priority: SCHEDULED
$ 31 = T->O priority: reserved
Param6,Param1,Assem1, $ O->T RPI, size, format
Param6,Param2,Assem2, $ T->O RPI, size, format
,, $ proxy config size, format
,, $ target config size, format
"Local Slave 5 - Exclusive Owner", $ Connection Name
"Exclusive owner connection", $ help string
"20 04 24 8F 2C 8E 2C 8D"; $ Path
[Capacity]
TSpec1 = Tx, 505, 1250;
TSpec2 = Rx, 509, 1250;
[Ethernet Link Class]
Revision = 4;
Object_Name = "Ethernet Link Object";
Object_Class_Code = 0xF6;
MaxInst = 4;
Number_Of_Static_Instances = 4;
Max_Number_Of_Dynamic_Instances = 0;
InterfaceLabel1 = "XF3";
InterfaceLabel2 = "XF4";
InterfaceLabel3 = "XF5";
InterfaceLabel4 = "XF6";

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
doc/上下料BOM和IO.xlsx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More