结构化编程具有如下一些优点:1)各单个任务块的创建和测试可以相互独立地进行。图3-17 结构化编程示意图3)块可以根据需要在不同的地方以不同的参数数据记录进行调用。建议用户在编程时可以根据实际工程特点采用结构化编程方式,通过传递参数使程序块重复调用,使其结构清晰、调试方便。结构化编程中用于解决单个任务的块使用局部变量来实现对其自身数据的管理。模块化编程和结构化编程的详细内容将在6.5节介绍。......
2023-06-15
1.程序的结构
(1)PX Developer下用户编写的程序(回路控制、顺序控制)的结构(见图11-16)
(2)程序页面(见图11-17)
(3)FB、函数说明
1)FB和函数的作用见表11-3。
表11-3 FB和函数的作用
图11-13 PX Developer编程工具窗口画面
图11-14 工程窗口画面
图11-15 部件窗口画面
图11-16 程序结构
图11-17 程序页面构成
2)FB的构成如图11-18所示。
厂商FB是由厂家设计好,并在PX Developer中提供的FB,分为以下3类:
①通用FB:触发器、定时器、计数器等基于IEC61131-3—2003 FBD规范的标准FB以及多个过程控制CPU间的消息通信FB。
②过程FB:PID运算、修正运算等回路控制FB。
③I/O模块FB:与模拟量模块、数字量模块进行I/O的FB。
图11-18 FB的构成
用户FB是由用户在PX Developer中自行编写的FB,分为以下2类:
①通用FB:由用户编写的除回路控制以外的各类FB。
②标签FB:由用户编写的进行PID运算等的回路控制FB。
3)函数说明:函数包括通用函数和过程控制函数,具体说明如下:
①通用函数:逻辑运算、算术运算、选择、比较等IEC 61131-3—2003 FBD规范中标准的函数。
②过程控制函数:回路控制辅助函数(高位选择/低位选择/中间值选择等)。
2.程序的执行方式
通过PX Developer编写的程序,根据PX Developer中的设置,在过程控制CPU中的执行方式如图11-19所示。
定时器启动型和中断启动型程序的用途见表11-4。
图11-19 程序的执行方式
表11-4 定时器启动型与中断启动型
3.FBD程序说明
(1)FBD程序
1)使用编程工具进行编程,需要以IEC 61131-3—2003规定的FBD语言为基准。
FBD程序是指使用FBD语言编写的程序。
2)FBD语言是一种直观的图形化语言。
将进行特定处理的功能块(函数部件、FB部件)、变量部件、常数部件沿着数据或者信号的流向,使用连线连接起来进行编程。
功能块是可以重复利用的部件,可以在FBD程序的任何地方使用,用户也可以对函数块进行定义。
FBD程序构成如图11-20所示。
FBD程序示例
图11-20 FBD程序构成
如图11-20所示,连线后的功能块图类似于电气回路图。FBD程序中,数据从功能块、变量、常数的输出端流向其他功能块或者变量的输入端。
3)构成FBD程序的部件称为FBD部件,用户可以使用这些FBD部件进行编程。
(2)FBD部件
FBD程序由FBD部件构成,将FBD部件用连线连接起来进行编程。
FBD部件分类见表11-5。
表11-5 FBD部件分类
(3)基本数据类型
编程工具可以处理的基本数据类型见表11-6。
表11-6 基本数据类型
(4)变量
变量是用于存放各种值的区域。
变量需要预先声明数据类型,并且仅可以处理设定数据类型的值。
1)局部变量和全局变量:变量包括可以在各个POU(Program Organization Units,程序组织单元)内独立使用的局部变量以及可以在多个POU间共享的全局变量。局部变量和全局变量的关系如图11-21所示。
图11-21 局部变量和全局变量的关系
1—在程序/FB中使用全局变量的数值,通过与该全局变量同名的外部变量进行。
编程工具中,从部件窗口将全局变量部件拖放至FBD页面则自动添加外部变量。
①局部变量:局部变量在各FBD程序(程序、用户定义FB/标签FB)内进行声明,且仅可在该FBD程序内进行使用。局部变量由表11-7中的变量类别构成。
表11-7 局部变量的构成
定义为公共变量,则可以在FB属性窗口下显示或设置初始值和当前值,如图11-22所示。
图11-22 定义公共变量
②全局变量:全局变量是在编程工具的全局变量声明窗口下进行声明的变量,在PX Developer工程中的全部FBD程序内均可以引用并使用。各FBD程序通过声明为局部变量的外部变量引用全局变量。通过使用全局变量可以与其他FBD程序进行数据传递。全局变量最多可以定义32000个。
2)变量的软元件分配:
①局部变量和全局变量操作的数据存放于QnPHCPU的软元件内存中。用编程工具进行冷启动编译时,自动分配存放数据的软元件(分配的软元件每次不同)。热启动编译或者运行中写入编译时,不更改现有变量的软元件分配,仅对新增的变量进行软元件分配。
②全局变量可以由用户指定分配的软元件。指定了分配的软元件后,可以通过全局变量进行软元件的读取/写入操作。用户可以在编程工具的全局变量声明窗口下进行全局变量的分配,如图11-23所示。
图11-23 全局变量声明窗口
3)通过引用运算符访问FB部件的内部数据:
①指定FB部件的输入变量、输出变量、公共变量的情况。FB变量名是指对作为读取目标的输入变量、输出变量、公共变量进行声明的FB部件的变量名。各FB部件的内部数据中,输入变量、输出变量以及公共变量,可以直接从外围的POU通过引用运算符进行访问。在使用引用运算符访问FB部件的输入变量、输出变量以及公共变量的情况下,需要按照如下形式进行指定:
‘FB变量名’.‘输入变量名’
‘FB变量名’.‘输出变量名’
‘FB变量名’.‘公共变量名’
FB变量说明如图11-24所示,指定示例:PidOperation.MTD。
②FB部件的输入变量、输出变量、公共变量为结构体类型的情况。
4)变量初始值的设置:通过编程工具在向QnPHCPU进行PC写入时,可以进行变量初始值的设置。编程工具执行冷启动编译、热启动编译以及运行中写入编译时,软元件自动分配给变量。由于使用文件寄存器,因而变量的值在断电或者复位操作的情况下也保持不变
(执行清除锁存也不能初始化)。如需更改变量初始值,可使用编程工具更改初始值后执行
冷启动编译,并执行QnPHCPU的PC写入操作。
图11-24 FB变量说明
指定形式:
‘FB变量名’.‘结构体输入变量名’.‘成员名’
‘FB变量名’.‘结构体输出变量名’.‘成员名’
‘FB变量名’.‘结构体公共变量名’.‘成员名’
FB变量名是指对作为读取目标的输入变量、输出变量、公共变量进行声明的FB部件的变量名,具体事例如图11-25所示。
(5)常数
常数是用以存放设定值的区域。常数部件的数据类型由与其相连的函数部件/FB部件输入变量的数据类型决定。常数的输入格式所允许的基本数据类型见表11-8。
图11-25 FB变量名
表11-8 常数的基本数据类型列表
注:○—可使用——不可使用。
①输入格式如下:
十进制整数:由符号(+、-)和数字构成的数值。
十六进制整数:以“H”开头,由数字和“A”~“F”构成的数值。
实数:用小数点(如100.0)或者指数(如2E+010)表示的数值。
布尔数:“TRUE”或者“FALSE”。
②BOOL型TRUE、FALSE的输入如下:
十进制整数的情况:0为FALSE、1为TRUE。
十六进制整数的情况:H0为FALSE、H1为TRUE。
4.FBD程序的编译
通过编程工具可以对FBD程序进行编译,生成可以在QnPHCPU执行的代码(梯形图程序、PC参数等)。编译方式有冷启动编译、热启动编译以及运行中写入编译。
(1)冷启动编译
冷启动编译是指把已分配给变量的软元件全部从初始状态进行重新分配的编译方式(变量值全部置为初始值)。在编写完成FBD程序后需要进行编译的情况下,首先必须进行冷启动编译。冷启动编译后执行PC写入时,QnPHCPU变为停止状态。在停止状态下,FBD程序以及用户梯形图程序处于停止执行的状态,输出(Y)全部变为OFF状态。
(2)热启动编译
热启动编译是指不更改在FBD页面上已配置给FBD部件变量的软元件而进行编译的功能。
热启动编译用于系统运行中维持当前状态,并期望对FBD程序追加或更改处理的情况(保持已经配置的FBD部件的变量值)。而执行冷启动编译的情况下,当前状态不被保持(变量值全部恢复初始值)。
此外,热启动编译后进行PC写入时,QnPHCPU变为暂停状态。暂停状态下,停止FBD程序以及用户梯形图的执行,输出(Y)保持暂停前的状态。通过参数设置,可以使模拟输出处于保持状态。
热启动编译过程如图11-26所示。
图11-26 热启动编译过程说明
(3)运行中写入编译
运行中写入编译是指不更改在FBD页面上已配置给FBD部件变量的软元件,也不需要停止或者暂停运行中的QnPHCPU而替换其程序的编译方式,用于不希望停止系统而追加FBD程序或者更改处理的情况(与热启动编译一样,已配置的FBD部件变量被保持)。
5.标签FB
标签是指测控系统中代表各种DDC处理的识别标记。与标签所表示的DDC处理相关的数据统称为标签数据。使用标签FB易于对标签进行管理和操作。
如图11-27所示,标签FB部件的内部含有标签数据,使用监视工具对标签数据进行监视可以监视DDC处理状态。QnPHCPU的软元件区域按照编程工具的标签FB声明窗口下设置的最大标签数目确保相应的标签数据区域,各标签FB的标签数据起始软元件地址均为固定。
关于监视工具的详细情况,请查阅PX Developer操作手册(监视工具篇)。
(1)标签类型
标签FB具有标签类型的属性。标签类型决定了标签FB的标签数据结构以及监视工具下的面板类别。标签类型有4种,见表11-9。
图11-27 标签的说明
表11-9 标签类型
(2)标签类型和厂商提供标签FB的列表
使用厂商提供的标签FB部件,不需要定义标签的处理内容,即可简单地进行标签的操作。
厂商提供的标签FB部件见表11-10。
表11-10 厂商提供的标签FB部件
(续)
定义好的标签FB部件可以在标签FB窗口中显示,如图11-28所示。
6.模块FB
模块FB是对安装于PLC基板的模块进行数据I/O处理的FB。
使用模块FB编写数据的I/O处理程序,不需要考虑来自模块的数据I/O X/Y软元件以及缓存的地址。编程工具中可以使用的模块型号见表11-11。
表11-11 模块FB分类
下面介绍使用模块FB的方法。
如图11-29所示,在工程窗口中点击“Module FB”菜单。
图11-28 标签FB显示窗口
图11-29 使用模块FB
注意,在使用了模块FB后,不能使用GX Configurator的PLC软元件自动刷新功能。每次执行模块FB部件时,需独立使用智能功能模块软元件访问缓存。
如图11-30所示,在模块FB声明窗口中可以对使用的模块进行声明。
图11-30 模块FB声明
在部件窗口的模块FB项目中添加声明的模块FB部件,即可在FBD程序中使用模块FB。
部件窗口的模块FB项目如图11-31所示。
7.用户定义标签FB
用户定义标签FB和标签访问FB如下:
(1)用户定义标签FB
除了厂商提供标签FB外,用户还可以使用对处理内容进行自定义的标签FB(用户定义标签FB)。用户定义标签FB具有与标签类型对应的标签数据结构,用户可以通过使用标签访问FB、FB以及函数对处理内容进行编程。
(2)标签访问FB
标签访问FB是仅可在用户定义标签FB内使用的FB。
在访问已粘贴了的用户定义标签FB的标签数据时执行处理标签访问FB部件。因此,在不含标签数据的FB或者程序内不可使用标签访问FB(不可粘贴)。
在编程工具中,可以由用户自行定义FB型。通过对程序内频繁使用的处理预先进行定义,可以缩短FBD程序的创建时间。
用户定义FB型是通过编程工具对预先准备的函数部件及FB部件(标签访问FB除外)等进行组合创建。
用户定义FB型的创建步骤如下:
1)在工程窗口追加用户定义FB型的数据。
图11-31 部件窗口的模块FB项目
2)双击工程窗口中追加的用户定义FB型,如图11-32所示。
3)在显示的FB型的定义窗口上配置FBD部件,创建用户定义FB型的处理内容,如图11-33所示。
4)点击部件窗口的“工程名”标签(左侧画面的情况下为“Sample01”),点击“User-defined FB Type(用户定义FB型)”,如图11-34所示。
5)执行了以上操作后,将显示用户定义FB型的图标。通过将该图标拖放至FBD工作表上,使用用户定义的FB如图11-35所示。
图11-32 工程窗口中追加用户定义FB
8.与GX Developer的对应
为了使得PX Developer所定义的变量能够在GX Developer的梯形图程序中使用,需要在PX Developer编程工具中进行参数设置。通过点击执行包含在PX Developer编程工具工程窗口中的GX Developer图标,可以进行用户梯形图程序的编写以及各种参数的设置,具体说明如下:
(1)关于梯形图编程
1)梯形图编程中适用的处理(联锁处理等),可以在GX Developer的梯形图程序中编写(梯形图程序以下称为用户梯形图)。
2)如图11-36所示,通过设置编程工具的GX Developer标识分配,可以将FBD程序中使用的全局变量作为GX Developer的全局标识进行使用,不需要考虑用户梯形图中的软元件,即可使用FBD程序的变量进行编程。
关于GX Developer标识分配,请参考PX Developer操作手册(编程工具篇)。
图11-33 编写用户定义FB程序
图11-34 点击用户定义FB操作
图11-35 使用用户定义的FB
(2)关于各种参数设置
进行用户梯形图的编写以及网络连接的情况下,需要从PX Developer编程工具启动GX De-veloper,设置PC参数和网络参数。
图11-36 GX Developer标识分配
有关三菱电机中大型可编程序控制器应用指南的文章
结构化编程具有如下一些优点:1)各单个任务块的创建和测试可以相互独立地进行。图3-17 结构化编程示意图3)块可以根据需要在不同的地方以不同的参数数据记录进行调用。建议用户在编程时可以根据实际工程特点采用结构化编程方式,通过传递参数使程序块重复调用,使其结构清晰、调试方便。结构化编程中用于解决单个任务的块使用局部变量来实现对其自身数据的管理。模块化编程和结构化编程的详细内容将在6.5节介绍。......
2023-06-15
第3章提到了PLC有三种编程方法:线性化编程、模块化编程和结构化编程。结构化编程是将过程要求类似或相关的任务归类,在功能FC或功能块FB中编程,形成通用解决方案。其特点是结构化编程必须对系统功能进行合理分析、分解和综合,所以对设计人员的要求较高,另外,当使用结构化编程方法时,需要对数据进行管理。但是,使用结构化编程方法时,需要管理程序和数据的存储与使用。......
2023-06-15
在Abaqus/Explicit中,每个用户子程序都必须在形参列表的后面包含下面的语句,与Abaqus/Standard中类似,这也是用来声明隐式类型的变量和指定浮点数的单双精度的:注意:事实上,上面的两条语句并不是必需的,但包含这两条语句能避免很多不必要的错误,这是一种好的编程习惯。下面是测试用户子程序的一些编程技巧:尽可能地测试最小的模型。另外,下面的一些编程习惯对于编写漂亮的、可读性高的用户子程序也是非常重要的,在编写用户子程序时需要特别注意。......
2023-11-03
结构化编程有如下优点:1)程序只需生成一次,显著减少了编程时间。结构化编程就要涉及到FC和FB中使用局部存储区,使用的名字和大小必须在块的声明部分中确定,如图6-37所示。在FC5中编写程序,如图6-41a所示。......
2023-06-15
若在运行中料仓芯件不足,则工作单元继续工作,但HL2以1 Hz的频率闪烁,HL1保持长亮。③装配子过程是一个单序列的周而复始的步进过程。“装配完成标志”为OFF状态,是防止发生重复装配的措施,其原理与加工单元主控过程所采取的防止重复加工的措施相同,即在一次装配周期结束时,置位“装配完成标志”,只有将装配好的工件取出,该标志才能复位,再重新放下待装配工件,才有可能满足初始步转移条件。图3-37装配单元供料过程部分梯形图......
2023-06-15
1.起点的输入选择了创建新程序软功能键〖NEW〗后,LCD将自动显示轮廓选择页面,其中第一页为起点编程页面,在此页面,可用对话方式输入如下轮廓起点数据。......
2023-06-25
举世闻名的微软公司总裁比尔·盖茨在11岁时,所具备的数学知识就远远超过其同龄人。不断学习相对来说较为漫长,在此期间要注意养成一些良好的编程习惯。正确的学习方法学习编程,掌握正确的方法最重要。⑥反复上机练习,不断提高编程技巧。多问多学习掌握编程思想必须在编程实际工作中去实践和体会。......
2023-10-22
在工作过程中,若按下停止按钮,加工单元在完成本周期的动作后停止工作,HL2指示灯熄灭。图3-21用条件跳转指令实现急停梯形图图3-22主控指令实现急停梯形图加工单元程序的调试注意事项:设备在全线运行时,加工台的工件是由输送单元机械手放上去的,所以加工过程步进程序的启动,需在机械手缩回到位,发出下料完成信号以后,需要复位“加工完成”标志。......
2023-06-15
相关推荐