这个子程序在主程序里调用5到10次就出现问题,是堆栈溢出?

已锁定

饼够

  • 帖子

    244
  • 精华

    4
  • 被关注

    26

论坛等级:侠士

注册时间:2003-06-06

黄金 黄金 如何晋级?

这个子程序在主程序里调用5到10次就出现问题,是堆栈溢出?

662

0

2007-06-01 16:57:53

SUBROUTINE_BLOCK FSC_CTL:SBR0
TITLE=风机控制功能块
VAR_INPUT
A_Is_Run:BOOL; // 运行反馈
A_Is_Err:BOOL; // 故障反馈
A_Is_Auto:BOOL; // 自动反馈
A_SB_Start:BOOL; // 启动按钮
A_SB_Stop:BOOL; // 停止按钮
A_Is_PHI:BOOL; // 压差高
RF_Is_Run:BOOL;
CCQ_IsRun:BOOL; // 除尘器运行反馈
END_VAR
VAR_IN_OUT
A_Is_PHi_T:BYTE; // 压差高计时
WaitReq:BYTE; // 等待条件满足
CCQ_ReqRun:BOOL; // 除尘器要求运行
RF_ReqRun:BOOL; // 中继风机要求运行
END_VAR
VAR_OUTPUT
A_Out_CTL:BOOL; // A碎纸风机控制输出
ALM:BOOL; // 报警输出
END_VAR
VAR
Enable_Run:BOOL; // 允许运行
END_VAR
BEGIN
Network 1 // 初使化
LD SM0.1
MOVB 0, LB1
MOVB 0, LB2
R L3.0, 1
R L3.1, 1
R L3.2, 1
R L3.3, 1
Network 2 // A压差高
// 压差高计时
// 每秒种进行判断,如果压差高就计时
LD SM0.5
EU
LPS
A L0.5
AB< LB1, 100
INCB LB1
LPP
AN L0.5
MOVB 0, LB1
Network 3 // 允许启动
// 允许启动,按下启动按钮后,判断其它两个,启动条件,进入等待
LD L0.2
AN L0.1
AB< LB1, 10
LPS
= L3.4
A L0.3
LPS
A L0.7
MOVB 10, LB2
LPP
AN L0.7
MOVB 60, LB2
LPP
NOT
MOVB 0, LB2
Network 4 // 启动倒计时
// //
LD SM0.5
EU
AB> LB2, 1
DECB LB2
Network 5 // 启动
LD L3.4
AB> LB2, 0
LPS
A L0.7
LPS
A L0.6
S L3.2, 1
LPP
AN L0.6
S L3.1, 1
LPP
AN L0.7
S L3.0, 1
Network 6
// 如果已经运行,或等待时间到,则取消请求
LD SM0.0
LPS
LD L0.7
OB= LB2, 1
ALD
R L3.0, 1
LPP
LD L0.6
A L0.0
OB= LB2, 1
ALD
R L3.1, 1
Network 7
LD L0.4
ON L3.4
R L3.0, 1
R L3.1, 1
R L3.2, 1
MOVB 0, LB2
Network 8 // 如果中继风机或除尘器关闭,则取消命令输出
LDN L0.7
ON L0.6
R L3.2, 1
Network 9 // 报警
LDB>= LB1, 10
O L0.1
= L3.3
END_SUBROUTINE_BLOCK
这个子程序在主程序里调用5到10次就出现问题,是堆栈溢出? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33300条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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