回复:针对反复调用的子程序,那些命令不能用

lc7815

西门子1847工业学习平台

  • 帖子

    14
  • 精华

    0
  • 被关注

    3

论坛等级:游士

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2012-04-15 03:05:19

24楼

如果你要重复调用一个子程序你必须先弄清楚两件事:
1、扫描周期的概念;
2、子程序的结果;
举个例子:

FUNCTION FC1: VOID

VAR_INPUT
IN1: bool;
IN2: bool;
END_VAR
VAR_OUTPUT
OUT1: bool;
END_VAR

VAR_IN_OUT
IN_OUT1: bool;
w_Word :word;
END_VAR

VAR_TEMP
a1: bool;
a2: bool;
a3: bool;
a4: bool;
a5: bool;
a6: bool;
a7: bool;
END_VAR

BEGIN
NETWORK
TITLE =<这段程序在重复调用时,输出不了正确的结果>
//错误原因:以为OUT1是输出引脚,它不能自锁
//
a in1;
s OUT1;

a In2;
r Out1;

NETWORK
TITLE =<这段程序在重复调用时,可以输出正确的结果>
a in1;
s IN_OUT1;

a In2;
r IN_OUT1;

//网络3
NETWORK
TITLE =<如果想要对字或者字节等进行位操作,这条语句是必须的>
L w_Word;
T LW0;

NETWORK
TITLE =
a in1;
s a1;
r a2;

a In2;
r a1;
s a2

NETWORK
TITLE =
a in1;
FP a3;
s a6;
r a7;

a In2;
FN a4;
s a7;
r a6;
//网络6
NETWORK
TITLE =<将位操作的结果,以字或者字节等格式输出>
L LW0;
T w_Word;

END_FUNCTION
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33258条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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