恭喜,你发布的帖子
发布于 2017-09-03 08:48:53
16楼
我通常肯定不会这么用。
要是就要求这么写。我也会用数组!
假定:设置10台变频器,都是采用了6/6PZD的过程数据。
那么就先定义个写驱动数据类型(6Word);每个字都写好说明。;再建个读驱动数据类型(6Word);每个字都写好说明。;返回值也写上。这是一个完整的6/6PZD 数据类型。
然后建个数据块,里面:先建个硬件接口数组(1-10);数据类型 HW_SUBMODULE;再建个数组(0-10),数据类型 写驱动;再建个数组(0-10),数据类型 读驱动;返回值也是个数组(0-10)。
10个硬件接口的标识符写在硬件接口数组初始值中。
调用时,使用不同的硬件接口(数组之N),读写数据都是数据块的(0);指针长度都不变。
完成之后,根据返回值状态,传送到指定N的那个驱动数组中。有错,按出错处理。
对吧?
这个LAD 就能实现,没那么麻烦吧?
非常感谢Y版的经验分享!非常感谢!
我原来是这样使用的,其实与你的方法应该是一样的,只不过我是先定义一个UDT数据结构,也就是变频器的控制位状态位,控制字状态字按照顺序排列好,编写变频器控制程序时就直接调用对应的位就可以
下面是建立一个UDT数据类型,或者说是变频器的数据结构类型,我们这个变频器比较特殊,控制字是以位来控制的 ,也就是需要控制什么功能就使能对应的位,例如要控制 S1_RUN,那么就使能这个位并且在过程控制字同时提供速度值,变频器就运行S1方向了。我看其他变频器是16位同时使能的。这个在使用上有一点区别!
所有的状态字控制字是先读取到 DATA_IN1-IN5 DATA_OUT1-OUT5的20个字节,然后在FC里面拆解为上面的结构的
请填写推广理由:
分享
只看
楼主