回复:一篇好文章和大家共享-----愿中国的工业自动化能够早日摆脱小作坊式的时代!

开不了口

  • 帖子

    287
  • 精华

    0
  • 被关注

    8

论坛等级:侠士

注册时间:2008-03-04

普通 普通 如何晋级?

发布于 2011-11-07 15:48:42

15楼

真的很好,最近一个项目结束后也一直在想怎么使用面向对象的思维去进行自动化控制编程。
文章说的有好几个地方对我很有帮助大家讨论下:
1、在项目中我也是很怕模块被多次调用后,里面的当前逻辑状态将无法监控,这点对我们开发人员如果前期测试完整,那应该是没问题的。但是对于现场维护人员来说,很难去查找具体原因。文章认为只要提供模块功能文档即可,我认为详细文档很重要,但是工控行业与普通IT行业还是有所区别的,仅仅是功能文档还是不够,必须从模块本身的设计去解决问题。可以参考西门子很多功能模块的设计,像一些通讯模块,不仅仅完成了功能需求,当前控制处于什么状态都有输出一个Status状态字,这样我们这些使用者在不需要监控其模块内部时,也可以清楚的了解当前运行情况。
2、类概念的引入。FB+UDT可以实现类概念,当调用FB并指定了某个背景数据块时,即实例化了这个类。多重背景可以将多个单纯的数据类合并,但是很遗憾这样的类在实现动态扩展时我遇到了困难,例如某个设备,它在A区使用了3个电机,但是在B区只有2个电机,DB块我没研究出来怎么动态的去在多重背景中再加一重(不知道这样描述是否合理。。),只能重新定义一个类。如果下次项目使用4个电机,又得重新定义无法参数化。
3、个人倾向使用SFC语言。西门子叫它S7-Graph。一开始它设计的目的是用于顺序控制,但是它的编程思路还真有点适合面向对象(个人感觉,比结构化文本还好用)——当对象处于某状态时,执行某个动作。对象的状态转化使用此语言编程,而执行的动作可以使用FC模块编写,被FB块调用且所有的输入输出参数都来自背景数据块,也可以抽象为一个类。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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