回复:S7-1200封装在标准的FC读取IO设备(变频器)传感器等的一致性数据分享与探讨

威师爷

  • 帖子

    5108
  • 精华

    47
  • 被关注

    255

论坛等级:至圣

注册时间:2013-09-18

白金 白金 如何晋级?

发布于 2017-09-03 08:48:53

16楼

展开查看
以下是引用yming在2017-09-02 23:17:55的发言 >14楼

 我通常肯定不会这么用。

要是就要求这么写。我也会用数组!

假定:设置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里面拆解为上面的结构的

 

工业起重机防摇摆 QQ:404136820 AntiSwayControl
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15117条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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