您现在所在的是:

PLC论坛

回帖:5个,阅读:1712 [上一页] [1] [下一页]
6047
liaosun
文章数:1398
年度积分:50
历史总积分:6047
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2010/7/13 18:52:39
#0楼
      不同品牌的plc的子程序大致可以分为两种,一种子程序没有输入、输出参数和局部变量,另一种则有。
      1.什么是全局变量和局部变量?
       以西门子的s7-200为例,输入i、输出q、变量存储器v、内部存储器位m、定时器t、计数器c等属于全局变量,可以在符号表中为全局变量定义符号名。
      程序组织单元(program organizational unit)简称为pou,包括主程序、子程序和中断程序。每个pou均有自己的64字节局部变量,局部变量用l(local)来表示,局部变量只能在它所在的pou中使用。与此相反,全局变量可以在各pou中使用。
      2.局部变量有哪些类型?
      子程序可以使用下列局部变量:
      1) temp (临时变量)是暂时保存在局部数据区中的变量。只有在执行该pou时,定义的临时变量才被使用,pou执行完后,不再保存临时变量的数值。主程序和中断程序的局部变量表中只有temp变量。
      2) in(输入参数)由调用它的pou提供的传入子程序的输入参数。
      3) out(输出参数)是子程序的执行结果,它被返回给调用它的pou。
      4) in_out(输入_输出参数)的初始值由调用它的pou传送给子程序,并用同一变量将子程序的执行结果返回给调用它的pou。
      主程序和中断程序的局部变量表中只有临时变量temp。
      3.子程序的输入、输出参数有什么作用?
      具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。编程人员为设备的各部件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以用它们快速“组装”出满足不同的用户要求的控制程序。就好像可以用数字集成电路芯片组成复杂的数字电路一样。
      如果子程序没有输入、输出参数,这种子程序没有明确的软件接口,使用起来很不方便。
      4.局部变量有什么优点?
      1) 子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将它移植到别的项目时,需要对各pou使用的全局变量作统一安排,以保证不会出现地址冲突。当程序很复杂,子程序很多时,这种地址分配是很花时间的。
      如果子程序有局部变量,并且在子程序中只使用局部变量,不使用全局变量,因为与其他pou没有地址冲突,不作任何改动,就可以将子程序移植到别的项目中去。
      为了减少移植子程序的工作量,在子程序中应尽量避免使用全局变量和全局符号。
      2) 如果使用局部变量表中的临时变量(temp),同一片物理存储器可以在不同的程序中重复使用。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=119376&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
20557
qlin 版主
文章数:6709
年度积分:50
历史总积分:20557
注册时间:2006/2/20
发站内信
2018论坛优秀版主
2017论坛优秀版主
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
2013论坛优秀版主
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2010/7/19 21:06:54
#1楼

   虽然由于我现在的记忆力不好,故不用的东西不看,但廖老师的帖子,还是要支持一下的。
   S7-200以前用过一下,现在基本没印象了,编程软件也没有了。
826
renwocai
文章数:16
年度积分:50
历史总积分:826
注册时间:2010/3/17
发站内信
发表于:2010/8/8 1:57:30
#2楼
廖老师讲的很好,但兄弟愚钝,基础又差,可不可以举个例子?
1427
Jackyzhu2008
文章数:167
年度积分:50
历史总积分:1427
注册时间:2009/1/18
发站内信
发表于:2010/8/28 20:06:13
#3楼
深入浅出,有机会举个例子
14583
chenqing309
文章数:7857
年度积分:50
历史总积分:14583
注册时间:2009/2/22
发站内信
发表于:2010/8/29 12:56:13
#4楼
学习了
1042
郑超
文章数:6
年度积分:50
历史总积分:1042
注册时间:2006/1/4
发站内信
发表于:2010/9/14 9:11:05
#5楼
讲的很好,学习了

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006