几个CODESYS平台PLC上常用的系统功能(功能块)的使用-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

Heesn-HSC6150
查看: 288|回复: 0

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

[复制链接]
  • TA的每日心情
    擦汗
    2019-8-13 14:13
  • 签到天数: 32 天

    [LV.5]常住居民I

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

    1 BLINK
    BLINK是闪烁的意思,闪烁,用电气专业术语讲,就是高低电平持续输出,因此它的主要功能就是产生脉宽可调的脉冲,与周期性脉冲函数不同,BLINK的高电平宽度和低电平宽度是可调的,而且可以不相等,所以它非常好用,在某些情况下,甚至可以替代定时器。
    5e7c000194b6eb5eff5c.jpg
    图一 BLINK 功能块
    如图一所示,这就是一个BLINK功能块,它的重点就是黄色荧光笔表示的部分,也就是高低电平持续时间。TIMELOW是指低电平持续时间,TIMEHIGH 是指高电平持续时间。图一所示的功能块,变量SB1就会持续产生5S低电平,10S低电平。 这两个变量都是TIME型变量,具体数值可以自由输入,而它的高低电平时间可以不一样,这点非常实用,可以替代定时器的使用 ,比如我在上篇文章中控制风机的间隔启停,就是用的此功能块。由于CODESYS平台不像日系和博途一样,提供标准的脉冲函数,因此脉冲函数也是通过此功能块实现。需要注意的是,它虽然只有一个输出,但它是功能块,是有实例名的。
    2 SEL
    SEL 是英文SELECT 的缩写,是选择的意思,所以这个函数就是一个选择开关。
    5e78000244044a0ca683.jpg
    图二 SEL功能
    如图二 所示,SEL 函数的作用就是通过输入变量CONTROL 的值来选择输入,如果变量CONTROL 的值为TRUE ,那么,就把输入变量IN2 的值赋给输出变量OUT1,位FALSE 就把IN1的值赋给OUT1。可以把它理解成一个阀门,或是旋钮。多用于通道选择。当然,它只能二选一,而不能多选一。
    3 MAX MIN
    这两个函数的作用是判断几个数中的最大值和最小值,我们来看一下实例
    5e7900060d9440eb3be9.jpg
    图三 最大 最小判断函数
    如图三所示,MIN 是找出变量 A B C D 中的最小值,并把它赋值个 变量MIN_VALUE,而MAX 是找出它们中的最大值,赋给MAX_VALUE。前面变量的个数不仅仅限于四个,可以自由添加,几十甚至上百个。这两个函数非常有用,比如在恒压供水中,一般都是多个电机轮流启动,当我们启动某个电机的时候,当然是希望优先启动运行时间最少的电机,而用这个函数是非常方便的。而如果要自己写,那是相当麻烦的,用梯形图会让你怀疑人生的,而用ST,也是比较复杂的,我只记得C语言里有个算法叫冒泡排序,可以找出一串数的最大值或是最小值,不过要用ST写,就会用到 指针,数组,那也是相当麻烦的。
    以上就是CODESYS 中几个常用的功能块,灵活使用它们,可以让我们编写程序的时候更方便。

    打赏鼓励一下!
    +10
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|小黑屋|手机版|Archiver|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2021-4-19 00:01 , Processed in 0.192772 second(s), 64 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表