回复:s7200内存出错的机率有多大

醉书生

  • 帖子

    718
  • 精华

    25
  • 被关注

    18

论坛等级:侠士

注册时间:2004-06-13

普通 普通 如何晋级?

发布于 2008-03-29 22:33:09

0楼

明显是程序的问题,对局部变量的特性完全没有考虑
带有参数的子程序,只要子程序本身的调用使能位接通了,不管内部代码是否执行,都要进行输入/输出参数映射。
每次进入子程序,局部变量的初值是不定的(被输入参数初始化的除外),当你的内部代码不被执行时,这个不定值退出时要被映射到输出参数指定的变量中
具体到你的程序,进入子程序时,result1:LD11 的初值“随机”,而 MOVR #temp3:LD23, #result1:LD11 的执行条件不满足时,这个随机值被输出了
这种情况你应该考虑到条件不满足时,用明确的代码对 result1 赋值,即要保证不管在什么条件处,都有对 result1 进行赋值的代码被执行
我猜你的 result 变量肯定是 OUT 型,你可以试着将它改为 IN_OUT 型,这样或许你不用改任何代码程序就正常了。理由是 IN_OUT 型的变量在子程序调用时会先用 VD1004 的值初始化 result1:LD11,这样即使你的代码不被执行,退出子程序时再将 result1:LD11 输出到 VD1004 时它还是原来的值保持不变


生命存在的方式只有两种:腐烂或燃烧
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33289条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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