三菱Melfa Basic VI码垛程序P10=(Plt1,M1)行语法错误求助
三菱Melfa Basic VI码垛程序语法错误排查
问题根源
P10 = (Plt1,M1)行的语法错误,是因为Melfa Basic VI中托盘位置的调用逻辑不符合官方语法规范。通过Def Plt定义托盘后,不能用括号直接赋值的方式获取点位,必须使用专用的Plt指令来读取对应序号的托盘位置。
修正方案
将错误行替换为以下正确语法:
Plt(1, M1, P10)
这条指令的作用是:从编号为1的托盘(即你用Def Plt 1定义的托盘)中,取出第M1个点位,并将该位置坐标赋值给变量P10。
完整修正后的程序
Servo On Wait M_Svo = 1 Base 0 Ovrd 50 *Define Def Plt 1, p2, p3, p4, p5, 3, 5, 2 M1 = 1 *Loop Mov p1, -50*1 Dly 0.50 Mvs p1 Dly 1.00 Mvs, -50*1 Plt(1, M1, P10) // 修正后的托盘位置调用语句 Mov P10, -5*1 Dly 0.50 Mvs P10 Dly 1.0 Mvs, -50*1 M1 = M1+1 If M1<=15 Then *Loop End
额外注意事项
- 确认
Def Plt参数匹配需求:你定义的Def Plt 1, p2, p3, p4, p5, 3, 5, 2对应3×5×2共30个点位,程序循环到15的逻辑是合理的。 - 所有位置变量(
p1、p2等)需要提前在示教器中完成实际坐标的示教定义,否则会触发位置未定义的错误。
内容的提问来源于stack exchange,提问作者PaulMc
相关产品推荐
相关产品推荐

