一种串口设备和以太网设备的数据交互方法技术

技术编号:13419250 阅读:48 留言:0更新日期:2016-07-27 18:08
本发明专利技术公开了一种串口设备和以太网设备的数据交互方法,将该方法运行在各类操作系统、单片机中,根据不同的系统平台、操作平台,本发明专利技术都可以使之相互通信,例如Linux系统中的串口和Windows中的以太网通信,单片机中的串口和Linux中的以太网通信。采用本发明专利技术将串口数据与以太网数据(基于标准Modbus协议)互相识别、流通,实现低成本下跨网络数据传输。

【技术实现步骤摘要】
一种串口设备和以太网设备的数据交互方法
本专利技术涉及数据交互领域,特别是涉及一种串口设备和以太网设备的数据交互方法。
技术介绍
目前Modbus通信通常采用以太网和串口两种形式。对于大多数基层设备而言,采用的是串口通信,而对于大多数带操作系统的设备而言,采用的是以太网通信。对于需要数据交互的两个设备而言,需要有一个统一的通信接口和通信协议。在现有技术下,如果两个设备的通信接口不一致,一个为以太网口,一个为串口,那么两个设备数据是不能流通的,没办法进行数据交互。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种串口设备和以太网设备的数据交互方法,将串口数据与以太网数据(基于标准Modbus协议)互相识别、流通,实现低成本下跨网络数据传输。本专利技术的目的是这样实现的:一种串口设备和以太网设备的数据交互方法,将串口端作为服务端时,包括如下步骤:1)创建以太网通信,获取以太网接收到的数据,并将以太网接收到的数据保存在以太网接收缓冲区中;2)判断以太网接收缓冲区中是否有数据,若以太网接收缓冲区中有数据,则将以太网接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入串口发送缓冲区中,继续步骤3);若以太网接收缓冲区中没有数据,则返回步骤1);3)判断串口发送缓冲区中是否有数据,若串口发送缓冲区中有数据,则将串口发送缓冲区中的数据发送至与串口连接的设备,继续步骤4);若串口发送缓冲区中没有数据,则返回步骤1);4)创建串口通信,获取串口接收到的数据,并将串口接收到的数据保存在串口接收缓冲区中;5)判断串口接收缓冲区中是否有数据,若串口接收缓冲区中有数据,则将串口接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入以太网发送缓冲区中,继续步骤6);若串口接收缓冲区中没有数据,则返回步骤4);6)判断以太网发送缓冲区中是否有数据,若以太网发送缓冲区中有数据,则将以太网发送缓冲区中的数据发送至与以太网口连接的设备,返回步骤1);若以太网发送缓冲区中没有数据,则返回步骤4)。在程序需要退出时,停止协议转换,停止以太网、串口接发数据,关闭以太网口,关闭串口。将串口端作为服务端时,将以太网接收到的数据保存在以太网接收缓冲区中,获取新的数据帧序列号。数据帧序列号是接收到以太网数据的ID号,在同一时段内,每个数据帧的ID是唯一的。在接收到以太网的数据后,将以太网数据内容转换成ModbusTCP/IP协议,在ModbusTCP/IP协议中前两个字节,即事务元标识符,也需要保存。根据以太网接收到的数据创建新的串口数据帧,创建新的串口数据帧时,数据部分需要去掉数据前部的事务元标识符、协议类型、数据长度。将该串口数据帧保存到串口发送缓冲器中。在根据以太网接收到的数据创建新的串口数据帧之后,存放到串口发送缓冲区的同时,将数据帧的序列号传递到串口信息中。串口接收到数据之后,根据序列号查找对应的以太网信息。将串口接收到的数据保存在串口接收缓冲区中。遍历串口信息中所有的以太网信息,查找出对应的当前数据帧序列号。根据串口接收到的数据创建新的以太网数据帧,创建新的以太网数据帧时,数据部分需要除去CRC校验,在数据前部增加事务元标识符、协议类型、数据长度。将该以太网数据帧保存到以太网发送缓冲区中。采用本方法可以使得多个串口设备可以与一个或多个以太网设备进行通讯。一种串口设备和以太网设备的数据交互方法,将串口端作为客户端时,包括如下步骤:1)创建串口通信,获取串口接收到的数据,并串口接收到的数据保存在串口接收缓冲区中;2)判断串口接收缓冲区中是否有数据,若串口接收缓冲区中有数据,则将串口接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入以太网发送缓冲区中,继续步骤3);若串口接收缓冲区中没有数据,则返回步骤1);3)判断以太网发送缓冲区中是否有数据,若以太网发送缓冲区中有数据,则将以太网发送缓冲区中的数据发送至与以太网口连接的设备,继续步骤4);若以太网发送缓冲区中没有数据,则返回步骤1);4)创建以太网通信,获取以太网接收到的数据,并以太网接收到的数据保存在以太网接收缓冲区中;5)判断以太网接收缓冲区中是否有数据,若以太网接收缓冲区中有数据,则将以太网接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入串口发送缓冲区中,继续步骤6);若以太网接收缓冲区中没有数据,则返回步骤4);6)判断串口发送缓冲区中是否有数据,若串口发送缓冲区中有数据,则将串口发送缓冲区中的数据发送至与串口连接的设备,返回步骤1);若串口发送缓冲区中没有数据,则返回步骤4)。在程序需要退出时,停止协议转换,停止以太网、串口接发数据,关闭以太网口,关闭串口。将串口端作为客户端时,将串口接收到的数据保存在串口接收缓冲区中,获取新的数据帧序列号,数据帧序列号是接收到串口数据的ID号,在同一时段内,每个数据帧的ID是唯一的。根据串口接收到的数据创建新的以太网数据帧,创建新的以太网数据帧时,数据部分需要除去CRC校验,在数据前部增加事务元标识符、协议类型、数据长度。将该以太网数据帧保存到以太网发送缓冲器中。在根据串口接收到的数据创建新的以太网数据帧之后,存放到以太网发送缓冲区的同时,将数据帧的序列号传递到以太网信息中。以太网口接收到数据之后,根据序列号查找对应的串口信息。将以太网接收到的数据保存在以太网接收缓冲区中,遍历以太网信息中所有的串口信息,查找出对应的当前数据帧序列号,根据以太网接收到的数据创建新的串口数据帧,创建新的串口数据帧时,数据部分需要去掉数据前部的事务元标识符、协议类型、数据长度。将该串口数据帧保存到串口发送缓冲器中。采用本方法可以使得多个串口设备可以与一个或多个以太网设备进行通讯。将以太网接收到的数据进行解析,提取数据部分后部的单元标识符、功能码、数据(即除去以太网协议内容,提取相对于以太网协议中的数据部分),转换成串口协议数据,将串口接收到的数据部分前部添加事务元标识符、协议类型、数据长度(添加的是MODBUSTCP/IP相对于MODBUS的头部信息),并除去数据部分的CRC校验,转换成以太网协议数据,参见图5。本专利技术的有益效果为:本专利技术所提供的方法可移植性高,适用范围广,且转换效率高,转换速度快。本方法可以实现于各类操作系统、单片机中,通过在现有的工控机等上运行设计的代码程序即可实现串口设备和以太网设备的数据交互,将串口数据与以太网数据(基于标准Modbus协议)互相识别、流通,实现低成本下跨网络数据传输。且采用本专利技术的方法可以跨平台通信,过程实现不复杂,成本很低,如果方法在PC机上运行,则只需要增加一个RS485串口通信卡(如果PC自带则不需要),实用性高。根据不同的系统平台、操作平台,本专利技术都可以使之相互通信。例如Linux系统中的串口和Windows中的以太网通信,例如单片机中的串口和Linux中的以太网通信。下面结合附图和具体实施方式对本专利技术作进一步说明。附图说明图1为本专利技术的串口端为服务端时的运行流程图;图2为本专利技术的串口端为客户端时的运行流程图;图3为本专利技术串口端数据处理运行流程图4为本专利技术以太网端数据处理运行流程图5为ModbusTcp/Ip的通讯格式与串口数据格式的对比图。具体实施方式实施例一参见图1、图3和图4,一种本文档来自技高网...

【技术保护点】
一种串口设备和以太网设备的数据交互方法,其特征在于,将串口端作为服务端时,包括如下步骤:1)创建以太网通信,获取以太网接收到的数据,并将以太网接收到的数据保存在以太网接收缓冲区中;2)判断以太网接收缓冲区中是否有数据,若以太网接收缓冲区中有数据,则将以太网接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入串口发送缓冲区中,继续步骤3);若以太网接收缓冲区中没有数据,则返回步骤1);3)创建串口通信,判断串口发送缓冲区中是否有数据,若串口发送缓冲区中有数据,则将串口发送缓冲区中的数据发送至与串口连接的设备,继续步骤4);若串口发送缓冲区中没有数据,则返回步骤1);4)获取串口接收到的数据,并将串口接收到的数据保存在串口接收缓冲区中;5)判断串口接收缓冲区中是否有数据,若串口接收缓冲区中有数据,则将串口接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入以太网发送缓冲区中,继续步骤6);若串口接收缓冲区中没有数据,则返回步骤4);6)判断以太网发送缓冲区中是否有数据,若以太网发送缓冲区中有数据,则将以太网发送缓冲区中的数据发送至与以太网口连接的设备,返回步骤1);若以太网发送缓冲区中没有数据,则返回步骤4)。...

【技术特征摘要】
1.一种串口设备和以太网设备的数据交互方法,其特征在于,将串口端作为服务端时,包括如下步骤:1)创建以太网通信,获取以太网接收到的数据,并将以太网接收到的数据保存在以太网接收缓冲区中;2)判断以太网接收缓冲区中是否有数据,若以太网接收缓冲区中有数据,则将以太网接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入串口发送缓冲区中,继续步骤3);若以太网接收缓冲区中没有数据,则返回步骤1);3)创建串口通信,判断串口发送缓冲区中是否有数据,若串口发送缓冲区中有数据,则将串口发送缓冲区中的数据发送至与串口连接的设备,继续步骤4);若串口发送缓冲区中没有数据,则返回步骤1);4)获取串口接收到的数据,并将串口接收到的数据保存在串口接收缓冲区中;5)判断串口接收缓冲区中是否有数据,若串口接收缓冲区中有数据,则将串口接收缓冲区中的数据进行协议转换,并将协议转换后的数据放入以太网发送缓冲区中,继续步骤6);若串口接收缓冲区中没有数据,则返回步骤4);6)判断以太网发送缓冲区中是否有数据,若以太网发送缓冲区中有数据,则将以太网发送缓冲区中的数据发送至与以太网口连接的设备,返回步骤1);若以太网发送缓冲区中没有数据,则返回步骤4);将串口端作为服务端时,将以太网接收到的数据保存在以太网接收缓冲区中,获取新的数据帧序列号,数据帧序列号是接收到以太网数据的ID号,在同一时段内,每个数据帧的ID是唯一的,在接收到以太网的数据后,将以太网数据内容转换成ModbusTCP/IP协议,在ModbusTCP/IP协议中前两个字节,即事务元标识符,也需要保存,根据以太网接收到的数据创建新的串口数据帧,创建新的串口数据帧时,数据部分需要去掉数据前部的事务元标识符、协议类型、数据长度,将该串口数据帧保存到串口发送缓冲器中,在根据以太网接收到的数据创建新的串口数据帧之后,存放到串口发送缓冲区的同时,将数据帧的序列号传递到串口信息中,串口接收到数据之后,根据序列号查找对应的以太网信息,将串口接收到的数据保存在串口接收缓冲区中,遍历串口信息中所有的以太网信息,查找出对应的当前数据帧序列号,根据串口接收到的数据创建新的以太网数据帧,创建新的以太网数据帧时,数据部分需要除去CRC校验,在数据前部增加事务元标识符、协议类型、数据长度,将该以太网数据帧保存到以太网发送缓冲区中。2.根据权利要求1所述的数据交互方法,其特征在于:将以太网接收到的数据进行解析,提取数据部分后部的单元标识符、功能码、数据,转换成串口协议数据,将串口接收到的数据部分前部添加事务元标识符、协议类型、数据长度,并除去数据部分的CRC校验,转换成以太网协议数据。3.根据权利要求1所述的数据交互方法,其特征在于:将以太网接收到的数据保存在以太网接收缓冲区中,获取新的数据帧序列号,创建新的串口数据帧,将该串口数据帧保存到串口发送缓冲区中;将串口接收到的数据保存在串口接收缓冲区中,遍历串口信息中所有的以太网信息,查找出对应的当前数据...

【专利技术属性】
技术研发人员:夏中山祁艳艳田波
申请(专利权)人:重庆川仪自动化股份有限公司
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1