1、S7-200 子程序和功能块的编写使用一个完整的程序要实现多个功能,我们可以只用一个主程序来实现,还可以分多个子程序单独来实现再由主程序分别调用;如果只用一个主程序就会显得很纷乱,而且调试修改效率低,而使用子程序可以一目了然,快速的确定问题 所在。所以首选使用子程序来编程。在实际的项目中有很多类似的功能,像这样的就可以使用子程序,而不用多次复制相同的语句,而选择调用相同的子程序。在编写子程序时,子程序中用的都是全局变量,而功能块中用到的都是局部变量 L(其实功能块也是用子程序来变写),两者的另一个区别是:在调用子程序时不用给子程序任何的输入,只要一个使能就可以,而在调用功能块时就要 给功能块输
2、入一些参数,一般编好的功能块是有输入输出的,至于功能 块 中使用了那些变量我们不用去考虑,还有一个优点就是功能块内的变量是自动分配的,在变量中想添加一变量时可以直接插入而不用管它占用了那些变量地址。所以要想实现某个功能就可以调用功能模块,我们只需要给几个参数,然后就直接取输出就可以了,很方便快捷, 这样下来我们的程序就是由一个一个的功能块完成了,直观。就在子程序的下图内创建我 们需要的局部变量:子程序中功能块的调用:我们的主程序就会变成这样:从上我们可以看的出来,我们只需读这些子程序或是功能块,底层才是那些实实在在的编程指令了。下面说一下功能块中遇到的一些问题:我们都知道这样的程序:如果 I0.0 闭合,Q0.0 输出确 实 0;I0.0 断开, Q0.0 输 出是 1.在功能块中也有这样的特点,就是功能块的输出变量如果不能执行就会最后输出为零,无论之前是否输出变量赋值。所以我们在编程时要注意,功能块是否执行的判断语句不要放到功能块的内部开头部分,而要放到功能块的外部,变为是否调用功能块而不是调用后再判断是否执行。