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

冬日

  • 帖子

    3368
  • 精华

    56
  • 被关注

    45

论坛等级:奇侠

注册时间:2005-09-01

白金 白金 如何晋级?

发布于 2012-02-17 12:28:11

32楼

这是我用了多年的程序,绝对的原创。
需要把所有的故障都放在sorce DB,再增加一个DB用于保存旧的故障。输出有两个:
F_actived 表示有故障,不管有多少个故障都为true输出。正常输出给故障报警灯用的,再跟CPU的心跳位相与就可以作为一个闪烁的报警灯了。
New_Fault 表示有新故障,只要有新的故障都将输出一个周期,一般增加一个时间延时后输出到故障蜂鸣器。

FUNCTION FC 6 : VOID
TITLE =
AUTHOR : Franklin
VERSION : 0.1


VAR_INPUT
Src_DB : INT ; //Sorce DB of faults
Copy_DB : INT ; //Copy DB of faults
Words : INT ; //Number words of faults
END_VAR
VAR_OUTPUT
F_actived : BOOL ; //Fault active
New_Fault : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =

SET ;
SAVE ;

CLR ;
= #F_actived;
= #New_Fault;

L 0;
T LD 4;
T LW 2;

L #Src_DB;
T LW 0;
OPN DB [LW 0];
L #Copy_DB;
T LW 0;
OPN DI [LW 0];


_000: L 0;
L DBW [LD 4];
==I ;
JC _003;
S #F_actived;
L DIW [LD 4];
<=I ;
JC _001;
S #New_Fault;
TAK ;
_003: T DIW [LD 4];

_001: L LW 2;
+ 1;
T LW 2;
L #Words;
< I ;
JCN _en;
L LD 4;
+ L#16;
T LD 4;
JU _000;
_en: NOP 0;

END_FUNCTION
If anything can go wrong, it will.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54659条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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