广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
一起学习使用S7-200 smart子程序
发布时间:2024-11-23

一、S7-200 Smart子程序的基本设计原则

1.1 1个子例程最多可以传递16个参数,最多占用60个字节。

1.2 参数类型包括IN、OUT、IN OUT、TEMP。

1.3 IN为只读参数,IN OUT、OUT、TEMP 参数可读可写。

1.4 OUT、TEMP参数需要遵循“先赋值再使用。

1.5 子程序开始,将IN、IN OUT引脚的变量读入对应局部变量。


在运行过程中只对局部变量进行计算;子程序结束,将OUT、IN OUT对应的局部变量写入外部引脚。

二、主要遇到的问题

2.1 为什么重复调用的子程序执行结果会互相影响?

    临时保存在局部致据堆栈中的临时变量。一旦POU完全执行,临时变量值不再可用。在两次 POU执行之间,临时变量不保持其值,所以使用前要初始化临时变量。

  另外可以把out变量修改为in_out类型。

我们设计一个子程序如下:

图片

测试结果,两个调用互相不影响

图片

我们在设计一个程序

图片

测试结果发现已经收到干扰了,后面一个调用程序同样执行。

图片



2.2子程序中的定时器不工作或者工作不正常?

图片

测试结果,定时器不执行

图片

我们可以用子程序中使用自累加功能来计时或者利用时间间隔定时器。

图片

测试,上升沿工作不正常。

我们将秒脉冲放在外面测试,计时正常。

图片

图片


展开全文
拨打电话 微信咨询 发送询价