S7-200的子程序不能使用的指令 点击:444 | 回复:1



李东泽

    
  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2018-11-26 11:28:13
楼主

“S7-200的子程序中,有那些指令不可以采用? 我做了好多子程序,有些子程序反复调用没有任何问题,但是有一个子程序,在调用时,有每次每个循环里面第一个调用该子程序的命令起作用,而第二次调用则完全无效。 如果把这个子程序再重新复制一下,也是一个子程序,里面内容完全不一样,仅仅子程序号不同, 则两个调用都正常。是否是因为子程序中用到了EU命令?用到R或S应该没有问题吧。” 
    S7-200 PLC 2009年系统手册中文版204页说:“当子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器指令。”
    S7-300/400可以将定时器、计数器的编号设置为块的输入参数,在每次调用时指定不同编号的定时器和计数器作为实参。S7-200则没有这个功能,只能在子程序中使用固定的定时器编号。如果对多个被控对象多次调用子程序,不同被控对象同时使用同一个定时器计数器,将会产生灾难性的结果。
    是否有上升沿和下降沿,必须经过两个扫描周期来判断,即前一个扫描周期读取触发信号,并存储到一个位地址内,再与本次扫描周期的触发信号的状态相比较。
    S7-300/400的上升沿、下降沿指令需要指定保存前一扫描周期的位地址。S7-200的上升沿、下降沿指令前一扫描周期的状态是操作系统保存的。但是因为只能保存一个位变量的前一扫描周期的状态,所以子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿指令。

1分不嫌少!


楼主最近还看过



635715193

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 168回
  • 年度积分:75
  • 历史总积分:603
  • 注册:2014年6月05日
发表于:2018-11-26 14:04:01
1楼

 学习了,都是经验



热门招聘
相关主题

官方公众号

智造工程师