首页> 中国专利> 一种基于树莓派技术实现在线远程控制的方法及系统

一种基于树莓派技术实现在线远程控制的方法及系统

摘要

本发明提供一种基于树莓派技术实现在线远程控制的方法,包括客户端接收用户指令,并将用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步基于以太网传输将modbus通信协议格式的传输数据发送给远端服务器;远端服务器接收客户端传输过来的modbus通信协议格式的传输数据并解析得到操作指令和/或控制指令,且进一步将所解析得到的操作指令和/或控制指令通过串口发送给串口设备;串口设备根据远端服务器发送的操作指令和/或控制指令,开启相应的端口来实现与客户端建立远程通信并被控。实施本发明,不仅能快速实现设备的在线远程控制,还能降低维护成本和投资成本。

著录项

  • 公开/公告号CN109600420A

    专利类型发明专利

  • 公开/公告日2019-04-09

    原文格式PDF

  • 申请/专利权人 吴基玄;

    申请/专利号CN201811341161.1

  • 发明设计人 吴基玄;吴平;

    申请日2018-11-12

  • 分类号

  • 代理机构温州名创知识产权代理有限公司;

  • 代理人陈加利

  • 地址 325000 浙江省温州市瓯海区温瑞大道999号华润悦府1幢902

  • 入库时间 2024-02-19 08:33:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-14

    授权

    授权

  • 2019-05-03

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20181112

    实质审查的生效

  • 2019-04-09

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种基于树莓派技术实现在线远程控制的方法及系统。

背景技术

随着以太网的飞速发展,网络传输技术在工业控制,医疗监控,智能化家居等各个领域中得到了广泛的应用。在传统的数据传输控制中,使用串行总线技术对于不同领域的现场设备难于进行集中网络化管理,控制手段单一,使得信息远距离传输困难,人工维护成本大,系统运行可靠性较低。因此,随着时代的发展这样的传输技术势必将会遭到淘汰,对传统现场控制总线进行升级迫在眉睫。

以太网以其高速的数据传输、可靠成熟的传输技术成为首选改造方案。当前,通过以太网传输数据来实现远程设备控制的方法有以下两种:(一)用具有内置以太网的设备取代传统的RS-232/RS-485设备来实现以太网传输数据监控的方法,但该方法从经济节约和资源利用的角度来说,昂贵且费时,显然不可取;(二)将RS-232/RS-485设备连接的计算机直接接入到局域网上来实现以太网传输数据监控的方法,该方法虽然可以实现近距离控制RS-232/RS-485设备,但在线远程监测和控制RS-232/RS-485设备将难以实现。此外,如果RS-232/RS-485设备连接的计算机发生故障,需要现场有工作人员进行人工监测和维护,不能达到远程监测和控制的目的。

因此,亟需一种通过以太网实现远程控制RS-232/RS-485设备的方法,可以自动地将RS-232/RS-485设备串口输出的RS422/485串行格式数据和以太网上传输的数据进行透明交换来实现RS-232/RS-485设备的在线远程控制,还能降低维护成本和投资成本。

发明内容

本发明实施例所要解决的技术问题在于,提供一种基于树莓派技术实现在线远程控制的方法及系统,不仅能快速实现设备的在线远程控制,还能降低维护成本和投资成本。

为了解决上述技术问题,本发明实施例提供了一种基于树莓派技术实现在线远程控制的方法,所述方法包括以下步骤:

步骤S1、客户端接收用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步基于以太网传输将所述modbus通信协议格式的传输数据发送给远端服务器;

步骤S2、所述远端服务器接收所述客户端传输过来的modbus通信协议格式的传输数据并解析得到操作指令和/或控制指令,且进一步将所解析得到的操作指令和/或控制指令通过串口发送给串口设备;

步骤S3、所述串口设备根据所述远端服务器发送的操作指令和/或控制指令,开启相应的端口来实现与所述客户端建立远程通信并被控。

其中,所述步骤S1具体包括:

所述客户端预设有所述远端服务器的IP地址和对应的端口号、与所述远端服务器连接的超时时间以及读写线圈寄存器的功能码及其对应的寄存器值;

接收所述用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步将所述modbus通信协议格式的传输数据写入读写线圈寄存器中;

待依据所述远端服务器的IP地址和对应的端口号,在所述超时时间之前与所述远端服务器连接后,将所述读写线圈寄存器的功能码及其写入的modbus通信协议格式的传输数据和其对应的寄存器值发送给所述远端服务器。

其中,所述步骤S2具体包括:

所述服务器预设读取所述读写线圈寄存器的地址及数量,并待所述读写线圈寄存器的功能码及其对应的寄存器值接收到所述预设的地址后,对所述读写线圈寄存器中写入的modbus通信协议格式的传输数据进行解析,得到操作指令和/或控制指令;

将所解析得到的操作指令和/或控制指令通过串口发送给所述串口设备。

其中,所述方法进一步包括:

所述远端服务器待接收到所述串口设备实现与所述客户端建立远程通信并被控后反馈回来的数据,将所述接收到的所述串口设备反馈回来的数据转发给所述客户端。

其中,所述方法进一步包括:

所述客户端将由所述远端服务器转发的所述串口设备反馈回来的数据进行显示。

本发明实施例还提供了一种基于树莓派技术实现在线远程控制的系统,所述系统包括客户端、远端服务器和串口设备;其中,

所述客户端,用于接收用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步基于以太网传输将所述modbus通信协议格式的传输数据发送给所述远端服务器;

所述远端服务器,用于接收所述客户端传输过来的modbus通信协议格式的传输数据并解析得到操作指令和/或控制指令,且进一步将所解析得到的操作指令和/或控制指令通过串口发送给所述串口设备;

所述串口设备,用于根据所述远端服务器发送的操作指令和/或控制指令,开启相应的端口来实现与所述客户端建立远程通信并被控。

其中,所述客户端包括:

预设模块,用于预设有所述远端服务器的IP地址和对应的端口号、与所述远端服务器连接的超时时间以及读写线圈寄存器的功能码及其对应的寄存器值;

数据接收编译及写入模块,用于接收所述用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步将所述modbus通信协议格式的传输数据写入读写线圈寄存器中;

发送模块,用于待依据所述远端服务器的IP地址和对应的端口号,在所述超时时间之前与所述远端服务器连接后,将所述读写线圈寄存器的功能码及其写入的modbus通信协议格式的传输数据和其对应的寄存器值发送给所述远端服务器。

其中,所述远端服务器包括:

接收及解析模块,用于预设读取所述读写线圈寄存器的地址及数量,并待所述读写线圈寄存器的功能码及其对应的寄存器值接收到所述预设的地址后,对所述读写线圈寄存器中写入的modbus通信协议格式的传输数据进行解析,得到操作指令和/或控制指令;

驱动模块,用于将所解析得到的操作指令和/或控制指令通过串口发送给所述串口设备。

其中,所述远端服务器还包括:

数据监测及转发模块,用于待接收到所述串口设备实现与所述客户端建立远程通信并被控后反馈回来的数据,将所述接收到的所述串口设备反馈回来的数据转发给所述客户端。

其中,所述客户端还包括:

监测显示模块,用于将由所述远端服务器转发的所述串口设备反馈回来的数据进行显示。

实施本发明实施例,具有如下有益效果:

本发明基于树莓派技术,将用户指令编译成modbus通信协议格式的传输数据和以太网上传输的数据进行透明交换,使得远程服务器成为modbus通信协议中转的转发器及解析器,解析出驱动串口设备的操作指令和/控制指令,让串口设备开启端口实现与客户端在线远程通信及控制,不仅维护成本、投资成本、时间较低,而且执行率、可靠性及冗余性较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。

图1为本发明实施例提供的基于树莓派技术实现在线远程控制的方法的流程图;

图2为本发明实施例提供的基于树莓派技术实现在线远程控制的系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

发明人发现,Python脚本语言是一门可跨平台的(Windows,Linux,Mac os),面向对象的、解释型计算机程序设计语言,并且Python是一门开源语言,直接对开发人员开放源码。Python又被昵称为胶水语言,其原因是它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型,然后对其有特别要求的部分,用更合适的语言改写。比如某些程序对性能要求特别高,运算速度要求快,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

若将传统RS-232/RS-485设备连接的计算机基于树莓派技术设计,并基于以太网进行数据传输和交互可以带来很多好处,具体如下:

(1)将串口数据通过以太网传送不必重新设计原有的串口设备,不必对原有串口设备进行替换,降低了投资资本,节约利用了现有的串口资源;(2)原有串口设备中的监控控制程序也不必作任何的修改就能够快捷便利的将传统的控制总线送入流行的以太网通道;(3)容易增加多终端连接数、无需为每个串口设备内置以太网通信装置,节约成本、简化布线的复杂度;(4)数据经以太网传送,通信速度快,延长通信距离;(5)以太网建立以后,只要是和串口设备相连的计算机在同一个网段的工控机,都可对连接在此计算机上的远端RTU进行实时运行数据采集分析和远程控制,提高了系统的可靠性。

因此,发明人提出了一种基于树莓派技术并结合以太网来实现在线远程控制串口设备的方法。如图1所示,为本发明实施例中,发明人提供的一种基于树莓派技术实现在线远程控制的方法,所述方法包括以下步骤:

步骤S1、客户端接收用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步基于以太网传输将所述modbus通信协议格式的传输数据发送给远端服务器;

具体过程为,客户端预设有远端服务器的IP地址和对应的端口号、与所述远端服务器连接的超时时间以及读写线圈寄存器的功能码及其对应的寄存器值;

接收用户指令,并将用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步将modbus通信协议格式的传输数据写入读写线圈寄存器中;

待依据远端服务器的IP地址和对应的端口号,在超时时间之前与远端服务器连接后,将读写线圈寄存器的功能码及其写入的modbus通信协议格式的传输数据和其对应的寄存器值发送给远端服务器。

应当说明的是,Modbus通信协议是一种请求/应答协议,并且提供功能码规定的服务。Modbus功能码是请求/应答PDU(协议数据单元)的元素。Modbus通信协议是一种应用在应用层的报文传输协议,用于在通过不同类型的总线或者是网络连接的设备之间的客户机/服务器通信。目前Modbus通信协议的实现方式有以下三种:(1)各种介质(有线:EIA-422、EIA/TIA-485-A、EIA/TLA-232-E;光纤、无线等等)上的异步串行传输;(2)ModbusPlus,一种高速令牌传递网络;(3)以太网上的TCP/IP。本发明实施例是基于以太网是的TCP/IP传递数据。

在本发明实施例中,客户端作为主机,使用Modbus Poll选择设置好从机(即远端服务器)的IP地址和对应的端口号,设置好超时时间,用TCP连接从机。设置好功能码01进行线圈寄存器的读写,设置指定数目的寄存器值为1,经过TCP发送数据给树莓派上从机。

步骤S2、所述远端服务器接收所述客户端传输过来的modbus通信协议格式的传输数据并解析得到操作指令和/或控制指令,且进一步将所解析得到的操作指令和/或控制指令通过串口发送给串口设备;、

具体过程为,服务器预设读取读写线圈寄存器的地址及数量,并待读写线圈寄存器的功能码及其对应的寄存器值接收到所述预设的地址后,对所述读写线圈寄存器中写入的modbus通信协议格式的传输数据进行解析,得到操作指令和/或控制指令;

将所解析得到的操作指令和/或控制指令通过串口发送给串口设备。

在本发明实施例中,远程服务器作为从机,运行程序生成TcpServer,等待主机(即客户端)的连接。连接之后为TcpServer增加一个或者多个服务从机。设置接收客户端读写线圈寄存器的地址及数量,并从该地址中解析主机传递过来的modbus通信协议格式的传输数据,得到驱动串口设备动作的操作指令和/或控制指令。

步骤S3、所述串口设备根据所述远端服务器发送的操作指令和/或控制指令,开启相应的端口来实现与所述客户端建立远程通信并被控。

可以理解的是,远端服务器待接收到串口设备实现与客户端建立远程通信并被控后反馈回来的数据,将接收到的所述串口设备反馈回来的数据转发给客户端。此时,客户端将由远端服务器转发的串口设备反馈回来的数据进行显示。

对本发明实施例中提供的一种基于树莓派技术实现在线远程控制的方法的应用场景做进一步说明:

第一步、设置笔记本电脑为客户端,即Modbus主机;串口服务器为远端服务器,即Modbus从机;LED灯为串口设备。此时,笔记本电脑和串口服务器通过以太网远程连接,并配备相应的IP地址,LED灯通过串口服务器上的GPIO口与串口服务器相连。

第二步、在笔记本电脑中开辟二个线程,一个用于向串口服务器发送数据;另一个用于一直监听串口服务器发送过来的数据并显示;串口服务器也开辟两个线程,一个用于对笔记本电脑连接,接收笔记本电脑数据并发送给串口,实现客户端—串口的通信,并且也能够有多个客户端同时对串口服务器进行连接和数据传输;另一个线程用于监听串口设备反馈回来的数据,一旦接收到数据便向最近跟串口通信的客户端发送该信息,实现串口—客户端的通信。

(I)串口服务器的软件程序编写:在串口服务器中创建socket实例,获取树莓派的IP地址,绑定端口和IP地址,等待笔记本电脑连接。创建两个线程,一个线程用于对笔记本电脑请求的接收,每当有笔记本电脑请求连接便为该笔记本电脑创建线程,在线程中等待笔记本电脑的数据输入,一旦接收到数据便将数据发送给串口,实现client_to_serial。另一个线程实现实时监听串口设备发送数据,当该线程接收到串口设备发送的数据之后,便将数据发送给笔记本电脑,实现serial_to_client。

主要代码如下:

(II)客户端的编写,采用两个线程,一个线程用于向串口服务器发送用户输入的数据,另一个线程用于接收串口服务器发送过来的数据并显示。

主要代码如下:

第三步、通过笔记本电脑上的Modbus Poll经过TCP连接串口服务器,串口服务器程序中控制树莓派的GPIO口电平,从而实现远程连接树莓派上的串口服务器传输数据通过Modbus协议控制GPIO来驱动LED灯点亮或熄灭。

如图2所示,为本发明实施例中,提供的一种基于树莓派技术实现在线远程控制的系统,所述系统包括客户端1、远端服务器2和串口设备3;其中,

所述客户端1,用于接收用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步基于以太网传输将所述modbus通信协议格式的传输数据发送给所述远端服务器2;

所述远端服务器2,用于接收所述客户端1传输过来的modbus通信协议格式的传输数据并解析得到操作指令和/或控制指令,且进一步将所解析得到的操作指令和/或控制指令通过串口发送给所述串口设备3;

所述串口设备3,用于根据所述远端服务器2发送的操作指令和/或控制指令,开启相应的端口来实现与所述客户端1建立远程通信并被控。

其中,所述客户端1包括:

预设模块11,用于预设有所述远端服务器2的IP地址和对应的端口号、与所述远端服务器连接的超时时间以及读写线圈寄存器的功能码及其对应的寄存器值;

数据接收编译及写入模块12,用于接收所述用户指令,并将所述用户指令基于Python脚本语言编译成modbus通信协议格式的传输数据,且进一步将所述modbus通信协议格式的传输数据写入读写线圈寄存器中;

发送模块13,用于待依据所述远端服务器2的IP地址和对应的端口号,在所述超时时间之前与所述远端服务器连接后,将所述读写线圈寄存器的功能码及其写入的modbus通信协议格式的传输数据和其对应的寄存器值发送给所述远端服务器2。

其中,所述远端服务器2包括:

接收及解析模块21,用于预设读取所述读写线圈寄存器的地址及数量,并待所述读写线圈寄存器的功能码及其对应的寄存器值接收到所述预设的地址后,对所述读写线圈寄存器中写入的modbus通信协议格式的传输数据进行解析,得到操作指令和/或控制指令;

驱动模块22,用于将所解析得到的操作指令和/或控制指令通过串口发送给所述串口设备3。

其中,所述远端服务器2还包括:

数据监测及转发模块23,用于待接收到所述串口设备3实现与所述客户端建立远程通信并被控后反馈回来的数据,将所述接收到的所述串口设备3反馈回来的数据转发给所述客户端1。

其中,所述客户端1还包括:

监测显示模块14,用于将由所述远端服务器2转发的所述串口设备3反馈回来的数据进行显示。

实施本发明实施例,具有如下有益效果:

本发明基于树莓派技术,将用户指令编译成modbus通信协议格式的传输数据和以太网上传输的数据进行透明交换,使得远程服务器成为modbus通信协议中转的转发器及解析器,解析出驱动串口设备的操作指令和/控制指令,让串口设备开启端口实现与客户端在线远程通信及控制,不仅维护成本、投资成本、时间较低,而且执行率、可靠性及冗余性较高。

值得注意的是,上述系统实施例中,所包括的各个系统模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号