直播课堂
HOME
直播课堂
正文内容
plc cfc 编程 高效学习PLC编程,使用ST语言编写控制程序无压力
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

高效学习PLC编程,使用ST语言编写控制程序无压力

大家都知道PLC编程有很多语言可选择,在学习 CoDeSys 的过程中常会问一个问题,哪种编程语言最好?

其实,没有哪种编程语言是绝对的好或不好,不同的工程应用具有不同的最佳编程方式,每种编程语言都具有其不同的特点,可根据实际工程应用的需求选用合适的编程语言。

涉及到算法部分建议选择 ST 语言,编写的程序往往简洁而高效。

简单介绍

结构化文本(ST-Struct Text)是一种高级的文本语言,在西门子中称为SCL(Structured Control Language)语言,不要与STL混淆,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。

结构化文本编程语言是一种高级语言,是 CoDeSys 中最常用的一种语言,对于熟悉计算机高级语言开发的人员来说,结构化文本语言更是易学易用,它可以实现选择、迭代、跳转语句等功能。在复杂控制系统中,结构化文本可以大大减少其代码量,使复杂系统问题变得简单。

当你的14寸电脑界面装不下一行梯形图,当你做一个算术运算洋洋洒洒几十步,那个时候发现用ST还是挺香的,只是看逻辑没有梯形图直观,编译速度相对较慢。大意了,有得必有失嘛,如果你不介意那就一起了解一下吧。

程序执行顺序

使用结构化文本的程序执行顺序根据“行号”依次从上至下开始顺序执行,每个周期开始,先执行行号较小的程序行。这是PLC的特性,从上至下循环扫描,周期性执行,在PLC配置中可以分配每段程序的扫描周期。同一段程序中被赋值两次,第一次的赋值将被覆盖。

这是PLC的特性,从上至下循环扫描,周期性执行,在PLC配置中可以分配每段程序的扫描周期。同一段程序中被赋值两次,第一次的赋值将被覆盖。

表达式执行顺序

表达式中包括操作符和操作数,操作数按照操作符指定的规则进行运算,得到结果并返回。操作数可以为变量、常量、寄存器地址、函数等。

在做算术运算时,根据表格中的表达式优先级运算,小括号的优先级最高,可以将你想要先执行的表达式写在小括号内。

指令语句

结构化文本语句表主要有 5 种类型,即赋值语句、函数和功能块控制语句、选择语句、迭代(循环)语句、跳转语句。

转发是最大的鼓励!谢谢您的支持!

小贴士

PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!

聊聊西门子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的cfc引脚说明?

Plc的cfc引脚分别代表1、EN:BOOL,功能块使能端。2、L_SS_ACT:BOOL,安全位置连锁驱动。3、L_OPEN_ACT:BOOL,开阀连锁驱动。4、L_CLOSE_ACT:BO...

codesys和西门子哪个好用?

codesys好用。相比西门子动不动30G的软件,CODESYS以不到2G的存储却有超越博途的功能,不得不让人惊叹。CoDeSys是一种功能强大的PLC软件编程工具,它支持IEC...

倍福嵌入式控制器是用什么语言来编程?

倍福的嵌入式控制器可以用多种语言来编程!打开编程软件一看就知道,网络不好我就不上图了,它支持IL,ST,SFC,FBD,CFC,LD这几种编程语言,应该说很多欧美的...

作为老电工,先学上位机好,还是PLC?为何?

作为老电工,先学上位机好,还是PLC?为何?我的建议是先学PLC,而后再去学习上位机,当然这个先后顺序是更侧重的意思,建议首先更侧重对PLC的学习,而后再侧重...作为...

pcs7怎么用梯形图开发程序块?

在PCS7中,可以使用梯形图(LD)来开发程序块。下面是基本步骤:1.打开PCS7工程并进入硬件配置视图。2.在硬件配置视图中,找到您想要在其中开发程序块的PLC...

群里有人熟悉德国coperion公司的挤压造粒机控制系统吗?-盖德...

你是想讨论西门子400的plc还是讨论科贝隆的挤出机?想问下你们那边的控制系统是plc400,系统软件是pcs7吗?大家都是搞聚甲醛的吧,我们公司也用的这...

盆友们谁能赐教,服务好的PLC编程系统哪家价格实惠,PLC编程...

[回答]宇丰一直以来致力于PLC、变频器和伺服等自动化产品的设计应用,近五年来客户要求不断升级,从而将重心转移到视觉检测、运动控制和机械手等方面。宇丰...

砼简支梁怎么计算配筋-jNflXL9oPlc的回答-懂得

梁正截面受弯承载力计算书1已知条件梁截面宽度b=250mm,高度h=500mm,受压钢筋合力点至截面近边缘距离a's=35mm,受拉钢筋合力点到截面近边缘距离as=...

ABB ACH550变频器代理商有哪些?

[回答]ABB变频器可以咨询浙江东华信息控制技术有限公司,是ABB传动产品分销与授权服务提供商之一。主要销售ABB变频器、电机、PLC,是ABB传动产品分销与授权...

多大年龄可以去养老院

[回答]你要看是什么性质的,一般只要你退休就可以住了。60以上就可以了,说白一点只要你教钱50岁你就可以去住了老年人就像孩子一样需要子女的陪伴,但是很...

 济南人大主任  诺基亚6720c 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部