本章节描述FBD语言的编程方法5.3FBD功能块语言对象FBD编程语言(功能块图)的对象可帮助将一个段分成若干个EF和EFB基本功能和基本功能块;DFB(导出的功能块);过程和控件元素。这些对象按FFB的名称组合在一起,它们可以通过链路或实际参数方式相互链接。FBD功能块指令基本功能块(EFB)具有内部状态。每次调用该功能时,即使输入值相同,输出值也可能不同,例如对于计数器,输出值是递增的。在图形表示中,基本功能块用包含多个输入和多个输出的块结构表示。输入始终表示在块结构的左侧,而输出始终表示在块结构的右侧。功能块可以有多个输出。功能块的名称(即功能块类型)显示在块结构的中央。功能块的执行编号(见FFB的执行顺序页314)显示在功能块类型的右侧。实例名称显示在块结构的上方。实例名称用作项目中的功能块的唯一标识。可以修改这个自动生成的名称,以便标识实例。实例名称(最多32个字符)在整个项目中必须是唯一的,并且不区分大小写。实例名称必须符合一般命名约定。FBD是功能块图(FunctionBlockDiagram)的简称。FBD是一种图形化的编程语言。FBD由一些列“节”组成,每个“节”有许多功能块组成。每节完成一段相对独立的运算,这些运算包括逻辑,算术,功能块,输入,输出,连线,跳转和返回等。如图所示:顺序功能图(CFC)编程语言参考程序:运行结果:3.4.1FBD的光标位置每个文本是一个可能的光标位置,选中的文本以蓝色背景表示并且当前可以被修改。通过点矩形框也能识别当前光标位置,在FBD中基本上由虚线矩形显示当前光标的位置,文本和运算块由蓝色或红色阴影显示。光标的位置决定了哪些元素在右键菜单是可插入的。下面是光标所有可能位置的例子:1.文本(光标位置1)光标在文本处可以输入文本标签或内存地址,在跳出变量声明时可以对标签做注解,可以是中文注解。2.输入(光标位置2)3.操作符、函数或功能块(光标位置3):4.输出(光标位置4,后面紧跟着赋值标签或跳转):5.赋值前面的交叉线(光标位置5):6.节的末尾输出端(光标位置6)7.在节的最右边位置或节的其它光标位置以外的地方。这将选择整个节:通过单击鼠标或使用键盘可以在特定的位置放置光标,在任何时候,使用箭头键可以在选择的方向上跳到最近的光标位置。通过这种方式可以访问所有的光标位置包括文本区域。如果最近的光标位置被选中,就可以使用up或down方向键来选择先前的网络或随后的网络的最近光标位置。3.4.2操作说明在选中的光标处可以做插入和扩展操作1.赋值插入赋值依赖于选中的位置(参照'FBD的光标位置'),在选中的输入端附近(光标位置2)、在选中的输出端(光标位置4)之后或在网络的末端(光标位置6)可以直接插入赋值。2.跳转符号:这个命令插入一个跳转。插入依赖于选中的位置(参照'FBD的光标位置'),在选中的输入端(光标位置2)附近、在选中的输出端(光标位置4)后或在网络的末端(光标位置6)可以直接插入跳转。3.返回符号:这个命令插入一个返回指令。插入返回指令依赖于选中的位置(参照“FBD的光标位置”),在选中的输入端附近(光标位置2)、在选中的输出端(光标位置4)之后或在网络的末端(光标位置6)可以直接插入返回指令。4.运算块符号:用这些命令能插入运算符,功能,功能模块和程序。这三个功能块的具体使用参见后续章节●在某些功能块的上部有一个可以写入文字的区域,在此区域中用户可以写入功能块的实例名。如果已定义实例的功能块被另一个功能块类型所替代,那么用户要重新定义功能块实例。●运算块的所有未连接输入端都会出现“???”,用户必须用常量或变量代替这些问号。●在插入运算块的地方,如果其右侧已经有分支,则这个分支将被连接到功能块的第一个输出变量。●插入位置。对于大多数运算快来讲,可以直接插入到用户选中的位置:●如果选中了一个输入变量(光标位置2),运算块会插入到该输入变量之前。运算块的第一个输入变量和第一个输出变量会在现有的分支中连接起来。●如果选中了一个输出变量(光标位置4)),运算块会添加到该输出变量之后。运算块的第一个输入变量和第一个输出变量会在分支中连接起来。●如果选中了一个运算块(光标位置3),它会被新的POU代替,新的运算块的连接和原来运算块的连接相同。如果原来运算块的输入多于新运算块的输入,那么未连接的分支将被删除,对于输出变量而言,情况与之相同。●如果一个跳转或返回被选中(光标位置3),新运算块会插到跳转块或返回块之前。运算块的第一个输入变量和第一个输出变量会在现有的分支中连接起来。●如果一个跳转或返回被选中(光标位置3),新运算块会插到跳转块或返回块之前。运算块的第一个输入变量和第一个输出变量会在现有的分支中连接起来。●如果一个完整节或子节被选中(光标位置8),运算块会被插入到节或子节的最后面,它的输入将被连接起来。5.扩展输入符号:这个命令插入一个输入端运算。你必须选择运算符本身(光标位置3),在使用此命令后在功能块的输入测最下方会增加一个输入端。插入的输入端分配了文本“???”。6.取反符号:用这个命令可以对输入、输出、跳转或返回指令进行否定操作,否定的符号是在连接处的一个小圆圈。如果选中了一个输入(光标位置2)(查看'FBD的当前位置'),随后这个输入将被否定。如果选中了一个输出端(光标位置4),那么这个输出端将被否定。如果一个跳转或返回被标记,那么跳转或返回将被否定。否定可以通过重新否定来取消。7.置位/复位'符号:用这个命令可以象设置或复位那样来定义输出,置位的输出用[S]表示,复位输出端用[R]表示。单击输出断设置为置位,双击输出设置为复位,同时输出端的显示为,三击则输出断恢复为正常输出状态。8.剪切,复制,粘贴和删除在菜单项目“编辑”下可以用到“剪切”,“复制”“粘贴”和“删除”,也可以通过鼠标右键来完成。如果选中了一个交叉线(光标位置5),那么位于交叉行下面的赋值、跳转或返回将会被剪切、删除或复制。如果选中了一个功能块(光标位置3),选中的对象自身将被剪切、删除或复制,同时也包括在输入端的所有独立的分支。在复制或剪切之后,删除或剪切的部分位于剪贴板上,可以随意粘贴它。首先选中粘贴点,有效的粘贴点包括输入和输出端。3.4.3对程序注释在FBD编程时可以对节,操作数,符号做注释,可以是中文注释。在“工具—选项”打开如下画面:显示节的标题选中此项后,一个节的标题可视后,节标题会显示在横线上。显示节的注释选中此项后,如果用户已经定义了节注释,则这些注释将显示在节左上角的横线下。显示操作数注释选中此项后,会在窗口的编辑区域中显示变量的注释,此处操作数的注释仅显示在使用该变量的地方。这与在声明变量时所加“符号注释”不同。显示符号注释选中此项后,在声明时加上注释的每个变量,其上方显示它们的符号注释。注意:在添加符号注释后再为变量添加操作数注释,或是不加符号注释仅添加操作数注释,均是可以的。显示符号地址选中此项后,会在每一个变量上方显示它们的地址操作数固定长度如果未选中此项,系统默认将节的注释作为一行显示;如果选中此项,可以通过调整下列参数来规定注释显示区域的大小。操作数注释区域的宽度[字符数]:规定最多用多少字符数来显示操作数名。操作数注释区域的高度[行数]:规定最多可以用多少行来显示操作数名。操作数注释显示区域的高度[行数]:规定最多可以用多少行来显示操作数的注释。变量注释显示区域的高度:规定最多可以用多少行来显示变量注释。显示运算块图标选中此项后,功能块或函数提供了图标(位图),该图标将显示在FBD和LD编辑器的运算块中没有选用此功能的:选用此功能后:选择所有功能后界面显示如下: