APP下载

西门子840Dsl数控系统数据传输软件设计及实现

2022-05-30李庚森

电脑知识与技术 2022年10期
关键词:数控系统西门子嵌入式

摘要:该设计以现场应用为导向,通过比较西门子840Dsl数控系统数据传输软件的开发方式,基于SCP协议,设计了一种数据传输方法,通过西门子840Dsl免费公开的少量接口,以软件的方式解决了控制端与840Dsl数控系统的人机交互问题,并且在Visual Studio 2013环境下实现了840Dsl数据传输软件,达到了设计目标。

关键词:SCP协议;840Dsl;人机交互

中图分类号:TP301      文献标识码:A

文章编号:1009-3044(2022)10-0107-03

1 概述

在智能制造中,实现PC与数控系统正常运行所需要的各种系统参数和加工程序间的通讯,即通过程序的自动化方式将数控加工程序与工艺参数传送至数控机床是非常重要的一个环节,这也是对数控机床进行数据采集的基础。鉴于上飞公司零件加工中心装备了大量基于西门子840Dsl数控系统的各类机床,因此研究PC与西门子840Dsl数控系统的通讯交互是件非常有意义的工作。在目前PC与数控系统的通讯方式上,主要为CMI通讯方式(如图1所示) ,即由于西门子数控系统的封闭性,要实现PC端与其数据传输,每台数控设备需要花费一笔不小的许可证费用(3000元人民币) 向西门子公司购买与设备进行通讯的软件许可接口。在实现与西门子数控系统数据传输的环节上,基本上都要基于该接口来完成相关应用的开发,花费较大。针对PC与西门子840Dsl数控系统数据传输实现上产生较高经济成本的问题,在不违反西门子数控系统许可证条例的前提下,本文设计了一种基于WinSCP的数据传输方法,只需通过西门子840Dsl免费公开的少量接口[1],以软件开发的方式解决了PC端与840Dsl数控系统的数据传输交互问题,且不需要任何許可证费用,显著降低了智能制造成本。本文从CMI通讯方式和自行设计的基于WinSCP方式等两种方案对西门子840Dsl数控系统数据传输软件进行设计并予以实现。

2 CMI通讯方式

CMI通讯方式的全称为Create MyInterface,为西门子嵌入式控制器同时具有PLC的健壮性及PC的高速和开放性,可将控制功能、显示功能、工艺功能等集成于一个控制器中。西门子嵌入式控制器与PLC一样使用STEP 7组态软件进行组态和编程,支持所有的PLC编程语言。同时西门子嵌入式控制器提供了开放式开发包WinAC ODK以支持用户使用Microsft Visual Studio集成开发环境和C/C++/VB/C#等进行二次开发。由于普通PC机不能适应工业环境(温度范围宽、震动大、电磁环境复杂) ,所以西门子根据工业环境要求对PC硬件进行重新设计,推出了西门子嵌入式控制器。西门子嵌入式控制器分两个系列,一个是按照S7-300规格设计的S7-mEC(S7模块化嵌入式控制器),目前的型号有EC31;另一个是嵌入式工控机平台,目前有IPC427C套件和IPC477C套件。简单归纳,西门子嵌入式控制器在功能上相当于一台传统PLC加上一台PC机,在出厂时已预装好操作系统和WinAC RTX软件,这样在功能上相当于两个操作系统,一个是通用操作系统(Windows),一个是实时操作系统(WinAC RTX)。在Windows下开发程序需要Windows SDK(RTX SDK) 和集成开发环境(Visual Studio) 等相互配合。

WinAC RTX软件提供的基础开发包是RTX SDK(WinAC RTX即是使用RTX SDK开发的),结合Visual Studio集成开发环境可开发在RTX下运行的实时应用程序[1]。WinAC ODK则是提供了一些应用程序接口来使得用户开发的在Windows或RTX下运行的程序可以与WinAC RTX通信。如果要开发在Windows下运行且与WinAC RTX通信的应用程序,则需要Visual Studio集成开发环境和WinAC ODK。如果要开发在RTX下运行且与WinAC RTX通信的应用程序,则需要RTX SDK、Visual Studio集成开发环境和WinAC ODK。如果要开发在RTX下运行但不与WinAC RTX通信的应用程序,则只需要RTX SDK、Visual Studio集成开发环境。在RTX下运行的用户程序需要RTX Runtime的支持,RTX Runtime在WinAC RTX安装时已被安装,所以在西门子嵌入式控制器上运行用户开发的在RTX下运行的程序前不需要安装RTX Runtime。使用WinAC ODK时需要购买WinAC ODK开发授权,用WinAC ODK开发生成的应用程序的运行无需授权。WinAC ODK包含三种接口形式:CCX、SMX和CMI。使用CCX,可开发生成Windows下运行的dll文件和RTX下运行的rtdll文件。可以在WinAC RTX的PLC程序中先使用SFB65001创建CCX对象(dll文件或rtdll文件) 的实例,然后使用SFB65002(同步调用) 或SFB65003(异步调用) 来调用CCX对象,以扩展WinAC RTX的功能。使用SMX,可开发生成Windows下运行的.exe可执行文件和RTX下运行的.rtss可执行文件。这些可执行程序与WinAC RTX通过一个4KB大小输入和一个4KB大小输出的共享内存区来通信。使用CMI,可将WinAC RTX控制面板的功能(显示和切换WinAC RTX模式,读取诊断信息等) 集成到在Windows下运行的用户自定义组态画面中,如图2所示CMI授权许可接口,其中的实现,正是基于西门子数控系统数据传输方案之一的CMI通讯方式。

在开发基于CMI通讯方式的840Dsl数据传输软件之前,首先需要在840Dsl的PCU50及PC上安装西门子Create MyInterface软件,只有在这两个终端上均成功安装经过授权的CMI,其后才能在PC上开发基于CMI的数据传输软件,其软件安装环境架构如图3所示。这样在启动机床端PCU的SINUMERIK Operate时,Create MyInterface也会同时启动[1]。

在对PC端的CMI进行相应配置后,即可进行840Dsl数据传输软件的开发。PC和SINUMERIK控制器之间的通信是利用远程过程调用(RPC) 的概念来传输较小量的数据。在通过RPC进行通信过程中,PC端必须知道从中处理RPC的通信对象,这些机器(PCU) 的名称必须存储在PC中,这些都是通过函数中的参数给出,参数是作为RPC组件传输的数据。在开发时,机床端PCU也可以使用此RPC调用来请求PC端状态数据,其函数为T_MACHINE_H(Host,Machine,OrderNum)。例如,当有工件被装夹进机床后,西门子SINUMERIK控制器就会将机器状态数据发送到PC,由PLC启动。根据数据,PC端识别哪个工件夹具已在机床内装夹完毕,并传送该工件夹具的程序发送给机床PCU。在每种情况下PC端都会传输和选择下一个NC程序。然后,PLC可以啟动NC程序(在有人或无人主计算机模式下) ,PCU通过机器状态数据报告PC端数控系统启动和数控系统结束等[2],该交互流程如图4所示。

在上述PC端与PCU端交互流程的基础上,该数据传输软件的设计也就已经完成,在这总结设计流程如下:在双方RPC/CMI启动后,当前PCU状态将自动发送到PC,并使用RPC调用R_MACHINE_H。如果RPC / CMI能够将RPC调用发送到PC端,则RPC会在内部将主机的状态记录为“在线”。如果RPC/CMI无法将RPC调用发送到主机,则内部状态将保持“脱机”状态。同时,应当注意的是,在双方建立RPC连接之后,在每次发送到PC端的RPC调用之后PCU会重新建立当前机器状态,并不断轮询PC端当前状态[2],其工作流程如图5所示。至此,基于CMI通讯方式的数据传输软件设计完成。

3 基于WinSCP的通讯方式

在进行基于WinSCP的通讯方式开发之前,首先介绍一下WinSCP,WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端,其同时支持SCP协议。而之所以选择WinSCP,就是为了使用其中的SCP协议。SCP协议,即Secure Copy协议,是用来定义“本地机器和远端机器之间”或者“远端机器和远端机器之间”传输文件的过程的协议,SCP协议基于SSH协议,它使用建立的SSH连接隧道作为数据传输通道,而SSH连接隧道是安全的,因而基于SCP协议的文件传输是安全的。

840Dsl支持网络传输,因此,可以通过SCP协议将数据参数等直接传入840Dsl的NCK内存中,优点是可以直接调用SCP协议,但需要进行软件设计开发,这里主要讲一下该方法的实现,而在实现过程中就需要用到如上所述的SCP协议。简而言之,SCP就是Secure copy,是用来进行远程文件复制的,并且整个复制过程是加密的。数据传输使用SSH协议,并且使用和SSH相同的认证方式,提供相同的安全保证。通俗来说就是通过具有安全加密的这样一种流程将文件传输到远程服务器(此处即为NCK) ,在此也可以看出840Dsl在网络安全上是有保障的。需要着重说明的是:基于SCP协议通讯的Winscp是完全开源的,也就是任何人都可以自由使用并修改,这为该传输软件的源代码级可靠性开发提供了基础。

本设计使用的开发环境为微软公司的Visual Studio 2013,基于WinSCP的数据传输软件开发步骤如下:首先,将840Dsl的NCU接入企业局域网,可以通过路由器或交换机连接到NCU的X130网络接口,并设置固定IP,机床边一般都配备有一台专用电脑负责传输程序及数据采集,也可以直接接入NCU的X127接口,此时不需要路由器或交换机;其次,在VS开发程序中添加并引用WinSCP即可,要注意的是生成的程序和下载的WinSCP文件必须放置在同一目录中。程序中的Session连接请选择SCP协议[3],IP地址设置为NCU实际网络地址,端口号22,账户密码根据实际设定。代码片段如下:

#region

sessionOptions.Protocol = Protocol.SCP;

sessionOptions.HostName = lingjianjiagong.Text

sessionOptions.PortNumber = 22;

sessionOptions.UserName = “user”;

sessionOptions.Password = “SUNRISE”;

#endregion

最后,平时用到的零件程序、子程序及工件等是存放在840Dsl NCK服务器的“/nckfs”路径下面。需要特别注意的是需要查询NCK的指纹验证码然后使用该验证码进行NCU验证登录,这地方还有一个重点就是“algorithm”即加密方式需要定义为“SHA-256”。根据如上开发方法,程序就可以连接到NCK的服务器,并可以正常上传下载文件了。但在往NCK的零件程序、子程序或工件下面传输文件时,有可能会失败,提示I/O erro。这是由于文件命名不正确所致,正确的文件命名格式必须是_NC_(文件名)_SPF(MPF),文件夹命名格式必须为_NC_(文件夹名称) _DIR。

根据以上所述开发步骤,基于WinSCP的数据传输软件设计思想如下:本软件主要由SCP协议、SSH协议以及传输程序等组成[3],其软件架构设计如图6所示。具体实施方式是使用基于SCP协议的Winscp开源代码库作为传输程序的链接库,在传输程序的开发中会话连接基于该链接库实现,同时SSH协议的算法加密方式使用“SHA-256”。将传输程序通过路由器或交换机连接到840Dsl系统中的NCU X130网络接口,或直接接入X127接口。至此,该数据传输软件设计完成。而该软件的实现工作主要集中在使用SCP通信协议建立起与840Dsl中的NCK通信规则,通过SCP协议可以直接将数据传输至数控系统NCU内部,同时在数据传输过程中使用与西门子系统相同的SSH安全协议[4],以避免可能的信息泄露风险,将840Dsl中的NCU通过路由器接入企业局域网中,通过开发基于SCP和SSH协议的数据传输程序[4],即可实现与840Dsl的数据传输交互,所开发软件界面如图7所示。

4 结束语

本文的研究工作探讨了通过程序的自动化方式由PC端将数控加工程序与工艺参数传送至840Dsl数控系统的设计方法,这在智能制造中特别是对提升数控机床的智能化管理控制水平具有重要的实际意义。

在设计过程中采用了两种方法,第一种为CMI设计方式,其特点是功能强大,开发效率高,能够与840Dsl数控系统进行完全融合,对机床相应参数均能做到采集,机床控制权限高。但每台机床需要花费一笔不小的许可费用向西门子公司购买CMI通信接口,这给大规模的企业应用带来了较大经济压力。第二种为基于WinSCP设计方式,自行设计了一种数据传输方法,通过西门子840Dsl免费公开的少量接口,通过软件的方式解决了与840Dsl数控系统的人机交互问题,其特点是免费,可以做到对机床数据传输及重要参数的采集。同时,针对第二种方式,在Visual Studio 2013[5]环境下开发实现了840Dsl数据传输软件,达到了设计目标。

参考文献:

[1] 西门子公司.SINUMERIK 840D840Di810D 工作准备部分 编程手册[Z].2006.

[2] 西门子公司.Sinumerik 840D SL简明调试手册[Z].2016.

[3] 谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008.

[4] 凯文R.福尔.TCP/IP详解 卷1:协议[M]. 2版.北京:机械工业出版社,2016.

[5] Nagel C.C#高级编程:C# 7 &.NET Core 2.0[M].李铭,译.北京:清华大学出版社,2019.

【通联编辑:谢媛媛】

收稿日期:2022-01-25

作者简介:李庚森(1981—) ,男,江西吉安人,工程师,硕士,研究方向为计算机视觉。

猜你喜欢

数控系统西门子嵌入式
基于西门子SMART系列PLC关于99套模具选择的实现
搭建基于Qt的嵌入式开发平台
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟
西门子 分布式I/O Simatic ET 200AL
西门子引领制造业的未来