干货丨两轴定位程序案例分析
本文作者:技成杨遇桥
程序截图
开机初始化回原点部分
使用开机脉冲【M8002】和外部输入触点【X11】的脉冲信号来置位【M0】,保持住开机信号或回原点信号;
再使用【M0】的常开触点驱动【ZRN】原点回归指令;
其中K5000表示回归的速度为5000HZ,K200表示爬行速度,当X1或X0触点接通时,即开始以爬行速度回原点。
【M8029】脉冲结束标志位,当【Y0】和【Y1】脉冲口不再发送脉冲,就复位掉【M0】,以便下次驱动原点回归指令。
点位采集部分
使用外部常开输入触点【x3】【x4】【x6】【x7】驱动【DDRVI】32位相对定位指令,达到轴的正反方向运行目的,其中【K999999】表示正向运行,【K-999999】表示反向运行,数值均发送的脉冲数,K999999表示无数脉冲。
使用外部输入触点【X5】的脉冲信号,利用【DMOV】32位传送指令把【Y0】脉冲输出总数寄存器【D8141、D8140】和【Y1】脉冲输出总数寄存器【D8143、D8142】的当前脉冲数传送给【D100Z0】【D200Z1】。同时使用【ADD】加法指令把变址寄存器【Z0、Z1】的值不断加【2】,实现把不同点位所需脉冲数值存放给不同的寄存器
注意:每按一次按钮,就代表存储一个点的数值,固定的框架内,原点到每次按按钮的脉冲数,由【D8141、D8140】【D8143、D8142】提供。
两轴运行部分
使用外部输入触点【X10】的脉冲信号驱动【MOV】传送指令把变址寄存器【Z0、Z1】的数值清零,同时驱动【DDRVA】绝对定位指令。其中【D100Z0】【D200z1】为上面采集到的脉冲数,K5000表示两轴使用同一频率发送脉冲;
使用【M8029】脉冲结束标志位,脉冲发送完成复位【M10】【M12】,使两轴停止,同时驱动【ADD】加法指令改变变址寄存器【Z0、Z1】的数值,从而实现下一次运行时脉冲数的改变;
置位【M13、M14】表示两轴都停止的时候,驱动一个定时器【T0】,停止一秒,一秒后重新驱动定位指令。
领取学习资料
西门子1200PLC位置控制的通用程序,一劳永逸
西门子1200PLC最多支持4路高速脉冲输出,可以控制四个步进或伺服电机,如果每个轴都调用一次运动控制值,编程工作量就会成倍的增加。那么有没有通用的程序可以一劳永逸呢,今天就介绍一下西门子1200PLC位置控制的通用程序,编写一个函数就可以实现多个轴的控制。
一、 编写运动控制函数
1. 添加函数块。双击“添加新块”、点击“函数块”、输入名称、编程语言LAD、“确定”;
图 1 新建函数块
2. 双击“位置控制”函数块,定义输入/输出变量;
图 2 定义输入输出变量
3. 添加运动控制指令。“指令”、“工艺”、“运动控制”、拖动MC_Power指令到编程区域,分配多重背景数据块,点击“确定”;
图 3 添加MC_Power指令
4. MC_Power分配变量;
图 4 MC_Power
5. 同样的方法添加MC_Reset确认故障指令;
图 5 MC_Reset
6. 添加MC_Home回原点指令;
图 6 MC_Home
7. 添加MC_Halt停止轴指令;
图 7 MC_Halt
8. 添加MC_MoveAbsolute绝对运动定位指令;
图 8 MC_MoveAbsolute_
9. 添加MC_MoveRelative相对运动定位指令;
图 9 MC_MoveRelative
10. 添加MC_Jog点动指令;
图 10 MC_Jog
11. 读取轴当前位置和当前运行速度;
图 11 读取当前位置和速度
二、主程序调用函数块
1. 双击“Main”,打开主程序,拖动“位置控制”到主程序编辑区,分配背景数据块,点击“确定”,完成函数块FB1的调用;
图 12 调用函数块
2. 分配控制命令和状态变量;
图 13 分配变量
三、 点动控制
1. 下载程序到PLC中,打开监控表,输入监控变量;
图 14 监控表
2. “正向点动”赋值1,旋转料库开始正向运行,“当前位置”开始累加,“当前速度”逐渐增大到设置的点动速度,“正向点动”清零即停止,“当前速度”降为零;
图 15 正向点动
3. “负向点动”赋值1,旋转料库开始负向运行,“当前位置”开始负累加,“当前速度”值逐渐增大到设置的点动速度,符号代表方向,“负向点动”清零即停止,“当前速度”降为零;
图 16 负向点动
四、 回原点
1. “回原点”赋值1,回原点模式为0(把当前位置设置为绝对零点),“当前位置”变为零,“回原点完成”有效,表示回零完成;
图 17 回原点
2. “回原点”清零,“回原点完成”清零,不影响绝对零点位置;
五、 相对运动控制
1. “相对运动距离”和“相对运动速度”赋值,注意速度的范围(在启停速度和最大速度之间),运动距离的符号代表方向;
图 18 设置相对运动参数
2. “相对运动触发”赋值1,上升沿触发指令执行,旋转料库按照设置的速度运动设置的距离“相对运动完成”有效时停止;
图 19 相对运动1
3. “相对运动触发”清零,重复以上步骤,每次都运动设定的距离;
图 20 相对运动2
六、绝对运动控制
1. 绝对运动控制之前先执行回原点,确定绝对零点位置;
2. “绝对运动目标位置”和“绝对运动速度”赋值,注意速度的范围(在启停速度和最大速度之间);
图 21 设置绝对运动参数
3. “绝对运动触发”赋值1,上升沿触发指令,旋转料库安装设置的速度运动到目标位置,“绝对运动完成”有效时停止,当前位置等于目标位置;
图 22 绝对运动1
4. 修改目标位置的值,重复以上步骤;
图 23 绝对运动2
通过以上步骤,创建一个通用的运动控制函数,在运动控制程序中调用此函数,分配对应的各轴相关的变量,就可以实现一劳永逸,大幅减少编程工作量。
本文由@豆豆牵着蜗牛在散步 原创,欢迎关注,帮您一起长知识!
西门子1200PLC 配置运动控制工艺,控制面板实现位置控制
西门子1200PLC的运动控制功能
相关问答
plc中的2轴和4轴有什么区别?
2轴4轴=2个输出点4个输出点比如PLC有两个口子可以输出脉冲信号,那么这个PLC就有2轴脉冲输出PLC有4个端口可以输出脉冲信号,那么这个PLC就有4轴输出输入也一样...
谁知道怎么用PLC控制两轴定位器画圆?
第一,数据插补第二,用专用的指令。好多PLC现在内置的有数控方面的各种便捷指令。没有的话就要进行数据插补了,不过精度较小。第一,数据插补第二,用专用的...
三菱PLc1轴结束如何转2轴?
要将三菱PLC的1轴控制转换为2轴控制,您需要进行以下步骤:1.配置硬件:确保您的PLC系统支持2轴控制。检查PLC模块和扩展模块的规格,确保它们具有足够的轴控制...
mc3+2如何编程?
MC3+2是一款基于STC12C5A60S2单片机的开发板,可以通过C语言进行编程。下面是一个简单的步骤,介绍如何在MC3+2开发板上进行C语言编程:1.准备必要的工具和软件...
推荐一款三菱plc加伺服驱动方案,做两轴联动直线插补,有什么好的方案?
感谢邀请!从经济可靠方面来说FX5U系列的是最划算的,因为它本身自带的高速脉冲输出,支持直线插补。使用Q系列要用加QD75系列定位模块,FX3系列PLC自带的高速...
施耐德都有什么系列的PLC?都有什么编程...-ZOL问答
施耐德都有什么系列的PLC?都有什么编程软件?施耐德施耐德PLC主要有以下系列:1、NEZAPLC(TSX08系列)2、QuantumPLC(140系列)3、MicroPLC(TSX...
plc是如何区分几轴的?
Plc可以通过脉冲+方向的形式连接伺服驱动器,但是每一组脉冲+方向只能驱动一个伺服。如果plc有高速脉冲输出功能,且有一组脉冲+方向,因此plc轴数为1。如果有四...
使用两台伺服马达带动两轴同步,可以么?
最简单的方法是用运动控制卡或者带插补功能的plc,做两轴插补运动,那么两个轴做的都是正弦曲线。用其中一个轴的脉冲去控制该电机即可。最简单的方法是用运动...
plc控制两台电机运行方法?
1、可以通过模拟量控制,一般采用0~10V信号控制,几套伺服就配几个输出,脉冲控制。你可以选用晶体管输出的PLC,通过发不同的脉冲数来控制伺服系统的速度;2、可...
怎样用三菱PLC配置控制多轴(12轴-32轴)运行?
需要联动插补吗,可以配一个串口运动控制器,PLC通过串口给他发指令就可以了。便宜好用。需要联动插补吗,可以配一个串口运动控制器,PLC通过串口给他发指令...