2024年4月23日

汽车漫谈之汽车安全、汽车质量、汽车成本

最近有不少朋友与我谈起汽车相关话题,基于我有多年汽车制造行业相关经验,我想写篇漫谈类的文章,以普及一些基础知识。

主题是汽车安全、汽车质量、汽车成本,供大家购车、用车时参考。

首先谈谈汽车安全。

汽车安全分两大类,主动安全和被动安全。

所谓主动安全是指采取措施、尽量避免事故的发生;被动安全是指在事故发生后,尽量减小对人员的伤害。

被动安全的典型例子是轮式车身、安全气囊、安全带,评价一款车被动安全的客观标准是它的“车内乘员安全分指数”项碰撞成绩,G代表优秀。可以从中保研的网站上查询车辆的碰撞成绩。

从网上的车辆事故报道中,我们也可以了解到车辆的安全情况,车辆安全的特征是: 在碰撞事故后ABC柱无明显变形,驾驶室车门能打开,安全气囊打开。

在零件物料方面,为保障安全,通常需要车辆钢板有足够的厚度,重点部位有加强肋板或加强筋。

在装配工艺方面,有两个重要工艺对安全有重大影响: 车身钣金件焊接合格、致密、均匀,零件拧紧装配时合格、合理。

车辆品牌方面,沃尔沃是最注重安全的品牌。

车辆类型方面,SUV比轿车安全。

同品牌同类型车辆,一般而言车辆越重越安全。

比较而言,新能源车的电池安全是一个令人担心的点,不知道以后会不会有针对电池的碰撞或破坏测试。

主动安全近几年提得比较多,相关的车辆配置也较多,如ABS、ESP等。

评价汽车主动安全的客观标准是车辆的极限刹车距离。

汽车设计方面还有两个经典的主动安全设计例子: 汽车出风口打到挡风玻璃位置时会自动打开空调以提供除雾功能,后视镜往下翻会切换到炫目模式。

此外,司机的防御性驾驶也能够提升主动安全。


再来看汽车质量。

两大关键因素: 零件采购质量、整车制造质量。

通常在国内整车厂,一个零件会有两到三个供应商,既包括国际一流大厂,也包括国内二三流小厂,两者的质量水平、采购价格会有较大的差异。

而新厂、新车的制造水平有一个爬坡的过程。

因此,有一些厂商采用了以下的策略: 在前期产能较低,工艺水平相对低,采用国际一流大厂零件以保障零件质量; 在后期产能提升,工艺稳定,采用国内小厂零件以节约成本。

影响质量的因素包括人机料法环,人即人员(包括工人、工程师、管理人员),机即机器设备,料即零件及工具,法即法规(包括制造工艺流程和质量校收标准),环即环境如温度湿度地面平整度等。

以法为例,假设同一个代工厂为两个品牌制造同类型的产品,采用同一组人员、同样的设备、同样的零件、同样的制造工艺、同样的环境,但是A的验收标准高于B的验收标准,就会造成A的良品率低于B的良品率。


再来看汽车成本。

从厂家方面看来,汽车成本包括设计成本、制造成本、营销成本、售后成本,这些成本最终体现在车辆的销售价格和服务价格上面。

从消费者方面看来,汽车成本主要包括购车成本和用车成本。

近几年由于新能源车的发展,购车成本和用车成本比较以前都有了较大差异。

我的建议是从完整的用车周期考虑汽车成本。

购车成本包括裸车价、各项税费、补贴。比较而言,新能源车裸车价较贵,但是有补贴,而且在部分城市可以省下买车牌的钱。

用车成本包括: 加油或加电、保险、保养、维修、二手车保值率。

比较而言,新能源车加电比加油省钱得多,但是保险费较贵,保养费则较省。

维修方面,采用大压铸技术的车身维修费较高,雷达、摄像头、感应器越多的车辆维修费越高。也可以参考中保研碰撞成绩的“耐撞性与维修经济性分指数”,此项分数越低则维修越费钱,保险费越高。

保值率方面,新能源车比汽油车掉得快。

我们在购车前,建议理性地从用车周期完整地估算用车成本,从购车到弃车(报废或转让)完整地计算各项费用。


2024年4月8日

ARPG游戏三大要素:故事、情感、陪伴

我最喜欢玩的游戏类型是ARPG。

分析了几个我最喜欢的游戏,我发现了它们的共通之处:一个引人入胜的故事,一段动人心魄的情感,一段并不孤独的旅程。

RPG游戏的基础是故事,所谓角色,是为故事设计的,玩一个RPG游戏,就好比跟随主角穿越到一个异世界,体验一个异乎寻常的故事。为了这个故事,游戏会制作出一个与之配套的世界,以及在这个世界生活的NPC。此外,游戏通常会设计一个大故事与一个小故事,大故事是影响游戏世界与NPC的重大事件,而小故事与主角密切相关。如在《巫师3》中,大故事是白霜灭世的危机,而小故事是拯救女儿。大故事让我们沉浸入游戏世界,而小故事让我们与主角建立连接。

出色的游戏同样让我们在情感上建立连接。许多玩家在通关《巫师3》或《荒野大飙客2》时会有一种虚脱的感觉,这是因为他们与游戏的情感纽带连接得太牢固了,一旦脱离会觉得难以接受。让玩家在情感上付出,这是游戏建立沉浸感的另一个重要因素。比较而言,《地平线》同样也讲了一个好故事,但是我无法在情感上建立连接,因为主角与NPC的情感交互太少太浅,无法让在情感上打动我们。

单机游戏的玩家是孤独的,但是好的RPG游戏会安排一些NPC,陪伴我们走过这个旅程,如《生化奇兵3》的伊丽莎白是如此地生动,甚至于一些玩家在二周目打到海滩就停止了,好让她永远绽放在那个美丽的瞬间。那些在游戏史上留名的NPC,不仅在感情上打动我们,而且陪着我们一起做任务,一起度过这些难忘的旅程。为了加强玩家的情感体验,游戏甚至在一些特殊的时期强制玩家与NPC同伴分开,从而在重聚后让人更加珍惜与同伴的感情。

下图是我根据自己最喜欢的几个ARPG游戏做的一个表,体现了这3个要素的重要作用。




2024年3月13日

世界的本质是个草台班子

前一阵子的两件事,让我不禁感慨: 世界的本质是个草台班子。
第一件事是看到新闻说,波音公司因为政治正确赶跑了资深的空气动力学专家。
第二件事是看韩国电影《首尔之春》,没想到军事行动也可以这么草率。

回想我职业生涯的经历,似乎也可以作为这个结论的佐证。

A公司是行业领袖,其MES系统被评为首批工业4.0灯塔工厂。但是在锦绣包装下面,也填充了不少烂稻草。我记得用户汇报过一个问题,其个工单的验证出错,我检查了工单验证的逻辑,发现了一个不可思议的SQL查询: 100多行的SQL,没有任何注释,没有格式,没有规范换行。我把这个SQL拆分成10多个视图,才逐渐理解了其中的逻辑,找到了问题所在。造成这个问题的根源是: A公司把开发外包给印度T公司,T公司非常注意文档的规范,但在代码层面放飞了自我。

B公司是行业的奠基者,需要将北美的生产调度系统引进中国,此系统的重点是PLC控制逻辑,基于AB PLC开发,而在中国工厂采用了西门子PLC,因此需要进行代码迁移。此外,北美PLC只控制一个工作站,而中国PLC需要控制多个工作站。B公司将迁移和本地化开发的工作开包给一家小公司。我建议搭建测试环境,以尽可能及早发现问题,但是项目负责人说不用,说人家是专业的,之前从没有这么做。结果上线部署的时候傻眼了:项目包太大,超出了PLC的容量。结果这件事情层层升级,最终由公司中国区CEO联系西门子中国区CEO,从别的客户手里暂时调用319F PLC,以解决容量的问题。最终项目交期超出了一个多月后才具备初步上线的条件。

C公司的安灯系统在业内非常知名,我接到的任务是借鉴其功能,将其实现并应用到中国工厂。我在考察C公司工厂时发现其用了软件PLC而不是通常的硬件PLC,也就是说其PLC功能是安装在WINDOWS PC上通过专用软件实现的,因此稳定性方面远不如硬件PLC,原因是项目包太大,普通PLC下载不了。得到其项目包后我才知道原因:有太多遗留设备需要兼容,相同功能不同产线采用代码复制的方式实现,所有I/O参数采用硬代码实现。我和同事研究以后,采用了以下的优化方案: 用符号寻址代替编号寻址,功能模块用配置的方式调用,I/O用配置表进行映射,用中间表+FC的方式做到功能模块的抽象实现,不同的产线调用相同的FC。经过以下优化后,项目包可以下载到硬件PLC,而且还有多余的空间存储调度系统的项目,并且能够缓存2小时的工单数据、生产记录。


2024年2月28日

Thingworx连接Access数据库

最近在研究Thingworx中连接Access数据库的方法。

PTC官方建议的方法是搭建Thingworx Edge,然后在Edge中安装ADO Service connectivity,此方法非常地烦琐,也缺少这方面的文档。

于是我另外尝试了几种方法。

方法1:通过SQL Server连接Access数据库。

SQL Server中可以通过Linked Servers连接外部数据库,如SQL Server、Oracle、Access等。

通过使用对应的Provider,可以将外部数据库映射到本地。

对于连接Access数据库,可以使用MS Office 12.0 Access DB Engine OLE DB Provider或Microsoft OLE DB Provider for ODBC Driver这两个Provider。

我测试发现ODBC的方式失败。

而在测试MS Office 12.0 Access DB Engine OLE DB Provider时我发现有2个限制:必须使用SQL Server正式版(Express版本失败),Access数据库不能使用密码。如果数据库没有此Provider则需要安装Microsoft Access Database Engine。

建立Linked Server之后,我们可以将Access的表映射到SQL Server的视图,这样处理之后就可以象本地的对象一样使用了。


方法2:在Access中连接SQL Server。

这个方法最简单,很容易实现,也支持 SQL Server Express。

缺点是只能单向从Access向SQL Server读写数据。

如果我们希望通过SQL Server查询Access中的数据,则需要在Access中编写查询语句,手动将Access数据同步到SQL Server,然后在SQL Server查询本地表。


方法3:通过Kepware ODBC Driver进行数据转换。

Kepware的ODBC插件能够将ODBC数据库中的数据直接转换成OPC Tag,结构为:表Tag Group >> 字段Tag Group >> 记录Tag。

如果我们仅仅是读写特定表、特定字段的特定行,则可以用这种方式从Thingworx中读写数据。

如果涉及到大数据量、较复杂的查询,则这种方式不合适。



2023年12月4日

Pico VR的高级玩法

 本文将以Pico Neo 3为例,介绍Pico VR一体机的高级玩法,包括但不限于:使用普通帐号播放爱奇艺电影、播放P站视频、玩节奏光剑歌曲、外接XOBX游戏主机、玩XGPU云游戏等。

1. 基本概念

目前市面上大部分的VR一体机是采用安卓系统的,Pico VR也是如此,而Neo 3最新的系统对应的Android版本号是10。

因此安卓设备(手机、平板、电视)上的应用理论上都可以安装到Pico VR上,只是并不一定100%兼容。

我们可以通过VR自带的浏览器去搜索、下载,然后用VR“文件管理”APP在“全部文件>Download”目录下找到下载的文件,然后进行安装。

VR自带的浏览器也非常强大,它自带3D VR视频的播放功能,如进入B站后,搜索“3D VR”就可以看到很多的VR视频,可以在线播放。

2. 观看爱奇艺、B站、P站视频

Pico VR支持“爱奇艺VR”APP,里面有大量的3D VR视频,但是需要开通VR专用会员,普通的爱奇艺会员是不支持的。

但实际上如果我们已经有爱奇艺会员,而且只是看普通2D电影的话,那么根本就不需要安装此VR版本的爱奇艺。

用浏览器进入爱奇艺网站,点击右上角的“客户端”,我们可以看到有移动端APP、PAD版APP、电视版APP(奇异果),这3个版本的APP都可以安装到Pico VR上,但是操作方式有所差异,对手柄的支持也不相同,我们可以把3个APP都安装尝试一下,然后找到最适合自己的那一个。

此外,我们还可以直接在VR自带的浏览器里登录爱奇艺网站,在线播放想看的电影。浏览器的地址栏有一个图标,点击可以在“电脑模式”和“手机模式”之间进行切换。

同样的道理,我们可以选择移动版、PAD版、电视版的B站APP。

我个人的最佳实践是用奇异果APP看爱奇艺电影、用移动版APP刷B站、用浏览器看B站的3D VR视频。

我们也可以用浏览器看P站的视频,P站有大量的4K VR视频,打开后选择VR模式,一般是180度、左右VR。但是需要科学上网工具,这里就不具体说明了。

3. 玩节奏光剑歌曲

节奏光剑是VR平台上最流行的应用,甚至可以说它支撑起了半个VR行业。

但是节奏光剑是Meta VR独占的。如果没有Meta VR设备,我们还可以通过PS VR玩,也可以通过电脑串流玩Steam版本,但是这样都需要额外的硬件和花费。

其实在Pico VR上有一个非常简单的办法玩到节奏光剑的歌曲。

首先我们购买“光之乐园”应用,它能够兼容节奏光剑的曲谱。

然后我们用浏览器打开这个网站:beatsaver.com,它是开源的节奏光剑曲谱共享网站,输入关键字搜索自己想要玩的歌曲,通常评分在80分以上的歌曲效果都是不错的,此网站还显示难度级别,还支持预览。点击下载图标,将歌曲下载到本地Download目录,但是文件格式是.zip的压缩包。

此时我们需要用ES文件浏览器APP将歌曲解包,从estrongs.com网站进行下载。

打开ES文件浏览器APP后,进入Download目录,选择歌曲文件>更多>解压到,将文件解压成一个文件夹,再将此文件夹复制或移动到节奏光剑的自定义曲谱目录,地址是:

Android>data>com.StarRiverVR.LightBand>file>CustomMusic,对应于节奏光剑里面的世界曲库>本地曲库>自定义这个位置。

4. 外接XBOX主机

经实测,我们可以将PC或XBOX的画面输出到Pico VR上,但是PS5不行,下面是具体的方法。

在京东上搜索“绿联HDMI转C”,购买HDMI转Type C数据线,HMDI口接主机,C口接VR充电口,连接后此线将被VR识别为视频输入采集设备。


然后我们在VR端通过浏览器搜索并安装“USB摄像头”APP,此APP通过采集主机通过HDMI传输的视、音频信号,支持1080P 30帧、720P 60帧,但略有延迟,经实测,玩FIFA23、RPG游戏非常流畅,但是玩FPS、赛车游戏延迟较明显。

由于此APP同时还采集音频信号,我们还可以将主机声音输出到蓝牙音箱。

5. 玩XGPU云游戏

我们也可以通过Pico VR浏览器直接玩XBOX XGPU云游戏,前提条件是:有XGPU帐号、有加速器会员。

具体方法如下。

首先我们下载XBOX GAME PASS APP,打开浏览器,进入B站,搜索“游戏早知道”用户,在其用户首页下搜索“game pass app下载”,在其动态下找到最新的XBOX GAME PASS APP下载地址,下载并安装此APP。

然后在UU.163.COM下载并安装UU加速器,安装后UU加速器将自动识别XBOX GAME PASS,手动将区服选择为“云游戏”,点击后加速器将自动定位到支持云游戏的区服,并进入 XBOX GAME PASS的首页及云游戏的分页。我们可以将XBOX手柄通过蓝牙连接到VR上,然后通过云游戏玩游戏。

经实测,玩FIFA23非常流畅,玩战地1也非常流畅,玩恐怖游戏如恶灵附身2也非常流畅,但是玩赛车游戏会有加载不及时的情况。

2023年4月25日

把REST API的JSON数据导入EXCEL

//Excel loads JSON data from REST API

//Data >> Get Data >> From Web >> Advanced Editor

let

    url = "yourAPIaddress",

    //Assemble Headers

headers = [

#"appKey"="yourAppKey",

#"Content-Type"="application/json",

#"Cache-Control"="no-cache",

#"x-thingworx-session"="true",

#"Accept"="application/json"

],

    //Assemble Input data

input1name = Excel.CurrentWorkbook(){[Name="Input1"]}[Content], //Input1 is the named range for parameter1

input1value = input1name{0}[Column1],

input2name = Excel.CurrentWorkbook(){[Name="Input2"]}[Content], //Input2 is the named range for parameter2

input2value = input2name{0}[Column1],

postData = Json.FromValue([dataType=input1value, durationFilter=input2value]),

//postData = Json.FromValue([input1="A", input2=123]),

//Post data

    response = Web.Contents( //post data

        url,

        [

            Headers = headers,

            Content = postData

        ]

    ),

    //Get result data

jsonResult = Json.Document(response),

//Get actual data list

QueryResult= Table.FromRecords({jsonResult}, {"rows"}),

//Expand rows

    ExpandRows = Table.ExpandListColumn(QueryResult, "rows"),

//Convert rows into flat Table

    QueryResultExpanded = Table.ExpandRecordColumn(ExpandRows, "rows", 

{"dateType", "duration", "createdon"}, 

{"dateType", "duration", "createdon"}),

    //Convert data type

#"Changed Type" = Table.TransformColumnTypes(QueryResultExpanded,{{"dateType", type text}, {"duration", type number}, {"createdon", Int64.Type}}),

    //Convert Datetime column

#"Added Custom" = Table.AddColumn(#"Changed Type", "createdon2", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [createdon]/1000))

in

    #"Added Custom"

2023年2月4日

《流浪地球2的中国味道-传承

今天二刷了流浪地球2,特意找的IMAX厅,找了个好位置,看到、听到了很多以前没有注意到的细节。

这里主要讲2点,一是MOSS这条暗线,二是中国味-传承。

现在我们都知道电影有3条明线1条暗线,明线分别是刘培强线、图恒宇线、周喆直线,暗线是MOSS线。在影片的结尾揭露了MOSS这条线,但其实这条暗线从头到尾都有贯穿,只不过MOSS线是通过画面和声音暗示的:每次MOSS要干涉人类的历史时,就会出现闪烁红色摄像头的镜头,就好像MOSS在呼吸,同时伴随着“咚...咚...”的背景音乐。这也是电影作为声光结合的艺术表现形式所特有的,剧情不白给,但是始终在提示、始终在推进。

另外在二刷时,我领会到电影特别有中国味道的原因之一:强调了传承这一特别有中国特色的文化。

中国人在讲文化时,特别强调传承,或者说薪火相传,这一点在3条线时都特别强调。

首先是刘培强线,他的故事体现了他与师傅的精神内核的传承,这一点让人想起第一部父子之间的传承。第一部讲述了儿子怎么理解父亲,最终传承了父亲的精神。而第二部则是师傅与徒弟之间的传承,或者说一代又一代人的传承。

而周喆直的线更加明显,是周与他的继任者赫晓晞之间的传承,强调领导人对责任的承担;此外,周的服装还让人想起周总理,暗示领导阶层从过去到未来的传承。

另外就是图恒宇与丫丫的传承,或者说实体人与数字人的传承。MOSS很早就有了自我意识,但是它始终以理性逻辑来思考一切;丫丫的接入让它对人性有了进一步的了解,但是丫丫毕竟还是一个孩子;而当图恒宇上传后,它对人性的理解更全面了。图恒宇为了孩子、为了人类甘愿牺牲自己,刘培强在选择地下城名额时把病重的老婆排在丈人的前面,周喆直在网络还没有完成恢复时决定点火,这些都是不符合理性的,但它们是合乎人性的抉择,正如希望从来不是理性的,但人类选择相信。所以MOSS说图恒宇是一个变量,在MOSS纯粹理性的分析时加入了一个人性的变量。图恒宇在上传后,做出了和实体人一样的抉择,这意味着从实体人到数字人的传承。


2023年2月2日

Thingworx Study of Thing Persistent & Logged

 

1      Study of Persistent

According to Thingworx help document:

(

Persist— If selected or set to true, each value change is persisted to the database. Persistent property database writes occur asynchronously to avoid deadlocks. While the property value is set immediately, the database write occurs asynchronously at a later point in time.

Updates and restarts do not affect queue processing.

)

The persistent data are stored in Table of property_vtq.

Each time the property value is changed, the related Database record will be Updated.

This Table only has 1 index of “id” & “name”, so Update operation will NOT require change of Index.

tallrain_0-1675304973242.png

 

 

As explained above, value change of persistent property triggers Update of property_vtq Table.

We need to check property feature before we set it.

For normal properties, it’s OK to enable it.

But for frequently changed properties(such as speed, temperature), it’s NOT recommended to enable it, otherwise there will be too many Update operations in Database, which will impact Database performance.

 

2      Study of Logged

According to Thingworx help document:

(

Log— If selected or set to true, the property value is automatically logged to a value stream when the data changes (based on the data change type).

)

And logged data are actually written into Thing’s linked Value Stream.

And for Value Stream:

(

ThingWorx value streams provide time series information about a Thing’s property values.

)

The data of Value Stream are stored in Table of value_stream, with Procedure of upsert_value_stream_entry.

Each time logged value changes, a new record will be Insert into value_stream Table.

The Table has 1 index of most columns, so the Delete operation will also trigger change of Index.

tallrain_1-1675304973251.png

 

 

The Value Stream is configured with a Persistence Provider during creation.

And for Persistence Provider:

(

In ThingWorx, value streams, streams, data tables, blogs, and wikis are data providers. Data providers are databases that store run time data. Run time data is data that is persisted once Things are composed and used by connected devices to store their data (such as temperature, humidity, or position). Model providers are used to store the metadata for the Things. Persistence providers are initially set to have one database for model providers and data providers, but administrators can separate them based on requirements.

)

Thingworx has Model Provider and Data Provider.

Model Provider is used to define models, it always use internal Database which is configured during installation.

Data Provider is used to store data, it can use internal Database, and it can also use external Database as second Data Provider.

tallrain_2-1675304973266.png

 

 

The Logged data are Inserted into value_stream Table.

The logging operation is very different than the other operations from perspective of Database.

In most cases, data are more Read(Select) and Less Write(Insert/Update/Delete).

But for value stream data, there’re more Write(Insert) and less Read(Select).

So it’s much better to setup 2nd Persistence Provider mapped to external Database, and use it to store Value Stream data.

PTC document link:

https://community.ptc.com/t5/IoT-Tips/How-to-set-up-a-second-Persistence-Provider/ta-p/820508 (How to set up a second Persistence Provider - PTC Community)

Any Database supports Thingworx installation can be used to build 2nd Persistence Provider.

Key note is that we must build all Thingworx build-in Database objects before we create new Persitence Provider inside Thingworx.

2023年2月1日

工业软件介绍系列之三:PLC与OPC

 PLC(Programmable Logic Controller,可编程逻辑控制器)是现代工业控制的核心。

下面简单介绍一下PLC的发展历程。
1968年,通用汽车公司招标新式设备,用于取代传统继电器,以提升产线调整、设备检修时的效率。1969年Modicon公司交付了其第一件PLC产品,并于1979年发布了Modbus通信协议。Modicon后来成为施耐德公司旗下PLC品牌。
此外,Allen-Bradley公司也参与了PLC的早期发展,其PLC后来成为罗克韦尔旗下AB PLC。
除了Modbus外,PLC流行的通信协议还有Profibus和Profinet。
Profibus在1987年由德国西门子等公司及机构所推动,Profinet继承自Profibus,并于2002年发布Profinet CBA标准。

接下面简单介绍一下OPC。
OPC是PLC与IT系统通信的桥梁,将PLC处理的数据转变成IT系统能够直接使用的变量。
OPC有两个发展阶段。
阶段1是OPC DA,OPC代指OLE for Process Control。
阶段2是OPC UA,OPC代指Open Platform Communications。
其中,OPC DA基于微软的OLE(对象链接与嵌入)、COM(组件)、DCOM(分布式组件)开发,于1996年发布最初版本。所以说,在工控领域,微软Windows是真正的生产力工具。
西门子等PLC大厂都有自己的OPC产品,但是现在最流行的是Kepware公司的通用OPC Server,其兼容大多数主流型号的PLC。Kepware于1995年成立,于2016年被PTC公司收购。

这篇短文又出现了施耐德、罗克韦尔、西门子、微软、PTC等行业大公司的身影,而且我们还看到,最适合中国工业软件厂商学习的PTC,也在通过收购Kepware来介入物理世界,以巩固自己的基础。

工业软件介绍系列之二:谈谈PLM

 PLM全称是Product Lifecycle Management,即产品生命周期管理。

为什么要专门定义一个系统来管理产品生命周期呢?
如果说CAD的基础是数学,有大量的算法,那么PLM主要是提供了一种工具,来实现精细化管理。

PLM的核心功能包括:
1. 产品的主数据,如名称、版本、类型、生效日期、失效日期。
2. 产品的状态或生命周期。
3. 产品的文档,如CAD模型、工艺文件。
4. 产品的相互关系即BOM。

在大型公司,不少产品面向多个地区销售,那么可能会执行不同的法律法规和质量标准,因此对应的零件会有差异,因而产品的BOM实际上是动态的结构。
产品的生命周期包括设计、验证、试生产、发布、失效等阶段,其对应的BOM也有差异。

在制造领域,就有EBOM、MBOM、PBOM、SBOM等。
EBOM是Engineering BOM,即工程BOM,体现了产品在工程上的结构。
MBOM是Manufacturing BOM,即制造BOM,体现了产品在制造上的需求,如区分制造件和采购件。
PBOM是Process BOM,即工艺BOM,将MBOM进一步细分到作业单元和设备,以及对应的工艺参数等,对应的系统有PTC Windchill MPMLink。
SBOM是Software BOM,即软件BOM,是需要在出厂前烧录入各控制单元的软件清单,对应的系统有PTC Integrity。

目前在国内汽车行业,应用最多的PLM系统是PTC Windchill和Siemans Teamcenter。
Windchill成立于美国,1998年被PTC收购并发布4.0版本,之后大约一两年发布一个大的版本。

而Teamcenter的故事大有不同。
Teamcenter的前身UGS,最初是United Computing公司的CAM产品,名为UNIAPT, 包含部分PLM功能,于1969年成立于美国加州。
1976年,麦道公司收购United Computing。
1991年,EDS公司收购麦道公司的系统集成组,包括United Computing,并将相关产品命名为Unigraphics Solutions。
2001年,EDS公司收购SDRC公司,组成Unigraphics PLM Solutions事业部。EDS的IMAN合并SDRC的Metaphase,更名为Teamcenter。
2007年,Siemens收购EDS,并将其PLM产品更名为Siemens PLM software。
之后,Siemens又陆续收购了Innotec、Vistagy、Elan、IBS等公司,以扩展其PLM产品线。

我们可以看到,Windchill是一个典型的美国软件公司的产品,而Teamcenter脱胎于CAM,是一系列各自发展的多个产品的组合,其面向不同行业有不同的解决方案。