电工吧 关注:547,286贴子:8,216,107
  • 9回复贴,共1

plc用伺服画圆需要微积分吗?

只看楼主收藏回复



IP属地:浙江来自Android客户端1楼2021-09-22 22:50回复
    好深奥的问题


    IP属地:广东来自iPhone客户端2楼2021-09-23 12:34
    回复
      2025-05-15 09:56:00
      广告
      不需要。


      IP属地:山东来自iPhone客户端3楼2021-09-23 12:41
      收起回复
        不需要微积分,首先核心算法上,只需使用圆的方程,圆的标准方程(x-a)²+(y-b)²=r²中,圆心坐标为a,b,半径r,x和y就是圆上的点,也就是plc的两轴,在这儿只是画个圆,圆心坐标无所谓,因此简化为x²+y²=r²,半径多大你自己定,然后任意定个轴的开始坐标,,如设x轴起步位置为8,假设半径为10,好了,通过上面方程算出y的值,这样plc就知道了起步的画笔坐标。
        第二步,首先以上方程需要在中断程序里计算,可以选择ms级中断,如1ms计算一次中断程序。每次计算时,x都加1,而r半径是常数继续带着走,那么一直在更新的就是y轴的坐标,实际上可以看出,x轴一直做匀速运动,但y轴是变速运动,每一次计算时,都把本次的y值减速上一次的值,得出的就是y轴所移动的距离,然后乘以你plc多少个“脉冲/距离”,就可以得出plc的y轴要发多少个脉冲量。如此往复,当y轴计算结果为0时,那么这最后画的是什么?一个圆弧,或者说1/4圆。
        第三步,以上只是画出1/4个圆,圆有4个象限,每个象限里x和y轴的移动方向是不同的,上面第二步里,我们的x不断增大,y不断减小,这是圆的右半上区,也就是1象限,很明显,我们画一个圆,在1象限里,x轴增大,y减小,那么到了2象限,x轴减小直至0,y增大,在这依然可以把x作为匀速运动,y通过计算的结果来变速运动,剩下的3和4象限可以采用同样的算法,伺服电机十字架在画圆时就是顺时针画圆的。
        好了,上面就是画圆的核心思路,中断每计算一次得出结果,都需要触发一次脉冲输出,同时还需要判断是否完成该象限的画图,实际上就是4套中断程序,对应计算4个象限。这是纯手工写的画圆程序,是我之前看过一个西门子200plc画圆程序学到的经验,实际程序不复杂,只是很繁琐,好比1+1=2很简单,但是老师要你罚抄3000遍
        最后,现在的plc一般有现成的库或者函数块,不需要那么麻烦自己写


        IP属地:四川来自Android客户端4楼2021-09-24 11:53
        收起回复
          从细节上看,三菱的插补法将圆弧分解为n段折线,只需要控制好每次折的长度,那么肉眼看着就是非常漂亮的圆,但是显微镜下看着依旧是锯齿边。而通过圆方程计算的圆弧,就和人手画的一样,显微镜看着依旧是圆弧。当然了,实际作用中压根用不到显微镜级别的精度,网上也有资料,为啥很多机器画圆都用插补而不用圆方程,因为插补毕竟还是直线运动,需要计算的量没有圆方程高。
          我用资料的原话“通过圆方程,它的完美程度取决于计算的时间和设备速度精度的把控,如果cpu运算时间较长,y轴加速时就会丢步,而减速时就会过冲,也就是cpu跟不上实际运动的速度,并且计算时间太长也会导致x轴丢步”
          其实简单的理解就是,插补画法是plc一开始就把需要画的圆拆分好了,要多少段?每段x和y移动多少?这都是一开始就计算好的,那么只需要按着预先算出的值去输出即可。而圆方程是实时运算并输出脉冲,走一步算一步,理论上是完美的,但实际上非常吃设备硬件配置,对于大多数买家来说,画个圆而已,切割圆钢板,哪需要0.01mm的精度?精度高了纯浪费钱。


          IP属地:四川来自Android客户端5楼2021-09-24 12:28
          回复