西门子S7-200SMAR圆形轨迹的算法及程序

电子说

1.3w人已加入

描述

(1)原理图:Q0.0为X轴脉冲,Q0.2为X轴方向;Q0.1为y轴脉冲,Q0.7为y轴方向

plc

(2)实物图:三个步进驱动器,三套电机配合丝杆,定义往电机方向移动为正方向,丝杆的逻辑为4mm,步进驱动的细分设置为3200个脉冲一转。如下图所示:

plc

(二)走圆轨迹算法

西门子S7-200SMART系列PLC不支持圆弧插补功能,所以需要自己根据算法进行计算后分别驱动X轴和Y轴的移动从而来实现画圆功能,要驱动XY轴画圆,可采用极限逼近法,把画圆弧变成画线段,如下图所示左侧为六等分,角度a=30°,右侧为十二等分,角度a=15°。

plc

从上图中可以看出,当等边多边形的边越多时,则多边形的轨迹就越和圆相近,所以当角度a足够小时,则得到的多边形轨迹就越与圆接近。根据以上分析需要完成画圆功能,我们需要知道“圆心坐标值”、“圆的半径”、“画圆的速度”,然后根据分为三部分来实现:

1、画笔移动到圆上

把XY轴分别回原点,回原点后的位置默认为XY平面坐标的原点,然后由原点移动到圆心坐标,如下图所示1#点为圆心,2#点为圆上点。

plc

假设1#点的坐标为(X1,Y1),速度为V,则X轴移动的距离为X1,Y轴移动的距离为Y1。根据勾股定理可计算出原点到圆心的距离“Y(0→1)”、X轴移动速度“VXaxis”和Y轴移动速度“VYaxis” ,计算公式如下所示:

plc

当画笔到达1#点后,然后Y轴不动,X轴以V的速度移动半径R的距离到达圆上2#点位置,假2#点的坐标为(X2,Y2)

2、画笔开始画圆

画笔从2#点位置开始移动画圆,假设下个圆上的点为3#点,坐标为(X3,Y3),从圆心到3#点和从圆心到2#点的角度为a,如下图所示:

plc

根据三角函数可计算出3#点的坐标(X3,Y3)的值分别为:

X3=Cos(a)*R+X1,Y3=Sin(a)*R+Y1

根据勾股定理可计算出XY轴要移动的距离 “Y(2→3)”的值。X轴移动速度“VXaxis”和Y轴移动速度“VYaxis” ,计算公式如下所示:

plc

注:此时X2和Y2为X轴和Y轴的当前位置,X3和Y3为X轴和Y轴要移动的目标位置,速度需要取绝对值。

同理:当画笔到达3#点后,角度变为2a,则对应的圆上点为4#点,坐标为(X4,Y4),如下图所示:

plc

根据三角函数可计算出4#点的坐标(X4,Y4)的值分别为:

X4=Cos(2a)*R+X1,Y4=Sin(2a)*R+Y1

根据勾股定理可计算出XY轴要移动的距离 “Y(3→4)”的值。X轴移动速度“VXaxis”和Y轴移动速度“VYaxis” ,计算公式如下所示:

plc

注:此时X3和Y3为X轴和Y轴的当前位置,X4和Y4为X轴和Y轴要移动的目标位置,速度需要取绝对值。

依次下去,每走完一次后,角度自加一次,当角度值大于360°时,则认为画圆完成。

(三)PLC程序

根据分析,对于S7-200SMART系列PLC的程序设计主要分为“运动向导的组态配置”、“初始与会原点程序”、“速度计算程序”、“开始画圆程序”

(1)初始化和回原点

plc

plc

(2)速度换算程序

plc

(3)画圆程序

plc

子程序结构

plc

plc

plc

程序运行

plc

plc

**【延伸阅读】S7-200 SMART 运动控制指令详解 **

S7-200 smart 运动控制指令由编程软件向导生成,运动控制指令有很多条构成,且每条指令都带有很多接口参数,想要使用这些指令,要先知道接口是什么意思,虽然帮助文章都有解释,但读懂帮助文件也很费劲,今天就详细给大家介绍运动指令的使用。

S7-200 SMRAT 运动控制指令如下图生成:

1、选择"运动"右键打开。

plc

2、本次就以"轴0"为例。

plc

3、命个名字。

plc

4、数字1位选择工程单位,可以使工程单位,也可以使用脉冲。

数字2是电机旋转一圈的脉冲量,我目前步进拨码设定是10000个脉冲旋转一周

数字3是单位,根据自己需要设定

数字4是电机旋转一圈的工程量,我设定的是360度,也就是说10000个脉冲对应360度。

plc

5、方向控制,我是用的脉冲加方向,所以选择单项2轴。

plc

6、正负极限根据需要设定,我这个没有正负极限就没有选择。

plc

plc

7、零电位使用,走绝对位置和相对位置之前一定要定义好原点,否则绝对位置和相对位置不运行。

plc

8、0脉冲位置,也可以使用此点定义0点。

plc

9、停止根据需要选择,通过阅读STP就能理解什么意思。

plc

10、停止根据需要选择,通过阅读TRIG就能理解什么意思。

plc

11、禁用根据需要选择,通过阅读DIS就能理解什么意思。

plc

12、最大速度和最小速度根据现场情况设定,我设定最大速度为360度/秒。

plc

13、JOG命令也就是手动运行,根据需要设定速度,建议设定小一些,看看运行速度再调整。

plc

14、此处设定加减速时间,也就是脉冲输出的加减速时间,根据现场情况设定。

plc

15、急停补偿。

plc

16、反冲补偿,也就是校准丝杠间隙。

plc

17、参考点设定

plc

18、找零点时速度和方向设定。

plc

19、偏移量设定

plc

20、搜索参考点方式选择

plc

21、从驱动器中读取绝对位置

plc

22、曲线设定,我这里没用曲线,没有生成曲线。

plc

23、点"建议"自动分配地址。

plc

24、组件

plc

25、映射显示

plc

26、完成,点击生成就完成了。

plc

1.启用并初始化轴

AXISx_CTRL子程序(控制)启用和初始化运动轴,方法是自动命令运动轴每CPU更改为RUN模式时加载组态/曲线表。在项目中只对每条运动轴使用此子程序一次,并确保程序会在每次扫描时调用此子程序。使用SM0.0(始终开启)作为EN参数的输入。

plc

管脚含义:

MODE:启用模块。1=可发送命令;0=中止进行中的任何命令

Done:完成标志位

Error:错误代码(字节)

C_Pos:轴的当前位置(绝对定位或者相对定位),工程单位:Real型数据;相对脉冲:DINT型数据

C_Speed:轴的当前速度,Real型数据

C_Dir:轴的当前方向(1=反向,0=正向)

2.手动控制轴

AXISx_MAN子例程(手动模式)将运动轴置为手动模式。这允许电机按不同的速度运行,或沿正向或负向慢进。在同一时间仅能启用RUN、JOG_P或JOG_N输入之一。

plc

管脚含义:

RUN:1=轴手动运行(速度和方向分别由Speed和Dir管脚控制)0=停止手动控制

JOG_P:1=正转点动控制

JOG_N:1=反转点动控制

Speed:RUN运行时的目标速度,Real型数据

Dir:RUN运行时的方向

Error:错误代码(字节)

C_Pos:轴当前位置(绝对定位或者相对定位),工程单位:Real型数据;相对脉冲:DINT型数据

C_Speed:轴当前速度,Real型数据

C_Dir:轴的当前方向(1=反向,0=正向)

3、查找参考点

走绝对位置和相对位置前需要找到真实的零点,绝对位置和相对位置才能根据零点运行。

AXISx_RSEEK子程序(搜索参考点位置)使用组态/曲线表中的搜索方法启动参考点搜索操作。运动轴找到参考点且运动停止后,运动轴将RP_OFFSET参数值载入当前位置。

plc

管脚含义:

START:每接通一个扫描周期,就执行一次查找参考点(参考点查找方式由轴组态确定)

Done:完成标志位

Error:错误代码(字节)

4.绝对或者相对定位

AXISx_GOTO子程序命令运动轴转到所需位置。

plc

管脚含义:

START:每接通一个扫描周期,就执行一次定位

Pos:目标位置(绝对定位为坐标点,相对定位为两点间距离),工程单位:Real型数据;相对脉冲:DINT型数据

Speed:目标速度,Real型数据

MODE:移动模式0:绝对位置 1:相对位置 2:单速连续 正向旋转 3:单速连续反向旋转

Abort:停止正在执行的运动

Done:完成标志位

Error:错误代码(字节)

C_Pos:轴当前位置(绝对定位或者相对定位),工程单位:Real型数据;相对脉冲:DINT型数据

C_Speed:轴当前速度,Real型数据

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分