2.2.1 基本方法
STEP-NC数据的交换在理论上(参照STEP的实现方法)有四种方式:文件交换、工作单交换、数据库交换和知识库交换。文件交换是最基本的一种方式,即通过物理文件(ISO 10303—21)实现数据交换,是当前采用的方式。由于ExPREss本身不是一种实现语言,在实现具体应用系统时还必须将STEP—NC的ExPREss描述(ARM或AIM)映射
为程序设计语言(如c++,Java等,如图3),然后用程序设计语言实现sTEP-Nc数据的处理。图5以Rev01ved_flat(轴肩)为例,表示了利用Java实现对STEP—NC数据解释的基本方法。
2.2.2 应用参考模型格式物理文件接口方法
Weck[63针对sTEP—NC铣削工艺的ARM开发了一套翻译工具,利用c++实现了数控系统的STEP-NC接口(外部文件向内部数据的翻译)。其基本方法可以概括为:通过对ExPREss规范的编译生成基本的c++类和方法(对于兼容性要求较高的应用系统,一般需要专门的工具),然后通过c++类和方法实现对sTEP—Nc文件的读写和信息处理,最后转化为数控系统的控制数据。该方法代表了sTEP—Nc(ARM格式数控程序)翻译器的基本实现原理。文献[13]和文献[14]则基于这一基本方法分别实现了sTEfLNc程序的双向翻译。
2.2.3 应用解释模型格式物理文件的实现方法
如前所述,由于从ARM到AIM的映射,AIM格式的sTEpNc文件通常非常复杂,一般需要借助专门的工具进行处理。从sTEP的角度,标准数据存取接口(standard Data Access Interface,SDAI)是一种有效的方法,它是sTEP标准中定义的数据存取接口规范(IsO 10303—22)i目的是使产品数据的存取和管理与应用系统的具体结构相分离。换言之,只要产品数据模型的ExPREss描述一致,即便是不同的系统也可以实现信息集成。SDAI独立于编程语言,相当于一套抽象的应用编程接口(Aplication Programm Interface,API)规范和功能定义。用具体编程语言对应SDAI各个接口所定义的功能编制相应的接口函数,称为语言联编(1anguage binding)。目前可以与SDAI进行联编的编程语言有c,C++,Java等,但应用范围尚局限于设计领域。
为了降低STEP-NC数据处理的复杂性,伴随着AP 238的研发,美国的sTEP—Nc研发组定义了一些专用类,称为sTIx(sTEP Index library)。STIX是从sT-Developer丁M的ROsE库中扩展出来的一部分c++类,专门用于sTEP AP 238(Inte—grated-cNcLschema)数据结构的查寻。图6所示为利用STIX指针查寻AP 238文件的基本途径。基于这一方法,文献[15]利用STIX实现了从STEP—NC程序到数控车床内部数据的转换,文献[16]利用sTIx开发了一个STEP-NC铣削程序的解释器。
2.2.4 基于可扩展标记语言的网络化接口方法
为了便于STEP—NC程序的网上传输和对异构系统的集成,可扩展标记语言(eXtensible MarkupLanguage,xML)被用于STEP—NC程序的描述。文献[17]用MsxML 3.0作为xML翻译器,用visual C++实现了铣削数控系统对xML格式sTEP—Nc数据的接口;文献[18]则针对sTEP兼容式车削数控系统,重点研究了基于xML的数据处理技术;文献[19]则针对远程协同问题研究了STEPlNc应用系统的xML接口方法。XML是一种优秀的网络语言,它对推动sTEP_Nc的实施,尤其是基于STEP/STEP-NC的网络制造技术有着非常积极的意义。但值得一提的是,xML在sTEP_Nc中的应用只是数控程序的一种表现形式或者是应用系统的一种实现方式,是建立在STEP—Nc的ExPREss模型之上的,并非新的数据模型。Ex—PREss是一种强有力的产品建模语言;而xMI。虽然是一种十分成功的网络传输语言,但起初并没有考虑产品数据模型的特殊性,因而二者在语义方面颇具差异,将完整的STEP—NC数据模型从Ex—PREss向xML的映射仍然有很多问题需要解决。关于STEP/STEP—NC领域的xML接口基本方法请参阅IsO 10303—28(标准草案)。