回复:关于有临时变量的fc,被别的程序打断,会出现的问题?

Zane

版主 西门子1847工业学习平台

  • 帖子

    21130
  • 精华

    401
  • 被关注

    1489

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2012-02-26 00:23:53

23楼

请大家分析一下如下几种情况:

声明:1.我使用的是STEP7的仿真软件
2.每测试一种情况,我都会事先复位仿真PLC,重新下载程序

情况1:

FC 1:
L 10
T LW0

FC 2:
L LW0
T MW10

FC 3:
L LW0
T MW12

OB 1:
CALL FC1
CALL FC2

OB 35:
CALL FC3

执行的结果是 MW10=10 MW12=0

情况 2:

在FC1/FC2中分别定义临时变量TEMP1

FC 1:
L 10
T #TEMP1

FC 2:
L #TEMP1
T MW10

FC 3:
L LW0
T MW12

OB 1:
CALL FC1
CALL FC2

OB 35:
CALL FC3

执行结果 MW10=10 MW12=0 (A:将FC1/FC2中的临时变量名任意修改;B:或FC1/FC2中只有一个定义临时变量;C:FC3也定义临时变量,变量名任意;结果均同上)


情况 3:

FC 1:
L 10
T LW0

FC 2:
L LW0
T MW10
CALL FC3

FC 3:
L LW0
T MW12

OB 1:
CALL FC1
CALL FC2

执行结果 MW10=0 MW12=0 (因为在FC2中调用了FC3)


根据以上3种情况,请大家分析:
1.临时变量是谁的零时变量
2.临时变量的分配原则

可能我的例子还不足以说明问题,大家亦可举证说明。

临时变量要先定义后使用,这在实际的使用中是正确的,但这也掩盖了一些真相。
Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54657条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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