加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【S7-200】子程序形参和实参的调用

(2013-11-21 17:49:21)
分类: S7-200
一个完整的程序要实现多个功能,我们可以只用一个主程序来实现,还可以分多个子程序单独来实现再由主程序分别调用;如果只用一个主程序就会显得很纷乱,而且调试修改效率低,而使用子程序可以一目了然,快速的确定问题所在。所以首选使用子程序来编程。 

   在实际的项目中有很多类似的功能,像这样的就可以使用子程序,而不用多次复制相同的语句,而选择调用相同的子程序。 
   在编写子程序时,子程序中可以使用全局变量(实际参数),而功能块中用到的都是局部变量L(形式参数),两者的另一个区别是:在调用子程序时不用给子程序任何的输入,只要一个使能调用就可以。而在调用功能块时就要给功能块输入一些参数,一般编好的功能块是有输入输出的,至于功能块中使用了那些变量我们不用去考虑,还有一个优点就是功能块内的变量是自动分配的,在变量中想添加一变量时可以直接插入而不用管它占用了那些变量地址。所以要想实现某个功能就可以调用功能模块,我们只需要给几个参数,然后就直接取输出就可以了,很方便快捷,这样下来我们的程序就是由一个一个的功能块完成了,直观。就在子程序的下图内创建我们需要的局部变量: 
 图片
图片 
   子程序变量名称中的“#”表示局部变量,是编程软件自动添加的。输人局部变量时不用输入“#”号。不能使用跳转语句跳人或跳出子程序。


  在主程序中调用子程序的功能块: 
 图片
 
只要在子程序中写一遍程序,在主程序内可以多次调用并填写实际数据,这样就可以减少工作量。

   在主程序中调用使用
全局变量的子程序 
 
 图片
 
上边提到过,因为使用的是全局变量,就不需要再输入参数,这个子程序就是直接调用的关系。

下面说一下功能块中遇到的一些问题:

我们都知道这样的程序:

图片
 

 

    如果I0.0闭合,Q0.0输出确实0I0.0断开,Q0.0输出是1.在功能块中也有这样的特点,就是功能块的输出变量如果不能执行就会最后输出为零,无论之前是否输出变量赋值。所以我们在编程时要注意,功能块是否执行的判断语句不要放到功能块的内部开头部分,而要放到功能块的外部,变为是否调用功能块而不是调用后再判断是否执行。

===========================================
 

工控老鬼技Blog

 http://blog.sina.com.cn/wincchome 


 

自动化技术培 http://www.gongkong8.com/   

报名电话:0755-85292922
 

工控老鬼QQ :点击查看
====================================================

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有