[CodeSys] 几个CODESYS平台PLC上常用的系统功能(功能块)的使用

[复制链接]
查看148 | 回复0 | 2024-4-6 21:13:05 | 显示全部楼层 |阅读模式
功能和功能块,也就是FB,FC 是CODESYS 平台PLC两个非常重要的概念,不过它和西门子博途中的FB,FC是不一样 的,在CODESYS中,是以输出类型来分的,FB有多个输出,可以是不同的数据类型,FC只有一个输出,当然,也就只有一种数据类型。FB有实例名,也就是西门子博途中的背景数据块,而FC没有。前面我曾写过文章专门介绍过CoDeSys 与西门子博途中 FB FC 的区别。
功能和功能块既可以自定义,也可以使用系统自带的,灵活应用系统自带的功能和功能块,可以简化程序的编写,今天就给大家介绍几个系统自带的功能和功能块。


1 BLINK
BLINK是闪烁的意思,闪烁,用电气专业术语讲,就是高低电平持续输出,因此它的主要功能就是产生脉宽可调的脉冲,与周期性脉冲函数不同,BLINK的高电平宽度和低电平宽度是可调的,而且可以不相等,所以它非常好用,在某些情况下,甚至可以替代定时器。

图一 BLINK 共嫩快
如图一所示,这就是一个BLINK功能块,它的重点就是黄色荧光笔表示的部分,也就是高低电平持续时间。TIMELOW是指低电平持续时间,TIMEHIGH 是指高电平持续时间。图一所示的功能块,变量SB1就会持续产生5S低电平,10S低电平。这两个变量都是TIME型变量,具体数值可以自由输入,而它的高低电平时间可以不一样,这点非常实用,可以替代定时器的使用,比如我在上篇文章中控制风机的间隔启停,就是用的此功能块。由于CODESYS平台不像日系和博途一样,提供标准的脉冲函数,因此脉冲函数也是通过此功能块实现。需要注意的是,它虽然只有一个输出,但它是功能块,是有实例名的。
2 SEL
SEL 是英文SELECT 的缩写,是选择的意思,所以这个函数就是一个选择开关。

图二 SEL功能


如图二 所示,SEL 函数的作用就是通过输入变量CONTROL 的值来选择输入,如果变量CONTROL 的值为TRUE ,那么,就把输入变量IN2 的值赋给输出变量OUT1,位FALSE 就把IN1的值赋给OUT1。可以把它理解成一个阀门,或是旋钮。多用于通道选择。当然,它只能二选一,而不能多选一。
3 MAX MIN
这两个函数的作用是判断几个数中的最大值和最小值,我们来看一下实例

图三 最大 最小判断函数


如图三所示,MIN 是找出变量 A B C D 中的最小值,并把它赋值个 变量MIN_VALUE,而MAX 是找出它们中的最大值,赋给MAX_VALUE。前面变量的个数不仅仅限于四个,可以自由添加,几十甚至上百个。这两个函数非常有用,比如在恒压供水中,一般都是多个电机轮流启动,当我们启动某个电机的时候,当然是希望优先启动运行时间最少的电机,而用这个函数是非常方便的。而如果要自己写,那是相当麻烦的,用梯形图会让你怀疑人生的,而用ST,也是比较复杂的,我只记得C语言里有个算法叫冒泡排序,可以找出一串数的最大值或是最小值,不过要用ST写,就会用到 指针,数组,那也是相当麻烦的。
以上就是CODESYS 中几个常用的功能块,灵活使用它们,可以让我们编写程序的时候更方便。




关于启程自动化培训


关于我们:启程自动化培训 中国领先的工业机器人培训服务提供商  
联系电话:0755-33160617 33160627
培训项目:机器人+PLC 系统集成+运动控制+机器人+机器视觉
特色服务:3000平米实训中心 +推荐就业+ 业界领先的课程体系


+美女老师 微信,了解开班详情



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则