发布于 2012-04-18 15:05:04
37楼
以上程序经过测试!另外,我的习惯是,既然你要用scl就尽量采用FB,为什么?因为有背景数据块的支持可以最大程度的减少对外部全局变量的依赖,比如楼上那个FC要用到IN_OUT,为什么?就是因为没有数据块支持,必须指定一个全局变量,可以是 M点也可以是DB点。但是这样的块在复用的时候会和外界的全局量有联系,增加了块和块互相调用的耦合性,复用设计的原则之一就是块的功能应该独立,而不应该借助外界变量,我称之为耦合度,耦合度越低的块可复用程度越高。我推崇面向对象的设计方式,即,一个对象的功能用FB块来包装,FC作为调用框架,在相似功能多的设备的项目中可以极大减少程序量,你只要一个一个把FB块往 FC里面扔,然后指定 DB就可以了。另外一点,不可避免的大家会遇到必须使用定时器的场合,我建议在 FB块里内建IEC_Timer,SFB4,5,6,用多重背景,这样你连定时器都封装了,让硬件定时器见鬼去吧。计数器咱自己写就行了不就是一个pulse数一下的问题嘛。