每个功能块的定义包含了算法和变量定义,其示意图如图4-68所示。
图4-68 算法和变量定义示意图
下面以“双稳态程序”为例,介绍功能块的创建过程。
1.创建新功能块
1)进入编程界面,在工程窗口中将出现功能块图标。如图4-69所示。
图4-69 功能块图标
2)在功能块图标上单击鼠标右键,在弹出的快捷菜单中单击“插入功能块(I)”项,在弹出的子菜单中再单击“梯形图(L)”项,如图4-70所示。成功插入功能块1后如图4-71所示。
图4-70 插入功能块操作
图4-71 成功插入功能块1
3)每个功能块必须定义一个名称,名称最多可由任意64个字符组成。默认的功能块名称为“功能块1”,按创建顺序编号。功能块的结构如图4-72所示。
图4-72 功能块结构示意图
在功能块1的图标上单击鼠标右键,将弹出一快捷菜单,如图4-73所示。再单击“重命名(R)”更改功能块的名称,输入“双稳态程序”,更改结果如图4-74所示。
图4-73 重命名功能块
图4-74 功能块的新名
4)可以按以下步骤在程序中插入功能块库文件(格式为*.cxf):
①在功能块图标上单击鼠标右键,在弹出的快捷菜单中单击“插入功能块(I)”项,然后再单击“从文件(F)…”项,将弹出如图4-75所示的功能块库文件窗口。
②打开CLK文件夹,选择相应的库文件,如图4-76所示。单击“打开”按钮即可完成插入功能块库文件的操作。
图4-75 功能块库文件窗口
图4-76 选择功能块库文件
5)双击“新创建功能块1”图标,将出现功能块的定义窗口,如图4-77所示。它由变量表和梯形图编辑区两个窗口组成。算法采用梯形图编程方式写在梯形图编辑区内;变量定义采用变量表的形式在变量表中写入。
图4-77 功能块定义窗口
6)使用OMRON功能块库文件时,双击插入的功能块库,显示已创建于右上窗口中的变量表和创建于右下窗口中的梯形图程序。默认状态下不显示功能块库文件内部。若需要显示时,则右键单击该文件,在弹出的菜单中选择“属性”,并在属性窗口中选中“显示功能块的内部”。两个窗口均呈灰色时表示不能进行编辑操作。如图4-78所示。
图4-78 库文件中的功能块定义
2.定义变量
1)将光标置于内部变量表格中,单击鼠标右键,弹出如图4-79所示的快捷菜单。选中“插入变量(I)…”项,将弹出如图4-80所示的“新变量”窗口。在该窗口中包含名称、数据类型、使用、初始值、保留、注释和高级按钮等项目。
图4-79 插入表格快捷菜单
2)在“新变量”窗口中输入定时器1的变量名“n1”,其中变量名的写法需注意以下几项:
①变量名可达30000字符长。
②变量名中不能有空格或以下的任何字符:
③变量名不能以数字开头(0~9)。
④变量名一行不能有两个下划线字符。
3)在“新变量”窗口中选择定时器1的数据类型为“TIMER”,如图4-81所示。数据类型的种类及属性可参见表4-1。
图4-80 “新变量”窗口
图4-81 “编辑变量”窗口
表4-1 变量数据类型表
4)图4-81中定时器1的“使用”项中显示为“内部”,代表该变量类型为内部变量,如图4-82所示。内部变量是只能在功能块内部使用的变量,它们不能直接作为应用程序中的I/O参数。
图4-81中“使用”项的背景为灰色,说明不能对其进行编辑操作。从表4-1可知,TIMER型数据仅支持内部变量。
变量类型除内部变量外,还有输入变量、输出变量和外部变量。输入变量是指可从功能块外输入数据的变量;输出变量是指可将数据输出到功能块外的变量,如图4-83所示。外部变量是指预先储存的系统定义变量或用户定义的全局符号。
5)图4-81中的“初始值”是指在初次执行功能块时设置的变量值。在功能块运行过程中可以修改。该项背景为灰色表明不能对其进行编辑操作。
6)图4-81中的“保留”项是指当PLC重新上电运行时,若某些变量的数据需保持不变,则选择此项。该项背景为灰色表明不能对其进行编辑操作。
图4-82 功能块内部变量
(www.daowen.com)
图4-83 功能块输入输出变量
7)图4-81中的“注释”项用于介绍变量用途,可以选用。单击图中右上角的“高级”按钮进入“高级设置”窗口,如图4-84所示,在此窗口可以设置AT地址和数组变量。具体操作可参见相关手册。
图4-84 高级设置窗口
综上所述,对不同类型变量的属性设置可参见表4-2。
表4-2 属性的设置
8)单击图4-81中的“确定”按钮后,名称“n1”的变量就注册到内部变量表中,如图4-85所示。
图4-85 n1注册到变量表
按照上述步骤注册其他变量,本功能块所需全部变量汇总于表4-3中。
表4-3 变量的定义
需特别注意的是,变量类型应与控制指令相符,否则将会导致程序错误。详情请参见《OMRON CX-Programmer 6.1操作手册》的2.6.1小节。
所有变量注册结果如图4-86、图4-87所示。
图4-86 注册的内部变量
图4-87 注册的输入变量
3.创建算法
在创建功能块算法时,不能直接引用PLC的I/O点或内部辅助触点作为功能块内指令的执行条件。否则该I/O点只能视为功能块内的某一变量名。但是立即数可以作为功能块内指令的操作数。需注意的是,“#”代表十六进制数;“&”代表十进制数。
在编写功能块内的梯形图程序时,不能使用下列指令,否则会产生错误。
●块编程指令(包括BPRG和BEND的所有指令)。
●子程序指令(包括SBS、GSBS、RET、MCRO、SBN、GSBN和GRET)。
●跳转指令(包括JMP、CJP、CJPN和JME)。
●步进指令(包括STEP和SNXT)。
●立即刷新指令(!)。
●I/O REFRESH指令(包括IORF)。
●TMHH和TMHHX指令。
●CV地址转换指令(包括FRMCV和TOCV)。
●堆栈记录位置指令(包括PUSH、FIFO、LIFO、SETR和GETR)。
●FAILURE POINT DETECTION指令(包括FPD等)。
●定时器/计数器PV移至寄存器指令(包括MOVRW等)。
按以下步骤在功能块中创建双稳态算法。
1)用鼠标单击图4-77中的梯形图编辑区,此时常用工具栏由灰变黑,用鼠标单击“”图标后,鼠标指针变成了“”,拖动该图标至0#指令条的起始位置并单击左键,出现如图4-88所示的新节点窗口。
图4-88 新节点窗口
2)在新节点窗口的下拉菜单中选择前面已注册的变量n2,如图4-89所示。单击“确定”按钮后,常闭触点n2已经输入第一行首位,结果如图4-90所示。
图4-89 选择变量
图4-90 输入第一个触点
3)单击工具栏中的指令按钮“”,并在紧贴右母板的位置单击,弹出“新指令”对话框。在“指令”处填入大写“TIM”,在“操作数”项下方,单击不同位置,由上至下顺序输入TIMER型变量“n1”和WORD型变量“off_time”,如图4-91所示。单击“确定”按钮完成操作,如图4-92所示。
图4-91 输入定时器指令的操作数
图4-92 显示定时器指令
4)按照以上步骤完成双稳态程序,如图4-93所示。
图4-93 功能块内双稳态梯形图程序
4.功能块文件的保存与调用
利用CX-P可以将创建好的功能块保存为其扩展名为*.cxf的库文件。这些文件可以被其他应用程序调用。其操作步骤如下。
1)在工程窗口中右键单击已创建好的功能块,在弹出菜单中选择“功能块保存到文件(S)”项。如图4-94所示。
2)在如图4-95所示的对话框中输入文件名,保存类型为功能块库文件(*.cxf)。单击“保存”按钮将“双稳态程序”功能块保存为同名库文件。
图4-94 保存功能块
图4-95 功能块的保存窗口
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。