- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 S7-1200的用户程序结构; 在接口区中生成局部变量,后者只能在它所在的块中使用。
右键单击项目树中的FC1,单击快捷菜单中的“属性”,选中打开的对话框左边的“属性”,用复选框取消默认的属性“块的优化访问”。成功编译后接口区出现“偏移量”列,只有临时数据才有偏移量。
函数各种类型的局部变量的作用如下:
1)输入参数Input用于接收调用它的主调块提供的输入数据。
2)输出参数Output用于将块的程序执行结果返回给主调块。
3)输入_输出参数InOut的初值由主??块提供,块执行完后用同一个参数将它的值返回给主调块。; 6)常量Constant是块中使用并且带有符号名的常量。
4.FC1的程序设计
程序见下图,运算的中间结果用临时局部变量“中间变量”保存。STEP 7自动地在局部变量的前面添加#号。
5.在OB1中调用FC1
在变量表中生成调用FC1时需要的3个变量,将项目树中的FC1拖放到右边的程序区的水平“导线”上。FC1的方框中左边的“输入数据”等是在FC1的接口区中定义的输入参数和输入/输出参数,右边的“压力值”是输出参数。它们被称为块的形式参数,简称为形参,形参在FC内部的程序中使用。方框外是调用时为形参指定的实际参数,简称为实参。实参与它对应的形参应具有相同的数据类型。STEP 7自动地在全局变量的符号地址两边添加双引号。; 6.函数应用的仿真实验
将程序下载到仿真CPU后,CPU切换到RUN模式。单击精简视图右下角的 按钮,切换到项目视图。双击打开项目树中的“SIM表1”。
令I0.6为1状态,调用FC1,令IW64为13824(27648的一半),执行FC1中的程序后,输出参数“压力值”的值5.0 MPa被传送给它的实参“压力计算值”MD18。; 3.生成函数块的局部变量
函数块的输入、输出参数和静态数据用指定的背景数据块保存。在FB中,定时器如果使用一个固定的背景数据块,在同时多次调用该FB时,该数据块将会被同时用于两处或多处。为此在块接口中生成数据类型为IEC_TIMER的静态变量“定时器DB”,用它提供定时器TOF的背景数据。; 4.FB1的控制要求与程序
用输入参数“起动按钮”和“停止按钮”控制InOut参数“电动机”。按下停止按钮,断开延时定时器(TOF)开始定时,输出参数“制动器”为1状态,经过输入参数“定时时间”设置的时间预置值后,停止制动。
在TOF定时期间,每个扫描周期执行完FB1之后,用静态变量“定时器DB”
来保存TOF的背景数据。可以修改函数块的输入、输出参数和静态变量的默认值。该默认值作为FB的背景数据块同一个变量的启动值。调用FB时没有指定实参的形参使用背景数据块中的启动值。; 5.在OB1中调用FB1
在PLC变量表中生成两次调用FB1使用的符号地址。在OB1中两次调用FB1,自动生成背景数据块。为各形参指定实参。
6.调用函数块的仿真实验
将程序下载到仿真PLC,后者进入RUN模式。在S7-PLCSIM的项目视图打开项目树中的“SIM表1”,在表中生成IB0和QB0的SIM表条目。
两次单击起动按钮 I0.0,1号设备Q0.0变为1状态。两次单击停止按钮I0.1,Q0.0变为0状态,制动 Q0.1变为1状态。经过参数“定时时间”设置的时间后Q0.1变为0状态。可以令两台设备几乎同时起动、同时停车和制动延时。; 7.处理调用错误
调用符号名为“电动机控制”的FB1之后,在FB1的接口区增加了输入参数“定时时间”,被调用的FB1的字符变为红色。右键单击出错的FB1,执行快捷菜单中的“更新块调用”命令,出现“接口同步”对话框,显示出原有的块接口和增加了输入参数后的块接口。单击“确定”按钮,“接口同步”对话框消失。被调用的FB1被修改为新的接口,程序中FB1的红色字符变为黑色。; 8.函数与函数块的区别
FB和FC均为用户编写的子程序,接口区中均有Input、Output、InOut参数和Temp数据。FC的返回值实际上属于输出参数。下面是FC和FB的区别:
1)函数块有背景数据块,函数没有。
2)只能在函数内部访问它的局部变量。其他代码块或HMI可以访问函数块的背景数据块中的变量。
3)函数没有静态变量,函数块有保存在背景数据块中的静态变量。如果函数或函数块的内部不使用全局变量,只使用局部变量,不需要做任何修改,就可以将块移植到其他项目。如果代码块有执行完后需要保存的数据,应使用函数块。
4)在调用函数块时可以不设置某些输入、输出参数的实
文档评论(0)