Codesys FOR 循环之轴控
关于多伺服的轴控,不管怎么写都会很复杂,要么编程的时候代码行数多,要么是后期检查时非常麻烦,目前还未找到一个两全其美的方法,今天介绍的是通过FOR循环的轴控,就属于后者,代码行数较少,控制的轴数也没有限制,不需要一个轴一个的复制FB块,但是想在调试的时候实时查看轴的状态是一件非常麻烦的事情。下面将介绍这种方法。
先讲实现的难点,该方法的难点是指针的使用,需要对指针有一定的了解,作者在编写时就面临了这一情况,程序是报错的,但是困于作者能力有限,一直找不到原因。使用指针有两点需要注意,其一是不能存在空指针,所有的ADR必须真实存在且全部列出。其二是指针的解引用“^”不能在程序的任意点使用,只能在最终的指令管脚处使用,例如使用指针的指令在FB块中时,不能在FB块的输入引脚使用"^",只能在FB块中的指令管脚处使用,例如下面的程序中的MC_Power。
1、下面通过可视化界面介绍整个程序的功能
图中的红框中内容为掉电保持区,会在程序的掉电保持全局变量中声明。点动速度是轴手动(点动,寸动)时的速度。右下角的掉电保持区对应的按钮(例如“轴12位置0”),当按下对应的按钮时轴会按对应的速度行进到对应的位置(绝对定位)。
本图中界面,是整个程序中第12轴(其实可以声明的更多)的操作面板。与网上存在的多数视频演示一样:轴当前位置