S71200PLC编程及应用第4版课件第4章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《S71200PLC编程及应用第4版课件第4章.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S71200PLC 编程 应用 课件
- 资源描述:
-
1、第4章 S7-1200的用户程序结构4.1 函数与函数块函数与函数块 4.1.1 生成与调用函数生成与调用函数 1函数的特点函数的特点 函数FC和函数块FB是用户编写的子程序,它们包含完成特定任务的程序,FC和FB有与调用它的块共享的输入、输出参数。设压力变送器量程的下限为0 MPa,上限为High MPa,经A/D转换后得到027648的整数。转换后的数字N和压力P之间的计算公式为P=(High N)/27648 (MPa)用函数FC1实现上述运算。2生成函数生成函数 双击指令树的“添加新块”,单击“添加新块”对话框中的“函数”按钮,FC默认的编号为1,默认的语言为LAD。设置函数的名称为“
2、计算压力”。单击“确定”按钮,生成FC1。3定义函数的局部数据定义函数的局部数据 往下拉动程序区最上面的分隔条,分隔条上面是函数的接口区,下面是程序区。4)文件夹Return中自动生成的返回值“计算压力”与函数的名称相同,属于输出参数。数据类型为Void,表示函数没有返回值。函数还有两种局部数据:1)临时数据Temp是暂时保存在局部数据堆栈中的数据。每次调用块之后,临时数据可能被同一优先级中后面调用的块的临时数据覆盖。在接口区中生成局部变量,后者只能在它所在的块中使用。右键单击项目树中的FC1,单击快捷菜单中的“属性”,选中打开的对话框左边的“属性”,用复选框取消默认的属性“块的优化访问”。成
3、功编译后接口区出现“偏移量”列,只有临时数据才有偏移量。函数各种类型的局部变量的作用如下:1)输入参数Input用于接收调用它的块提供的输入数据。2)输出参数Output用于将块的程序执行结果返回给调用它的块。3)输入_输出参数InOut的初值由调用它的块提供,块执行完后用同一个参数将它的值返回给调用它的块。PLC变量表 OB1调用FC1的程序 2)常量Constant是块中使用并且带有符号名的常量。4FC1的程序设计的程序设计 程序见下图,运算的中间结果用临时局部变量“中间变量”保存。STEP 7自动地在局部变量的前面添加#号。5在在OB1中调用中调用FC1 在变量表中生成调用FC1时需要的
4、3个变量,将项目树中的FC1拖放到右边的程序区的水平“导线”上。FC1的方框中左边的“输入数据”等是在FC1的接口区中定义的输入参数和输入/输出参数,右边的“压力值”是输出参数。它们被称为块的形式参数,简称为形参,形参在FC内部的程序中使用。方框外是调用时为形参指定的实际参数,简称为实参。实参与它对应的形参应具有相同的数据类型。STEP 7自动地在全局变量的符号地址两边添加双引号。6函数函数应用的实验应用的实验 将程序下载到仿真CPU,CPU切换到RUN模式。单击精简视图右上角的按钮,切换到项目视图。生成一个新的项目,双击打开“SIM表格_1”。生成下图中的条目。令I0.6为1状态,调用FC1
5、,令IW64为13824(27648的一半),执行FC1中的程序后,输出参数“压力值”的值5.0 MPa被传送给它的实参“压力计算值”MD18。4.1.2 生成与调用函数块生成与调用函数块 1函数块函数块 函数块(FB)是用户编写的有自己的存储区(背景数据块)的代码块,FB的典型应用是执行不能在一个扫描周期结束的操作。每次调用函数块时,都需要指定一个背景数据块。2生成函数块生成函数块 在项目“函数与函数块”中添加名为“电动机控制”的FB1。取消FB1默认的属性“块的优化访问”。3生成函数块的局部变量生成函数块的局部变量 函数块的输入、输出参数和静态数据用指定的背景数据块保存。在接口区生成块的局
6、部变量。FB中的定时器如果使用一个固定的背景数据块,在同时多次调用该FB时,该数据块将会被同时用于两处或多处。为此在块接口中生成数据类型为IEC_TIMER的静态变量“定时器DB”,用它提供定时器TOF的背景数据。4FB1的控制要求与程序的控制要求与程序 用输入参数“起动按钮”和“停止按钮”控制InOut参数“电动机”。按下停止按钮,断开延时定时器(TOF)开始定时,输出参数“制动器”为1状态,经过输入参数“定时时间”设置的时间预置值后,停止制动。在TOF定时期间,每个扫描周期执行完FB1之后,用静态变量“定时器DB”来保存TOF的背景数据。可以修改函数块的输入、输出参数和静态变量的默认值。该
7、默认值作为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状态。经过参数“定时时间”设置的时间
8、后Q0.1变为0状态。可以令两台设备几乎同时起动、同时停车和制动延时。图4-11 OB1调用FB1的程序 7处理调用错误处理调用错误 调用符号名为“电动机控制”的FB1之后,在FB1的接口区增加了输入参数“定时时间”,被调用的FB1的字符变为红色。右键单击出错的FB1,执行快捷菜单中的“更新块调用”命令,出现“接口同步”对话框,显示出原有的块接口和增加了输入参数后的块接口。单击“确定”按钮,“接口同步”对话框消失。被调用的FB1被修改为新的接口,程序中FB1的红色字符变为黑色。8函数与函数块的区别函数与函数块的区别 FB和FC均为用户编写的子程序,接口区中均有Input、Output、InOu
9、t参数和Temp数据。FC的返回值实际上属于输出参数。下面是FC和FB的区别:1)函数块有背景数据块,函数没有。2)只能在函数内部访问它的局部变量。其他代码块或HMI可以访问函数块的背景数据块中的变量。3)函数没有静态变量,函数块有保存在背景数据块中的静态变量。如果函数或函数块的内部不使用全局变量,只使用局部变量,不需要做任何修改,就可以将块移植到其他项目。如果代码块有执行完后需要保存的数据,应使用函数块。4)在调用函数块时可以不设置某些输入、输出参数的实参,而是使用它们的默认值。函数的局部变量没有默认值,调用时应给所有的形参指定实参。5)函数块的输出值与输入参数和用静态数据保存的内部状态数据
10、有关。9组织块与组织块与FB和和FC的区别的区别 出现事件或故障时,由操作系统调用对应的组织块,FB和FC是用户程序在代码块中调用的。组织块没有输出参数、InOut参数和静态数据,它的输入参数是操作系统提供的启动信息。用户可以在组织块的接口区生成临时变量和常量。组织块中的程序是用户编写的。4.1.3 多重背景多重背景 1用于定时器计数器的多重背景用于定时器计数器的多重背景 每次调用IEC定时器和IEC计数器指令时,都需要指定一个背景数据块。多重背景用于解决前述的FB中定时器、计数器固定的背景数据块带来的问题。在项目“多重背景”中生成名为“电磁阀控制”的FB2,去掉它的“优化的块访问”属性。在接
11、口区定义数据类型为IEC_Timer的静态变量TON_DB、TP_DB和TOF_DB,用它们来提供定时器的背景数据。这种程序结构被称为多重背景。将定时器TON拖放到FB1程序区,出现“调用选项”对话框。单击选中“多重实例DB”,用选择框选中列表中的“TON_DB”,用FB2的静态变量TON_DB提供TON的背景数据。用同样的方法在FB2中调用定时器TP和TOF,用FB2的静态变量“TP_DB”和“TOF_DB”提供TP和TOF的背景数据。这样处理后,3个定时器的背景数据被包含在它们所在的函数块FB2的背景数据块中,不需要为每个定时器设置一个单独的背景数据块。在PLC变量表中定义调用FB2需要的
12、变量,在OB1中两次调用FB2,将用户程序下载到CPU,CPU切换到RUN模式。用外接的小开关模拟有人使用卫生间的“使用者”信号。观察FB2的输出参数“电磁阀1”和“电磁阀2”的状态是否按程序的要求变化,各段定时时间与FB2中设置的是否相同。图4-16 PLC默认变量表 图4-17 OB1调用FB2的程序 2用于用户生成的函数块的多重背景用于用户生成的函数块的多重背景 在项目“多重背景”中生成与4.1.2节相同的名为“电动机控制”的函数块FB1,去掉FB1“优化的块访问”属性。生成一个名为“多台电机控制”的函数块FB3,去掉FB3“优化的块访问”属性。在它的接口区生成两个数据类型为“电动机控制
13、”的静态变量“1号电动机”和“2号电动机”。每个静态变量内部的参数是自动生成的,与FB1“电动机控制”的相同。在FB3中调用FB1,在“调用选项”对话框中选中“多重实例DB”,选中列表中的“1号电动机”,用FB3的静态变量“1号电动机”提供FB1“电动机控制”的背景数据。用同样的方法调用FB1来控制2号电动机。在OB1中调用FB3“多台电机控制”,FB3的背景数据块只有静态变量“1号电动机”和“2号电动机”。将用户程序下载到仿真PLC,CPU切换到RUN模式。生成一个新的项目,在SIM表1中生成地址IB0和QB0,用I0.0和I0.2分别启动1号、2号电动机,用I0.1同和I0.3分别停止1号
14、、2号电动机,观察电动机和制动器的状态变化是否正常。这个例子中实际上有3重背景数据。FB3的背景数据块DB3包含了两次调用FB1的背景数据,FB1的背景数据又包含了定时器TOF的背景数据。在OB1中调用FB3图4-19 在FB3中两次调用FB14.2 数据类型转换与间接寻址数据类型转换与间接寻址4.2.1 数据类型转换数据类型转换 1数据类型的分类数据类型的分类 数据类型分为基本数据类型、复杂数据类型、参数类型、系统数据类型和硬件数据类型。2参数类型参数类型 参数类型是传递给被调用块的形参的数据类型。参数类型Void不保存数值,它用于函数不需要返回值的情况。3系统数据类型系统数据类型 系统数据
15、类型(SDT)由系统提供,可供用户使用,具有不能更改的预定义的结构。例如定时器结构IEC_TIMER、6种整数数据类型的计数器结构等。4硬件数据类型硬件数据类型 硬件数据类型与硬件组态时模块的设置有关。它用于识别硬件元件、事件和中断OB等与硬件有关的对象。PLC变量表的“系统常量”选项卡列出了项目中的硬件数据类型常量的值,即硬件组件和中断事件的标识符。5数据类型的转换数据类型的转换 调用指令或块时,如果操作数具有不协调的数据类型,应对它们进行转换。(1)隐式转换 如果操作数的数据类型兼容,将自动执行隐式转换。兼容性测试使用两种标准:1)默认的是IEC检查,采用严格的兼容性规则,允许转换的数据类
16、型较少。2)不进行IEC检查,兼容性测试采用不太严格的标准,允许转换的数据类型较多。(2)显式转换 操作数不兼容时,只能使用显式转换指令。可使用指令列表的“数学函数”“转换操作”和“字符串+字符”文件夹中的指令进行转换。6设置设置IEC检查功能检查功能 (1)设置对项目中所有的新块进行IEC检查 执行“选项”菜单中的“设置”命令,选中出现的“设置”编辑器左边窗口的“PLC编程”中的“常规”组,用复选框选中右边窗口“新块的默认设置”区中的“代码块的IEC检查”。(2)设置单独的块进行IEC检查 如果没有设置对项目中所有的新块进行IEC检查,右键单击项目树中的某个代码块,执行快捷菜单中的“属性”命
17、令,选中打开的对话框左边窗口的“属性”组,用右边窗口中的复选框激活或取消IEC检查功能。4.2.2 间接寻址间接寻址 1间接寻址间接寻址 使用间接寻址,可以在程序运行期时通过改变指针的值,动态地修改指令中操作数的地址。例如可以用循环程序来累加一片连续的地址区中的数值。累加后修改地址指针值,使指针指向下一个地址。地址指针就像收音机调台的指针。2使用使用FieldRead与与FieldWrite指令的间接寻址指令的间接寻址 打开项目“间接寻址”,在DB1中生成“数组1”Array1.5 of Int。设置指令FieldRead(读取域)和FieldWrite(写入域)指令要写入或读取的数据类型为I
展开阅读全文