不需要微积分,首先核心算法上,只需使用圆的方程,圆的标准方程(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一般有现成的库或者函数块,不需要那么麻烦自己写