什么叫做带参数的子程序?

我的提问请看以下链接:http://www.gongkong.com/Forum/ForumTopic.aspx?Id=2009042219011500001
 大家有关于这方面的资料发我邮箱里,谢谢了。邮箱:lzhosky@qq.com

最佳答案

比如有十二个压力传感器,或更多的传感器,量程是0到1MPa ,变送输出的标准模拟信号是4到20MA,那么怎么计算实际压力值?像下面一样将计算过程写12遍?
 网络1: 
 LD     SM0.0
 MOVD   0, AC0
 MOVW   AIW0, AC0
 -I     +6400, AC0
 DTR    AC0, AC0
 MOVR   AC0, VD0
 /R     25600.0, VD0      //VD0就是第一个压力传感器的实际压力值   
 网络2:
 LD     SM0.0
 MOVD   0, AC0
 MOVW   AIW2, AC0
 -I     +6400, AC0
 DTR    AC0, AC0
 MOVR   AC0, VD4
 /R     25600.0, VD4      //VD4就是第二个压力传感器的实际压力值   
 网络3:
 LD     SM0.0
 MOVD   0, AC0
 MOVW   AIW4, AC0
 -I     +6400, AC0
 DTR    AC0, AC0
 MOVR   AC0, VD8
 /R     25600.0, VD8     //VD8就是第三个压力传感器的实际压力值 

 等等

 其实不用这样,他们的特点是计算过程相同,但数值不同,所以就不需要将计算过程写12遍,只要写一遍就可以了,将AIW值传入到子程序,然后从子程序输出一个结果就可以了。
 ORGANIZATION_BLOCK 主程序:OB1
 TITLE=程序注释
 BEGIN
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.0
 CALL   SBR0, AIW0, VD0
 CALL   SBR0, AIW2, VD4
 CALL   SBR0, AIW4, VD8
 CALL   SBR0, AIW6, VD12
 CALL   SBR0, AIW8, VD16
 CALL   SBR0, AIW10, VD20
 CALL   SBR0, AIW12, VD24
 CALL   SBR0, AIW14, VD28
 CALL   SBR0, AIW16, VD32
 CALL   SBR0, AIW18, VD36
 CALL   SBR0, AIW20, VD40
 CALL   SBR0, AIW22, VD44

 END_ORGANIZATION_BLOCK
 SUBROUTINE_BLOCK SBR_0:SBR0
 TITLE=子程序注释
 VAR_INPUT
 输入:INT;
 END_VAR
 VAR_OUTPUT
 输出:REAL;
 END_VAR
 BEGIN
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.0
 MOVD   0, AC0
 MOVW   LW0, AC0
 -I     +6400, AC0
 DTR    AC0, AC0
 MOVR   AC0, LD2
 /R     25600.0, LD2

 将以上程序复制到记事本里,然后将后缀改为.awl,将编程软件打开,文件--导入即可查看该程序。

 
 

提问者对于答案的评价:
谢谢怀工的指教

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:05
下一篇 2021年7月5日 上午1:05

相关推荐

  • 怎么用DB做数据及数据快的备份?

    实现参数修改,复位的功能。 最佳答案 DB是可以实现参数修改,和复位功能的。实现参数修改,你可以在程序建一个DB1,参数修改用w,复位用位表示的方法DB1.DBW0开关量:DB1.…

    SIMATIC S7-200 2017年11月16日
  • 6ES7216-2AD23-0XB8要停产了吗?用什么型号代替

    谢谢 钻石用户推荐最佳答案 1、6ES7216-2AD23-0XB8要停产了吗?2017 年 10 月 1 日,SIMATIC&n…

    SIMATIC S7-200 2021年7月5日
  • 模拟信号采集集中显示

    (采集每个风速传感器的值集中到中控室显示,现场放置一个显示操作站,两地可以设置高低限报警)现场测风速传感器每台机8个,总共160个。现场到中控尽量少拉线。现场到中控是100米。二个…

    SIMATIC S7-200 2017年7月30日
  • 顺序继电器

    在顺序继电器s0.4中有SM0.1 特殊寄存器,是通电先执行SM0.1特殊寄存器呢,还是到S0.4这步中在执行SM0.1 我感觉应该通电就执行SM0.1吧 最佳…

    SIMATIC S7-200 2020年11月5日
  • 828d 主轴倍率为零

    急等:828d铣床系统,主轴为第4个轴,屏幕显示倍率为零,调整倍率开关不起作用,请问是哪个信号或参数不对?设置了参数35000=1,30300=1,30310=1,30320=1及…

    SIMATIC S7-200 2021年7月5日
  • S7-200Modbus通讯问题

    S7-200 modbus通讯出现以下错误是什么原因,5 = modbus/自由口未使能 最佳答案 1、可能的原因、是EN 使能端没有输入。…

    SIMATIC S7-200 2020年10月31日
  • 请教PID问题

    我根据200系统手册自己编了一个PID程序,输出值Mn,请问如何将它转化为占空比周期来控制继电器的输出时间?由于PID向导只提供8路输出,不够用,只能自己编PID程序。谢谢 最佳答…

    SIMATIC S7-200 2021年7月5日
  • 200中的指针怎样理解啊 请大家帮帮忙啊 ?

    我是 200刚开始入门,里面的指针间接寻址是怎么回事,我没懂,请大家帮帮忙,急啊!请大家讲得通俗点,最好能给我举例说明,本人万分感谢了啊! 问题补充:急救,请大家帮我解释…

    SIMATIC S7-200 2021年7月5日
  • wincc OPC通讯 simatic net配置问题

    诊断提示的问题如下:================================ 09/21/2011 9:08:25 AM =====…

    2020年10月31日
  • 西门子200热电偶模块的冷端补偿是自动补偿吗?

    我想请教下:西门子200热电偶模块的冷端补偿是自动补偿吗?还是一个固定的环境温度补偿,比如说固定25摄氏度或者其他度数? 问题补充:那么四通道热电偶模块(6ES7 231…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论