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

Zane

版主 西门子1847工业学习平台

  • 帖子

    21047
  • 精华

    399
  • 被关注

    1484

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2012-02-22 07:48:08

82楼

虽然,一天比较累了,但我还是抑制不住兴奋,真的很高兴有人这么快能给出此帖的正解。

这题的关键之处大家现在可能也知道了,在于如何检测多个新报警位的到来,对于单个新报警位的到达检测我们很容易的想到用上升沿指令,而对于多个报警该如何做?利用字逻辑指令,我们可以一次检测多达16/32位的上升沿,指令如下:
L ALARM_WORD
L ALARM_BUF
XOW
L ALARM_WORD
AW
T ALARM_NEW
判断 ALARM_NEW是否为0,即可知道有无新的报警了。如果我们以字为单位,50次循环判断可以从800条报警位中检测是否有新到报警,如果是双字为单位,可以更快或检测更多条报警信息。为什么建议用字为基本单位呢,1.siemens面板的报警数据接口是以字为单位定义的,我们直接在已有的报警程序上即可添加此功能;2.数据接口字长度有可能是奇数,双字为基本单位会带来程序处理的不方便。

至于,间址寻址等大家处理的方式就很多了,这里不再累述。

点评给出答案的三位:冬日,火麒麟,liucs_2009
冬日最早给出包含上述指令的答案,火麒麟的答案是根据冬日的答案的改进,liucs_2009的答案比冬日晚了6个多小时,而且辅助的寻址程序不可用。 不知道,三位匆忙中做的程序是否有过测试,我粗看一下都有问题,但瑕不掩瑜,冬日是最佳答案的提供者,我会按我所说为冬日申请下一季本版唯一的版区标兵。

我也给出我的程序,尽量的规范,经过测试,请大家指正!

谢谢大家的积极参与,我想此帖可以告一段落,不知楼主是否满意?
Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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