System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种网关机设备的串口数据报文队列处理方法及网关机设备,属于智慧变配电站房中内部数据传输技术。
技术介绍
1、在电力变配电站房内,存在大量使用串口进行数据通信的传感器设备,串口也是网关机设备上非常常用的设备通信接口,通信双方之间使用串行线路进行数据通信;虽然串口通信具有传输速度慢的缺点,但是由于其在兼容性、稳定性、成本效益和灵活性等方面的优势,因此,串口通信在智慧变配电站房中仍然发挥着不可或缺的作用。
2、符合串口通信协议的数据包内容包含起始位、主体数据、校验位和停止位,串行通信双方需要约定一致的波特率、起始位、校验位和停止位和数据包格式才能进行正常的通信;由于串口通信按bit位发送,传输速率较慢,而且由于串口通信的发送方和接收方之间没有统一的时钟信号,所以串口通信报文队列处理方式存在一定的特殊性。
3、在电力变配电站房内,传感器设备涉及各种类型的数据,有些是开关量或状态数据、有些是模拟量数据,有些是对传感器设备的控制数据,网关机设备对这些不同类型的数据处理方式也不尽相同,例如,开关量状态数据需要频繁的获取数据信息,特别是开关控制后需要及时的得到开关量控制反馈;而一些模拟量数据一般变化不大,不需要频繁读取数据信息,可以适当把数据采集间隔拉长。因此,针对不同的数据信息需要采用不同处理策略,才能够避免重复、低时效的数据处理。
技术实现思路
1、专利技术目的:为了克服现有技术中存在的不足,本专利技术提供一种网关机设备的串口数据报文队列处理方法,设计了固
2、技术方案:为实现上述目的,本专利技术采用的技术方案为:
3、一种网关机设备的串口数据报文队列处理方法,采用modbus协议作为通信协议,为传感器配置modbus通信地址,为传感器信息点配置寄存器地址、读写功能码和四遥类型;对于遥信信息点和遥测信息点,将同一个传感器中寄存器地址连续、读写功能码相同且四遥类型一致的传感器数据点存放到一个处理数据堆,将处理数据堆翻译为modbus报文,并为modbus报文增加报文属性信息形成永久性的modbus报文信息;将遥控信息点或遥调信息点的报文处理指令组装成临时性的modbus报文信息,相对应的遥信信息点和遥测信息点的反馈信息也组装成临时性的modbus报文信息;将同一四遥类型的所有modbus报文信息存放在内存的一个报文存储堆中,采用定时遍历报文存储堆与上位机指令相结合的方式,将modbus报文信息加入到串口的modbus报文信息处理队列,串口逐个取出modbus报文信息处理队列中的modbus报文信息进行报文处理。
4、modbus是一种串行通信协议,已经成为工业领域通信协议的业界标准;modbus协议采用主/从通讯模式,采用主问从答的模式,进行数据通信;modbus报文涉及通信地址、读写功能码和寄存器地址三个信息,只要获取这三个信息,就可以按照modbus报文规则生成modbus报文。本案中,对于遥控报文和遥调报文,每个信息点都要分开进行单独处理,与之对应的遥信报文和遥测报文(可以认为是响应遥控报文和遥调报文的结果),每个信息点也都要分开进行单独处理,以满足调控和反馈的时效性需求;而其他的遥信报文和遥测报文,本案使用寄存器地址连续原则进行组合区域组帧。
5、具体的,所述报文属性信息包括信息点列表、报文类型、报文接收长度、报文读取周期、可重新发送标识、modbus报文、报文锁和报文处理时间戳;对于遥信信息点和遥测信息点,综合判断modbus报文信息的报文读取周期、报文处理时间戳和可重新发送标识,确定是否将modbus报文信息加入到modbus报文信息处理队列的队尾;对于遥控信息点和遥调信息点的modbus报文信息,根据上位机指令直接将modbus报文信息插入到modbus报文信息处理队列的队首;对于针对遥控信息点和遥调信息点反馈的遥信信息点和遥测信息点的modbus报文信息,根据上位机指令即时或延时将modbus报文信息插入到modbus报文信息处理队列的队首。
6、具体的,对于遥信信息点和遥测信息点,综合判断modbus报文信息的报文读取周期、报文处理时间戳和可重新发送标识,若可重新发送标识为真,且当前时间与报文处理时间戳的差值大于报文读取周期,则更新可重新发送标识为假,并将modbus报文信息加入modbus报文信息处理队列的队尾;若可重新发送标识为假,则表示该modbus报文信息已经加入了modbus报文信息处理队列,不可重复添加。
7、具体的,在组织modbus报文信息处理队列时,若遍历到某一modbus报文信息,确定是否需要将该modbus报文信息加入到modbus报文信息处理队列时,先锁定报文锁,在得到确定结果后释放报文锁;在串口从modbus报文信息处理队列取出到某一modbus报文信息进行报文处理时,先锁定报文锁,在报文处理完成后释放报文锁。本案设计报文锁,目的是避免多线程对同一个modbus报文信息同时进行处理,造成数据错乱问题;每个modbus报文信息都有一个报文锁。
8、具体的,该方法包括如下步骤:
9、step1、为各传感器和各传感器信息点建档,为传感器配置modbus通信地址,为传感器信息点配置寄存器地址、读写功能码和四遥类型;四遥类型包括遥信、遥测、遥控和遥调四种类型,构建指定遥控信息点与指定遥信信息点之间的对应关系,构建指定遥调信息点与指定遥测信息点之间的对应关系;
10、step2、网关机加载传感器及传感器信息点的配置信息;
11、step3、对于遥信信息点和遥测信息点,按照传感器信息点的读写功能码和四遥类型进行分堆处理,将同一个传感器中寄存器地址连续、读写功能码相同且四遥类型一致的传感器信息点存放到一个处理数据堆,并记录处理数据堆的寄存器地址范围;将每个处理数据堆的信息翻译为modbus报文,包括传感器的modbus通信地址、读写功能码、寄存器地址范围;若某个处理数据堆的寄存器地址范围超过modbus报文长度限制,则以modbus报文长度限制为参考对寄存器地址范围进行拆分,形成两个以上modbus报文;若某个处理数据堆的寄存器地址范围没有超过modbus报文长度限制,则形成一个modbus报文;为每个modbus报文增加报文属性信息形成modbus报文信息,报文属性信息包括信息点列表、报文类型、报文接收长度、报文读取周期、可重新发送标识、modbus报文、报文锁和报文处理时间戳,设定报文类型为永久性报文;将同一四遥类型的所有modbus报文信息存放在内存的一个报文存储堆中;
12、step4、为每一个串口通信服务增加一个定时器(一般为秒级定时器),网关机定时遍历报文存储堆,当遍历到某一个modbus报文信息时,首先锁定该modbu本文档来自技高网...
【技术保护点】
1.一种网关机设备的串口数据报文队列处理方法,其特征在于:采用Modbus协议作为通信协议,为传感器配置Modbus通信地址,为传感器信息点配置寄存器地址、读写功能码和四遥类型;对于遥信信息点和遥测信息点,将同一个传感器中寄存器地址连续、读写功能码相同且四遥类型一致的传感器数据点存放到一个处理数据堆,将处理数据堆翻译为Modbus报文,并为Modbus报文增加报文属性信息形成永久性的Modbus报文信息;将遥控信息点或遥调信息点的报文处理指令组装成临时性的Modbus报文信息,相对应的遥信信息点和遥测信息点的反馈信息也组装成临时性的Modbus报文信息;将同一四遥类型的所有Modbus报文信息存放在内存的一个报文存储堆中,采用定时遍历报文存储堆与上位机指令相结合的方式,将Modbus报文信息加入到串口的Modbus报文信息处理队列,串口逐个取出Modbus报文信息处理队列中的Modbus报文信息进行报文处理。
2.根据权利要求1所述的网关机设备的串口数据报文队列处理方法,其特征在于:所述报文属性信息包括信息点列表、报文类型、报文接收长度、报文读取周期、可重新发送标识、
3.根据权利要求2所述的网关机设备的串口数据报文队列处理方法,其特征在于:对于遥信信息点和遥测信息点,综合判断Modbus报文信息的报文读取周期、报文处理时间戳和可重新发送标识,若可重新发送标识为真,且当前时间与报文处理时间戳的差值大于报文读取周期,则更新可重新发送标识为假,并将Modbus报文信息加入Modbus报文信息处理队列的队尾。
4.根据权利要求2所述的网关机设备的串口数据报文队列处理方法,其特征在于:在组织Modbus报文信息处理队列时,若遍历到某一Modbus报文信息,确定是否需要将该Modbus报文信息加入到Modbus报文信息处理队列时,先锁定报文锁,在得到确定结果后释放报文锁;在串口从Modbus报文信息处理队列取出到某一Modbus报文信息进行报文处理时,先锁定报文锁,在报文处理完成后释放报文锁。
5.根据权利要求1所述的网关机设备的串口数据报文队列处理方法,其特征在于:该方法包括如下步骤:
6.一种网关机设备,其特在于:采用Modbus协议作为通信协议,通过串口实现与传感器的通信连接,包括传感器和传感器信息点配置模块、永久性Modbus报文翻译模块、临时性Modbus报文翻译模块、报文存储堆、报文遍历模块、报文指令接收模块、Modbus报文信息处理队列和报文处理模块;
7.根据权利要求6所述的网关机设备,其特在于:所述永久性Modbus报文翻译模块,对于遥信信息点和遥测信息点,按照传感器信息点的读写功能码和四遥类型进行分堆处理,将同一个传感器中寄存器地址连续、读写功能码相同且四遥类型一致的传感器信息点存放到一个处理数据堆,并记录处理数据堆的寄存器地址范围;将每个处理数据堆的信息翻译为Modbus报文,若某个处理数据堆的寄存器地址范围超过Modbus报文长度限制,则以Modbus报文长度限制为参考对寄存器地址范围进行拆分,形成两个以上Modbus报文,否则形成一个Modbus报文;为Modbus报文增加报文属性信息形成Modbus报文信息,设定报文类型为永久性报文。
8.根据权利要求6所述的网关机设备,其特在于:所述临时性Modbus报文翻译模块,将指定遥控信息点的报文处理指令翻译为一个Modbus报文,为Modbus报文增加报文属性信息形成Modbus报文信息,设定报文类型为临时性报文,将该Modbus报文信息称为遥控报文;将与遥控报文相关联的指定遥信信息点的反馈信息翻译为一个Modbus报文,为Modbus报文增加报文属性信息形成Modbus报文信息,设定报文类型为临时性报文,将该Modbus报文信息称为遥信报文;将指定遥调信息点的报文处理指令翻译为一个Modbus报文,为Modbus报文增加报文属性信息形成Modbus报文信息,设定报文类型为临时性报文,将该Modbus报文信息称为遥调报文;将与遥调报文相关联的指定遥测信息点的反馈信息翻...
【技术特征摘要】
1.一种网关机设备的串口数据报文队列处理方法,其特征在于:采用modbus协议作为通信协议,为传感器配置modbus通信地址,为传感器信息点配置寄存器地址、读写功能码和四遥类型;对于遥信信息点和遥测信息点,将同一个传感器中寄存器地址连续、读写功能码相同且四遥类型一致的传感器数据点存放到一个处理数据堆,将处理数据堆翻译为modbus报文,并为modbus报文增加报文属性信息形成永久性的modbus报文信息;将遥控信息点或遥调信息点的报文处理指令组装成临时性的modbus报文信息,相对应的遥信信息点和遥测信息点的反馈信息也组装成临时性的modbus报文信息;将同一四遥类型的所有modbus报文信息存放在内存的一个报文存储堆中,采用定时遍历报文存储堆与上位机指令相结合的方式,将modbus报文信息加入到串口的modbus报文信息处理队列,串口逐个取出modbus报文信息处理队列中的modbus报文信息进行报文处理。
2.根据权利要求1所述的网关机设备的串口数据报文队列处理方法,其特征在于:所述报文属性信息包括信息点列表、报文类型、报文接收长度、报文读取周期、可重新发送标识、modbus报文、报文锁和报文处理时间戳;对于遥信信息点和遥测信息点,综合判断modbus报文信息的报文读取周期、报文处理时间戳和可重新发送标识,确定是否将modbus报文信息加入到modbus报文信息处理队列的队尾;对于遥控信息点和遥调信息点的modbus报文信息,根据上位机指令直接将modbus报文信息插入到modbus报文信息处理队列的队首;对于针对遥控信息点和遥调信息点反馈的遥信信息点和遥测信息点的modbus报文信息,根据上位机指令即时或延时将modbus报文信息插入到modbus报文信息处理队列的队首。
3.根据权利要求2所述的网关机设备的串口数据报文队列处理方法,其特征在于:对于遥信信息点和遥测信息点,综合判断modbus报文信息的报文读取周期、报文处理时间戳和可重新发送标识,若可重新发送标识为真,且当前时间与报文处理时间戳的差值大于报文读取周期,则更新可重新发送标识为假,并将modbus报文信息加入modbus报文信息处理队列的队尾。
4.根据权利要求2所述的网关机设备的串口数据报文队列处理方法,其特征在于:在组织modbus报文信息处理队列时,若遍历到某一modbus报文信息,确定是否需要将该modbus报文信息加入到modbus报文信息处理队列时,先锁定报文锁,在得到确定结果后释放报文锁;在串口从modbus报文信息处理队列取出到某一modbus报文信息进行报文处理时,先锁定报文锁,在报文处理完成后释放报文锁。
5.根据权利要求1所述的网关机设备的串口数据报文队列处理方法,其特征在于:该方法包...
【专利技术属性】
技术研发人员:许苏军,操星,徐姣,管相东,符建辉,
申请(专利权)人:江苏征途技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。