0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子技术控 来源:电子技术控 2023-11-06 12:41 次阅读

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

wKgaomVIcxaAJTFJAAAucGIl6pQ876.png

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

wKgZomVIcxaAJwJ5AAKp40zyfC8555.png

(二)走圆轨迹算法

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

wKgaomVIcxaAQFIEAABi6tzHM3c883.png

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

1、画笔移动到圆上

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

wKgZomVIcxaAB83eAAA-67Q_6Yg496.png

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

wKgZomVIcxaAPPuSAAARlRTg010646.png

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

2、画笔开始画圆

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

wKgZomVIcxaAeZoXAABMv3gwPCg023.png

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

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

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

wKgaomVIcxaATBb0AAARE-NnuE8073.png

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

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

wKgaomVIcxaAQElYAABIOxEK2Ns247.png

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

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

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

wKgaomVIcxaAaI_RAAAVHqoqozQ199.png

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

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

(三)PLC程序

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

(1)初始化和回原点

wKgZomVIcxaAO0t0AAA_bZ7ez94913.png

wKgZomVIcxaAZpU1AABTWE0Z77k898.png

(2)速度换算程序

wKgaomVIcxaAQ0r6AAAyDbMTjQQ197.png

(3)画圆程序

wKgZomVIcxaANaf5AABkEkHSAfo283.png

子程序结构

wKgaomVIcxaANV6cAAAfHUXL5bw909.png

wKgaomVIcxeAdtQVAABWFAQeLFc016.png

wKgZomVIcxeAavayAAC1F-QjO6U628.png

程序运行

wKgaomVIcxeAKJXnAAD0rmqxGBE270.png

wKgZomVIcxeAKLreAAKwhNJa-m8453.png

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

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

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

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

wKgaomVIcxeAGn0HAACcJZkvVrk130.jpg

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

wKgZomVIcxeAeeVdAAB-dZ9-Z_k025.jpg

3、命个名字。

wKgZomVIcxeACyUpAABngl2rIn4203.jpg

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

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

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

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

wKgaomVIcxeAWoeNAACYSvpoo1c927.jpg

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

wKgZomVIcxeAQhyLAABsqpWYOrE394.jpg

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

wKgaomVIcxeAPK-cAABwHa5ydTI897.jpg

wKgaomVIcxeATgqZAABwFpVbGs0844.jpg

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

wKgZomVIcxeAZXCHAAB9TwxgOlY044.jpg

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

wKgZomVIcxeAbwATAABx0B50EZE024.jpg

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

wKgaomVIcxeAHOcHAAB_tGEj-xM203.jpg

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

wKgaomVIcxeAVBYtAABufIKf4j4937.jpg

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

wKgZomVIcxeARebiAABhh1FZXVQ901.jpg

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

wKgaomVIcxeAKBXhAACQwQvu_SM712.jpg

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

wKgZomVIcxeAHkC9AACZhai7HtY709.jpg

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

wKgZomVIcxeAMMLUAACHFTyIFSc712.jpg

15、急停补偿。

wKgaomVIcxeAT7qZAACBg8RF_f4288.jpg

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

wKgaomVIcxeATkrPAABrI4RWsjs808.jpg

17、参考点设定

wKgZomVIcxeAM4X3AAB5u0j0UU8381.jpg

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

wKgaomVIcxeAaDD8AACcH688dIc685.jpg

19、偏移量设定

wKgZomVIcxeAeJuMAACgRcXz8dg772.jpg

20、搜索参考点方式选择

wKgZomVIcxeASmMfAACBCr0B7x0113.jpg

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

wKgaomVIcxeARUXFAACDh_6OtWU017.jpg

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

wKgZomVIcxeAK_xwAAB2Tn1xLnw534.jpg

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

wKgaomVIcxeAYepdAAB3PiyUfgM802.jpg

24、组件

wKgZomVIcxiAR8mIAADkYOwk5ls643.jpg

25、映射显示

wKgZomVIcxeAB2D_AAB9CYURADQ821.jpg

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

wKgaomVIcxeAY3sXAABpwyoSlMI231.jpg

1.启用并初始化轴

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

wKgZomVIcxeAPOtaAABfDqJGNrU487.jpg

管脚含义:

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

Done:完成标志位

Error:错误代码(字节)

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

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

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

2.手动控制轴

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

wKgaomVIcxiAF2IiAAA_K3ZMB1A773.jpg

管脚含义:

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参数值载入当前位置。

wKgaomVIcxeAYQePAAArNuXQ0SU494.jpg

管脚含义:

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

Done:完成标志位

Error:错误代码(字节)

4.绝对或者相对定位

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

wKgZomVIcxiAOvTcAAArCoPYsTM286.jpg

管脚含义:

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

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

Speed:目标速度,Real型数据

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

Abort:停止正在执行的运动

Done:完成标志位

Error:错误代码(字节)

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

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

审核编辑:汤梓红

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

    关注

    1268

    文章

    6184

    浏览量

    225861
  • 驱动器
    +关注

    关注

    51

    文章

    7333

    浏览量

    143028
  • plc
    plc
    +关注

    关注

    4976

    文章

    12267

    浏览量

    455036
  • 西门子
    +关注

    关注

    92

    文章

    2853

    浏览量

    113800
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79571

原文标题:

文章出处:【微信号:电子技术控,微信公众号:电子技术控】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    S7-200西门子PLC视频教程大全

    以下是西门子S7-200PLC视频教程,全文共有36个视频。详细介绍了西门子S7-200PL的各种概念,基础的知识,及各案例的讲解。 1、S7-20
    发表于 09-26 09:15 11.9w次阅读

    西门子S7-200PLC与西门子变频器MM440通讯程序实例

    西门子S7-200PLC与西门子变频器MM440通讯程序实例
    的头像 发表于 05-04 09:54 3639次阅读
    <b class='flag-5'>西门子</b>S7-<b class='flag-5'>200</b>PLC与<b class='flag-5'>西门子</b>变频器MM440通讯<b class='flag-5'>程序</b>实例

    西门子S7-200 PLC应用100例

    西门子S7-200 PLC应用100例》主要以西门子S7-200 PLC为主体,按基础知识、扩展提高和高级应用的结构体系,由浅入深、循序渐进地介绍了PLC基本逻辑控制、高级功能模块、
    发表于 09-17 10:02 675次下载
    <b class='flag-5'>西门子</b>S7-<b class='flag-5'>200</b> PLC应用100例

    西门子s7-200库函数安装程序

    西门子s7-200库函数安装程序,官网的200库函数程序含有全部西门子原装库函数
    发表于 01-20 15:55 4次下载

    西门子S7-200_编程手册

    西门子s7-200控制编程指令详解,以及部分特殊控制指令的讲解
    发表于 02-29 14:07 11次下载

    西门子S7-200使用教程

    西门子S7-200 PLC仿真软件超详细使用教程西门子S7-200使用教程
    发表于 05-06 16:43 0次下载

    带注释的西门子200程序

    西门子200程序
    发表于 10-17 10:59 0次下载

    西门子plc程序下载步骤

    今天我们主要学习西门子PLC的程序下载步骤,下面以S7-200SMART为例进行说明.
    发表于 07-25 11:25 2.7w次阅读

    西门子PLC教案(S7-200)

    关于西门子PLC教案(S7-200)资料免费下载。
    发表于 04-29 14:50 215次下载

    西门子S7-200高级应用

    西门子S7-200高级应用说明。
    发表于 05-06 17:28 63次下载

    西门子S7程序软件下载

    西门子S7程序软件下载
    发表于 12-09 16:06 22次下载

    西门子200PLC指令及程序设计培训课件

    西门子200PLC指令及程序设计培训课件
    发表于 06-16 14:20 4次下载

    西门子200源代码分享

    有关于西门子200系列的伺服步进使用源代码
    发表于 11-21 16:17 4次下载

    推荐国产远程IO,替代西门子ET200SP,可接西门子三菱欧姆龙PLC做从站

    推荐国产远程IO,替代西门子ET200SP,可接西门子三菱欧姆龙PLC做从站
    的头像 发表于 06-08 13:58 3579次阅读
    推荐国产远程IO,替代<b class='flag-5'>西门子</b>ET<b class='flag-5'>200</b>SP,可接<b class='flag-5'>西门子</b>三菱欧姆龙PLC做从站

    西门子S7-200 SMART编程技巧

    【导读】分享一个西门子S7-200 SMART编程技巧。
    的头像 发表于 07-10 10:10 1646次阅读
    <b class='flag-5'>西门子</b>S7-<b class='flag-5'>200</b> SMART编程技巧