2018年12月28日

PTC的数字化制造全家桶




大家知道PTC是著名的CAD软件公司,其拳头产品Pro/E(现命名为Creo)在模具设计、汽车发动机和零部件设计中得到了广泛应用。
但是近几年来,特别是在14年后收购了ThingWorxKepware之后,PTC越来越多地进入制造运营过程。
现在我们看看它的产品矩阵。
CAD/设计:CREO parametric(Pro/ENGINEER)
CAE/分析:CREO simulate(Pro/MECHANICA)
PLM/产品生命周期管理:Windchill
ALM/软件生命周期管理:Integrity
MOM/制造运营:ThingWorx
SLM/服务生命周期管理:Servigistics
这些产品覆盖了设计、制造、售后的完整过程。
在制造方面,ThingWorx3大产品组成:ThingWorxKepwareVuforia,这3大产品分别收购自不同公司,最后统一整合到ThingWorx平台和解决方案下面。
这其中,ThingWorx是物联网开发平台,KepwareOPC服务器和物联网网关,VuforiaAR开发平台。
PTC的发展轨迹可以看到,PTC首先是一家设计解决方案供应商,然后才是一家制造解决方案供应商,也就是说先有数字化,再有制造。
这点和达索比较类似,先有CatiaSolidworks,然后借助收购Apriso进入MES领域。

下面重点介绍一下PTCThingWorx平台。
为什么要说ThingWorx是数字化制造全家桶呢?因为PTCKepwareVuforia都纳入ThingWorxa工业物联网解决方案了。
Vuforia是在AR/VR概念最火的时候收购的,主要是用于增加现场运维的体验。
Kepware大家都很熟悉,是应用最广泛的OPC服务器,借助其IoT Gateway可以很方便地搭建物联网网关。PTC给它另起了个名字ThingWorx Industrial Connectivity,然后在KepwareThingWorx之间建立了一个高速通信协议AlwaysOn,这样ThingWorx可以方便快速地从Kepware获取远程数据。
ThingWorx本身是一个开发平台和运行环境。ThingWorx借鉴了面向对象建模的理念,支持对象(Thing)、类(Template)、属性(Property)、方法(Service)、事件(Event),此外还提供一个SCADA开发和运行环境(Mashup)
ThingWorx通过Industrial Connection实现和控制层集成,通过Integration Connection实现和应用系统集成。
ThingWorx平台本身提供一个PostgreSQL数据库,也可以通过安装ODBC扩展库的方式,实现和主流数据库的集成。
此外,PTC还官方提供了一个Manufacturing App扩展库,包括:
Asset Advisor – 设备状态和属性监控
Control Advisor – 物联网网关控制台
Production KPIs – KPI运营看板
Alert Monitoring – 报警监控和处理
Trending and Troubleshooting – 趋势监控
Custom Plant Viewer – 工厂平面看板
Custom Asset Viewer – 设备综合看板
Custom Controls Advisor – HMI输入
Configuration and Setup – 工厂建模
基本上涵盖了SCADA的典型应用场景。
利用此扩展库,可以很方便地对一个小型工厂快速建模执行监控。

下面再具体谈谈ThingWorx平台的一些特点。
特点一:对Kepware的完美支持。你可以把ThingWorx看成一个OPC Client,无需借助任何编程,就可以对OPC TAG进行远程读写处理。
但是这里有一个限制。由于ThingWorx是面向对象的,任何一个属性必须指定对应的Thing,因此在进行常规读写的时候,必须要为每一个OPC TAG绑定ThingWorx.Thing.Property。因此TAG必须是静态的,如果要进行动态读写,则必须另外编写Service,调用Kepware REST Server进行读写。

特点二:对REST API的完美支持。ThingWorx平台创建的Thing/Template/Mashup等对象都可以通过REST API直接开放给外部系统,且可以直接点击查看属性、方法等。但这里也有一个限制,外部看到的接口已经没有了继承的信息,所以一些对象的属性、方法会非常之多。

特点三:实时数据存储非常方便。ThingWorx内建的ProgreSQL数据库主要包含2类数据:对象模型和业务数据,均采用NOSQL的数据结构,通常包括以下字段:模型(Stream)、数据引用对象(如某台机床)、时间戳、数据类型、数据名称(如某工艺参数)、数据值。这种方式和关系型数据库差异非常大。比如一台机床有多个参数,通常在关系型数据库中我们用多个字段记录,数据会记录在同一行内。但是在ThingWorx,每个参数对应一行记录。这种方式非常有利于对所谓实时数据的处理,如设备温度值始终在变化,而其它参数变化很少,那么用关系型数据库记录的话就会非常浪费,而用NOSQL记录的话只记录变化的字段,有效节省了存储空间,提升了查询效率。限制是,系统只记录当前各字段(属性)的关系,而所有历史关系则丢失了。因此如果有复杂的业务逻辑,还是需要用关系型数据库进行补充。

特点四:项目的组成部分关系松散。在开发项目时,所有的组成部分如ThingStreamMashup并没有一个严格的、层级明确的结构,而是通过Model TagProject Tag进行标记,因此较为分散,缺乏项目整体感。