CFC,是指连续功能块图。有些人认为它是dcs的编程语言,其实这种认识是片面的,是盲人摸象的认知,最初,这种语言主要用在过程控制中,比如西门子的PCS7,以及各种DCS系统中。因为过程控制就是一系列连续的控制,比如,各种化学反应,都是一环套一环,而连续功能图正好符合这种控制要求,所以就在DCS中大规模应用。其实,PLC也是可以用这种编程方式的,毕竟编程不是目的,实现工艺才是目的,只不过这种语言在PLC中应用很少,我第一次接触也是在CODESYS的PLC中。
其实,CFC 就是一种可以自由移动的FBD,它比FBD更自由更灵活。只要你掌握了FBD,就可以轻松掌握CFC,而FBD,又和LD有着千丝万缕的联系。所以,CFC是一种非常简单,容易入手的编程语言。我们不妨看一个例子
CFC编程语言
如上图所示,这是一个典型的CFC编程语言,这段程序是PLC通过以太网口使用MODBUSTCP协议和远程机器人交互数据,程序我只截取了一部分,但已经包含了大部分CFC的元素。
黄色荧光笔部分:这部分是程序的注释,你可以自由输入各种文本,PLC是不会编译的。
红色圆圈部分:这部分是个黑点,和我们电路图中的实心点的意思是一样的,表示电路是相交相通的。
蓝色圆圈部分:这部分没有黑点,同样,和电路图是一样的,表示电路是相交但不相通。
淡蓝色圆圈部分:数字是软件自动加上的,表示执行顺序,什么意思呢?PLC是循环扫描的,由于CFC可以自由移动,因此,循环扫描可能没梯形图那么直观,就加上数字,表示扫描顺序。
以上,就是CFC 的关键元素,至于其他的输入,输出,功能块调用和FBD是一模一样的。个人认为,CFC可以自由移动的原因,在高速计数,运动控制,总线通讯等大批量使用功能块,而且功能块之间联系很多的场合是非常方便的。比用FBD和LD方便多了,它只需要轻轻一连就行,不需要使用大量的中间变量转换。