楼主最近还看过
"刘岩利" 的回复,发表在25楼
对内容: 【"运控学习" 的回复,发表在24楼 对内容: 【不好意思刘工我还是不太会这个忽略,不执行是指PA~a=0吗,那怎么执行非限位方向的运动呢,该用哪个指令呢,还有重置PT是不是就是PT重新赋...】进行回复:
-----------------------------------------------------------------
刘工,我现在想了个法子暂时能解决这个问题,就是用LDn去禁止对应的限位,限位禁止方向的运动不操作,但是现在如果一直向限位禁止方向转手轮,会提示,程序大概如下:
#AUTO
SH
LastM=_TPA
AT 0
#L1
IF(@IN[5]=0)
r=5/10
ENDIF
IF(@IN[6]=0)
r=5
ENDIF
IF(@IN[7]=0)
r=50
ENDIF
IF(@IN[1]=0)
~a="A"
ENDIF
IF(@IN[2]=0)
~a="B"
ENDIF
IF(@IN[3]=0)
~a="C"
ENDIF
IF(@IN[4]=0)
~a="D"
ENDIF
OriM=_TPA
OriS=_RP~a
OriV=_SP~a
PT~a=1
n=1
LD~a=0
#LOOP
AT-10
CurM=_TPA
tarV=(CurM-LastM)*r*100
tarV=@ABS[tarV]
IF (tarV<100)
tarV=100
ENDIF
SP~a=tarV
tarP=(CurM-OriM)*r+OriS
IF((_LF~a=0.0)|(_LR~a=0.0))
PT~a=0
IF(_LF~a=0.0)
IF(_RP~a<tarP)
JP#L1
ELSE
PT~a=1
LD~a=1
JP#L2
ENDIF
ENDIF
IF(_LR~a=0.0)
IF(_RP~a>tarP)
JP#L1
ELSE
PT~a=1
LD~a=2
JP#L2
ENDIF
ENDIF
ENDIF
#L2
PA~a=tarP
LastM=CurM
JP#L1,n=1
PT~a=0
SP~a=OriV
EN
"运控学习" 的回复,发表在26楼
对内容: 【那非触发限位方向的运动该怎么执行啊,不是只要触发限位PT的跟随就会退出来,如果还用PA不是依旧bug吗...】进行回复:
-----------------------------------------------------------------
一、非触发限位方向的运动该怎么执行啊
正常执行,PA~a=tarP
二、不是只要触发限位PT的跟随就会退出来
的确不是
1、在运动过程中,触发了运动方向上的限位会导致PT模式退出
2、限位处于触发状态时,发送指令要求向限位方向运动会导致PT模式退出
前极限单独处于触发状态时,重置PT为1,用PA指令向后运动不会导致PT模式退出;后极限单独处于触发状态时,重置PT为1,用PA指令向前运动不会导致PT模式退出
三、但是现在如果一直向限位禁止方向转手轮,会提示
这是你的编程错误造成的。您把用于构成循环JP#L1放在了IF处理之中,当出现触发限位的形况时,变量LastM得不到机会被刷新,这造成间隔取样的计算错误,计算出的tarV越来越大,直到数值超出了SP指令的允许范围而导致指令语法出错。如果您觉得这个问题处理不了,可以直接用指令
tarV=_TVA*r
来代替
tarV=(CurM-LastM)*r*100
tarV=@ABS[tarV]
另外,构成循环的#L1和JP#L1不可以处于不同的IF和ENDIF之间,这样会导致IF和ENDIF不能配对执行,控制器会认为这是IF嵌套,而IF嵌套允许的层数有限,超出时会在执行某个IF语句时出现语法错误。
"刘岩利" 的回复,发表在26楼
对内容: 【"运控学习" 的回复,发表在26楼 对内容: 【那非触发限位方向的运动该怎么执行啊,不是只要触发限位PT的跟随就会退出来,如果还用PA不是依旧bug吗...】进行回复: -...】进行回复:
-----------------------------------------------------------------
刘工,我又改了一下程序,现在没有问题了,感谢
IF((_LF~a=0.0)|(_LR~a=0.0))
PT~a=0
IF(_LF~a=0.0)
IF(_RP~a<tarP)
l=1
ELSE
PT~a=1
ENDIF
ENDIF
IF(_LR~a=0.0)
IF(_RP~a>tarP)
l=1
ELSE
PT~a=1
ENDIF
ENDIF
ENDIF
LastM=CurM
JP#L1,l=1
PA~a=tarP
JP#L1,n=1
"刘岩利" 的回复,发表在26楼
对内容: 【"运控学习" 的回复,发表在26楼 对内容: 【那非触发限位方向的运动该怎么执行啊,不是只要触发限位PT的跟随就会退出来,如果还用PA不是依旧bug吗...】进行回复: -...】进行回复:
-----------------------------------------------------------------
刘工我现在遇到了一个指令问题,不知道是厂家B140问题还是就是这么设置的
如果我用DP指令定义位置,DE指令定义编码器,当我读对应的值的时候:
是因为当前位置只和编码器反馈值有关吗?那为什么MG_DEX反馈值不是编码器的反馈值
"刘岩利" 的回复,发表在30楼
对内容: 【要读编码器位置,用指令TP,或者_TPX。要读当前指令位置,用RP或_RPX。对于DE、DP和_DEX、DPX的不同,指令手册上有说明。...】进行回复:
-----------------------------------------------------------------
刘工,我想问一下B140接了手轮我还能接闭环驱动器吗,现在想要手轮控制3个轴,但是这3个轴接的是闭环驱动器和闭环电机,我怎么感觉接了手轮没法接闭环驱动器啊,如果可以那该咋接啊,正常轴接驱动器,剩下的那个轴接手轮吗?如果不行,GALIL系列的控制卡哪一款能行啊,就是接了手轮还能接闭环驱动器和闭环电机,谢谢
"刘岩利" 的回复,发表在35楼
对内容: 【"运控学习" 的回复,发表在34楼 对内容: 【就是带编码器的步进电机驱动器...】进行回复: --------------------------------------...】进行回复:
-----------------------------------------------------------------
连B140的话没啥区别,就是把b140脉冲和编码器接到驱动器上,我试了b140X轴接手轮YZW轴连接带编码器的驱动器,能控制,但是看着编码器反馈的值不太对劲,刘工,就当初您那个程序里面的r影响的是什么啊,输出的脉冲吗?还有和加减速的关系大吗,我试了一下好像和加减速关系挺大的
"刘岩利" 的回复,发表在35楼
对内容: 【"运控学习" 的回复,发表在34楼 对内容: 【就是带编码器的步进电机驱动器...】进行回复: --------------------------------------...】进行回复:
-----------------------------------------------------------------
刘工,请问这个手轮的倍率到底是什么意思,是脉冲当量吗?它连接B140后切换倍率体现在哪里,我看有人说是最小脉冲当量乘倍率为进给量,这进给量是不是等效于电机的相对运动啊,那驱动器设置细分影响手轮对电机的控制吗
"运控学习" 的回复,发表在36楼
对内容: 【连B140的话没啥区别,就是把b140脉冲和编码器接到驱动器上,我试了b140X轴接手轮YZW轴连接带编码器的驱动器,能控制,但是看着编码器反馈的值不太对劲,】进行回复:
----------------------------------------------------------------
没有区别的话,那就没有什么问题了,您就按照普通驱动器链接就可以了。
“不对劲”是个问题,但不是一个问题的描述,所以您也不能指望我能有什么解释。
对于“手轮的倍率”,您想要一个及你个确定解释,请咨您的手轮供应商。