调用子程序出错

编了一个很简单的求平均值的子程序,见附图(子程序1,子程序2),在主程序中调用一次子程序,正常,调用两次,主程序见附图(主程序1,主程序2),相互影响,平均值总会变成最近一次的平均值,见状态表1,状态表2,状态表3。在子程序中,注意了临时变量先赋值后使用的问题。请老师指点,谢谢!

图片说明:

调用子程序出错    调用子程序出错    调用子程序出错    调用子程序出错    调用子程序出错    调用子程序出错    调用子程序出错   

最佳答案

参考一个典型的问题:
问:带形式参数的子程序,定义为OUT类型的变量为何会在多次调用子程序时互相干扰?
答:那是因为定义为 OUT 类型的形式参数并非每次调用子程序时在其内部都有确定的赋值操作。可以将此类参数定义为 IN_OUT 类型,或者确保在每次调用子程序时都有赋值操作。

提问者对于答案的评价:
谢谢!

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月1日 下午12:05
下一篇 2017年8月1日 下午12:06

相关推荐

  • S7-200与S7-300PROFIBUS通讯组态问题

    我的S7-200与主站S7-300走PROFIBUS通讯,但S7-200的输出缓冲区超过了32个字(有69个字节),请问各位高手主站该怎样组态。 问题补充:GSD文件里供选择的缓冲…

    SIMATIC S7-200 2020年10月31日
  • TD400C报警问题

    用向导做好报警条目后,在程序中当报警条件满足时,如何激活报警画面? 最佳答案 使用TD_ALRM 指令,使用报警符号名作为指令输入即可。 提问者对于答案的评价:非常感谢指…

    SIMATIC S7-200 2021年7月5日
  • 浮点数如何用字来表示

    S7-200与富士PODUG221联接,由于UG221只能做字访问所以不太清楚用做种方式来做更方便 最佳答案 可以用R_S指令将浮点数转为字符来显示.例如数3.14利用R_S指令(…

    SIMATIC S7-200 2021年7月5日
  • S7-200上传程序中的TD200文字内容

    我从S7-200/CPU224中上传了个程序,是用TD200作为操作面板。可在程序中找不到TD200的文字编辑程序。下载到另一个新PLC中,PLC和TD200都正常。想重新修改TD…

    2017年11月4日
  • S7-200 PLC 扩展TD400C?

    由于CPU224XP自身集成的两个通信口一个用来做modbus通信,另一个用来做自由口通信了,现在想再连接一个TD400C,可以用EM277连接吗?EM277支持的通信协议都有什么…

    SIMATIC S7-200 2020年10月31日
  • s7 200一个子程序里面的时间多次调用

    我想写一个子程序,里面需要用到TON接通延时,比如调用3次,3次的时间都是不同的。如何在子程序中定义此变量,我试了TEMP变量中所有类型都不行,都是红的。哪位大神帮帮忙 钻石用户推…

    SIMATIC S7-200 2021年7月5日
  • S7-200通讯没有PPI选项

    我打开设置PG/PC接口里面没有PPI选项 图片说明:       最佳答案 参考链接:http://www.ad.siemens.com.…

    2021年7月5日
  • 十万火急!!!水处理过程编程问题

    需要控制的有.电磁阀,高压泵.冲洗阀. 流程走向:以水为准.水进设备依次通过低压保护压力表,电磁阀,高压泵,高压保护压力表,RO膜,之后分2路,一路是终端水箱,一路是冲洗…

    SIMATIC S7-200 2021年7月5日
  • 关于模拟量干扰屏蔽问题

    使用CPU224XP本体上的俩点模拟量输入,信号为0-10V,但采集回的信号波动很大,换了屏蔽线也没有效果,请问各位前辈,有什么办法?急! 问题补充:1、采用模拟量滤波器,滤波的出…

    SIMATIC S7-200 2020年10月31日
  • M位存储器编程问题

    我写了以下两段程序,这两个程序分别在两个子程序中,在S7-200PLC断电再同电后,M22.4能够被置位,但是M2.4不能被置位,这是为什么? LDN &nbs…

    SIMATIC S7-200 2021年7月4日