CN113242534A - 一种基于wi-fi的通用型多协议数字仪表物联模块 - Google Patents

一种基于wi-fi的通用型多协议数字仪表物联模块 Download PDF

Info

Publication number
CN113242534A
CN113242534A CN202110656856.4A CN202110656856A CN113242534A CN 113242534 A CN113242534 A CN 113242534A CN 202110656856 A CN202110656856 A CN 202110656856A CN 113242534 A CN113242534 A CN 113242534A
Authority
CN
China
Prior art keywords
internet
instrument
data
function
things
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.)
Granted
Application number
CN202110656856.4A
Other languages
English (en)
Other versions
CN113242534B (zh
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.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
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 Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN202110656856.4A priority Critical patent/CN113242534B/zh
Publication of CN113242534A publication Critical patent/CN113242534A/zh
Application granted granted Critical
Publication of CN113242534B publication Critical patent/CN113242534B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明为一种基于WI‑FI的通用型多协议数字仪表物联模块,从WI‑FI通讯模块硬件、物联软件协议和物联API函数库三个方面进行设计,提供了面向不同类型数字仪表移植适配简单且物联功能强大的通用型物联解决方案。WI‑FI通讯模块硬件采用宽电压范围串行接口设计,借助WI‑FI的高速传输性能满足不同的物联传输要求;物联软件协议采用私有仪表交互协议与数字仪表交互,采用私有物联交互协议、MODBUS‑TCP协议和命令透传协议与网络设备交互,支持仪表数据定时转发/实时高速转发、仪表工作参数调试、MODBUS通讯、仪表私有命令调试、仪表固件升级等强大的物联功能;物联API函数库通过IoT.lib文件和IoT.h文件提供兼容不同处理器工作模式的、高度封装的物联数据变量和API函数,用于数字仪表物联功能的简单灵活适配;从而,为不同类型数字仪表提供灵活、强大的物联功能和简单的适配方案。

Description

一种基于WI-FI的通用型多协议数字仪表物联模块
技术领域
本发明涉及仪器仪表的物联网技术,特别是一种适用于数字仪表加入互联网的基于WI-FI通讯的通用型物联模块,同时支持私有的物联交互协议和标准的MODBUS-TCP协议,为数字仪表物联功能的开发提供简易的物联API函数库,实现数字仪表通过WI-FI与网络中的其它设备进行现场通讯或远程交互,从而为数字仪表提供通讯、调试、维护、云服务等强大的物联功能。
背景技术
随着物联网技术的发展,将网络技术与仪表技术结合以实现仪表物联功能的需求越来越多。现有的仪表物联功能的实现通常有两种方式:其一为一体化物联功能定制设计;其二为分体式通用物联功能扩展。前一种方式通常在要求物联功能的仪表的整体设计中加入定制的物联功能,设计出结构紧凑的具有物联功能的仪表;该方式通常针对性较强,即一表一设计,设计周期较长,通用性较差,导致每开发一款新的仪表都需要做新的物联设计;例如,文献《具有工业以太网接口的差压质量流量计研究》(付敬奇、杨鹏,仪表技术与传感器,2007,6:8-10.)、《基于物联网的高精度超声波气体流量监测系统设计》(郑高原、佘世刚,仪表技术与传感器,2021,2:65-70.)、《基于物联网通信技术的智能燃气表系统设计与实现》(张俊刚,山东大学,2018.)以及中国专利CN110400423A(潘洪原.一种一体式物联网多功能流量计及控制方法,2019-11-01.)中公布的物联技术均为此种方式,存在物联功能高度定制、仪表数据转发刷新率低、物联功能通用性差、不能移植的特点;亦有仪表企业制定统一规范,在自己内部的系列产品中采用统一的物联功能设计,但相关的物联功能同样难以移植到其它品牌或其它系列产品,通用性仍较差。第二种方式为采用通用的物联模块对仪表进行物联功能扩展,通用的物联模块与仪表之间采用传统的标准协议的数字通讯连接或者工业标准模拟信号连接来获取仪表的数据,然后由物联模块自带的网络通讯功能实现数据的网络转发;该方式不要求重新开发仪表,通用性好、物联功能适配简单、适配周期短;但此方式能提供的物联功能一般比较简单,数据传输的速率一般也较低,难以满足灵活、复杂的物联功能需求,且仪表整体不够紧凑;例如,文献《工业物联网网关设计》(武丽英、沈林涛,自动化仪表,2020,41(9):51-53+58.)、《基于工业物联网的智能网关设计》(张仪、杨露霞、张椅,自动化仪表,2018,39(6):43-45.)、《基于低功耗蓝牙和WebSocket的物联网数据网关》(谢佳柏、陈贤祥、胡欣宇,仪表技术与传感器,2016,1:76-78.)以及中国专利CN112669584A(徐永,耿朋,王战友.一种便携式多功能物联网终端.2021-04-16.)中公布的通用物联网关设计,仅通过Modbus通讯等方式获得仪表输出数据,实现数据的网络转发的功能,物联功能简单、数据转发速率低,且物联功能的进一步扩展受限于仪表自身的数据通讯交换功能。据此可知,一种功能强大、能灵活配置、数据转发速率高、兼容标准工业网络通讯协议、支持仪表自带的命令调试功能、提供仪表固件的OTA升级通道、同时可简单适配任意数字仪表的结构紧凑的通用型物联模块无论是对于有物联要求的新数字仪表的整体设计还是对现有仪表的物联功能拓展都具有重要的意义,能够大幅提升其物联功能的开发效率,提供强大的物联功能且兼容性好。
本发明即提供一种新的基于WI-FI的通用型多协议数字仪表物联模块,以降低现有数字仪表的物联功能拓展或新数字仪表的物联功能开发的难度,并满足不同仪表的现场通讯、远程维护和大数据云服务等灵活的物联功能的需求。
发明内容
本发明要解决目前数字仪表的物联功能或采用定制设计而导致开发周期长、面向其它仪表移植匹配难,或采用工作模式单一、功能简单的通用设计而导致只能满足简单的数据传输、不能实现复杂灵活的物联功能等问题,提供一种移植匹配简单、物联功能强大且灵活可配置的基于WI-FI的通用型多协议数字仪表物联模块。
本发明所采用的技术方案是:采用WI-FI通讯模块通过串行通讯接口与数字仪表相连,提供数字仪表与网络设备进行数据交互的高速物理通道,以满足数字仪表信息和高速实时数据的不同传输要求;WI-FI通讯模块的CPU运行专门设计的物联软件协议,包含私有仪表交互协议、私有物联交互协议、命令透传协议和MODBUS-TCP协议,以与网络中支持私有物联交互协议的设备和MODBUS-TCP协议设备连接,对数字仪表的工作数据进行缓存管理并按网络设备的请求进行数据转发,同时接收和解析网络设备的命令进行物联功能的设置和仪表工作参数的调试,并可通过命令透传协议提供的透明传输通道来支持数字仪表私有的命令调试功能以实现通过数字仪表私有的命令调试功能进行网络命令调试;提供物联API函数库,供数字仪表适配本发明的通用型物联模块使用,运行于数字仪表的CPU中,以按照WI-FI通讯模块中运行的物联软件协议的要求缓存、管理和发送数字仪表的数据并处理命令交互,从而为本发明的通用型物联模块提供简单、方便的适配方式,提高数字仪表适配物联模块的开发效率,使数字仪表具有灵活、强大的物联功能。
本发明的通用型数字仪表物联模块包括:WI-FI通讯模块1、物联软件协议2和物联API函数库3。WI-FI通讯模块1为数字仪表提供联网的物理通道;物联软件协议2运行于WI-FI通讯模块1中,用于管理设备连接、命令解析、数据/命令转发等;物联API函数库3运行于数字仪表中,用于数字仪表适配物联模块,以实现数字仪表与物联模块的正常交互。
所述WI-FI通讯模块1为WI-FI无线通讯的硬件模块,由数字仪表接口、电源管理电路、WI-FI无线微控制器、FLASH存储器、晶振电路、天线单元、烧录接口、复位电路和电平转换电路组成。
数字仪表接口用于WI-FI通讯模块1与数字仪表的连接,包含电源VPP、电源参考地GND、串行总线1和复位信号RS1的接口,以向WI-FI通讯模块1提供工作电源、数据交互和复位信号。
电源管理电路由低压差线性稳压器U1、双通道电源复用器U2和电阻R1、R2、R3组成,用于将数字仪表接口提供的电源VPP转换为WI-FI通讯模块1中各电路工作所需要的电源VCC,以使WI-FI通讯模块1可工作于2.5V~5.5V的宽电压范围,从而使得本发明可直接适配的数字仪表范围更宽;低压差线性稳压器U1为固定电压输出型线性稳压器,带高电平有效的使能输入引脚EN,输入为电源VPP,输出为电源V1;双通道电源复用器U2为二选一输出的电源复用器,有两个电源输入通道IN1和IN2、电源输出通道VOUT、施密特触发输入型的通道选择引脚PR1和开漏输出型的通道状态指示引脚ST;电源输入通道IN1接低压差线性稳压器U1的输出电源V1,电源输入通道IN2接电源VPP,通道选择引脚PR1由电源VPP经分压电阻R2和R3串联分压来驱动,状态指示引脚ST通过电阻R1上拉至电源VPP来驱动低压差线性稳压器U1的使能引脚EN;通过电阻R2、R3分压,驱动通道选择引脚PR1来设置电源VPP的阈值电压Vth,Vth小于WI-FI通讯模块1中各电路所允许的最大工作电压、大于低压差线性稳压器U1的Dropout电压与其固定输出电压V1之和;当电源电压VPP≤Vth时,双通道电源复用器U2选择通道IN2的输入电源VPP直接输出至VOUT作为工作电源VCC,即VCC=VPP,状态指示引脚ST输出低电平,低压差线性稳压器U1被禁用;当电源电压VPP>Vth时,双通道电源复用器U2选择通道IN1的输入电源V1输出至VOUT作为工作电源VCC,状态指示引脚ST输出高电平,低压差线性稳压器U1被使能从而输出稳定的电压V1,即VCC=V1;从而,使得WI-FI通讯模块1既能兼容比较大的工作电压范围,又能尽可能避免无用的额外电能消耗。
WI-FI无线微控制器为单芯片集成电路芯片,其中含有网络处理器和ARM处理器,网络处理器负责WI-FI网络通讯相关的协议处理等任务,ARM处理器用于运行物联软件协议2的软件程序。
FLASH存储器用于存储WI-FI无线微控制器中运行的物联软件协议2的软件程序。
晶振电路为WI-FI无线微控制器的正常工作提供时钟信号。
天线单元用于配合WI-FI无线微控制器收、发WI-FI无线信号,包含板载WI-FI天线和外接WI-FI天线的接口。
烧录接口用于烧写工具向WI-FI无线微控制器中烧写物联软件协议2的软件程序。
复位电路用于向WI-FI无线微控制器提供复位信号RST,RST是手动按钮复位信号和来自于数字仪表接口的复位信号RS1经电平转换电路转换后的复位信号RS2的“线”与输出。
电平转换电路用于数字仪表接口与WI-FI无线微控制器之间交互的复位信号和串口通讯信号的数字逻辑电平互转,以使数字仪表与WI-FI无线微控制器之间的数字电平相匹配。
所述物联软件协议2由私有仪表交互协议4、私有物联交互协议5、MODBUS-TCP协议6、命令透传协议7组成;私有仪表交互协议4用于物联模块与数字仪表之间的信息交互,实现数字仪表与私有物联交互协议5、MODBUS-TCP协议6和命令透传协议7之间的命令、数据的解析和转发;私有物联交互协议5用于物联模块与网络中支持私有物联交互协议5的客户端、服务器进行命令、数据交互;MODBUS-TCP协议6用于物联模块与网络中支持MODBUS-TCP协议6的设备进行命令、数据交互;命令透传协议7则用于物联模块与网络中的命令调试工具或客户端进行命令、数据交互。从而,为数字仪表提供远程数据服务、工作参数调试、现场仪表间MODBUS通讯、私有命令调试和远程固件升级的功能。
私有仪表交互协议4规定了物联模块与数字仪表之间的命令、数据交互的方式,包括仪表信息描述符8、仪表信息交互命令9、仪表信息交互流程10。
仪表信息描述符8包括仪表ID描述符、日志数据描述符、实时数据描述符、工作参数描述符。仪表ID描述符用于描述数字仪表的身份、制造信息;日志数据描述符用于描述数字仪表中可被物联模块转发至网络中的仪表工作数据及其属性;实时数据描述符用于描述数字仪表中可被物联模块以高速实时转发至网络的仪表工作数据及其属性;工作参数描述符用于描述数字仪表中可被网络设备查看、修改的仪表工作参数及其属性。所述4种仪表信息描述符中,每种描述符又包含内容描述符和容量描述符,各描述符均为字符串,且可包含多个字段;仪表ID描述符的内容描述符只能有一条,但可分多个字段,描述仪表不同方面的身份信息;日志数据描述符的内容描述符可有一条或多条,每条对应一个需发给物联模块的数字仪表中的工作数据,描述该数据是否被网络设备请求转发、变量类型、占用字节数、名称、单位、MODBUS寄存器地址;实时数据描述符的内容描述符可有一条或多条,每条对应一个需发给物联模块的数字仪表中的工作数据,描述该数据是否被网络设备请求转发、变量类型、占用字节数、名称、单位、MODBUS寄存器地址、是否支持定时查询和高速发送的发送模式、高速发送模式下的刷新率;工作参数描述符的内容描述符可有一条或多条,每条对应一个可被物联设备进行调试的数字仪表工作参数,描述该参数的序号、访问密级、变量类型、占用字节数、名称、单位、MODBUS寄存器地址、能否修改;每种仪表信息描述符中的容量描述符只有一条,描述了仪表信息描述符中的内容描述符的条数、长度信息,工作参数描述符中的容量描述符还提供工作参数的多级访问密码信息。各仪表信息描述符均由物联模块在初始化时向数字仪表发送命令请求来获取,并根据各仪表信息描述符中的容量描述符的信息来动态申请存储空间,创建相应的仪表信息描述表、数据存储表、数据索引表,以保存数字仪表发送给物联模块的内容描述符和数据。
仪表信息交互命令9包含物联模块和数字仪表之间信息交互用到的功能命令和数据命令。功能命令包括物联模块与数字仪表之间交互的请求命令和应答命令,均为单字节数字命令,包括:请求连接、请求数字仪表处理器的存储模式、请求仪表ID描述符、请求日志数据描述符、请求实时数据描述符、请求更新日志数据描述符中的发送标识、定时请求日志数据、请求更新实时数据描述符中的发送标识、定时请求实时数据、请求开始实时数据高速上传、请求停止实时数据高速上传、请求MODBUS数据、请求进行调试命令透传、请求固件程序升级传送、请求数字仪表显示消息、请求工作参数描述符、请求上传工作参数、请求修改工作参数、请求检查固件更新、请求升级固件程序、响应正确应答、响应错误应答等功能命令。数据命令包含物联模块和数字仪表之间交互的各类信息描述符、数据、调试命令、固件程序等各类信息,包括:发送标识符、透传命令、MODBUS数据位置、仪表固件代码、回响消息、存储模式、仪表信息描述符、日志数据、实时数据、MODBUS数据、工作参数数据、工作参数修改、当前固件信息、升级固件信息等数据命令。
仪表信息交互流程10包括仪表交互初始化流程、日志数据定时请求流程、实时数据定时请求流程、实时数据高速上传请求流程、实时数据高速上传停止流程、MODBUS数据请求流程、工作参数修改请求流程、命令透传请求流程、固件升级请求流程。
仪表交互初始化流程:在物联模块通电后由物联模块发起,物联模块通过发送相应的功能命令来请求与数字仪表先建立连接,然后获取、缓存数字仪表的存储模式、仪表ID描述符、仪表日志数据描述符、仪表实时数据描述符、仪表工作参数描述符、仪表工作参数数据,并通过解析仪表日志数据描述符、仪表实时数据描述符、仪表工作参数描述符中的内容描述符来申请存储空间、创建日志数据存储表、日志数据索引表、实时数据存储表、实时数据索引表、工作参数存储表、工作参数索引表,用于数字仪表的日志数据、实时数据和工作参数的索引缓存与转发,其流程依次为:建立连接→请求数字仪表处理器存储模式→请求数字仪表的仪表ID描述符→请求数字仪表的日志数据描述符→请求数字仪表的实时数据描述符→请求数字仪表的工作参数描述符→请求数字仪表的工作参数数据→初始化信息反馈。
日志数据定时请求流程、实时数据定时请求流程:两流程相同,均由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的日志数据请求命令或实时数据请求命令后,先根据网络客户端或服务器的配置信息来选择要转发的日志数据或实时数据并更新日志数据索引表或实时数据索引表、根据发送频率要求设定定时周期,然后开始定时向数字仪表发出相应的请求功能命令以获取相应的日志数据或实时数据,根据日志数据索引表或实时数据索引表将接收到的数据存储到日志数据存储表或实时数据存储表中。
实时数据高速上传请求流程、实时数据高速上传停止流程:由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的实时数据高速上传的请求命令后,先根据网络客户端或服务器的配置信息来选择要转发的实时数据并更新实时数据索引表,然后向数字仪表发出“请求开始实时数据高速上传”的请求功能命令,之后物联模块连续接收数字仪表发送的实时数据,实时数据的上传速率由数字仪表决定、并被写入到实时数据描述符中,物联模块根据实时数据索引表将接收到的数据存储到实时数据存储表中,接收到的数据达到设定的缓冲数时转发给网络客户端或服务器;物联模块接收到网络客户端或服务器的停止发送实时数据的命令时,物联模块发送“请求停止实时数据高速上传”的功能命令给数字仪表,通知数字仪表停止发送实时数据。
MODBUS数据请求流程:由网络中支持MODBUS-TCP协议的设备通过发送相应的MODBUS数据请求命令给物联模块来发起,物联模块接收到网络中的MODBUS数据请求命令后,直接向数字仪表发起MODBUS数据请求流程:先发送相应的请求功能命令,再发送请求数据的MODBUS寄存器地址和长度,然后接收数字仪表回传的MODBUS数据和MODBUS寄存器地址,以进行正确的缓存和转发。
工作参数修改请求流程:由网络客户端通过发送相应的请求命令给物联模块来发起,物联模块先发送“请求修改工作参数”命令给数字仪表,待数字仪表正确响应后再发送包含有工作参数序号和修改值的“工作参数修改”命令给数字仪表,待接收到数字仪表返回同样的“工作参数修改”命令并校验正确后,更新物联模块中存储的相应的工作参数,并通知网络客户端更改成功与否。
命令透传请求流程:由网络中的命令调试工具或客户端发起,物联模块接收到网络中的命令并识别为“透传命令”后,向数字仪表发起命令透传请求流程:先发出“请求进行调试命令透传”的功能命令给数字仪表,再发送“透传命令”给数字仪表以供数字仪表利用其私有协议解析执行,然后物联模块若接收到数字仪表回传的“回响消息”数据命令,则直接将“回响消息”转发给网络中的命令调试工具或客户端。
固件升级请求流程:由数字仪表发起,数字仪表先发送“请求检查固件更新”的功能命令给物联模块,物联模块接收到该请求功能命令后,先等待接收数字仪表发送当前固件信息并将其转发到网络中的服务器,然后接收网络服务器发送的升级固件信息并将其转发给数字仪表,此后若接收到数字仪表发送的“请求升级固件程序”的请求功能命令则返回确认命令给数字仪表,并开始从网络服务器请求数字仪表的升级固件代码,将其转发给数字仪表。
私有物联交互协议5规定了物联模块与网络中支持私有物联交互协议5的客户端、服务器之间的网络连接管理与数据交互方式。私有物联交互协议5将物联模块面向网络设备的工作模式分为3种模式:配置模式11、调试模式12、物联模式13。
配置模式11:物联模块先在STA通信模式下尝试连接WI-FI路由器、与数字仪表进行交互初始化、连接网络服务器;若不成功,则转入AP通信模式,等待网络客户端接入,由网络客户端完成物联模块连接WI-FI路由器的SSID、密码以及物联模块与数字仪表之间串口通讯波特率的配置;然后转入STA通信模式,尝试连接网络服务器,连接成功则进入物联模式13,连接不成功则进入调试模式12。
调试模式12:物联模块工作于STA通信模式,与同一局域网中支持私有物联交互协议5的客户端连接,用于物联模块的物联功能配置、调试和绑定服务器,具体包括与客户端建立连接、向客户端转发日志数据、向客户端转发实时数据、向客户端转发仪表工作参数、接受客户端修改仪表工作参数、由客户端绑定服务器;绑定完服务器且测试连接成功后,退出调试模式12则直接进入物联模式13。
物联模式13:物联模块工作于STA通信模式,与已绑定的网络中的服务器建立连接,按在调试模式12下由客户端选择的日志数据和配置的转发频率向服务器转发数字仪表的日志数据,日志数据选择和转发频率也可直接由服务器配置;物联模式13同时支持通过服务器对数字仪表进行固件升级,但要求数字仪表自身的程序中有固件升级函数。
3种工作模式的切换方式为:每次上电或复位后,物联模块先工作于配置模式11,完成连接网络路由器和仪表交互初始化;然后,物联模块尝试连接服务器,连接服务器成功则进入物联模式13,否则进入调试模式12;在调试模式12下,物联模块由客户端绑定服务器后,接收到客户端的“退出调试模式”报文即自动进入物联模式13;在物联模式13下,与物联模块在同一局域网中的客户端可主动与物联模块直接建立连接,连接建立成功后,物联模块即切换到调试模式12。
私有物联交互协议5的3种工作模式中,物联模块与客户端、服务器之间交互的报文分为UDP报文和TCP报文,帧格式如下:
UDP报文:包括“客户端连接扫描”报文、“实时数据定时转发”报文和“实时数据高速上传”报文,帧格式为“0x5A5A+帧长度+功能码+报文数据+CRC校验+0xA5A5”;
TCP报文:其它报文,帧格式为“0x5A5A+帧长度+功能码+报文数据+0xA5A5”。
各报文中,“帧长度”为整个报文的字节数;“功能码”为固定字节数的数字,用于区分不同的报文;“报文数据”为报文所发送的具体的数据、命令等内容。
私有物联交互协议5解析报文的流程为:①检查报文帧头、帧尾是否正确,正确则执行下一步,错误则丢弃网络报文;②提取帧长度信息,检查收到的报文长度是否正确,正确则执行下一步,错误则丢弃网络报文,等待下一帧网络报文;③提取功能码和报文数据,比对功能码,比对成功则执行功能码对应的解析函数解析报文数据并执行,比对失败则丢弃网络报文。
MODBUS-TCP协议6为基于FreeModbus协议栈进行裁剪和适配获得的物联模块与网络中支持MODBUS-TCP设备之间的交互协议。以FreeModbus协议为基础,删除其中的FreeModbus-RTU、FreeModbus-ASCII的内容,保留FreeModbus-TCP的内容,使用物联模块中集成的TCP/IP协议栈为FreeMosbus-TCP提供以TCP协议为基础的数据通信方式,构成MODBUS-TCP协议6。MODBUS-TCP协议6中物联模块的WI-FI通信采用Server模式。网络中支持MODBUS-TCP协议的设备只能通过物联模块获取所述私有仪表交互协议4中的日志数据描述符、实时数据描述符和工作参数描述符所描述的数字仪表中的数据;物联模块收到来自MODBUS-TCP设备发送的报文后,使用FreeModbus-TCP协议栈中的MODBUS报文解析函数提取出需要读取数据的MODBUS寄存器地址和读取长度;数据的MODBUS寄存器地址为日志数据描述符、实时数据描述符或工作参数描述符中的“MODBUS地址”,数据的读取长度为日志数据描述符、实时数据描述符或工作参数描述符中的“字节数”;然后,启动所述私有仪表交互协议4中的MODBUS数据请求流程,向数字仪表请求数据;获取数字仪表的数据之后,转发给网络中发起请求的MODBUS-TCP设备。
命令透传协议7规定了客户端、命令调试工具与数字仪表之间直接进行命令/数据交互的方式。命令透传协议7规定的网络中客户端、命令调试工具发送的透传命令的格式为所述私有仪表交互协议4中数据命令中的“透传命令”的格式,即由“@+命令原文”组成的字符串命令。物联模块接收到客户端或命令调试工具发送的由字符“@”开始的命令之后,即将其视为透传命令,直接启动所述私有仪表交互协议4中的命令透传请求流程,将接收到的“@+命令原文”格式的命令直接转发给数字仪表,供数字仪表采用其私有命令调试协议进行命令解析和执行;物联模块接收到数字仪表发送的所述私有仪表交互协议4中数据命令中的“回响消息”命令后,将其视为透传数据,由命令透传协议7直接将“回响消息”原文转发给网络中的客户端或命令调试工具。
所述物联API函数库3由IoT.lib文件14和IoT.h文件15组成,运行于数字仪表的主处理器中,用于适配所述物联软件协议2中的私有仪表交互协议4。
IoT.lib文件14中提供了供数字仪表主处理器程序中使用的与物联模块交互的结构体类型的物联数据变量IoT_DATA和API函数。API函数包括外部API函数和内部API函数:外部API函数供数字仪表主处理器程序直接调用,用于向数字仪表主处理器程序中嵌入物联模块交互管理程序;内部API函数只在外部API函数中调用,用于处理与物联模块中私有仪表交互协议4中的各种仪表信息交互。IoT.h文件15中提供了IoT.lib文件14中外部API函数的声明、物联数据变量IoT_DATA及其成员变量的各种结构体类型定义以及数字仪表适配参数的各类宏定义。
物联数据变量IoT_DATA为结构体类型,包含的成员有:仪表ID信息、日志数据集、实时数据集、工作参数集、函数指针集,各成员变量均为结构体类型。仪表ID信息:用于存放所述私有仪表交互协议4中“仪表ID描述符”中的内容描述符和容量描述符,另外还存储数字仪表的“当前固件信息”。日志数据集:用于存放需要物联转发的日志数据变量、所述私有仪表交互协议4中的“日志数据描述符”中的内容描述符和容量描述符、日志数据变量地址。实时数据集:用于存放需要物联转发的实时数据变量、所述私有仪表交互协议4中的“实时数据描述符”中的内容描述符和容量描述符、实时数据变量地址。工作参数集:用于存放可被网络客户端调试的数字仪表的工作参数、所述私有仪表交互协议4中的“工作参数描述符”中的内容描述符和容量描述符、工作参数变量地址。函数指针集:包含仪表参数修改函数指针、私有命令调试函数指针、私有固件升级函数指针;仪表参数修改函数指针用于指向数字仪表主处理器中新定义的仪表参数修改函数,私有命令调试函数指针用于指向数字仪表私有的命令调试函数,私有固件升级函数指针用于指向数字仪表私有的固件升级函数。物联数据变量IoT_DATA及其各级子成员变量的结构体类型在IoT.h中根据不同数字仪表的实际物联功能需求进行更改,各成员变量均在数字仪表主处理器程序中进行初始化,并随数字仪表对应变量的更新而更新
IoT.lib文件14中的外部API函数包括:IoT初始化函数、IoT交互函数、实时数据转发函数。IoT初始化函数:在数字仪表主处理器的程序初始化阶段调用,检测数字仪表主处理器的存储模式为“大端模式”还是“小端模式”。IoT交互函数:在数字仪表的串行接口的接收中断函数中调用,该函数首先调用内部API函数中的“串行接口读写函数”读取串口接收到的数据或命令,然后按照所述私有仪表交互协议4解析命令并调用相应的内部API函数或外部API函数中的“实时数据转发函数”配合物联模块完成所述私有仪表交互协议4中的仪表信息交互流程10。实时数据转发函数:该函数在数字仪表主处理器程序和“IoT交互函数”中调用,“IoT交互函数”接收到物联模块发送的功能命令“定时请求实时数据”时调用该函数发送相应的“实时数据”给物联模块;“IoT交互函数”接收到物联模块发送的功能命令“请求开始实时数据高速上传”时使能实时数据高速上传功能并由数字仪表主处理器程序周期性地调用该函数高速上传“实时数据”给物联模块。
IoT.lib文件14中的内部API函数包括:串行接口读写函数、存储模式转发函数、仪表ID描述符转发函数、日志数据描述符转发函数、实时数据描述符转发函数、工作参数描述符转发函数、工作参数转发函数、工作参数更改函数、日志数据发送标识更新函数、实时数据发送标识更新函数、日志数据转发函数、MODBUS-TCP数据转发函数,用于外部API函数调用实现与物联模块按所述私有仪表交互协议4进行信息交互。其中,串行接口读写函数用于发送和接收数据,对所有数据均采用统一的字符型数据收发操作,支持单字节、双字节字符型数据的收发功能;工作参数更改函数调用物联数据变量IoT_DATA中仪表参数修改函数指针指向的数字仪表主处理器中新定义的“仪表参数修改函数”对仪表的工作参数进行修改。
IoT.h文件15用于数字仪表适配参数的宏定义和IoT.lib文件14中的物联数据变量IoT_DATA的结构体类型定义、IoT_DATA外部变量声明、外部API函数声明。其中,数字仪表适配参数的宏定义包括主处理器字符型数据字节数、主处理器串口信息的宏定义;主处理器字符型数据字节数宏定义用于不同处理器的字符型数据占用的字节数的宏定义,可宏定义为单字节或双字节;主处理器串口信息宏定义用于宏定义数字仪表主处理器上与物联模块连接的串口的物理信息,包括串口接收缓冲器地址、串口发送缓冲器地址、接收缓冲器满标志寄存器地址、发送缓冲器满标志寄存器地址、接收缓冲器满标志位置、发送缓冲器满标志位置、接收缓冲器接收到新数据时的接收缓冲器满标志值、发送缓冲器为空时的发送缓冲器满标志值。
利用API函数库3对数字仪表与物联模块之间进行适配的方式为:①将IoT.lib文件14添加到数字仪表的主处理器程序中,并在其程序文件中包含头文件IoT.h;②在头文件IoT.h中完成数字仪表适配参数宏定义的修改;③根据数字仪表需要进行物联交互的各类数据,在头文件IoT.h中修改变量IoT_DATA及其子成员的结构体类型的定义,其中,IoT_DATA结构体类型的成员“日志数据集”、“实时数据集”和“工作参数集”的日志数据、实时数据、工作参数的变量个数和类型根据实际的物联交互需求进行增删或修改,“日志数据描述符”、“实时数据描述符”和“工作参数描述符”则按变量个数和描述长度来定义内容描述符数组的大小和容量描述符的大小,“日志数据变量地址”、“实时数据变量地址”和“工作参数变量地址”的数组长度则为变量个数;④在数字仪表程序文件中定义“仪表参数修改函数”以用于物联客户端修改调试仪表工作参数,此函数带一个输入形参,形参为工作参数序号,此函数中根据工作参数序号将IoT_DATA变量的成员中修改过的工作参数值赋值给仪表实际的工作参数变量;如不需提供物联客户端修改仪表工作参数的功能则可不定义此函数;⑤在数字仪表主程序的初始化阶段调用外部API函数中的“IoT初始化函数”,并对物联数据变量IoT_DATA进行初始化;其中,仪表参数修改函数指针指向新定义的“仪表参数修改函数”,私有命令调试函数指针指向数字仪表私有的命令调试函数,私有固件升级函数指针指向数字仪表私有的固件升级函数;若数字仪表主处理器程序中无仪表参数修改函数、私有命令调试函数或私有固件升级函数,则相应的函数指针初始化为NULL;⑥在数字仪表软件程序中数据刷新的位置或某个统一的位置插入IoT_DATA变量成员的更新指令;⑦在数字仪表主处理器的串口接收中断服务子程序中调用外部API函数中的“IoT交互函数”;⑧在数字仪表主处理器程序中适当位置调用外部API函数中的“实时数据转发函数”,让其被周期性执行,并将该执行周期更新到物联数据变量IoT_DATA的成员“实时数据集”的子成员“实时数据描述符”的“内容描述符”中的“刷新率”中。
本发明的优点是:通过设计兼容2.5V~5.5V电源的WI-FI通讯模块、兼容不同仪表物联功能需求的物联软件协议、兼容不同处理器工作方式的物联API函数库,从硬件和软件两个方面提供了整套的数字仪表通用物联方案并提供了简易的适配方式,移植操作简单,从而能够大幅降低现有数字仪表物联功能拓展和新型数字仪表物联功能开发的难度;另外,借助WI-FI的高速传输性能,通过专门设计的物联软件协议和物联API函数库的搭配及其对MODBUS-TCP协议和命令透传的支持,本发明同时还提供了日志数据定时转发、实时数据高速转发、仪表工作参数调试、MODBUS现场通讯、仪表私有命令调试、仪表固件升级等强大的物联功能,且用户可根据不同数字仪表的物联功能需求在API函数库中进行灵活的物联功能配置。
附图说明
图1是本发明的技术方案示意图;
图2是本发明具体实施例的物联模块硬件结构示意图;
图3是本发明具体实施例的物联模块中的电源管理电路原理示意图;
图4是本发明具体实施例的物联软件协议的组成示意图;
图5是本发明具体实施例的物联模块与数字仪表交互初始化的流程;
图6是本发明具体实施例的物联模块请求与数字仪表建立连接的流程;
图7是本发明具体实施例的物联模块请求数字仪表处理器存储模式的流程;
图8是本发明具体实施例的物联模块请求数字仪表的仪表信息描述符的流程;
图9是本发明具体实施例的物联模块请求数字仪表工作参数数据的流程;
图10是本发明具体实施例的物联模块定时请求数字仪表日志数据或实时数据的流程;
图11是本发明具体实施例的物联模块请求和停止数字仪表高速上传实时数据的流程;
图12是本发明具体实施例的物联模块向数字仪表请求MODBUS数据的流程;
图13是本发明具体实施例的物联模块请求修改数字仪表工作参数的流程图;
图14是本发明具体实施例的物联模块私有物联交互协议在配置模式下的工作流程;
图15是本发明具体实施例的物联模块私有物联交互协议在调试模式下主动请求连接客户端的流程;
图16是本发明具体实施例的物联模块私有物联交互协议在物联模式下请求连接服务器的流程;
图17是本发明具体实施例的物联模块私有物联交互协议的三种工作模式切换方式示意图;
图18是本发明具体实施例的物联模块API函数库组成示意图;
图19是本发明具体实施例的物联模块API函数库与数字仪表程序进行物联数据交互的变量结构。
具体实施方式
下面结合附图对本发明做进一步说明:
本发明的设计思想是:设计一种基于WI-FI的通用型多协议数字仪表物联模块,能直接适配不同类型的数字仪表,以方便其物联功能的开发、拓展;借助WI-FI通信技术为数字仪表物联功能的数据传输提供高速的物理通道以实现数据的高速转发;设计专门的物联软件协议,包含私有仪表交互协议、私有物联交互协议、命令透传协议,并移植融合MODBUS-TCP协议,实现数字仪表与网络中的支持私有物联交互协议的设备和MODBUS-TCP协议设备之间进行数据交互,从而实现通过支持私有物联交互协议的客户端软件借助物联网对数字仪表进行维护调试、通过支持私有物联交互协议的服务器收集数字仪表工作数据以用于大数据分析并提供数字仪表固件升级服务、通过简易的命令透传协议支持数字仪表私有的命令调试功能以通过客户端软件或命令调试工具直接对数字仪表进行命令调试、通过MODBUS通讯实现数字仪表与其它支持MODBUS-TCP协议的现场仪表间的数据传输功能;设计适配物联模块的物联API函数库,兼容不同长度字符型数据和存储模式的处理器,为不同类型的数字仪表提供可以直接调用的API函数以对接物联模块中的物联软件协议,降低不同类型数字仪表适配物联模块的难度;硬件上,物联模块可工作于2.5V~5.5V的电源,采用串口作为与数字仪表进行数据交互的接口,从而可适配大多数数字仪表;据此,设计的通用型数字仪表物联模块可为不同类型的数字仪表提供简便的物联功能拓展、开发方式,从而可为数字仪表提供数据转发、参数调试、现场MODBUS通讯、私有命令调试、远程维护升级和大数据云服务等灵活、强大的物联功能。
图1是本发明的技术方案示意图。本发明的通用型数字仪表物联模块包括:WI-FI通讯模块1、物联软件协议2和物联API函数库3。WI-FI通讯模块1为数字仪表提供联网物理通道;物联软件协议2运行于WI-FI通讯模块1中,用于管理设备连接、命令解析、数据/命令转发等;物联API函数库3运行于数字仪表中,用于数字仪表适配物联模块,以实现数字仪表与物联模块的正常交互。
所述WI-FI通讯模块1为WI-FI无线通讯的硬件模块,其功能结构示意图如图2所示,由数字仪表接口、电源管理电路、WI-FI无线微控制器、FLASH存储器、晶振电路、天线单元、烧录接口、复位电路和电平转换电路组成。
数字仪表接口:用于WI-FI通讯模块1与数字仪表的连接,包含电源VPP、电源参考地GND、串行总线1和复位信号RS1的接口,以向WI-FI通讯模块1提供工作电源、数据交互和复位信号。
电源管理电路:电路原理示意图如图3所示,由低压差线性稳压器U1、双通道电源复用器U2和电阻R1、R2、R3组成,用于将数字仪表接口提供的电源VPP转换为WI-FI通讯模块1中各电路工作所需要的电源VCC,以使WI-FI通讯模块1可工作于2.5V~5.5V的宽电压范围,从而使得本发明可直接适配的数字仪表范围更宽。低压差线性稳压器U1为固定电压输出型线性稳压器,带高电平有效的使能输入引脚EN;低压差线性稳压器U1的输入为电源VPP,输出为电源V1,V1小于WI-FI通讯模块1中各电路工作电源VCC所允许的最大电压。双通道电源复用器U2为能对两路输入电源进行二选一输出的电源复用器,有电源输入通道IN1、电源输入通道IN2、电源输出VOUT、施密特触发输入型的通道选择引脚PR1和开漏输出型的通道状态指示引脚ST;电源输入通道IN1的输入为低压差线性稳压器U1的输出电源V1,电源输入通道IN2的输入为电源VPP,通道选择引脚PR1由电源VPP经分压电阻R2和R3串联分压来驱动,状态指示引脚ST通过电阻R1上拉至电源VPP来驱动低压差线性稳压器U1的使能引脚EN;通过电阻R2、R3分压驱动通道选择引脚PR1来设置电源VPP的阈值电压Vth,Vth小于WI-FI通讯模块1中各电路工作电源VCC所允许的最大电压,但Vth大于低压差线性稳压器U1的Dropout电压与其固定输出电压V1之和;当电源电压VPP≤Vth时,通道选择引脚PR1的输入电平小于双通道电源复用器U2内部的参考电平,双通道电源复用器U2选择通道IN2的输入电源VPP直接输出至VOUT作为工作电源VCC,即VCC=VPP,状态指示引脚ST输出低电平,低压差线性稳压器U1被禁用;当电源电压VPP>Vth时,通道选择引脚PR1的输入电平大于双通道电源复用器U2内部的参考电平,双通道电源复用器U2选择通道IN1的输入电源V1输出至VOUT作为工作电源VCC,状态指示引脚ST输出高电平,低压差线性稳压器U1被使能从而输出稳定的电压V1,即VCC=V1。据此,在VPP≤Vth时,工作电源VCC直接来自于电源VPP,低压差线性稳压器U1不工作;而在VPP>Vth时,低压差线性稳压器U1开始工作以提供符合工作电压要求的VCC;从而,使得WI-FI通讯模块1既能兼容比较大的工作电压范围,又能尽可能避免无用的额外电能消耗。
WI-FI无线微控制器:为单芯片集成电路芯片CC3220SF,其中含有网络处理器和ARM处理器,网络处理器负责WI-FI网络通讯相关的协议处理等任务,ARM处理器用于运行物联软件协议2的软件程序。
FLASH存储器用于存储WI-FI无线微控制器中运行的物联软件协议2的软件程序。
晶振电路:为WI-FI无线微控制器的正常工作提供时钟信号。
天线单元:用于配合WI-FI无线微控制器收、发WI-FI无线信号,包含板载WI-FI天线和外接WI-FI天线的接口。
烧录接口:用于烧写工具向WI-FI无线微控制器中烧写物联软件协议2的软件程序。
复位电路:用于向WI-FI无线微控制器提供复位信号RST;复位信号RST是手动按钮复位信号和来自于数字仪表接口的复位信号RS1经电平转换电路转换后的复位信号RS2的“线”与输出;
电平转换电路:用于数字仪表接口与WI-FI无线微控制器之间交互的复位信号和串口通讯信号的数字逻辑电平互转,即对数字仪表接口侧的VPP逻辑高电平与WI-FI无线微控制器侧的VCC逻辑高电平进行互转,以使数字仪表与WI-FI无线微控制器之间的数字电平相匹配。
所述物联软件协议2由私有仪表交互协议4、私有物联交互协议5、MODBUS-TCP协议6、命令透传协议7组成,其组成示意图如图4所示;私有仪表交互协议4用于物联模块与数字仪表之间的信息交互,实现数字仪表与私有物联交互协议5、MODBUS-TCP协议6和命令透传协议7之间的命令、数据的解析和转发;私有物联交互协议5用于物联模块与网络中支持私有物联交互协议5的客户端、服务器进行命令、数据交互;MODBUS-TCP协议6用于物联模块与网络中支持MODBUS-TCP协议6的设备进行命令、数据交互;命令透传协议7则用于物联模块与网络中的命令调试工具或客户端进行命令、数据交互。从而,为数字仪表提供远程数据服务、工作参数调试、现场仪表间MODBUS通讯、私有命令调试和远程固件升级的功能。
私有仪表交互协议4规定了物联模块与数字仪表之间的命令、数据交互的方式,包括仪表信息描述符8、仪表信息交互命令9、仪表信息交互流程10。
仪表信息描述符8包括仪表ID描述符、日志数据描述符、实时数据描述符、工作参数描述符;每种描述符又包含内容描述符和容量描述符。各描述符均为字符串;内容描述符以符号“[”和“]”来开头和结尾,容量描述符以符号“<”和“>”来开头和结尾;一串描述符分为多个字段,字段之间用逗号“,”隔开。各类型描述符格式如下:
①仪表ID描述符
内容描述符:[ID标识1,值1,ID标识2,值2,…,ID标识n,值n]
容量描述符:<ID,描述符条数,描述符最大字节数>
内容描述符只有一条;其中,“ID标识x”为仪表身份信息的标识,“值x”为“ID标识x”对应的具体的值,x=1,2,…,n,n为仪表身份信息标识的数量,n由数字仪表决定,各“ID标识x”和“值x”均可独立定义为字符或字符组合,例如:[品名,流量计,品牌,AA,型号,EMF,序列号,000000,生产年月,202001,用户,MC]标识数字仪表的品名为流量计、品牌为AA、型号为EMF、序列号为000000、生产年月为2020年1月、用户是MC。容量描述符只有一条;其中,字符“ID”表示该描述符描述的是仪表ID描述符的容量信息;“描述符条数”表示仪表ID描述符的内容描述符的条数;“描述符最大字节数”表示仪表ID描述符的全部内容描述符中最长的一条描述符的字节数。例如,<ID,1,40>表示仪表ID描述符的内容描述符有1条,长度为40个字节。
②日志数据描述符
内容描述符:[发送标识,类型,字节数,名称,单位,MODBUS地址]
容量描述符:<LG,描述符条数,描述符最大字节数>
内容描述符可有多条;每个日志数据对应一条日志数据描述符的内容描述符;其中,“发送标识”用于标识该数据是否发送至物联网,为大写字母“Y”表示发送,为大写字母“N”表示不发送;“类型”用于标识该数据的变量类型,为大写字母“C”表示无符号字符型,为小写字母“c”表示有符号字符型,为大写字母“I”表示无符号整型,为小写字母“i”表示有符号整型,为大写字母“L”表示无符号长整型,为小写字母“l”表示有符号长整型,为大写字母“F”或小写字母“f”表示单精度浮点数,为大写字母“D”或小写字母“d”表示双精度浮点型;“字节数”表示该数据在存储器中所占的字节数;“名称”表示该数据所对应的参数名称;“单位”表示该数据所对应的度量单位;“MODBUS地址”表示该数据所对应的MODBUS寄存器地址,用于支持MODBUS-TCP协议的设备的数据请求。例如,“[Y,F,4,流速,m/s,30001]”表示数字仪表的数据“流速”为单精度浮点型数据,占用4个字节存储空间,单位为“m/s”,被选定发送至物联网,对应的MODBUS寄存器地址为30001。容量描述符只有一条;其中,字符“LG”表示该描述符描述的是日志数据描述符的容量信息;“描述符条数”表示日志数据描述符的内容描述符的条数;“描述符最大字节数”表示日志数据描述符的全部内容描述符中最长的一条描述符的字节数。例如,<LG,10,25>表示日志数据描述符的内容描述符有10条,最长的一条占用25个字节。
③实时数据描述符:
内容描述符:[发送标识,类型,字节数,名称,单位,MODBUS地址,发送模式,刷新率]
容量描述符:<RT,描述符条数,描述符最大字节数>
内容描述符可有多条;每个实时数据对应一条实时数据描述符的内容描述符;其中,“发送标识”、“类型”、“字节数”、“名称”、“单位”、“MODBUS地址”的含义均与日志数据描述符中相对应字段的含义相同;“发送模式”表示该数据所支持的实时发送模式,为字符“0”表示只支持“定时查询”,为字符1表示支持“定时查询”与“高速发送”两种模式;“刷新率”则表示该数据在“高速发送”模式下每秒钟发送的次数,所有实时数据描述符中内容描述符中的“刷新率”相同。例如,“[Y,F,4,压力,kPa,30002,1,1000]”表示数字仪表的数据“压力”为单精度浮点型数据,占用4个字节存储空间,单位为“kPa”,被选定发送至物联网,对应的MODBUS寄存器地址为30002,其支持“定时查询”和“高速发送”两种数据发送模式,“高速发送”模式下每秒钟发送1000次。容量描述符只有一条;其中,字符“RT”表示该描述符描述的是实时数据描述符的容量信息;“描述符条数”表示实时数据描述符的内容描述符的条数;“描述符最大字节数”表示实时数据描述符的全部内容描述符中最长的一条描述符的字节数。例如,<RT,4,30>表示实时数据描述符的内容描述符有4条,最长的一条占用30个字节。
④工作参数描述符
内容描述符:[序号,密级,类型,字节数,名称,单位,MODBUS地址,写使能]
容量描述符:<WP,描述符条数,描述符最大字节数,密码1,密码2,…,密码p>
内容描述符可有多条;每个工作参数对应一条工作参数描述符的内容描述符;其中,“序号”为该工作参数的数字编号;“密级”用于设定该工作参数的密码保护级别,用数字表示,数字小的密级低、数字大的密级高,数字为0时表示访问该工作参数无需密码,其它密级则均对应有一个密码,密级和密码均根据仪表的要求进行自定义,高密级的密码可以访问低密级的工作参数,低密级的密码不可访问高密级的工作参数;“类型”、“字节数”、“名称”、“单位”、“MODBUS地址”的含义均与日志数据描述符中相对应字段的含义相同;“写使能”用于标识该工作参数是否可被修改,为数字0时表示不能修改,为数字1时表示可修改。例如,“[8,1,F,4,量程上限,m/s,40001,1]”表示数字仪表中的第8个工作参数“量程上限”为单精度浮点型数据,占用4个字节存储空间,单位为“m/s”,对应的MODBUS寄存器地址为40001,可修改,访问受一级密码保护。容量描述符只有一条;其中,字符“WP”表示该描述符描述的是工作参数描述符的容量信息;“描述符条数”表示工作参数描述符的内容描述符的条数;“描述符最大字节数”表示工作参数描述符的全部内容描述符中最长的一条描述符的字节数;“密码x”对应为内容描述符中密级为数字x时的密码,x=1,2,…,p。例如,<WP,50,35,abc,defg,h1wz2>表示工作参数描述符的内容描述符有50条,最长的一条占用35个字节,有3级保护密码,密级1对应的密码为“abc”、密级2对应的密码为“defg”、密级3对应的密码为“h1wz2”。
仪表信息描述符8中的各仪表信息描述符均由物联模块在初始化时向数字仪表发送命令请求来获取,并根据各仪表信息描述符中的容量描述符的信息来动态申请存储空间,创建相应的仪表信息描述表、数据存储表、数据索引表,以保存数字仪表发送给物联模块的内容描述符和数据;其中,“日志数据描述符”和“实时数据描述符”中的“发送标识符”可由网络中的客户端更改并发送给物联模块,由物联模块转发给数字仪表以对其配置进行更改。
仪表信息交互命令9包含物联模块和数字仪表之间信息交互用到的功能命令和数据命令。
功能命令包括物联模块与数字仪表之间交互的请求命令和应答命令,均为单字节数字命令;具体功能命令、类型、发送方、含义如下:
①0xCC:请求命令,物联模块发送,请求连接;
②0x01:请求命令,物联模块发送,请求数字仪表处理器的存储模式;
③0x02:请求命令,物联模块发送,请求仪表ID描述符;
④0x03:请求命令,物联模块发送,请求日志数据描述符;
⑤0x04:请求命令,物联模块发送,请求实时数据描述符;
⑥0x05:请求命令,物联模块发送,请求更新日志数据描述符中的发送标识;
⑦0x06:请求命令,物联模块发送,请求日志数据,定时查询模式;
⑧0x07:请求命令,物联模块发送,请求更新实时数据描述符中的发送标识;
⑨0x08:请求命令,物联模块发送,请求实时数据,定时查询模式;
⑩0x09:请求命令,物联模块发送,请求开始实时数据高速上传;
Figure BDA0003113344910000181
0x0A:请求命令,物联模块发送,请求停止实时数据高速上传;
Figure BDA0003113344910000182
0x0B:请求命令,物联模块发送,请求MODBUS数据;
Figure BDA0003113344910000183
0x0C:请求命令,物联模块发送,请求进行调试命令透传;
Figure BDA0003113344910000184
0x0D:请求命令,物联模块发送,请求固件程序的升级传送;
Figure BDA0003113344910000185
0x0E:请求命令,物联模块发送,请求数字仪表显示消息;
Figure BDA0003113344910000186
0x10:请求命令,物联模块发送,请求工作参数描述符;
Figure BDA0003113344910000187
0x11:请求命令,物联模块发送,请求上传工作参数;
Figure BDA0003113344910000188
0x12:请求命令,物联模块发送,请求修改工作参数;
Figure BDA0003113344910000189
0xF0:请求命令,数字仪表发送,请求检查固件更新;
Figure BDA0003113344910000191
0xF5:请求命令,数字仪表发送,请求升级固件程序;
Figure BDA0003113344910000192
0xAA:应答命令,物联模块、数字仪表发送,响应正确;
Figure BDA0003113344910000193
0xFF:应答命令,物联模块、数字仪表发送,响应错误。
数据命令包含物联模块和数字仪表之间交互的各类信息描述符、数据、调试命令、固件程序等信息;具体数据命令的类别、发送方、格式、功能如下:
①发送标识符:由物联模块发送,格式为由字符“Y”和“N”组成的字符串命令,功能为物联模块将日志数据或实时数据中各数据“是否被请求”的状态发送给数字仪表以更新日志数据描述符或实时数据描述符中的“发送标识符”,“Y”表示被网络中的设备请求,“N”表示未被网络中的设备请求;
②透传命令:由物联模块发送,格式为由“@+命令原文”组成的字符串命令,功能为对仪表进行命令调试,亦用于兼容数字仪表自带的命令调试功能;
③MODBUS数据位置:由物联模块发送,格式为由“MODBUS寄存器地址+读取长度”原文组成的数字命令,功能为表达MODBUS-TCP协议设备请求的数据在数字仪表中的MODBUS寄存器地址和数据的字节数;
④仪表固件代码:由物联模块发送,格式为由仪表固件程序原文组成的多字节数字命令,功能为传输固件程序代码给数字仪表以进行固件升级;
⑤回响消息:由物联模块或数字仪表发送,格式为由消息原文组成的字符串命令,功能为物联模块与数字仪表之间相互回传各类消息;
⑥存储模式:由数字仪表发送,格式为“0x01+存储模式+0xAA”组成的多字节数字命令,功能为将数字仪表主处理器所采用的存储模式发送给物联模块,命令中的存储模式用数字表示,0表示“小端存储”模式、1表示“大端存储”模式;
⑦仪表信息描述符:由数字仪表发送,格式为由仪表信息描述符8中各仪表信息描述符原文组成的字符串命令,功能为传输各类仪表信息描述符中的内容描述符、容量描述符给物联模块;
⑧日志数据:由数字仪表发送,格式为由“0x06+数据字节数+顺序排列的日志数据+0xAA”组成的多字节数字命令,功能为数字仪表按照日志数据描述符中内容描述符的排列顺序及“发送标识符”的状态发送日志数据给物联模块;
⑨实时数据:由数字仪表发送,格式为由“0x08+数据字节数+顺序排列的实时数据+0xAA”组成的多字节数字命令,功能为数字仪表按照实时数据描述符中内容描述符的排列顺序及“发送标识符”的状态发送实时数据给物联模块;
⑩MODBUS数据:由数字仪表发送,格式为由“0x0B+数据字节数+数据+MODBUS寄存器地址+0xAA”组成的多字节数字命令,功能为数字仪表发送MODBUS-TCP协议设备请求的数据给物联模块;
Figure BDA0003113344910000201
工作参数数据:由数字仪表发送,格式为由“0x55+数据字节数+顺序排列的工作参数+0xAA”组成的多字节数字命令,功能为数字仪表按照工作参数描述符中内容描述符的排列顺序发送工作参数给物联模块;
Figure BDA0003113344910000202
工作参数修改:由物联模块或数字仪表发送,格式为由“0x5A+工作参数序号+工作参数修改值+0xAA”组成的多字节数字命令,功能为物联模块将网络设备请求更改的仪表工作参数的新参数值转发给数字仪表,数字仪表更新工作参数后将命令原文回传给物联模块以确认更改;
Figure BDA0003113344910000203
当前固件信息:由数字仪表发送,格式为由“0xF0+数字仪表中当前固件版本号原文”组成的字符串命令,功能为数字仪表发送当前固件信息给物联模块用于检查是否有固件更新;
Figure BDA0003113344910000204
升级固件信息:由物联模块发送,格式为由“0xF1+服务器上数字仪表升级固件的版本号原文”组成的字符串命令,功能为告知数字仪表当前服务器上最新的仪表固件版本号。
仪表信息交互流程10包括仪表交互初始化流程、日志数据定时请求流程、实时数据定时请求流程、实时数据高速上传请求流程、实时数据高速上传停止流程、MODBUS数据请求流程、工作参数修改请求流程、命令透传请求流程、固件升级请求流程。
仪表交互初始化流程在物联模块通电后由物联模块发起,其流程依次为:建立连接→请求数字仪表处理器存储模式→请求数字仪表的仪表ID描述符→请求数字仪表的日志数据描述符→请求数字仪表的实时数据描述符→请求数字仪表的工作参数描述符→请求数字仪表的工作参数数据→初始化信息反馈,如图5所示。
建立连接的步骤如图6所示:①物联模块发送连接请求命令“0xCC”给数字仪表;②物联模块等待接收数字仪表返回的正确应答命令“0xAA”,若未接收到或返回命令不正确则重发请求命令“0xCC”直至循环请求重发次数达到上限,若物联模块接收到数字仪表的应答命令“0xAA”则表示建立连接成功,若一直未接收到“0xAA”则表示建立连接失败。
请求数字仪表处理器存储模式的步骤如图7所示:①物联模块发送存储模式请求命令“0x01”给数字仪表;②物联模块等待接收并校验数字仪表返回的“存储模式”命令,若接收超时或校验不正确则循环发送请求命令“0x01”给数字仪表直至循环请求重发次数达到上限,若接收到正确的“存储模式”命令则表示请求存储模式成功并保存存储模式,若一直未接收到正确的“存储模式”命令则表示请求存储模式失败。
数字仪表的仪表ID描述符、日志数据描述符、实时数据描述符和工作参数描述符的请求流程相同,如图8所示,各仪表信息描述符的请求步骤为:①物联模块发送仪表信息描述符请求命令,即,若请求仪表ID描述符则发命令“0x02”,若请求日志数据描述符则发命令“0x03”,若请求实时数据描述符则发命令“0x04”,若请求工作参数描述符则发命令“0x10”;②物联模块接收并校验数字仪表发送的仪表信息描述符的容量描述符,若超时未接收到或校验不正确则发送命令“0xFF”请求数字仪表重发直至循环请求重发的次数达到上限,若接收到正确的容量描述符则解析容量描述符,并根据其描述的内容描述符的条数和最大字节数动态申请用于存储内容描述符的仪表信息描述表,即,仪表ID信息描述表、日志数据描述表、实时数据描述表、工作参数描述表;③物联模块发送响应命令“0xAA”给数字仪表请求内容描述符;④物联模块逐条接收并校验数字仪表发送的内容描述符,若超时未接收到或校验不正确则发送命令“0xFF”请求重发直至循环请求重发的次数达到上限,若接收到正确的内容描述符则将其顺序存入仪表信息描述表;⑤对于日志数据描述表、实时数据描述表、工作参数描述表,逐条解析描述表中的内容描述符,获取内容描述符所描述的数据字节数、数据顺序和数据总长度,动态申请存储空间,创建数据存储表和数据索引表,即根据日志数据描述表中的内容描述符创建日志数据存储表与日志数据索引表,根据实时数据描述表中的内容描述符创建实时数据存储表与实时数据索引表,根据工作参数描述表中的内容描述符创建工作参数存储表与工作参数索引表;⑥发送应答命令“0xAA”给数字仪表,表示请求仪表信息描述符成功。若上述第②步或第④步一直未接收到正确的描述符,则表示请求仪表信息描述符失败。
请求数字仪表的工作参数数据的流程如图9所示:①物联模块发送请求命令“0x11”给数字仪表以请求数字仪表发送全部的工作参数;②物联模块接收并解析数字仪表发送的“工作参数数据”命令,获取其中的数据;③根据工作参数索引表将接收到的数据存储到工作参数存储表中。
初始化信息反馈即为物联模块在前述仪表交互初始化流程结束后,将初始化成功或具体失败节点的消息发送给数字仪表,以供其显示模块显示。
日志数据定时请求和实时数据定时请求的流程相同,均由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的日志请求命令或实时数据请求命令后,先根据网络客户端或服务器的配置信息来设定需要请求的日志数据或实时数据的“发送标识符”和发送频率,然后开始向数字仪表发起请求命令以获取相应的日志数据或实时数据。具体请求流程如图10所示:①物联模块发送请求命令“0x05”或“0x07”给数字仪表以请求更新数字仪表中日志数据描述符或实时数据描述符中的“发送标识”;②物联模块发送日志数据或实时数据的“发送标识符”给数字仪表;③物联模块接收并校验数字仪表返回的其所收到的“发送标识符”,更新物联模块中的日志数据索引表或实时数据索引表,以指示接下来请求并接收到的日志数据或实时数据的正确存放位置;④由物联模块自身的定时器根据设定的发送频率来定时发送请求命令“0x06”或“0x08”给数字仪表以请求数字仪表发送选定的日志数据或实时数据,物联模块接收并解析数字仪表发送的“日志数据”或“实时数据”命令,获取其中的数据,并根据日志数据索引表或实时数据索引表将接收到的数据存储到日志数据存储表或实时数据存储表中,然后转发给网络客户端或服务器;其中,数字仪表在每次接收到物联模块发送的请求命令“0x06”或“0x08”后均只将日志数据描述符或实时数据描述符中“发送标识”为字符“Y”所对应的日志数据或实时数据按顺序发送给物联模块。
实时数据高速上传请求流程也由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的实时数据高速上传的请求命令后,先根据网络客户端或服务器的配置信息来设定需要请求的实时数据的“发送标识符”,然后开始向数字仪表发起请求命令以获取相应的实时数据。具体请求流程如图11所示:①物联模块发送请求命令“0x07”给数字仪表以请求更新数字仪表中实时数据描述符中的“发送标识”;②物联模块发送实时数据的“发送标识符”给数字仪表;③物联模块接收并校验数字仪表返回的其所收到的“发送标识符”,更新物联模块中的实时数据索引表,以指示接下来接收到的实时数据的正确存放位置;④物联模块发送请求命令“0x09”给数字仪表以请求数字仪表高速发送选定的实时数据;⑤物联模块连续接收并解析数字仪表发送的“实时数据”命令,获取其中的数据,并根据实时数据索引表将接收到的数据存储到实时数据存储表中,接收到的数据达到设定的缓冲数时转发给网络客户端或服务器。其中,数字仪表接收到物联模块发送的请求命令“0x09”后,均只将实时数据描述符中“发送标识”为字符“Y”所对应的实时数据以“刷新率”所表示的发送频率实时发送给物联模块。
实时数据高速上传停止流程同样由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的停止发送实时数据的命令时,物联模块发送请求命令“0x0A”给数字仪表,以通知数字仪表停止发送实时数据。
MODBUS数据请求流程由网络中支持MODBUS-TCP协议的设备通过发送相应的MODBUS数据请求命令给物联模块来发起,物联模块接收到网络中的MODBUS数据请求命令后,直接向数字仪表发起MODBUS数据请求流程。具体流程如图12所示:①物联模块发送请求命令“0x0B”给数字仪表以请求MODBUS数据;②物联模块发送请求数据的“MODBUS数据位置”给数字仪表;③物联模块接收数字仪表返回的“MODBUS数据”命令,解析命令获取MODBUS数据和MODBUS寄存器地址,比对MODBUS寄存器地址,并将MODBUS数据转发给网络中的相应的数据请求源设备。
工作参数修改请求流程由网络中的客户端通过发送相应的请求命令给物联模块来发起;物联模块接收到网络客户端的更改数字仪表工作参数的请求后,先解析网络客户端的报文获取要更改的工作参数序号与工作参数修改值,然后向数字仪表发起工作参数修改请求流程。具体流程如图13所示:①物联模块发送请求命令“0x12”给数字仪表;②物联模块等待接收数字仪表返回的正确应答命令“0xAA”,若未接收到或返回命令不正确则重发请求命令“0x12”直至循环请求重发次数达到上限宣告“工作参数修改失败”;③若物联模块接收到数字仪表的应答命令“0xAA”且循环请求次数未超限,则向数字仪表发送“工作参数修改”命令,然后等待接收数字仪表回传的“工作参数修改”命令;④若接收到数字仪表回传的“工作参数修改”命令且校验正确、未超时,则更新物联模块中的工作参数存储表,并通知网络中的客户端修改仪表工作参数成功;否则,通知网络中的客户端修改仪表工作参数失败。
命令透传请求流程由网络中的命令调试工具或客户端发起;物联模块接收到网络中的命令透传请求的命令后,解析获取要发送给数字仪表的透传命令,然后向数字仪表发起命令透传请求流程,具体流程为:①物联模块发送请求命令“0x0C”给数字仪表以请求命令透传;②物联模块发送“透传命令”给数字仪表以供数字仪表利用其私有命令调试协议解析执行;③物联模块等待接收数字仪表发送的“回响消息”,若数字仪表返回了“回响消息”,则物联模块直接将“回响消息”转发给网络中的命令调试工具或客户端。
固件升级请求流程由数字仪表发起,具体流程为:①物联模块接收到数字仪表发送的检查固件更新命令“0xF0”后,等待接收数字仪表发送“当前固件信息”;②物联模块接收到数字仪表发送的“当前固件信息”后解析获取固件版本号并将其发送到网络中的服务器请求升级固件版本号;③物联模块接收到网络服务器发送的升级固件版本号之后发送“升级固件信息”命令给数字仪表;④物联模块接收到数字仪表的固件升级请求命令“0xF5”,则发送应答命令“0xAA”给数字仪表以让数字仪表准备固件升级;⑤物联模块再发送固件升级请求命令“0x0D”给数字仪表以通知开始传送新的“仪表固件代码”,然后从网络服务器中请求数字仪表的升级固件代码,并转发给数字仪表。
私有物联交互协议5规定了物联模块与网络中支持私有物联交互协议5的客户端、服务器之间的网络连接管理与数据交互方式。私有物联交互协议5将物联模块面向网络设备的工作模式分为3种模式:配置模式11、调试模式12、物联模式13。
配置模式11:物联模块每次重新上电或复位时进入该模式;在该模式下的操作流程如图14所示,具体为:①检查是否有有效的网络路由器WI-FI的SSID和密码配置,若有则将物联模块的通信方式设置为WI-FI通信站点模式,即STA模式,尝试连接指定的网络路由器;②若网络路由器连接成功,则在当前的串口波特率设置下启动所述私有仪表交互协议4中仪表信息交互流程10中的仪表交互初始化流程,完成物联模块配置;③若检查无有效的网络路由器WI-FI的SSID和密码配置、或连接指定的网络路由器不成功、或仪表交互初始化流程不成功,则将物联模块通信方式设置为WI-FI通信接入点模式,即AP模式,创建TCP套接字以运行TCP Server端程序;④物联模块在AP模式下等待支持私有物联交互协议5的客户端通过WI-FI采用TCP协议接入,并等待接收客户端发送的“物联模块连接配置”报文,报文中包含网络路由器WI-FI的SSID和密码以及物联模块与数字仪表之间的串口通讯波特率;物联模块接收到“物联模块连接配置”报文后,从报文中解析出网络路由器WI-FI的SSID和密码以及串口通讯波特率;⑤物联模块退出AP模式,将WI-FI通信方式设置为STA模式,并以报文解析得到的SSID和密码连接指定的网络路由器;⑥物联模块若连接网络路由器成功,则以报文解析得到的串口通讯波特率设置自身与数字仪表通讯的串口模块的通讯波特率,然后立即启动所述私有仪表交互协议4中仪表信息交互流程10中的仪表交互初始化流程;⑦物联模块成功完成仪表交互初始化流程后退出配置模式11,物联模块中若已有有效的服务器绑定信息且能成功建立连接则进入物联模式13,否则进入调试模式12;⑧物联模块若连接指定的网络路由器仍不成功或仪表交互初始化流程仍不成功,则再次将WI-FI通信模式由STA模式切换为AP模式等待客户端重新连接、配置,直至超时退出配置模式11、进入休眠状态。
调试模式12:该模式下物联模块的WI-FI通信工作于STA模式,与同一局域网中支持私有物联交互协议5的客户端连接,用于物联模块的物联功能配置、调试和绑定服务器,具体包括与客户端建立连接、向客户端转发日志数据、向客户端转发实时数据、向客户端转发仪表工作参数、接受客户端修改仪表工作参数、由客户端绑定服务器。
物联模块与客户端建立连接有两种方式,即物联模块主动请求连接和客户端主动请求连接;物联模块从配置模式11进入调试模式12采用物联模块主动请求连接方式,物联模块从正常物联模式13进入调试模式12采用客户端主动请求连接方式。物联模块主动请求连接的流程如图15所示,具体为:①物联模块创建UDP套接字,使用UDP协议向局域网全部IP地址依次发送“客户端连接扫描”报文;②局域网中支持私有物联交互协议5的客户端接收到物联模块发送的“客户端连接扫描”报文后返回“客户端连接应答”报文;③物联模块收到客户端返回的“客户端连接应答”报文后获取客户端IP地址,然后创建TCP套接字,向客户端IP地址发送TCP连接请求,建立TCP连接;④物联模块与客户端之间TCP连接建立成功后,物联模块向客户端发送“应用层连接请求”报文,该报文中包含所述私有仪表交互协议4中的仪表ID描述符和连接密匙,以向客户端提供数字仪表的基本信息;⑤客户端收到物联模块发送的“应用层连接请求”报文后,返回“应用层连接应答”报文;⑥物联模块收到客户端返回的“应用层连接应答”报文后完成应用层之间的握手操作,等待客户端确认连接;⑦物联模块接收到客户端发送的“连接物联模块”报文后,物联模块发送“仪表信息描述符”报文给客户端,该报文包含所述私有仪表交互协议4中的日志数据描述符和实时数据描述符;⑧客户端收到“仪表信息描述符”报文后返回“仪表信息应答”报文给物联模块,完成物联模块与客户端连接的建立。客户端主动请求连接的流程为:①客户端中输入物联模块的IP地址和端口号主动向物联模块发送“客户端连接请求”报文,此报文中包含客户端IP地址、端口号和仪表密匙;②物联模块收到客户端发送的“客户端连接请求”报文后,验证仪表密匙,向客户端IP地址发送TCP连接请求,建立TCP连接;③余下流程与上述物联模块主动请求连接的流程④~⑧相同。若物联模块与客户端建立连接采用物联模块主动请求连接的方式,连接失败或超时时,物联模块进入休眠状态;若物联模块与客户端建立连接采用客户端主动请求连接的方式,连接失败或超时时物联模块继续保持为物联模式13,连接成功时物联模块退出物联模式13。
物联模块向客户端转发日志数据的流程为:①客户端根据其日志数据选择界面上勾选的日志数据和设定的日志数据定时发送频率向物联模块发送“日志数据转发配置”报文,包含日志数据“发送标识符”信息和日志数据“转发频率”信息;②物联模块接收到“日志数据转发配置”报文后,解析获取日志数据“发送标识符”和日志数据“转发频率”,先根据“转发频率”设定自身定时器的定时频率,然后定时启动所述私有仪表交互协议4中仪表信息交互流程10中的日志数据定时请求流程,并在每次接收到数字仪表发送的日志数据后向客户端转发“日志数据定时转发”报文;③物联模块接收到客户端的”日志数据停止转发”报文时,停止定时向数字仪表请求日志数据。上述流程中,物联模块与客户端之间的交互全部采用TCP协议。
物联模块向客户端转发实时数据的流程为:①客户端根据其实时数据选择界面上设定的实时数据的发送模式、勾选的实时数据、设定的数据定时发送频率和实时数据缓存大小向物联模块发送“实时数据转发配置”报文;②物联模块接收到“实时数据转发配置”报文后,解析获取实时数据的“发送模式”、“发送标识符”、“转发频率”、“缓冲大小”信息,根据“缓冲大小”和选定的实时数据占用的字节数来创建实时数据缓冲区,根据“转发频率”来设定自身的定时器;③若“发送模式”为“定时查询”模式,则定时启动所述私有仪表交互协议4中仪表信息交互流程10中的实时数据定时请求流程向数字仪表定时请求选定的实时数据,并在每次接收到数字仪表发送的实时数据后将其缓存到创建的实时数据缓冲区,实时数据缓冲区满了之后触发以UDP协议向客户端转发“实时数据定时转发”报文;若“发送模式”为“高速上传”模式,则启动所述私有仪表交互协议4中仪表信息交互流程10中的实时数据高速上传请求流程,并在每次接收到数字仪表发送的实时数据后将其缓存到创建的实时数据缓冲区,实时数据缓冲区满了之后触发以UDP协议向客户端转发“实时数据高速上传”报文;④物联模块接收到客户端的”实时数据停止转发”报文时,在“定时查询”模式下停止定时向数字仪表请求实时数据,在“高速上传”模式下启动所述私有仪表交互协议4中仪表信息交互流程10中的实时数据高速上传停止流程。上述流程中,除物联模块发送给客户端的“实时数据定时转发”和“实时数据高速上传”两种报文采用UDP协议之外,其它报文均采用TCP协议进行交互。
物联模块向客户端转发仪表工作参数的流程为:①客户端发送“仪表工作参数请求”报文给物联模块,报文中包含仪表工作参数的访问密码;②物联模块解析“仪表工作参数请求”报文,获取访问密码,确定工作参数的请求密级,此请求密级对应所述私有仪表交互协议4中工作参数描述符中的密级;③物联模块发送“仪表工作参数描述”报文给客户端,此报文包含所述私有仪表交互协议4中工作参数描述符中工作参数密级小于请求密级的全部内容描述符;④客户端收到“仪表工作参数描述”报文后返回“仪表参数描述应答”报文给物联模块;⑤物联模块解析“仪表参数描述应答”报文,校验正确后发送“仪表工作参数数据”报文给客户端,该报文中包含上一步发送个客户端的全部仪表工作参数描述符的内容描述符所对应的工作参数数据;⑥客户端解析“仪表工作参数数据”报文,校验正确后发送“仪表参数数据应答”报文给物联模块;⑦物联模块解析“仪表参数数据应答”报文,校验,完成仪表工作参数的转发操作。
物联模块接受客户端修改仪表工作参数的流程为:①客户端发送“仪表工作参数修改”报文给物联模块,一个报文对应一个工作参数,报文中包含工作参数序号和工作参数修改值;②物联模块接收到“仪表工作参数修改”报文后,解析获取工作参数序号和工作参数修改值,然后启动所述私有仪表交互协议4中仪表信息交互流程10中的工作参数修改请求流程;③完成所述私有仪表交互协议4中仪表信息交互流程10中的工作参数修改请求流程后,发送“工作参数修改应答”报文给客户端,该报文包含工作参数修改是否成功的信息。
物联模块由客户端绑定服务器的流程为:①客户端将支持私有物联交互协议5的服务器ID信息通过“服务器ID信息”报文发送给物联模块;②物联模块解析“服务器ID信息”报文获取服务器IP地址、端口号、连接密匙并存储;③物联模块根据服务器IP地址、端口号向服务器发送TCP连接请求;④服务器收到物联模块发送的TCP连接请求后建立TCP连接;⑤物联模块与服务器之间TCP连接建立成功后向服务器发送“应用层连接请求”报文;⑤服务器收到物联模块发送的“应用层连接请求”报文后,验证连接密匙,返回“应用层连接应答”报文;⑥物联模块收到服务器返回的“应用层连接应答”报文后,完成应用层之间的握手操作;⑦物联模块发送“仪表信息描述符”报文给服务器;⑧服务器收到物联模块发送的“仪表信息描述符”报文后返回“仪表信息应答”报文给物联模块,完成物联模块与服务器连接的建立;⑨物联模块发送“服务器连接成功”报文给客户端,提示物联模块绑定服务器测试成功。此后,客户端可发送“退出调试模式”报文给物联模块,物联模块在已绑定服务器的情况下,退出调试模式12后会立即进入物联模式13。
物联模式13:该模式下物联模块的WI-FI通信工作于STA模式,与已绑定的网络中的服务器连接,主要用于向服务器转发数字仪表的日志数据,同时支持对数字仪表的固件进行升级,具体包括与服务器建立连接、向服务器转发日志数据、请求固件更新。
物联模块与服务器建立连接的前提是物联模块已在调试模式12下绑定过服务器信息,包括服务器IP地址、端口号、连接密匙;物联模块中绑定了服务器信息后,每次上电在配置模式11下完成配置后、或在中途丢失服务器连接后,均重新进入物联模式13发起与服务器建立连接的流程;物联模块在物联模式13下与服务器建立连接的流程同调试模式12下物联模块由客户端绑定服务器的流程③~⑧,具体流程如图16所示;若单次连接不成功,则定时间断性地向服务器发起连接请求,直至超时退出物联模式13、进入休眠状态。
物联模式13下,物联模块与服务器建立连接成功后,立即按照调试模式12下选定的日志数据和设定的日志数据转发频率定时向服务器转发数字仪表的日志数据;服务器端亦可运行客户端程序先暂停物联模块的日志转发,然后重新选择要转发的日志数据、设定日志数据转发频率,并启动物联模块按照新的选择和设定来向服务器定时转发数字仪表的工作日志数据,具体交互流程同调试模式12下物联模块向客户端转发日志数据的流程。
物联模块请求固件升级的流程为:①所述私有仪表交互协议4中仪表信息交互流程10中的固件升级请求流程被启动后,物联模块根据从数字仪表中获得的当前固件信息发送“当前固件信息”报文给服务器;②服务器根据“当前固件信息”报文判断是否有升级固件;若有升级固件,则返回“升级固件版本”报文给物联模块,物联模块采用私有仪表交互协议4发送“升级固件信息”命令给数字仪表;③物联模块接收到数字仪表的固件升级请求命令后,发送“升级固件请求”报文给服务器;④服务器分批向物联模块发送“升级固件数据”报文,物联模块接收到“升级固件数据”报文后提取出仪表固件升级数据直接以固件数据原文的方式发送至流量仪表。
私有物联交互协议5的3种工作模式的切换方式如图17所示,具体为:每次上电或复位后,物联模块先工作于配置模式11,完成连接网络路由器和仪表交互初始化;然后,物联模块尝试连接服务器,连接服务器成功则进入物联模式13,否则进入调试模式12;在调试模式12下,物联模块由客户端绑定服务器后,接收到客户端的“退出调试模式”报文即自动进入物联模式13;在物联模式13下,与物联模块在同一局域网中的客户端可主动与物联模块直接建立连接,连接建立成功后,物联模块即切换到调试模式12。
私有物联交互协议5的3种工作模式中,物联模块与客户端、服务器之间交互的报文分为UDP报文和TCP报文,帧格式如下:
UDP报文:包括“客户端连接扫描”报文、“实时数据定时转发”报文和“实时数据高速上传”报文,帧格式为“0x5A5A+帧长度+功能码+报文数据+CRC校验+0xA5A5”;
TCP报文:其它报文,帧格式为“0x5A5A+帧长度+功能码+报文数据+0xA5A5”。
各报文中,“帧长度”为整个报文的字节数;“功能码”为固定字节数的数字,用于区分不同的报文;“报文数据”为报文所发送的具体的数据、命令等内容;不同报文中的功能码和报文数据说明如下:
①“物联模块连接配置”报文中的功能码为“0x01”,报文数据内容为“WIFI的SSID+WIFI密码+串行接口波特率”,各字段为字符串格式;
②“客户端连接扫描”报文中的功能码为“0x02”,报文数据内容为“IOTS”,字符串格式;
③“客户端连接应答”报文中的功能码为“0x03”,报文数据内容为“IOTA”,字符串格式;
④“应用层连接请求”报文中的功能码为“0x04”,报文数据内容为“连接密匙+仪表ID描述符”,各字段为字符串格式;
⑤“应用层连接应答”报文中的功能码为“0x05”,报文数据内容为“仪表ID描述符的字符个数”,无符号整型数格式;
⑥“连接物联模块”报文中的功能码为“0x06”,报文数据内容为“CMMT”,字符串格式;
⑦“仪表信息描述符”报文中的功能码为“0x07”,报文数据内容为所述私有仪表交互协议4中的“日志数据描述符中的内容描述符+实时数据描述符中的内容描述符”,描述符原文格式;
⑧“仪表信息应答”报文中的功能码为“0x08”,报文数据内容为“日志数据和实时数据描述符中内容描述符的条数之和”,无符号整型数字格式;
⑨“客户端连接请求”报文中的功能码为“0x09”,报文数据内容为:“客户端IP地址+端口号+仪表密匙”,各字段采用字符串格式,其中,仪表密匙为所述私有仪表交互协议4中工作参数描述符中的密码1;
⑩“日志数据转发配置”报文中的功能码为“0x0A”,报文数据内容为:“日志数据发送标识符+日志数据转发频率”,各字段采用字符串格式;
Figure BDA0003113344910000291
“日志数据定时转发”报文中的功能码为“0x0B”,报文数据内容为“日志数据描述符中发送标识为Y的全部日志数据”,数据组合原文;
Figure BDA0003113344910000292
“日志数据停止转发”报文中的功能码为“0x0C”,报文数据内容为“0x00”;
Figure BDA0003113344910000293
“实时数据转发配置”报文中的功能码为“0x0D”,报文数据内容为“实时数据的发送模式+发送标识符+转发频率+缓冲大小”,各字段采用字符串格式;
Figure BDA0003113344910000294
“实时数据定时转发”报文中的功能码为“0x0E”,报文数据内容为“实时数据描述符中发送标识为Y的全部实时数据”,数据组合原文;
Figure BDA0003113344910000295
“实时数据高速上传”报文中的功能码为“0x0F”,报文数据内容为“实时数据描述符中发送标识为Y且支持高速上传的全部实时数据”,数据组合原文;
Figure BDA0003113344910000296
“实时数据停止转发”报文中的功能码为“0x10”,报文数据内容为“0x00”;
Figure BDA0003113344910000297
“仪表工作参数请求”报文中的功能码为“0x11”,报文数据内容为“仪表工作参数的访问密码”,字符串格式;
Figure BDA0003113344910000298
“仪表工作参数描述”报文中的功能码为“0x12”,报文数据内容为所述私有仪表交互协议4中的“工作参数描述符中工作参数密级小于请求密级的全部内容描述符”,描述符原文格式;
Figure BDA0003113344910000299
“仪表参数描述应答”报文中的功能码为“0x13”,报文数据内容为“仪表工作参数描述报文中内容描述符的条数”,无符号整型数字格式;
Figure BDA0003113344910000301
“仪表工作参数数据”报文中的功能码为“0x14”,报文数据内容为“仪表工作参数描述报文中全部内容描述符所对应的工作参数数据”,数据组合原文;
Figure BDA0003113344910000302
“仪表参数数据应答”报文中的功能码为“0x15”,报文数据内容为“仪表工作参数数据报文中发送数据的字节数”,无符号整型数字格式;
Figure BDA0003113344910000303
“仪表工作参数修改”报文中的功能码为“0x16”,报文数据内容为“工作参数序号+工作参数修改值”,数字格式;
Figure BDA0003113344910000304
“工作参数修改应答”报文中的功能码为“0x17”,报文数据内容为“工作参数修改状态”,修改成功为“SUCCESS”,修改失败为“FAIL”,字符串格式;
Figure BDA0003113344910000305
“服务器ID信息”报文中的功能码为“0x18”,报文数据内容为:“服务器IP地址+端口号+连接密匙”,各字段采用字符串格式;
Figure BDA0003113344910000306
“服务器连接成功”报文中的功能码为“0x19”,报文数据内容为“SCS”,字符串格式;
Figure BDA0003113344910000307
“退出调试模式”报文中的功能码为“0x1A”,报文数据内容为“DMQ”,字符串格式;
Figure BDA0003113344910000308
“当前固件信息”报文中的功能码为“0x1B”,报文数据内容为“当前固件信息”,采用字符串格式;
Figure BDA0003113344910000309
“升级固件版本”报文中的功能码为“0x1C”,报文数据内容为“升级固件版本号”,采用字符串格式;
Figure BDA00031133449100003010
“升级固件请求”报文中的功能码为“0x1D”,报文数据内容为“OTA”,字符串格式;
Figure BDA00031133449100003011
“升级固件数据”报文中的报文为“0x1E”,报文数据内容为“升级的仪表固件代码”,采用十六进制数字格式。
私有物联交互协议5解析报文的流程为:①检查报文帧头、帧尾是否正确,正确则执行下一步,错误则丢弃网络报文;②提取帧长度信息,检查收到的报文长度是否正确,正确则执行下一步,错误则丢弃网络报文,等待下一帧网络报文;③提取功能码和报文数据,比对功能码,比对成功则执行功能码对应的解析函数解析报文数据并执行,比对失败则丢弃网络报文。
MODBUS-TCP协议6为基于FreeModbus协议栈进行裁剪和适配获得的物联模块与网络中支持MODBUS-TCP设备之间的交互协议。以FreeModbus协议为基础,删除其中的FreeModbus-RTU、FreeModbus-ASCII的内容,保留FreeModbus-TCP的内容,使用物联模块中集成的TCP/IP协议栈为FreeMosbus-TCP提供以TCP协议为基础的数据通信方式,构成MODBUS-TCP协议6。MODBUS-TCP协议6中物联模块的WI-FI通信采用Server模式。网络中支持MODBUS-TCP协议的设备只能通过物联模块获取所述私有仪表交互协议4中的日志数据描述符、实时数据描述符和工作参数描述符所描述的数字仪表中的数据;物联模块收到来自MODBUS-TCP设备发送的报文后,使用FreeModbus-TCP协议栈中的MODBUS报文解析函数提取出需要读取数据的MODBUS寄存器地址和读取长度;数据的MODBUS寄存器地址为日志数据描述符、实时数据描述符或工作参数描述符中的“MODBUS地址”,数据的读取长度为日志数据描述符、实时数据描述符或工作参数描述符中的“字节数”;然后,启动所述私有仪表交互协议4中的MODBUS数据请求流程,向数字仪表请求数据;获取数字仪表的数据之后,转发给网络中发起请求的MODBUS-TCP设备。
命令透传协议7规定了客户端、命令调试工具与数字仪表之间直接进行命令/数据交互的方式。命令透传协议7规定的网络中客户端、命令调试工具发送的透传命令的格式为所述私有仪表交互协议4中数据命令中的“透传命令”的格式,即由“@+命令原文”组成的字符串命令。物联模块接收到客户端或命令调试工具发送的由字符“@”开始的命令之后,即将其视为透传命令,直接启动所述私有仪表交互协议4中的命令透传请求流程,将接收到的“@+命令原文”格式的命令直接转发给数字仪表,供数字仪表采用其私有命令调试协议进行命令解析和执行;物联模块接收到数字仪表发送的所述私有仪表交互协议4中数据命令中的“回响消息”命令后,将其视为透传数据,由命令透传协议7直接将“回响消息”原文转发给网络中的客户端或命令调试工具。
所述物联API函数库3由IoT.lib文件14和IoT.h文件15组成,运行于数字仪表的主处理器中,用于适配所述物联软件协议2中的私有仪表交互协议4,其结构组成如图18所示。IoT.lib文件14中提供了供数字仪表主处理器程序中使用的与物联模块交互的物联数据变量IoT_DATA和API函数。物联数据变量IoT_DATA的结构体类型在IoT.h中定义并在其中进行外部变量声明,供数字仪表主处理器程序中的函数和IoT.lib中的API函数使用。API函数包括外部API函数和内部API函数:外部API函数供数字仪表主处理器程序直接调用,用于向数字仪表主处理器程序中嵌入物联模块交互管理程序;内部API函数只在外部API函数中调用,用于处理与物联模块中私有仪表交互协议4中的各种仪表信息交互。IoT.h文件15中提供了IoT.lib文件14中外部API函数的声明、物联数据变量IoT_DATA及其成员变量的各种结构体类型定义以及数字仪表适配参数的各类宏定义,随IoT.lib文件14一起在数字仪表主处理器程序中被包含使用,用于数字仪表与IoT.lib文件14中的API函数之间的适配。
物联数据变量IoT_DATA为结构体类型,包含的成员有:仪表ID信息、日志数据集、实时数据集、工作参数集、函数指针集,各成员变量均为结构体类型,如图19所示。
仪表ID信息有两个成员变量:其一为“仪表ID描述符”,结构体变量,包含“内容描述符”和“容量描述符”这两个字符型一维数组成员,分别用于存储传送给物联模块的所述私有仪表交互协议4中“仪表ID描述符”中的内容描述符和容量描述符;其二为“当前固件信息”,字符型一维数组,用于存储传送给物联模块的所述私有仪表交互协议4中的仪表“当前固件信息”。
日志数据集有3类成员:第一类成员是由用户自定义的n个“日志数据”变量,直接对应数字仪表中需要转发给物联模块的各个变量;第二类成员是“日志数据描述符”,结构体变量,包含“内容描述符”和“容量描述符”这两个字符型数组成员,“内容描述符”为由n个一维数组组成的二维数组,“容量描述符”为一维数组,用于按第一类成员的顺序存储传送给物联模块的所述私有仪表交互协议4中的“日志数据描述符”中的内容描述符和容量描述符;第三类成员是“日志数据变量地址”,一维指针数组,用于按顺序存储第一类成员变量的地址。
实时数据集有3类成员:第一类成员是由用户自定义的m个“实时数据”变量,直接对应数字仪表中需要转发给物联模块的各个实时数据变量;第二类成员是“实时数据描述符”,结构体变量,包含“内容描述符”和“容量描述符”这两个字符型数组成员,“内容描述符”为由m个一维数组组成的二维数组,“容量描述符”为一维数组,用于按第一类成员的顺序存储传送给物联模块的所述私有仪表交互协议4中的“实时数据描述符”中的内容描述符和容量描述符;第三类成员是“实时数据变量地址”,一维指针数组,用于按顺序存储第一类成员变量的地址。
工作参数集有3类成员:第一类成员是由用户自定义的q个“工作参数”变量,直接对应数字仪表中需要由物联客户端管理的工作参数变量;第二类成员是“工作参数描述符”,结构体变量,包含“内容描述符”和“容量描述符”这两个字符型数组成员,“内容描述符”为由q个一维数组组成的二维数组,“容量描述符”为一维数组,用于按第一类成员的顺序存储传送给物联模块的所述私有仪表交互协议4中的“工作参数描述符”中的内容描述符和容量描述符;第三类成员是“工作参数变量地址”,一维指针数组,用于按顺序存储第一类成员变量的地址。
函数指针集有3个成员:仪表参数修改函数指针、私有命令调试函数指针、私有固件升级函数指针;仪表参数修改函数指针用于指向数字仪表主处理器中新定义的仪表参数修改函数,私有命令调试函数指针用于指向数字仪表私有的命令调试函数,私有固件升级函数指针用于指向数字仪表私有的固件升级函数。
物联数据变量IoT_DATA及其各级子成员变量的结构体类型在IoT.h中根据不同数字仪表的实际物联功能需求进行更改,各成员变量均在数字仪表主处理器程序中进行初始化,并随数字仪表对应变量的更新而更新;其中,仪表ID描述符、日志数据描述符、实时数据描述符、工作参数描述符的格式分别与所述私有仪表交互协议4中的仪表ID描述符、日志数据描述符、实时数据描述符和工作参数描述符的格式相同。
IoT.lib文件14中的外部API函数包括:IoT初始化函数、IoT交互函数、实时数据转发函数。
IoT初始化函数:该函数在数字仪表主处理器的程序初始化阶段调用,检测数字仪表主处理器的存储模式为“大端模式”还是“小端模式”。
IoT交互函数:该函数在数字仪表的串行接口的接收中断函数中调用;进入该函数后,首先调用内部API函数中的“串行接口读写函数”读取串口接收到的数据或命令,然后按照所述私有仪表交互协议4解析命令并调用相应的内部API函数或外部API函数中的“实时数据转发函数”配合物联模块完成所述私有仪表交互协议4中的仪表信息交互流程10。
实时数据转发函数:该函数在数字仪表主处理器程序中被高频周期性调用,同时也在“IoT交互函数”中调用;“IoT交互函数”接收到物联模块发送的功能请求命令0x08时,“IoT交互函数”中调用该函数,按照图10所示的所述私有仪表交互协议4中定时请求数字仪表实时数据流程的要求发送相应的“实时数据”给物联模块,此时数字仪表主处理器程序中调用该函数时不发送“实时数据”给物联模块;在“IoT交互函数”接收到物联模块发送的功能请求命令0x09时,则使能实时数据高速上传功能,此时“IoT交互函数”中不调用该函数,数字仪表主处理器程序中周期性地调用该函数并按照图11所示的所述私有仪表交互协议4中请求数字仪表高速上传实时数据流程的要求发送相应的“实时数据”给物联模块。该函数被调用时,只转发发送标识为“Y”的实时数据,且调用内部API函数中的“串行接口读写函数”以字符为单位发送实时数据。
IoT.lib文件14中的内部API函数包括:串行接口读写函数、存储模式转发函数、仪表ID描述符转发函数、日志数据描述符转发函数、实时数据描述符转发函数、工作参数描述符转发函数、工作参数转发函数、工作参数更改函数、日志数据发送标识更新函数、实时数据发送标识更新函数、日志数据转发函数、MODBUS-TCP数据转发函数,用于外部API函数调用实现与物联模块按所述私有仪表交互协议4进行信息交互。
串行接口读写函数:用于发送和接收数据,对所有数据均采用统一的字符型数据收发操作;支持单字节、双字节字符型数据的收发功能;对于单字节的字符型数据存储模式,串行接口读写函数只执行一次数据读或写操作;对于双字节字符型数据存储模式,串行接口读写函数执行两次数据读或写操作,每次只读或写一个字节;每次发送数据前,根据IoT.h中宏定义的主处理器串口信息判断当前串口发送缓冲器是否满。
存储模式转发函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x01时调用该函数,按照图7所示的所述私有仪表交互协议4中请求数字仪表处理器存储模式流程的要求发送“IoT初始化函数”中检测到的数字仪表主处理器的“存储模式”给物联模块。
仪表ID描述符转发函数、日志数据描述符转发函数、实时数据描述符转发函数、工作参数描述符转发函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x02、0x03、0x04或0x10时分别调用该3个函数,按照图8所示的所述私有仪表交互协议4中请求仪表信息描述符流程的要求发送相应的仪表信息描述符给物联模块。
工作参数转发函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x11后即调用该函数,按照图9所示的所述私有仪表交互协议4中请求数字仪表工作参数流程的要求发送相应的“工作参数数据”给物联模块。
工作参数更改函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x12后即调用该函数,按照图13所示的所述私有仪表交互协议4中数字仪表工作参数修改请求流程的要求与物联模块之间交互“工作参数修改”命令,并调用物联数据变量IoT_DATA中仪表参数修改函数指针指向的数字仪表主处理器中新定义的“仪表参数修改函数”对仪表的工作参数进行修改。
日志数据发送标识更新函数、实时数据发送标识更新函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x05或0x07后分别调用该两个函数,按照图10所示的所述私有仪表交互协议4中定时请求数字仪表日志数据或实时数据流程的要求接收、保存物联模块发送的日志数据或实时数据的“发送标识”并原文返回“发送标识”给物联模块。
日志数据转发函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x06后即调用该函数,按照图10所示的所述私有仪表交互协议4中定时请求数字仪表日志数据流程的要求发送相应的“日志数据”给物联模块。该函数被调用时,只转发发送标识为“Y”的日志数据,且调用内部API函数中的“串行接口读写函数”以字符为单位发送日志数据。
MODBUS-TCP数据转发函数:外部API函数“IoT交互函数”接收到物联模块发送的功能请求命令0x0B后即调用该函数,按照图12所示的所述私有仪表交互协议4中请求MODBUS数据流程的要求接收“MODBUS数据位置”命令,解析得到请求数据的MODBUS寄存器地址,并发送“MODBUS数据”命令给物联模块。
IoT.h文件15用于数字仪表适配参数的宏定义和IoT.lib文件14中的物联数据变量IoT_DATA的结构体类型定义、IoT_DATA外部变量声明、外部API函数声明。
数字仪表适配参数的宏定义包括:主处理器字符型数据字节数、主处理器串口信息的宏定义。主处理器字符型数据字节数宏定义用于不同处理器的字符型数据占用的字节数的宏定义,字符型数据占用单字节存储空间时字节数宏定义为1,字符型数据占用双字节存储空间时字节数宏定义为2;主处理器串口信息宏定义用于宏定义数字仪表主处理器上与物联模块连接的串口的物理信息,包括串口接收缓冲器地址、串口发送缓冲器地址、接收缓冲器满标志寄存器地址、发送缓冲器满标志寄存器地址、接收缓冲器满标志位置、发送缓冲器满标志位置、接收缓冲器接收到新数据时的接收缓冲器满标志值、发送缓冲器为空时的发送缓冲器满标志值。
IoT_DATA的结构体类型定义:即按照所述的IoT_DATA变量的成员与子成员之间的结构关系定义对应的结构体类型。
IoT_DATA外部变量声明:即对IoT.lib文件14中定义的物联数据变量IoT_DATA进行外部变量声明,以在数字仪表主处理器程序中对该变量进行初始化和变量信息更新。
外部API函数声明:即对IoT.lib文件14中的外部API函数进行声明,以在数字仪表主处理器中进行函数调用。
综上,数字仪表借助所述物联API函数库3适配物联模块的过程为:①将IoT.lib文件14添加到数字仪表的主处理器程序中,并在其程序文件中包含头文件IoT.h;②在头文件IoT.h中完成数字仪表适配参数宏定义的修改;③根据数字仪表需要进行物联交互的各类数据,在头文件IoT.h中修改变量IoT_DATA及其子成员的结构体类型的定义,其中,IoT_DATA结构体类型的成员“日志数据集”、“实时数据集”和“工作参数集”的结构体类型中第一类成员的变量个数和类型根据实际需要物联交互的数据、工作参数来进行增删或修改,“日志数据描述符”、“实时数据描述符”和“工作参数描述符”则按第一类成员的个数和描述长度来定义内容描述符数组的大小和容量描述符的大小,“日志数据变量地址”、“实时数据变量地址”和“工作参数变量地址”的数组长度则为第一类成员的个数;④在数字仪表程序文件中定义“仪表参数修改函数”以用于物联客户端修改仪表工作参数,此函数带一输入形参,形参为工作参数序号,此函数中根据工作参数序号将IoT_DATA变量的成员中修改过的工作参数值赋值给仪表实际的工作参数变量;如不定义此函数则不能提供物联客户端修改仪表工作参数的功能;⑤在数字仪表主程序的初始化阶段调用外部API函数中的“IoT初始化函数”,并对物联数据变量IoT_DATA进行初始化;其中,仪表参数修改函数指针指向新定义的“仪表参数修改函数”,私有命令调试函数指针指向数字仪表私有的命令调试函数,私有固件升级函数指针指向数字仪表私有的固件升级函数;若数字仪表主处理器程序中无仪表参数修改函数、私有命令调试函数或私有固件升级函数,则相应的函数指针初始化为NULL;⑥在数字仪表软件程序中数据刷新的位置或某个统一的位置插入IoT_DATA变量成员的更新指令;⑦在数字仪表主处理器的串口接收中断服务子程序中调用外部API函数中的“IoT交互函数”;⑧在数字仪表主处理器程序中适当位置调用外部API函数中的“实时数据转发函数”,让“实时数据转发函数”被周期性执行,并将该执行周期更新到物联数据变量IoT_DATA的成员“实时数据集”的子成员“实时数据描述符”的“内容描述符”中的“刷新率”中。

Claims (7)

1.一种基于WI-FI的通用型多协议数字仪表物联模块,采用高通讯速率的硬件、支持多协议的软件和兼容不同仪表处理器的API函数库相结合的设计,为不同类型数字仪表提供简单的物联解决方案和强大的物联功能,包括WI-FI通讯模块、物联软件协议和物联API函数库,其特征在于:
WI-FI通讯模块通过串行通讯接口与数字仪表相连,提供数字仪表与网络设备进行数据交互的高速物理通道,采用宽电压电源供电以兼容更多类型的数字仪表;物联软件协议运行于WI-FI通讯模块的CPU,包含私有仪表交互协议、私有物联交互协议、MODBUS-TCP协议和命令透传协议,用于管理与数字仪表的连接交互和与不同类型网络设备的连接交互,对数字仪表的工作数据进行缓存管理并按网络设备的请求进行数据转发,同时接收和解析网络设备的命令进行物联功能的设置和仪表工作参数的调试,并通过命令透传协议提供的透明传输通道支持数字仪表私有的命令调试功能;物联API函数库运行于数字仪表的CPU中,采用兼容不同字符长度和存储模式的设计以提高其对不同工作模式CPU的兼容性,供不同的数字仪表适配本发明的通用型物联模块使用,为本发明的通用型物联模块提供简单、方便的适配方式;物联软件协议与物联API函数库配合,可为不同类型的数字仪表提供日志数据定时转发、实时数据高速转发、工作参数调试、MODBUS通讯、仪表私有命令调试、仪表固件升级等强大的物联功能,且物联功能可灵活配置、移植适配简单。
2.如权利要求1所述的一种基于WI-FI的通用型多协议数字仪表物联模块,其特征在于:WI-FI通讯模块为WI-FI无线通讯的硬件模块,由数字仪表接口、电源管理电路、WI-FI无线微控制器、FLASH存储器、晶振电路、天线单元、烧录接口、复位电路和电平转换电路组成;
数字仪表接口用于WI-FI通讯模块与数字仪表的连接,包含电源VPP、电源参考地GND、串行总线1和复位信号RS1的接口,以向WI-FI通讯模块1提供工作电源、数据交互和复位信号;
电源管理电路由低压差线性稳压器U1、双通道电源复用器U2和电阻R1、R2、R3组成,用于将数字仪表接口提供的电源VPP转换为WI-FI通讯模块中各电路工作所需要的电源VCC,以使WI-FI通讯模块可工作于2.5V~5.5V的宽电压范围,从而使得本发明可直接适配的数字仪表范围更宽;低压差线性稳压器U1为固定电压输出型线性稳压器,带高电平有效的使能输入引脚EN,输入为电源VPP,输出为电源V1;双通道电源复用器U2为二选一输出的电源复用器,有两个电源输入通道IN1和IN2、电源输出通道VOUT、施密特触发输入型的通道选择引脚PR1和开漏输出型的通道状态指示引脚ST;电源输入通道IN1接低压差线性稳压器U1的输出电源V1,电源输入通道IN2接电源VPP,通道选择引脚PR1由电源VPP经分压电阻R2和R3串联分压来驱动,状态指示引脚ST通过电阻R1上拉至电源VPP来驱动低压差线性稳压器U1的使能引脚EN;通过电阻R2、R3分压,驱动通道选择引脚PR1来设置电源VPP的阈值电压Vth,Vth小于WI-FI通讯模块中各电路所允许的最大工作电压、大于低压差线性稳压器U1的Dropout电压与其固定输出电压V1之和;当电源电压VPP≤Vth时,双通道电源复用器U2选择通道IN2的输入电源VPP直接输出至VOUT作为工作电源VCC,即VCC=VPP,状态指示引脚ST输出低电平,低压差线性稳压器U1被禁用;当电源电压VPP>Vth时,双通道电源复用器U2选择通道IN1的输入电源V1输出至VOUT作为工作电源VCC,状态指示引脚ST输出高电平,低压差线性稳压器U1被使能从而输出稳定的电压V1,即VCC=V1;从而,使得WI-FI通讯模块既能兼容比较大的工作电压范围,又能尽可能避免无用的额外电能消耗。
3.如权利要求1所述的一种基于WI-FI的通用型多协议数字仪表物联模块,其特征在于:物联软件协议中的私有仪表交互协议用于物联模块与数字仪表之间的信息交互,规定了物联模块与数字仪表之间的命令、数据交互的方式,包括仪表信息描述符、仪表信息交互命令、仪表信息交互流程;
仪表信息描述符包括仪表ID描述符、日志数据描述符、实时数据描述符、工作参数描述符;仪表ID描述符用于描述数字仪表的身份、制造信息;日志数据描述符用于描述数字仪表中可被物联模块转发至网络中的仪表工作数据及其属性;实时数据描述符用于描述数字仪表中可被物联模块以高速实时转发至网络的仪表工作数据及其属性;工作参数描述符用于描述数字仪表中可被网络设备查看、修改的仪表工作参数及其属性;所述4种仪表信息描述符中,每种描述符又包含内容描述符和容量描述符,各描述符均为字符串,且可包含多个字段;仪表ID描述符的内容描述符只能有一条,描述仪表不同方面的身份信息;日志数据描述符的内容描述符可有一条或多条,每条对应一个需发给物联模块的数字仪表中的工作数据,描述该数据是否被网络设备请求转发、变量类型、占用字节数、名称、单位、MODBUS寄存器地址;实时数据描述符的内容描述符可有一条或多条,每条对应一个需发给物联模块的数字仪表中的工作数据,描述该数据是否被网络设备请求转发、变量类型、占用字节数、名称、单位、MODBUS寄存器地址、是否支持定时查询和高速发送的发送模式、高速发送模式下的刷新率;工作参数描述符的内容描述符可有一条或多条,每条对应一个可被物联设备进行调试的数字仪表工作参数,描述该参数的序号、访问密级、变量类型、占用字节数、名称、单位、MODBUS寄存器地址、能否修改;每种仪表信息描述符中的容量描述符只有一条,描述了仪表信息描述符中的内容描述符的条数、长度信息;工作参数描述符中的容量描述符还提供工作参数的多级访问密码信息;各仪表信息描述符均由物联模块在初始化时向数字仪表发送命令请求来获取,并根据各仪表信息描述符中的容量描述符的信息来动态申请存储空间,创建相应的仪表信息描述表、数据存储表、数据索引表,以保存数字仪表发送给物联模块的内容描述符和数据;
仪表信息交互命令包含物联模块和数字仪表之间信息交互用到的功能命令和数据命令;功能命令包括物联模块与数字仪表之间交互的请求命令和应答命令,均为单字节数字命令,包括:请求连接、请求数字仪表处理器的存储模式、请求仪表ID描述符、请求日志数据描述符、请求实时数据描述符、请求更新日志数据描述符中的发送标识、定时请求日志数据、请求更新实时数据描述符中的发送标识、定时请求实时数据、请求开始实时数据高速上传、请求停止实时数据高速上传、请求MODBUS数据、请求进行调试命令透传、请求固件程序升级传送、请求数字仪表显示消息、请求工作参数描述符、请求上传工作参数、请求修改工作参数、请求检查固件更新、请求升级固件程序、响应正确应答、响应错误应答等功能命令;数据命令包含物联模块和数字仪表之间交互的各类信息描述符、数据、调试命令、固件程序等各类信息,包括:发送标识符、透传命令、MODBUS数据位置、仪表固件代码、回响消息、存储模式、仪表信息描述符、日志数据、实时数据、MODBUS数据、工作参数数据、工作参数修改、当前固件信息、升级固件信息等数据命令;
仪表信息交互流程包括仪表交互初始化流程、日志数据定时请求流程、实时数据定时请求流程、实时数据高速上传请求流程、实时数据高速上传停止流程、MODBUS数据请求流程、工作参数修改请求流程、命令透传请求流程、固件升级请求流程;
仪表交互初始化流程:在物联模块通电后由物联模块发起,物联模块通过发送相应的功能命令来请求与数字仪表先建立连接,然后获取、缓存数字仪表的存储模式、仪表ID描述符、仪表日志数据描述符、仪表实时数据描述符、仪表工作参数描述符、仪表工作参数数据,并通过解析仪表日志数据描述符、仪表实时数据描述符、仪表工作参数描述符中的内容描述符来申请存储空间、创建日志数据存储表、日志数据索引表、实时数据存储表、实时数据索引表、工作参数存储表、工作参数索引表,用于数字仪表的日志数据、实时数据和工作参数的索引缓存与转发,其流程依次为:建立连接→请求数字仪表处理器存储模式→请求数字仪表的仪表ID描述符→请求数字仪表的日志数据描述符→请求数字仪表的实时数据描述符→请求数字仪表的工作参数描述符→请求数字仪表的工作参数数据→初始化信息反馈;
日志数据定时请求流程、实时数据定时请求流程:两流程相同,均由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的日志数据请求命令或实时数据请求命令后,先根据网络客户端或服务器的配置信息来选择要转发的日志数据或实时数据并更新日志数据索引表或实时数据索引表、根据发送频率要求设定定时周期,然后开始定时向数字仪表发出相应的请求功能命令以获取相应的日志数据或实时数据,根据日志数据索引表或实时数据索引表将接收到的数据存储到日志数据存储表或实时数据存储表中;
实时数据高速上传请求流程、实时数据高速上传停止流程:由网络客户端或服务器通过发送相应的请求命令给物联模块来发起,物联模块接收到网络客户端或服务器的实时数据高速上传的请求命令后,先根据网络客户端或服务器的配置信息来选择要转发的实时数据并更新实时数据索引表,然后向数字仪表发出“请求开始实时数据高速上传”的请求功能命令,之后物联模块连续接收数字仪表发送的实时数据,实时数据的上传速率由数字仪表决定、并被写入到实时数据描述符中,物联模块根据实时数据索引表将接收到的数据存储到实时数据存储表中,接收到的数据达到设定的缓冲数时转发给网络客户端或服务器;物联模块接收到网络客户端或服务器的停止发送实时数据的命令时,物联模块发送“请求停止实时数据高速上传”的功能命令给数字仪表,通知数字仪表停止发送实时数据;
MODBUS数据请求流程:由网络中支持MODBUS-TCP协议的设备通过发送相应的MODBUS数据请求命令给物联模块来发起,物联模块接收到网络中的MODBUS数据请求命令后,直接向数字仪表发起MODBUS数据请求流程:先发送相应的请求功能命令,再发送请求数据的MODBUS寄存器地址和长度,然后接收数字仪表回传的MODBUS数据和MODBUS寄存器地址,以进行正确的缓存和转发;
工作参数修改请求流程:由网络客户端通过发送相应的请求命令给物联模块来发起,物联模块先发送“请求修改工作参数”命令给数字仪表,待数字仪表正确响应后再发送包含有工作参数序号和修改值的“工作参数修改”命令给数字仪表,待接收到数字仪表返回同样的“工作参数修改”命令并校验正确后,更新物联模块中存储的相应的工作参数,并通知网络客户端更改成功与否;
命令透传请求流程:由网络中的命令调试工具或客户端发起,物联模块接收到网络中的命令并识别为“透传命令”后,向数字仪表发起命令透传请求流程:先发出“请求进行调试命令透传”的功能命令给数字仪表,再发送“透传命令”给数字仪表以供数字仪表利用其私有协议解析执行,然后物联模块若接收到数字仪表回传的“回响消息”数据命令,则直接将“回响消息”转发给网络中的命令调试工具或客户端;
固件升级请求流程:由数字仪表发起,数字仪表先发送“请求检查固件更新”的功能命令给物联模块,物联模块接收到该请求功能命令后,先等待接收数字仪表发送当前固件信息并将其转发到网络中的服务器,然后接收网络服务器发送的升级固件信息并将其转发给数字仪表,此后若接收到数字仪表发送的“请求升级固件程序”的请求功能命令则返回确认命令给数字仪表,并开始从网络服务器请求数字仪表的升级固件代码,将其转发给数字仪表。
4.如权利要求1所述的一种基于WI-FI的通用型多协议数字仪表物联模块,其特征在于:物联软件协议中的私有物联交互协议规定了物联模块与网络中支持私有物联交互协议的客户端、服务器之间的网络连接管理与数据交互方式;私有物联交互协议将物联模块面向网络设备的工作模式分为3种模式:配置模式、调试模式、物联模式;
配置模式:物联模块先在STA通信模式下尝试连接WI-FI路由器、与数字仪表进行交互初始化、连接网络服务器;若不成功,则转入AP通信模式,等待网络客户端接入,由网络客户端完成物联模块连接WI-FI路由器的SSID、密码以及物联模块与数字仪表之间串口通讯波特率的配置;然后转入STA通信模式,尝试连接网络服务器,连接成功则进入物联模式,连接不成功则进入调试模式;
调试模式:物联模块工作于STA通信模式,与同一局域网中支持私有物联交互协议的客户端连接,用于物联模块的物联功能配置、调试和绑定服务器,具体包括与客户端建立连接、向客户端转发日志数据、向客户端转发实时数据、向客户端转发仪表工作参数、接受客户端修改仪表工作参数、由客户端绑定服务器;绑定完服务器且测试连接成功后,退出调试模式并直接进入物联模式;
物联模式:物联模块工作于STA通信模式,与已绑定的网络中的服务器建立连接,按在调试模式下由客户端选择的日志数据和配置的转发频率向服务器转发数字仪表的日志数据,日志数据选择和转发频率也可直接由服务器配置;物联模式同时支持通过服务器对数字仪表进行固件升级,但要求数字仪表自身的程序中有固件升级函数;
配置模式、调试模式、物联模式的切换方式为:每次上电或复位后,物联模块先工作于配置模式,完成连接网络路由器和仪表交互初始化;然后,物联模块尝试连接服务器,连接服务器成功则进入物联模式,否则进入调试模式;在调试模式下,物联模块由客户端绑定服务器后,接收到客户端的“退出调试模式”报文即自动进入物联模式;在物联模式下,与物联模块在同一局域网中的客户端可主动与物联模块直接建立连接,连接建立成功后,物联模块即切换到调试模式;
私有物联交互协议的3种工作模式中,物联模块与客户端、服务器之间交互的报文分为UDP报文和TCP报文,帧格式如下:
UDP报文:包括“客户端连接扫描”报文、“实时数据定时转发”报文和“实时数据高速上传”报文,帧格式为“0x5A5A+帧长度+功能码+报文数据+CRC校验+0xA5A5”;
TCP报文:其它报文,帧格式为“0x5A5A+帧长度+功能码+报文数据+0xA5A5”;
各报文中,“帧长度”为整个报文的字节数;“功能码”为固定字节数的数字,用于区分不同的报文;“报文数据”为报文所发送的具体的数据、命令等内容;
私有物联交互协议解析报文的流程为:①检查报文帧头、帧尾是否正确,正确则执行下一步,错误则丢弃网络报文;②提取帧长度信息,检查收到的报文长度是否正确,正确则执行下一步,错误则丢弃网络报文,等待下一帧网络报文;③提取功能码和报文数据,比对功能码,比对成功则执行功能码对应的解析函数解析报文数据并执行,比对失败则丢弃网络报文。
5.如权利要求1所述的一种基于WI-FI的通用型多协议数字仪表物联模块,其特征在于:物联软件协议中的MODBUS-TCP协议为基于FreeModbus协议栈进行裁剪和适配获得的物联模块与网络中支持MODBUS-TCP设备之间的交互协议;网络中支持MODBUS-TCP协议的设备只能通过物联模块获取私有仪表交互协议中的日志数据描述符、实时数据描述符和工作参数描述符所描述的数字仪表中的数据;数据的MODBUS寄存器地址为日志数据描述符、实时数据描述符或工作参数描述符中的“MODBUS地址”,数据的读取长度为日志数据描述符、实时数据描述符或工作参数描述符中的“字节数”;物联模块收到来自MODBUS-TCP设备发送的报文后,使用FreeModbus-TCP协议栈中的MODBUS报文解析函数提取出需要读取数据的MODBUS寄存器地址和读取长度;然后,启动私有仪表交互协议中的MODBUS数据请求流程,向数字仪表请求数据;获取数字仪表的数据之后,转发给网络中发起请求的MODBUS-TCP设备。
6.如权利要求1所述的一种基于WI-FI的通用型多协议数字仪表物联模块,其特征在于:物联软件协议中的命令透传协议规定了客户端、命令调试工具与数字仪表之间直接进行命令/数据交互的方式;命令透传协议规定的网络中客户端、命令调试工具发送的透传命令的格式为私有仪表交互协议中数据命令中的“透传命令”的格式,即由“@+命令原文”组成的字符串命令;物联模块接收到客户端或命令调试工具发送的由字符“@”开始的命令之后,即将其视为透传命令,直接启动私有仪表交互协议中的命令透传请求流程,将接收到的“@+命令原文”格式的命令直接转发给数字仪表,供数字仪表采用其私有命令调试协议进行命令解析和执行;物联模块接收到数字仪表发送的私有仪表交互协议中数据命令中的“回响消息”命令后,将其视为透传数据,由命令透传协议直接将“回响消息”原文转发给网络中的客户端或命令调试工具。
7.如权利要求1所述的一种基于WI-FI的通用型多协议数字仪表物联模块,其特征在于:物联API函数库由IoT.lib文件和IoT.h文件组成,运行于数字仪表的主处理器中,用于对接物联软件协议中的私有仪表交互协议,适配物联模块;
IoT.lib文件中提供了供数字仪表主处理器程序中使用的与物联模块交互的物联数据变量IoT_DATA和API函数;API函数包括外部API函数和内部API函数:外部API函数供数字仪表主处理器程序直接调用,用于向数字仪表主处理器程序中嵌入物联模块交互管理程序;内部API函数只在外部API函数中调用,用于处理与物联模块中私有仪表交互协议中的各种仪表信息交互;
物联数据变量IoT_DATA为结构体类型,包含的成员有:仪表ID信息、日志数据集、实时数据集、工作参数集、函数指针集,各成员变量均为结构体类型;仪表ID信息:用于存放私有仪表交互协议中所述的“仪表ID描述符”中的内容描述符和容量描述符,另外还存储数字仪表的“当前固件信息”;日志数据集:用于存放需要物联转发的日志数据变量、私有仪表交互协议中所述的“日志数据描述符”中的内容描述符和容量描述符、日志数据变量地址;实时数据集:用于存放需要物联转发的实时数据变量、私有仪表交互协议中所述的“实时数据描述符”中的内容描述符和容量描述符、实时数据变量地址;工作参数集:用于存放可被网络客户端调试的数字仪表的工作参数、私有仪表交互协议中所述的“工作参数描述符”中的内容描述符和容量描述符、工作参数变量地址;函数指针集:包含仪表参数修改函数指针、私有命令调试函数指针、私有固件升级函数指针;仪表参数修改函数指针用于指向数字仪表主处理器中新定义的仪表参数修改函数,私有命令调试函数指针用于指向数字仪表私有的命令调试函数,私有固件升级函数指针用于指向数字仪表私有的固件升级函数;物联数据变量IoT_DATA及其各级子成员变量的结构体类型在IoT.h中根据不同数字仪表的实际物联功能需求进行更改,各成员变量均在数字仪表主处理器程序中进行初始化,并随数字仪表对应变量的更新而更新;
IoT.lib文件中的外部API函数包括:IoT初始化函数、IoT交互函数、实时数据转发函数;IoT初始化函数:在数字仪表主处理器的程序初始化阶段调用,检测数字仪表主处理器的存储模式为“大端模式”还是“小端模式”;IoT交互函数:在数字仪表的串行接口的接收中断函数中调用,该函数首先调用内部API函数中的“串行接口读写函数”读取串口接收到的数据或命令,然后按照私有仪表交互协议解析命令并调用相应的内部API函数或外部API函数中的“实时数据转发函数”配合物联模块完成私有仪表交互协议中的仪表信息交互流程;实时数据转发函数:该函数在数字仪表主处理器程序和“IoT交互函数”中调用,“IoT交互函数”接收到物联模块发送的功能命令“定时请求实时数据”时调用该函数发送相应的“实时数据”给物联模块;“IoT交互函数”接收到物联模块发送的功能命令“请求开始实时数据高速上传”时使能实时数据高速上传功能并由数字仪表主处理器程序周期性地调用该函数高速上传“实时数据”给物联模块;
IoT.lib文件中的内部API函数包括:串行接口读写函数、存储模式转发函数、仪表ID描述符转发函数、日志数据描述符转发函数、实时数据描述符转发函数、工作参数描述符转发函数、工作参数转发函数、工作参数更改函数、日志数据发送标识更新函数、实时数据发送标识更新函数、日志数据转发函数、MODBUS-TCP数据转发函数,用于外部API函数调用实现与物联模块按私有仪表交互协议进行信息交互;其中,串行接口读写函数用于发送和接收数据,对所有数据均采用统一的字符型数据收发操作,支持单字节、双字节字符型数据的收发功能;工作参数更改函数调用物联数据变量IoT_DATA中仪表参数修改函数指针指向的数字仪表主处理器中新定义的“仪表参数修改函数”对仪表的工作参数进行修改;
IoT.h文件用于数字仪表适配参数的宏定义和IoT.lib文件中的物联数据变量IoT_DATA的结构体类型定义、IoT_DATA外部变量声明、外部API函数声明;其中,数字仪表适配参数的宏定义包括主处理器字符型数据字节数、主处理器串口信息的宏定义;主处理器字符型数据字节数宏定义用于不同处理器的字符型数据占用的字节数的宏定义,可宏定义为单字节或双字节;主处理器串口信息宏定义用于宏定义数字仪表主处理器上与物联模块连接的串口的物理信息,包括串口接收缓冲器地址、串口发送缓冲器地址、接收缓冲器满标志寄存器地址、发送缓冲器满标志寄存器地址、接收缓冲器满标志位置、发送缓冲器满标志位置、接收缓冲器接收到新数据时的接收缓冲器满标志值、发送缓冲器为空时的发送缓冲器满标志值;
利用API函数库对数字仪表与物联模块进行适配需要:①将IoT.lib文件添加到数字仪表的主处理器程序中,并在其程序文件中包含头文件IoT.h;②在头文件IoT.h中完成数字仪表适配参数宏定义的修改;③根据数字仪表需要进行物联交互的各类数据,在头文件IoT.h中修改变量IoT_DATA及其子成员的结构体类型的定义,其中,IoT_DATA结构体类型的成员“日志数据集”、“实时数据集”和“工作参数集”的日志数据、实时数据、工作参数的变量个数和类型根据实际的物联交互需求进行增删或修改,“日志数据描述符”、“实时数据描述符”和“工作参数描述符”则按变量个数和描述长度来定义内容描述符数组的大小和容量描述符的大小,“日志数据变量地址”、“实时数据变量地址”和“工作参数变量地址”的数组长度则为变量个数;④在数字仪表程序文件中定义“仪表参数修改函数”以用于物联客户端修改调试仪表工作参数,此函数带一个输入形参,形参为工作参数序号,此函数中根据工作参数序号将IoT_DATA变量的成员中修改过的工作参数值赋值给仪表实际的工作参数变量;如不需提供物联客户端修改仪表工作参数的功能则可不定义此函数;⑤在数字仪表主程序的初始化阶段调用外部API函数中的“IoT初始化函数”,并对物联数据变量IoT_DATA进行初始化;其中,仪表参数修改函数指针指向新定义的“仪表参数修改函数”,私有命令调试函数指针指向数字仪表私有的命令调试函数,私有固件升级函数指针指向数字仪表私有的固件升级函数;若数字仪表主处理器程序中无仪表参数修改函数、私有命令调试函数或私有固件升级函数,则相应的函数指针初始化为NULL;⑥在数字仪表软件程序中数据刷新的位置或某个统一的位置插入IoT_DATA变量成员的更新指令;⑦在数字仪表主处理器的串口接收中断服务子程序中调用外部API函数中的“IoT交互函数”;⑧在数字仪表主处理器程序中适当位置调用外部API函数中的“实时数据转发函数”,让其被周期性执行,并将该执行周期更新到物联数据变量IoT_DATA的成员“实时数据集”的子成员“实时数据描述符”的“内容描述符”中的“刷新率”中。
CN202110656856.4A 2021-06-11 2021-06-11 一种基于wi-fi的通用型多协议数字仪表物联模块 Active CN113242534B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110656856.4A CN113242534B (zh) 2021-06-11 2021-06-11 一种基于wi-fi的通用型多协议数字仪表物联模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110656856.4A CN113242534B (zh) 2021-06-11 2021-06-11 一种基于wi-fi的通用型多协议数字仪表物联模块

Publications (2)

Publication Number Publication Date
CN113242534A true CN113242534A (zh) 2021-08-10
CN113242534B CN113242534B (zh) 2022-05-10

Family

ID=77139775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110656856.4A Active CN113242534B (zh) 2021-06-11 2021-06-11 一种基于wi-fi的通用型多协议数字仪表物联模块

Country Status (1)

Country Link
CN (1) CN113242534B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938531A (zh) * 2021-09-23 2022-01-14 北京车和家信息技术有限公司 数据传输方法、装置、设备及介质
CN114338736A (zh) * 2021-12-07 2022-04-12 中国人民解放军总医院 物联网设备的数据传输管理系统、方法和计算机装置
CN114928662A (zh) * 2022-04-22 2022-08-19 深圳市天陆海导航设备技术有限责任公司 自定义协议支持多接口的通讯方法
CN117032874A (zh) * 2023-10-08 2023-11-10 统信软件技术有限公司 一种远程控制方法、装置、计算设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741770A (zh) * 2009-12-23 2010-06-16 上海电器科学研究所(集团)有限公司 一种Ethernet/IP通信网关及其实现方法
US20160065653A1 (en) * 2014-08-26 2016-03-03 Fujitsu Limited Internet of things (iot) device configuration construction
CN106331284A (zh) * 2015-06-15 2017-01-11 思普尔黄石物联科技有限公司 一种基于wifi物联网技术的通讯系统
CN107018127A (zh) * 2017-03-07 2017-08-04 西安电子科技大学 一种兼容多种协议的物联网虚拟网关及节点接入认证方法
CN108092884A (zh) * 2017-11-23 2018-05-29 南京邮电大学 一种无线接入网关系统及应用方法
US20200089637A1 (en) * 2018-09-16 2020-03-19 U-Thing Technology Limited METHOD AND SYSTEM FOR ENABLING USB DEVICES TO OPERATE AS INTERNET OF THING (IoT) DEVICES BASED ON THING DESCRIPTION MODEL
CN112003837A (zh) * 2020-08-05 2020-11-27 深圳市中物互联技术发展有限公司 基于Modbus协议的设备智能适配方法、装置及存储介质
CN213043703U (zh) * 2020-11-03 2021-04-23 合沃物联技术(南京)有限公司 一种基于工业物联网关的多协议解析系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741770A (zh) * 2009-12-23 2010-06-16 上海电器科学研究所(集团)有限公司 一种Ethernet/IP通信网关及其实现方法
US20160065653A1 (en) * 2014-08-26 2016-03-03 Fujitsu Limited Internet of things (iot) device configuration construction
CN106331284A (zh) * 2015-06-15 2017-01-11 思普尔黄石物联科技有限公司 一种基于wifi物联网技术的通讯系统
CN107018127A (zh) * 2017-03-07 2017-08-04 西安电子科技大学 一种兼容多种协议的物联网虚拟网关及节点接入认证方法
CN108092884A (zh) * 2017-11-23 2018-05-29 南京邮电大学 一种无线接入网关系统及应用方法
US20200089637A1 (en) * 2018-09-16 2020-03-19 U-Thing Technology Limited METHOD AND SYSTEM FOR ENABLING USB DEVICES TO OPERATE AS INTERNET OF THING (IoT) DEVICES BASED ON THING DESCRIPTION MODEL
CN112003837A (zh) * 2020-08-05 2020-11-27 深圳市中物互联技术发展有限公司 基于Modbus协议的设备智能适配方法、装置及存储介质
CN213043703U (zh) * 2020-11-03 2021-04-23 合沃物联技术(南京)有限公司 一种基于工业物联网关的多协议解析系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NEVEN NIKOLOV AND OGNYAN NAKOV: "Design_and_Implementation_of_a_System_for_Remote_IoT_Device_Management", 《2020 28TH NATIONAL CONFERENCE WITH INTERNATIONAL PARTICIPATION (TELECOM)》 *
梁业彬: "基于OpenWrt的智能家居通用网关的设计与实现", 《中国优秀硕士学位论文全文数据库》 *
陈彦彬等: "基于ModBus协议的物联网环境监测系统开发", 《智能计算机与应用》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938531A (zh) * 2021-09-23 2022-01-14 北京车和家信息技术有限公司 数据传输方法、装置、设备及介质
CN113938531B (zh) * 2021-09-23 2023-10-31 北京车和家信息技术有限公司 数据传输方法、装置、设备及介质
CN114338736A (zh) * 2021-12-07 2022-04-12 中国人民解放军总医院 物联网设备的数据传输管理系统、方法和计算机装置
CN114338736B (zh) * 2021-12-07 2023-08-01 中国人民解放军总医院 物联网设备的数据传输管理系统、方法和计算机装置
CN114928662A (zh) * 2022-04-22 2022-08-19 深圳市天陆海导航设备技术有限责任公司 自定义协议支持多接口的通讯方法
CN114928662B (zh) * 2022-04-22 2023-09-29 深圳市天陆海导航设备技术有限责任公司 自定义协议支持多接口的通讯方法
CN117032874A (zh) * 2023-10-08 2023-11-10 统信软件技术有限公司 一种远程控制方法、装置、计算设备及存储介质
CN117032874B (zh) * 2023-10-08 2024-02-23 统信软件技术有限公司 一种远程控制方法、装置、计算设备及存储介质

Also Published As

Publication number Publication date
CN113242534B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
CN113242534B (zh) 一种基于wi-fi的通用型多协议数字仪表物联模块
CN103262020B (zh) 用于打印机的虚拟输入/输出装置
CN110198247A (zh) 接口测试方法及系统
CN103957198B (zh) 一种传感数据接收转换方法及系统
Di Nisio et al. Design of a low cost multipurpose wireless sensor network
US20190342737A1 (en) Remote bluetooth communication system
CN109857452B (zh) 一种基于xml的火箭测发控系统的配置方法及装置
CN106899452B (zh) 一种基于xm2m协议的消息循环处理的物联网终端调试方法
CN106027612A (zh) 一种远程智能监控系统
CN110119282A (zh) 一种基于通用嵌入式计算机的物联网终端及系统
CN111427602B (zh) 一种vpx机箱的智能平台管理控制器在线升级固件的方法
CN115134236A (zh) 一种智能网卡管理的方法、装置、设备及可读介质
CN104915346B (zh) 用于网页模块的Web服务器及其输出控制或输入更新方法
CN104683438A (zh) 一种北斗或gps双模在线定位方法
CN113472637A (zh) 一种lora网关
JP2014106938A (ja) 機器管理システム
CN114760285B (zh) 一种物联网传感器配置和控制方法及系统
CN114995591B (zh) 传感器注册方法、控制系统及相关设备
CN114745257B (zh) 数据帧调试方法、装置、设备及存储介质
Hariyale et al. Development of an embedded web server system for controlling and monitoring of remote devices based on ARM and Win CE
CN118051302B (zh) 一种基于nfc的单片机设备维护系统及方法
CN104678413A (zh) 一种在线定位系统
CN105979568B (zh) 接入装置、方法及平台
CN112367656B (zh) 一种ZigBee网关控制方法、装置、存储介质及网关
CN113703811B (zh) 一种dsp远程下载固件的方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant