登录
首页 PLC论坛 永宏FATEK
回帖 发帖
正文

主题:永宏PLC控制伺服问题

点击:9005 回复:7

各位好,      
     最近第一次接触到了永宏PLC,是用来控制伺服电机的,发现如下问题:
    1、在“I/O组态”上面设置“输出设定”为Y0=PLS,Y1=DIR,然后伺服命令表格和伺服参数表格也设置好了。
       这个时候我想用一条140指令点动控制伺服电机的正反转,有没有办法不通过设置脉冲数的正负值来控制正反转?
       比如我M0控制正转,M1控制反转,但是脉冲数总是0(表示无限个脉冲),可以实现吗?
    2、如上设置,控制伺服电机“正转—反转—正转—反转”如此运行一次或者循环运行,我知道的是可以在伺服命令表格
       里面设置步数来实现,请问这样可以吗:
               1  SPD  D0   DRV  ADR ,+,D46,Ut    WAIT TIME, 100   goto  next
                       2  SPD  D0   DRV  ADR ,-,D46,Ut    WAIT TIME, 100   goto  next
                       3  SPD  D0   DRV  ADR ,+,D46,Ut    WAIT TIME, 100   goto  next
                       4  SPD  D0   DRV  ADR ,-,D46,Ut    WAIT    X0   goto  next(end)
         但是把表格存入PLC以后,上面第二步总是会自动变化,D0变成R2,D46也变化,还有变成GOTO146,
         不知道为什么会变成这样呢?难道是我上面每一步都用同样的寄存器的问题吗?然后我就改成了连续的寄存器.但是发现情况仍然一样。能否告诉我这样的动作应该怎样实现呢?
       3、如果我用点动控制一轴的脉冲输出,如果要换方向的时候我现在只能通过改变脉冲数的正负值,假如D2是伺服命令表格里面的脉冲数,而当我通过mov d10  d2给定脉冲数,并且d10也有正负值,可是实际上方向都是不变的,但是如果我直接在文本屏上设置D2这个参数的正负是,竟然就可以改变运动方向了。这个是为什么呢?        
       以前用的一般都会是三菱,或者西门子,只是现在的项目需要多轴脉冲输出,所以就选择了永宏PLC(型号为:FBs-               32MAT),至于会不会继续用下去,还得看做这个项目的效果,麻烦各位大虾帮忙解决下这个问题。
         也可以加我的Q(648673091) 或者发点启示到我的邮箱(gufayuan@yahoo.cn)                    
                                                                                      谢谢。
最后修改:2011/5/17 19:26:07
11-05-17 17:20
我对永宏的也不是很熟,第一次用就写了一个四轴的机器。感觉有些地方有点莫名其妙。那个表格自动生成的方式,在控制时很是咬口,不过明白后也就好了,格走完后一定要把指令关掉,否则它还会不停的走。R是数据寄存器,相当于D寄存器
11-05-17 19:42
附件
附件
    上面第一张图是我设置的寄存器,第二张时从运行一次后从PLC读出。  
    但是PLC会自动把我原来设置的寄存器设置成别的了,而且下一步也变化这么大,根本就没办法走完四步然后再停止,所以现在就比较纳闷。
  还有寄存器数据给定也是,必须在文本屏上面直接设置表格的数据才行,如果通过设置其他寄存器,然后通过MOV指令传送到表格的寄存器,那样也不能实现正反转,这样就造成我要正转的时候就要设置一下把数据设置成正值,要反转的时候就要把数据设置成负值,很是麻烦。
最后修改:2011/5/18 8:10:59
11-05-18 08:09
经过这几天的研究,终于把上面的问题搞定了,永宏PLC有某些地方还是可以的,
但是消耗寄存器实在太多了,而且140指令的用法即使在不同的步进阶梯指令中也是不能出现的,所以就造成了更严重的使用寄存器;还有伺服命令表格里,一步就多占用9个寄存器,用起来确实比较麻烦。。。。
11-05-19 16:28
DRVC属于多段变速指令,多段变速控制只能同方向,不能正反向的;
为什么不直接用DRV试试呢?
13-12-02 18:18
1 脉冲数总是零,坐标设为ADR时就可以连续运行,±应该可以表示运转方向的;你可以用两个FUN140,M0控制一个,M1控制一个,分别正转反转就行了,但是要注意正反转的互锁问题。小弟也是初学者,我没试过,觉得应该可以的。
2 最后一步为什么还要用WAIT呢?结束就直接MEND,你这样没有最后一步的,程序也许会出想不到的错的
3 可能跟MOV指令有关,你用的是32位还是16位?换一下试试看~
13-12-02 18:42

引用 巍峨雪岭 在 2013/12/2 18:18:55 发言【内容省略】

赞一个
13-12-12 23:10
谢谢分享
14-10-08 08:18

工控新闻

更多新闻资讯