聊聊西门子TIA V17 的CFC编程究竟怎么样
西门子发布了TIA V17,其中STEP7软件编程语言增加了CEM和CFC引得工程师们兴致勃勃,其中对CFC的讨论最为激烈,今天专门为大家来解读TIA V17的一些CFC功能。
通常西门子将工艺过程分类工厂自动化和过程自动化,但是还存在既有工厂自动化又有过程自动化特征的混合行业,这些行业的产品生产控制系统既可以使用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的回读功能
高效学习PLC编程,使用ST语言编写控制程序无压力
大家都知道PLC编程有很多语言可选择,在学习 CoDeSys 的过程中常会问一个问题,哪种编程语言最好?
其实,没有哪种编程语言是绝对的好或不好,不同的工程应用具有不同的最佳编程方式,每种编程语言都具有其不同的特点,可根据实际工程应用的需求选用合适的编程语言。
涉及到算法部分建议选择 ST 语言,编写的程序往往简洁而高效。
简单介绍
结构化文本(ST-Struct Text)是一种高级的文本语言,在西门子中称为SCL(Structured Control Language)语言,不要与STL混淆,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。
结构化文本编程语言是一种高级语言,是 CoDeSys 中最常用的一种语言,对于熟悉计算机高级语言开发的人员来说,结构化文本语言更是易学易用,它可以实现选择、迭代、跳转语句等功能。在复杂控制系统中,结构化文本可以大大减少其代码量,使复杂系统问题变得简单。
当你的14寸电脑界面装不下一行梯形图,当你做一个算术运算洋洋洒洒几十步,那个时候发现用ST还是挺香的,只是看逻辑没有梯形图直观,编译速度相对较慢。大意了,有得必有失嘛,如果你不介意那就一起了解一下吧。
程序执行顺序
使用结构化文本的程序执行顺序根据“行号”依次从上至下开始顺序执行,每个周期开始,先执行行号较小的程序行。这是PLC的特性,从上至下循环扫描,周期性执行,在PLC配置中可以分配每段程序的扫描周期。同一段程序中被赋值两次,第一次的赋值将被覆盖。
这是PLC的特性,从上至下循环扫描,周期性执行,在PLC配置中可以分配每段程序的扫描周期。同一段程序中被赋值两次,第一次的赋值将被覆盖。
表达式执行顺序
表达式中包括操作符和操作数,操作数按照操作符指定的规则进行运算,得到结果并返回。操作数可以为变量、常量、寄存器地址、函数等。
在做算术运算时,根据表格中的表达式优先级运算,小括号的优先级最高,可以将你想要先执行的表达式写在小括号内。
指令语句
结构化文本语句表主要有 5 种类型,即赋值语句、函数和功能块控制语句、选择语句、迭代(循环)语句、跳转语句。
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
相关问答
cfc程序是如何执行的?
CFC(ContinuousFunctionChart)是一种可编程控制器(PLC)的编程语言,用于描述连续的控制过程。CFC程序的执行过程如下:1.初始化:PLC开机后,首先会进行...C...
PLC编程语言中LD/IL/FBD,ST/SFC/CFC的全称是什么?望高手指点?
LD:laderdiagramIL:这个又叫STL,statementlist而IL应该是日系叫法,I什么list的意思吧,没仔细研究过日系的PLC。FBD:FunctionBlockd...
S7系列的PLC的编程语言LAD、STL、SCL、GRAPH、HIGRAPH、CFC分别是什么意思?
LAD:梯形图----------日系称作为LDSTL:指令表---------日系称作为ILSCL:结构文本-------日系称作为STGRAPH:图形编程-----日系称作为SFCHIGRAPH:...
codyses是什么编程语言?
CodesysCODESYS是一种功能强大的PLC软件编程工具,它支持IEC61131-3标准IL、ST、FBD、LD、CFC、SFC六种PLC编程语言,用户可以在同一项目中选择不同的语...
西门子PLC中的DCC软件的有什么作用?
DCC是用图形化的编程语言(CFC)来实现与驱动系统相关的功能,用户通过编程来完成实际特殊的工艺需求。DCC是用图形化的编程语言(CFC)来实现与驱动系统相关的功...
选择DCS还是PLC作为职业发展?
DCS和PLC其本质其别就是DCS主要用于过程控制领域如化工制药石化电力等有大量模拟量的控制方面。所有控制都需要上位面组态的应用。往往是针对一个IO点数...
CoDeSys是干什么的?
CODESYS是一种功能强大的PLC软件编程工具,它支持IEC61131-3标准IL、ST、FBD、LD、CFC、SFC六种PLC编程语言,用户可以在同一项目中选择不同的语言编辑子...
codesys是干什么用的?
CODESYS是一种功能强大的PLC软件编程工具。它支持IEC61131-3标准IL、ST、FBD、LD、CFC、SFC六种PLC编程语言,用户可以在同一项目中选择不同的语言编辑...
西门子S120是指什么?是一类设备吗?和70系列有什么区别?
三相异步电动机,还能控制同步电机、扭矩电机及直线电机。其强大的定位功能将实现进给轴的绝对、相对定位。内部集成的DCC(驱动控制图表)功能,用PLC的CFC编程...
西门子TDC是什么东西?
比s7-400plc运算能力等个项性能更高级的控制系统,编程语言以cfc为主比s7-400plc运算能力等个项性能更高级的控制系统,编程语言以cfc为主