功能块(FB)教材全解.doc

上传人:小飞机 文档编号:4005808 上传时间:2023-03-31 格式:DOC 页数:40 大小:957KB
返回 下载 相关 举报
功能块(FB)教材全解.doc_第1页
第1页 / 共40页
功能块(FB)教材全解.doc_第2页
第2页 / 共40页
功能块(FB)教材全解.doc_第3页
第3页 / 共40页
功能块(FB)教材全解.doc_第4页
第4页 / 共40页
功能块(FB)教材全解.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《功能块(FB)教材全解.doc》由会员分享,可在线阅读,更多相关《功能块(FB)教材全解.doc(40页珍藏版)》请在三一办公上搜索。

1、目录第一章 功能块(FB)编程概述11.1功能块(FB)简介11.2功能块(FB)使用特点11.3 功能块(FB)使用环境21.3.1 支持FB功能的PLC类型21.3.2.支持FB功能的软件21.3.3 CX-Programmer6.0功能块特点2第二章 梯形图功能块32.1 梯形图功能块编程基础32.1.1梯形图功能块结构介绍32.1.2 梯形图功能块编辑区介绍42.2 创建功能块42.2.1 新建梯形图FB52.2.2 设置功能块变量52.2.3 编写FB内梯形图72.3 使用功能块82.3.1 调用梯形图功能块82.3.2 梯形图FB的嵌套92.3.3 保存梯形图FB102.3.4 调

2、试梯形图FB112.4 FB内存分配注意事项12第三章 高级语言(ST语言)功能块143.1ST语言功能块编程基础143.1.1 高级语言编程概念143.1.2 ST语言编程特点143.2ST语言编程系统介绍153.2.1 ST语言常用运算符163.2.2 ST语言基本命令173.2.3 ST语言编程规则203.3创建ST语言FB213.4ST语言FB的使用223.4.1 调用ST语言FB223.4.2 ST语言FB的嵌套223.4.3 ST语言FB的保存和调试23第四章 功能块FB库244.1 FB库概述244.1.1 FB库特点244.1.2 FB库应用简介244.2 FB库内容介绍264

3、.2.1 FB库内容简介264.2.2 FB库功能分类264.3 FB库功能块使用274.3.1 创建FB库中的功能块274.3.2 阅览FB库中的功能块程序284.3.3 调用FB库中的功能块28第五章 功能块应用示例29附录一:ST语言语法错误一览表34第一章 功能块(FB)编程概述 OMRON编程软件CX-Programmer从5.0版本开始,增加了一个全新的编程功能功能块(Function Block,简称FB)。CJ、CS、CP1H系列的PLC可以使用这个功能进行编程,它大大增强了CX-Programmer软件对PLC编程、控制和调试的能力。功能块(FB)主要提供了梯形图和高级语言2

4、种编程方法,结合软件自带的功能库,给用户提供了全新的简单、高效、集成化的编程方法和环境。1.1功能块(FB)简介功能块(Function Block)是预先编辑或测试的程序集合,具有特定的功能要素,可嵌入原有的梯形图中执行,并通过设置I/O来使用这个功能。CX-Programmer5.0以上的版本具有FB功能,并且CS、CJ系列的PLC的CPU单元版本号高于3.0才支持该功能。用户可以使用2种语言创建功能块:梯形图语言和高级语言(ST语言)。1. 梯形图功能块:熟悉使用梯形图编程的用户可以用这种方式创建功能块,这和使用梯形图在CX-Programmer中编程的方式是一样的。对于熟悉CX-Pro

5、grammer的用户来说,这种编程方式是简单易学的。2. 高级语言(ST语言)功能块:ST语言是一种用于工业控制的高级语言,是类似VB、VC的高级语言。熟悉这种语言的用户同样可以用它创建ST功能块,用高级语言可以实现复杂的数据处理过程和控制过程。1.2功能块(FB)使用特点1 相似控制功能“模块”化。在一些繁冗的程序中,如果其中有一些控制过程是类似的,那么用户可以把这些类似的控制过程定义为“模块”。这样,每次需要实现这些控制功能时,就不用重复写很多条程序,只要调用用户自定义的“模块”就可以了。把这些控制功能“模块”化,使得编程工作更清晰,更简便,更易于管理。2 数字运算过程简单化。使用功能块中

6、ST语言编程,能够处理更复杂的算术运算。原来要在PLC中处理数字量,需要编写梯形图来进行算术运算,一步程序也只能完成一个算法,要完成复杂的算法需要编写很多程序。现在用ST语言,就可以用精简的高级语言编写复杂的算术运算过程。3 CX-P软件自带FB库。CX-Programmer软件自带FB库,用户可以根据需要调用FB库中自带的功能块。FB库让用户无需编辑梯形图,就可以使用PLC单元和元器件的基本功能,并且易于使用,无需程序调试,简单易懂,具可扩展性。4 编程操作更简单。功能块的调用、编辑、删除就象对指令的操作一样简单。编辑功能块内部的程序也很简便,只需找到相对应的功能块,就可以在“块”的内部进行

7、程序的编辑,而不需要在繁冗的程序中查找修改。5 程序检查更容易。功能块程序的检查很方便,只要在“块”中检查程序的流程和可靠性即可,工作量小,检查简单。使用功能块缩短了主程序的大小,并且功能块的查找也很简单,从而使得程序的检查工作变得更容易。上述功能块(FB)的这些特点给用户提供了一个易于编程、管理程序、调试程序的编程环境。下面就详细介绍功能块功能的使用和操作。1.3 功能块(FB)使用环境1.3.1 支持FB功能的PLC类型CJ、CS、CP1H系列的PLC才支持FB功能,并且CJ、CS的CPU单元版本号需要在3.0或3.0以上。具体机型可参考下表:PLC类型CPU型号CS1G-HCS1G-CP

8、U42H/43H/44H/45HCS1H-HCS1H-CPU63H/64H/65H/66H/67HCJ1G-HCJ1G-CPU42H/43H/44H/45HCJ1H-HCJ1H-CPU65H/66H/67HCJ1MCJ1M-CPU11/12/13/21/22/231.3.2.支持FB功能的软件 需使用CX-Programmer5.0及以上版本。1.3.3 CX-Programmer6.0功能块特点 在CX-ONE软件中的CX-Programmer6.0,其中的FB功能有很多先进的功能,现简单介绍如下:1. 在线可以察看功能块的内部程序运行情况。在CX-Programmer6.0中,用户是可以查

9、看FB内部程序运行情况的,提高了用户对程序的查错能力。2. 功能块支持嵌套。在CX-Programmer6.0中,如果创建了多个功能块,如FB1、FB2、FB3,则可以实现FB1的内部程序中调用FB2,FB2的内部程序调用FB3。梯形图FB最多支持8层嵌套,而ST语言FB则可以自由的嵌套。3. FB支持程序更新。CX-Programmer6.0中,如果更改了FB的内部程序,在调用该功能块的地方,只需更新该功能块即可。第二章 梯形图功能块2.1 梯形图功能块编程基础使用过CX-Programmer的用户都非常熟悉梯形图编程模式和编程环境。因此,CX-Programmer仍然提供了老用户熟悉的梯形

10、图语言来创建和编辑功能块的内部程序。2.1.1梯形图功能块结构介绍 梯形图功能块是由完成特定功能的程序段组成的。组成程序的每一步都有输入和输出,功能块中的输入和输出被定义成变量的这种特点,决定着它能够成为一个编程“元素”,而能够在不同的程序中被多次调用。总的来说,功能块是由变量算法构成的。1. 变量:变量是指输入、输出和内部地址,在编辑功能块的时候给这些地址一个变量名。 功能块运行时,它们对应着外部的实际地址。2. 算法:算法是依靠梯形图的编程来完成的。依靠算法可以完成某个特定的控制功能。 举个简单的例子说明。如下图2-1所示,要实现按下开0.00开关5秒后接通输出10.00,梯形图程序如(a

11、)图所示。如要把这个功能做成功能块的形式,以便今后编程时调用,必须将其中的输入、输出甚至中间变量都定义称为变量,如(b)图所示。在每次调用功能块的时候,无需知道内部结构,只要知道该FB能实现的控制功能,及输入、输出变量对应完成什么功能,就可以直接使用了(如图2-1(c)所示)。(a)(b)(c)将输入、输出定义成变量调用时输入地址 图2-1 2.1.2 梯形图功能块编辑区介绍梯形图语言的编程界面如下图2-2所示:从图上分界线来看,可以把整个操作界面分成2个部分,上半部分是变量设置区,下半部分是梯形图编辑区。 变量设置区 FB梯形图编辑区图2-21. 变量设置区:定义变量名,包括输入变量,输出变

12、量和内部变量。其中外部变量和内部变量在使用中对应着实际的输入/输出地址。内部变量是用来定义梯形图中中间变量的。外部地址提供了一些有特殊功能的,系统定义好的符号可供使用。2. 梯形图编辑区:在梯形图编辑区可以编写梯形图程序,其中的I/O地址都使用变量设置区设置好的变量名。2.2 创建功能块 用户在编写主程序时,一旦要用到FB功能,需要根据要求先创建功能块。使用FB功能的步骤基本上为(如下图2-3所示):新建功能块定义功能块变量编写FB内部程序调用功能块定义功能块的I/O地址。无论使用梯形图FB还是ST语言FB,基本步骤都是相同的,只是其中对程序的编辑方式会有所不同,下面将详细介绍一下如何使用FB

13、功能。新建功能块创建一个新的FB项目定义FB变量定义FB程序地址变量编写FB程序编写FB的内部程序调用FB在主程序中调用功能块定义I/O定义主程序FB变量的地址图2-32.2.1 新建梯形图FB 在“新PLC”目录下,可以看到“功能块”子目录,包含有这个子目录的PLC才支持FB功能。右击“功能块”,选择“插入梯形图功能块”就创建了一个梯形图功能块,并且创建的功能块就在“功能块”目录下。 图2-42.2.2 定义功能块变量 创建了一个梯形图FB后,默认的FB名称为“功能块1”,双击它就进入梯形图FB编程界面。在编程界面的上方,是变量设置区。 在功能块的程序中,地址不是实际的I/O地址,而是使用变

14、量名作为地址。在实际使用功能块的时候,再将实际的I/O地址和变量一一对应起来。在这点上功能块是不同与子程序的,功能块中的地址是变量名,可以随着程序的改变,使用要求的改变而改变。 图2-5 变量设置区列出了变量的用法、名称、属性等信息。该区域包含了4个部分:内部变量、输入变量、输出变量、外部变量。1. 内部变量:内部变量只被用于功能块程序内部。它不能够通过实际的I/O地址来进行动作。相当于常说的中间变量。2. 输入变量:输入变量可以和实际的I/O输入地址对应起来,通过实际的I/O输入来控制功能块的输入。系统默认的输入变量是“EN”,表示只有当“EN”条件为ON的时候,功能块其它输入变量才得到外部

15、的输入地址的输入信号。3. 输出变量:输出变量可以和实际的I/O输出地址对应起来,实际的I/O输出可以通过输出变量得到输出信号。4. 外部变量:外部地址是常用的一些系统定义好的变量地址。它们在CX-Programmer的程序段中也可以使用。在“符号”中可以找到其中一些地址。当然,用户在“全局符号”中定义的符号在“外部变量”中也可以找到。在4类变量中可以定义各自的变量。定义变量时需要设置变量的属性,下面介绍一下定义变量时的属性设置:图2-61) 名称:即变量名,是用来定义功能块中变量的。在不同的功能块中可使用同样的变量名。2) 数据类型:功能块提供如下数据类型可供使用。 表2-1 定义变量可使用

16、的数据类型列表数据类型类型含义数据占用空间输入变量输出变量内部变量BOOL位1位OKOKOKINT整型16位OKOKOKUNIT无符号整型16位OKOKOKDINT有符号双字32位OKOKOKUDINT无符号双字32位OKOKOKLINT有符号长整型(4字)64位OKOKOKULINT无符号长整型(4字)64位OKOKOKWORD字16位OKOKOKDWORD双字32位OKOKOKLWORD长字64位OKOKOKREAL实型32位OKOKOKLREAL长实型64位OKOKOKTIMER计时器型1字(标志位占1位)NONOOKCOUNTER计数器型1字(标志位占1位)NONOOK3) 使用:定义

17、变量为内部变量、输入变量、输出变量、外部变量其中之一。4) 初始值:选择变量的初始状态。变量是位地址时,初始状态为ON/OFF。变量地址是字地址时,初始状态是设定通道内的初始值。5) 注释:可以为变量名添加一些注释。2.2.3 编写FB内梯形图 如图2-2所示,FB的梯形图需要在下方的梯形图编辑区中进行编写。FB的梯形图和主程序中的梯形图的区别在于:FB梯形图中的地址都是以变量名的方式定义的,而主体程序中的地址都对应着实际的地址。现以图2-1的梯形图为例,说明如何创建实现该功能的FB梯形图。 创建FB梯形图的步骤如下图2-7所示:1.列出输入/输出点2.将输入/输出转为变量3.用变量名作为编程

18、地址,编写FB梯形图地址变量0.00 aT0000 b10.00 c 图2-71. 列出输入/输出点:将原来梯形图中的表示输入和输出的地址列出来。2. 将输入/输出地址转换成变量名:将原来输入/输出的I/O地址一一定义一个变量名。不同的控制对象需要选择不同的数据类型。例如程序中定义输入点0.00的变量名为a,数据类型为BOOL;T0000的变量名为b,数据类型为TIMER;输出点的变量名为c,数据类型为BOOL。3. 编写FB梯形图:编写的方式和主体程序的编写方式几乎一样。区别在于,需要将原来的实际地址转换成变量名。例如TIM指令,原来的写法是TIM 0000 #50,FB程序就应该写成TIM

19、 C #50。以上看来,在FB梯形图编辑区内编写梯形图和主体程序编写梯形图的方法几乎一样,并且也可以调用工具栏上的快捷工具来进行程序的编写。只要在输地址的地方键入变量名即可。2.3 使用功能块2.3.1 调用梯形图功能块 创建好梯形图FB后,在主体程序中就可以调用该功能块了。下面将调用以上创建好的梯形图FB作为例子进行说明。 图2-7 图2-81. 先定义一个I/O地址用来启动梯形图FB,所示的开关0.00用于启动功能块。如果0.00为ON,执行功能块中的程序,如果0.00为OFF,不执行功能块程序。2. 然后调用工具栏上的“功能块”按钮创建一个新功能块。选择已经创建好的功能块并取名“延时5秒

20、”。因为功能块和开关、指令、输出线圈一样,在程序中就是一个“元素”,所以这个起了名称的“元素”将会登记到“符号”目录的列表中。(所以,在删除创建的功能块的时候,必须在“符号”列表中将该功能块对应的“符号”删除,才能删除梯形图FB这个对象。3. 调用好创建的功能块后,需要给输入、输出变量定义一个实际的I/O地址。使用“功能块参数”按钮给变量定义I/O地址。如图中处,赋给输入变量a地址1.00,处,赋给输出变量c地址10.00。由上述调用功能块的步骤可以看出:调用功能块首先要设置EN的控制地址用来启用功能块,然后定义输入、输出变量的地址就完成了调用。使用者不需要知道功能块内部的程序具体是怎样的,只

21、要知道功能块的功能以及输入、输出控制的定义,即可使用。并且一个功能块在同一个程序中可以被多次调用,只要将输入、输出的地址改变一下就可以了,所以说FB的调用是非常简便的。2.3.2 梯形图FB的嵌套 编写好梯形图FB的内部程序后,基本创建了一个完整的功能块。但在编写一些工业控制程序时,仅使用一个功能块的情况是非常少的。并且,如果控制功能多样复杂,简单的调用也不能够满足需要,这时,功能块的嵌套功能就非常必要。下面主要介绍一下如何使用功能块嵌套功能。 要使用FB的嵌套功能,至少需要创建2个或2个以上的功能块。下面创建2个功能块:FB1要求:输入接通后延时n秒后接通输出。FB2要求,对延时时间n进行判

22、断,如果超过100秒,则报警输出接通。嵌套功能需实现在FB1中嵌套FB2,完成输入接通n秒后接通输出,如果用户输入的时间超过100秒,输出报警。 要实现在FB1中嵌套FB2,先要创建FB2,然后在创建FB1内部程序中才可以调用FB1。下面列出FB2的变量和内部程序: 表2-2 功能块2变量列表功能块变量类别变量名数据类型变量说明功能块2输入变量aINT用户定义的延时时间输出变量bBOOL超时报警点 图2-9 (FB2内部程序) 建立了FB2后,开始创建FB1,在FB1中调用FB2,只需将FB2看成像“指令”一样的程序元素那样调用就可以了,调用的同时功能块会自动登陆到变量列表中。下面列出了FB1

23、的变量和内部程序: 表2-3 功能块1变量列表功能块变量类别变量名数据类型变量说明功能块1输入变量输入BOOL用来控制输出的输入点时间值INT用户定义的延时时间内部变量nTIMER定时器号时间判断FB调用的FB2输出变量输出BOOL延时输出点输出报警BOOL超时报警点 图2-10 (FB1内部程序)FB1,FB2的创建完成后,就可以在主程序中直接调用FB1。在输入时间的地址内,一旦输入时间大于100秒,输出报警位就会置“ON”。主程序部分如下图2-10所示,0.00延时接通1.00,0.01延时接通1.01。延时的时间值分别放在D0和D10通道中,当其中的时间值超过100秒,报警点50.00或

24、者50.01就会输入报警。 图2-11 (主程序部分)2.3.3 保存梯形图FB 如下图2-12所示,可以将编辑好的功能块单独保存起来,文件名为(*.cxf)。这样,如果用户创建好功能块后,今后也可以在不同的程序中进行调用。图2-122.3.4 调试梯形图FB 对于CJ、CS系列的PLC的程序调试,无需连接到真正的PLC上,在CX-Programmer软件中可以通过仿真功能,就可以对梯形图程序进行监控。监控功能不仅能实现对程序使用的位和通道进行监控,同样也能对调用的功能块进行监控。要监控功能块,在仿真状态,双击调用的功能块或者右击该功能块,选择监控功能块梯形图实例就可转换到监控FB的界面。在监

25、控FB的界面,可以完成监控FB中的位和通道,改变PV值,强制置位/复位等操作。监控的操作步骤如下:1. 选择PLC工作在线仿真器,模拟下传程序后,就可以对程序进行在线仿真的调试工作了;2. 选择视图窗口 查看,打开查看窗口。3. 在主程序中选择调用的功能块,在弹出的菜单中选择在查看窗口中注册,在弹出的对话框中“用法”和“数据类型”选择全部。所有功能块中的变量都被登记在查看窗口中,用户可以根据需要来进行调试。如图2-13所示: 图2-134. 双击主程序中的功能块实例,就可以进入监控FB的内部程序的界面。5. 用户可根据需要对位进行置位/复位,改变通道的PV值等操作。 整个操作过程可以参考下图2

26、-14: 图2-142.4 FB内存分配注意事项 前面介绍了功能块的创建以及使用方法,在创建和使用的过程中,熟悉了FB的结构以后,下面介绍一下使用FB功能的内存分配需要注意的事项。 创建了功能块以后,在主程序里调用创建的功能块,在主程序中被调用的FB我们称作“功能块实例”或者简称“实例”。并且要对引用的FB进行命名,如下图2-15所示:在此处输入实例名称图2-15 创建的功能块如果没有被调用,那么执行主程序的时候不会执行该功能块,同时,PLC也不会分配该功能块的I/O地址。一旦程序中调用了功能块,那么PLC将会自动分配一部分I/O内存供FB实例运行使用。主程序可以对同一个FB进行多次调用,如果

27、实例的名称一样,则占用的I/O内存一样,如果实例的名称不一致,则PLC分配不同的I/O地址给不同的实例。所以说实例的I/O分配是否相同,是根据实例的名称决定的,具体情况如下图2-16所示:图2-16 PLC自动分配一部分内存给FB实例供其运行,并且自动分配H区的I/O供功能块实例运行。用户也也可自己设定供FB实例使用的I/O地址。选择PLC功能块内存功能块内存分配来进行设定,如下图2-17所示:图2-17双击“起始地址”或者“结束地址”,就可选择分配给功能块实例的内存区,然后输入起始地址和结束地址。然后在主程序编程中,就需要注意不要使用这些已经分配给功能块实例的地址作为编程的内部地址来使用。

28、在编程时,主程序编写完成后,可以查看当前程序占用了多少内存。通过视图内存视图功能块内存分配,可以查看当前程序占用了多少内存,其中功能块占用了多少以及还剩下多少内存。如下图2-18所示:图2-18第三章 高级语言(ST语言)功能块3.1 ST语言功能块编程基础3.1.1 高级语言编程概念ST语言(Structure Text Language)是一种用于工业控制的高级语言。它类似于PASCAL语言,有选择语句或者循环语句等这些语言结构。通过使用这些语言结构来编写控制程序。一个的ST程序由多条语句组成,一个语句由变量和表达式组成。1. 表达式:表达式是包含着算法和操作数的序列。算法包括逻辑运算、算

29、术运算、比较运算等算法。2. 语句:语句是由表达式构成的,可以分为赋值语句或者控制语句。赋值语句中包含着表达式的计算结果这个信息。控制语句包含选择语句、循环语句、条件语句等。下面举例说明上述概念,CASE COLOR OF 1:NofRed:= NofRed+1; 2:NofBlue:= NofBlue+1; ELSE NofOther:= NofOther+1;END CASE;IF NofRed100 OR NofBlue100 THENSTOP:=TRUE ENDIF;这个就是表达式,其中NofRed就是变量。表达式左右2边包含的就是算法。下面的就是CASE语句(选择语句)和IF(条件)

30、语句。 图3-13.1.2 ST语言编程特点 用户除了可以创建梯形图FB之外,熟悉高级语言编程的技术人员还可以创建ST语言的FB。CX-Programmer为熟悉不同编程语言的用户提供了不同的编程平台。这样,懂得高级语言的用户编写好复杂的ST语言功能块后,其它用户甚至是不熟悉ST语言的操作人员也可以使用该功能块,这样就大大降低了操作人员对编程语言的限制。 另外,使用高级语言编程,可以轻松完成复杂的算术运算。如果用梯形图语言编辑复杂的算术运算功能,会写很多条程序,占用更多的程序容量。如果用ST语言来写,用表达式就可以代替梯形图复杂的程序。例如:圆柱体容器的体积公式为V=r2h,如果要计算其中液体

31、的体积,用梯形图编程程序如下图所示:rr2hhr2r2h 图3-2如果改用ST语言编写的话,程序如下:; 公式(3-1)用梯形图语言编程,需要写4-6步程序,而且操作数较多,不便于管理和修改。而使用ST语言,只要写好表达式即可。所以说,对于含有复杂的算术运算的控制程序,使用ST语言编程有着一定的优势。下面,我们就来学习如何使用这一功能。3.2 ST语言编程系统介绍一般来说,一段程序总是由表达式和语句构成的。了解ST语言的编程系统,就要从表达式和语句开始。对于表达式,需要从操作符号和变量入手;而对于语句,需要掌握它的功能和语言结构。下面,我们就来介绍一下ST语言的常用运算符及基本命令。3.2.1

32、 ST语言常用运算符 ST语言能够实现的算术运算除了基本的加、减、乘、除之外,还能实现一些复杂的函数运算,例如指数、正(余)弦函数、对数函数等。下面我们就来熟悉一下这些运算符号及用法。1. 基本运算符基本运算符包括简单的加、减、乘、除、比较及一些逻辑关系的表达符号。这些符号的使用比较简单,使用这些符号可以实现一些不太复杂的运算要求。具体的规则及使用方法可以参考下表: 表3-1 基本运算符运算功能操作符号应用示例加A+B (其中A,B为变量)减A-B乘*A*B除/A/B比较,=AB,AB,A=B等于=A=B逻辑与&,ANDA&B, A AND B补NOTA NOT B逻辑或ORA OR B异或X

33、ORA XOR B 这些运算符的使用是很简单的,但在使用这些运算的过程中要注意参加运算的变量的类型。例如除法运算,如果A、B为INT类型,A=3,B=2,那么A/B的结果就是1;如果A、B为REAL类型,那么运算结果就为1.5。所以要根据运算要求选择适当的变量类型。2. 函数运算符函数运算符包括指数运算、正(余)弦运算、对数函数等符号。这些符号的使用相对复杂,使用这些符号可以实现要求更高的运算。具体的规则及使用方法可以参考下表: 表3-2 函数运算符函数功能函数符号应用示例功能绝对值ABSa:=ABS(b)a|b|方根运算SQRTa:=SQRT(b)a自然指数EXPa:=EXP(b)aeb常用

34、指数EXPTa:=EXPT(b,c)abc自然对数LNa:=LN(b)alogeb常用对数LOGa:=LOG(b)alog10b正弦函数SINa:=SIN(b)asin(b)余弦函数COSa:=COS(b)acos(b)正切函数TANa:=TAN(b)atan(b)反正弦ASINa:=ASIN(b)asin-1(b)反余弦ACOSa:=ACOS(b)acos-1(b)反正切ATANa:=ATAN(b)atan-1(b)3. 常数表达方法熟悉了基本的运算符后,就可以编写一些表达式了。表达式中可以用变量、常量结合运算符来传递数字信息。前面我们介绍过变量的类型及表达,现在我们来了解一下ST语言中常量

35、的几种表示方式。常量可以用十进制、十六进制、八进制、二进制来表示,表示方法如下表所示: 表3-3 常量表示方法进制表达方式示例十进制数字12十六进制16#数字16#C八进制8#数字8#14二进制2#数字2#11003.2.2 ST语言基本命令ST语言是类似于Pascal的高级语言。只要在编辑区编写ST语言的高级程序,就可以用来实现某段控制功能。对于熟悉高级语言的用户,ST语言提供了很好的编程界面,只需稍微了解一下编程规则即可掌握;对于不熟悉高级语言编程的用户,ST语言的入门也是比较容易的。下面我们介绍一下ST语言编程常用的命令。1. 求和语句(Summary) 求和语句是个等式,用于表达把运算

36、总和的值赋予一个变量。 表达式: 变量:=表达式/变量/常量 举例: A:=X+1; A:=B; A:=20;2. 条件语句(IF语句)IF语句适用于当一个特定的条件满足的时候,去执行相应的控制。如果条件不满足,则执行另外的控制。IF语句有简单的对一个条件进行判断的程序,也有复杂的对多个条件进行判断的程序,即嵌套语句。1) IF语句(单一条件)表达式:IF THEN ; ELSE ; END_IF;条件表达式1表达式2FalseTrue执行流程图: 图3-4举例:如果A0,则B等于A的值,并且线圈C有信号输出,否则B等于0,线圈C无信号输出。 IF A0 THENB:=A; C:=TRUE;E

37、LSEB:=0; C:=FALSE;END_IF;2) IF语句(多条件嵌套)表达式1: IF THEN IF THEN ; ELSE ; END_IF; END_IF; 流程图1: 表达式1表达式2FalseTrue条件1条件2TrueFalse 图3-5表达式2: IF THEN ; ELSIF THEN ;ELSIF THEN ;.ELSIF THEN ;ELSE ;END_IF;流程图2: 表达式1FalseTrue条件1条件2条件3表达式2表达式3TrueTrueFalseFalse 图3-6 举例:要求如下,如果A0,X=10。否则,先参考参数B,如果B1,则X1,如果B2,则X=

38、2,如果都不是,X=0.IF A0 THEN X:=10;ELSIF B=1 THEN X:=1;ELSIF B=2 THEN X:=2;ELSE X:=0;END_IF;3. 选择语句(CASE语句)这类语句适中有一个变量,它可选择多个值,如果选择的值不同会执行不同的控制。我们可以这样理解,在工业控制中要控制对某一材料的切割,由于材料硬度不同,需要不同刀具进行切割。如:材料1,需要用1号刀具进行切割;材料2,需要用2号刀具进行切割, 材料3,需要用3号刀具进行切割。例如这样的控制情况就可以选用CASE语句。 表达式: CASE OF1:;2:;.N:;ELSE ;END_CASE; 举例:

39、CASE A OF1:X:=1;2:X:=2;3:X:=3;ELSE Y:=0;END_CASE;3.2.3 ST语言编程规则 ST语言编程有一些规则需要注意。在我们学会写一些简单的控制语句后,编译功能块后仍然会出现错误,所以在掌握了基本的编程符号和语句之后,也需要知道ST语言的编程语法和规则。1. 每个完整的表达式后要用“;”号结尾。而对于语句来说,不是每句后面都要加“;”,所以需要注意什么地方应该加“;”,什么地方不该加“;”。2. 如果一个变量被定义成整型,那么不能被写成有小数点的形式。如果一个变量被定义成实型,那么这个变量不能被写成整数类型。例如:如果A为整型,就不能写成A:=2.0。

40、如果A为实型,就不能写成A:=2。3. 布尔类型的变量的ON、OFF状态要用TRUE、FALSE来表示。如果a是BOOL变量,不能用a:=ON(OFF), a:=1(0)来表示它的状态,要写成a:=TRUE(FALSE)。4. 表达式前后的变量类型要一致。例如C=A+B,如果A、B、C都是整型,就不会有错误。如果C是实型,则会出现语法错误。 当功能块程序不能通过编译的话,也可以通过查询错误代码来判断发生了什么语法错误。详细情况,可以参考附录一:ST语言错误代码。3.3 创建ST语言FB ST语言功能块的创建和梯形图功能块的调用基本一样,基本步骤为:新建ST语言功能块定义功能块变量编写FB内部程序调用功能块定义功能块的I/O地址,如下图3-7所示。和创建梯形图FB的步骤基本一致,唯一不同的是编写FB内部内程序需要是使用ST语言。新建功能块创建一个新的FB项目定义FB变量定义FB程序地址变量编写FB程序用ST语言编写程序调用FB在主程序中调用功能块定义I/O定义主程序FB的变量地址ST语言 图3-73.3.1 新建ST语言FB 新建ST语言功能块与新建梯形图功能块的过程类似,只需在创建功能块的时候,选择

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号