回复:在S7-300程序中做一个类式电气的消声程序

godkonws

  • 帖子

    207
  • 精华

    0
  • 被关注

    16

论坛等级:侠客

注册时间:2008-09-22

普通 普通 如何晋级?

发布于 2012-07-22 18:21:51

124楼

quote:以下是引用Zane在2012-07-22 16:46:30的发言:
quote:以下是引用godkonws在2012-07-22 10:51:28的发言:
Zane斑竹的程序中 输入管脚:Alarm 的格式要怎么写?我总是写不对,p#db7.dbx0.0 BYTE 20???
麻烦高手指导下,谢谢了


1,程序比较简单的话,可以直接利用ALARM做OP的报警位,外部程序访问背景数据块的alarm绝对地址即可,按全局数据访问,调用信号处理块时,不用填ALARM输入,留空即可。

2. 如果另外有报警位数据区,首先确认报警数据区的数据定义格式与ALARM定义的相同,数据块取好符号名,以"数据块符号名"."报警数据区符号名"的形式填入

3. 用SFC20强行拷贝,可能对于有些已经做好的老程序有用,当数据区格式长短不一致的时候,当然拷贝应在调用信号处理块之前,调用时亦不用填ALARM输入,留空即可

4. 改变程序块ALARM和ALARM_BUF的数据结构的定义,使之符合原报警数据区的数据格式定义。


谢谢Zane斑竹的解答,我有点不太明白,关于第一点, ALARM输入留空,那报警内容的数据源从哪里来呢?
我的做法类似第二种,我的项目比较小,一共就60几个报警位,在单独一个全局数据块(DB7)中按bool定义的(对应具体故障),预留100个字的长度作备用,然后在该数据块中接着定义一个数组----8个字,再用SFC20拷贝上面的BOOL位(8个字),到这个数组中,再用这个数组作Alarm的实参。方法可能比较笨,呵呵。

关于第三点,SFC20是拷贝全局数据块(比如我上面的DB7数据块),到Alarm FB块的背景数据块中吗?

第4点,如果Alarm管脚要输入内容,一般的项目都用不到128个字,如果不改短,程序做的无用功太多(循环次数太多),效率就低了。
要么忙着去生存,要么忙着去死.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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