西门子plc200如何画圆

西门子plc
西门子plc
西门子plc
1976
文章
127
评论
2018年12月17日19:25:40 评论 3,390 阅读

用PLC怎么画圆?介绍一种画圆的方法

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

西门子plc200如何画圆

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

西门子plc200如何画圆

我们假定X轴方向上走2mm/s的匀速,即:

西门子plc200如何画圆

西门子plc200如何画圆

有了前面的分析,我们可以试试分析这个以50mm为半径的圆形:

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

西门子plc200如何画圆

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

西门子plc200如何画圆

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

西门子plc200如何画圆

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

西门子plc200如何画圆

方向控制

西门子plc200如何画圆

方向控制

西门子plc200如何画圆

梯形图

然后开始写主程序:

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

西门子plc200如何画圆

梯形图

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

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

大家看完此文应该可以完成很多曲线的编程画自己想画的图形了,但是根据函数的复杂性和求导的难度使得编程有难易程度的区别,可以挑战一下试试画一个爱心,如下图。该程序我会在下一篇文章写给大家供参考。

西门子plc200如何画圆

西门子plc200如何画圆

继续阅读
weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: