您现在的位置是:首页 > PLC技术 > PLC技术
STEP 7块参数实现给料举例
来源:艾特贸易2017-06-05
简介前面两个例子描述的同样的功能可以作为局部实例被调用。本例将编写一个功能块命名为“ Feed ”(给料),用于控制四条传送带和对传送的零件计数。在此功能块中, FB “ Conveyor_B
前面两个例子描述的同样的功能可以作为局部实例被调用。本例将编写一个功能块命名为“Feed”(给料),用于控制四条传送带和对传送的零件计数。在此功能块中,FB“Conveyor_Belt”调用了四次,FB“Parts_counter”调用了一次。调用不会发生在带有实例数据块的情况下。但是,调用的各个FB将把数据存储在功能块“Feed”的实例数据块中。
图19-6给出了各个独立的传送带控制器是如何连接的(这里未描述FB“Parts_counter”)。启动信号与belt1(传送带1)控制器的Start输入相连。ready_rem输出连接到belt2(传送带2)控制器的Start输入,等等。最后,控制器belt4(传送带4)的输出ready_rem连到输出“Feed”的输出Remove。从Remove的continue信号到Readyload,最后到Load,其信号顺序一样,只是方向相反。
图19-6 给料编程举例
Belt_mot_on、Light_barrier和/Mfault(电机故障)是几个独立的传送带信号;通过Basic_st、Man_on和Stop信号,Reset、Man_Start和Stop信号控制着全部的传送带。
下面的功能块“Feed”的程序都是按相同方法设计的。从图中可以得到功能块的输入/输出参数。此外,零件计数器用的是Quantity、Dura1和Dura2,这里它们的值作为输入参数。以描述用户自定义类型完全一样的方法,来声明静态局部数据中的每个传送带控制器的数据以及零件计数器的数据,例如用名称和数据类型。“Belt1”、“Belt2”等变量的数据结构来自于功能块“Conveyor_Belt”,变量Check的数据结构来自功能块“Parts_counter”。
对所有传送带,功能块中程序都从共有信号初始化开始。这里,正是利用了这样一个事实,即作为局部实例调用的功能块的块参数在当前块中是静态局部数据,并且可以做这样的处理。当前功能块中的块参数Man_start以一个简单的赋值控制着所有四个传送带控制器的Man_on输入参数。信号Stop和Reset也可以以同样的方法处理。到此,以共有信号对传动带控制器初始化完毕(当然,也可以在调用块时再初始化这些输入参数)。
传送带控制器功能块的后续调用只包含每个传送带单个信号的块参数和到“Feed”块参数的连接。单个信号是挡光板信号、传送带电机控制命令和电机故障信号(当一个功能块被调用时,并非所有的块参数都要初始化)。
通过赋值操作来编程单个传送带控制器之间的连接。
即使FB“Parts_counter”和传送带控制器的信号之间没有更近的连接,该功能块还是作为局部实例被调用。“Feed”的实例数据块保存在FB数据中。
“Feed”的输入参数Quantity、Dura1和Dura2只需设定一次。可以使用默认值设定(如例子)或在OB 100的重启程序中设定(如果这三个参数作为全局数据,则可以直接赋值)。
在STL_Book库下的“Conveyor Example”中,源程序包含功能块“Feed”和相关的实例数据块“FeedDat”。最后,功能块“Feed”的调用显示在主程序的实例数据块中。
点击排行
