S7-200PLC编程之子程序 点击:3454 | 回复:5



niki_334

    
  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:1050帖 | 1333回
  • 年度积分:376
  • 历史总积分:8436
  • 注册:2009年2月24日
发表于:2016-08-17 13:30:16
楼主

S7-200提供了灵活的子程序调用功能。使用子程序可以更好地组织程序结构,便于调试和阅读,缩短程序代码的长度。

1、建立子程序在我们的编程软件Micro/WIN里面,默认提供了一个空的子程序SBR_0,我们还可以创建子程序,选择编辑—插入—子程序即可。插入的子程序会从0开始递增生成。CPU226支持128个子程序,其他CPU支持64个。

2、子程序调用建立子程序后,可以通过调用指令反复调用子程序。子程序的调用可以带参数,也可以不带参数。调用子程序时要注意几点:

(1)子程序可以实现嵌套调用最多8层,在中断程序中不能嵌套调用子程序。

(2)当子程序在一个周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器指令。 对于子程序的调用我们分为带参数子程序和不带参数子程序。不带参数子程序使用的是全局变量,是没有接口的。




niki_334

  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:1050帖 | 1333回
  • 年度积分:376
  • 历史总积分:8436
  • 注册:2009年2月24日
发表于:2016-08-17 14:43:10
1楼

接上文。

对于子程序的调用我们分为带参数子程序和不带参数子程序。不带参数子程序使用的是全局变量,是没有接口的。

如图,子程序只有一个使能端,子程序为一个简单的起保停电路,使用的都是全局变量。
而带参数的子程序使用局部变量,变量的地址也是有范围的,为LB0-LB31、LW0-LW30、LD0-LD28。局部变量类型是按照变量对应数据的传递方向来划分的,分为传入子程序(IN)、传入传出子程序(IN_OUT)、传出子程序(OUT)和暂时子程序(TEMP)。


 

niki_334

  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:1050帖 | 1333回
  • 年度积分:376
  • 历史总积分:8436
  • 注册:2009年2月24日
发表于:2016-08-17 14:46:34
2楼

下面举个例子,见下面图片:

这个子程序的作用是读取系统时间,可以看到我们定义这几个变量比如,年、月、日等等,他们前面都有#,这就表示他们是局部变量。而且调用时,是需要定义接口的。

原野1006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 144回
  • 年度积分:37
  • 历史总积分:364
  • 注册:2018年11月27日
发表于:2020-05-08 17:30:18
3楼

谢谢楼主  谢谢楼主  谢谢楼主

原野1006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 144回
  • 年度积分:37
  • 历史总积分:364
  • 注册:2018年11月27日
发表于:2020-05-08 23:01:34
4楼

谢谢楼主  谢谢楼主  谢谢楼主

原野1006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 144回
  • 年度积分:37
  • 历史总积分:364
  • 注册:2018年11月27日
发表于:2020-05-14 20:28:43
5楼

谢谢楼主  谢谢楼主  谢谢楼主


热门招聘
相关主题

官方公众号

智造工程师