S7-200 子程序调用问题

写了一个累计设备运行时间的子程序,其中发现一些问题,请教大家。
首先建立了一个子程序,IN变量建立了两个,一个是设备运行的状态,作为计时开始,一个为清零状态。OUT变量建立了三个,分别是秒,分钟,小时。这些变量都是使用的局部变量,即L开头的存储区。
下面的程序就是60秒以后加分钟,清秒,60分加小时清分钟。
在主程序中调用这个子程序,用了一个秒脉冲。只调用一个子程序的时候是正常的,但是调用两个或者几个子程序的时候,时间输出都是一样的了。
对子程序的局部变量不是十分的了解,是否多次调用子程序以后,每一个子程序对应的局部变量只有一个吗?(造成累计时间程序的时候,多个子程序调用,输出的时间都是一致的)
类似S7-300的FB块都可以指定背景数据块,那200的局部变量又是怎么对应的呢?
或者是局部变量的类型没有设置正确造成的呢?

问题补充:
先谢谢1楼的回答。
但是,我主要想了解的是,当多个同样子程序调用的时候,局部变量所存储的值都变成一样了。怎么解决这个问题。
另这个子程序在主程序是秒脉冲调用的,可以不用加SM0.5了。

图片说明:

S7-200 子程序调用问题   

最佳答案

1、局部变量所存储的值都变成一样了。怎么解决这个问题?
在程序的开始必须有对该存贮区地址的赋值操作(即初始化),否则可能会出现错误的执行结果。
2、有关局部变量:
转帖:
局部变量是分配给每个子程序的临时存贮区。
当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。
局部变量区的大小为64个字节,其中最后4个字节被系统所占用,实际可供子程序使用的为60个字节。
由于局部变量区的数据不能带到下一扫描周期,因此只能用于存迪程序运算中的中间值,可以减少对全局变量区的占用。
由于局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。
尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。
3、为了较可简便地监视与检查1程序,建议应用M存储区。

提问者对于答案的评价:
同样谢谢其他人

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc306331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:53
下一篇 2020年10月31日 下午3:53

相关推荐

  • 如何设计循环检测的程序?

    现场有10个储气罐,开始我已经依次向是个储气罐冲入5公斤压力。之后开始从1号罐检测其压力如果压力大于3公斤,则开始检测2号罐;如果小于3公斤,则向1号罐充气,待压力大于3公斤后,则…

    SIMATIC S7-200 2017年6月13日
  • S7-200能否与虚拟机通讯

    S7-200与电脑通过PPI电缆通讯正常,关闭编程软件,打开该电脑上的虚拟机,在虚拟机上,打开编程软件,能正常编程,但编好的程序不能下载到S7-200,重新设置通讯参数,刷新仍找不…

    SIMATIC S7-200 2017年11月12日
  • S7-200 CPU226 SF报错

    我的一台设备使用的S7-200 CPU226,前两天开始出现SF报错,无法通讯,但是在断电重启后能够通讯上,查看诊断信息无任何报错。重启后运行一段时间又出现SF报错停机。…

    SIMATIC S7-200 2020年10月31日
  • S7200之间的通讯

    如何是200之间可以进行数据的交换.读写指令能够起到什么作用.? 问题补充:很感谢前辈的知道.但可否再详细些.我是初学.谢谢了. 最佳答案 自己用串口指令 做一个自由口&…

    SIMATIC S7-200 2021年7月5日
  • S7-200、PC机、HMI组网问题

    有个项目,需要把S7-200、PC机(WINCC6.0)、HMI组成一个网络,PC机(WINCC6.0)地址0,HMI地址1,PLC地址2。   &n…

    SIMATIC S7-200 2021年7月5日
  • EM235模块

    如何检测EM235模块好坏,能从编程软件step7上看出相关信息吗。 最佳答案 https://wenku.baidu.com/view/cec12d3f3c1ec5da51e27…

    SIMATIC S7-200 2021年7月5日
  • 新装s7-200 smart 编程软件,所有程序无法写入地址,全都是红色问号

    昨天新装了SMART 编程软件,开始编程时发现无法写入地址,写进去以后又显示成了问号!不知道是什么原因!以前用S7-200 226编程的时候就没有这个问题,这次…

    2021年7月5日
  • PC ACCESS 和CP243-1

    我严格按照CP243-1的快速入门配置了CP243-1,并在主程序中用SM0.0调用了ETHO_CTRL,用PPI电缆下载到CPU后,STEP MICRO还是连不上,软件…

    SIMATIC S7-200 2021年7月5日
  • 西门子PLC可以发送短信吗?需要什么配置?硬件的和软件的

    西门子PLC可以发送短信吗?需要什么配置?硬件的和软件的 最佳答案 是要用到几个模块,具体还是问西门子的技术支持。一定要开通一个移动的GPRS业务的手机卡。在西门子的工业以太网研讨…

    SIMATIC S7-200 2021年7月5日
  • S7-200无法同时正常运行两个PID控制

    S7-200含两个PID回路,一路通过阀门控制蒸汽压力(蒸汽压力高则减小阀门开度),另一路通过变频器控制水温(温度高则增大变频器频率)。两个PID均由SM0.0调用,且具备手动/自…

    SIMATIC S7-200 2020年10月31日