SIMATIC-PCS7-标准培训-10-自定义功能块.ppt

上传人:za****8 文档编号:6314745 上传时间:2020-02-22 格式:PPT 页数:46 大小:979.52KB
返回 下载 相关 举报
SIMATIC-PCS7-标准培训-10-自定义功能块.ppt_第1页
第1页 / 共46页
SIMATIC-PCS7-标准培训-10-自定义功能块.ppt_第2页
第2页 / 共46页
SIMATIC-PCS7-标准培训-10-自定义功能块.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
2020 2 22 SIMATICPCS7标准培训 自定义功能块 SciampleTraining SIMATICPCS7 2 2020 2 22 内容 FB和FC块的结构LAD编程语言设计自定义功能块FC设计实例FB设计实例SCL编程简介 SciampleTraining SIMATICPCS7 3 2020 2 22 FB和FC块的结构 引脚变量声明程序体块属性FB的背景数据块 2020 2 22 SciampleTraining SIMATICPCS7 4 块的引脚 FB和FC块是实现一定功能的程序块 例如 量程转换 PID控制器 信号滤波等 FB和FC将程序分解成相对独立的部分 在FB和FC内部避免使用直接地址 而是通过块的引脚与调用程序实现数据交换 可以防止读取到无效数据 设计良好的块可以被多次调用 只需改变引脚连接 可节约编程工作量 2020 2 22 SciampleTraining SIMATICPCS7 5 块的三种引脚 输入端 IN 变量输入 只读 输出端 OUT 结果输出 避免读取输出端 输入输出端 IN OUT 用于需要回写的变量 例如需要自复位的按钮 2020 2 22 SciampleTraining SIMATICPCS7 6 变量声明 FB和FC块中所有用到的变量必须先声明 变量声明中包括对引脚的声明 FB和FC块中的变量声明类型 IN OUT IN OUT块的引脚 TEMP临时变量 用于程序的中间数据存储 STAT静态变量 在FB中用于保存重要数据 FC没有静态变量 块中的变量可以采用所有PCS7支持的基本和复合数据类型 但是块的引脚在连接时必须满足两端数据类型一致 2020 2 22 SciampleTraining SIMATICPCS7 7 块属性 FB和FC块包含以下属性 NAME 块名称VERSION 版本号FAMILY 块分类AUTHOR 作者S7 TASKLIST 调用块的执行顺序S7 m c 块是否需要与WinCC变量连接可以在编写自定义功能块时设置属性 2020 2 22 SciampleTraining SIMATICPCS7 8 FB的背景数据块 FC和FB的区别 FC块没有背景数据块 背景数据块与变量声明中确定的数据结构一致 背景数据块中不包含临时变量 用于保存每个周期的变量数值 可以在其他程序中访问背景数据块中的数据 FC块的引脚不能空置 不能赋初值 FB块的引脚可以不连 保持其默认的初始值 FC常用于一些简单的逻辑运算和不需数据存储的功能 也用于调用其他FB和FC块实现程序的结构化 FB更适合于编写复杂的运算功能 2020 2 22 SciampleTraining SIMATICPCS7 9 程序体 FB和FC块的程序可以采用多种编程语言编写 LAD FBD 适于编写较简单的功能 程序直观易懂 STL 适于编写贴近内核的程序 功能强大 但程序晦涩难懂 SCL 适于编写复杂的运算功能 功能强大 接近高级语言 程序易懂 SciampleTraining SIMATICPCS7 10 2020 2 22 LAD编程语言 位逻辑指令比较指令MOVE与数据转换指令整数运算指令浮点数运算指令字逻辑运算指令计数器指令定时器指令 2020 2 22 SciampleTraining SIMATICPCS7 11 常开触点常闭触点取反输出线圈置位线圈复位线圈检测下降沿检测上升沿 复位 置位触发器置位 复位触发器检测变量上升沿检测变量下降沿 位逻辑指令 2020 2 22 SciampleTraining SIMATICPCS7 12 三种数据类型CMP I整数比较CMP D长整数比较CMP R实数比较六种比较条件 IN1等于IN2IN1不等于IN2 IN1大于IN2 IN1大于等于IN2 IN1小于等于IN2 比较指令 2020 2 22 SciampleTraining SIMATICPCS7 13 MOVE指令 可实现简单的数据转换功能IN I Q M D 常数OUT I Q M D 2020 2 22 SciampleTraining SIMATICPCS7 14 BCD IBCD码转换为整型I BCD整型数转换为BCD码BCD DIBCD码转换为长整型DI BCD长整型数转换为BCD码I DINT整形数转换为长整型DI REAL长整型数转换为实型数INV I整型数的二进制反码 按位取反 INV DI长整型数的二进制反码 按位取反 NEG I整型数的2的补码 加负号 NEG DI长整型数的2的补码 加负号 NEG R实型数的相反数 加负号 数据转换指令 2020 2 22 SciampleTraining SIMATICPCS7 15 ADD I整型数加法SUB I整型数减法MUL I整型数乘法DIV I整型数除法ADD DI长整型数加法SUB DI长整型数减法MUL DI长整型数乘法DIV DI长整型数除法MOD DI长整型数取模运算 求余数 整数运算指令 2020 2 22 SciampleTraining SIMATICPCS7 16 ADD R实型数加法SUB R实型数减法MUL R实型数乘法DIV R实型数除法 浮点数运算指令 2020 2 22 SciampleTraining SIMATICPCS7 17 WAND W字 与 WOR W字 或 WXOR W字 异或 WAND DW双字 与 WOR DW双字 或 WXOR DW双字 异或 字逻辑运算指令 2020 2 22 SciampleTraining SIMATICPCS7 18 S CUD向上 向下计数器S CD向下计数器S CU向上计数器 计数器指令 2020 2 22 SciampleTraining SIMATICPCS7 19 S PULSE SP 脉冲定时器S PEXT SE 扩展脉冲定时器S ODT SD 延时接通定时器S ODTS SS 带保持延时接通定时器S OFFDT SF 延时断开定时器 定时器指令 2020 2 22 SciampleTraining SIMATICPCS7 20 S PULSE脉冲定时器 2020 2 22 SciampleTraining SIMATICPCS7 21 S PEXT扩展脉冲定时器 2020 2 22 SciampleTraining SIMATICPCS7 22 S ODT延时开启定时器 2020 2 22 SciampleTraining SIMATICPCS7 23 S ODTS带保持延时开启定时器 2020 2 22 SciampleTraining SIMATICPCS7 24 S OFF延时断开计时器 SciampleTraining SIMATICPCS7 25 2020 2 22 设计自定义功能块 分解程序功能选择FC和FB块设计引脚和变量结构 2020 2 22 SciampleTraining SIMATICPCS7 26 分解程序功能 可以按照以下原则对程序进行功能分解 按照实现的功能划分 如电机起停逻辑 阀门控制器等 按照控制的设备划分 如除氧器 加压泵等 按照控制回路划分 如汽包水位控制器 主管压力控制器等 按照算法单元划分 如量程转换 浮点运算等 2020 2 22 SciampleTraining SIMATICPCS7 27 选择FC和FB块 选择合理的程序块划分原则 尽量将实现功能所需的数据包含到功能块中 需要大量中间数据的功能块应选择FB 如 计算浮点数多项式 需要读取多个扫描周期数据的功能块采用FB 例如 PID控制器 不需数据存储或只需临时数据存储的功能块可采用FC实现 例如 量程转换等 2020 2 22 SciampleTraining SIMATICPCS7 28 设计引脚和变量结构 将需要在调用时变化的数据设计成块的引脚 合理利用IN IN OUT OUT三种引脚类型 优先使用IN和OUT类型 避免不必要的麻烦 需要在多个周期中使用的变量应为静态变量 只在单个周期使用或仅仅一个语句使用的变量应为临时变量 对FB块中变量赋初值时应考虑安全 临时变量不能赋初值 SciampleTraining SIMATICPCS7 29 2020 2 22 FC设计实例 量程转换功能引脚变量声明LAD实现量程转换在OB1中调用 2020 2 22 SciampleTraining SIMATICPCS7 30 量程转换功能 从模拟量输入通道读到的是一个没有工程单位的数值 与输入信号的对应关系是 0Kp 4mA 012Kp 20mA 27648在程序中必须先对其做量程转换 之后才能得到实际的测量信号 量程转换是一个最常用的功能 但必须经过多步运算才能实现 因而有必要将其编写成功能块 2020 2 22 SciampleTraining SIMATICPCS7 31 引脚 将一个0到27648的数值转换成从低量程 0Kp 到高量程 12Kp 之间的数值 为了确保可以在程序中多次调用 需要将一些变量引出成为引脚 要转换的数值应该是一个输入引脚 高低量程根据不同的信号可能不同 应该设计成输入引脚 量程转换的结果应该作为输出引脚 2020 2 22 SciampleTraining SIMATICPCS7 32 变量声明 其他数据只是在运算过程中使用 可以定义成临时变量 引脚的数据类型 输入 SV WORD HLM REAL LLM REAL 输出 PV REAL在量程转换功能中没有需要多个周期使用的数据 可以用FC实现 将自定义量程转换功能定义成FC1 2020 2 22 SciampleTraining SIMATICPCS7 33 LAD实现量程转换FC1 2020 2 22 SciampleTraining SIMATICPCS7 34 在OB1中调用FC1 FC1的引脚不能空置连接变量的数据类型与声明的类型一致 SciampleTraining SIMATICPCS7 35 2020 2 22 FB设计实例 信号滤波功能引脚变量声明LAD实现信号滤波FB1在CFC中调用FB1 2020 2 22 SciampleTraining SIMATICPCS7 36 信号滤波功能 为了消除模拟量信号的高频噪声 在信号读入之后需要先经过滤波器 根据要求不同可以选用多次滤波 如四次滤波 在滤波器中 将连续对同一个信号采样 并将连续四次采样的平均值作为当前时刻的实际值输出 滤波器可以用于各种模拟量信号 用功能块实现可以节约编程量 2020 2 22 SciampleTraining SIMATICPCS7 37 引脚 滤波器应该是一个单输入单输出的系统 输入端是一个任意的模拟量信号 输出是经过滤波之后的模拟量信号 2020 2 22 SciampleTraining SIMATICPCS7 38 变量声明 由于滤波算法中需要保存连续四次的采样值 并作平均运算 因而需要使用FB来实现 可以将连续四次采样值保存在一个实型数组中 并且必须将其声明成静态类型 STAT 在FB中输入输出和静态变量可以设置初值 输入 SV REAL 初值为0 0 输出 PV REAL 初值为0 0 静态 BUF ARRAY 1 4 OFREAL 0 0 其他变量可以声明成临时变量 2020 2 22 SciampleTraining SIMATICPCS7 39 LAD实现信号滤波FB1 2020 2 22 SciampleTraining SIMATICPCS7 40 在CFC中调用FB1 在CFC中连接块的引脚 不必关心生成的背景数据块 编译时自动生成 SciampleTraining SIMATICPCS7 41 2020 2 22 SCL编程简介 SCL编程环境SCL程序结构SCL编程实例 2020 2 22 SciampleTraining SIMATICPCS7 42 SCL编程环境 2020 2 22 SciampleTraining SIMATICPCS7 43 SCL程序结构 主框架声明生成块的名称和FC块返回值的类型分隔程序的各个部分属性声明定制生成块的属性变量声明所有程序中使用的变量必须声明程序体执行算法程序 2020 2 22 SciampleTraining SIMATICPCS7 44 SCL编程实例 2020 2 22 SciampleTraining SIMATICPCS7 45 总结与练习
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!