Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36035
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 277
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-09 15:55
文章分类
文章存档

2013年(20)

我的朋友

分类: 信息化

2013-08-13 15:40:02

    子程序的使用为程序的模块化设计提供了一种方便有效的途径。与子程序有关的操作有建立子程序、子程序的调用和返回。

  (一)子程序的创建

  创建子程序是通过编程软件来完成的。在编程软件“编辑”菜单中的“插入”选项卡中,选择“子程序”。或者在编辑窗口中单击鼠标右键,选择弹出菜单中“插入”中的“子程序”选项,以建立或插入一个新的子程序,同时,在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR N,编号N从0开始按递增顺序生成,也可以在图标上直接更改子程序的程序名,把它变为更能描述该子程序功能的名字。在指令树窗口双击子程序的图标就可以进入子程序,并对它进行编辑。


  (二)子程序调用

  施耐德电流互感器在使能输入端有效时,主程序把程序控制权交给子程序,此时执行子程序的全部指令,直到子程序结束。子程序的调用可以带参数,也可以不带参数。

  指令格式:CALL     SBR 0    在使能输入端有效时,结束子程序的执行,返回到调用它的程序中该子程序调用指令的下一条指令处。在梯形图中以线圈的形式编程,指令不带参数。而在STL中为CRET.    子程序调用使用说明:

  (1) CRET多用于子程序的内部,由判断条件决定是否结束子程序调用,RET用于子程序的结束。

  (2)当一个子施耐德电流互感器程序被调用时,系统自动保存当前的逻辑堆栈数据,将栈顶置1,堆栈中的其他位置设为0,子程序取得控制权,执行子程序的指令。子程序执行完成后,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。

  (3)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。

阅读(1737) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~