CN116708592A - 一种可配置的通信协议交互方法及系统 - Google Patents

一种可配置的通信协议交互方法及系统 Download PDF

Info

Publication number
CN116708592A
CN116708592A CN202310689043.4A CN202310689043A CN116708592A CN 116708592 A CN116708592 A CN 116708592A CN 202310689043 A CN202310689043 A CN 202310689043A CN 116708592 A CN116708592 A CN 116708592A
Authority
CN
China
Prior art keywords
interaction
message
communication
task
communication protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310689043.4A
Other languages
English (en)
Inventor
庞浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spl Electronic Technology Co ltd
Original Assignee
Spl Electronic Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spl Electronic Technology Co ltd filed Critical Spl Electronic Technology Co ltd
Priority to CN202310689043.4A priority Critical patent/CN116708592A/zh
Publication of CN116708592A publication Critical patent/CN116708592A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

本发明属于通信技术领域,具体涉及一种可配置的通信协议交互方法及系统,该方法包括:加载通信协议配置,通信协议配置包括通信协议规定的交互步骤、各交互步骤对应的执行条件;获取交互任务,依据交互任务确定交互名称和交互参数,依据交互名称在通信协议配置信息中确定交互步骤;判断交互参数是否满足确定的交互步骤的执行条件,若满足,则执行确定的交互步骤;或者,获取解析的接收报文或者解析的发送报文,得到解析数据;若解析数据满足某一等待执行任务的执行条件,则执行该等待执行任务并进入该等待执行任务的下一个交互步骤;由此,本发明解决了现有通信协议交互方法及系统的软件实现结构复杂、难以维护和开发代码耦合度高的问题。

Description

一种可配置的通信协议交互方法及系统
技术领域
本发明属于通信技术领域,具体涉及一种可配置的通信协议交互方法及系统。
背景技术
信息传输和互联网技术大量应用通信交互协议的处理,包括数据的组帧发送和接收解析。同时,通过对接收报文的解析和应答回复,形成了通信交互过程,由此能够实现通信设备之间数据查询、状态请求、控制命令、事件上报等交互访问,甚至更复杂的设备远程通信链路建立、参数设置或控制反馈等操作。虽然通信接收报文的解析容易实现不依赖程序的可配置修改,但是通信交互的应答组帧高度依赖设备本身的状态和数据,很难实现可配置化,目前报道的已有方案都依赖程序处理实现。比如申请公布号为CN104780140A的中国发明专利申请文件中公开了一种可配置的通信协议识别与解析处理系统,该专利申请文件中提出了一种可配置的通信协议识别与解析处理系统,其原理如图1所示,该系统中的协议识别器可以分析报文并输出协议类型识别结果,其解析分析器依据协议解析配置对协议识别器已识别的通信数据做解析处理并输出解析结果。
已有通信交互协议处理方法和系统存在缺陷,仅仅能够实现协议解析的可配置,无法实现依据接收报文进行应答报文的自动组帧处理的可配置化,仍然依赖程序处理,并和应用的状态和数据高度耦合,当协议变化时需要重新编写修改程序,重新编译加载。同时,已有通信交互协议处理方法和系统在针对多接口、多协议情况下,需要通过主处理程序,并调用不同的子协议程序,结构复杂,难以维护升级。
总之,现有通信协议交互方法及系统的软件实现结构复杂、难以维护和开发代码耦合度高。
发明内容
本发明的目的在于提供一种可配置的通信协议交互方法及系统,用以解决现有技术中通信协议交互方法及系统的软件实现结构复杂、难以维护和开发代码耦合度高的问题。
为解决上述技术问题,本发明所提供的技术方案以及技术方案对应的有益效果如下:
本发明的一种可配置的通信协议交互方法,包括以下步骤:
1)加载通信协议配置,通信协议配置包括通信协议规定的交互步骤、各交互步骤对应的执行条件;各交互步骤依据对应的交互名称进行区分;
2)采用以下三种方式中的至少一种方式进行通信交互:
第一种方式:获取依据通信需求发送的交互任务,依据交互任务确定至少一个交互名称和交互参数,依据交互名称在通信协议配置信息中确定交互步骤;判断所述交互参数是否满足确定的交互步骤的执行条件,若满足,则执行所述确定的交互步骤;
第二种方式:获取解析的接收完成的报文,得到解析数据;若所述解析数据满足某一等待接收报文任务的执行条件,则执行该接收报文任务并进入该接收报文任务的下一个交互步骤;若所述解析数据不满足任一个等待接收报文任务的执行条件,则依据所述解析数据在通信协议配置中确定需要执行的交互步骤并执行该交互步骤;
第三种方式:获取解析的发送完成的报文,得到解析数据,若所述解析数据满足某一发送报文任务的执行条件,则执行该发送报文任务并进入该发送报文任务的下一个交互步骤。
上述技术方案的有益效果为:本发明方法通信协议交互按照通信协议配置流程进行执行,按照这种方式实现的通信交互处理,可以和应用程序完全分割解耦,直到通信结果返回给应用程序,不必占用应用程序的处理流程。同时,通信协议交互采用配置数据的方式实现,变更升级不再依赖通信交互任务管理、报文发送、报文接收、报文解析等各个部分的程序修改。最后,本发明和应用程序耦合度低,软件结构简单。
进一步地,所述交互参数包括以下数据项中至少一种数据项:协议名称和标识、传输方式、传输方向、源地址或目的地址、访问类型、数据标识、数据值和校验方式;
解析数据包括协议标识、传输方式、传输方向、源地址或目的地址、访问类型、数据标识、数据值和校验方式。
进一步地,为了降低耦合度,交互步骤包括:通信报文发送和通信报文接收;通信协议配置还包括通信交互配置、数据存储位置和数据读取位置;通信交互配置用于确定报文的组帧格式;在通信报文发送交互步骤中依据通信交互配置进行组帧,从数据读取位置读取组帧需要的数据;在通信报文接收交互步骤中依据数据存储位置存储接收的报文。
进一步地,通信报文发送交互步骤中数据读取位置为数据库,采用数据库读取指令读取组帧需要的数据;通信报文接收交互步骤中接收报文的数据存储位置为数据库,采用数据库的写入指令将接收报文存入数据库。
进一步地,为了提高通信效率,通信协议配置还包括发送响应延迟时间、接收等待时间和交互步骤失败后的处理步骤;若在接收等待时间内未接收到符合接收执行条件的报文,则通信报文接收交互步骤执行失败,依据通信协议配置中交互步骤失败后的处理步骤进行处理;若当前执行的交互步骤是接收报文的回复报文,则在发送响应延迟时间后发送该回复报文。
进一步地,为了降低耦合度,通信报文发送交互步骤中通过报文发送函数执行报文发送;通信报文接收交互步骤中通过接收函数执行报文接收。
进一步地,通信协议配置采用XML文件存储。
进一步地,为了支持多协议,通信协议配置依据各通信协议分别配置对应的交互步骤;采用属性区分不同通信协议的交互任务。
进一步地,为各交互任务设置临时数据缓存区,各交互任务未结束时将该交互任务对应的接收报文和发送报文保存在对应的临时数据缓存区。
为了解决上述问题,本发明又提供了一种可配置的通信协议交互系统,该系统包括处理器,所述处理器依据计算机指令实现如本发明的一种可配置的通信协议交互方法。
附图说明
图1是现有技术中的一种可配置的通信协议识别与解析处理系统的结构框图;
图2是本发明的一种可配置的通信协议交互方法的结构框图;
图3是本发明方法实施例中确定交互步骤的方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明了,以下结合附图及实施例,对本发明进行进一步详细说明。
方法实施例:
本发明的一种可配置的通信协议交互方法实施例,本发明适用于多接口、多协议的系统,应用程序下发的一个任务中包括多条交互步骤,而且一个通信协议包括多个任务。本发明首先需要编辑通信协议配置,该通信协议配置包括各任务需要执行的交互步骤以及该交互步骤需要满足的执行条件。然后,依据应用程序发起的任务或者依据接收报文内容或者依据发送报文内容来确定下一步需要执行的交互步骤。最后,依据交互步骤对应的执行条件确定是否执行该步骤,或者依据执行条件选择需要执行的交互步骤,或者判断某一任务最后一步的交互步骤是否完成。本发明通过通信任务管理和通信协议配置,实现通信任务启动、应答、交互流程的可配置,并通过任务执行期间数据管理、以及数据和设备的统一交互接口,实现通信处理和设备其他功能的解耦,并且通过多协议配置实现多接口、多协议的统一处理。其中,通信交互任务管理同时处理多个通信交互任务。由此来解决现有技术中通信协议交互方法及系统的软件实现结构复杂、难以维护和开发代码耦合度高的问题。
本发明提出一种可配置的通信协议交互方法,如图2所示,该方法包括如下步骤:
第一步:启动通信交互任务管理,并加载通信协议配置。通信协议配置包含通信协议所规定的多条交互步骤、每条步骤对应的执行条件、发送响应延迟时间、接收等待时间、数据存储位置信息和数据读取的位置信息。每条交互步骤都有名称,以便启动通信任务时,通过交互名称,获取通信任务所对应的一组交互步骤,从第一条交互步骤启动通信交互任务的执行。本发明通信协议交互如果接收数据,会按照通信协议配置指定的数据存储位置进行存储信息,将通信协议解析获得的数据名称和数值存入该指定位置。如果需要发送报文时,依据数据读取的位置信息,从指定位置获得通信协议组帧所需对应数据名称的数据值,从而依据通信协议完成报文组帧。
第二步:由于本发明支持多接口、多协议的通信交互,通信交互任务管理按照如下3种情况处理通信任务:
情况1:应用程序启动新任务。
获取依据通信交互需求发送的交互任务,依据交互任务确定交互步骤名称和交互参数,交互参数包括协议名称和标识、传输方式、传输方向、源地址或目的地址、访问类型、数据标识、数据值或数据内容、校验方式等数据项。依据交互步骤名称在通信协议配置中确定交互步骤;判断交互参数是否满足确定的交互步骤的执行条件,若满足,则执行所述确定的交互步骤。
应用程序依据其通信需求通过通信交互任务管理调用通信协议Px中的任务S1,并依据通信需求配置任务S1的第一个步骤对应的报文发送参数。应用程序依据通信需求选择通信交互配置中交互步骤的名称,依据交互步骤名称从通信协议配置中确定对应的交互步骤。若该交互步骤为发送报文,则新任务依据通信协议配置中的通信交互配置完成报文组帧,组帧所需的应用数据从配置所指定的存储位置读取,并通过发送函数Px_TX执行报文发送。其中发送报文组帧时从配置所指定的存储位置读取应用数据,采用数据库读取指令实现;接收报文解析后向配置所指定的存储位置写入应用数据,采用数据库的写入指令实现。
比如主站下发抄表任务,如图3所示,该抄表任务中需要读取表1到表3的电能数据,在电力抄表访问协议对应的通信协议配置中选择交互步骤名称“读取电能数据”确定需要执行的交互步骤“读取电能数据”。由于需要读取表1、表2和表3的数据,所以得到的抄表任务需要3次,分别配置交互参数中的目的地址为表1、表2和表3。具体而言:第1步,执行交互步骤“读取电能数据”,目的地址为表1;第2步,执行交互步骤“接收电能数据”,等待源地址为表1所返回的电能数据;第3步,执行交互步骤“读取电能数据”,目的地址为表2;第4步,执行交互步骤“接收电能数据”,等待源地址为表2所返回的电能数据;第5步,执行交互步骤“读取电能数据”,目的地址为表3;第6步,执行交互步骤“接收电能数据”,等待源地址为表3所返回的电能数据。
情况2:解析接收的报文,依据报文内容确定对应正在执行的任务以及下一步对应的交互步骤;若正在执行的任务中没有对应的任务,则启动新的任务。
解析接收的报文,得到的解析数据;该解析数据包括协议标识、传输方式、传输方向、源地址或目的地址、访问类型、数据标识、数据值或数据内容、校验方式等数据项,判断解析数据满足所有等待接收报文任务中哪个任务的执行条件,若满足其中一个等待接收报文任务的执行条件,则依据接收配置信息接收数据以及存储并进行该任务的下一个交互步骤,若不满足现有所有等待接收报文任务,则依据解析数据启动新的任务。
当接收函数Px_RX完成数据接收,报文解析部分确认接收缓冲存在有效报文后,通信交互任务管理依据接收报文解析的数据核对当前任务中等待接收的任务步骤,如果解析数据的数据项符合任务S2对应的接收执行条件,则执行已有任务S2,依据通信协议Px的接收配置将解析的应用数据存入数据库,并进入任务下一个步骤;如果不符合当前所有任务的接收执行条件,通信交互任务管理依据通信协议配置中的某一通信协议Px中查看并启动符合接收执行条件的新任务S3,接收执行条件判断通常为检验数据标识为对应新任务S3的命令标识、同时通信交互任务管理没有正在执行的与新任务S3冲突的任务。如果任务S3的第一个步骤为报文发送,则配置对应的报文发送参数,新任务处理将依据通信交互配置完成报文组帧,组帧所需的应用数据从配置所指定的存储位置读取,并通过发送函数Px_TX执行报文发送。
以用电管理终端装置为例,该装置设置有多个通信接口,分别用于连接主站、现场运维掌机、本地电能表、现场储能设备、充电桩等,如图3所示。其中,各个通信接口连接的设备不同,对各设备访问的通信协议也不同。当充电桩启动充电时,充电桩向用电管理终端装置发送“申请充电”报文,并用电管理终端装置中设置有通信交互任务管理,依据对应的通信协议解析为“申请充电”报文,同时检验发送报文的源地址为充电桩设备地址,则从通信协议配置对应的充电通信协议中获取对应交互步骤名称为“申请充电”的步骤,并依据该步骤启动通信交互任务管理中“充电桩充电”新任务。新任务依据下一条交互步骤执行。该交互步骤为“启动充电”的报文发送,于是通信交互任务管理依据充电桩的通信协议,以充电桩设备地址为目的地址、以“启动充电”命令设置数据标识进行组帧,并通过充电桩通信接口发送给充电桩,后续步骤不再赘述。如果用电管理终端装置中正在执行“控制充电桩充电的任务”,该任务当前正在执行的步骤是“等待充电结束充电”,当充电桩通信接口接收到报文,并依据对应的通信协议解析为“充电结束”报文,同时检验发送报文的源地址为充电桩设备地址,则“控制充电桩充电的任务”完成“等待充电结束充电”的当前步骤,则下一步执行“读取充电电量数据”的后续步骤,这里不再赘述。
情况3:解析发送报文内容,依据发送报文内容在发送报文任务中确定对应的任务以及下一个交互步骤。
当发送函数Px_TX执行报文发送后,发送报文的解析数据的数据项返回通信交互任务管理,通信交互任务管理依据发送报文的解析数据的数据项核对当前任务中执行发送的任务步骤,如果解析数据的数据项符合任务S4对应的发送执行条件,则执行已有任务S4,进入该任务的下一个步骤;如果不符合当前所有任务的发送执行条件,则不再进一步处理。
其中通信交互任务管理所处理的通信交互任务未结束,其接收报文和发送报文的字段数据均保存在对应该任务的临时数据缓存区,用以在后续任务步骤执行过程作为执行条件、报文组帧所需数据,并且采用字段名称进行对应数据值的读取和写入访问。
仍以上述用电管理终端装置“充电桩充电”任务执行为例,终端装置将“启动充电”的报文送入充电桩通信接口的发送函数后,为了避免“启动充电”的报文发送影响其他通信接口的通信任务、以及终端装置其他功能运行,就挂起“充电桩充电”任务。等待发送函数执行完毕“启动充电”的报文发送后,“启动充电”的报文重新依据充电通信协议数据项,返回通信交互任务管理的处理。通信交互任务管理通过目的地址和“启动充电”命令数据标识,确认正在执行的“充电桩充电”任务中“启动充电”的交互步骤执行完毕,则进一步按照通信交互配置执行下一步骤。
第三步:通信交互任务管理对当前执行的任务步骤进行计时查看,分如下两种情况:
情况1:对应当前执行的任务步骤是等待接收报文(通信报文接收),依据通信协议配置的接收等待时间,计时超时未能接收到符合接收执行条件的报文,则判断任务步骤执行失败,依据通信协议配置的失败步骤处理。
情况2:对应当前执行的任务步骤是接收报文的回复报文发送,依据通信协议配置的发送响应延迟时间,计时时刻达到后通过发送函数Px_TX执行报文发送。
本发明还提供一种可配置的通信协议交互系统,该系统包括:通信交互任务管理处理、通信报文发送部分Px_TX、通信报文接收部分Px_RX、报文解析部分、计时部分;
通信交互任务管理处理,接收来自应用程序所设置的新通信任务,或者通信协议解析部分依据接收报文设置的新通信任务;同时,依据通信协议配置执行通信任务步骤,包括:
情况1、当通信报文接收部分Px_RX完成接收报文,报文解析部分正确后,在符合通信协议配置的任务步骤执行条件时,将通信协议解析部分所获得的应用数据存入供应用程序访问的数据库,并执行任务的下一步骤。
情况2、依据通信报文发送部分Px_TX完成报文发送后,在符合通信协议配置的任务步骤执行条件时,执行任务的下一步骤。
情况3、对应接收报文的任务步骤,计时部分的计时时间超过通信协议配置的接收等待时间,则判断任务步骤执行失败,依据通信协议所配置的失败步骤处理。
情况4、对应回复报文发送的任务步骤,计时部分的计时时间超过通信协议配置的发送响应延迟时间,则向通信报文发送部分Px_TX发出报文发送的执行命令。
情况5、当完成所执行的任务的最后一个步骤时,执行结束任务处理,释放对应该任务的临时存储数据。
通信报文发送部分Px_TX,接收由通信交互任务管理处理输入的通信报文发送配置,从数据库读取应用程序所更新的应用数据,完成报文组帧,调用通信接口发送通信报文,完成报文发送后的状态发送给通信交互任务管理处理。
通信报文接收部分Px_RX,处理来自通信接口的接收数据,在报文接收完成后将接收数据发送给报文解析部分。
报文解析部分,依据通信协议解析配置对通信报文接收部分Px_RX所输入的接收数据进行解析,如果报文解析不完整,则返回状态指示给通信报文接收部分Px_RX,如果报文解析正确,则将解析数据的数据项发送给通信交互任务管理处理。
计时部分,由通信交互任务管理处理在多个任务对应各自步骤开始时启动从0开始一个对应的计时,输出对应的计时值。
该系统中通信交互任务管理处理依据至少2个不同的通信协议配置执行若干通信任务。该系统包括至少2个通信接口j,j为接口序号,分别对应各自的通信报文发送部分Px_TX(j)、通信报文接收部分Px_RX(j)、报文解析部分,通信交互任务管理处理针对每个通信接口j采用各自的通信协议配置。
通信交互任务管理处理针对每个通信任务具有临时数据缓存区,并在每个通信任务未结束时将接收报文和发送报文的字段数据保存在对应该任务的临时数据缓存区,用以在后续任务步骤执行过程作为执行条件、或者报文组帧所需数据,并且采用字段名称进行对应数据值的读取和写入访问。
下面依据用电管理终端装置为例对本发明进行说明:
S1.启动通信交互任务管理,并加载通信协议配置,通信协议配置采用XML文件实现,加载过程将XML的参数调入通信交互任务管理的内存中。通信协议配置信息,包含通信协议所规定的多条交互步骤、各步骤对应的执行条件、发送响应延迟时间、接收等待时间、数据存储和读取的位置信息。XML里逐条描述交互步骤,并顺序执行。
本发明支持多应用程序同时启动通信交互任务管理的任务,XML配置采用TaskSelect属性区分不同应用程序任务来源,不设置该属性则代表全部任务。比如:任务判断条件为由集中器控制CCO的应用程序ConcentratorAccessCCO.so对应的通信交互任务,则设置如下:TaskSelect="strcmp(TaskSourceName(),#ConcentratorAccessCCO.so#)";其中,TaskSourceName()是从通信交互任务管理返回对应步骤的任务源名称;strcmp()函数用于对比逗号前后字符串,如果相同则返回布尔值TRUE,否则返回布尔值FALSE;后一个字符串即应用程序名称ConcentratorAccessCCO.so,用#符号区分字符串。
步骤对应的通信处理操作以TalkOperate表示,为每条步骤配置的必须参数。交互操作包括:通信报文发送,即TalkOperate="Px_Tx";通信报文接收,即TalkOperate="Px_Rx";用于修改任务执行状态的暂停、重启、停止操作的相应命令为"Pause"、"Restart"、"Stop";用于准备发送报文组帧所需的临时配置数据的命令为"Data"。
执行条件主要用于交互情况的判断,实现通信交互分支处理流程。执行条件为每条步骤配置的必须参数,用ExecuteCond表示,ExecuteCond="TRUE"则本交互步骤总是执行,ExecuteCond="FALSE"则本交互流程完全不执行。交互执行条件也可以通过输入包含逻辑表达式的公式来计算,公式返回值必须是BOOLEAN值。
发送响应延迟时间以DefaultTxMilliSecondDelay表示,按照毫秒计时,输入非负整数。接收等待时间,以DefaultRxMilliSecondLimit表示,按照毫秒计时,输入非负整数。
报文接收后的条件判断采用CheckRxParas属性,可以内嵌字段数值比较的逻辑表达式。接收数据的存储属性包括RxDataStoreTemp和RxDataStoreSQL,RxDataStoreTemp直接将数据存入任务的临时数据缓存区,RxDataStoreSQL将接收数据存储入服务类型的数据库。数据存储的执行需要满足当前任务步骤的通信交互操作TalkOperate属性为"Px_Rx"、并且CheckRxParas的判断结果为TRUE。
下面对发送组帧进行详细介绍:
发送组帧需要配置通信地址、通信状态、设置命令状态等参数,组帧参数通过TxDataGetSQL和TxDataGetTemp两个属性进行准备,并且TxDataGetSQL先于TxDataGetTemp执行。TxDataGetSQL采用1条或多条数据库访问语句,从指定数据库获得数据,每条访问语句的内容包括:临时数据或字段名称、对应数据的转换表达式、数据库文件、数据库表位置。TxDataGetTemp也采用1条或多条数据值设置语句,既可以设置新字段数值,也通过已经设置的字段计算修改临时数据缓存区的新字段数值或者更新旧字段数值,每条数据值设置语句的内容包括:临时数据或字段名称、对应数据的转换表达式。数据读取的执行需要满足当前任务步骤的通信交互操作TalkOperate属性为"Px_Tx"、或者"Data"。
本实施例按照上述配置规则在用电信息采集终端中配置3个协议,包括:按照《Q/GDW10376.1-2019用电信息采集系统通信协议第1部分:主站与采集终端》配置终端与主站之间通信协议,按照《Q/GDW10376.2-2019用电信息采集系统通信协议第2部分:集中器本地通信模块接口》配置终端与本地通信模块之间的通信协议,按照《DL/T645-2007多功能电能表通信协议》配置终端与本地485接口连接的电能表的通信协议。分别通过2个应用程序设置终端任务,分别是:营销采集应用程序和电表采集应用程序。营销采集应用程序管理终端与主站、终端与本地通信模块之间通信,电表采集应用程序管理终端对外接、或者内置三相电能表的数据采集。
S2.通信交互任务管理按照如下3个情况处理通信任务:
情况1:各个应用程序依据其通信需要通过通信交互任务管理调用某一通信协议Px(i1)中的某一项任务S(k1),并配置任务S1(k)的第一个步骤对应的报文发送参数,其中i1是通信协议索引序号,k1是不同任务所对应的索引序号。某一通信接口可以配置一种或多种通信协议。当一个通信接口只配置了一种通信协议时,该接口上通信接收和发送的报文,都按照一种通信协议进行解析和组帧。当一个通信接口只配置了多种通信协议时,该接口上通信接收报文,需要依据报文中的协议标识区分不同的通信协议,对应组帧时也应在发送报文中采用不同的协议标识,区分不同的通信协议。若新任务为通信报文发送交互步骤,则依据通信交互配置完成报文组帧,组帧所需的应用数据分别通过TxDataGetSQL从指定数据库读取,或者通过TxDataGetTemp在临时数据缓存区中计算获取。
情况2:终端具有和主站通信、本地通信模块通信、外接三相电能表、内置三相电能表等连接的多个通信接口。当某一通信接口j1的接收函数Px_RX(j1)完成数据接收,报文解析部分依据通信接口j1所配置的通信协议Px(i2)确认接收缓冲存在有效报文之后,通信交互任务管理将依据接收报文解析的数据核对当前任务中等待接收的任务步骤,如果解析数据的数据项符合任务S(k2)对应的接收执行条件,则执行已有任务S(k2),依据通信协议Px(i2)的接收配置(接收配置包括接收报文的数据存储位置)将解析的应用数据存入临时数据缓存区和数据库,并进入任务下一个交互步骤。如果解析数据的数据项不符合当前所有任务的接收执行条件,通信交互任务管理依据通信协议Px(i2)中查看并启动符合接收执行条件的新任务S(k3),如果任务S(k3)的第一个步骤为报文发送,则配置第一个步骤对应的报文发送参数,新任务处理将依据所对应的通信协议Px(i3)通信交互配置完成报文组帧,组帧所需的应用数据从配置所指定的临时数据区或者数据库读取,也可按照协议配置完成数据转换、计算之后再填入发送报文,最后发送报文通过发送函数Px_TX(j2)在通信接口j2执行报文发送。上述中,j1、j2是通信接口索引序号,可以相同也可以不同,i2、i3是通信协议索引序号,可以相同也可以不同,k2、k3是任务所对应的索引序号,k2≠k3。
情况3:当某一通信接口j3的发送函数Px_TX(j3)执行报文发送后,发送报文的解析数据的数据项返回通信交互任务管理,通信交互任务管理将依据发送解析数据的数据项核对当前任务中执行发送的任务步骤,如果符合任务S(k4)对应的发送执行条件,则执行已有任务S(k4),进入该任务的下一个步骤;如果不符合当前所有任务的发送执行条件,则不再进一步处理。其中,j3是通信接口索引序号,k4是任务所对应的索引序号。
S3.通信交互任务管理对当前执行的每个任务步骤分别进行计时,并以每1ms一次进行查看,并按照如下两种情况进行处理,以任务S(k5)的当前步骤为例:
情况1:如果任务S(k5)当前步骤是等待接收报文,依据通信协议Px(i4)配置的接收等待时间DefaultRxMilliSecondLimit(i4),计时超时未能接收到符合接收执行条件的报文,则判断任务步骤S(k5)执行失败,依据任务S(k5)对应的通信协议Px(i4)所配置的失败步骤处理。
情况2:如果任务S(k5)当前步骤是接收报文的回复报文发送,依据通信协议Px(i4)配置的发送响应延迟时间DefaultTxMilliSecondDelay(i4),计时时刻达到后通过通信接口j4的发送函数Px_TX(j4)执行报文发送。
上述中,k5是任务所对应的索引序号,i4是通信协议索引序号,j4是通信接口索引序号。实施例对应的系统在用电信息采集终端中通过程序实现,具体而言包括:通信交互任务管理处理、通信报文发送部分Px_TX、通信报文接收部分Px_RX、报文解析部分、计时部分。通信报文发送部分Px_TX和通信报文接收部分Px_RX针对每个通信接口都具有独立的进程,并且依据不同硬件接口类型具有不同的驱动程序。本实施例的终端与主站采用远程通信模块时是串口和USB两种接口形式,所以采用串口接口驱动和USB接口驱动。终端与主站也提供直接通过以太网口的连接方式,以太网接口要采用以太网驱动。终端和本地通信模块之间的通信接口,与外接、或者内置三相电能表的通信接口,不论是485接口还是TTL接口,均为串口,采用串口驱动。
综上,下面依据具体示例对本发明新任务设置过程进行总结说明:
通信交互任务管理处理采用一个进程实现。通信交互任务管理处理设置新的通信任务有两种情况。第一种情况是:通信交互任务管理处理进程可以接收来自营销采集应用程序和电表采集应用程序发来的任务设置命令,启动一个新任务,比如:营销采集应用程序在设定时间启动通过本地通信模块抄读台区内全部电能表数据的任务。第二种情况是:当某一通信接口接收到报文,该报文经过通信协议解析部分的解析判断为有效报文,进一步送入通信交互任务管理处理进程,通信交互任务管理处理进程依据该通信接口对应的通信协议,设置一个需要主动处理的新通信任务,比如:台区中某一电能表通过本地通信模块上报了一条停电事件所触发的事件处理任务。
除上述新任务设置过程之外,通信交互任务管理依据通信协议配置按照如下5种情况执行通信任务步骤,包括:
情况1:当对应某一通信接口j1的通信报文接收部分Px_RX(j1)完成接收报文,报文解析部分正确后,在解析数据的数据项符合通信接口j1对应的通信协议Px(i1)配置的任务S(k1)步骤执行条件时,将通信协议解析部分所获得的应用数据存入供应用程序访问的数据库,并执行任务S(k1)的下一交互步骤。
情况2:在某一通信接口j2,通过其对应的通信报文发送部分Px_TX(j2)进程完成报文发送后,解析发送的报文,若解析数据的数据项符合通信协议Px(i2)配置的任务S(k2)步骤执行条件时,执行任务的下一交互步骤。
情况3:如果任务S(k3)的当前步骤是等待接收报文,计时部分的计时时间T(k3)超过通信协议Px(i3)配置的接收等待时间,则判断任务步骤执行失败,依据通信协议Px(i3)所配置的失败步骤处理。
情况4:如果任务S(k4)的当前步骤是回复报文的发送,计时部分的计时时间T(k4)超过通信协议Px(i4)配置的发送响应延迟时间,则向指定通信接口j3的通信报文发送部分Px_TX(j3)进程发出报文发送的执行命令。
情况5:如果任务S(k5)当前执行完了其最后一个步骤时,则执行结束任务处理,释放对应任务S(k5)的临时数据缓存区。
上述中,j1、j2、j3是通信接口索引序号,i1、i2、i3、i4是通信协议索引序号,k1、k2、k3、k4、k5是任务所对应的索引序号。
通信报文发送部分采用一个单独的进程实现,对应每个通信接口j的通信报文发送部分Px_TX(j)的进程将接收由通信交互任务管理处理进程输入的通信报文发送配置(也称为通信交互配置),从数据库读取应用程序所更新的应用数据,从临时数据缓存区读取其他所需数据,完成报文组帧,从通信接口j发送通信报文,最后将完成报文发送后的状态发送给通信交互任务管理处理。
通信报文接收部分采用一个单独的进程实现,对应每个通信接口j的通信报文接收部分Px_RX(j)的进程处理来自通信接口j的接收数据,在报文接收完成后将接收数据发送给报文解析部分。
报文解析部分采用一个单独的进程实现,对应每个通信接口j的报文解析部分的进程,依据通信协议解析配置对通信报文接收部分Px_RX(j)所输入的接收数据进行解析,如果报文解析不完整,则返回状态指示给通信报文接收部分Px_RX(j),对应字节传输的串口、USB接口将继续等待接收数据,对应以太网口则清除当前接收数据。如果报文解析正确,则将解析数据的数据项发送给通信交互任务管理处理。
计时部分,由通信交互任务管理处理在多个任务对应各自步骤开始时,启动一个从0开始每1ms增1的计时,并输出对应的毫秒计时值。
本发明实施例所提可配置的通信协议交互方法和系统在用电信息采集终端装置中通过LINUX系统下的进程程序实现,并提供给营销采集应用程序和电表采集应用程序完成通信交互,使得通信过程与应用程序解耦。该方式实现了所用多种通信协议的可配置,协议配置的XML文件不依赖程序,可以依据通信协议标准的变化而升级,这又实现了通信协议配置和程序代码的解耦。采用通信协议配置中采用数据库访问指令描述完成通信数据和应用程序之间状态和数据的交互,实现了通信和应用之间数据访问的解耦。本发明实施例的一个通信交互任务管理处理实现了对多个串口、USB接口、以太网口,及其对应不同通信协议的统一处理,接口和协议的数量均可依据实际需要进一步扩展,大大简化了现场应用的适配修改过程。
本发明方法和系统将通信交互处理交由通信交互任务管理,并按照任务和任务步骤的方式进行处理,由此实现通信协议交互可以按照配置流程进行执行。按照这种方式实现的通信交互处理,可以和应用程序完全分割解耦,采用函数接口进行调用,自动完成通信交互过程,直到通信结果返回给应用程序,不必占用应用程序的处理流程。同时,通信协议交互可以采用配置数据实现,变更升级不再依赖通信交互任务管理、报文发送、报文接收、报文解析等各个部分的程序修改。特别地,本发明方法和系统能够满足多接口、多协议的统一处理。基于本发明系统中的通信交互任务管理处理,可以依照多个应程序的不同协议设置通信任务,并统一执行管理。因为通信交互任务管理处理和通信报文发送部分Px_TX、通信报文接收部分Px_RX、报文解析部分解耦,由此可以针对多个通信接口,分别进行报文发送、报文接收、报文解析,并且在接收到完整报文、或完成报文发送之后,再到交由通信交互任务管理处理判断每个任务的执行步骤,并进入下一步。本发明方法和系统也不限定通信接口的类型,包括串口、以太网、工业控制总线等,均能适用。
系统实施例:
本发明的一种可配置的通信协议交互系统实施例,包括存储器、处理器和内部总线,处理器、存储器之间通过内部总线完成相互间的通信和数据交互。存储器包括至少一个存储于存储器中的软件功能模块,处理器通过运行存储在存储器中的软件程序以及模块,执行各种功能应用以及数据处理,实现本发明的方法实施例中介绍的一种可配置的通信协议交互方法。
其中,处理器可以为微处理器MCU、可编程逻辑器件FPGA等处理装置。存储器可为利用电能方式存储信息的各式存储器,例如RAM、ROM等。

Claims (10)

1.一种可配置的通信协议交互方法,其特征在于:包括以下步骤:
1)加载通信协议配置,通信协议配置包括通信协议规定的交互步骤、各交互步骤对应的执行条件;各交互步骤依据对应的交互名称进行区分;
2)采用以下三种方式中的至少一种方式进行通信交互:
第一种方式:获取依据通信需求发送的交互任务,依据交互任务确定至少一个交互名称和交互参数,依据交互名称在通信协议配置信息中确定对应的交互步骤;判断所述交互参数是否满足确定的交互步骤的执行条件,若满足,则执行所述确定的交互步骤;
第二种方式:获取解析的接收完成的报文,得到解析数据;若所述解析数据满足某一等待接收报文任务的执行条件,则执行该接收报文任务并进入该接收报文任务的下一个交互步骤;若所述解析数据不满足任一个等待接收报文任务的执行条件,则依据所述解析数据在通信协议配置中确定需要执行的交互步骤并执行该交互步骤;
第三种方式:获取解析的发送完成的报文,得到解析数据,若所述解析数据满足某一发送报文任务的执行条件,则执行该发送报文任务并进入该发送报文任务的下一个交互步骤。
2.根据权利要求1所述的可配置的通信协议交互方法,其特征在于:所述交互参数包括以下数据项中至少一种数据项:协议名称和标识、传输方式、传输方向、源地址或目的地址、访问类型、数据标识、数据值和校验方式;
解析数据包括协议标识、传输方式、传输方向、源地址或目的地址、访问类型、数据标识、数据值和校验方式。
3.根据权利要求1所述的可配置的通信协议交互方法,其特征在于:交互步骤包括:通信报文发送和通信报文接收;通信协议配置还包括通信交互配置、数据存储位置和数据读取位置;通信交互配置用于确定报文的组帧格式;在通信报文发送交互步骤中依据通信交互配置进行组帧,从数据读取位置读取组帧需要的数据;在通信报文接收交互步骤中依据数据存储位置存储接收的报文。
4.根据权利要求3所述的可配置的通信协议交互方法,其特征在于:通信报文发送交互步骤中数据读取位置为数据库,采用数据库读取指令读取组帧需要的数据;通信报文接收交互步骤中接收报文的数据存储位置为数据库,采用数据库的写入指令将接收报文存入数据库。
5.根据权利要求3或4所述的可配置的通信协议交互方法,其特征在于:通信协议配置还包括发送响应延迟时间、接收等待时间和交互步骤失败后的处理步骤;若在接收等待时间内未接收到符合接收执行条件的报文,则通信报文接收交互步骤执行失败,依据通信协议配置中交互步骤失败后的处理步骤进行处理;若当前执行的交互步骤是接收报文的回复报文,则在发送响应延迟时间后发送该回复报文。
6.根据权利要求3或4所述的可配置的通信协议交互方法,其特征在于:通信报文发送交互步骤中通过报文发送函数执行报文发送;通信报文接收交互步骤中通过接收函数执行报文接收。
7.根据权利要求1所述的可配置的通信协议交互方法,其特征在于:通信协议配置采用XML文件存储。
8.根据权利要求7所述的可配置的通信协议交互方法,其特征在于:通信协议配置依据各通信协议分别配置对应的交互步骤;采用属性区分不同通信协议的交互任务。
9.根据权利要求3所述的可配置的通信协议交互方法,其特征在于:为各交互任务设置临时数据缓存区,各交互任务未结束时将该交互任务对应的接收报文和发送报文保存在对应的临时数据缓存区。
10.一种可配置的通信协议交互系统,其特征在于:该系统包括处理器,所述处理器依据计算机指令实现如权利要求1至9任一项所述的可配置的通信协议交互方法。
CN202310689043.4A 2023-06-09 2023-06-09 一种可配置的通信协议交互方法及系统 Pending CN116708592A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310689043.4A CN116708592A (zh) 2023-06-09 2023-06-09 一种可配置的通信协议交互方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310689043.4A CN116708592A (zh) 2023-06-09 2023-06-09 一种可配置的通信协议交互方法及系统

Publications (1)

Publication Number Publication Date
CN116708592A true CN116708592A (zh) 2023-09-05

Family

ID=87842879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310689043.4A Pending CN116708592A (zh) 2023-06-09 2023-06-09 一种可配置的通信协议交互方法及系统

Country Status (1)

Country Link
CN (1) CN116708592A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117375148A (zh) * 2023-09-25 2024-01-09 北京小米移动软件有限公司 充电方法、充电装置及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117375148A (zh) * 2023-09-25 2024-01-09 北京小米移动软件有限公司 充电方法、充电装置及存储介质

Similar Documents

Publication Publication Date Title
CN109818790B (zh) 硬件实时模拟多通路多种类通信协议芯片系统、方法及介质
CN103200026B (zh) 固件的升级方法及系统
CN116708592A (zh) 一种可配置的通信协议交互方法及系统
CN204759403U (zh) 一种基于数据透传实现设备内部模块升级的系统
CN110519138B (zh) 一种Profibus-DP主站协议的实现方法及系统
CN102957568B (zh) 一种多节点服务器的监控管理方法
CN102377506A (zh) 测试报文处理系统
CN103378994A (zh) 一种通信设备的测试方法及终端
CN114691578A (zh) 一种高性能串行通信方法、系统、介质、设备及终端
CN115827168A (zh) 一种二进制仿真环境下虚拟机通信的优化方法
CN115665020A (zh) 通信解析方法、装置、设备和存储介质
CN109507991B (zh) 一种双轴伺服控制平台调试系统及方法
CN102833015A (zh) 一种卫星自动化测试系统公共软件接口确定方法
CN103034206A (zh) 一种采用后绑定通信插件的工业数据采集系统
CN112131170B (zh) 一种基于rs485串口通信的拧紧机可视化方法及系统
CN108153671B (zh) 一种面向atml信号的运行时服务的测试系统及方法
CN115878213A (zh) 物联网设备驱动的动态加载方法
CN109783417B (zh) 一种串口通讯装置及方法
CN110224911B (zh) 一种基于modbus-rs485多路集成系统的快速通信方法
CN202995424U (zh) 一种采用后绑定通信插件的工业数据采集系统
CN109614656A (zh) 一种用于OpenGL显示列表调用的TLM模型
CN110597192A (zh) 工作流程执行方法、系统和存储介质
CN114900511B (zh) 工业机器人数据同步采集加载中间件装置及方法
CN114513382B (zh) 一种基于网卡的实时以太网现场总线网络数据包处理方法
CN109828893A (zh) 基于docker引擎的多任务android性能测试方法及用于执行该方法的系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 4005, block a, block 8, area C, Wanke Yuncheng phase III, Liuxin 4th Street, Xili community, Xili street, Nanshan District, Shenzhen, Guangdong 518000

Applicant after: Shenzhen Smart Microelectronics Technology Co.,Ltd.

Address before: Room 4005, block a, block 8, area C, Wanke Yuncheng phase III, Liuxin 4th Street, Xili community, Xili street, Nanshan District, Shenzhen, Guangdong 518000

Applicant before: SPL ELECTRONIC TECHNOLOGY CO.,LTD.