基于西门子TIA V18轴控制的模块化编程

工业控制

1221人已加入

描述

用户可以选择西门子提供的LAxis_DBAnyBased标准应用库,也可以自己编程来实现。由于要操作的轴有各种类型(速度轴、定位轴、同步轴),因此块的形参不能固定为某种TO类型,而是采用更为灵活的数据类型“DB_ANY”。    

TO的数据结构具有嵌套性,例如速度轴是定位轴的一部分,定位轴是同步轴的一部分。当某个运动指令参数“Axis”的数据类型最低层级为“TO_SpeedAxis”时,允许使用高层级数据类型为“TO_PositioningAxis”和“TO_SynchronousAxis”的变量进行赋值。   然而当使用“DB_ANY”来传递值时,轴的类型必须和该指令要求的最低层级的类型一致,否则就要先做类型转换,如下图所示。总之程序处理还是有些繁琐的。

西门子

博途V18开始,新增了一种REF_TO”数据类型,编程就大大简化了。以实现所有类型轴的使能为例,我们只需执行以下步骤:

在用户FB中创建Temp变量,数据类型为“REF_TO TO_SpeedAxis”

尝试将“DB_ANY”类型的变量赋值给这个参考变量

判断赋值结果不为空,则调用MC_Power

西门子

此外,通过“REF_TO”还可以方便地访问TO的系统变量,例如读取一个轴的速度,这是以前单纯使用“DB_ANY”做不到的。

注意:里面用到的SCL表达“^” (dereferencing)是读写指向的变量时必须使用的。)

西门子

按照用法规定,REF_TO只能使用FB的临时变量区,因此编程时需注意重新赋值。   

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分