程序员的知识教程库

网站首页 > 教程分享 正文

[三菱PLC] 三菱PLC运动控制-定位指令应用详解

henian88 2025-02-18 11:41:47 教程分享 35 ℃ 0 评论


一,动作描述

  1. 逐个给您讲讲各个定位指令是咋用的;
  2. 用定位指令来控制伺服步进,(用脉冲加方向这种方式);
  3. M8029 的使用得注意的地方。

二,硬件设备

  1. 三菱 PLC :FX3U - 32MT ;
  2. 步进电机和步进驱动器,各有一个。

三,软件

三菱编程软件:GX Works2/ GX Works3



四, 指令的介绍

首先在使用输出高速脉冲进行位置控制的时候,这里面的控制您得明白三个概念:

  1. 位置移动速度(就是脉冲频率,也就是每秒能发送多少个脉冲)
  2. 位置移动距离(就是脉冲数量,脉冲数量是和滑台的距离相对应的)
  3. 位置移动方向(要么是方向输出,要么是双向脉冲,用来控制电机是前进还是后退)

1 PLSY

16 位运算指令 PLSY ,会从输出 Y(D)这里输出(S1)这么多个、频率是(S2)的脉冲串。



在 S1 里指定频率。能设定的范围允许是:1 到 32767(赫兹)。

在 S2 里指定发出的脉冲量,能设定的范围允许是:1 到 32767(脉冲)。32 位运算指令 DPLSY 会在 D 中输出 [S1·+1、S1] 这么多个、频率为 [S2+1、S2] 的脉冲串。


在 [S1+1、S1] 里指定频率,要是用高速输出特殊适配器的话,允许设定的范围是:1 到 200,000(赫兹)。要是用 FX3G、FX3U、FX3UC 本体 PLC 呢,允许设定的范围就是:1 到 100,000(赫兹)。

在 [S2+1、S2] 里指定发出的脉冲量,允许设定的范围是:1 到 2,147,483,647(脉冲)。

在指令里指定有脉冲输出的 Y 编号,允许设定的范围是:Y000、Y001 、Y002、Y003 。

绝对位置当前值数据寄存器有这些情况:

  1. 当前值是以原点为参考点的绝对地址值。工件移动的时候,数值会跟着工件移动发生变化。这个数值表示的就是工件当下的位置。
  2. 当 PLC 断电的时候,当前值寄存器的当前值就会被清除,变成 0 。
  3. 对于不同系列的 PLC,对应着不同的脉冲输出口,当前值寄存器的编号也是不一样的。

当驱动条件成立的时候,执行 PLSY 指令,会从输出口(Y0\Y1\Y2)输出一个频率是 S1、脉冲个数是 S2、占空比为 50%的脉冲串。当作定位控制命令用的时候,得指定方向输出口 Y 。PLSY 没有加减速时间的设置,定位容易丢失脉冲或者过冲。

PLSY 指令驱动之后,是采用中断的方式输出脉冲串的,所以不受扫描周期的影响。要是在执行的过程中指令驱动条件断了,输出马上就会停止,再次驱动的话,又会从最开始输出。这个指令一般是用来控制伺服或者步进电机手动运行的。

把指令中脉冲个数设置为 K0,那指令的功能就变成输出无数个脉冲串。如下图 1,图 2 是对应的特殊软原件。

图1


图2


2 PLSV

S 表示输出脉冲的频率或者其存储地址。D1 指定脉冲串的输出口,是 Y0 或者 Y1 。指定旋转方向的输出端口是 D2 ,ON 表示正转,OFF 表示反转。指令前面加上 D ,那就是 32 位指令。当驱动条件成立的时候,就会从输出口 D1 输出频率为 S 的脉冲串。电机转向的信号由 D2 口输出,如果 S 是正值,那 D2 输出就是 ON ,电机正转。要是 S 是负值,那 D2 输出就是 OFF ,电机反转。

  1. 在脉冲输出的过程中,如果把 S 变成 K0 ,脉冲输出马上就会停止。同样,要是驱动条件在脉冲输出过程中断开了,输出也会马上停止。
  2. PLSV 指令可以随时改变脉冲的频率,不过在脉冲输出过程中,最好别改变输出脉冲的方向(也就是从正频率变成负频率或者反过来)。要是想变更方向,可以先把输出频率设为 K0 ,并且设定电机充分停止的时间,然后再输出不同方向的频率值。
  3. PLSV 指令有个缺点,在开始、频率变化和停止的时候都没有加减速动作。这就对指令的使用有影响了,所以,经常把 PLSV 指令和斜坡指令 RAMP 配合起来用,利用斜坡指令 RAMP 的递增、递减速功能来实现 PLSV 指令的加、减速。
  4. PLSV 指令的缺点是在开始、频率变化和停止时都没有加减速动作。这就影响了指令的使用,所以,经常把 PLSV 指令和斜坡指令 RAMP 配合起来用,利用斜坡指令 RAMP 的递增、递减速功能来实现 PLSV 指令的加、减速。一般不把它当作定位指令来用。


3 PLSR




  1. 当驱动条件成立的时候,会从输出口 D 输出最高频率是 S1、脉冲个数是 S2、加减速时间是 S3、占空比为 50%的脉冲串。加减速时间不能分开控制,PLSR 脉冲指令会以一定的频率发出目标值个脉冲。在这个指令里,可以设置脉冲频率、脉冲总数,还有发出脉冲的输出点。但它只能控制脉冲,如果是脉冲加方向的脉冲模式,那方向点就得另外选一个普通的开关点来控制。方向信号要先于脉冲指令给定,然后再设定频率和脉冲数。
  2. 输出频率 S1 的设定范围是这样的:[(FX2N)10 到 20000 赫兹] 、[(FX1S)10 到 100000 赫兹] ,频率设定必须得是 10 的整数倍。
  3. 输出脉冲数的设定范围是:16 位运算的话是 110 到 32767,32 位运算的话是 110 到 2147486947。要是设定值不到 110,脉冲就不能正常输出。
  4. M8029:脉冲发完之后,M8029 就闭合。当 M0 断开了,M8029 会自动断开。
  5. M8147:Y0 输出脉冲的时候闭合,发完脉冲就自动断开,用下降沿触发进入下一步。
  6. M8148:Y1 输出脉冲的时候闭合,发完脉冲就自动断开,用下降沿触发进入下一步。
  7. M8149:Y2 输出脉冲的时候闭合,发完脉冲就自动断开,用下降沿触发进入下一步。
  8. D8140:记录 Y0 输出的脉冲总数,这是个 32 位寄存器。
  9. D8142:记录 Y1 输出的脉冲总数,这也是个 32 位寄存器。
  10. D8136:记录 Y0 和 Y1 输出的脉冲总数,这是 32 位寄存器(针对 FX1S)


4 DRVA



S1 是目标的绝对位置脉冲量,S2 是输出脉冲频率,D1 是输出脉冲端口,只能是 Y0 或者 Y1 ,D2 是指定旋转方向的输出端口,ON 表示正转,OFF 表示反转。当驱动条件成立时,输出口 D1 会发出定位脉冲,电机以 S2 的转速转动到绝对位置值为 S1 的地方。转向是由 S1 和当前位置值比较来确定的,要是 S1 大于当前值,D2 就是 ON ,电机正转;要是 S1 小于当前值,D2 就是 OFF ,电机反转。

和 DRVI 指令相同的地方有:

  1. 指令格式相同。
  2. 特殊软元件相同。
  3. 速度与位置参数相同。
  4. 运行时序相同。
  5. 电机的转向信号都是指令自动完成的。

和 DRVI 指令不同的地方有:
目标位置的表示不同。DRVI 是用相对于当前位置的移动量来表示目标位置,而 DRVA 是用相对于原点的绝对位置值来表示目标位置。

指令中所指定的脉冲数量不一样。DRVI 指令中所指定的脉冲数量就是 PLC 输出的数量。但 DRVA 指令中所指定的数量不是 PLC 实际发出脉冲的数量。它实际输出的脉冲数是和指令驱动前的当前值进行运算的结果。

暂停再驱动的效果也不同。DRVI 指令暂停后再驱动不能接着原来的运行,而 DRVA 指令暂停后再驱动可以接着原来的运行。

5 DRVI


S1 是输出脉冲量(也就是位置移动的距离),S2 是输出脉冲频率(也就是位置移动的速度),D1 是输出脉冲端口,只能是 Y0 或者 Y1 ,D2 是指定旋转方向的输出端口(也就是位置移动的方向),ON 表示正转,OFF 表示反转。相对定位,相对位移指的是移位后位置坐标和当前位置坐标的位移量。位置控制有三个要素:

  1. 位置移动方向(也就是电机转动的方向)。
  2. 位置移动速度(也就是电机的转速)。
  3. 位置移动距离(相对的或者绝对的)。

当驱动条件成立时,输出口 D1 会发出定位脉冲,电机以 S2 的转速转动 S1 个脉冲数。转向是由 S1 的正负来确定的。S1 是正的,D2 就是 ON ,电机正转;S1 是负的,D2 就是 OFF ,电机反转。

最高速度,电机运行时会有最高速度,电机实际运行的速度必须比这个值小。最高速度存在寄存器 D8147(高位)、D8146(低位)里,设定范围是 10 到 100 千赫兹。出厂值是 100 千赫兹。

运行速度,指令对运行速度有这样的限制:最低速度≤运行速度<最高速度。

基底速度,电机运行的起动速度,也就是说当电机从位置 A 向位置 B 移动时,不是从 0 开始加速,而是从基底速度开始加速到运行速度。基底速度存在寄存器 D8145 里,出厂值是 0 。基底速度是针对步进电机运行设置的速度参数,对于伺服电机来说,基底速度可以设为 0 。

加减速时间,加速时间指的是电机从当前位置加速到最高转速的时间。减速时间指的是电机从最高转速下降到当前位置的时间。当输出脉冲频率比最高速度小的时候,实际的加减速时间会短一些。

  1. 指令驱动之后,如果驱动条件变成 OFF ,就会减速停止,但是完成标志位 M8029 不会有动作。
  2. 如果在指令执行的过程中改变指令的操作内容,这种改变不能改变当前的运行。只能在下一次执行的时候才生效。
  3. 电机的方向信号(D2)都是指令自动完成的,不需要在程序里另外考虑。
  4. 指令在执行的过程中,输出的脉冲数会以增量的方式存到当前值寄存器里。正转的时候当前值增加,反转的时候就减少。所以相对位置控制指令也叫增量式驱动指令。

6 M8029


M8029 是指令执行结束的标志,M8329 是指令执行异常结束的标志。

  1. 多个标志位的程序(比如指令执行结束标志位 M8029 的例子)对于使用相同标志位动作的应用指令来说,如果把指令执行结束标志位 M8029 集中起来进行编程,就很难判断是哪个指令的执行内容让标志位控制执行了,而且还有可能不能正常读取各个指令相对应的标志位。在应用指令正下方以外的位置使用时,请参考下一页的内容。



  1. 在应用指令正下方以外的位置使用的方法介绍

对多个应用指令进行编程后,一般标志位会根据各自应用指令的 ON 执行情况发生变化。所以,如果想要在该指令正下方以外的位置使用,要先在应用指令的正下方用一般标志位把其他的位软元件设置为 ON 或者 OFF ,然后把这个触点当作指令触点来使用。





在三菱 FX 系列 PLC 中,数据寄存器 D8000 与辅助继电器 M8000 往后的属于特殊的寄存器或者继电器。这些特殊的寄存器和继电器都有特定的意思。就拿特殊继电器来说,常用的有 M8000、M8002 。M8029 也是常用的特殊继电器,它是指令执行完成的标志。也就是说,在指令执行完成以后,会输出这个 M8029 信号。因为 M8029 是指令执行完成的标志,所以在编程的时候就能够用这个标志来做下面这些事情。判断指令有没有执行完成,通过看 M8029 是不是接通,就能判断指令完成了没有。还可以用这个标志来启动下一个执行指令,在程序里有时候会有好多个执行指令,一个指令需要在前一个指令执行完了以后再去执行,那这时候就能够用上一个指令的完成标志来启动下一个指令。

(1)M8029 虽然是指令执行完成标志,但不是所有指令执行完都会输出这个标志,只有部分指令会,像手册里提到的 DSW(数值开关)、RAMP(斜坡信号),还有在控制伺服、步进电机时用到的定位指令或者脉冲指令。
(2)M8029 只有在指令正常完成后才会输出,如果指令在执行过程中,指令前面的条件不成立,导致指令没有完全执行完就停止了,那么这个标志就不会输出。
(3)M8029 这个指令完成信号只是一个脉冲信号,它只在对应的指令完成后的一个扫描周期成立,在后面的扫描周期就会断开。所以如果监控程序时用肉眼去观察这个信号有没有接通是很难看到的。如果编程时需要瞬时信号,那就可以直接用 M8029 信号,如果需要连续的信号,那可以用 M8029 置位一个信号,比如用 INCP 自加一指令来验证是否接通过。
(4)M8029 作为指令执行完成标志,而一个正常的工程程序里可能有多个不同的指令,就算是一个指令也可能会用好几次。

这时候要注意,这些指令执行完成的标志都是同一个标志 M8029,要避免一个指令的完成标志对另一个指令完成标志的影响,所以在程序中要注意 M8029 要在各自的指令后面编写。在 PLC 中,定位指令结束后,会输出完成标志 M8029 ,可以用这个标志来判断定位是否完成,然后进行下一步动作。定位指令中还有一个标志 M8147(Y0 脉冲输出中监控),对于 FX3U/G 是 M8348 。当有脉冲输出时就会有信号输出。M8029 对应结束后的一个周期,而且是正常完成后的标志,所以用 M8029 作为标志会更严谨。如果一步定位完成后,有像电磁阀控制气缸这样的动作,可以用 M8029 控制 Y 这样的信号输出。如果一步定位完成后,有其他的定位动作,可以用 M8029 再次启动定位指令。如果一步定位完成后,有数据处理,那可以用 M8029 标志进行四则运算。

五,程序思路及编写

手动程序如下:



三菱PLC定位指令的应用详解 PLC论坛-全力打造可编程控制器专业技术论坛 -

http://bbs.plcjs.com/forum.php?mod=viewthread&tid=504811&fromuid=17

(出处: PLC论坛-全力打造可编程控制器专业技术论坛)

#非标自动化#

#三菱PLC#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表