




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目5函数及函数块的编程及应用任务5.2三台电动顺序启动逆序停止控制1.生成与调用函数块任务5.2三台电动顺序启动逆序停止控制1.1函数块函数块(FB)是用户编写的有自己的存储区(背景数据块)的代码块,FB的典型应用是执行不能在一个扫描周期结束的操作。每次调用函数块时,都需要指定一个背景数据块。后者随函数块的调用而打开,在调用结束时自动关闭。函数块的输入、输出参数和静态局部数据(Static)用指定的背景数据块保存。函数块执行完后,背景数据块中的数值不会丢失。任务5.2三台电动顺序启动逆序停止控制1.2生成函数块打开项目“函数与函数块”的项目树中的文件夹“PLCI程序块”,双击其中的“添加新块”,单击打开的对话框中的“函数块”按钮,默认的编号为1,默认的语言为LAD(梯形图)。设置函数块的名称为“电动机控制”,单击“确定”按钮,生成FB1。去掉FB1“优化的块访问”属性。可以在项目树的文件夹“PLC_I程序块”中看到新生成的FB1(见图5.1-1)。图5.1-1项目树与FC1接口区的局部变量任务5.2三台电动顺序启动逆序停止控制1.3生成函数块的局部变量打开
FB1,用鼠标往下拉动程序编辑器的分隔条,分隔条上面是函数块的接口区,生成的局部变量见图5.2-1,FB1的背景数据块见图5.2-2。图5.2-1FB1的接口区图5.2-2FB1的背景数据块任务5.2三台电动顺序启动逆序停止控制1.3生成函数块的局部变量IEC定时器、计数器实际上是函数块,方框上面是它的背景数据块。在FB中,IEC定时器、计数器的背景数据块,如果是一个固定的数据块,在同时多次调用FB1时,该数据块将会被同时用于两处或多处,这犯了程序设计的大忌,程序运行时将会出错。为了解决这一问题在块接口中生成了数据类型为IEC_TIMER的静态变量“定时器DB”(见图5.2-1),用它提供定时器TOF的背景数据,其内部结构见图5.2-3。每次调用FB1时,在FB1不同的背景数据块中,不同的被控对象都有保存TOF的背景数据的存储区“定时器DB”。任务5.2三台电动顺序启动逆序停止控制1.4FB1的控制要求与程序FB1的控制要求如下:用输入参数“起动按”和“停止按”控制InOut参数“电动机”(见图5.2-3)。按下停止按钮,断开延时定时器(TOF)开始定时,输出参数“制动器”为1状态,经过输入参数“定时时间”设置的时间预设值后,停止制动。图5.2-3定时器的内部变量图5.2-4FB1的程序任务5.2三台电动顺序启动逆序停止控制1.4FB1的控制要求与程序在TOF定时期间,每个扫描周期执行完FB1之后,都需要保存“定时器”中的数据函数块执行完后,下一次重新调用它时,其Static(静态)变量的值保持不变。所以“定时器”必须是静态变量,不能在函数块的临时数据区(Temp区)生成数据型为IEC_TIMER的变量。函数块的背景数据块中的变量就是它对应的FB接口区中的Input、Output、InOut参数和Static变量(见图5.2-1和图5.2-2)。函数块上述的数据因为用背景数据块保存,在函数块执行完后也不会丢失,以供下次执行时使用。其他代码块也可以访问背景数据块中的变量。不能直接删除和修改背景数据块中的变量,只能在它对应的函数块的接口区中删除和修改这些变量生成函数块的输入、输出参数和静态变量时,它们被自动指定一个默认值(见图5.2-1),可以修改这些默认值。局部变量的默认值被传送给FB的背景数据块,作为同一个变量的启动值,可以在背景数据块中修改变量的启动值。调用FB时没有指定实参的形参使用背景数据块中的启动值。任务5.2三台电动顺序启动逆序停止控制1.5用于定时器计数器的多重数据块IEC定时器指令和IEC计数器指实际上是函数块,每次调用它们时,都需要指定一个背景数据块。如果这类指令很多,将会生成大量的数据块“碎片”。为了解决这个问题,在函数块中使用定时器、计数器指令时,可以在函数块的接口区定义数据类型为IEC_Timer(IEC定时器)或IECCounter(IEC计数器)的静态变量(见图5.2-1)),用这些静态变量来提供定时器和计数器的背景数据。这种程序结构被称为多重背景。将定时器TON方框拖放到FB1的程序区,出现“调用选项”对话框(见图4-10)。单击选中“多重背景”,用选择框选中列表中的“定时器DB”,用FB1的静态变量“定时器DB”提供TON的背景数据。任务5.2三台电动顺序启动逆序停止控制1.5用于定时器计数器的多重数据块这样处理后,多个定时器或计数器的背景数据被包含在它们所在的函数块的背景数据块(即多重背景数据块)中,而不需要为每个定时器或计数器设置一个单独的背景数据块。因此减少了处理数据的时间,能更合理地利用存储空间。此外,“顺便”解决了多次调用使用固定的背景数据块的定时器、计数器的函数块FB1带来的问题。图5.2-5“调用选项”对话框任务5.2三台电动顺序启动逆序停止控制1.6在OB1中调用FB1在PLC变量表中生成两次调用FB1使用的符号地址(见图5.2-6)。将项目树中的FBI拖放到程序区的水平“导线”上(见图5.2-7)。在出现的“调用选项”对话框中,输入背景数据块的名称。单击“确定”按钮,自动生成FBI的背景数据块。为各形参指定实参时,既可以使用变量表或全局数据块中定义的符号地址,也可以使用绝对地址,然后在变量表中修改自动生成的符号的名称。图5.2-6PLC变量表图5.2-7OB1调用FB1的程序任务5.2三台电动顺序启动逆序停止控制1.7调用函数块的仿真实验选中项目树中的PLC_1,单击工具栏上的“开始仿真”按钮,打开S7-PLCSIM。将程序下载到仿真PLC,使后者进入RUN模式。在S7-PLCSIM的项目视图打开项目树中的“SIM表1”,在表中生成IBO和QBO的SIM表条目(见图5.2-8)。图5.2-8S7-PLCSIM的SIM表1任务5.2三台电动顺序启动逆序停止控制1.7调用函数块的仿真实验两次单击
10.0(起动按钮1),Q0.0(1号设备)变为1状态。两次单击10.1(停止按1),00.变为0状态,00.1(制动1)变为1状态。经过参数“定时时间”设置的时间后Q0.1变为0状态。可以令两台设备几乎同时起动、同时停车和制动延时,图5.2-8是两台设备均处于制动状态的SIM表。图5.2-8S7-PLCSIM的SIM表1任务5.2三台电动顺序启动逆序停止控制1.8处理调用错误最初编写的FB1没有生成参数“定时时间”。在OB1中调用符号名为“电动机控制的FB1之后,在FB1的接口区增加了输入参数“定时时间”,OB1中被调用的FB1的字符变为红色(见图5.2-9中的左图)。用鼠标右键单击出错的FB1,执行快捷菜单中的“更新块用”命令,出现如图5.2-9所示的“接口同步”对话框,显示出原有的块接口和增加了输入参数后的块接口。单击“确定”按钮,“接口同步”对话框消失。OB1中调用的FB1被修改为新的接口(见图5.2-9中的右图),程序中FB1的红色字符变为黑色。需要用同样的方法处理图5.2-9右边的FB1的调用错误。图5.2-9“接口同步”对话框任务5.2三台电动顺序启动逆序停止控制1.9函数与函数块的区别FB和FC均为用户编写的子程序,接口区中均有Input、Output、InOut参数和Temp数据FC的返回值实际上属于输出参数。下面是FC和FB的区别:①函数没有背景数据块,函数块有背景数据块。②只能在函数内部访问它的局部变量。其他代码块或HMI(人机界面)可以访问函数块的背景数据块中的变量。③函数没有静态变量(Static),函数块有保存在背景数据块中的静态变量。函数如果有执行完后需要保存的数据,只能用全局数据区(例如全局数据块和M区)来保存,但是这样会影响函数的可移植性。如果块的内部使用了全局变量,在移植时需要重新统一分配所有的块内部使用的全局变量的地址,以保证不会出现地址冲突。当程序很复杂,代码块很多时,这种重新分配全局变量地址的工作量非常大,也很容易出错。任务5.2三台电动顺序启动逆序停止控制1.9函数与函数块的区别如果函数或函数块的内部不使用全局变量,只使用局部变量,不需要做任何修改,就可以将块移植到其他项目。如果代码块有执行完后需要保存的数据,显然应使用函数块,而不是函数。④函数块的局部变量(不包括Temp)有默认值初始值),函数的局部变量没有默认值在调用函数块时可以不设置某些有默认值的输入、输出参数的实参,这种情况下将使用这些参数在背景数据块中的启动值,或使用上一次执行后的参数值。这样可以简化调用函数块的操作。调用函数时应给所有的形参指定实参。⑨函数块的输出参数值不仅与来自外部的输入参数有关,还与用静态数据保存的内部状态有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电商绿色物流行业绿色物流服务创新与模式探索报告
- 2024年《陈情表》教案锦集8篇
- 2025年消费金融市场规模扩张与风险防控关键指标监测报告
- 细胞治疗产品临床试验审批流程中的临床数据管理报告
- 互联网养老服务平台项目技术创新与产业升级研究报告
- 数字化时代下2025年金融机构风险管理的风险控制技术创新与应用报告
- 2023造价工程师考试《土建工程》试题及答案
- Unit+6+Earth+first+Using+language+非谓语做补语+2025-2026学年高中英语外研版(2019)必修第二册
- 2025年江西省宜春市十校联考九年级学业水平模拟考试生物试题(含答案)
- 2025版智能化顶管施工与信息化管理合同
- 广州市白云区社区专职招聘笔试真题2024
- 房屋租赁法律培训课件
- 管理客户资源管理办法
- 三类人员b证考试题库
- 钱江三桥改建提升工程报告表
- 认知思维升级培训课件
- 产品型式试验管理制度
- 2025年春季第二学期团委工作总结-奋斗不辍忆往昔【课件】
- 2025年河北省专技人员继续教育公需课(新课程答案七)
- 外电场驱动下带电脂质体药物颗粒靶向输送的机制与应用研究
- ktv合作分红协议书
评论
0/150
提交评论