回复:AT指令和Slice 访问有啥不同?

伊默

西门子1847工业学习平台

  • 帖子

    4273
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2015-10-20 10:41:33

27楼

其实AT还有一个非常好用的地方, 几乎是非用不可.


我使用ET200S的步进模块, 它的控制字首个双字(偏移量为0)有两种情况:一种是在位置模式下用DINT类型表示目标位置.  另一种是在速度模式下用REAL类型表示目标速度. 

而我又需要建立一个用户数据类型(UDT) ,   在这个UDT里我必须要事先指定数据类型, 比如我的项目要经常用到位置模式, 那么我将数据类型设为DINT.    


然后现在突然有个项目来了, 我即需要用位置模式,又要速度模式.  

当我使用位置模式时, 可以直接将一个DINT类型的变量赋值给该控制字

"yRW_EP".ControlData := DINT_TO_DWORD(#PulseTarget_EP);  //位置给定


而当我使用速度模式时, 我需要将一个REAL类型赋值给"yRW_EP".ControlData.   可是"yRW_EP".ControlData的数据类型为 DINT.    肿么办?   这个时候AT就能救命了!

#RealData0 := INT_TO_REAL(#ManSpd_EP)*5.0E+3/5/10;

"yRW_EP".ControlData := #DWatReal0;  //速度给定(正转)


I can do it

精华帖版主置评:经典!

推荐帖推荐理由:真心赞一个。一个FB多用途。模式转换。(推荐人:yming)

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11146条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。