前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊西门子TIA V17 的CFC编程究竟怎么样

聊聊西门子TIA V17 的CFC编程究竟怎么样

作者头像
剑指工控
发布2021-11-05 15:01:18
1.9K0
发布2021-11-05 15:01:18
举报
文章被收录于专栏:剑指工控
JZGKCHINA

工控技术分享平台

尊重原创 勿抄袭

勿私放其他平台

西门子发布了TIA V17,其中STEP7软件编程语言增加了CEM和CFC引得工程师们兴致勃勃,其中对CFC的讨论最为激烈,今天专门为大家来解读TIA V17的一些CFC功能。

关于CEM可回顾:实例说明TIA V17的CEM编程究竟厉害不厉害(点击查看)

通常西门子将工艺过程分类工厂自动化和过程自动化,但是还存在既有工厂自动化又有过程自动化特征的混合行业,这些行业的产品生产控制系统既可以使用PLC也可以使用DCS,在此之前CFC通常只在PCS 7平台下S7-400 中使用,CFC保持了图形化编程的特性,其层次分明,用户能轻易就找出程序与现场设备的对应关系,在CFC中每个电机或阀门都是一个FB,添加删除设备,检查故障,优化工艺等都非常的方便,甚至工厂最终用户工艺人员也能调试修改程序。因此使用CFC的PCS 7占有一些优势,TIA推出CFC后,势必在混合行业与同是本根生的PCS 7有一定竞争。这些也是令很多网友对西门子这波操作不解的地方。

目前PCS 7的CFC对比TIA 的CFC来说,还有一些功能优势以及库优势等,PCS 7发展了多年,已经形成了一些相关产品的生态,比如通用库,还有多种产品对PCS 7提供了程序库,PCS 7在多个行业沉淀也有了一些行业库、工艺库等,库通常都是全球项目验证过的,其运行稳定并有团队维护对其持续优化,TIA 后期如果不提供这样的库,其项目质量可能工程师个人能力占比更大,其风险难以控制。

这次测试来说,感觉TIA CFC的基本功能还是都有了,对比发展多年的PCS 7 CFC来说肯定还差点意思,但相信如果能普及CFC在S7-1500上的应用,需求都来了,TIA CFC的完善步伐会很快。

解读

TIA V17的一些CFC功能

CFC加密保护

TIA V17 的CFC图表添加了加密的功能,如目录树中P1301的CFC图标添加密码后,图标上会有一个小锁,密码保护操作如下:新建CFC图表P1302,双击打开图表,在Properties > protection 中可以通过对话框为打开该CFC操作添加一个复杂密码。在西门子SIMATIC PCS 7和PCS neo中没有为CFC添加密码访问这个功能。

CFC加密保护功能

CFC图表

下图中FB 110(“S7Motor”)是一个电机功能块,拖拽到CFC编辑界面后,系统自动为其分配背景DB,其编号远超我们平时设置的数值,且用户不能修改编号。编辑过程中,还会自动生成几个OB,如目录树中:

  • CFC_Cyclic interrupt_5 [OB1035]
  • CFC_Program cycle[OB1001]
  • CFC_Startup [OB1100]

此外,还会自动生成System blocks与CFC blocks文件夹,这两个文件夹的作用在下面会做介绍。

如果在PLC的program block中也看不到block的背景DB,那HMI上位机上如何引用这些FB的接口进行显示和控制呢?

Block自动生成背景DB

该计算机上安装有TIA WinCC professional ,在PC station的HMI Tags中新添加一个变量,在PLC tag的下拉菜单中,可以在弹出的对话框中选到Program blocks目录下CFC blocks,右边侧会显示在创建FB时定义了需要在HMI上监控的接口变量。同时在该对话框中可以看到FB接口变量对应的绝对地址。

CFC的Block参数在HMI上引用

CFC中block之间的连接

CFC的Block之间的互联

Block之间的连线通常采用鼠标拖拽的方式,如要连接Interlock块的QOut输出到Mot块的Intlock管脚,鼠标左键点击QOut不松,光标悬停到Mot块时,系统自动标记所有数据类型相同且属性允许直连的管脚为绿色,找到想要的连接对象,松开左键即完成连接。

  • Block的输入输出不能设计为复杂数据类型如文本符号WString,Array等,含有这些数据类型的接口的功能块拖拽到CFC编辑界面时就会可能报错而阻止操作。
  • CFC中支持Any接口作为输入管脚
  • 支持元素一致的struct数据类型连接

TIA V 17 中CFC不支持同一个项目下不同CPU之间的Block接口互联,这个功能在PCS 7中叫AS-wide connection,在PCS 7中互联不同CPU之间的Block接口,系统会自动创建CPU互联需要的通讯功能块及程序,非常方便。TIA之后应该也会完善该功能。

不同CPU下的Block进行互联

Block与I/O连接

作为一个电机,通常有些远程就地,运行反馈,故障,启动等DI、DO信号,这些信号直接连接到Block上,如需要在FbkRun上连接数字量输入信号I 1.4,只需要右击管脚,选择Interconnection to operand… 在对话框中选择硬件信号对应的符号即可,连接效果如”P1302_LocalLi”,如果硬件电气回路设计为1 = 远程,而功能块程序设计为1 =就地控制,就可以通过右击Mot块的LocalLi(就地远程选择)管脚对输入的DI信号进行反转。

通过互联操作数连接到IO地址

对输入信号进行反转

CFC 执行顺序

通过信号流调整CFC执行顺序

CFC的Block执行顺序可以通过自动优化,也可以通过Control flow进行手动调整,在自动调整中支持通过信号流进行调整,箭头指示的按钮可以显示执行顺序由右上角的数字表示。深蓝色的箭头点击后会执行自动调整,在图中自动调整的结果是1,2的数字会进行对调,因为Mot的输入引用了Interlock块输出结果。

通过Control flow手动调整CFC执行顺序

设计用于CFC的功能块FB

创建FB时,除了前面说的不能使用复杂元素外,也要避免在IN/OUT创建接口,原因由于篇幅问题不再说明,此外对比PCS 7,PCS 7的CFC支持非常多的接口属性,而TIA仅仅开放了几个简单的接口属性,如CFC_Visible = ‘false’的输入接口,可以在Block拖拽到CFC时,默认隐藏该接口不显示,也可以在CFC_EngineeringUnit中添加一个单位显示到Block上。还有CFC_Interconnectable可以设置不允许进行Block之间的连线操作。

CFC运行显示

CFC在test模式(CFC在线)的时候,如果想要查看接口的数值,可以右键接口勾选For test让接口数值动态显示,但是要在FB块类型设计时就定义哪些接口要默认就是需要动态显示的,TIA V17 CFC的接口属性设置中似乎没有改选项。对于BooL数据,连线传送数值为1时导通显示为高亮绿线,传送值为0时是蓝色虚线。

通过For test动态显示接口数值

CFC回读功能

回读功能是SIEMENS这些编程语言里仅CFC所特有的功能,它的作用是保存生产中设定的一些参数到离线程序,下次下载离线程序到CPU时,可以将最后一次回读那些保存的参数一起装载到CPU,否则冷启动后,使用的是参数的初始值。回读功能启用需要CPU硬件或者PLCSIM在线,但是TIA软件不能打到CFC的test模式。

CFC的回读功能

作 者 简 介

宁超

剑指工控S7-200 SMART砖家,由于上次的错误,认识到应该虚心和敬畏,注重实践,深感惭愧,专家改成砖家。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档