codesys进行控制虚拟轴运动时出现的一些奇怪bug的解释
问题描述
最近在学习codesys,在学习控制虚拟轴(单轴)运动时,出现了几个奇怪的bug,这些bug不影响最终程序运行,但是也需要进行一些说明。
第一个奇怪的bug:新建的工程没有SoftMotion General Axis Pool
选项
在我新建的一个工程中,没有SoftMotion General Axis Pool
选项,而且也没有办法添加SoftMotion General Axis Pool
选项。
如下图所示
而一些教程所给出的界面在新建工程时就有SoftMotion General Axis Pool
,如下图所示
究其原因,可能是因为Device的因素。我在codesys上官网下载的是免费版本的,设备只有五个,如下图所示。
而很多教程所使用的设备是,CODESYS Soft Motion Win V3 x64,这个设备在官网上是付费的。
所以,综上所述,在新建工程时不出现SoftMotion General Axis Pool
选项,原因很可能时设备选择不同。
第二个奇怪的bug:在新建工程SoftMotion General Axis Pool
选项时,无法手动添加
在左侧树状图界面,我没有转到能让我添加SoftMotion General Axis Pool
的地方。
在这种情况下,只能“曲线救国”来添加SoftMotion General Axis Pool
,操作如下:
首先右击Applicant——添加对象——轴组
然后给轴组进行命名并添加。
等待一段时间后会发现左侧树状图多了三个项目,其中就有SoftMotion General Axis Pool`。
然后如果要进行单轴控制的话,需要将AxisGroup
选项删除。
第三个奇怪的bug:虚拟轴运行的程序仅能在新建工程时所建立的MainTask中运行
如果将程序写入PLC_PRG
中,并且将PLC_PRG
放在MainTask
下,程序可以正常运行。
然而,刚刚将PLC_PRG
放在新建轴组的时候出来的SoftMotopm_PlanningTask
任务下,程序则不能运行。
即使将SoftMotopm_PlanningTask
改名为MainTask
,然后将PLC_PRG
放在其下面,程序也无法运行。
原因暂不清楚,但可能也与设备选择有关,我的设备是免费的CODESYS Control Win V3 x64,而不是CODESYS Soft Motion Win V3 x64。