Modbus通信内存优化方法、通信方法及相关装置制造方法及图纸

技术编号:35190667 阅读:24 留言:0更新日期:2022-10-12 18:09
本发明专利技术提供一种Modbus通信内存优化方法、通信方法及相关装置,包括:将Modbus主站中各个通信点的信息存储至通信点表的各个信息单元;遍历通信点表的各个信息单元,根据每个通信点对应的信息单元中各个字段的值,统计并分配与各个对端装置通信所需的每种Modbus数据模型的内存空间;根据Modbus数据模型的当前已统计的通信点个数和内存位置标记单元值,确定每个通信点在其对应的Modbus数据模型中的内存位置,并将内存位置填写到通信点对应的信息单元的内存地址字段,建立通信点的内存地址与寻址地址之间的映射。应用该方法,可以充分利用通信内存,并正确建立通信点的内存地址与寻址地址之间的关系。址地址之间的关系。址地址之间的关系。

【技术实现步骤摘要】
Modbus通信内存优化方法、通信方法及相关装置


[0001]本专利技术涉及数据处理领域,特别是涉及一种Modbus通信内存优化方法、通信方法及相关装置。

技术介绍

[0002]Modbus通信设计中,一般会为每种Modbus数据模型开辟相应的65536个数据项的内存存储空间,建立内存空间与通信寻址空间1比1的映射关系,方便Modbus数据项的存取。但是,实际应用中往往不会使用全部数据项,甚至只使用很少的数据项,这会使得内存空间被浪费了。尤其地,当系统要支持多路Modbus通信且每个链路上的通信数据项都不多时,若按最大值分配内存,则会造成内存资源耗费大而又大量被浪费的现象。为了节约内存资源,需要在Modbus通信设计中进行内存优化。
[0003]然而,现有技术中的Modbus通信内存的优化设计没有充分利用内存每一位的存储能力,而且没有正确建立优化后的内存地址与寻址地址之间的关系,从而容易影响到Modbus通信的正确工作。

技术实现思路

[0004]有鉴于此,本专利技术提供一种Modbus通信内存的优化方法,通过该方法,可以充分利用内存的存储能力,并正确建立内存地址与寻址地址之间的关系。
[0005]本专利技术还提供了一种Modbus通信内存的优化装置,用以保证上述方法在实际中的实现及应用。
[0006]一种Modbus通信数据内存优化方法,包括:
[0007]将Modbus主站中每个通信点的信息存储至该通信点对应的信息单元中,各个所述信息单元组成通信点表;其中,每个所述信息单元包括多个字段,各个所述字段包含功能码字段、内存地址字段和寻址地址字段;
[0008]遍历所述通信点表中的各个信息单元,根据每个所述通信点对应的信息单元中的各个字段的值,确定每个所述通信点对应的Modbus数据模型,并为与所述Modbus主站对应的各个对端装置通信所需的每个所述Modbus数据模型分配内存空间;
[0009]根据Modbus数据模型的当前已统计的通信点个数和内存位置标记单元值,确定每个通信点在其对应的Modbus数据模型中的内存位置;
[0010]将每个所述通信点在其对应的Modbus数据模型中的内存位置填写到该通信点对应的信息单元的内存地址字段中,以根据每个所述通信点对应的信息单元中的内存地址字段的值和预设的寻址地址字段的值,建立每个所述通信点的内存地址与寻址地址之间的映射。
[0011]可选的,所述信息单元中的多个字段还包含对端装置序号字段、通信方向字段和数据类型字段,所述根据每个所述通信点对应的信息单元中的各个字段的值,为与所述Modbus主站对应的各个对端装置通信所需的每个所述Modbus数据模型分配内存空间,包
括:
[0012]根据每个所述通信点对应的信息单元中的对端装置序号字段的值,确定每个所述通信点所在的对端装置;
[0013]根据每个所述通信点对应的信息单元中的通信方向字段的值,确定每个所述通信点的通信点性质,所述通信点性质为发送通信点或接收通信点;
[0014]根据每个所述通信点对应的信息单元中的数据类型字段的值,确定每个所述通信点在对应的Modbus数据模型中需要占用的存储空间值,并累加该通信点所在对端装置的相应Modbus数据模型的存储空间计数值,由此统计每个所述对端装置的每种Modbus数据模型所需的存储空间,将该存储空间值作为该Modbus数据模型所需的通信内存空间值;
[0015]根据各个所述通信点对应的Modbus数据模型、各个所述通信点所在的对端装置、各个所述通信点的通信点性质,以及每个所述Modbus数据模型所需的通信内存空间值,确定与每个所述对端装置通信所需的每个Modbus数据模型需要的通信内存空间值,并为该Modbus数据模型分配内存空间为所述通信内存空间值。
[0016]可选的,所述根据Modbus数据模型的当前已统计的通信点个数和内存位置标记单元值,确定每个通信点在其对应的Modbus数据模型中的内存位置,包括:
[0017]获取所述通信点对应的Modbus数据模型的通信点个数计数器当前统计得到的计数值;
[0018]若所述计数值为0,则确定所述通信点为其对应的Modbus数据模型中的第一个通信点,则该通信点在其对应的Modbus数据模型中的内存位置为0;
[0019]若所述计数值不为0,则获取所述Modbus数据模型的内存位置标记单元值,并确定所述通信点在其对应的Modbus数据模型中的内存位置为所述内存位置标记单元值。
[0020]一种通信处理方法,包括:
[0021]获取预先构建的Modbus包,并根据所述Modbus包的基础信息以及所述Modbus包的功能码对应的Modbus通信协议格式,构建所述Modbus包对应的通讯包,所述Modbus包由多个通信点组成;
[0022]当所述Modbus包对应的功能码为写功能码时,将所述Modbus包的各个通信点在对应的Modbus数据模型内存中的值取出,并按Modbus协议对应格式转换,将转换后的值填写至所述通讯包的输出值字段位置,得到所述通讯包对应的待发送通讯包;
[0023]向所述Modbus主站的对端装置发送所述待发送通讯包,以使所述对端装置返回所述待发送通讯包对应的应答包;
[0024]接收并解析所述应答包,得到通信处理结果,完成通信处理过程。
[0025]可选的,还包括:
[0026]当所述Modbus包对应的功能码为读功能码时,根据所述Modbus协议向所述对端发送所述通讯包,以使所述对端返回所述通讯包对应的应答包;
[0027]接收并解析所述应答包,将所述应答包中的数据值字段的值按照所述Modbus协议对应格式转换,将转换后得到的值填写至所述Modbus包的各个通信点对应的Modbus数据模型内存中,完成通信处理过程。
[0028]可选的,所述将所述Modbus包的各个通信点在对应的Modbus数据模型内存中的值取出,并按Modbus协议对应格式转换,将转换后得到的值填写至所述通讯包的输出值字段
位置,包括:
[0029]确定所述Modbus包中的本包首个通信点的内存地址的字段的值为通信数据取址首地址;
[0030]将所述Modbus包的本包输入离散量/线圈/输入寄存器/保持寄存器个数字段的值作为读取存储空间长度值,并从所述通信数据取址首地址指向的连续内存空间中取出长度满足所述读取存储空间长度值的数据作为通信值,并将所述通信值按照所述Modbus协议对应格式转换,将转换后的值填写至所述通讯包的输出值字段位置。
[0031]可选的,所述将所述应答包中的数据值字段的值按照所述Modbus协议对应格式转换,将转换后的值填写至所述Modbus包的各个通信点对应的Modbus数据模型内存中,包括:
[0032]确定所述Modbus包中的本包首个通信点的内存地址字段的值为通信数据存放首地址;
[0033]确定所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Modbus通信内存优化方法,其特征在于,包括:将Modbus主站中每个通信点的信息存储至该通信点对应的信息单元中,各个所述信息单元组成通信点表;其中,每个所述信息单元包括多个字段,各个所述字段包含功能码字段、内存地址字段和寻址地址字段;遍历所述通信点表中的各个信息单元,根据每个所述通信点对应的信息单元中的各个字段的值,确定每个所述通信点对应的Modbus数据模型,并为与所述Modbus主站对应的各个对端装置通信所需的每个所述Modbus数据模型分配内存空间;根据Modbus数据模型的当前已统计的通信点个数和内存位置标记单元值,确定每个通信点在其对应的Modbus数据模型中的内存位置;将每个所述通信点在其对应的Modbus数据模型中的内存位置填写到该通信点对应的信息单元的内存地址字段中,以根据每个所述通信点对应的信息单元中的内存地址字段的值和预设的寻址地址字段的值,建立每个所述通信点的内存地址与寻址地址之间的映射。2.根据权利要求1所述的方法,其特征在于,所述信息单元中的多个字段还包含对端装置序号字段、通信方向字段和数据类型字段,所述根据每个所述通信点对应的信息单元中的各个字段的值,为与所述Modbus主站对应的各个对端装置通信所需的每个所述Modbus数据模型分配内存空间,包括:根据每个所述通信点对应的信息单元中的对端装置序号字段的值,确定每个所述通信点所在的对端装置;根据每个所述通信点对应的信息单元中的通信方向字段的值,确定每个所述通信点的通信点性质,所述通信点性质为发送通信点或接收通信点;根据每个所述通信点对应的信息单元中的数据类型字段的值,确定每个所述通信点在对应的Modbus数据模型中需要占用的存储空间值,并累加该通信点所在对端装置的相应Modbus数据模型的存储空间计数值,由此统计每个所述对端装置的每种Modbus数据模型所需的存储空间,将该存储空间值作为该Modbus数据模型所需的通信内存空间值;根据各个所述通信点对应的Modbus数据模型、各个所述通信点所在的对端装置、各个所述通信点的通信点性质,以及每个所述Modbus数据模型所需的通信内存空间值,确定与每个所述对端装置通信所需的每个Modbus数据模型需要的通信内存空间值,并为该Modbus数据模型分配内存空间为所述通信内存空间值。3.根据权利要求1所述的方法,其特征在于,所述根据Modbus数据模型的当前已统计的通信点个数和内存位置标记单元值,确定每个通信点在其对应的Modbus数据模型中的内存位置,包括:获取所述通信点对应的Modbus数据模型的通信点个数计数器当前统计得到的计数值;若所述计数值为0,则确定所述通信点为其对应的Modbus数据模型中的第一个通信点,则该通信点在其对应的Modbus数据模型中的内存位置为0;若所述计数值不为0,则获取所述Modbus数据模型的内存位置标记单元值,并确定所述通信点在其对应的Modbus数据模型中的内存位置为所述内存位置标记单元值。4.一种通信处理方法,其特征在于,包括:获取预先构建的Modbus包,并根据所述Modbus包的基础信息以及所述Modbus包的功能码对应的Modbus通信协议格式,构建所述Modbus包对应的通讯包,所述Modbus包由多个通
信点组成;当所述Modbus包对应的功能码为写功能码时,将所述Modbus包的各个通信点在对应的Modbus数据模型内存中的值取出,并按Modbus协议对应格式转换,将转换后的值填写至所述通讯包的输出值字段位置,得到所述通讯包对应的待发送通讯包;向所述Modbus主站的对端装置发送所述待发送通讯包,以使所述对端装置返回所述待发送通讯包对应的应答包;接收并解析所述应答包,得到通信处理结果,完成通信处理过程。5.根据权利要求4所述的方法,其特征在于,还包括:当所述Modbus包对应的功能码为读功能码时,根据所述Modbus协议向所述对端发送所述通讯包,以使所述对端返回所述通讯包对应的应答包;接收并解析所述应答包,将所述应答包中的数据值字段的值按照所述Modbus协议对应格式转换,将转换后得到的值填写至所述Modbus包的各个通信点对应的M...

【专利技术属性】
技术研发人员:范丽辰王静伟孙星星王勇李冠宁李萌马忠刚窦维维王晓伟
申请(专利权)人:北京广利核系统工程有限公司
类型:发明
国别省市:

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

1