已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工业控制组态软件及应用 主讲刘琼janetliuqiong 武科大信息学院 第6章脚本系统 所有的过程可视化系统基本上都或多或少地提供一些脚本语言 WinCC提供了两种脚本 ANSI C和VBScript 脚本用来组态一些对象的动作 触发函数 在运行系统中 后台任务 例如打印日常报表 监控变量或完成指定画面的计算等 均将作为动作来完成 这些动作均由触发器来启动 6 1ANSI C脚本 WinCC可以通过使用函数和动作使WinCC项目中的过程动态化 这些函数和动作均以ANSI C语言编写 在使用ANSI C脚本之前 先介绍几个概念 1 函数和动作的差异 动作由触发器启动 也就是由初始事件启动 函数没有触发器 作为动作的组件来使用 并在动态对话框 变量记录和报警记录中使用 C Script中动作和函数的工作原理图 6 1ANSI C脚本 2 触发器类型 触发器类型图 6 1ANSI C脚本 3 函数和动作概述 动作用于独立于画面的后台任务 例如打印日常报表 监控变量或执行计算等 函数是一段代码 可在多处使用 但只能在一个地方定义 函数和动作的范围图 6 1ANSI C脚本 3 函数和动作概述 WinCC包括许多函数 此外 用户还可以编写自己的函数和动作 用户可以修改标准函数 重新安装或升级WinCC时 修改过的标准函数将被删除或被标准函数替换 因此 应事先保存修改过的函数 6 1ANSI C脚本 C Script全局脚本编辑器 全局脚本编辑器 浏览窗口 编辑窗口 状态栏 菜单栏 工具栏 输出窗口 6 1ANSI C脚本 1 浏览窗口 下面介绍C Script全局脚本编辑器窗口的结构组成 浏览窗口用于选择将要编辑或插入到编辑窗口中光标位置处的函数和动作 函数和动作均按组的多层体系进行组织 函数以函数名显示 动作则显示文件名 2 编辑窗口 函数和动作均在编辑窗口中进行写入和编辑 只有在所要编辑的函数或动作已经打开时 它才是可见的 每个函数或动作都将在自己的编辑窗口中打开 可同时打开多个编辑窗口 6 1ANSI C脚本 3 输出窗口 在文件中查找 或 编译所有函数 的结果将显示在输出窗口中 通常 它是可见的 但也可将其隐藏 在文件中查找 搜索的结果将按每找到一个搜索术语显示一行的方式 显示在输出窗口中 每行均有一个行编号 表示路径和文件名以及找到搜索术语的行的行号和文本 通过双击已显示在输出窗口中的行 可直接打开相关的文件 光标将放置在找到搜索术语的行中 编译所有函数 编译器所返回的警告和出错消息 将在编译每个函数时输出 下面的行将显示所编译函数的路径 文件名以及编译器的总结消息 6 1ANSI C脚本 4 菜单栏 菜单栏的内容则根据情况而定 它始终可见 5 工具栏 全局脚本具有两个工具栏 需要时可使其可见 并可拖动到屏幕的任何地方 6 状态栏 状态栏位于全局脚本窗口的下边缘 可以显示或隐藏 它显示了与编辑窗口中光标位置以及键盘设置等有关的信息 此外 状态栏既可显示当前所选全局脚本函数的快速参考 也可显示其提示信息 6 1ANSI C脚本 如果在多个动作中必须执行同样的计算 只是具有不同的起始值 那么最好编写函数来执行该计算 在动作中可以用当前参数方便调用该函数 动作与函数使用结构图 创建编辑函数 动作A 程序代码 动作B 程序代码 动作C 程序代码 我的函数 程序代码 动作A 我的函数 动作B 我的函数 动作C 我的函数 6 1ANSI C脚本 例1本实例中将创建一个简单的项目函数pingjunzhi 用来计算3个数的平均值 参数以数值 dzhi1 dzhi2 dzhi3 的形式传送给函数 结果也以数值 dpingjunzhi 的形式返回 创建编辑函数 6 1ANSI C脚本 第一步 打开全局脚本C 编辑器 第二步 右击项目函数 在快捷菜单中选择 新建 项 第三步 编写函数代码 创建编辑函数 6 1ANSI C脚本 第四步 插入与函数有关的附加信息 按下 编辑 工具栏中的按钮 打开 属性 对话框选择所需要的条目 单击 确定 按钮 确认条目 创建编辑函数 6 1ANSI C脚本 第五步 保护函数 单击 编辑 工具栏中的按钮 打开 属性 对话框选中 口令 复选框 单击现已激活的按钮 更改 在 口令 行中 输入所期望的口令在 确认 行中 再次输入口令单击 确定 按钮 进行确认单击 确定 按钮 关闭对话框 创建编辑函数 6 1ANSI C脚本 第六步 编译保存函数 单击 编辑 工具栏中的按钮检查在编辑窗口下面部分的来自编译器的消息如果编译器报告出错 则必须更正函数代码 一旦完成 再进行编辑查错 如果编译器发出警告 则可以修改函数的代码 如果已经更正函数的代码 再从编译查错开始 否则继续单击 标准 工具栏中的按钮 创建编辑函数 6 1ANSI C脚本 第六步 编译保存函数 创建编辑函数 6 1ANSI C脚本 动作和函数之间的区别如下 与函数相比 动作可以具有触发器 也就是说 函数在运行时不能由自己来执行动作可以导出和导入可为动作分配许可 该许可指的是全局脚本运行系统故障检测窗口的可操作的选项动作没有参数 创建编辑动作 6 1ANSI C脚本 下面举两个例子 一个例子是图形编辑器中的对象调用C动作 另一个例子是全局动作 例2在这个例子中 用图形编辑器中的按钮触发一个C动作 在这个动作中 调用例1的项目函数来计算3个数据的平均值 创建编辑动作 6 1ANSI C脚本 创建编辑动作 第一步 打开图形编辑器 打开目标画面 打开目标 按钮 对象属性 对话框 第二步 右击按钮 属性 或 事件 从快捷菜单中选择 C动作 打开动作编辑器 6 1ANSI C脚本 第三步 动作编辑器打开 在动作编辑器中显示了函数的基本框架 此外 C动作的标题已经自动生成 该标题不能更改 在C动作标题的第一行内 包含文件apdefap h 通过该文件 向C动作通知所有项目函数 标准函数以及内部函数 创建编辑动作 6 1ANSI C脚本 第三步 动作编辑器打开 C动作标题的第二部分为函数标题 该函数标题提供有关C动作的返回值和可以在C动作中使用的传送参数的信息 C动作标题的第三部分是花括号 此花括号不能删除 在花括号之间 编写C动作的实际代码 创建编辑动作 6 1ANSI C脚本 第三步 动作编辑器打开 其他自动生成的代码部分包括两个注释块 若要使交叉索引编辑器可以访问C动作内部信息 则需要这些块 要允许C动作中语句重新排列也需要这两个块 如果这些选项都不用 则可以删除这些注释 创建编辑动作 6 1ANSI C脚本 第三步 动作编辑器打开 第二个注释块用于定义C动作中使用的WinCC画面 在程序代码中也必须使用定义的画面名称 而不是实际的画面名称 创建编辑动作 第一个注释块用于定义C动作中所使用的WinCC变量 在程序代码中 也必须使用所定义的变量名称 而不是实际的变量名称 6 1ANSI C脚本 第四步 编译完成的函数 编译过程的结果显示在动作编辑器的左下角 包括找到的错误个数和警告个数 创建编辑动作 6 1ANSI C脚本 创建编辑动作 第五步 为对象的属性创建的C动作 必须定义触发器 对于事件的C动作 由于时间本身就是触发器 所以不必再定义 第六步 测试输出 在上面的例子中 通过printf 函数来测试在开发期间进行故障检测和错误诊断 通过该函数 不但可以输出简单文本 而且可以输出当前变量值 为使输出文本可见 必须组态全局脚本诊断窗口 6 1ANSI C脚本 第七步 在图形编辑器中组态全局脚本诊断窗口 打开目标WinCC画面 组态智能对象 应用窗口 创建编辑动作 将应用窗口置于画面内之后 将打开窗口内容对话框 从列表框中选择全局脚本条目 单击 确定 按钮 退出对话框 将打开模板对话框 从列表框中选择GSC诊断条目 同样 单击 确定 按钮 退出对话框 6 1ANSI C脚本 第七步 在图形编辑器中组态全局脚本诊断窗口 创建编辑动作 为便于利用全局脚本诊断窗口 建议将 对象属性 对话框中的 属性 选项卡内的其他条目下的所有静态属性设置为 是 6 1ANSI C脚本 第八步 如果项目在运行 则由printf 函数指定的文本输出将显示在诊断窗口中 创建编辑动作 如果用工具栏上相应的按钮停止更新 则可以保存或打印输出窗口中的内容 6 1ANSI C脚本 在下面的例子中创建一个全局动作 用来完成每隔1s水箱水位自动加1到达100米自动减1到0 周而复始 创建全局动作 第一步 在WinCC管理器中 启动全局脚本C编辑器 第二步 通过 文件 新建动作 菜单项来创建新动作 第三步 通过 文件 另存为 tanklevelauto pas来保存文件 6 1ANSI C脚本 创建全局动作 第四步 编写和编译该动作 其中用到两个内部函数GetTagWord和SetTagWord来获得和设置WinCC变量的值 6 1ANSI C脚本 创建全局动作 第五步 设置触发器 单击工具栏上的 触发器 按钮来完成这项工作 在对话窗口中 选择触发器 添加 触发器 标准周期 1秒 6 1ANSI C脚本 创建全局动作 第六步 在图形编辑器中 组态I O域来显示水箱水位值 第七步 打开 计算机属性 对话框 在 启动 选项卡中 选中启动 全局脚本运行系统 第八步 激活运行系统 6 1ANSI C脚本 WinCC允许用户使用自己的动态链接库 DLL 通过补充各自的函数或动作 可以在函和动作中使用已有DLL中的函数 在函数或动作的起始处插入下列代码 在函数或动作中使用动态链接库 pragmacode dll pragmacode 来自的函数 均已进行了声明 并可由各自函数和动作进行调用 6 1ANSI C脚本 例3 在函数或动作中使用动态链接库 pragmacode kernel32 dll VOIDGetLocalTime LPSYSTEMTIMEipSystemTime pra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一节汇演活动
- 鲁迅教育思想探析
- 健康教育体系构建与实施策略
- 广东省广州市白云区2024-2025学年八年级上学期期末学业质量诊断调研地理试卷(含答案)
- 2026颅内占位护理查房
- 2026血液透析并发症护理解读
- 官兵心理健康教育体系构建
- 家庭教育实施路径与方法体系
- 大一学期活动总结
- 教师教育课件设计与实施
- 备战2026年高考地理考试易错题(新高考)人文地理选择题50题专练(原卷版)
- 2025年赣州市红色文化知识竞赛考试题库150题(含答案)
- 慢病防治课题申报书模板
- DBJT15-201-2020 广东省绿色建筑设计规范
- 【《鼓式制动器的结构设计及三维建模分析》14000字(论文)】
- 海淀区2025年初三二模化学试卷及答案
- 建筑材料交货期保障措施
- DB41∕T 2787-2024 露天矿山生态修复遥感监测技术规范
- JG/T 270-2010工业构筑物水泥基耐磨材料
- T/CBMCA 039-2023陶瓷大板岩板装修镶贴应用规范
- 2025四川爱众集团第一批次招聘10人笔试参考题库附带答案详解
评论
0/150
提交评论