我们有台7轴门动的铣床,之前我没有接触过,什么叫五面体一无所知,对程序的了解更少。
但是老板要我对这台机床参与调试,其他调试人员对程序这一块也不熟,之前有台类似的机型但只有一只万能头。
首先我要了解什么是五面体铣头,通过了解我们这台机器有头罩,直角头,扁铣头,万能头,延伸头。
我找了一下之前工程师的程序,并且传到设备中去进行调试,结果是铣头识别有问题,信号有些乱,主要是接线人员没有按我出的图纸接线,主要是我没接触过此类设备,没有办法,只能根据实际接线更改程序:

上面是铣头在位可以松铣头的条件。

传送到HMI上的铣头信号,其中DB3803.DBX2001.6我查了一下是当我们的主轴M03指令时是正转,可装上铣头后会出现铣头方向反了,用到DB3803.DBX2001.6进行动态切换到M04。
可是程序运行时执行不了切换,铣头方向还是反了,后检查原来前任工程师这样的重复DB3803.DBX2001.6线圈是有问题的。
我进行更改如下:

意思把DB3803.DBX2001.6信号并为一个线圈,之后进行测试,功能实现了。
接着手动装上铣头,然后要装上刀具,发现松刀时主轴松刀和铣头松开是同时工作的,这个是有问题的。
我就把万能头,直角头,扁铣头三种条件加到主轴松刀互锁中去,这是原来程序的缺陷。

这个好了之后,开始做联动换铣头。
看一下写R参数的程序:

然后编写子程序:
N1 S10
M11
N2 AAA:
N3 IF R200==0 GOTO LEVEL4
N4 IF R200==1 GOTO LEVEL1
N5 IF R200==2 GOTO LEVEL2
N6 IF R200==3 GOTO LEVEL3
N7 IF R200==4 GOTO LEVEL5
N8 IF R200==5 GOTO LEVEL6
N9 G04F1
N10 G04F1
N11 LEVEL1:
N12 IF R203==0 GOTO QDZ
N13 IF R203==1 GOTO END
N14 IF R203==2 GOTO FZJT
N15 IF R203==3 GOTO FBXT
N16 IF R203==4 GOTO FWNT
N17 IF R203==5 GOTO FYST
N18 G04F1
N19 G04F1
N20 LEVEL2:
N21 IF R203==0 GOTO QZJT
N22 IF R203==1 GOTO FDZ
N23 IF R203==2 GOTO END
N24 IF R203==3 GOTO FBXT
N25 IF R203==4 GOTO FWNT
N26 IF R203==5 GOTO FYST
N27 G04F1
N28 G04F1
N29 LEVEL3:
N30 IF R203==0 GOTO QBXT
N31 IF R203==1 GOTO FDZ
N32 IF R203==2 GOTO FZJT
N33 IF R203==3 GOTO END
N34 IF R203==4 GOTO FWNT
N35 IF R203==5 GOTO FYST
N36 G04F1
N37 G04F1
N38 LEVEL5:
N39 IF R203==0 GOTO QWNT
N40 IF R203==1 GOTO FDZ
N41 IF R203==2 GOTO FZJT
N42 IF R203==3 GOTO FBXT
N43 IF R203==4 GOTO END
N44 IF R203==5 GOTO FYST
N45 G04F1
N46 G04F1
N47 LEVEL6:
N48 IF R203==0 GOTO QYST
N49 IF R203==1 GOTO FDZ
N50 IF R203==2 GOTO FZJT
N51 IF R203==3 GOTO FBXT
N52 IF R203==4 GOTO END
N53 IF R203==5 GOTO FWNT
N54 LEVEL4:
N55 IF R203==1 GOTO FDZ
N56 QDZ:
N57 IF R203<>0 GOTO END
N58 MSG("取端罩开始")
N59 G0G90Z-200
N60 X631.829Y1858.931
N61 SPOS=0
N62 G4F0.1
N63 M00
N64 MSG("确认滑枕上无附件头,按程序启动键继续!")
N65 M20
N66 M33
N67 G4F5
N68 M90
N69 Z-1320
N70 G01G90Z=-1455F800
N71 M35
N72 G4F3
N73 M21
N74 STOPRE
N75 G4F0.5
N76 G0G90Z-200
N77 R203=1
N78 M91
N79 MSG("取端罩结束")
N80 M30
N81 FDZ:
N82 IF R203<>1 GOTO END
N83 MSG("还端罩开始")
N84 G0G90Z-200
N85 X631.829Y1858.931
N86 SPOS=0
N87 Z-1320
N88 G01G90Z=-1455F800
N89 M20
N90 M33
N91 STOPRE
N92 G4F5
N93 M90
N94 Z-1370F1000
N95 G0G90Z-200
N96 M35
N97 STOPRE
N98 R203=0
N99 M91
N100 M21
N101 MSG("还端罩结束,等待头架到位后按NC循环启动")
N102 M00
N103 GOTOB AAA
N104 QZJT:
N105 IF R203<>0 GOTO END
N106 MSG("取直角头开始")
N107 G0G90Z-200
N108 X629.529Y1259.031
N109 SPOS=0
N110 G4F0.1
N111 M00
N112 MSG("确认滑枕上无附件头,按程序启动键继续!")
N113 M20
N114 M33
N115 G4F8
N116 M83
N117 G4F2
N118 M90
N119 G0G90Z-1000
N120 G01G90Z=-1327F1000
N121 G4F0.5
N122 M35
N123 G4F1
N124 M85
N125 M21
N126 STOPRE
N127 G4F0.5
N128 G01G90Z-1000F1000
N129 G0G90Z-200
N130 R203=2
N131 M91
N132 MSG("取直角头结束")
N133 M30
N134 FZJT:
N135 IF R203<>2 GOTO END
N136 MSG("放直角头开始")
N137 G0G90Z-200
N138 X629.529Y1259.031
N139 SPOS=0
N140 Z-1000
N141 G01G90Z=-1327F1000
N142 M20
N143 M33
N144 G4F8
N145 M83
N146 G4F2
N147 M90
N148 Z-1000F1000
N149 G0G90Z-200
N150 M35
N151 M85
N152 STOPRE
N153 R203=0
N154 M91
N155 M21
N156 MSG("还直角头结束,等待头架到位后按NC循环启动")
N157 M00
N158 GOTOB AAA
N159 QBXT:
N160 IF R203<>0 GOTO END
N161 MSG("取扁铣头开始")
N162 G0G90Z-200
N163 X630.213Y2797.506
N164 SPOS=0
N165 G4F0.1
N166 M00
N167 MSG("确认滑枕上无附件头,按程序启动键继续!")
N168 M20
N169 M33
N170 G4F8
N171 M83
N172 G4F2
N173 M90
N174 G0G90Z-1000
N175 G01G90Z=-1327F1000
N176 G4F0.5
N177 M35
N178 G4F1
N179 M85
N180 M21
N181 STOPRE
N182 G4F2
N183 G01G90Z-1000F1000
N184 G0G90Z-200
N185 R203=3
N186 M91
N187 MSG("取扁铣头结束")
N188 M30
N189 FBXT:
N190 IF R203<>3 GOTO END
N191 MSG("放扁铣头开始")
N192 G0G90Z-200
N193 X630.213Y2797.506
N194 SPOS=0
N195 Z-1000
N196 G01G90Z=-1327F1000
N197 M20
N198 M33
N199 G4F8
N200 M83
N201 G4F2
N202 M90
N203 Z-1000F1000
N204 G0G90Z-200
N205 M35
N206 M85
N207 STOPRE
N208 R203=0
N209 M91
N210 M21
N211 MSG("还扁铣头结束,等待头架到位后按NC循环启动")
N212 M00
N213 GOTOB AAA
N214 QWNT:
N215 IF R203<>0 GOTO END
N216 MSG("取万能头开始")
N217 G0G90Z-200
N218 X633.477Y4522.106
N219 SPOS=0
N220 G4F0.1
N221 M00
N222 MSG("确认滑枕上无附件头,按程序启动键继续!")
N223 M20
N224 M33
N225 G4F8
N226 M83
N227 G4F2
N228 M90
N229 G0G90Z-1300
N230 G01G90Z=-1374.07F1000
N231 G4F0.5
N232 M85
N233 G4F1
N234 M35
N235 M21
N236 STOPRE
N237 G4F2
N238 G01G90Z-1300F1000
N239 G0G90Z-200
N240 R203=4
N241 M91
N242 MSG("取万能头结束")
N243 M30
N244 FWNT:
N245 IF R203<>4 GOTO END
N246 MSG("放万能头开始")
N247 G0G90Z-200
N248 X633.477Y4122.106
N249 SPOS=0
N250 Z-1300
N251 G01G90Z=-1374.07F1000
N252 M20
N253 M33
N254 G4F8
N255 M83
N256 G4F2
N257 M90
N258 Z-1300F1000
N259 G0G90Z-200
N260 M35
N261 M85
N262 STOPRE
N263 R203=0
N264 M91
N265 M21
N266 MSG("还万能头结束,等待头架到位后按NC循环启动")
N267 M00
N268 GOTOB AAA
N269 QYST:
N270 IF R203<>0 GOTO END
N271 MSG("取延伸头开始")
N272 G0G90Z-200
N273 X633.477Y4522.106
N274 SPOS=0
N275 G4F0.1
N276 M00
N277 MSG("确认滑枕上无附件头,按程序启动键继续!")
N278 M20
N279 M33
N280 G4F8
N281 M83
N282 G4F2
N283 M90
N284 G0G90Z-1300
N285 G01G90Z=-1368.559F1000
N286 G4F0.5
N287 M85
N288 G4F1
N289 M35
N290 M21
N291 STOPRE
N292 G4F2
N293 G01G90Z-1300F1000
N294 G0G90Z-200
N295 R203=5
N296 M91
N297 MSG("取延伸头结束")
N298 M30
N299 FYST:
N300 IF R203<>5 GOTO END
N301 MSG("放延伸头开始")
N302 G0G90Z-200
N303 X21005.4Y3570.425
N304 SPOS=0
N305 Z-1300
N306 G01G90Z=-1368.559F1000
N307 M20
N308 M33
N309 G4F8
N310 M83
N311 G4F2
N312 M90
N313 Z-1300F1000
N314 G0G90Z-200
N315 M35
N316 M85
N317 STOPRE
N318 R203=0
N319 M91
N320 M21
N321 MSG("还延伸头结束,等待头架到位后按NC循环启动")
N322 M00
N323 GOTOB AAA
N324 END:
N325 G0G90Z-200
N326 M30
测试运行完美,从一个无知者走向成功好开心,并且解决前任工程师留下的问题。