您现在的位置是:首页 > PLC技术 > PLC技术
S7-300/400功能块
来源:艾特贸易2017-06-05
简介1 .生成功能块 选中 SIMATIC 管理器左边窗口中的“块”图标,用右键点击右边窗口,执行出现的快捷菜单中的“插入新对象”→“功能块”,生成一个新的功能块。 在出现的功能块属性
1.生成功能块
选中SIMATIC管理器左边窗口中的“块”图标,用右键点击右边窗口,执行出现的快捷菜单中的“插入新对象”→“功能块”,生成一个新的功能块。
在出现的功能块属性对话框中,采用系统自动生成的功能的名称FB 1,选择梯形图( LAD)为默认的编程语言。点击“多实例能力”前面的多选框,使小框中的“√”消失(没有多重背景功能)。点击“确定”按钮后返回SIMATIC管理器,可以看到右边窗口中新生成的功能块FB 1。
2.局部变量
双击SIMATIC管理器中FB 1的图标,打开程序编辑器,图6-5的上面是FB 1的变量声明表,下面是梯形图程序,左边是指令列表和库。在变量声明表中声明块专用的局部变量,局部变量只能在它所在的块中使用。
用鼠标按住图6-5右边分隔变量声明表和程序区的分隔条,可以上下拉动它,以调节变量声明表的大小。将水平分隔条拉至程序编辑器视窗的顶部,不再显示变量声明表,但它仍然存在。将分隔条下拉,将再次显示变量声明表。
变量声明表的左边窗口给出了该表的总体结构,选中某一变量类型,例如“IN”,在表的右,边显示的是输人类局部变量Start等的详细情况。
由图6-5可知,功能块有5种局部变量:
1) IN(输入变量):由调用它的块提供的输入参数。
2) OUT(输出变量):返回给调用它的块的输出参数。
3) IN_OUT(输入_输出变量):初值由调用它的块提供,块执行后返回给调用它的块。
4) TEMP(临时变量):暂时保存在局部数据区中的变量。只是在执行块时使用临时变量,执行完后,不再保存临时变量的数值,它可能被别的数据覆盖。
图6-5 功能块FB 1
5) STAT(静态变量):从功能块执行完,到下一次重新调用它,静态变量的值保持不变。
双击变量声明表左边窗口中的“IN”,在右边的窗口中生成两个Bool变量和一个Int变量(见图6-5)。用类似的方法生成其他局部变量,变量声明表中的局部变量与FB 1的背景数据块(见图6-6)中的变量相同。
图6-6 背景数据块
块中的局部变量名必须以字母开始,只能由英语字母、数字和下划线组成,不能使用汉字,但是在符号表中定义的共享数据的符号名可以使用其他字符(包括汉字)。
在变量声明表中赋值时,不需要指定存储器地址;根据各变量的数据类型,程序编辑器自动地为所有局部变量指定存储器地址。
3.生成梯形图程序
图6-5下面是功能块FB 1的梯形图程序。用起保停电路来控制发动机的运行,功能块的输入变量Start和Stop分别用来接收起动命令和停止命令。输出信号Engine_On用来控制发动机的运行。
FB 1用比较指令来监视转速,检查实际速度Actual_Speed是否大于等于预置转速Preset_Speed。如果满足比较条件,Bool型输出变量#Overspeed(超速)为1。
操作系统自动地在局部变量前面加上“#”号,共享变量名被自动加上双引号。
4.背景数据块
中文版STEP 7将背景数据块翻译为实例数据块。背景数据块是专门指定给某个功能块( FB)或系统功能块(SFB)使用的数据块,它是FB或SFB运行时的工作存储区。
背景数据块用来保存FB和SFB的实参和静态数据,背景数据块中的数据是自动生成的。它们是功能块的变量声明表中的数据(不包括临时变量),临时变量( TEMP)存储在局部数据堆栈中。调用功能块时应指定对应的背景数据块。功能块被执行完后,它的背景数据块中存储的数据不会丢失。
使用不同的背景数据块调用功能块,可以控制多个同类的对象。
生成功能块后,可以首先生成它的背景数据块,然后在调用该功能块时使用它。选中SI-MATIC管理器左边窗口中的“块”图标,用右键点击右边的窗口,执行出现的快捷菜单中的“插入新对象”→“数据块”,生成一个新的数据块。在出现的数据块属性对话框中,采用系统自动生成的名称DB 1,选择数据块的类型为“实例DB”(即背景数据块),如果有多个功能块,还需要选择它是哪一个功能块的背景数据块。
图6-6是FB 1的背景数据块中的数据,与图6-5中的变量声明表相比较,可以看出二者之间的对应关系。表中BOOL变量(数字量)的初始值FALSE为二进制数0。静态变量Preset_Speed(预置转速)的初值为1500。
功能块的变量声明表决定了它的背景数据块的结构和变量。不能直接修改背景数据块,只能通过对应的功能块的变量声明表来修改它。
点击排行
