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

2021-11-05 15:01:18 浏览数 (1)

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砖家,由于上次的错误,认识到应该虚心和敬畏,注重实践,深感惭愧,专家改成砖家。

0 人点赞