PLC编程再思考之一:MapReduce
来源:互联网 发布:ubuntu u盘版本 编辑:程序博客网 时间:2024/05/21 17:32
目前PLC和自动化技术在MES的应用中非常关键,通过对PLC的集成,MES得以打通执行层、控制层、设备层,在一些汽车制造公司,甚至专门搭建IT PLC或MASTER PLC,以实现PMC、ANDON、AVI、EPS等高度复杂的业务模块,以及数以千计的外部设备(拉绳/按钮/灯)的集成。
因此,对于MES业务而言,IT PLC的重点不是过程控制,而是复杂业务逻辑的处理,以及大量I/O设备的读写。
由于上述原因,IT PLC内部运行的FB/FC就会非常多,如果不认真规划的话,OB1里调用关系就会非常混乱,因而需要对程序的结构进行严谨的设计。
本文试以ANDON为例,说明MapReduce在PLC编程上的借鉴。
首先是Map。
Map应体现在两个方面,一是程序结构。
如下图体现了非常清晰的调用关系,在OB1中只需要做一些业务模块的声明:
第二个方面是配置关系的定义,如线和工位的对应关系,工位和拉绳/灯的对应关系。
如下图所示,可以用数组建立线和工位的对应关系,然后把拉绳和灯的编号作为工位属性配置:
因而我们可以用遍历数组的方式得到线对应的所有工位,然后根据工位属性得到对应的拉绳编号和灯编号。
再来看Reduce。
从FC40000 ANDON主FC以下,我们又看到了以下几类业务处理过程:
- 对于线的处理
- 对于工位的处理
- 对于拉绳的处理
- 对于灯的处理
我们可以分别编写4个FC来进行相应的处理。
- FC40100处理线的逻辑,包含两个变量:线编号和工位数量。
- FC40101处理工位的逻辑,包含变量:工位编号。
- FC40111处理拉绳的逻辑,包含变量:拉绳编号和拉绳状态。
- FC40121处理灯的逻辑,包含变量:灯编号。
经由以上处理,我们就得到了一个非常简洁的调用结构:
具体过程为:
- FC40000依次调用各条线FC40100。
- FC40100调用本线对应所有工位的FC40101。
- FC40101调用工位对应拉绳的FC40111。
- FC40101根据拉强绳返回的状态值FLAG,决定是否调用灯的FC40121。
总结一下,本文中用MapReduce处理PLC程序结构的要点:
- OB1/FC的结构要清晰、有层次。
- 业务模型通过DB中的数组等结构体现关系。
- 业务过程FC要参数化、可重用。
- PLC编程再思考之一:MapReduce
- PLC编程再思考之一:MapReduce
- PLC编程再思考之二:SOA
- PLC编程再思考之三:面向过程
- plc编程
- MapReduce 之一:MapReduce体系结构
- 提供PLC编程服务
- plc编程入门视频教程
- 贝加莱PLC编程总结
- PLC编程基本技巧
- 怎样学习PLC编程
- plc可控编程入门
- 三菱plc编程步骤
- 什么是PLC编程?PLC编程是什么语言编程?
- 三菱PLC编程-MOV指令
- PLC及其编程起步[.net]
- PLC多种编程方法例举
- PLC编程的正确步骤
- 汽车制造MES介绍之1 - PMC过程监控
- 汽车制造MES介绍之2 - ANDON安灯
- 汽车制造MES介绍之4 - EPS防错
- 汽车制造MES介绍之3 - AVI车辆识别与调度
- 科幻小说 - 共生
- PLC编程再思考之一:MapReduce
- PLC编程再思考之二:SOA
- PLC编程再思考之三:面向过程
- Java 枚举enum 使用详解
- HDU 3555 Bomb(数位dp 深搜版)
- 微信开发者模式之网址接入TOKEN验证
- 40 leetcode - Search a 2D Matrix
- 灵活运用SearchView搜索框控件(二)
- 给自己一点正能量