叶亮亮 罗 敏 樊峻杉
(①湖北汽车工业学院,湖北 十堰 442000;②东风模具冲压技术有限公司模具分公司,湖北 十堰 442000;③东风设备制造有限公司,湖北 十堰 442000)
数控机床作为加工制造领域中关键的设备,在我国制造业中扮演着工业母机的角色[1-2]。数控系统是数控机床的控制核心[3],在数控机床的信息处理中起着中枢作用。世界范围内,数控系统种类繁多。其中,FANUC 数控系统是目前数控市场保有量最多的数控系统之一。传统的设备维护方式需要技术人员到达现场检测设备故障,受限于地理因素等影响,涉及时间和成本的浪费。随着远程监控和维护技术的发展,技术人员可以远程访问对设备进行故障分析,快速定位问题并提供解决方案,提高了维护效率[4-5],避免了一些不必要的交通和时间浪费,降低了维修和停机造成的成本。在FANUC数控系统中,PMC(programmable machine controller)主要具有输入/输出控制、报警管理以及设备状态监测等功能,是该数控系统的重要组成部分,是设备维护和故障点查找的重要参考和工具。因此,实现FANUC 数控系统PMC 远程访问具有不可忽视的重要性。
然而,FANUC 数控系统通常位于内部网络中,无法直接被外网设备远程访问。针对这类问题,许多研究着眼于通过内网穿透技术实现内网设备的远程访问,取得了良好的成果。白雪等[6]利用内网穿透技术实现了多个不同内网节点之间音频流数据点对点收发,取得良好的应用效果。阎汉生等[7]使用“花生壳内网穿透免费版”软件实现了免费通过广域网网址访问内网中的虚拟交互平台,并可正常操作Unity 3D 文件。李光明等[8]搭建了液压系统监控系统,通过内网穿透技术实现真正意义上的远程监控,旨在解决实际维护时人员不在现场导致维护效率低,从而影响生产进度的问题。吴景来[9]通过花生壳软件的内网穿透功能实现外网通过浏览器访问内网 RealHistorian 的工业组态控制界面,以解决固定IP 稀缺和费用较高的问题。
以上研究与应用均使用了内网穿透技术实现了内网设备或平台的远程访问,并取得了良好的效果,然而目前仍无研究将内网穿透技术应用于FANUC数控系统PMC 的远程访问。基于此,本文提出了基于内网穿透的FANUC 数控系统PMC 远程访问方法,详细阐述了通过4 种不同的内网穿透工具实现FANUC 数控系统PMC 的远程访问的方法。这些方法成本低,可应用于工业场景。
内网穿透的原理基于一种称为端口映射的技术。端口映射是一种通过将路由器上的公共IP 地址和端口映射到内部网络中的设备来实现内网穿透的方法。这样,外部网络上的设备就可以通过公共IP地址和映射的端口与内部设备建立通信连接。其原理如图1 所示。
图1 内网穿透原理
在局域网LAN1 中存在FANUC 数控系统A、B 和服务器S,局域网LAN2 中存在访问用户端C。原本用户和设备均位于NAT 之后无法实现互联互通,但因为云端设备M 的存在,使得这一目的成为可能,其关键之处在于LAN1 代理服务器S 和云服务器M 上的代理软件。以最常用的TCP 为例,代理服务器S 上的客户端软件可主动通过M 的公网IP 或域名向M 上的服务端软件发起请求并建立TCP 连接从而实现通信。通信建立后,客户端会向服务端发送消息注册代理配置信息,信息主要包含被代理目标的IP 地址和端口号以及云端映射端口号。M 上的服务端在接收到代理配置信息后,会开启一个新的Socket 套接字服务器用于监听,端口号为代理配置信息中所需要映射的云端端口号。那么,LAN2 中用户端C 便可通过M 的公网IP 加映射的端口号访问到LAN1 中指定IP 和端口的服务器应用程序。
FANUC 数控系统PMC 远程访问可以帮助实现远程监控、调试、程序编辑和故障排除等操作,提高生产效率,减少停机时间,并提供更灵活的生产管理。基于内网穿透的FANUC 数控系统PMC 远程访问的实现过程大致可以分为以下几个主要步骤。
(1)准备网络环境:在需要被访问的局域网中配置一个具有外网访问权限的网关。
(2)配置内部网络环境:在内部网络中设置一个服务器或主机(用于运行内网穿透工具客户端),与需要被访问的FANUC 数控系统处于同一局域网中,保证其稳定的网络连接。
(3)配置数控系统网络:正确配置FANUC 数控系统的网络设置,确保与内部网络中服务器的稳定连接。
(4)配置内网穿透工具:安装和配置内网穿透工具。设置端口映射/转发规则以及其他必要的配置,确保正确设置内部和外部网络的地址和端口。
(5)远程访问PMC:使用安装在远程PC 上的FANUC LADDER Ⅲ软件,在外部网络中连接到FANUC 数控系统的PMC。根据所选的工具,进行通讯配置。连接成功后,进行远程监控、编写和编辑PMC 程序,以及执行其他相关操作。
(6)安全性和保护措施:在配置内网穿透工具时,确保采取适当的安全措施,以保护PMC 和数控系统的安全性。
使用XHK716 加工中心为实验平台,数控系统为FANUC Serises 0iMate-MD,内网服务器电脑采用Windows11,64 位操作系统。基于内网穿透的FANUC 数控系统PMC 远程访问可以借助内网穿透软件和硬件工具实现。软件方面使用花生壳软件、NATAPP 和frp 等3 种软件实现内网穿透。硬件方面使用花生壳硬件盒子实现内网穿透。在进行内网穿透软件和硬件的配置之前,需要提前对需要被访问的内网中FANUC 数控系统进行通讯配置,按照以下步骤进行:
(1)将数控系统的通讯网络端口使用网线直接接入或者将数控系统自身的无线路由器采用无线中继的方式接入数控系统旁能够访问外网的路由器。路由器无线中继的步骤在此不详细讲述。
(2)将数控系统的IP 地址修改为与访问外网路由器的IP 地址相同网段,端口为FANUC 数控系统默认的8193。设置如图2 所示。数控系统通讯设置完成之后,操作“再启动”,通讯网络配置生效。
图2 数控系统IP 地址和端口号设置
(3)在远程访问过程中数控系统要始终处于开机和网络连接正常状态。
实验准备:花生壳客户端软件(包括手机客户端)、FANUC LADDER Ⅲ软件、内网服务器电脑或者手机、远程访问电脑、可以访问外网的路由器等。
花生壳软件的内网穿透原理就是利用花生壳的云服务器实现网络代理,从而实现端口映射功能。总体部署如图3 所示。具体配置步骤如下:
图3 花生壳软件方法总体部署
(1)在内网服务器PC 上,访问贝锐花生壳官网下载花生壳客户端软件,安装之后进行账号注册、实名认证后,贝锐管理平台会自动分配一个域名,该域名将被解析到一个公网IP。
(2)添加端口映射。如图4 所示,应用名称任意指定,映射类型选择TCP-普通TCP,外网域名默认为花生壳自动分配的外网域名,内网主机选填内网中FANUC 数控系统的IP 地址为192.168.1.5,PMC 连接的TCP 端口为8193,设置完毕,生成一个外网地址和端口:t490y52186.yicp.fun:46511。
图4 花生壳端口映射设置
(3)映射建立后,使用安装有FANUC 数控系统PMC 编程软件FANUC LADDER Ⅲ远程访问电脑,打开LADDER Ⅲ,依次点击TOOL-communicationnetwork address 进入通讯设置界面。设置方法如图5所示,其中Host 为外网地址,Port No.为外网端口。
图5 花生壳软件方法通讯配置
(4)点击setting,将上面添加的主机设备添加至连接使用设备处,点击connect,通讯成功,远端设备远程访问FANUC 数控系统PMC,可进行PMC 程序的在线上载、下载、监控和编辑等操作,与同处一个局域网内连接功能相同。连接成功日志如图6 所示。
图6 花生壳软件方法远程访问成功日志
实验准备:NATAPP 客户端软件、config.ini 文件(非必需)、FANUC LADDER Ⅲ软件、内网服务器电脑、远程访问电脑、可以访问外网的路由器等。
NATAPP 是基于ngrok 的反向代理软件,通过在公网和本地运行的Web 服务器之间建立一个安全的通道,因此本文利用NATAPP 进行内网穿透实现FANUC 数控系统PMC 的远程访问。总体部署如图7 所示。
图7 NATAPP 方法总体部署
具体配置步骤如下:
(1)完成上文数控系统侧的配置之后,即可进行NATAPP 的配置。访问NATAPP 官网,下滑网页会看到完全免费的免费隧道选项,点击立即注册,按照网站指引完成注册。注册完成后点击进入购买隧道,可以选择页面中的免费隧道,实名认证之后即可使用免费隧道,且一个注册用户可免费拥有2 条不同协议的隧道,一个是web 协议的隧道,另一个是TCP 协议的隧道。
(2)进行隧道配置。如图8 所示,输入本地需要被访问的FANUC 数控系统的IP 地址和端口号,其他信息可以选择默认。在网站后台,我的隧道处,可以看到刚才购买的隧道,取得authtoken。
图8 NATAPP 隧道配置
(3)运行NATAPP。在官网根据操作系统选择下载NATAPP 客户端软件,解压后得到NATAPP.exe。运行NATAPP 支持两种运行方式。
方式一:config.ini 方式。在网址https://NATAPP.cn/article/config_ini 下载Windows 系统的config.ini文件到刚才解压后的NATAPP.exe 同级目录,将第2 步得到的authtoken 填进去(其他地方都不填),然后保存。之后在Windows 下直接双击NATAPP.exe即可。
方式二:cmd -authtoken= 参数方式运行。 Windows下点击开始→运行→命令行提示符, 进入NATAPP.exe 的目录,①打开NATAPP.exe 所在的文件目录,复制该文件目录路径;②同时按下win+r,进入命令行;③键入cmd,回车,键入:cd点击鼠标右键粘贴复制的文件目录;④回车执行。进入NATAPP.exe 的目录,运行NATAPPauthtoken=934ced2e059789d7。运行成功如图9 所示。
图9 NATAPP 运行成功画面
(4)使用安装有FANUC 数控系统PMC 编程软件FANUC LADDER Ⅲ远程访问电脑,按照3.1中步骤3 所述步骤,进入LADDER Ⅲ连接配置画面,HOST 输入服务器地址: server.NATAPPfree.cc,Port No 输入NATAPP 运行界面内Forwarding 后的端口号43697,如图10 所示。
图10 NATAPP 方法通讯配置
(5)按照3.1步骤(4),利用NATAPP实现FANUC数控系统PMC 远程访问连接成功日志如图11 所示。
图11 NATAPP 方法远程访问成功日志
实验准备:WinSCP-5.19.2-Setup.exe、PuTTY.exe、frp_0.34.1_windows_amd64、frp_0.34.1_linux_amd64、FANUC LADDER Ⅲ软件、内网服务器电脑、远程访问电脑、可以访问外网的路由器、云服务器等。
frp 是一个用于内网穿透的高性能的反向代理应用[10],支持TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP 节点的中转暴露到公网。frp 主要由客户端(frpc)和服务端(frps)组成,服务端通常部署在具有公网IP 的机器上,客户端部署在需要穿透的内网服务所在的机器上。用户通过访问服务端的frps,由frpc 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。
WinSCP 是一款Windows 环境下使用的基于SSH 的开源文件上传客户端,本文借助WinSCP 将frp 配置文件放置在云服务器上。
PuTTY 是SSH、Telnet、Rlogin 和SUPDUP 网络协议的客户端程序,本文通过借助PuTTY 在云服务器上工作。
要使用frp 快速反向代理实现内网穿透功能,需要借助有独立IP 的虚拟服务器[11]。本文采用的VPS 主要参数为2vCore/2GB RAM/50 G SSD,操作系统为CentOS。国内的云服务器品牌有阿里云、腾讯云等,国外的有亚马逊AWS、Vultr、Linode等,本文使用的VPS 品牌为阿里云。总体部署如图12 所示。
图12 frp 方法总体部署
利用frp 作为内网穿透的工具进行FANUC 数控系统PMC 远程访问的步骤如下:
(1)在具有公网IP 的云服务器上部署frps,frps.ini 文件配置如图13 所示。图13a 使用了最简化的配置,设置了frp 服务器用户接收客户端连接的端口。
图13 frps 和frpc 配置
(2)在需要暴露到外网的内网服务器上部署frpc,frpc.ini 文件配置如图13b 所示,假设frps 所在服务器的公网IP 为47.96.143.186,local_ip 和local_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。
(3)将配置文件拷贝到想要访问内网服务的机器上,修改frpc.ini 文件,文件目录中的frpc.ini文件配置如图13c 所示。
(4)在云服务器上添加防火墙规则,打开8193和7000 端口的防火墙,使得远程可以访问8193 和7000 端口。添加防火墙规则如图14 所示。
图14 添加防火墙规则
(5)安装WinSCP 软件,安装好之后,打开WinSCP,新建一个新的站点,将云服务的IP 等信息填入,保存登录,将frp 软件中的frp_0.34.1_linux_amd64 文件直接拖拽至云服务器上。
(6)打开PuTTY,输入WinSCP 中的用户名root(默认)和输入WinSCP 中站点设置的密码,此时输入过程中不显示密码,输入完成后直接回车,进入云服务器中的文件目录,键入LUNIX 相关套接字进行文件访问,进入frps.ini 文件所在的文件夹目录。常用套接字列举如下:ll 为查看当前文件目录中的文件,pwd 为显示当前文件目录位置,cd为进入要访问的文件夹,chmod 为改变相关文件的访问权限。
(7) 查看frps 文件名前的文字, 需要rwxrwxrwx 权限,其中r 表示文件可读,w 表示文件可写,x 表示文件可访问,在putty 中,首先进入frps.ini 所在的文件夹,再执行chmod 777 frps,执行之后,文件frps 的文件访问权限就转变为rwxrwxrwx,表示文件所有者(Owner)、用户组(Group)、其他用户(Other Users)对文件的访问权限均是可读、可写、可执行,便可进入下一步的操作。
(8)执行./frps -c ./frps.ini,成功运行frp 服务器,打开服务器中设置的7000 端口。
(9)在需要暴露到外网的frp 服务器上,第一,打开frp_0.34.1_windows_amd64 的文件目录中,并复制该文件目录路径;第二,同时按下win+r,进入命令行;第三,键入cmd,键入cd 点击鼠标右键粘贴复制的文件目录;第四,回车执行;第五,执行frpc -c frpc.ini 命令,打开frp 客户端。打开成功如图15 所示。
图15 打开本地frp 服务器frpc 客户端
(10)在远程端想要访问内网服务的机器上,第一,打开frp_0.34.1_windows_amd64 的文件目录中,并复制该文件目录路径;第二,同时按下win+r,进入命令行;第三,键入cmd,键入cd 点击鼠标右键粘贴复制的文件目录;第四,回车执行;第五,执行frpc -c frpc.ini 命令,打开frpc 客户端。打开成功如图16 所示。
图16 打开远程端frpc 客户端
(11)使用安装有FANUC 数控系统PMC 编程软件FANUC LADDER Ⅲ远程访问电脑,按照3.1中步骤3 所述步骤,进入LADDER Ⅲ连接配置画面,HOST 为127.0.0.1,Port No 为8193。PMC 连接配置如图17 所示,远程连接成功画面如图18所示。
图17 frp 方法通讯配置
图18 frp 方法远程访问成功日志
实验准备:花生壳手机客户端软件、花生壳设备助手软件(重置花生壳硬件盒子时使用)、花生壳硬件盒子、FANUC LADDER Ⅲ软件、远程访问电脑、可以访问外网的路由器等。
花生壳硬件盒子是一款内嵌花生壳的智能网络设备,无需公网IP,无需路由设置复杂的端口映射,也无需在电脑上安装花生壳客户端程序。可远程通过电脑、手机等设备进行云端管理,远程操控映射及实时监控花生壳状态,无需到达现场。总体部署如图19 所示。
图19 花生壳硬件盒子方法总体部署
(1)接线。使用一根网线将花生壳硬件盒子硬件连接到一个可以访问外网网络的路由器或者交换机,接通电源,此时盒子状态灯会几种颜色交替亮起或者闪烁,最终白色常亮,表示花生壳硬件盒子已联网成功。
(2)激活。浏览器搜索花生壳管理,点击进入花生壳管理平台,在登录界面选择SN 登录,输入花生壳硬件盒子背面的SN,密码输入默认的admin,进入激活界面。使用贝锐花生壳管理手机APP,如果已有贝锐账号,可以用贝锐账号登录;如果没有贝锐账号,可以先注册再登录,或者使用微信授权登录。登录之后,进入“我的”右上角“二维码扫描”扫描激活界面的二维码。若登录的账号已实名认证并且未创建内网映射,可以选择该账户作为授权激活账户,若登录的账号已实名认证但已创建过内网映射,选择“生成新的子账号”作为授权激活账户,但是激活成功之后,新生成的子账号需要进行实名认证。使用未进行实名认证的微信授权登录,激活之后同样需要实名认证。如果花生壳硬件盒子激活异常,可以借助花生壳设备助手软件(可以点击网页登录页面右上角的设备助手下载)将盒子重置再尝试激活。
(3)创建内网映射。进入添加映射,参考图20所示添加新的映射,点击外网域名选项框选择默认分配的外网域名,此域名即购买花生壳硬件盒子分配的外网域名。填写需要被远程访问的FANUC 数控系统的IP:192.168.1.5,端口号:8193,点击确定,添加映射成功。添加映射后,查看映射信息,如图21 所示。
图20 添加新的映射
图21 映射信息
(4)远程访问PMC。将花生壳硬件盒子接入需要被远程访问的FANUC 数控系统同一局域网且具有外网访问权限的路由器,等待盒子状态灯变成白灯常亮后表示联网成功。使用安装有FANUC 数控系统PMC 编程软件FANUC LADDER Ⅲ远程访问电脑,按照3.1 中步骤3 所述步骤,进入LADDERⅢ连接配置画面。PMC 连接设置如图22 所示。其中Host 为外网域名,Port No.为外网端口。
图22 花生壳硬件盒子方法通讯配置
(5)按照3.1 步骤(4),利用花生壳硬件盒子成功实现FANUC 数控系统PMC 远程访问连接日志,如图23 所示。
图23 花生壳硬件盒子成功实现远程访问日志
花生壳软件、NATAPP、frp 和花生壳硬件盒子提供了简便易用的内网穿透工具和服务,可以帮助用户将外部网络请求转发到内部网络中的FANUC 数控系统实现PMC 远程访问的功能。这些工具和服务通过配置端口映射规则,将外部请求发送到指定的设备和端口,从而实现内网穿透的目的。表1 就花生壳软件、NATAPP、frp 和花生壳硬件盒子之间的区别以及它们在安全性、经济性、操作便利性和部署难易程度方面的优缺点进行对比阐述。
表1 4 种方法对比
总体而言,这些工具和服务在安全性、经济性、便利性和部署难易程度方面有所不同。花生壳软件、NATAPP 和花生壳硬件盒子适用于非技术用户,提供简单易用的图形界面,而frp 则提供更灵活和高级的功能,但需要一些命令行配置和技术知识。花生壳硬件盒子是一种基于硬件的解决方案,配置完成后不需要在内部网络中的服务器电脑中运行相关工具的客户端软件,将花生壳硬件盒子接入内网路由器上即可能够实现远程访问。而花生壳软件、NATAPP 和frp 需要作为内网服务器的电脑开机运行相应工具客户端才能实现远程访问。花生壳软件有移动端APP,当移动端设备连接到内部网络内后,登录移动端APP 同样可以实现远程访问。用户可以根据自己的需求和技术水平选择最适合的工具或服务。
为了实现FANUC 数控系统PMC 远程访问,本文提出了基于内网穿透的FANUC 数控系统PMC的远程访问方法。
(1)详细介绍了花生壳软件、NATAPP、frp和花生壳硬件盒子等4 种内网穿透工具实现FANUC数控系统PMC 远程访问的步骤和配置方法,并对4 种方法进行了对比,为FANUC 数控系统PMC 的远程访问的实现具有一定参考和指导意义,具有较强的实际使用价值。
(2)本方法适用于目前主流的配备以太网口的FANUC 数控系统,并且FANUC 数控系统能够通过有线连接或者无线中继方式连接到可以访问以太网的路由器上的场景。针对版本较老旧未配备以太网口的FANUC 数控系统PMC 远程访问的实现方法也具有一定的借鉴意义。