前面讲了SoftMotion如何控制单个轴,这一节就来看看多轴控制是如何配置的。

本节目标:实现电子凸轮主从控制,这一次使用PLCopen
IEC61131-3
规定下的另一种编程语言,连续功能图(CFC,Continuous Function Chart)。主轴的范围是:0-10度表换,从轴是

编写过程

codesys的事件任务类型 codesys编程案例_SoftMotion


选择PLG_PRG语言为:连续功能图

codesys的事件任务类型 codesys编程案例_电子凸轮_02

添加两个轴,一个是主动轴,另一个是从动轴,注意把名字更改一下:

codesys的事件任务类型 codesys编程案例_CODESYS_03


在Application中添加一个Cam表对象:

codesys的事件任务类型 codesys编程案例_CODESYS_04


Cam表是分析主轴位置和从轴位置、速度、加速度以及加加速度的四个表格。下面是默认生成的Cam表:

codesys的事件任务类型 codesys编程案例_CODESYS_05

Cam表用于设置主轴和从轴的一些属性,如一些关键位置和运动范围:

codesys的事件任务类型 codesys编程案例_ci_06


点击Cam对象页中的cam表属性添加一些关键位置:

codesys的事件任务类型 codesys编程案例_电子凸轮_07


其中X表示主轴位置,Y表示对应的从轴位置,上图已经设置了一些关键位置(如主轴位置为4度时,从轴位置是200度)。切换至PLC_PRG进行程序的编写,无论是主动轴还是从动轴,我们首先应该利用使能模块进行使能,在右侧找到顺序块拖到空白区域:

codesys的事件任务类型 codesys编程案例_ci_08


双击问号,点击...进入向导,找到MC_Power:

codesys的事件任务类型 codesys编程案例_SoftMotion_09


这个块其实就是函数的输入和输出,输入有Axis、Enable、bRegulatorOn和bDriverStart三个,输出则有:State、bRegulatorRealState、bDriveStartRealState、Busy、Error和ErrorID六个。轴我们选择我们创建的名字为Slave和Master,具体含义得查查手册= =。再添加一个让主轴旋转的功能块MC_MoveVelocity 凸轮表选择MC_CamTableSelectMC_CamIn

codesys的事件任务类型 codesys编程案例_电子凸轮_10


为了观察效果,向Apllication中添加一个视图,再MC_Basic中找到RotDrive,添加两个,并绑定我们的实际对象:

codesys的事件任务类型 codesys编程案例_CODESYS_11


下载到我们的树莓派:

codesys的事件任务类型 codesys编程案例_电子凸轮_12

点击MC_MoveVelocity上的执行按钮,可以看到我们的主动轴正在以2m/s速度运动,选择CamIn后可以到从动轴按照预计运动规律运动也在一起。

codesys的事件任务类型 codesys编程案例_电子凸轮_13