线下实训
HOME
线下实训
正文内容
plc编程圆 PLC画圆很难吗?其实,只要有方法,这都是浮云
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC画圆很难吗?其实,只要有方法,这都是浮云

用PLC怎么画圆?相信很多朋友都思考过这个问题,PLC200 smart并没有开发这个功能,需要自己写程序实现,本文和喜欢工控和开发的朋友们交流一下这个有趣的问题,笔者在调试成功的基础上附上视频和程序介绍一种画圆的方法,此方法通用性强,可以根据这个原理方法绘制其它不同的曲线。

以上图的抛物线y=x^2为例分析,我们知道一个方向上走匀速,一个方向上以恒定的加速度运动,轨迹就是抛物线。同样我们可以想到,X轴匀速运动,Y轴变速运动,运动轨迹就会走出曲线。匀速运动时用路程除以时间就可以得到速度,而变速度就需要从微分的角度来计算,即:

所以从原点开始,X方向上以2mm/s的速度匀速向右,Y方向上以Vy=4X的变速度向上运动就能得到上图抛物线。

有了前面的分析,我们可以试试分析这个以50mm为半径的圆形:X^2+Y^2=50^2

可以看到(-50,50)区间内每一个X对应两个Y值,两个Y值一正一负且绝对值相等,对应位置的导数值也是一正一负且绝对值相等,那么当X轴方向上以2mm/s的速度向右运动,要得到这个圆弧的轨迹,在任意一个X位置对应的Y的速度是:

这里都取了X方向的速度为2mm/s,是一个比较慢的速度,再根据Vy的公式(编写入中断程序进行运算),可以编写程序绘制圆形了,只需要注意在在绘制途中X方向和Y方向改变的位置要做一些处理,下面用程序与注释来说明整段程序的过程。(下图是程序建立坐标原点即参考点后实际走出来的轨迹)

首先画圆形需要的是一个两轴控制台(包括步进电机和画图的平台等),两个驱动器,一台200PLC,笔者视频里用的是一个三轴的平台,驱动器细分调至3200,写程序之前使用运动向导,设置两个轴,测量系统选择工程单位,方便我们计算,也更直观,细分3200,我的步进电机每转一圈前进5mm,如下图所示:

方向控制选项如下图,X轴选择单相2输出,因为画圆过程中X方向上有正有负;Y轴选择单相1输出,因为Y轴运动靠的是点动RUN控制,笔者在调试过程中发现使用单相2输出时,使用点动的Director或者Q0.7来控制方向会有时候不受控制,这是因为手动子程序里包含了方向控制导致程序冲突,所以这里Y轴使用单相1输出,调试结果很稳定。其余对电机速度,JOG选项进行一些常规设置即可。(笔者尝试了为实现Y轴变速运动,使用组态中的相对运动和绝对运动子程序,为其提供变速度且实时改变终点位置,结果是Y轴没有动作,因此用相对和绝对不能控制一个速度和位置的数值实时变化的运动,因此最后选择了点动来实现这个变速的功能)

然后开始写主程序:

这是笔者原创的程序,200smart并没有开发相应的功能,三菱plc有圆弧插补功能,笔者没有接触过三菱plc,通过查阅PLC圆弧插补的资料和原理,对两种方法进行了对比:圆弧插补功能的原理是将圆分解成N段折线来画,其误差在某范围内可控,而以上介绍的方法从纯数学的角度来讲是相当完美的,但是也有缺点,它的完美程度取决于中断运算的时间和X方向上的速度,如果运算时间设计较长,Y轴加速情况下会丢步较多,减速情况下会过冲较多,运算时间短对CPU要求较高,X方向速度过快会导致丢步较多,另外由于是浮点数运算,每一步本身就存在极少量丢步。

尽管有这么多理论上的缺陷,但是由于10ms运算间隙时间极短且X轴方向上走的较慢,实际走的圆非常的光滑接近完美的圆。

大家看完此文应该可以完成很多曲线的编程画自己想画的图形了,但是根据函数的复杂性和求导的难度使得编程有难易程度的区别.

S7-200SMART 圆形轨迹的算法及程序

(一)电气设备

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

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

(二)走圆轨迹算法

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

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

1、画笔移动到圆上

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

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

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

2、画笔开始画圆

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

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

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

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

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

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

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

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

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

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

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

(三)PLC程序

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

(1)初始化和回原点

(2)速度换算程序

(3)画圆程序

子程序结构

程序运行

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

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

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

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

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

3、命个名字。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、急停补偿。

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

17、参考点设定

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

19、偏移量设定

20、搜索参考点方式选择

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

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

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

24、组件

25、映射显示

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

1.启用并初始化轴

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

管脚含义:

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

Done:完成标志位

Error:错误代码(字节)

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

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

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

2.手动控制轴

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

管脚含义:

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

管脚含义:

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

Done:完成标志位

Error:错误代码(字节)

4.绝对或者相对定位

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

管脚含义:

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

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

Speed:目标速度,Real型数据

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

Abort:停止正在执行的运动

Done:完成标志位

Error:错误代码(字节)

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

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

相关问答

plc点数什么意思?

PLC的点数就是PLC上面输入输出接线端子的数量总和。点数估算:I/O点数估算时应考虑适当的余量,通常根据统计的输入输出点数,再增加10%~20%的可扩展余量后,作...

在PLC的编程中怎样用两个定时器实现振荡电路?

要通过步进或伺服电机实现。这里面用到插补的知识。宏观上画的是圆,微观上画的是折线。一个至少有两路脉冲输出的plc控制x,y方向上的两台伺服电机。一会儿控制...

连接PLC数据线的类别及各种接头的名称-ZOL问答

PLC通讯,常用的有串行通讯,以太网通讯,现场总线通讯。串行通讯里,分为D口和USB口。D口为九针口型,针的叫公型口,口的叫母型,有三种协议,分别为:RS232,RS422和...

请问三菱PLC与电脑232接口怎么接线?

三菱PLC通信口圆8针的都是RS422的,可以使用SC09通讯电缆进行通讯。如果使用RS232通讯扩展板和通讯扩展模块可以与电脑进行RS232通讯。并且可以使用DB9插头座制...

plc是什么?

首先感谢您提问,我从事自动化行业将近十年,每天都和PLC打交道,所以很有资历回答这个问题。从您的问题而言,什么是PLC?来进行分析说明。首先什么是PLC?可...国...

三菱FX2NPLC程序写入口是什么接口?RS422?

三菱FX2NPLC编程口使用的是圆8针通讯口,通讯形式是串行通讯RS422.三菱FX2NPLC编程口使用的是圆8针通讯口,通讯形式是串行通讯RS422.

三菱PLC及触摸屏连线?

GT1050有专用422线(一头圆一头公头9针COM)与PLC直接联接。同时屏上还有一个232接口与电脑直接联接可实现编程。(或USB)如果你多买一个232-BD的话把BD插在PL...

plc怎样理解中断功能,有没有例子说明下?

每个厂家的PLC程序都不一样,现在我以西门子smart200来对案例说明一下。中断指令S7-200SMART设置了中断功能,用于实时控制、高速处理、通信和网络等复杂和特...

三菱PLC的输送带测速程序怎样写???皮带转一圈有个讯号输入PL...

你在传动滚筒边沿装一个齿圈,用光电或霍尔开关检测信号,PLC的X端口,编程时用计数器计数,经过数学运算就能得到带速。另外在下托辊同样装一个用来作断带保护。...

台达输程序一致侦测中?

您好,您这样:一、硬件1、电脑端:9针RS232接口,PLC端:台达9针-圆形通讯接口通信线,这个通讯线可以向台达购买。然后连接把通讯线两端分别连接电脑和PLC2...

 梦幻西游单机  暗黑三 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部