浅谈MES的通用设计之二:工艺参数的下载

MES是计划和执行层之间的桥梁,除了将工单下发到车间外,还有一个重要功能是将工艺参数下载到设备,从而起到指导现场作业的作用。

本文试以实例说明常见的两种设计思路,以及一种更为通用的设计方法。

业务场景及设计实例1

某发动机工厂支持混线生产,有两种发动机,排量分别为2L、3L。当发动机到达加油机工位时,PLC需要判断发动机的排量,从而进行对应的加油作业,如2L发动机加20L油,3L发动机加30L油。

实现方法如下:

为此工位专门写一个程序,逻辑步骤为:

1、发动机到达时,PLC读取RFID存储的发动机序列号。

2、PLC将发动机序列号上传到MES服务器,执行查询请求。

3、MES根据发动机序列号查询得到工单号。

4、MES根据工单号查询得到制造BOM。

5、MES根据油缸料号的命名规则,查询得到发动机对应的油缸类型。

6、MES将油缸类型数据下载到PLC。

7、PLC根据油缸类型决定加油量,进行加油作业。

业务场景及设计实例2

某整车厂焊装车间支持混线生产,同一款车有两种车门配置,分别为4门、5门。当车身到达某焊装工位时,PLC需要判断车门配置,从而决定焊接机器人的取料路径。

实现方法如下:

扩展工单的属性表,为每个工单建立一个长长的配置单,包括车型、门数、天窗、颜色、内饰等所有工艺需要的配置参数。逻辑步骤为:

1、车身到达时,PLC读取RFID存储的车辆识别码。

2、PLC将车辆识别码上传到MES服务器,执行查询请求。

3、MES根据车辆识别码查询得到工单号。

4、MES根据工单号关联查询配置单,得到所有配置参数。

5、MES将所有配置参数下载到PLC。

6、PLC读取指定的数据块位置,得到门数参数。

7、PLC根据门数参数决定取料路径。

方法1的缺点是几乎每个工位都要做客户化开发。

方法2的缺点是配置单的准备相当繁琐,并且下载到PLC的数据量相当大。

下面介绍一种更为通用的、基于工艺配方的脚本化设计方法。

1、首先提供一个界面,允许用户定义工艺配方。

决定工艺配方唯一性的条件有:产品料号、工位号、步骤号、工单执行时间等。

每个工艺配方允许用户定义解释性字段,如名称、说明、图片等。

每个工艺配方的输出值为不定长的字符串。

为每个工艺配方定义字符转换条件,如长度、空值处理等。

每个工艺配方对应的逻辑是一个数据库函数。

也就是说,每次查询一次工艺配方,相当于运行一次数据库函数,根据输入值及函数逻辑(通常是一次查询),得到输出值也就是工艺配方的值。

2、然后编写一段代码,实现:

1) 运行工艺配方,得到每个步骤对应的初始工艺参数。

2) 根据字符转换条件,得到更为规范的步骤工艺参数。

3) 将工位所有步骤号对应的步骤工艺参数,根据步骤顺序进行拼合,得到工位完整的工艺参数。

3、然后将完整工艺参数下载到PLC。

工艺配方的示例:

表中,字段itemtype表示工艺配方的类型,其中类型0表示常量,工艺参数值为字段itemvalue的值;类型1表示变量,工艺参数值为字段itemfunction的值对应的数据库函数的执行结果。

字段itemlength表示步骤工艺参数的长度。

字段fillchar表示查询返回空值时的填充字符。

Oracle中利用动态游标技术拼合步骤工艺参数的方法示例,下面为部分代码:


DECLARE

tmp VARCHAR2(2000);

tmp2 VARCHAR2(2000);

tmpfun VARCHAR2(2000);

allstr VARCHAR2(2000);

type curtype is ref cursor;

      mycur2 curtype;

CURSOR mycur IS

SELECT

t.itemno,

t.itemname,

t.itemtype,

t.itemvalue,

t.itemfunction,

t.itemlength,

t.fillchar

FROM t -- 此处t应为工艺配方表

WHERE t.station = I_STATION -- 此处可添加更多的筛选条件

ORDER BY t.itemno;

BEGIN

-- 1. get all item for station

tmp := ‘‘;

tmpfun := ‘‘;

allstr := ‘‘;

FOR rec IN mycur

LOOP

IF rec.itemtype = 0

THEN tmp2 := rec.itemvalue; --> get value

ELSE --> get function

tmpfun := rec.ITEMFUNCTION;

tmpfun := tmpfun || ‘(‘‘‘ || TO_CHAR(I_SN) || ‘‘‘)‘;

tmpfun := ‘SELECT ‘ || tmpfun || ‘ myvalue FROM dual‘;

OPEN   mycur2   FOR   tmpfun;  --> get item function

FETCH   mycur2 INTO tmp2;

close mycur2;

END IF;

tmp := LPAD(tmp2, rec.itemlength, rec.fillchar);

allstr := allstr || tmp;

END LOOP;

RETURN allstr;

时间: 2024-10-11 14:52:01

浅谈MES的通用设计之二:工艺参数的下载的相关文章

【开源】浅谈Hybrid技术的设计与实现第二弹

前言 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) PS:据说加个开源在前面阅读量高点,于是就试试咯...... 上文说了很多关于Hybrid的概要设计,可以算得上大而全,有说明有demo有代码,对于想接触Hybrid的朋友来说应该有一定帮助,但是对于进阶的朋友可能就不太满足了,他们会想了解其中的每一个细节,甚至是一些Native的实现,小钗这里继续抛砖引玉,希望接下来的内容对各位有一定帮助. 进入今天的内容之前我们首先谈谈两个相关技术Ionic与React Nativ

浅谈Hybrid技术的设计与实现

浅谈Hybrid技术的设计与实现 前言 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本.高效率.跨平台等特性马上被利用起来形成了一种新的开发模式:Hybrid APP. 作为一种混合开发的模式,Hybrid APP底层依赖于Native提供的容器(UIWebview),上层使用Html&Css&JS做业务开发,底层透明化.上层多多样化,这种场景非常有利于前端介入,非

浅谈logo在PPT设计中的运用

在工业设计范畴,特别是产品设计中常常会提到“形式跟随功用”,也就是说产品的外型是树立在产品功用的根底之上的,同样道理,在PPT设计中则演化为“形式跟随内容”,就是说页面的美化设计是为了更好的将内容向观众传达. 为此我们总结了PPT设计的三个原则,即“图示化”,“图标化”,“图表化” 以“图标化”为例,所谓图标,就是具有指代意义的图形符号,具有高度浓缩并快捷传达信息.便于记忆的特性.应用范围很广,软硬件网页社交场所公共场所无所不在,例如各种交通标志…… 在用户界面设计范畴中则为图标的形式,包括程序

浅谈SAP Fiori的设计美感与发展历程

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[Fiori系列]浅谈SAP Fiori的设计美感与发展历程 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 最近一段时间比较忙,有很多读者的消息没有及时回复,公众号里消息回复有时长限制,而且超过时间就不能回复了,大家也可以选择在文章末尾留言,这样就不会有时间限制. 我在之前的文章推送里写了关于SAP Fiori的文

iOS开发>学无止境 - 浅谈MVVM的架构设计与团队协作

李刚按:本文是青玉伏案写的一篇文章.相信大家对MVC耳熟能详,MVVM可能听说的相对少一些,这一篇文章将会想你阐述MVVM设计,还有团队协作的经验分享.如果你也觉得不错,就分享一下吧! demo:https://github.com/lizelu/MVVM 今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 由 于本人项目经验有限,关于架构设

iOS开发之浅谈MVVM的架构设计与团队协作

今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人了. 说道架构设计和团队

浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)——requirejs + angular + angular-route>探讨了angular+requirejs的一个简单架构,这一篇继续来看看backbone如何跟requirejs结合. 相同地,项目架构好与坏不是说用了多少牛逼的框架,而是怎么合理利用框架,让项目开发更流畅,代码更容易管理.那么带着这个目的,我们来继续探讨backbone. 首

浅谈特定型人工智能设计

之前写了一篇<从AlphaGo谈通用型人工智能设计>的文章,里面谈了通用型人工智的设计架构.之后就有人问我特定型人工智能是怎么做的,因为自己做过图像识别和语音识别两个人工智能项目,有点小小的经验,所以今天就根据这两个人工智能项目,来谈谈一般的特定型人工智的设计和设计要求.再强调一下,特定型人工智能的需求多种多样,具体的实现方法也各有不同,这里只根据本人做过的人工智能项目,讲一讲设计特定型人工智能的基本要求和设计思路,不保证适用其它人工智能领域,也不涉及编码.其实架构和思路明确了,怎么编码,用什

浅谈Hybrid技术的设计与实现(转)

前言 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本.高效率.跨平台等特性马上被利用起来形成了一种新的开发模式:Hybrid APP. 作为一种混合开发的模式,Hybrid APP底层依赖于Native提供的容器(UIWebview),上层使用Html&Css&JS做业务开发,底层透明化.上层多多样化,这种场景非常有利于前端介入,非常适合业务快速迭代,于是Hybri