其实在PLC里用FB块这事儿,真的特别实用。咱们想啊,编程这活儿就像跑马拉松,有时候得歇歇脚摸摸鱼,才能走得更远。上回咱们聊过,随着工业4.0的步子越迈越大,系统变得越来越复杂,那种传统的编过程序根本对付不了现代工厂对可靠、好修、还能扩展的要求。这就好比工业软件正在经历一场大变革,今天咱们就把FB的内存机制、封装特性还有怎么搞大型项目架构这些门道给大伙儿好好唠唠。FB到底是怎么回事?其实它跟FC在IEC 61131-3标准里算是两码事,内存管理上完全不一样。程序员要是写个FB调用,CPU立马就在内存里给它划出一块专用的DB区域来存数据。这里面每个变量都有固定的地址:布尔量占位地址,整数量占字地址。这种死规定式的分配法太关键了,因为它能确保每次访问数据都稳稳当当,对那些搞实时控制的系统来说,简直是命根子。 一次扫描周期里,FB的执行路径那是相当严格:一开始就把所有静态变量(STAT)的值从DB读进CPU的寄存器里存着;干活儿的时候全靠这些值算逻辑、判断状态;活儿干完了再把结果写回原来的地址里去。这就保证了状态隔了周期还能接着跑,也不怕变量被人无意中改坏了。这种自带“记忆”功能的特点也是FB最有特色的地方了。比如做边沿检测吧,以前只能靠全局变量记上一周期的状态,现在直接在FB里头声明个PrevSignal这种静态变量就行。跟FC比起来,FB就把这些麻烦事全给包圆了。 至于封装带来的好处可太多了。我可能只需要输入一个开关量来启动一个FB块,这时候它里头的变量都不用占你PLC的真实内存空间了,能省好多M点和D点。而且这种数据隔离的好处不光在正常干活的时候能保证安全。就算遇到干扰把某个FB搞崩溃了也没事儿,里面的混乱数据只会烂在自己肚子里不往外传。 你想想看就像上回那个电机控制的小例子一样。只要把逻辑写一遍就能管着几十台甚至上千台电机了。这种封装的威力在大项目里就更明显了。面对特别庞大的系统时,FB的价值已经不只是代码层面那么简单了。 现在的系统一般都是分层来搞的。 L1层管的是电机、阀门这种实实在在的物理设备;L2层是把几个设备连起来当个工位用;L3层协调好整个生产线的事儿;L4层才是跟MES系统打交道定计划的地方。在这个结构里高层的FB通过嵌套底层的小FB来搞复杂的功能。 这种结构特别好维护和测试。就拿个典型的嵌套结构来说吧:最上面是FB_Application;它下面有个FB_ProductionControl;再往下就是FB_Line1和FB_Station1;这些工位里又有FB_Motor和FB_Sensor;最后还有个专门管安全的FB_SafetySystem。 总之用好FB块能帮咱们解决很多实际的难题。没事的时候把那些常用的功能块写好放在那儿备用就行,想用的时候直接调用它不用的就扔那儿不管。FB技术绝对不是个普通的工具那么简单的事了!它标志着工业控制软件从单纯写代码变成了设计系统的大跨越。关键就在于掌握两个大原则:一个是封装好复杂度,另一个是用组合的方法扩展规模。 只要把这两条心法学会了,工程师就能画出一套真正反映工厂设计的架构图出来!不光是眼下能解决问题这么简单啊——这还能让咱们的系统未来十年都不用落伍!