三菱plcfx2n三菱plc步进电机实例怎么才能自动正反转

三菱PLC控制伺服或步进电机的顺序控制思路
查看: 57729|
摘要: 硬件配置:三菱FX3U PLC,伺服或步进电机,指示灯,按钮等其他配件 程序说明:D1000、D1001一组,D1002、D1003一组。。。。。。但不能超过D7999(案例为3组数据),因为D8000开始就是特殊存储器了,程序开始执行,先 ...
硬件配置:三菱FX3U ,伺服或,指示灯,按钮等其他配件&& 程序说明:D1000、D1001一组,D1002、D1003一组。。。。。。但不能超过D7999(案例为3组数据),因为D8000开始就是特殊存储器了,程序开始执行,先把第一组的数值传送给D100、D101,若D101为0则程序结束,不为零就执行下一步,此步为运动控制,伺服或步进电机运动到一定位置,转移到下一步,下一步为Y0闪烁,闪烁次数由D101的值确定,结束之后再返回到第一步。在运行过程中,若拍下急停,伺服或步进电机还有指示灯都将停止输出,急停解除后按启动按钮,继续运行。其他复位等功能程序略。&& 程序特点:1、顺序控制指令结合变址寄存器、成批传送指令大量减少程序步序;2、使用主控指令,实现伺服或步进电机的暂停功能;IO表:X0&& 启动按钮X1&& 急停开关Y0&& 脉冲信号Y4&& 方向信号Y10& 指示灯略
上一篇:下一篇:
看过《三菱PLC控制伺服或步进电机的顺序控制思路》的人还看了以下文章:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:用plc控制两台伺服做两轴控制&用PLSY指令控制步进电机
实际上德国人有更好的办法,就是用真正的光学绝对值码盘的绝对值编码器,并同时输出正余弦信号,其绝对值信号也是用通讯形式输出,例如海德汉的EnDat,或STEGMANN的Hipeface,其时钟频率可在1MHz以上,虽然绝对值信号输出,仍然要编码-解码,速度快了,响应一样跟不上,但是不要忘了,其是真正光学刻线的绝对值,其响应不上并不丢脉冲。并不影响精度,而只是滞后,这时,其同时输出的正余弦信号就有用了,既可以作为速度反馈(即时的),也可以作为高速定位的冗余,此高速定位是减速,等速度下来,仍然由高精度绝对信号定位停车,从而做到高速高精度。用这种方法,编码器是贵了,但运动控制卡的成本就可以下来,这的确是种好方法,可惜,国内做运动控制的,基本是跟着日本人走,还很少有人认识到这种方法。
三菱PLC的PLSY指令 我想实现步进电机旋转60° 我这样写对不对 PLSY k y3
步进电机的步距角是0.9不对的
首先对脉冲输出仅限于y000或y001 也就是说不能指定y003
一个脉冲是赚一个步距角吗
&&& plsy k3000
&&&&步距0.9的
Y0和Y1同时输出PLSY指令是可以的(其实也不是同时,因为你得分别写两条这个指令,所以只能说是在同一扫描周期内执行而已.姑且认为是同时吧)
Y0和Y1的高速输出标志各是各的,不会互相影响.
不可以同时执行同一个输出点的两条PLSY指令.
首先用MT晶体管系列的,
其次,最好不用PLSY指令,使用DIVR指令,可重复使用.
对于脉冲输出来控制伺服电机,台达PLC完全可以胜任,而且已经有很多实际应用,PLSY/PLSR指令是脉冲输出控制指令,DRVI/DRVA/ZRN是专门定位指令,还有PWM脉宽调制指令都可以使用,其中PLSY是直接脉冲输出,PLSR是可以设置加减速时间脉冲输出指令.
前几日改造设备,原设备用的PLC是三菱FX1N的,运动机构用的是安川的伺服电机。
原程序中控制电机发脉冲的指令为PLSY,起初我没有在意,就没有换用别的指令,但是当我在触摸屏上加上显示伺服当前位置时,发现了问题。
显示伺服电机通过丝杠带动的工作台的当前位置,我用了PLC自带的D8140寄存器中的数值除以变比得到,但当我实际调试时,才发现,电机正转,该值增加,没有错,但当电机反转,工作台往回走时,显示值还是增加,这时我的头就大了,这样根本就不能真实的显示工作台的位置了呀。但是我以前做过类似的系统,显示的没有错啊!我冷静的思考比较了一下,想到应该是PLSY这条指令的问题。想到这,我换用了DRVA指令,结果一调试,这回没有错了。
后来我想到,D8140中存放的是PLC发送的脉冲数,而PLSY指令发送脉冲只有正值,没有负值,电机旋转方向是靠控制电机正反转来决定的。而DRVA指令控制电机的正反转不是人为定义的,而是靠给定的脉冲值,这时脉冲值是有正负的,所以D8140中的脉冲数会相应的增加或减少,这时想在屏幕上监视的结果才出来了。
用PLSY指令控制步进电机
经常看到有的工控朋友问起用PLC控制步进马达的问题,在这里我举个最简单的例子,只能提供思路,更深入的研究就靠大家自己了。
<img src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://img.gongkong.com/forum/pic/.jpg"
ALT="用plc控制两台伺服做两轴控制&用PLSY指令控制步进电机"
TITLE="用plc控制两台伺服做两轴控制&用PLSY指令控制步进电机" />
&如图所示:1、2为步进电机驱动器的电源&
3为控制电源正极& 4为脉冲输入& 5为方向控制
步进电机的步距角为1.8度,驱动器有细分的功能,考虑到精度和速度的问题,我们选用了半步运行的方式。丝杆的螺距为5mm,即步进电机旋转一周,它所拖动的工件移动5个mm,PLC则输出400个脉冲,即每毫米需要输出80个脉冲。5号脚高电平则电机正转,反之亦反。
设计的要求是这样的:在人机界面上输入工件要到的位置(以mm为单位),输入完成后工件自动运行到指定位置停下。如果设定的位置大于实际的位置,则工件正向运转到位,反之亦反。
D200:人机界面输入的工件要求位置
D202:工件的实际位置
D204:实际位置与设定位置之差值
程序如下:
DSUBP D200 D202
D204&&&&&&&&&&&
;将差值送到D204
Y2&&&&&&&&&&&&&&&&&&&&&&&
;如果设定值大于实际值则正转
LDD&= D200 D202
DSUBP D202 D200
D204&&&&&&&&&&&
;将差值送到D204
Y2&&&&&&&&&&&&&&&&&&&&&&&
;如果设定值小于实际值则反转
LDD&& D200
D202&&&&&&&&&&&&&&&
;设定值与实际值不等
;以1000赫兹的频率输出脉冲所需的脉冲数
DMUL D204 K80
;所需输出的脉冲数
DADDP D202 D204
D202&&&&&&&
;脉冲输出完成后实际位置与设定位置一样
这是最简单的控制了,希望对大家有一定的启发,没有上机调试,应该是没什么问题了。看在同行的份上,大家不要扔臭鸡蛋哦。
楼主应该没有考虑进PLC的刷新速度吧
由PLC直接产生脉冲来控制步进电机可以有效地简化系统的硬件电路,进一步提高可靠性。由于PLC是以循环扫描方式工作,其扫描周期一般在几毫秒至几十毫秒之间,因此受到PLC工作方式的限制以及扫描周期的影响,步进电机不能在高频下工作。例如,若控制步进电机的脉冲频率为4000HZ,则脉冲周期为0.25毫秒,这样脉冲周期的数量级就比扫描周期小很多,如采用此频率来控制步进电机。则PLC在还未完成输出刷新任务时就已经发出许多个控制脉冲,但步进电机仍一动不动,出现了严重的失步现象。若控制步进电机的脉冲频率为100HZ,则脉冲周期为10毫秒,与PLC的扫描周期约处于同一数量级,步进电机运行时亦可能会产生较大的误差。因此用PLC驱动步进电机时,为防止步进电机运行时出现失步与误差,步进电机应在低频下运行,脉冲信号频率选为十至几十赫兹左右,这可以利用程序设计加以实现。
TO&myrandge:
&&&&你的考虑是正确的,很多时候我们都要考虑到PLC的扫描周期对程序的影响,但是这个程序不是你想象的那样的,因为这段程序执行的时候是以中断的方式执行的,就是说脉冲的处理与PLC的扫描周期并没有关系,以这种方式输出脉冲时,FX2N最高可以到20KHz,好象FX1S的可以更高。
&&&&希望大家多交流。
发脉冲可以达到20KHZ是没错的,三菱PLC上的说明书也确实是这样写的,但是,就那个文章中所说,你发的脉冲并不全用在控制步进电机了,会产生失步的.
PLSY指令发连续脉冲是不受扫描速度的影响的,但是如果发出的脉冲去控制步进电机,就如文章中所说,是要受扫描速度的影响的,文章不是我写的,我对这方面也不懂,所以,请问,楼主如果你有现在有条件的话,去试验下,因为我没有这方面的条件.
另外,请教楼主的是,你刚才说的中断方式是否是指PLSY的自身的发脉冲方式?还是楼主你编写的程序是用到了中断指令?多谢指教,谢谢!还请问楼主,
DPLSY K Y0 ;以1000赫兹的频率输出脉冲所需的脉冲数 LD DMUL D204 K80 D206
;所需输出的脉冲数 LD M8029
你这里的M8029在程序里起了什么作用呢?为什么这里你加了M8029而不是其他呢?请楼主指点,谢谢!
TO:myrandge
PLSY指令发送脉冲去控制步进电机,不会有失步,因为使用PLSY指令,当扫描到PLSY指令时,输出端子会立刻输出脉冲信号,而并不是等到程序扫描到END时,才会输出脉冲信号。
其实这段程序是我以前做过的一个项目里面的一段,刚开始的时候不是用的脉冲指令,而是用的一个计时器指令产生脉冲:
out&t246&k0
&&&&刚开始程序不长的时候,效果和PLSY差不多,后来程序不断的完善,也越来越长,这段指令就不行了,因为扫描周期变大,使得脉冲输出周期也越来越大,对步进电机的速度影响很大,所以就改成PLSY了。
M1026和M1029只是一个标志信号而已,编写程序时,根据自己的需要,如果需要用到M1026和M1029作为条件时,就可以将M1026或者M1029作为条件编写到PLC程序中,如果不需要就不用便写到程序中。
正如lesing.du所说的那样,就看你的需要了。
作为我的这段程序来说,因为我要在屏子上显示实际的位置所以,就需要在脉冲输出完成后马上将数据处理好并将数据传到触摸屏上,因此就用了M8029。
正如你所说的那样,定时器发脉冲是要受到PLC扫描周期的影响的,我记得当时我做这个程序的时候,刚开始是单轴的,工艺也比较简单,所以就用了定时器。后来到了双轴了,工艺也复杂了,这种方式就不行了。尽管T246的时基是1ms的,但是这种方式发脉冲时,他是要程序处理后才发脉冲,就是说程序每扫描一次就执行一次,这样的话,步数多了速度就不行了。当然,也可以做定时中断处理。但这样也有误差,累积误差还很大。
这段程序其实有个缺点:当工作台移动的时候,屏幕上的工作实际位置值(D202)并没有随着工作台的移动而改变,它只是在工作台移动完成后才变为实际位置值。好比现在工作台的实际位置为200,要求位置是300,当工作台移动的时候,实际值(200)并没有随着工作台的移动而201,202……的增加,而是工作台移动到300的位置后直接变为300,因此这段程序不能实时的反映工作台的移动情况。
为了克服这种情况,我将程序做了部分的修改,更新如下:
D200:人机界面输入的工件要求位置
D202:工件的实际位置
D204:工件的实际位置(做转换用)
D206:实际位置变化值
程序如下:
LDD&&D200&D202&&&&
DSUBP&D200&D202&D204&&&&&&&&&&&&&;将差值送到D204
SET&Y2&&&&&&&&&&&&&&&&&&&&&&&&
&;如果设定值大于实际值则正转
LDD&=&D200&D202
DSUBP&D202&D200&D204&&&&&&&&&&&&;将差值送到D204
RST&Y2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;如果设定值小于实际值则反转
OR&M11&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;设定值与实际值不等
DPLSY&K1000&K0&Y0&&&&&&&&&&&&&&;以1000赫兹的频率不间断输出脉冲
DDIV&D8140&K80&D206&&&&&&&&&;脉冲数折算成毫米
MOV&D202&D204&&&&&&&&&&&&&&&&;实际位置值送到D204
ADD&D204&D206&D202&&&&&&&&&&;增加的毫米数实时传到D202(工作台实际位置)
SUB&D204&D206&D202&&&&&&&&&&;减少的毫米数实时传到D202(工作台实际位置)
DMOV&K0&D8140&&&&&&&&&&&;脉冲输出完成后给脉冲计数器清零
FX2N发脉冲时有一个最大的缺点,那就是脉冲计数器D8140,不论电机是正转还是反转,始终处于增加的状态,也就是说你无法知道电机的当前位置,如果单纯用于控制步进电机或伺服建议还是选用FX1S或FX1N而且价格也要比FX2N便宜。但FX1S和FX1N没有浮点运算功能,在精密计算时,很可能会丢步。
步进电机产生丢步的原因不是因为PLC的PLSY指令或DDIVR等脉冲指令本身所引起的,其实PLC都有把脉冲发完,只是因为步进电机采用的是开环控制,当马达在运转过程中遇到阻挡的时候,步进马达会出现“打滑”的现象,也就是所谓的“丢步”,大家用同样的指令去驱动伺服电机就可以看出,如果马达运转过程中有阻挡,伺服还会一直的往前冲,甚至会出现异常的响声,直到达到所设定位置才肯真正的停止下来,如果伺服所带负载的弹性过高的话,甚至都有可能出现“共振”的现象,这也是所有初学伺服时容易产生的“盲区”,建议大家初学时一定要注意,如果是步进的话就无所谓了,顶多走不到位罢了,不至于出现什么事故!
FX2N PLC没有定位指令,
只能有PLSY,PLSR脉冲输出指令,如何实现搜寻原点呢
我是这样做的ld m10 andi x0 plsr k k50 y0
x0原点信号
还有其它好的方法吗?
哈哈。搞的差不多了
我是这样用的
ld m10 andi x0 plsr k k50 y0
ldp x0 mov k0 d8140
&求助:FX1S脉冲Y0输出控制伺服,停止问题!
arden 建议删除该贴!! | 收藏 | 回复
16:09:07 楼主
PLC型号为FX1S-10MT;伺服系统为MR-J2S-40A+HC-KFS43;用X0启动发脉冲给伺服控制器PLSY K25000
Y0,寄存器D0中的值是K10000,要求在伺服电机转动过程中(脉冲没有发完)遇到一传感器信号X1时,伺服电机再转一个设定的角度后停止,要求伺服电机从启动到停止中途不能有停顿,请各位高手帮忙参考,谢谢!
请教三菱变成高手,帮忙看看一下程序,谢谢!接线方法如下:
X0:脉冲启动信号
X1:检测目标传感器信号
X2:接Y0输出信号,用C237作高速计数器
Y0:接伺服电机
&& 下面的程序我在低速时可以运行,但是在PLSY K25000
K1时却不行,定时器T0根本就做不到,请高手指教,
PLSY K Y000
OUT T0 K10
OUT C237 K400
引用 | 回复
| 设为最佳回复
13:29:00 4楼 流逝泉 检测目标传感器信号接通后将D8140
清零,然后当d8140等于设定脉冲后断开PLSY指令
就发脉冲给伺服就可以了,伺服可以设置多少个脉冲转一圈。
步进电机才有步距角,伺服一般叫脉冲当量。
控制步进电机,一般的用晶体管输出的就可以,三菱的fx2n
能控制两台,fx3u能控制3台步进电机,如果不够,或要求稍微高一点,可一追加fx2n-1pg脉冲输出模块,成本稍高,最准确最好的定位单元是fx2n-10GM,fx2n-20GM后者可实现直线插补.但定位单元也是最贵的 
在编程时,按份脉冲数减500个左右,或者说在快到位置的时间停下来。然后以极低的速度爬行到光电开关处停止。相当于回原点方式。
&这个问题不是没有写,可能是大家觉没有必要写吧!用过几次步进电机的人都知道步进电机是靠脉冲控制进行角位移的,大家的想法都差不多,如果你使用步进电机带动丝杆使滑块来回移动,你应该在滑块的前后终点位置安装感应器。
感应器一般用光电的吧带槽的那种。
你可以写段程序确认步进电机是否在原点上,没有的话让步进电机做回走的动作,速度可以慢点,如果你用三菱的话用这个指令plsy。
具体是这样的 plsy k500 k0 y0
因为参数中用了 k0所以马达会一直走下去,除非前面的条件不导通。
你必须在前面加一个感应器导通的条件。感应器导通的时候让它停下来。
具体做的时候可能比我说的要复杂些。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。急求三菱PLC控制步进电机正反转(用基本指令)_百度知道
急求三菱PLC控制步进电机正反转(用基本指令)
三菱PLCfx系列控制步进电机正反转步进电机X0 启动 x1停止 x2正转 x3反转,在线急求。。。
电机四相八拍
我有更好的答案
格式打不开。。。。。
用GX&WORKS2
采纳率:21%
为您推荐:
其他类似问题
三菱plc的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您现在所在的是:
三菱Mitsubishi
→ 浏览主题:
* 帖子主题:
lixiangbo528
年度积分:50
历史总积分:515
注册时间:
请各位帮帮忙,如何用三菱plc控制步进电机的正转反转,以及步进电机的速度。
fumz78 版主
文章数:14449
年度积分:537
历史总积分:29548
注册时间:
2017春节活动(二)
2016论坛优秀版主
2016国庆活动(二)
2015论坛优秀版主
2014论坛优秀版主
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
08年最佳博客奖
FX系列有定位指令或是脉冲指令,步进的方向信号接通和断开就会改变运行方向
脉冲频率或是步进的细分都可以改变电机速度
三菱 PLC、触摸屏、伺服电机、变频器、数控系统
文章数:40007
年度积分:1538
历史总积分:66180
注册时间:
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
2014相约国庆
2013论坛优秀版主
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
呵呵;转向只要PLC给步进驱动器一个开关量信号就行了;
转速是由PLC发出的脉冲频率决定的;
文章数:7907
年度积分:50
历史总积分:12340
注册时间:
08年最佳博客奖
用步进电机驱动器,PLC给驱动器信号,正转与反转有对应的信号
PLC发脉中给驱动器,脉冲的频率决定电机的转速
文章数:1774
年度积分:50
历史总积分:2922
注册时间:
前辈们说的很对!具体参看手册啊。
mapleboysunny
年度积分:50
历史总积分:518
注册时间:
好 谢谢了 呵呵
文章数:96
年度积分:81
历史总积分:1369
注册时间:
学习了!谢谢!
文章数:96
年度积分:81
历史总积分:1369
注册时间:
学习了!谢谢!
工控学堂推荐视频:三菱plc控制步进电机正反转梯形图_百度知道
三菱plc控制步进电机正反转梯形图
PLC用FX1S,电机为2相6线电机,需要控制步进电机正反转,要求输入信号后电机快速正转然后反转回原点停止(实际使用时电机会接滚珠丝杆,现在也不知道需要转几圈),本人初次接触步进电机,恳请各位高手帮忙编个程序,最好还有PLC与驱动器的接线图,(控制器PU\...
我有更好的答案
因为没有时间,这里提供一个思路和方向: FX1S需要MT类型的,只有2组高速脉冲数出点,是Y0;Y1,可以PLC的Y0高速脉冲输出端子接步进驱动器的PU步进脉冲端子。(PU端子接收到多少个脉冲,就走多少个步进。) Y1或者别的Y??端子接步进驱动器的DR接线端子(是改变方向的信号,一般DR端子有信号往一个方向转,DR端子没有信号往相反方向转。) MF是步进电机释放信号,(关断电机线圈电流,驱动器停止工作,电机处于自由状态,可以用手转动。)这个点端子可以悬空不接。还要给步进驱动器接入工作电源。 至于PLC编程,则需要用到DDRVI和DDRVA指令,(绝对定位指令和相对定位指令)
具体指令用法,在PLC用户手册上有详细的例子讲解说明。 步进需要转几圈,则要你根据实际情况,设定PLC发送的脉冲数。
驱动器上标有+5V(只有一个)、PU、DR、MF请问下+5V怎么接呀,我想如果不接的话,是不是将24V的负极接入COM0端就可以了
伺服的信号是5V的,你的+5V接到PLC的COM0,COM??(??是代表你要用到的对应Y??的输出点)。从PLC的Y输出点的线接到PU,DR,MF等步进驱动器的输入点就行了。 如果直接接入24v,则中间需要增加限流电阻,否则有可能会损坏你的步进驱动器。
采纳率:55%
找我吧 这个是我专业
为您推荐:
其他类似问题
您可能关注的内容
三菱plc的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 三菱plc步进电机接线 的文章

 

随机推荐