百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

PCS 7 CFC的常用功能与操作

mhr18 2024-12-25 10:41 27 浏览 0 评论

调用在线帮助信息

选择 CFC 图表任意位置单击F1,调出CFC帮助

选择具体的功能块,例如一个APL库功能块,单击 F1 键,将调出该库(如APL)的帮助文件

互联到地址

可以为CFC中的功能块关联的实际的IO地址、M区地址、DB块地址。

选中IO右键->Interconnection to Address,如果为数据定义了符号名并且数据格式与IO匹配,则自动出现在下拉列表中。否则需要手动输入绝对地址。

互联的数据可以是简单数据类型或结构体类型,不支持指针访问。

互连两个块

先选择一个块的输出,然后再选择另一个块的输入,将这两个参数进行互连。在进行互连时,无需考虑选择的顺序。要在两个图表之间建立互连,则需打开这两个图表。然后单击一个图中的输出,再单击另一个图中的输入(选择顺序可不同)。

为CFC中调用的功能块进行设置

双击功能块进行属性设置。

为CFC中调用的功能块的 I/O进行设置

  • 双击 I/O进行参数设置,不同IO的属性内容可能不同。

对于结构体格式的I/O,将弹出“选择结构元素”(Select Structure Element) 窗口;双击所需子元素,将弹出“属性 - 输入/输出”(Properties - Input/Output) 窗口。

也可以通过功能块的IO属性卡进行统一设置。

显示隐藏的 I/O

默认情况下,有些 I/O 不显示。但可通过调用块的对象属性,可以查找到所显示块的所有 I/O,然后再取消选中“隐藏”(Invisible) 框。双击相应块,并选择“I/O”选项卡,可选择相应属性。

切换 CFC 视图

双击表单中的任意空白区域,可实现单页视图和六页视图之间的切换。

CFC的运行组顺序

CFC的运行组顺序即是CFC程序在CPU的OB中执行的真正顺序。

插入一个图时,将在OB中自动创建一个名称与图名称相同的运行组。之后拖入该图上的块将插到该图的运行组中。

在块实例的右上角,显示有组织块 (OB) 名称,如 OB32。这表明,该块将在CPU中循环执行。OB32 默认的循环时间为 1 s。即,OB32 中的块将每秒钟中执行一次。在 CPU 的属性中,OB30 到OB38 的循环时间分别在 10 ms - 5 s 之间。在 PCS 7 中,通常使用循环时间为 100 ms - 5 s 的 OB30 到 OB35。

在默认情况下,从主数据库中新拖出的图以及相关块都将插入到 OB35 的运行系统组中。根据图表和块的插入先后顺序,CFC编辑器会在块右上角进行顺序编号。这个顺序有时候是不合逻辑的,需要进行运行组优化或者手动调整。双击每个块右上角的运行系统组,即可打开运行系统编辑器。在运行系统编辑器中,可以将运行系统组从一个 OB 中拖放到另一个 OB 中。在必要时,可通过这种方式更改运行顺序。

CFC编译和下载

将图表作为程序进行编译时,可通过以下菜单路径:图表 à 编译 à 图表 (Chart à Compile à Charts)。首次编译时,需要编译整个程序。之后,可通过“仅更改”(Changes only) 选项只编译更改部分。

选项“生成模块驱动程序”(Generate moudule drivers) 将根据所组态的硬件,自动生成所需的带有相应驱动器块的 CFC 图(系统CFC名称以@符进行标记)。而选项“生成 SCL 源程序”(Generate SCL source),则有助于进行函数块调试。

要将程序下载到 AS 中,则需在 CFC 中执行以下菜单路径:CPU à 下载 (CPU à Download)。

首次下载时,应使用“完整程序”(Entire program) 下载。下载完整程序时,CPU 将转入 STOP 模式,但在某些应用环境中不允许停止 CPU 运行。此时可以使用仅更改下载的方式。

CFC编译/下载的选项设置

可以通过中执行以下菜单路径:选项à自定义à编译/下载(OptionsàCustomizedàCompile/Download)调整CFC编译下载所占用的CPU资源。

常见的一个功能是释放CFC占用的FC和DB块号资源用于用户自定义编程。

CFC 测试

要测试程序,则需在 CFC 编辑器中执行以下菜单路径:调试 à 测试模式 (Debug à Test Mode)。通过将 I/O 值加入至监控表中,即可进行监视。这些值将以黄色突出显示。右键单击一个 I/O,选择“将 I/O 添加到监控表中”(add I/O to Watch List)。如果要在线更改一个值,则可双击输入,如 OpenMan。将会打开“属性 - 输入/输出”(Properties - Input/Output) 对话框。在此,可以为该变量设置一个新值。

以下数据不能监控:

  • 未存储在DB中的FB的输入输出
  • 未连接的FC或BOP(如AND,OR)等的输入
  • 数据类型为STRING/DATE_AND_TIME/ANY类型

对FB进行使能/禁用

可以对FB进行使能或禁用,FB的EN引脚默认是隐藏的。

对IO值进行取反

可以对BOOL类型的输入直接右键取反。

为IO数据设置OS变量归档

具有S7_Archive属性的IO可以在IO属性选项卡中指定是否创建OS变量归档。

  • No archiving:不归档
  • Archiving:归档
  • Longterm archving:如果有中央归档服务器(如PH站),则在OS和PH中均归档。

回读(Read back)

进行PCS 7/CFC工程时请一定保存原始项目。之后可以通过CFC Read back (回读)功能将CPU在线参数回读至离线程序,从而保证在线程序和离线程序的一致性。

每次执行CFC下载前,系统都会提示是否执行回读功能。也可以手动执行回读功能。

常见的应用场合为:工厂生产过程中操作人员通过OS 上位机对PID参数进行了调整,此后工程师微调了项目申请AS下载。为避免实际PID参数被离线AS程序中的初值替代,在下载前需要回读参数。

块清理与块更新

CFC图表与Block块文件夹内的对象并不完全一致时,可以通过菜单选项à 块类型(Options à BlockType)进行清理和更新,保持CPU程序的一致性。

块清理:Block块文件夹中有大量不再使用的块,可以清理释放CPU空间

块更新:对CFC中调用的功能块进行了结构、内容等的修改,需要将新块更新到CFC图表中。

交叉索引(Cross Reference)

在 CFC 内,使用菜单路径“选项 à 图引用数据”(Options à Chart Reference Data),可以使用有效格式显示并打印项目数据。关于“交叉引用”(Cross-reference) 的各种视图的详细信息见表。

相关推荐

Spring Boot3 连接 Redis 竟有这么多实用方式

各位互联网大厂的后端开发精英们,在日常开发中,想必大家都面临过系统性能优化的挑战。当系统数据量逐渐增大、并发请求不断增多时,如何提升系统的响应速度和稳定性,成为了我们必须攻克的难题。而Redis,这...

隧道 ssh -L 命令总结 和 windows端口转发配置

摘要:隧道ssh-L命令总结和windows端口转发配置关键词:隧道、ssh-L、端口转发、网络映射整体说明最近在项目中,因为内网的安全密级比较高,只能有一台机器连接内网数据库,推送...

火爆BOOS直聘的13个大厂Java社招面经(5年经验)助你狂拿offer

火爆BOOS直聘的13个大厂Java社招面经(5年经验)助你狂拿offer综上所述,面试遇到的所有问题,整理成了一份文档,希望大家能够喜欢!!Java面试题分享(Java中高级核心知识全面解析)一、J...

「第五期」游服务器一二三面 秋招 米哈游

一面下午2点,35分钟golang内存模型golang并发模型golanggc原理过程channel用途,原理redis数据结构,底层实现跳跃表查询插入复杂度进程,线程,协程kill原理除了kil...

RMQ——支持合并和优先级的消息队列

业务背景在一个项目中需要实现一个功能,商品价格发生变化时将商品价格打印在商品主图上面,那么需要在价格发生变动的时候触发合成一张带价格的图片,每一次触发合图时计算价格都是获取当前最新的价格。上游价格变化...

Redis 中的 zset 为什么要用跳跃表,而不是B+ Tree 呢?

Redis中的有序集合使用的是一种叫做跳跃表(SkipList)的数据结构来实现,而不是使用B+Tree。本文将介绍为什么Redis中使用跳跃表来实现有序集合,而不是B+Tree,并且探讨跳跃表...

一文让你彻底搞懂 WebSocket 的原理

作者:木木匠转发链接:https://juejin.im/post/5c693a4f51882561fb1db0ff一、概述上一篇文章《图文深入http三次握手核心问题【思维导图】》我们分析了简单的一...

Redis与Java整合的最佳实践

Redis与Java整合的最佳实践在这个数字化时代,数据处理速度决定了企业的竞争力。Redis作为一款高性能的内存数据库,以其卓越的速度和丰富的数据结构,成为Java开发者的重要伙伴。本文将带你深入了...

Docker与Redis:轻松部署和管理你的Redis实例

在高速发展的云计算时代,应用程序的部署和管理变得越来越复杂。面对各种操作系统、依赖库和环境差异,开发者常常陷入“在我机器上能跑”的泥潭。然而,容器化技术的兴起,尤其是Docker的普及,彻底改变了这一...

Java开发中的缓存策略:让程序飞得更快

Java开发中的缓存策略:让程序飞得更快缓存是什么?首先,让我们来聊聊什么是缓存。简单来说,缓存是一种存储机制,它将数据保存在更快速的存储介质中,以便后续使用时能够更快地访问。比如,当你打开一个网页时...

国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer

字节跳动,先面了data部门,3面技术面之后hr说需要实习转正,拒绝,之后另一个部门捞起,四面技术面,已oc分享面经,希望对大家有所帮助,秋招顺利在文末分享了我为金九银十准备的备战资源库,包含了源码笔...

“快”就一个字!Redis凭什么能让你的APP快到飞起?

咱们今天就来聊一个字——“快”!在这个信息爆炸、耐心越来越稀缺的时代,谁不希望自己手机里的APP点一下“嗖”就打开,刷一下“唰”就更新?谁要是敢让咱用户盯着个小圈圈干等,那简直就是在“劝退”!而说到让...

双十一秒杀,为何总能抢到?Redis功不可没!

一年一度的双十一“剁手节”,那场面,简直比春运抢票还刺激!零点的钟声一敲响,亿万个手指头在屏幕上疯狂戳戳戳,眼睛瞪得像铜铃,就为了抢到那个心心念念的半价商品、限量版宝贝。你有没有发现一个奇怪的现象?明...

后端开发必看!为什么说Redis是天然的幂等性?

你在做后端开发的时候,有没有遇到过这样的困扰:高并发场景下,同一个操作重复执行多次,导致数据混乱、业务逻辑出错?别担心,很多同行都踩过这个坑。某电商平台就曾因订单创建接口在高并发时不具备幂等性,用户多...

开发一个app需要哪些技术和工具

APP开发需要一系列技术和工具的支持,以下是对这些技术的清晰归纳和分点表示:一、前端开发技术HTML用于构建页面结构。CSS用于样式设计和布局。JavaScript用于页面交互和逻辑处理。React...

取消回复欢迎 发表评论: