回复:工程上编程难题:主程序调用全自动运行子程序。全自动运行子程序有手动干预有先问题。

硕他爸

  • 帖子

    50
  • 精华

    2
  • 被关注

    2

论坛等级:游士

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2008-02-02 12:47:47

0楼

做一个间接调用的指针程序,调用条件成立,UC FC[ Point] 即可。

FUNCTION_BLOCK "FB_步选择"
TITLE =
VERSION : 0.1
VAR_INPUT
Step_FC_Begin_Index : INT ; //起始工步(FC )索引指针
Jump_Step_Index : INT ; //参考工步(FC )索引指针
END_VAR
VAR
CurruntStepIndex : INT ; //当前工步( FC )索引指针
END_VAR
VAR_TEMP
CurruntExecuteStepIndex : INT ; //工步(FC)索引指针
ACU : INT ; //加法器
NeedExecuteStepIndex : INT ; //待执行(FC)索引指针
END_VAR
BEGIN
NETWORK
TITLE =

L #Step_FC_Begin_Index;
T #ACU;
L #Jump_Step_Index;
L #ACU;
+I ;
T #NeedExecuteStepIndex;
T #CurruntStepIndex;
L #NeedExecuteStepIndex;
T #CurruntExecuteStepIndex;
TAK ;
L #CurruntStepIndex;
UC FC [#CurruntExecuteStepIndex];
END_FUNCTION_BLOCK


FUNCTION_BLOCK "FB_步转换"
TITLE =
VERSION : 0.1
VAR_INPUT
MaxStepNo : INT ;
CurStepNo : INT ;
END_VAR
VAR_IN_OUT
JumpStepNo : INT ;
RefStepNo : INT ;
JumpPulse : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =

L #CurStepNo;
L #JumpStepNo;
<>I ;
JC M001;
L #JumpStepNo;
L 1;
+I ;
T #JumpStepNo;
S #JumpPulse;
L #JumpStepNo;
L #MaxStepNo;
<=I ;
JC M002;
L 0;
T #JumpStepNo;
JC M002;
M001: L #CurStepNo;
T #JumpStepNo;
T #RefStepNo;
S #JumpPulse;
M002: NOP 0;
END_FUNCTION_BLOCK

苦命郎 入错行 活到老 学到老
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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