
我们在CODESYS平台,或者依托这个平台及类似遵循PLCopen的运动控制准则的PLC系统,都会有一个重要的接口,那就是AXIS接口:

从上图我们可以看到,基本所有与轴控相关的函数功能块,都有一个接口类型:AXIS_REF_SM3.

在CODESYS平台PLC搞运控,基本离不开CODESYS SoftMotion这一软运动控制:

不仅仅是点到点PTP,还是Gear、CAM,甚至是轴组等等,都需要这个软运动控制这个基础。
关于这里,我们在5年前早就已经详细的介绍过了,有兴趣可以直接点击下方图片进入链接:
上述基本把我们常用到的功能块,特别是轴控接口AXIS_REF_SM3详细的视频介绍过。那么,对于软运动控制不熟悉的可以详细进入了解。

AXIS_REF_SM3
从CODESYS的help系统介绍看:

AXIS_REF_SM3就是典型的FB结构,属于函数功能块。当然,具体的接口内容,我们找到国内的一些资料可以参考,这里直接给中文注释的版本,原版的可以进入帮助系统进行了解。



关于上述具体接口的含义及常用的,我们在视频里面也有详细的介绍:


Pointer to AXIS_REF_SM3
Pointer作为轴类型接口的指针,如何去使用的呢?为什么不直接用AXIS_REF_SM3呢?
一般我们为了方便对轴进行切换,可以用这种方式很方便的切换实际的物理轴和虚拟轴,而不需要更换配置,只需要改变下程序的逻辑,就实现了:

这里面g_pAxis就是轴指针:

这种方式非常适合加快调试,没有实际设备的时候,完全可以通过上述的g_bDebug赋值为TRUE,直接切换到虚轴进行调试即可。调试完成后,不需要更改任何地方,仅仅把g_bDebug赋值为默认的FALSE即可。
需要特别注意两点:
1.切换的时候,需要在所有物理设备在安全停机状态下切换。
2.所有包含AXIS_REF_SM3接口的功能函数块FB都要在每一个总线Task里面调用。
最后,关于AXIS_REF_SM3相关的问题和实践经验,欢迎留言讨论哦!