2021年5月27日

沃尔沃ANDON系统介绍

沃尔沃是知名的豪华乘用车品牌制造商,它的工厂特点是:

- 质量标准高

- 单车利润高

- 车型少

- 生产节拍慢

ANDON呼叫系统是沃尔沃的核心车间管理系统,体现了沃尔沃质量第一、零缺陷的生产管理理念。当现场出现质量问题时,ANDON系统会自动通知生产线停线,直到问题解决。


1. 业务功能

沃尔沃工厂的应用系统由3个层次组成。

第1层是核心的生产执行系统,包括:

- GOB计划执行系统,相当于其它整车厂的MES。

- ANDON呼叫管理系统,集成了PMC设备监控、ANDON呼叫、AVI车辆识别、EPS防错功能。

- ATACQ质量执行系统。

- XPS零件追溯系统。

- SJC拧紧管理系统。

- VCATS车辆配置与检测系统。

- VD设备层接口

第2层是外围的工厂系统,包括:

- ARO订单管理系统。

- OHF计划管理系统。

- BIS车辆属性配置系统。

- CMP物料计划管理系统。

- PLUS库存管理系统。

- CHIMAS物料拉动系统。

- SBS工艺节拍平衡。

- API设备管理系统。

第3层是部署在集团的系统,包括:

- HERCULES销售商系统。

- PIE车载软件系统。

- QW90质量分析系统。

ANDON系统的功能主要包括:

1) 设备监控。

ANDON系统通过与线体PLC集成,从PLC采集设备运行状态、报警信息、故障信息、计划执行情况、车辆队列、产量、停线时间等。

2) 异常呼叫。

ANDON系统通过与拉绳、按钮、设备的集成,提供人工质量呼叫、人工物料呼叫、设备自动呼叫等呼叫方式,并通过柱灯、音箱、大屏等方式通知到责任人员。现场ANDON大屏同时也集成PMC的部分关键数据。

3) 车辆识别。

ANDON系统通过与RFID阅读器的集成,获取车辆VIN号,并从GOB系统获取车辆配置信息。

4) 防错集成。

在总装车间,ANDON PLC集成了RFID阅读器、编码器、传感器,从而通过计算得到车辆在流水线上的实时位置,为拧紧、打刻、加注、涂胶、试漏等工位提供车辆VIN号、车辆属性、工艺参数信息,用于指导设备进行操作;当作业完成后,设备PLC会向ANDON PLC发送作业结果和关键数据;如果作业失败,ANDON PLC会通知线体PLC停线。


2. 架构特点

图3.4-1是沃尔沃ANDON系统的架构示意图:

 


图3.4-1 沃尔沃ANDON系统架构


架构要点:

1) 在车间现场配置ANDON PLC,作为现场控制器。

由于业务逻辑复杂、兼容程序多、代码容量大,采用西门子WINAC作为主控PLC。WINAC是特殊的工业PC,使用WINDOWS操作系统,然后安装软PLC软件,组态到网络中后,在编程和使用上和硬件PLC没有区别。

2) ANDON PLC集成了RFID阅读器、编码器、传感器、拉绳、按钮、柱灯、播放器等现场硬件设施。

3) ANDON PLC通过VD实现和线体PLC、设备PLC、ANDON服务器、GOB服务器的通信。

VD是沃尔沃自己开发的一个现场通信层,能够实现和应用系统、OPC、PLC、拧紧枪控制器等系统和设备的通信。

4) ANDON服务器驱动现场ANDON大屏的显示画面。

5) 实时通信,参与现场控制,当防错失败时,会通知线体停线。


3. 架构优点

1) 可移植性好。PMC、ANDON、AVI、EPS等相关业务模块的代码经过封装,容易移植到新的项目。

2) 硬件、网络、画面等规范一致,采购和实施周期得到控制。

3) WINAC能够通过硬盘缓存大量的数据,因此防错需要的工艺参数可以提前从应用系统获取,以减少控制系统和应用系统的耦合性。


4. 架构缺点

1) 单个项目的PLC设备多,成本高。

2) 业务逻辑复杂,难理解。

3) 冗余代码多,由于要兼容旧版本的设计,PLC程序包里包含大量的各类设备控制程序。

4) 程序逻辑复杂,最核心的呼叫处理程序,包含了188个程序段和76个外部参数,引用时非常困难。

5) 由于采用WINAC,可靠性比硬件PLC差。


福特NGAVS介绍

作为第一个将流水线技术引入汽车工厂的汽车制造商,福特一直以来非常注意自动化技术的应用,而NGAVS等系统,就充分利用了IT相关技术,实现了业务系统和控制系统的高度集成。


1. 业务功能

NGAVS即Next Generation Automatic Vehicle Scheduling,即下一代自动车辆调度系统。

NGAVS主要实现以下业务功能:

1) 焊装车间计划的下发。系统自动将计划下发给发动机舱、前地板、后地板、左侧围、右侧围的线体PLC,PLC根据NGAVS队列执行抓料、焊接等作业。

2) 车型识别。PLC从RFID TAG读取VIN号,然后从NGAVS查询得到对应的车型信息。

3) 过站记录。PLC完成装配作业后,将VIN号和过站标识发送给NGAVS,NGAVS处理后转发给ERP系统(用于物料结算)和物流系统(用于物料拉动)。

4) 防错集成。在总装车间装配线的线头安装RFID阅读器,识别车辆后由NGAVS转发给防错系统,用于计算流水线上车辆的队列和实时位置,作为防错系统的计算依据。

5) 质量检查站集成。在质量检查站的前、后工位安装RFID站,NGAVS查询哪些车辆已经通过前一站尚未通过后一站,把符合条件的车辆队列转发给质量检查站,这样工人无需手动扫描VIN号就可以识别车辆。

6) 拉入拉出。通常在质量检查站后一站紧接着设置拉入拉出站。拉出是把存在质量缺陷或特殊标记的车辆从生产线上移除,用于判定、维修,从而不影响主线的正常作业。拉入是指将已离线的车辆,经维修等操作后重新送回主线。拉入拉出操作会更新主线的车辆队列,从而影响分装线的零件配套和物料的配送需求。

7) 质量门。在焊、涂、总三个车间的车辆移交点设置质量门,并通过PLC和升降梯集成。如在焊装车间,NGAVS通过RFID识别车辆,并查询得到其质量状态;对于正常车辆,通知PLC将其通过升降梯送入WBS;对于异常车辆,通知PLC将其送入维修区。

8) 安全门。在总装车间出口设置安全门,并通过和道闸集成,根据车辆的VIN号,查询得到车辆的质量状态、工单状态等,从而判断是否允许车辆进入商品车停车场、工艺停车场、路试区域。

由于历史原因,福特的工厂制造系统非常多,每个系统都有特定的应用领域,如:

- FIS, Factory Information System工厂信息系统,相当于其它整车厂的PMC系统,主要通过采取现场PLC数据,来实现对生产现场的监控,并通过车间大屏进行展示。

- EP, Error Proofing防错系统,提供拧紧防错、料架防错、加注涂胶打刻防错等。

- CDC II, Component Data Collection II零件数据采集系统,即通过扫描枪来采集零件的原始供应商序列号信息,主要用于追溯和召回。

- QLS VO, Quality Leadership System for Vehicle Operation整车质量领先系统,通过缺陷管理和分析来提升质量控制。

- SKS,Sequence and Kitting System序列和配套系统,用于物料准备。

- SMART,Synchronous Material Replenishment Trigger同步物料消耗触发系统,用于计算物料的消耗和拉动。

- eCATS, Electronic Customer Acceptance Test System电子化客户接收检验系统,用于总装车辆的自动化检测,如四轮定位、刹车、灯光、尾气等。

这其中,NGAVS和EP、QLS VO、SMART、eCATS都有集成关系。


2. 架构特点

图3.3-1是NGAVS的架构示意图:

 


图3.3-1 福特NGAVS系统架构


架构要点:

1) 由线体PLC集成RFID阅读器和传感器,并通过PN/PN Coupler和IT PLC集成。IT PLC作为NGAVS的现场控制器。

2) IT PLC通过PLC网关实现信息格式转换,并通过MQ服务器和NGAVS应用服务器通信。PLC网关采用了西门子工业PC,并安装ILS DeviceWise软件,此软件能够自动将PLC信息转换成JAVA消息队列。

3) 应用服务器用于业务逻辑处理、外部系统接口通信、触发装车单打印等。

4) 客户端主要用于配置和查询处理。


3. 架构优点

1) 由于采用了IT PLC,现场调度的核心代码部署在IT PLC上,对线体PLC的逻辑影响较小,实施风险小。

2) 由于通过PN/PN Coupler进行IT PLC和线体PLC的通信,通信效率高并且实时,数据安全有保障。

3) 无论系统应用层还是PLC执行层都采用了标准模块、标准代码,工厂实施时订制化工作量小,实施难度得到控制。


4. 架构缺点

1) 由于大量采用IT PLC和PN/PN Coupler,硬件成本高。

2) 相对于主流OPC Server,ILS DeviceWise是一个较新的软件产品,存在一定的技术风险。

3) 由于RFID不缓存数据,线体PLC要获取车型信息必须和NGAVS实时集成,形成紧耦合设计,对系统可用性要求高。


康明斯NGMES介绍

康明斯是全球知名的柴油发动机制造商,NGMES是其全球统一实施的MES系统。

NGMES基于Apriso FlexNet平台开发,由制造工程部门的业务专家、控制专家,和IT部门的技术专家进行联合设计,由Apriso公司顾问指导,由Tata公司技术人员进行开发。

NGMES基于康明斯发动机制造流程设计,由于采用了通用化设计,可配置程序较高,因此也适用于零部件制造工厂。


1. 业务功能

NGMES不包含机加车间业务,覆盖了缸盖分装线、发动机内装线、外装线、检测线的整体业务。

其业务模块包含计划管理、工艺管理、零件追溯、料架防错、拧紧防错、设备防错、质量管理、质量门、装配防呆等。

计划模块能够自动接收ERP工单,并生成序列号下发给上线工位PLC。

工艺管理模块提供工艺BOM配置功能,提供界面将物料BOM进一步拆分到装配工位、配料工位、拧紧工位、料架位置、装配顺序、图片地址等,为防呆防错提供依据。

零件追溯模块提供序列号、批次号追溯形式,可实时配置。

料架防错通过与PLC集成,在发动机到达时,通过发动机序列号自动识别零件在料架上的位置,并通过料架灯通知工人,工人在捡料后料架灯自动熄灭,并自动判断防错是否完成。

拧紧防错通过与PLC集成,在发动机到达时,通过发动机序列号自动识别拧紧枪号、拧紧次数,并通过拧紧枪控制器通知工人,在拧紧作业完成后,自动采集拧紧数据。

设备防错通过与PLC集成,自动向设备下发工艺参数,并收集操作结果数据。

质量模块提供了质量报警、问题检查、缺陷管理、短装管理、质量评审、维修管理、报废管理等功能。

质量门工位会检查质量状态是否合格、是否漏工位、是否漏装多装、是否检测不合格、是否评审不通过、是否有缺陷未清除。

工人使用的NGMES客户端界面通过与PLC集成,当发动机到达时,自动显示发动机的产品信息和质量信息,以及要装配的零件顺序、要扫描的零件清单、关键零件图片、问题清单,从而实现装配防呆的效果。

此外,NGMES通过消息队列服务器从ERP接收工单,从PLM接收物料BOM。

图3.2-1是其业务架构示意图:

 


图3.2-1 康明斯NGMES业务架构


2. 架构特点

如图3.2-1所示,NGMES的系统架构非常典型:

 


图3.2-2 康明斯NGMES系统架构


NGMES基于Apriso FlexNet平台开发,其核心模块是Process Designer,用于定义核心业务逻辑和流程,同时也是一个集成开发和调试环境,能够直接调用数据库函数和存储过程,能够直接和OPC通信。

为提高运算效率,有大量业务逻辑直接写在数据库里,然后通过Process Designer调用,然后进行类型转换、流程跳转。

为简化构架,应用服务器集成了DB Client、OPC Client、MQ Client、打印机服务器等功能。

由于客户端采用B/S架构,因此采用网络服务器实现负载均衡。由于Apriso FlexNet基于.Net框架,因此支持本地JS脚本和DLL调用,如人工装配工位的OPC Client直接部署在客户端上,从而实现了OPC通信的分布式架构。

NGMES的重大特点是高度可配置和界面一致性,大部分装配工位运行的是同一个程序,程序界面根据工艺配置自动生成,根据PLC信号自动刷新页面和进行握手。


3. 架构优点

由于界面一致性高,操作工上手非常容易,可使用相同版本的培训文件,对所有工厂的同户进行集中培训。

由于基于.Net框架开发,组件工具多,界面友好,再搭配大尺寸触摸屏,工人操作方便,形象很高大上。

由于所有工厂采用相同的程序包,可在项目实施前搭建演示和培训系统。

由于高度可配置,所有工厂80%的业务功能使用相同的核心代码,只有20%的订制开发,因此实施周期短,通常一个大型项目只要半年的实施时间。

由于所有工厂使用相同的代码,可在全球共享设计、实施、运维团队。


4. 架构缺点

由于可配置性高,这就要求核心模块要考虑各种各样的应用场景,如装配工位界面有考虑:有没有追溯件(如有是什么规则)、有没有料架防错、有没有拧紧防错、有没有质量检查、有没有质量报警、有没有零件图片、有没有短装检查,这样核心程序的流程跳转逻辑就变得非常复杂,非常难以理解,当现场出现问题时难以迅速找到症结。

同样的原因,造成OPC侦听进程较多,拖慢了OPC响应速度。

系统逻辑部分部署在Process Designer,部分部署在数据库中,这样提高了应用服务器的响应速度,减少了应用服务器与数据库之间的I/O,但是运维人员对模块的设计更难以理解。



ANDON背后的管理思想

在很多现代化生产制造企业内,ANDON系统是一个非常重要的管理子系统,具体业务分析可参考本人的文章《MES在汽车制造中的应用之业务篇(13) -- 安灯呼叫》。

本文从企业管理的角度出发,论述ANDON背后所体现的企业管理思想。

评价工厂综合能力的一个重要指标是生产效率,即工厂在单位时间内产出的产品数量,如汽车主机厂最重要的指标JPH是每小时产出的车辆数量。

那么要提高生产效率,主要有两种方式。

方式一,提高生产能力。方法有:通过工艺改进,改进设备的利用率;通过培训提高工人的技能;通过生产线节拍平衡,提高工厂的整体效率。

方式二,减少生产浪费。方法有:通过控制质量,减少产出不良品;通过班组长和工艺工程师支持,减少工人因技能不足造成的时间浪费;通过设备工程师支持,减少设备异常造成的时间浪费;通过物流部门支持,减少物料不足造成的时间浪费。

ANDON又叫求援系统,主要是通过获取援助来减少生产现场的时间浪费。

我们可以把工人和设备看成一线生产作业单元,因为工人和设备的作业时间、作业效率决定了工厂的整体作业时间、作业效率;而质量、工艺、设备、物流等部门是二线生产作业单元,这些部门通过对工人和设备的援助来间接地提升工厂的整体效率。

我们可以用军事术语做一个类比。

如果把一个生产任务当成一个作战任务,那么计划部好比参谋部,提前做好作战计划;物流部好比后勤部,兵马未动,粮草先行;生产经理好比前线指挥,负责执行作战计划;工人和设备好比兵和马,奋战厮杀推进阵地;班组长好比基层军官,协调指挥基层作战单元;设备部好比装备部门,兵有甲,兵有鞍,射手有箭,如此才有士气;质量部门好比督战队,确保作战原则。

有了这个类比之后,我们可以把ANDON求援这样翻译。

向班组长求援:班长,有人受伤,请求援助!

向工艺工程师求援:我部有损,不敌敌军,请求中军援助!

向质量工程师求援:兵心混乱,请求督战队弹压!

向装备部门求援:盔甲有损,请速修复!

向物料部门求援:粮草不足,速速支援!


Thingworx查看PDF和图片的方法

Thingworx提供了一个File Upload widget用于上传文件,文件存储在ThingworxStorage\repository目录。

我们可以利用Web Frame以实现对常用文件格式(PDF/JPG/BMP/PNG)的在线查看。

首先我们要理解Web Frame的原理,它相当于一个浏览器内置iFrame。

如果在一个Mashup内部使用Web Frame,那么Mashup对应的网页相当于主网页,而Web Frame调用的网页相当于一个内置网页,这两个网页有各自独立的进程。


下面介绍详细的配置和调用方法。

1. 设置Tomcat

编辑Tomcat 8.5\webapps\Thingworx\WEB-INF\web.xml,启用ClickjackFilterSameOrigin设置。

这部分的设置允许同一个域之间的网页进行相互调用。


2. 配置Thingworx PlatformSubsystem

Allow Request Method Switch = True

Filter Content Type = False


3. Web Frame URL调用格式:

https://<host:port>/Thingworx/FileRepositoryDownloader?download-repository=<YourThingWorxRepository>&directRender=true&download-path=/your_pdf.pdf

此处须注意:

1) Mashup和Web Frame的协议http/https必须保持一致,否则会被浏览器拦截。

2) download-path是文件所在文件夹的详细路径,如果有子目录,则须包含各级子目录。

3) 可以自己编写JavaScript Service,根据各项参数生成最终URL,然后绑定给Web Frame URL。

谈谈MES和ERP的差异

经常有网友问我MES和ERP的异同点,在这里我就谈谈个人的一些体会吧。

现代企业往往是哑铃型企业,即研发和销售两头大,制造过程中间小。

研发定义了产品的特点,销售将产品交付给最终用户,而制造过程将产品原型转变成实物。

从系统的角度来看,研发主要用PLM系统,销售主要用ERP系统,制造主要用ERP(计划、物流、采购模块)、MES、LES(物流执行)系统。

PLM和ERP针对的对象是一种/一类产品,如单价指的是此类产品在某段时间内的平均价格。

而MES不仅定义了某类产品的工艺过程,而且还要追溯到单件产品的生产过程,这是为什么呢?

前面说过,制造是将产品从原型转变成实物的过程,这个过程受到了人、机、料、法、环的限制。

人的方面,每个工人的知识、能力、熟练程度、身体素质都会存在差异,因此同样的生产过程,在不同的人操作时都会带来差异,从而影响产品的最终质量以及车间的生产率。

机器设备方面,也有品牌、控制系统、接口、使用时间、保养效果方面的差异,甚至同一批购入的机器也会有差异。

材料方面,有供应商、批次的差异,因此很多MES都有模块进行材料批次的追溯。

规范方面,MES可能包含一些动态的过程,如A工位检查间隙,B工位选择垫片,B就依赖于A的实际结果。

环境方面,有一些作业对环境因素(如温度、湿度)非常敏感,工艺过程需要将环境因素作为输入参数。

因此MES不仅要面对这些差异,而且要将这些差异进行量化管理。

另一方面,从企业的角度来说,PLM和ERP都非常强调产品的稳定,而MES则存在更多的变化和调整。

这是因为PLM和ERP管理的都是一种/一类产品。在PLM中如果产品有较大的变化,通常我们会创建新产品进行区分。而在ERP中如果产品有较大的变化,其在计划、采购等方面都会带来巨大的管理成本,因此ERP非常强调产品的稳定。

针对制造过程的考核指标主要是:质量、生产率、成本,这三者都要求生产部门进行持续地优化,而优化就意味着差异化、改变。

如质量优化的方法,就有改进工艺过程、提高检验标准。

生产率优化的方法,就有人、机、料、法、环的改进。

成本的降低,就意味着减少不必要的浪费和损耗,通常也包含工艺过程的改进。

因此在制造过程和MES中,差异化是不可避免的:不仅没有所有行业通用的解决方法,同一行业也会有相当多的差异,甚至同一企业内部、同一工厂内部,针对相同产品也要进行差异化管理。

这就是MES相较于ERP更为百花齐放的原因,也是大的MES系统通常自带集成开发工具,以满足用户差异化开发的原因。



SQL Server优化笔记 – 索引部分

1. 聚集索引

通俗地来说,聚集索引是表在新增数据时的排序方式。如字典以字母排序,小说以章节排序,历史书以区域排序等。

很多人以自增的ID主键作为表的聚集索引,这种定义能够满足唯一性要求,也不会增加索引碎片。

但是除了对表进行周期性处理外,在业务上我们很少把ID作为WHERE的条件,因为自增ID很少有业务含义。

相反,我们应该思考,在查询时,我们会利用哪个WHERE条件,把要查询的数据从一个非常大的数据集筛选出来。

例如,我们有一个OrderInfo表,存储了10年的工单数据,表里有ID(自增变量)、OrderNumber(工单号)、ScheduleDate(计划时间)、CreatedOn(创建时间)等字段。

在日常业务上我们通常只查询近3个月创建的工单,那么我们可以联合CreatedOn和ID这2个字段创建聚集索引(ID字段保证唯一性),在查询时我们总是带上WHERE CreatedOn > GETDATE() – 90这个条件,那么我们可以很快通过聚集索引定位到一个非常小的数据集。


2. 非索引列的定位

同样以OrderInfo表为例,假如我们为ScheduleDate创建非聚集索引。

如运行以下SQL,以获取计划时间为最近一周的数据:

SELECT

OrderNumber,

ScheduleDate

FROM OrderInfo

WHERE CreatedOn > GETDATE() – 90

AND (ScheduleDate BETWEEN GETDATE() AND GETDATE() + 7)

ORDER BY ScheduleDate;

我们可以看到用于筛选的2个字段CreatedOn和ScheduleDate都已经建立了索引,因此筛选速度很快。

但是在输出的2个字段中,ScheduleDate已有索引,而OrderNumber却没有索引,那么数据库是怎么定位的呢。

数据库在创建索引的时候,除了索引引用的字段外,还会包含一个隐藏的字段,即表的原始行号ROWID。

在此例中,ScheduleDate通过索引查找定位(Index Seek),同时得到ROWID,再通过ROWID得到OrderNumber的值(Cluster Index Scan)。

如果表的数据量大,那么Cluster Index Scan要扫描的记录数非常多,也要尽可能避免,改进的方式是针对要SELECT输出的字段都加上索引。

也就是说,不仅是WHERE字段、GROUP BY字段、ORDER字段要建立索引,SELECT字段也要建立索引,而且常用的查询要尽可能建立多个字段复合索引。


3. 类型转换

类型转换会使索引失效。这是很多人会犯的错误。

例如:

1) 日期和字符串转换

错误:WHERE CONVERT(VARCHAR, OrderDate, 111) >= '2011/06/01'

正确:WHERE OrderDate >= CONVERT(DATE, '2011/06/01', 111)


2) 大小写转换

错误:WHERE UPPER(FirstName) = 'ALICE'

正确:新建一字段并建立索引,在新增数据时,将UPPER(FirstName)值写入此字段,然后将此字段用于WHERE条件。


3) 字符串LIKE操作

错误:WHERE SalesOrderNumber LIKE 'SO43%'

正确的做法是从要比较的字段中拆出一个字段,在此字段中建立索引,然后在此字段中建立WHERE比较,符号为=或<>。


4) 数值运算

错误:WHERE UnitPrice * Qty > 10000

正确:创建计算字段ALTER TABLE ADD COLUMN TotalPrice AS UnitPrice * Qty,在此字段上建立索引。


4. 视图索引

视图上也可以建立索引,但是创建视图时必须包含WITH SCHEMABINDING。


机加工刀具的管理流程和系统设计

在机加工制造过程中,刀具是影响产品最终质量的重要因素,本文就谈谈刀具相关的管理流程和系统设计。

一个典型的制造企业是由研发和销售驱动的,研发定义了一款产品,来自销售部门的订单转化成生产工单,触发了将产品变成最终实体的制造过程。

工单包含了产品的物料BOM信息,即需要投入哪些物料。

在制造过程中,我们需要将物料BOM细化到工序、工位。如某产品物料BOM包含4颗螺栓A,在工位1由工人放置,在工位2预拧紧,在工位3终拧紧。我们可以看到多出了额外的信息,从BOM的角度来看,工位1:数量4,工位2:数量0,工位3:数量0。此类BOM属于工艺BOM的范围,在这里我们称之为1类工艺BOM,它的特点是各物料的总数和MBOM是一致的。

而在制造的过程中,还需要配合一些MBOM之外的设备及材料,如刀具、夹具、量具、试验台等。这些设备的物料或准备参数也是与产品相关的,但是不作为最终产品的一部分销售,因此不在MBOM中体现,在这里我们把相关的BOM称为2类工艺BOM。

产品的刀具BOM就是一个典型的2类工艺BOM。当机床需要更换加工产品时,往往我们需要更换及准备相应的刀具。

在管理刀具时,我们可以在2个层面进行管理:刀具组件和刀具零件。

刀具以组件的形式进行加工作业,但在采购和存储时也可以以零件的形式进行管理,因为共用件非常多,以零件形式运营可以减少库存和运营费用。

本文先以组件的形式进行介绍,之后再补充零件相关信息。

 



一个刀具的生命周期包括:买入、测量、使用、维修、报废等状态。

测量:由于刀具在使用后,刀头和加工件接触后会消耗一小部分,在物理形态上会有细微的变化,因而我们需要使用专用设备进行测量,具体数据会作为补偿值录入机床,以便在下次加工时得到所需的精度。

维修:刀头在使用一定的时间后,其锐度会降低,因此需要修刀,以恢复其锐度,以满足加工要求。

报废:刀具或刀头有一定的使用寿命,达到一定的加工时间后,刀具的强度降低,不能满足加工要求,否则会造成断刀,甚至进而造成加工件报废。

那么针对这些流程,假如我们需要设计一个刀具管理运营系统,需要考虑哪些因素呢?

首先看测量。测量设备(对刀仪)是精密仪器,对稳定性要求高,一般和机床不在同一个物理位置。测量设备输出的数据,需要录入机床HMI。因此有一个数据传输的需求。这个过程如果手工做的话,效率很低,也容易出错。

一些测量设备如Zoller支持通过网络传输数据,但是由于机床支持的传输协议、数据格式有一定的限制,且不同厂家的机床之间没有统一的标准,因此此项方法有一定的局域性,但是如果一个机加车间有大量的同型号机床、对刀仪,则可以联合供应商一起开发,这样做的效率是最高的。

还有一种方式是通过条码(一维码或二维码)来传输数据。我们可以在对刀仪输出测量报告时生成相关的条码,然后在机床HMI上扫描条码以录入数据,这样也可以减小数据输入错误的概率。

另有一种方式是通过RFID标签,详见下文。

维修可通过经验或测量进行判定。

报废或者说刀具使用寿命的判定非常重要,也有不同的管理方法。

一般来说,供应商在刀具出厂时,会说明其使用寿命。在加工时,我们需要对刀具的实际使用时间进行累加,当累加值大于使用寿命时,则需将刀具报废。

在设计系统时,我们尤其要考虑:实际使用时间的数据存储方式、累加的方法。

如果刀具固定安装在某机床上就比较简单了,我们可以定义一个规则,为每把刀具建立编号,并在机床系统里定义对应的系统变量。我们可以在程序中编写指令,当对应的加工程序完成时,自动将刀具变量累加。

如果刀具没有固定安装在某机床上,将必须能够让机床识别刀具的编号,此外需有一种可靠的方式存储其实际使用时间并且能够被机床识别。考虑到机床的工作环境,使用RFID标签是一种不错的选择。如巴鲁夫Balluff提供螺钉形式的RFID标签,安装在刀柄的一侧,我们可以在对刀仪电脑、机床电脑上安装RFID读写器,从而实现机床与对刀仪之间的数据传输,并且持续记录刀具的设定使用寿命和实际使用时间。

 


接下来我们再看一个更加精益的流程:综合刀具组件和刀具零件的方式进行刀具管理,即以刀具组件的形式进行测量和加工,但是以刀具零件的形式进行采购、存储、修理、报废。

从下图我们可以看到,一个刀具组件由以下零件组成:刀柄(Holder/Arm)、刀面(Face)、刀头(Insert/Cutter)。刀头起到实际上的加工作用,需要固定安装到刀面上,然后结合刀柄安装到机床上。这其中,刀面和刀柄都是非消耗件,只有刀头是消耗件。而且相同的零件可以被用到不同的刀具组件上。采用零件的形式进行管理,可以增加刀具的利用率,减少刀具的采购成本。

当刀具库房接到一个新工单时,需要根据工单展开得到刀具组件清单,并且进一步得到刀具零件清单,这里需要做2次BOM展开。此次,还需要将刀具零件组装成组件,然后将库房位置转移到机床。这里的操作与物流配送系统的Kitting及移库操作非常相似。

 




2021年1月28日

也谈“低代码开发”

 


有段时间,“低代码开发”成为一个热词,有很多大佬鼓吹,让不明真相的群众听得一愣一愣的,以为软件开发变得非常容易了。

Scratch和少儿编程班的流行,给很多人带来了“编程=拼积木”的印象。

而我的体会是,低代码开发仅仅降低了这个行业的入门门槛,但是对于大型软件工程来说几乎没有什么用处,甚至会降低效率。

比如我曾用过两个MES开发平台:Apriso Flexnet和PTC Thingworx。

我对Apriso Flexnet的最深印象是,用一整张A0纸打印出来的某个核心功能的引用逻辑。

Flexnet允许用图形化的方式来定义引用关系、触发条件,但是面对一个复杂的功能时,这些引用逻辑纵横交错,看图定位会让人抓狂。

Thingworx更为低代码,我对它的定位是轻量级的工业物联网应用开发平台,它能够以图形化的方式对数据、事件、触发条件进行映射,因此在开发轻量级的应用时非常方便。

但是在开发大型项目时会让人抓狂,如下图是某个功能的前端、后端引用关系: 



下图是某个核心函数的引用关系: 



从右上角的进度条可以看出,此函数绑定的数据、函数实在太多了,你甚至很难保证绑定到了正确的位置。在这种情况下,图形化的方式反而降低了效率。