delphi 异步 调用 带参数_西门子S7-200 SMART全局变量和局部变量,编写带参数子程序并调用...

上篇文章中我们学习了西门子S7-200 SMART项目的编译、下载、运行调试及上传,本篇我们来介绍西门子S7-200 SMART的全局变量和局部变量,以及如何在编程软件STEP7-Micro/WIN SMART中编写带参数子程序并调用。我们先来介绍一下什么是全局变量和局部变量。符号表中定义的变量又称为全局变量,在所有的POU中都有效,在变量表中定义的变量称为局部变量,只在创建它的POU内部有效。

aa4dbc72ae2d54b9f4fe9c82114e81f8.png

全局变量和局部变量

局部变量可以用作传递到子程序的参数,增加子程序的通用性和可移植性。在变量表中定义局部变量的符号和数据类型。变量类型分为两种,一种是形式参数,用来在子程序和调用它的程序之间传递数据,另一种是临时变量,只用来在子程序执行时暂存数据。

9d57a3e43d07e482e4cd6a8fa96d7160.png

局部变量的符号和数据类型

形式参数IN是调用程序提供的输入参数,OUT是返回到调用程序的输出参数,IN_OUT该参数值由调用程序提供,由子程序修改然后再返回到调用程序,形式参数在调用子程序时被实际参数代替。局部变量的数据都存储在L存储器中,地址自动分配,所有POU共用64个字节的L存储器,一个POU执行完毕后释放,其它POU执行时重复使用。在程序中用符号寻址变量时,全局变量的符号直接显示,局部变量的前面带有#号以示区别。

2a3467a24bdf7793efd798723f781d09.png

局部变量的表示方法

编写带参数子程序并调用。以温度转换程序为例,将主程序中温度转换程序剪切到子程序中,或者直接在子程序中输入温度转换程序,然后在变量表中定义局部变量,该子程序有两个形式参数,包括一个输入参数和一个输出参数,有两个临时变量,也可以不定义临时变量符号直接使用L存储器绝对地址,将程序段中的全局地址改为局部变量增强其通用性,方便移植。

db4f7a09c2bbd22b96a7a48f7d4fd778.png

定义局部变量

可以看到局部变量符号前带有#号,右键点击子程序标签,打开对话框,将其重命名为温度转换,也可以设置密码保护,只允许调用,程序代码不可见不可编辑,单击确定按钮,这样带参数的子程序就编写完成了。

65760b72ffe0e4dbf1c9485c50371189.png

子程序重命名

回到主程序,展开指令树的调用子例程文件夹,选择温度转换拖放到编程区域,该子程序以指令块的形式显示,包含了变量表中定义的形式参数,IN参数在左侧,OUT参数在右侧,对形式参数赋值相应的实际参数,在AI_IN处输入地址AIW20,在T_Value处输入VD0,使能端插入一个常开触点SM0.0作为子程序调用条件,这样通过调用带参数的子程序编写的模拟量转换程序就编写完成了,最后保存项目。

996e9ff56f0a94cd1a5940cac96f1355.png

调用带参数子程序

下载并测试,将项目编译下载到PLC,启动程序状态持续监视,可以看到程序将AIW20中的数值转换成了对应的温度值。

75d63c82113bb78a9e1eafea6b0fd82d.png

下载并测试程序

本篇我们学习了 西门子S7-200 SMART的全局变量和局部变量以及如何编写带参数子程序并调用,下篇文章我们将继续介绍西门子S7-200 SMART的相关内容,欢迎持续关注!需要西门子S7-200视频教程的朋友可在号内私信回复关键字"200"获取,仅供学习哦!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值