具体实施方式
图1示出了本发明实施例提供的一种多表集抄系统的结构示意图。本发明实施例所提供的多表集抄协议的处理方法及装置可应用于如图1所示的应用环境中。如图1所示,多表集抄系统1包括主站10、集中器20、通信接口转换器30和多个待抄表计40。主站10与集中器20通信连接,集中器20与通信接口转换器30的上行接口通信连接,通信接口转换器30的下行接口分别与多个待抄表计40通信连接。本实施例中,待抄表计40可以是但不仅限于电能表、智能水表、智能气表和智能暖表中的一种或多种。
基于此,主站10在其通信范围内可以和设置在不同地区的多个集中器20进行数据交换。一个集中器20可以与多个通信接口转换器30之间进行数据交互,通信接口转换器30可以与多个待抄表计40进行数据交互。本实施例中,主站10与集中器20之间的通信信道可以根据具体情况选择不同的通信信道,例如,可以采用GPRS或宽带网络等。接口转换器与待抄表计40之间的通信方式可以采用微功率无线通信、M-BUS通信、RS485通信等。
其中,主站10表示通过远程信道或手持设备对集中器20下发控制指令,并接收及处理集中器20上传的数据的设备。例如,主站10可以为计算机设备。
集中器20通过上行信道与主站10进行数据交互,通过下行信道与通信接口转换器30进行数据交互。集中器20根据所接收到的主站10下发的指令与通信接口转换器30进行双向通信。本实施例中,集中器20可以仅支持一种通信协议。
集中器20用于根据主站10下发的指令生成第一命令帧发送至通信接口转换器30。通信接口转换器30用于接收第一命令帧,第一命令帧中包括待抄表计40的标识信息;获取第一命令帧的协议类型,然后根据第一命令帧获取待抄表计40的抄表数据,将抄表数据根据所述协议类型进行打包形成第一应答数据帧;再将所述第一应答数据帧发送至集中器20。集中器20还用于解析第一应答数据帧获取抄表数据,并将抄表数据发送至主站10。
图2示出了本发明实施例提供的一种可应用于本发明实施例中的通信接口转换器30的结构框图。如图2所示,通信接口转换器30可以包括多表集抄协议的处理装置300、存储器31、存储控制器32、处理器33、接口34等。
所述存储器31、存储控制器32、处理器33、接口34各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。多表集抄协议的处理装置300包括至少一个可以软件或固件(firmware)的形式存储于所述存储器31中的软件功能模块。
存储器31用于存储程序,处理器33在接收到执行指令后,执行所述程序,本发明的任一实施例揭示的流程定义的通信接口转换器30所执行的方法可以应用于处理器33中,或者由处理器33实现。
所述处理器33可以是一种集成电路芯片,具有信号的处理能力,用于执行存储器31中存储的可执行模块,如本发明实施例提供的多表集抄协议的处理装置300包括的软件功能模块或计算机程序。
所述接口34可以包括通信接口及外设接口,其中,通信接口包括上行接口和下行接口。上行接口用于与集中器20的下行通道进行通信,下行接口用于与待抄表计进行通信。外设接口用于将各种输入/输出装置耦合至处理器33以及存储器31。在一些实施例中,接口34、处理器33以及存储控制器32可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
可以理解,图2所示的结构仅为示意,通信接口转换器30还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一实施例
图3示出了本发明第一实施例提供了一种多表集抄协议的处理方法的流程图,请参阅图3,本实施例描述的是通信接口转换器30中的数据处理流程,所述方法包括:
步骤S110,通信接口转换器接收所述集中器发送的第一命令帧;
集中器20可以按照一定周期定时发送第一命令帧至通信接口转换器30,也可以在接收到主站10发送的控制指令后,根据接收到的控制指令发送第一命令帧至通信接口转换器30以获取抄表数据。
通信接口转换器30遍历所有上行接口,等待上行接口接收数据。当有上行接口接收到数据帧时,需要先对数据帧的帧头进行判断,以确定是否接收该数据帧。对数据帧的帧头进行判断的实施方式可以为:接收数据帧的第一个字符;判断接收到的第一个字符是否满足预设规则,当接收到的第一个字符满足预设规则时,继续接收该数据帧的剩余字节直至接收到完整的数据帧作为第一命令帧,当接收到的第一个字符不满足预设规则时,清除缓存,继续等待接收数据。
通信接口转换器30中预先存储有多种通信协议。具体的,判断接收到的第一个字符是否满足预设规则的实施方式可以为:判断接收到的第一个字符是否与上述多种通信协议中任一种通信协议对应的帧起始符一致,当接收到的第一个字符与上述多种通信协议中任一种通信协议对应的帧起始符一致时,判定接收到的第一个字符满足预设规则,当接收到的第一个字符与上述多种通信协议中任一种通信协议对应的帧起始符均不一致时,判定接收到的第一个字符不满足预设规则。
多表集抄系统1中,通信接口转换器30的上行协议没有具体标准,一般采用Q/GDW1376.2-2013《电力用户用电信息采集系统通信协议第2部分:集中器20本地通信模块接口协议》,采用数据转发(AFN=02H,F1)方式,通信协议类型为“00H”,表示透明传输,透明传输内容宜采用CJ/T188-2004协议,但是单纯一种CJ/T 188-2004协议很难满足现场非标准协议需求,通常需要自定义多种协议,一般在标准DL/T-645协议的基础上进行扩展。通过定义不同的控制码、数据域长度、数据域内容来实现对表计数据的抄读。
例如,通信接口转换器30中预先存储的多种通信协议可以包括标准DL/T-645协议、645扩展协议1、645扩展协议2及645扩展协议3。需要说明的是,通信接口转换器30中存储的通信协议可以根据现有集中器20支持的通信协议进行设置,可以不限于上述四种通信协议。其中,标准DL/T-645协议的帧结构表1所示。
表1标准DL/T-645协议的帧结构
645扩展协议1、645扩展协议2及645扩展协议3均为在标准DL/T-645协议的基础上进行扩展的自定义协议。645扩展协议1的数据域第一个字节为B1,数据域长度大于20,控制码为01。645扩展协议2的数据域长度为06,控制码为11。645扩展协议3的数据域前四个字节为353CD337,控制码为11。
此时,判断接收到的第一字节是否与上述多种通信协议中任一种通信协议对应的帧起始符一致,即判断接收到的第一字节是否为帧起始符68H。
步骤S120,所述通信接口转换器获取所述第一命令帧的协议类型;
第一命令帧是由集中器20发送至通信接口转换器30。本实施例中,集中器20可以仅支持一种通信协议,而通信接口转换器30可以与支持不同协议的多种集中器20适配。
基于此,通信接口转换器30接收到集中器20发送的第一命令帧后,需要先判断第一命令帧的协议类型,从而进一步对第一命令帧进行处理。判断第一命令帧的协议类型的具体步骤可以包括:将所述第一命令帧与预先存储的通信协议进行匹配;将匹配成功的通信协议的协议类型作为所述第一命令帧的协议类型。
上述将所述第一命令帧与预先存储的通信协议进行匹配的具体实施方式可以为:
根据预先存储的通信协议的区别确定特征参数,获取接收到的第一命令帧中对应的特征参数,将所获取到的特征参数与预先存储的多种通信协议的特征参数进行匹配,当所获取到的特征参数与其中一种通信协议的特征参数一致时,按照该通信协议的格式对第一命令帧进行解析例如判断累加和、帧结束符等是否正确,若累加和、帧结束符等均正确则判定该通信协议匹配成功。若所获取到的特征参数与预先存储的多种通信协议的特征参数均不一致,或者是所获取到的特征参数与其中一种通信协议的特征参数一致,但是按照该通信协议的格式对第一命令帧进行解析失败时,则判定所述第一命令帧与预先存储的通信协议匹配失败,则结束对第一命令帧的处理。其中,特征参数可以是控制码、数据域长度或数据域第一个字节等。
例如,通信接口转换器30中预先存储的多种通信协议包括标准DL/T-645协议、645扩展协议1、645扩展协议2及645扩展协议3时,特征参数可以为控制码、数据域长度、数据域第一个字节、数据域前四个字节。先获取第一命令帧的控制码,判断第一命令帧的控制码是否为DL/T-645协议定义的控制码,若第一命令帧的控制码为DL/T-645协议定义的控制码,且按照DL/T-645协议对第一命令帧进行解析时,累加和、帧结束符均正确,则可以判定第一命令帧的协议类型属于DL/T-645协议。此时,还需要进一步判定第一命令帧的协议类型具体为DL/T-645协议的哪一种扩展协议。
具体的,若第一命令帧的数据域第一个字节为B1,数据域长度大于20,控制码为01,则判定第一命令帧的协议类型为645扩展协议1;若第一命令帧的数据域长度为06,控制码为11,则判定第一命令帧的协议类型为为645扩展协议2;若数据域前四个字节为353CD337,控制码为11,则判定第一命令帧的协议类型为645扩展协议3。
步骤S130,所述通信接口转换器根据所述第一命令帧获取所述待抄表计的抄表数据,将所述抄表数据根据所述协议类型进行打包形成第一应答数据帧;
第一命令帧中可以包括抄表指令和需要读取的待抄表计的标识信息。本实施例中,待抄表计的标识信息为待抄表计的地址。通信接口转换器30可以通过解析第一命令帧获取需要读取的待抄表计的标识信息并读取抄表指令,根据所获取的待抄表计的标识信息获取对应待抄表计的抄表数据,再根据第一命令帧的协议类型对应的应答格式对抄表数据进行打包形成第一应答数据帧。根据所获取的待抄表计的标识信息获取对应待抄表计的抄表数据的实施方式有多种。例如,可以根据所获取的待抄表计的标识信息获取待抄表计的协议类型。根据所获取的协议类型对第一命令帧进行协议转换,将第一命令帧转换为待抄表计支持的协议类型后,发送至对应的待抄表计,由待抄表计应答抄表数据。或者是,通信接口转换器30中预先存储有该待抄表计的抄表数据,此时,通信接口转换器30可以直接应答抄表数据。
步骤S140,所述通信接口转换器将所述第一应答数据帧发送至所述集中器。
集中器20获取到第一应答数据帧后,可以读取第一应答数据中的抄表数据,存储抄表数据或将抄表数据发送至主站10。
如图4所示,于本发明实施例提供的多表集抄协议的处理方法的一种具体实施方式中,步骤S130包括:
步骤S131,查找预先存储的档案中是否存在满足预设条件的抄表数据;
其中,档案可以预先存储在通信接口转换器30的存储器31中。例如,档案可以包括待抄表计的标识信息及与所述标识信息对应的抄表数据。步骤S131中的预设条件可以根据需要设置。例如,可以设置为上述档案中存在第一命名帧中所包括的待抄表计的标识信息对应的抄表数据。
当在预先存储的档案中查找到满足预设条件的抄表数据时,执行步骤S132;当在预先存储的档案中未查找到满足预设条件的抄表数据时,执行步骤S133至步骤S137。
步骤S132,将所查找到的抄表数据根据所述第一命令帧的协议类型进行打包形成第一应答数据帧;
当在预先存储的档案中查找到满足预设条件的抄表数据时,则可以直接由通信接口转换器30应答抄表数据,无需继续向与下行接口连接的待测表计请求抄表数据,提高了多表集抄系统1的抄表效率,有效地避免了下行接口表计响应时间过长,导致集中器20无法实时点抄数据,长期占用通信接口转换器30的下行接口总线或信道的问题。并且当待抄表计与通信接口转换器30之间的通信方式为M-BUS通信时,本实施例提供的多表集抄协议的处理方法能够有效地改善两套主M-BUS并网运行时,分时复用总线导致集中器20无法实时点抄数据的问题;当待抄表计与通信接口转换器30之间的通信方式为微功率无线通信时,本实施例提供的多表集抄协议的处理方法能够有效地改善频繁抄读微功率无线表计导致表计无法实现低功耗运行、电池寿命降低的问题。
步骤S133,将所述第一命令帧的协议类型作为上行通信协议;
当在预先存储的档案中未查找到满足预设条件的抄表数据时,则需要继续向与下行接口连接的待测表计请求抄表数据。将步骤S120获取到的第一命令帧的协议类型作为本次通信的上行通信协议。记录上行通信协议、接收第一命令帧的上行接口的通道号、第一命令帧中待抄表计的标识信息、第一命令帧的控制码以及数据项。
步骤S134,根据所述待抄表计的标识信息获取所述待抄表计的协议类型;
通信接口转换器30中存储有对应表,对应表中包括多个待抄表计的标识信息以及与每个待抄表计的标识信息对应的该待抄表计的协议类型。需要说明的是,上述的多个待抄表计为与通信接口转换器30的下行接口通信连接待抄表计。获取第一命令帧中待抄表计的标识信息,根据获取到的标识信息查找对应表,获取待抄表计的协议类型。例如,通信接口转换器30的下行接口连接的多个表计分别支持不同的协议,如CJ/T188-2004标准协议、针对表计应答数据域长度为09的CJ/T188-2004扩展协议、数据项标识为9010的DL/T645-97协议、前导码为7E的7E协议、前导码为42的42协议等。
步骤S135,根据所述待抄表计的协议类型对所述第一命令帧进行协议转换生成第二命令帧;
按照步骤S134所获取的待抄表计的协议类型,根据通信接口转换器30的标识信息、待抄表计的标识信息、第一命令帧的控制码、数据项、解析第一命令帧获得的数据域内容重新封装第一命令帧,即对第一命令帧进行协议转换生成第二命令帧。
为了便于实施以及待抄表计协议的扩展,作为一种实施方式,可以先按照CJ/T188-2004协议,根据通信接口转换器30的标识信息、待抄表计的标识信息、第一命令帧的控制码、数据项、解析第一命令帧获得的数据域内容对第一命名帧进行重新封装第一命令帧形成中间命令帧。然后再根据步骤S134所获取的待抄表计的协议类型重新封装中间命令帧生成第二命令帧。
步骤S136,将所述第二命令帧发送至所述待抄表计,以使所述待抄表计根据接收到的第二命令帧发送第二应答数据帧至所述通信接口转换器;
其中,第二应答数据帧包括待抄表计的抄表数据。将第二命令帧透传至下行接口,即发送至对应的待抄表计。由于第二命令帧的协议类型与待抄表计支持的协议类型一致。待抄表计接收到第二命令帧后,读取第二命令帧中的抄表指令,应答抄表数据,并根据第二命令帧对应的应答格式封装抄表数据生成第二应答数据帧。将第二应答数据帧发送至通信接口转换器30。
步骤S137,根据所述上行通信协议的应答格式对第一预设时间内接收到的第二应答数据帧进行打包形成所述第一应答数据帧。
为了避免长时间占用下行接口信道或总线,步骤S136中,通信接口转换器30将第二命令帧发送至待抄表计时,同步启动定时器,当在第一预设时间内没有接收到由待抄表计发送的第二应答数据帧时,关闭定时器,结束本次通信任务。当在第一预设时间内接收到由待抄表计发送的第二应答数据帧时,关闭定时器,根据所述上行通信协议的应答格式对接收到的第二应答数据帧进行打包形成第一应答数据帧,以发送至步骤S133中所记录的上行通道。其中,第一预设时间可以根据需要设置,例如可以设置为500毫秒。
当然,为了确保第二应答数据帧的来源的正确性,在根据所述上行通信协议的应答格式对接收到的第二应答数据帧进行打包形成第一应答数据帧之前,需要先对第二应答数据帧的来源进行校验,当校验通过后再接收第二应答数据帧。
具体的,可以通过判断缓存的帧头判断第二应答数据帧的来源是否正确。判断缓存的第一个字符是否与第二命令帧的第一个字符一致,若一致,则判定校验通过,继续接收后续的数据帧,若不一致,则判定校验失败,清除缓存,继续等待接收下一个数据帧。例如,若待抄表计支持的协议即第二命令帧的协议类型为CJ/T 188-2004协议、CJ/T 188-2004协议的扩展协议或DL/T645-97协议时,可以判断缓存中的第一个字符是否是68;若第二命令帧的协议类型为7E协议,则判断缓存中第一个字符是否是7E;若第二命令帧的协议类型为42协议,则判断缓存中第一个字符是否是42。
对第二应答数据帧来源的校验通过后,为了确保第二应答数据帧的帧结构完整性以及第二应答数据帧的正确性,还需要根据第二命令帧的格式即待抄表计的协议类型进行帧结构完整性以及帧正确性进行校验。
帧结构完整性需要根据具体待抄表计的协议类型进行校验。例如,若待抄表计的协议类型为CJ/T 188-2004协议,则按CJ/T 188-2004协议格式继续接收后续字节得到第二应答数据帧,并判断校验码、帧结束符是否正确。若校验码、帧结束符均正确,则判定帧结构完整性校验通过,若任一项不正确,则判定帧结构完整性校验不通过,结束本次通信任务。
同理,若待抄表计的协议类型为CJ/T 188-2004协议的扩展协议,则按标准188协议格式继续接收后续字节,判断数据域长度是否为09,校验码、帧结束符是否正确;若待抄表计的协议类型为DL/T645-97协议,则按DL/T645-97帧格式继续接收后续字节,判断数据项标识是否为9010,校验码、帧结束符是否正确;若待抄表计的协议类型为7E协议,则按7E协议帧格式继续接收后续字节,判断校验码、帧结束符是否正确;若待抄表计的协议类型为42协议,则按42协议帧格式继续接收后续字节,判断校验码、帧结束符是否正确。
帧正确性校验的具体可以包括对待抄表计的标识信息的校验、对上行帧或下行帧的标志位的校验、对数据项的校验等。具体实施方式可以为:当通信接口转换器30获取接收到的数据帧中的待抄表计的标识信息与第二命令帧中待抄表计的标识信息一致,接收到的数据帧为上行帧,并且接收到的数据帧中的数据项与第二命令帧中的数据项匹配时,判定帧正确性校验通过,根据所述上行通信协议的应答格式对接收到的第二应答数据帧进行打包形成第一应答数据帧。当上述三个条件中任一条件不满足时,判定帧正确性校验不通过,结束本次通信任务。
在本发明实施例提供的多表集抄协议的处理方法的一种较佳的实施方式中,上述档案不仅包括待抄表计的标识信息以及与所述标识信息对应的抄表数据,还包括每个抄表数据对应的抄表时间。为了保证获取到的抄表数据是所需要的有效的抄表数据,如图5所示,上述步骤S131具体包括:
步骤S1311,获取所述第一命令帧中的待抄表计的标识信息;
步骤S1312,判断所述档案中是否存在与所获取的标识信息对应的抄表数据;
根据第一命令帧中的待抄表计的标识信息查找档案,当所述档案中不存在与所获取的标识信息对应的抄表数据时,执行步骤S1315;当所述档案中存在与所获取的标识信息对应的抄表数据时,执行步骤S1313,
步骤S1313,判断当前时间与该抄表数据对应的抄表时间的差值是否超过预设的老化时间;
其中,抄表时间为所述待抄表计读取该抄表数据的时间。老化时间为抄表数据的有效时间,可以根据需要设置。例如,档案中存储的某抄表数据为待抄表计于2016年11月16日12点0分0秒读取的,则该抄表数据的抄表时间为2016年11月16日12点0分0秒。计算当前时间与该抄表数据对应的抄表时间的差值,当计算得到的差值未超过预设的老化时间时,执行步骤S1314。当所述差值超过预设的老化时间时,执行步骤S1315。
步骤S1314,判定在预先存储的档案中查找到满足预设条件的抄表数据;
步骤S1315,判定在预先存储的档案中未查找到满足预设条件的抄表数据。
进一步,需要说明的是,本实施例中所述的存储在通信接口转换器30中的档案为通信接口转换器30预先获取由待抄表计发送的抄表数据并存储形成的。具体的,如图6所示,所述通信接口转换器30预先获取由待抄表计发送的抄表数据的步骤,包括:
步骤S210,通信接口转换器按照预设时间周期发送第三命令帧至所述待抄表计;
其中,第三命令帧包括待抄表计的标识信息,且第三命令帧的格式根据待抄表计的协议类型配置。上述预设时间周期即为通信接口转换器30进行自动抄表的周期,可以根据需要设置。例如,可以将通信接口转换器30下行接口连接的所有表计均作为待抄表计,周期性地对每个待抄表计发送第三命令帧。
步骤S220,所述通信接口转换器接收所述待抄表计根据所述第三命令帧发送的第三应答数据帧;
其中,所述第三应答数据帧包括所述待抄表计的抄表数据。待抄表计接收到第三命令帧后,读取第三命令帧中的抄表指令,应答抄表数据,并根据第三命令帧对应的应答格式封装抄表数据生成第三应答数据帧。将第三应答数据帧发送至通信接口转换器30。
同理,为了避免长时间占用下行接口的信道或总线,通信接口转换器30每次发送第三命令帧至所述待抄表计时,可以开启通信接口转换器30内的定时器。当在第二预设时间内没有接收到由待抄表计发送的第三应答数据帧时,关闭定时器,结束本次通信任务;当在第二预设时间内接收到由待抄表计发送的第三应答数据帧时,关闭定时器,进入步骤S230。其中,第二预设时间可以根据需要设置,例如,可以设置为500毫秒。
此外,在执行步骤S220时,为了确保第三应答数据帧的来源的正确性,需要对第三应答数据帧的来源进行校验,当校验通过后再接收第三应答数据帧。具体的的校验方法可以参照上述步骤S137中的相应内容,此处不再赘述。
同理,对第三应答数据帧来源的校验通过后,为了确保第三应答数据帧的帧结构完整性以及第三应答数据帧的正确性,还需要根据第三命令帧的格式即待抄表计的协议类型进行帧结构完整性以及帧正确性进行校验。具体的的校验方法也可以参照上述步骤S137中的相应内容,此处不再赘述。当第三应答数据帧的来源的正确性、帧结构完整性以及帧正确性校验均通过时,执行步骤S230。
步骤S230,所述通信接口转换器解析所述第三应答数据帧获取所述抄表数据。
通信接口转换器30获取第三应答数据帧中的抄表数据后,可以将抄表数据、该抄表数据对应的待抄表计的标识信息即地址以及该抄表数据的抄表时间对应地存储在存储器31中形成上述档案。
也就是说,采用本实施例提供的多表集抄协议的处理方法的通信接口转换器30能够实现对下行待抄表计的周期性自动抄读并自动存储抄表数据,以使得当集中器20下发包括抄表指令的第一命令帧至通信接口转换器30时,通信接口转换器30能够直接应答其存储的抄表数据,无需向下行接口所连接的待抄表计请求数据,有效地避免了表计响应时间过长,导致集中器20无法实时点抄数据,长期占用通信接口转换器30下行接口的总线或信道的问题。并且当待抄表计与通信接口转换器30之间的通信方式为M-BUS通信时,本实施例提供的多表集抄协议的处理方法能够有效地改善两套主M-BUS并网运行时,分时复用总线导致集中器20无法实时点抄数据的问题;当待抄表计与通信接口转换器30之间的通信方式为微功率无线通信时,本实施例提供的多表集抄协议的处理方法能够有效地改善频繁抄读微功率无线表计导致表计无法实现低功耗运行、电池寿命降低的问题。
进一步的,通信接口转换器30中预先存储的多种通信协议还可以包括CJ/T 188-2004协议。此时,上述步骤S120中,若所获取到的特征参数例如控制码与CJ/T 188-2004协议的定义一致,且按CJ/T 188-2004协议的格式解析,控制码、数据项、累加和、结束符均正确时,判定第一命令帧的协议类型为CJ/T 188-2004协议。此时,上述步骤S130还包括:当第一命令帧的协议类型为CJ/T 188-2004协议时,根据第一命令帧中待抄表计的标识信息将第一命令帧透传至对应的待抄表计,以使该待抄表计根据所述第一命令帧生成第一应答数据帧并将该第一应答数据帧发送至通信接口转换器30;将接收到的第一应答数据帧发送至集中器20。
综上所述,本发明实施例提供的多表集抄协议的处理方法应用于多表集抄系统1,通过通信接口转换器30实现协议处理,集中器20只需要支持固定协议,有效地提高了多表集抄系统1的抄表效率,有效地克服了现有集中器需对表计不同的协议做兼容导致其复杂度高的问题。
第二实施例
图7示出了本发明第二实施例提供的多表集抄协议的处理装置的功能模块框图。本发明第二实施例提供的多表集抄协议的处理装置应用于上述多表集抄系统1,所述多表集抄系统1包括集中器20、与集中器20通信连接的通信接口转换器30以及与通信接口转换器30通信连接的待抄表计40。具体的,本实施例提供的多表集抄协议的处理装置可运行于通信接口转换器30,用于实现第一实施例提出的多表集抄协议的处理方法。请参阅图7,本实施例中的多表集抄协议的处理装置300包括:接收模块330、协议类型获取模块340、应答数据帧获取模块350及发送模块360。
其中,接收模块330,用于接收所述集中器20发送的第一命令帧;
协议类型获取模块340,用于获取所述第一命令帧的协议类型;
应答数据帧获取模块350,用于根据所述第一命令帧获取所述待抄表计的抄表数据,将所述抄表数据根据所述协议类型打包成第一应答数据帧;
发送模块360,用于将所述第一应答数据帧发送至所述集中器20。
进一步的,如图8所示,所述应答数据帧获取模块350包括:查找子模块351、第一形成子模块352、第一获取子模块353、协议转换子模块354、第一发送子模块355及第二形成子模块356。
其中,查找子模块351,用于查找预先存储的档案中是否存在满足预设条件的抄表数据;
第一形成子模块352,用于当在预先存储的档案中查找到满足预设条件的抄表数据时,将所查找到的抄表数据根据所述第一命令帧的协议类型进行打包形成第一应答数据帧;
第一获取子模块353,用于当在预先存储的档案中未查找到满足预设条件的抄表数据时,所述通信接口转换器30将所述第一命令帧的协议类型作为上行通信协议,所述通信接口转换器30根据所述待抄表计的标识信息获取所述待抄表计的协议类型;
协议转换子模块354,用于根据所述待抄表计的协议类型对所述第一命令帧进行协议转换形成第二命令帧;
第一发送子模块355,用于将所述第二命令帧发送至所述待抄表计,以使所述待抄表计根据接收到的第二命令帧发送第二应答数据帧至所述通信接口转换器30,其中,所述第二应答数据帧包括所述待抄表计的抄表数据;
第二形成子模块356,用于根据所述上行通信协议的应答格式对预设时间内接收到的第二应答数据帧进行打包形成所述第一应答数据帧。
上述档案包括待抄表计的标识信息、与所述标识信息对应的抄表数据以及该抄表数据对应的抄表时间。所述查找子模块351具体用于获取所述第一命令帧中的待抄表计的标识信息;判断所述档案中是否存在与所获取的标识信息对应的抄表数据;当所述档案中不存在与所获取的标识信息对应的抄表数据时,判定在预先存储的档案中未查找到满足预设条件的抄表数据;当所述档案中存在与所获取的标识信息对应的抄表数据时,判断当前时间与该抄表数据对应的抄表时间的差值是否超过预设的老化时间,其中,所述抄表时间为所述待抄表计读取该抄表数据的时间;当所述差值未超过预设的老化时间时,判定在预先存储的档案中查找到满足预设条件的抄表数据;当所述差值超过预设的老化时间时,判定在预先存储的档案中未查找到满足预设条件的抄表数据。
进一步的,通信接口转换器30中预先存储的多种通信协议包括有CJ/T188-2004协议。此时,所述应答数据帧获取模块350还用于当所述第一命令帧的协议类型为CJ/T 188-2004协议时,根据第一命令帧中待抄表计的标识信息将第一命令帧透传至对应的待抄表计,以使该待抄表计根据所述第一命令帧生成第一应答数据帧并将该第一应答数据帧发送至通信接口转换器30;将接收到的第一应答数据帧发送至集中器20。
进一步的,上述档案为所述通信接口转换器30预先获取由待抄表计发送的抄表数据并存储形成。因此,如图7所示,多表集抄协议的处理装置300除了包括接收模块330、协议类型获取模块340、应答数据帧获取模块350及发送模块360外,还包括抄表数据获取模块310和存储模块320。抄表数据获取模块310用于所述通信接口转换器30获取由待抄表计发送的抄表数据。存储模块320用于存储获取的抄表数据形成上述档案。具体的,如图9所示,抄表数据获取模块310包括:第二发送子模块311、接收子模块312及第二获取子模块313。
其中,第二发送子模块311,用于按照预设时间周期发送第三命令帧至所述待抄表计,其中,所述第三命令帧包括待抄表计的标识信息,所述第三命令帧的格式根据与所述标识信息对应的所述待抄表计的协议类型配置;
接收子模块312,用于接收所述待抄表计根据接收到的第三命令帧发送的第三应答数据帧,其中,所述第三应答数据帧包括所述待抄表计的抄表数据;
第二获取子模块313,用于解析所述第三应答数据帧获取所述抄表数据。
本实施例中,各模块可以是由软件代码实现,可存储于通信接口转换器30的存储器31内。当然,以上各模块同样可以由硬件例如集成电路芯片实现。
本发明实施例所提供的多表集抄协议的处理装置300,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
另外,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明实施例所提供的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器100,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。