关于200调用子程序的若干问题

1.在子程序中使用局部变量,同时调用多次的时候,为什么监控子程序中只是显示第一次调用的值。
2.在程序中多次使用子程序,并且同时调用子程序时,能不能使用特殊辅助继电器,例如SM0.5等。用SM0.5主要能计时。我知道计数器与时间继电器是不是能同时多次调用的,但不知道SM0.5等特殊辅助继电器能不能用。要是不能用该怎么解决。

最佳答案

1、转帖典型问题:使用子程序时,为何动作只能执行一次,或者某些状态不能结束?
如果发生动作不能重复执行,或者状态不能结束(像锁死了一样),而这些功能都与子程序有关时,请检查是否有条件调用子程序。调用子程序的条件在上述动作执行后,或者进入某个状态后不再有效,无法再次“激活”,而脱离上述状态或复位的指令正好在子程序内,必然造成上述的现象。
2、转帖典型问题:定时器在子程序中的表现?
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直走到最大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但在逻辑上处于失控状态)。
 如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
3、子程序注意事项:
、子程序在调用时会保持当前的逻辑运算结果,但是不保存累加器(ACx)的内容 
、子程序在执行到末尾时自动返回,不必加返回指令;在子程序中间也可以使用条件返回指令 
、子程序不能使用跳转语句跳入、跳出 
、子程序返回时,回到调用子程序的指令后面,继续执行上一级程序 
、S7-200 CPU最多可以调用64个子程序(CPU226为128个) 
、子程序可以嵌套调用,即子程序中再调用子程序,一共可以嵌套8层 
、在中断服务程序中不能欠套调用子程序,被中断服务程序调用的子程序中不能再出现子程序调用 
、子程序可以带参数调用,在子程序的局部变量表中设置参数的类型;一共可以带16个参数(形式参数)

提问者对于答案的评价:
3Q

专家置评

请参考阿鸣的回答!
补充一点:子程序使用局部变量,主程序中多次调用子程序时,子程序不能调用定时器。

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

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

相关推荐

  • 请问西门子S7-200怎样记录开关机的时间

    请问西门子S7-200怎样记录开关机的时间(使用TD-200情况下) 问题补充:我再说详细点,为了防止客户在设备验收前关闭电源,从而在验收的时候出差错,货款到不了位,所以要做一个监…

    SIMATIC S7-200 2021年7月5日
  • PLC数据线

    谁知道S7-200 PLC CPU与扩展模块EM222连接数据线 订货号   另外还有S7-200 PLC下载…

    SIMATIC S7-200 2020年11月1日
  • S7-200CPU226

    CPU226,晶体管跟继电器有什么不一样 最佳答案 继电器与晶体管的区别不大,晶体管的进线电压是24V,继电器的进线电压是120-230V,呵,去看看S7-200的操作手册,htt…

    SIMATIC S7-200 2020年11月1日
  • EM231 8通道DIP开关设定

    请教各位   EM231 (6ES7 231-OHF22-0XA0)当8个输入全为0-10V时DIP开关怎样设定 谢谢 …

    SIMATIC S7-200 2020年11月1日
  • 求S7-200编程电缆6se7902的驱动。

    是不是在安装s7-200时就已安装,是即插即用型的话,就不用安装了呢?若需另外安装,大家有谁能给一个。 最佳答案 无需安装,插上就能用,如果是usb口的,记得要到Set …

    SIMATIC S7-200 2021年7月5日
  • 网络读写向导

    我想请问一下,我用网络读写向导和另一台200通讯,我想设置通讯成功标志位,如果主站读取从站的缓冲区数据,如从地址VB100,将读到的VB100的数据放到主站的VB200中,当读到数…

    SIMATIC S7-200 2020年11月1日
  • modbus 对应s7-200 的模拟量输出地址

    为什么没有modbus 对应s7-200 的模拟量输出 地址 问题补充:由PID向导生成 PID0_INIT子程序所得的 AQW0…

    SIMATIC S7-200 2021年7月5日
  • s7-200与绝对值编码器通过modbus通讯的问题

    我用s7-200做主站和绝对值编码器通讯,编码器输出方式是modbus总线方式,我已经通过modscan32软件和编码器通讯上了,从站号为1,add为30002,长度为2,波特率为…

    2018年12月2日
  • 西门子200的恒速升温

    给一个温控箱内加热,根据温度大小调整功率大小输出。设定一个恒速升温值,10℃/min升温。这样程序什么写呢? 问题补充:没有使用PID控制,大概1秒采集一组数据,最新10组作一个平…

    SIMATIC S7-200 2021年7月5日
  • S7-200的高速计数程序编写问题

    各位老哥,小弟在编写用高速脉冲换算流量时用的输入点I0.0怎样体现在程序里啊 问题补充:关于高速计数器的具体参数我都设置好了,i0.1为流量计输入信号,但在程序里面如何接收呢 最佳…

    SIMATIC S7-200 2021年7月4日