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

VOLLMER

  • 帖子

    1248
  • 精华

    41
  • 被关注

    47

论坛等级:奇侠

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2012-02-24 13:04:14

93楼

异或是个捷径,可作出最简化的单键启停。
我也试着用软PLC做了一个,循环体内5行。
50000个故障点、50000个指示灯、50000个故障复位、1个警笛、1个消音。
因为cpu够强,用内存点以及hmi测试时,赛扬cpu负荷不到1%
没有使用异或(看到300的STL就头大,更别提地址指针了),而是直接检测50000个故障指示灯的上升沿。只要有1个上升沿,就声音报警。

PROGRAM MAIN
VAR
b_fault:ARRAY[1..50000] OF BOOL;(*故障信号输入*)
b_faultlamp:ARRAY[1..50000] OF BOOL;(*故障指示灯*)
b_lamprise:ARRAY[1..50000] OF R_TRIG;(*故障灯上升沿*)
b_faultrst:ARRAY[1..50000] OF BOOL;(*故障复位按钮*)
b_sound:BOOL;
b_soundrst:BOOL;
n:DINT; (*循环计数器,因为需要50000个变量,需要dint*)
END_VAR

FOR n:=1 TO 50000 DO
IF b_fault[n]=TRUE THEN b_faultlamp[n]:=TRUE ;END_IF
IF b_fault[n]=FALSE AND b_faultrst[n]=TRUE THEN b_faultlamp[n]:=FALSE;END_IF
(*以上是故障灯点亮-熄灭控制*)
b_lamprise[n](CLK:=b_faultlamp[n],Q=>);
IF b_lamprise[n].Q=TRUE THEN b_sound:=TRUE;END_IF
IF b_soundrst=TRUE THEN b_sound:=FALSE;END_IF
(*以上警笛及消音控制*)
END_FOR












弱者道之用。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54710条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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