一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Modbus协议的光伏逆变器多主机安全通讯方法及系统与流程

2022-04-02 04:14:23 来源:中国专利 TAG:

基于modbus协议的光伏逆变器多主机安全通讯方法及系统
技术领域
1.本发明涉及modbus通讯的技术领域,具体涉及基于modbus协议的光伏逆变器多主机安全通讯方法及系统。


背景技术:

2.modbus协议作为一种应用极为广泛的通讯协议,已经成为工业领域通信协议的业界标准可应用于各种数据采集和过程监控环境中;然而,由于modbus协议是一个基于master/slave架构的协议,其中一个节点是master节点(即:主机节点),其他使用modbus协议参与通信的节点都是slave节点(即:从机节点);每一个从机节点设备都有一个唯一的地址,任何时候都是仅主机节点能初始化传输发出查询指令,其它从机节点根据主机节点查询指令作出相应的反应。
3.光伏产业作为代表性清洁能源新兴产业,在应对能源问题、缓解气候变暖等方面起着重要作用;目前分布式光伏电站的装机量快速增长、其占比不断提高,使得大规模光伏的发电并网给电网正常调度运行带来较大不确定和间歇性。
4.电网调控部门为加强分布式光伏的调度运行管理工作,确保电网安全稳定运行,要求对分布式光伏电站并网点及各逆变器的数据进行采集、并实时传回电网调控中心;此外,作为光伏设备厂商或光伏用户,为随时掌握光伏系统的运行情况、告警信息及发电数据,通常也需要在光伏逆变器上插接一个逆变器数据采集监控模块(俗称逆变器监控棒),逆变器数据采集监控模块广泛应用于光伏发电站在线监测,利用wifi、lora、2g/3g/4g网络将采集的数据传送到云平台,通过web网页或app将数据呈现给用户,同时用户也可以借助web网页或app对逆变器进行远程控制和维护。
5.上述对光伏逆变器的监控、或电网调控中心的数据采集,其工作模式都是通过逆变器上的rs485接口,使用modbus通讯协议进行逆变器运行数据的采集。
6.但是:目前绝大部分光伏逆变器只有一路modbus总线接口,使得逆变器监控棒和电网调控中心的数据采集作为两个主机节点时,不能同时接在逆变器上进行通讯;此外,当现场有多台逆变器时,电网调控中心的数据采集是需要各逆变器按菊花链的接线方式进行组网;因此,各逆变器的地址必须设置成各不相同的唯一地址;然而,逆变器监控棒又是按照各逆变器独立工作模式设计制造的产品,监控棒访问逆变器的地址都是默认相同且不可更改的,因而也会造成不能同时接在逆变器上进行通讯的问题。
7.此外,目前各光伏品牌的逆变器监控棒都是通过wifi、lora、2g/3g/4g网络等方式接入互联网,将数据上传到各光伏品牌厂商的云平台或第三方云平台,这种模式存在恶意攻击者通过互联网来对逆变器设备进行非法操控的风险,违反了《电力监控系统安全防护总体方案》的各业务系统及设备禁止与互联网连接的原则。


技术实现要素:

8.针对相关技术中存在的不足,本发明所要解决的技术问题在于:提供一种能够实
现多个主机设备与光伏逆变器通讯,且接入互联网安全性较高的基于modbus协议的光伏逆变器多主机安全通讯方法与系统。
9.为解决上述技术问题,本发明采用的技术方案为:基于modbus协议的光伏逆变器多主机安全通讯方法,包括以下步骤:s10,多个主机设备分别发送主机通讯报文,所述主机通讯报文保存于相应主机设备的指令队列中;所述主机通讯报文中包括:虚拟从机地址字段、功能码字段、数据字段和差错校验字段;s20,读取主机设备指令队列中的其中一个主机通讯报文;读取的主机通讯报文所对应的主控设备定义为当前主机设备;s30,对读取的主机通讯报文进行功能码字段的检查,判断是否为允许的功能码,如是,则将该主机通讯报文给予通过;否则,将该主机通讯报文丢弃后,重新执行步骤s20;s40,根据地址关系列表,对给予通过的主机通讯报文进行地址转换,将虚拟从机地址转换为实际从机地址;其中,所述地址关系列表中:多个主机设备对同一实际从机地址分别用不同的虚拟地址进行定义;s50,根据实际从机地址,对实际从机地址对应的光伏逆变器进行数据采集,并返回光伏逆变器响应于主机通讯报文的从机通讯报文;s60,对返回的从机通讯报文进行地址转换,将从机通讯报文中的实际从机地址转换为当前主机设备对应的虚拟从机地址;s70,将从机通讯报文发送给当前主机设备;之后,循环执行步骤s20~s70,读取指令队列中的下一条主机通讯报文,完成主机设备与光伏逆变器之间的数据通信。
10.优选地,所述s50,根据实际从机地址,对实际从机地址对应的光伏逆变器进行数据采集,并返回光伏逆变器响应于主机通讯报文的从机通讯报文;包括:s501,接收主机通讯报文,并发送给实际从机地址对应的光伏逆变器;并接收光伏逆变器响应于主机通讯报文返回的从机通讯报文;或s502,按照设定的数据采集点表,对光伏逆变器进行数据采集,并将采集的数据存储于数据缓存区中;接收主机通讯报文,从数据缓存区内读取出从机实际地址所对应的存储数据,并封装成该主机通讯报文的从机通讯报文。
11.优选地,所述步骤s20中,读取主机设备指令队列中的其中一个主机通讯报文,具体为:接收配置的轮询模式,并根据具体的读取状态,选择相应的轮询模式,对多个指令队列中的其中一个主机通讯报文进行读取;所述的轮询模式包括:默认轮询模式、合法奖励轮询模式和在线奖励轮询模式;所述在线奖励轮询模式包括:根据在线奖励系数f(y),读取主机设备的指令队列中的主机通讯报文;所述在线奖励系数f(y)中的y表示:在线奖励轮询模式中读取主机通讯报文的数量,且y≤n ;n表示:在线奖励轮询模式中读取主机通讯报文的数量最大值;且在线奖励系数f(y)满足以下表达式:f(0)=1;f(y)=y 1;所述合法奖励轮询模式包括:根据合法奖励系数k(x)、奖励时间t,当前主机设备
的指令队列中的主机通讯报文;所述合法奖励系数k(x)中的x表示:合法奖励轮询模式中读取主机通讯报文的数量,且x≤m;m表示:合法奖励轮询模式中读取主机通讯报文的数量最大值;且合法奖励系数k(x)满足以下表达式:k(0)=1;k(x)=x 1。
12.优选地,所述默认轮询模式包括:依次轮询读取所有指令队列,具体为:主机通讯报文按照先进先出的原则,按序保存于相应主机设备的指令队列中;轮询读取并处理所有指令队列中的第一条主机通讯报文;轮询完第一条主机通讯报文之后,轮询读取所有指令队列中的第二条主机通讯报文并处理;以此类推,直到轮询读取完所有指令队列中的所有指令。
13.优选地,所述主机设备的数量为两个;所述步骤s20中,具体的读取状态,包括:s201,轮询读取启动,并预设为默认轮询模式,所述的默认轮询模式为:依次轮询读取所有指令队列;s202,当默认轮询模式中,轮询至某一主机设备对应的指令队列为空时,将指令队列为空的主机设备作为第一主机设备,另一个主机设备作为第二主机设备,并执行步骤s204;s203,当默认轮询模式中,轮询读取的某一主机设备对应的指令队列中的主机通讯报文,在之后的功能码字段的检查中,被丢弃后,将丢弃报文的主机设备作为第一主机设备,另一个主机设备作为第二主机设备,并执行步骤s205;s204,进入在线奖励轮询模式;具体包括:s2041,读取第二主机设备的指令队列,且令y=1;以使读取完第二主机设备的f(y)条主机通讯报文后,回到默认轮询模式,读取第一主机设备的指令队列;s2042,当再读取的第一主机设备对应的指令队列为空时,判断是否为再次为空,如否,则执行步骤s2041,否则执行步骤s2043;s2043,判断是否满足i≤n,如满足,则执行步骤s2044,否则执行步骤s2045;s2044,判断是否满足i≤j,如满足,则令y=i,不满足,则令y=j,以使读取完第二主机设备的f(y)条主机通讯报文后,再读取第一主机设备的指令队列;其中,i表示再次为空的次数,j表示在线奖励轮询模式中第二主机设备未读取指令的数量;s2045, 判断是否满足n≤j,如满足,则令y=n,以使读取完第二主机设备的f(y)条主机通讯报文后,再读取第一主机设备的指令队列;不满足,则令y=j, 以使读取完第二主机设备的全部剩余主机通讯报文后,再读取第一主机设备的指令队列;s205,进入合法奖励轮询模式,具体包括:s2051,读取第二主机设备的指令队列,且令x=1;以使读取完当前主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;s2052,读取第一主机设备的指令队列中的主机通讯报文后,判断是否满足t≤t,如满足,则执行步骤s2053; 否则,执行步骤s2054; 其中,t表示进入读取合法奖励轮询模式后的持续时间;s2053,读取完第二主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指
令队列;s2054,判断步骤s2052中读取的第一主机设备的主机通讯报文,是否为再次被丢弃,如是,则执行步骤s2055,否则,执行步骤s2057;s2055,判断是否满足k≤m,如满足,则执行步骤s2056,否则执行步骤s2057;s2056,判断是否满足m≤l,如满足,则令x=k,如不满足,则令x=m,以使读取完当前主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;其中,k表示主机通讯报文再次丢弃的次数,l表示合法奖励轮询模式中第二主机设备未读取指令的数量;s2057,则判断x-1是否为0,如不为0,则令x=x-1,如为0,则令x=0,以使读取完当前主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;以此类推,直到读取完所有指令队列中的主机通讯报文。
14.优选地,所述步骤s30,具体包括:s301,接收配置管理模块输入的功能码黑/白名单,所述功能码黑名单中包括有所有不允许通过的功能码字段号,所述功能码白名单中包括有所有允许通过的功能码字段号;s302,接收步骤s20输出的主机通讯报文,并提取该主机通讯报文中的功能码字段;s303, 判断提取的功能码字段,是否为允许通过的功能码字段,如是,则将该主机通讯报文给予通过;否则,将该主机通讯报文丢弃后,重新执行步骤s20。
15.优选地,所述主机通讯报文中的差错校验字段为crc检验方式产生的差错校验结果。
16.优选地,所述主机通讯报文中的数据字段包括:寄存器地址字段和寄存器数据字段;所述寄存器地址字段为待读取光伏逆变器上运行状态或信息的数据存放地址。
17.基于modbus协议的光伏逆变器多主机安全通讯系统,包括:多个具有modbus主机通讯接口的主机设备和多个具有modbus从机通讯接口的光伏逆变器,所述主机设备和光伏逆变器均与数据采集模块连接;所述通讯系统还包括:主机设备指令队列,为多个,且与主机设备一一对应,分别用于保存对应主机设备发送的主机通讯报文;指令轮询模块,用于读取主机设备指令队列中的其中一个主机通讯报文;读取的主机通讯报文所对应的主控设备定义为当前主机设备;以及,接收地址转换及报文封装模块输出的虚拟从机地址,将虚拟从机地址对应的机通讯报文发送给当前主机设备;功能码过滤模块,用于对指令轮询模块输出的主机通讯报文进行功能码字段的检查,判断是否为允许的功能码,如是,则将该主机通讯报文给予通过;否则,将该主机通讯报文丢弃后,重新接收指令轮询模块输出的主机通讯报文;地址转换及报文封装模块,用于根据地址关系列表,对给予通过的主机通讯报文进行地址转换,将虚拟从机地址转换为实际从机地址;其中,所述地址关系列表中:多个主机设备对同一实际从机地址分别用不同的虚拟地址进行定义;以及,对数据采集模块输出
的从机通讯报文进行地址转换,将从机通讯报文中的实际从机地址转换为当前主机设备对应的虚拟从机地址;数据采集模块,用于接收地址转换及报文封装模块输出的主机通讯报文,并根据实际从机地址,对实际从机地址对应的光伏逆变器进行数据采集,并返回光伏逆变器响应于该主机通讯报文的从机通讯报文,并发送给地址转换及报文封装模块。
18.本发明的有益技术效果在于:本发明基于modbus协议的光伏逆变器多主机安全通讯方法及系统,设置了地址转换及报文封装模块和功能码过滤模块,在地址转换及报文封装模块中设置有地址关系列表,所述地址关系列表中:对多个主机设备对同一实际从机地址分别用不同的虚拟地址进行了定义,使得当多个主机设备与光伏逆变器通信时,能够匹配出主机通讯报文来自于具体的主机设备,实现了主机设备与光伏逆变器的通讯;同时,通过对主机通讯报文进行功能码字段的检查,判断是否为允许的功能码,如是,则将该主机通讯报文给予通过;否则,将该主机通讯报文丢弃,避免了非法报文的信息采集和读取,提高了接入互联网的安全性,实用性极强。
附图说明
19.图1是本发明实施例一提供的基于modbus协议的光伏逆变器多主机安全通讯方法的流程示意图;图2是本发明实施例二中步骤s20的流程示意图;图3是本发明实施例三中步骤s30的流程示意图;图4是本发明在透传模式下基于modbus协议的光伏逆变器多主机安全通讯系统的结构示意图;图5是本发明在代理模式下基于modbus协议的光伏逆变器多主机安全通讯系统的结构示意图;图中:10为主机设备,20为光伏逆变器,30为数据采集模块,40为指令轮询模块,50为功能码过滤模块,60为地址转换及报文封装模块,70为配置管理接口;101为modbus主机通讯接口,102为主机设备指令队列;201为modbus从机通讯接口;301为数据缓存区。
具体实施方式
20.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
22.以下结合附图详细说明本发明的一个实施例。
23.实施例一如图1所示,基于modbus协议的光伏逆变器多主机安全通讯方法,包括以下步骤:s10,多个主机设备分别发送主机通讯报文,所述主机通讯报文保存于相应主机设备的指令队列中;所述主机通讯报文中包括:虚拟从机地址字段、功能码字段、数据字段和差错校验字段;s20,读取主机设备指令队列中的其中一个主机通讯报文;读取的主机通讯报文所对应的主控设备定义为当前主机设备;s30,对读取的主机通讯报文进行功能码字段的检查,判断是否为允许的功能码,如是,则将该主机通讯报文给予通过;否则,将该主机通讯报文丢弃后,重新执行步骤s20;s40,根据地址关系列表,对给予通过的主机通讯报文进行地址转换,将虚拟从机地址转换为实际从机地址;其中,所述地址关系列表中:多个主机设备对同一实际从机地址分别用不同的虚拟地址进行定义;s50,根据实际从机地址,对实际从机地址对应的光伏逆变器进行数据采集,并返回光伏逆变器响应于主机通讯报文的从机通讯报文;s60,对返回的从机通讯报文进行地址转换,将从机通讯报文中的实际从机地址转换为当前主机设备对应的虚拟从机地址;s70,将从机通讯报文发送给当前主机设备;之后,循环执行步骤s20~s70,读取指令队列中的下一条主机通讯报文,完成主机设备与光伏逆变器之间的数据通信。
24.具体地,所述s50,根据实际从机地址,对实际从机地址对应的光伏逆变器进行数据采集,并返回光伏逆变器响应于主机通讯报文的从机通讯报文;包括:s501,接收主机通讯报文,并发送给实际从机地址对应的光伏逆变器;并接收光伏逆变器响应于主机通讯报文返回的从机通讯报文;或s502,按照设定的数据采集点表,对光伏逆变器进行数据采集,并将采集的数据存储于数据缓存区中;接收主机通讯报文,从数据缓存区内读取出从机实际地址所对应的存储数据,并封装成该主机通讯报文的从机通讯报文。
25.本实施例中,每一个主机通讯报文的格式可如下表所示:其中:(1.1):从机地址范围是从1到255(其中1~247是标准规定的从机设备可以使用的地址范围,248
ꢀ‑ꢀ
255是供用户自定义扩展使用的地址范围);(1.2):功能码是指:主机设备要向光伏逆变器发出何种功能操作的代码简称,标准规定的常用功能码如下表所示。
26.(1.3):差错校验是在数据传输过程中为避免数据可能会发生错误而采用的数据验证方式,本实施例中,所述主机通讯报文中的差错校验字段为modbus协议中通常采为crc检验方式产生的差错校验结果。
27.(1.4):数据字段是主机设备与光伏逆变器进行通信的具体指令,或指所传递的信息或动作;本实施例中,所述主机通讯报文中的数据字段包括:寄存器地址字段和寄存器数据字段;所述寄存器地址字段为待读取光伏逆变器上运行状态或信息的数据存放地址。
28.一般地,光伏逆变器的寄存器地址是由设备厂商自行设定并提供寄存器地址说明给安装调试人员,安装调试人员通过定义数据采集点表(即定义要采集的寄存器地址、字节长度、系数及单位等信息)的方式来使得主机设备周期性的对光伏逆变器进行相应数据的采集。
29.以下为某品牌光伏逆变器的寄存器地址说明示意表。
30.以下对以主机设备与光伏逆变器的查询(读)、设置(写)两种情况来进一步对modbus报文做说明。
31.(2.1):例如主机设备要读取光伏逆变器(地址02)的从0011寄存器地址开始的2个
保持寄存器的数据,那么主机设备发送的报文如下:02从机收到主机的该条指令后,会将指定寄存器的当前数据返回,如下报文:(2.2):例如:主机设备要设置光伏逆变器(地址01)的0000地址的单一寄存器的数据为10,那么主机设备发送的报文如下:01从机收到主机的该条指令后,会将指定寄存器的当前数据设置为10,执行成功后返回如下报文:从上述对modbus协议格式的阐述可以看出,各光伏逆变器是依照主机设备发出的指令中所包含的地址来判断该指令是否为自己需要响应的指令,并依照指令中的功能码来判断自己该做何种操作。
32.因此,通过定义一个虚拟从机地址与真实从机地址的地址关系列表(可通过虚拟地址策略规则进行定义)即可实现不同主机设备按照各自不同的虚拟从机地址去访问同一个光伏逆变器,地址关系列表的实现方法如下表所示:本实施例中,设置了地址关系列表,使得当多个主机设备与光伏逆变器通信时,能够匹配出主机通讯报文来自于具体的主机设备,实现了主机设备与光伏逆变器的通讯;同时,通过对主机通讯报文进行功能码字段的检查,判断是否为允许的功能码,如是,则将该
主机通讯报文给予通过;否则,将该主机通讯报文丢弃,避免了非法报文的信息采集和读取,提高了接入互联网的安全性,实用性极强。
33.实施例二在实施例一的基础上,基于modbus协议的光伏逆变器多主机安全通讯方法,所述步骤s20中,读取主机设备指令队列中的其中一个主机通讯报文,具体为:接收配置的轮询模式,并根据具体的读取状态,选择相应的轮询模式,对多个指令队列中的其中一个主机通讯报文进行读取;所述的轮询模式包括:默认轮询模式、合法奖励轮询模式和在线奖励轮询模式;所述在线奖励轮询模式包括:根据在线奖励系数f(y),读取主机设备的指令队列中的主机通讯报文;所述在线奖励系数f(y)中的y表示:在线奖励轮询模式中读取主机通讯报文的数量,且y≤n ;n表示:在线奖励轮询模式中读取主机通讯报文的数量最大值;且在线奖励系数f(y)满足以下表达式:f(0)=1;f(y)=y 1;所述合法奖励轮询模式包括:根据合法奖励系数k(x)、奖励时间t,当前主机设备的指令队列中的主机通讯报文;所述合法奖励系数k(x)中的x表示:合法奖励轮询模式中读取主机通讯报文的数量,且x≤m;m表示:合法奖励轮询模式中读取主机通讯报文的数量最大值;且合法奖励系数k(x)满足以下表达式:k(0)=1;k(x)=x 1。
34.具体地,所述依次轮询读取所有指令队列,包括:主机通讯报文按照先进先出的原则,按序保存于相应主机设备的指令队列中;轮询读取并处理所有指令队列中的第一条主机通讯报文;轮询完第一条主机通讯报文之后,轮询读取所有指令队列中的第二条主机通讯报文并处理;以此类推,直到轮询读取完所有指令队列中的所有指令。
35.如图2所示,进一步地,所述主机设备的数量为两个;所述步骤s20中,具体的读取状态,包括:s201,轮询读取启动,并预设为默认轮询模式,所述的默认轮询模式为:依次轮询读取所有指令队列;s202,当默认轮询模式中,轮询至某一主机设备对应的指令队列为空时,将指令队列为空的主机设备作为第一主机设备,另一个主机设备作为第二主机设备,并执行步骤s204;s203,当默认轮询模式中,轮询读取的某一主机设备对应的指令队列中的主机通讯报文,在之后的功能码字段的检查中,被丢弃后,将丢弃报文的主机设备作为第一主机设备,另一个主机设备作为第二主机设备,并执行步骤s205;s204,进入在线奖励轮询模式;具体包括:s2041,读取第二主机设备的指令队列,且令y=1;以使读取完第二主机设备的f(y)条主机通讯报文后,回到默认轮询模式,读取第一主机设备的指令队列;s2042,当再读取的第一主机设备对应的指令队列为空时,判断是否为再次为空,如否,则执行步骤s2041,否则执行步骤s2043;
s2043,判断是否满足i≤n,如满足,则执行步骤s2044,否则执行步骤s2045;s2044,判断是否满足i≤j,如满足,则令y=i,不满足,则令y=j,以使读取完第二主机设备的f(y)条主机通讯报文后,再读取第一主机设备的指令队列;其中,i表示再次为空的次数,j表示在线奖励轮询模式中第二主机设备未读取指令的数量;s2045, 判断是否满足n≤j,如满足,则令y=n,以使读取完第二主机设备的f(y)条主机通讯报文后,再读取第一主机设备的指令队列;不满足,则令y=j, 以使读取完第二主机设备的全部剩余主机通讯报文后,再读取第一主机设备的指令队列;s205,进入合法奖励轮询模式,具体包括:s2051,读取第二主机设备的指令队列,且令x=1;以使读取完当前主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;s2052,读取第一主机设备的指令队列中的主机通讯报文后,判断是否满足t≤t,如满足,则执行步骤s2053; 否则,执行步骤s2054; 其中,t表示进入读取合法奖励轮询模式后的持续时间;s2053,读取完第二主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;s2054,判断步骤s2052中读取的第一主机设备的主机通讯报文,是否为再次被丢弃,如是,则执行步骤s2055,否则,执行步骤s2057;s2055,判断是否满足k≤m,如满足,则执行步骤s2056,否则执行步骤s2057;s2056,判断是否满足m≤l,如满足,则令x=k,如不满足,则令x=m,以使读取完当前主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;其中,k表示主机通讯报文再次丢弃的次数,l表示合法奖励轮询模式中第二主机设备未读取指令的数量;s2057,则判断x-1是否为0,如不为0,则令x=x-1,如为0,则令x=0,以使读取完当前主机设备的k(x)条主机通讯报文后,再读取第一主机设备的指令队列;以此类推,直到读取完所有指令队列中的主机通讯报文。
36.本实施例中,由于不同modbus主机通讯接口所接的主机的业务报文合规性、网络在线等现场情况不尽相同,因此通过定义指令轮询模式来实现满足不同情况下的主机采集需求。
37.本实施例中,通过默认轮询模式、合法奖励轮询模式和在线奖励轮询模式的配合使用,能够极大的提高指令读取的效率。
38.实施例三如图3所示,在实施例一的基础上,基于modbus协议的光伏逆变器多主机安全通讯方法所述步骤s30,具体包括:s301,接收配置管理模块输入的功能码黑/白名单,所述功能码黑名单中包括有所有不允许通过的功能码字段号,所述功能码白名单中包括有所有允许通过的功能码字段号;s302,接收步骤s20输出的主机通讯报文,并提取该主机通讯报文中的功能码字段;s303, 判断提取的功能码字段,是否为允许通过的功能码字段,如是,则将该主机
通讯报文给予通过;否则,将该主机通讯报文丢弃后,重新执行步骤s20。
39.本发明还提供了基于modbus协议的光伏逆变器多主机安全通讯系统。
40.如图4所示,基于modbus协议的光伏逆变器多主机安全通讯系统,包括:多个具有modbus主机通讯接口101的主机设备10和多个具有modbus从机通讯接口201的光伏逆变器20,所述主机设备10和光伏逆变器20均与数据采集模块30连接;所述通讯系统还包括:主机设备指令队列102,为多个,且与主机设备10一一对应,分别用于保存对应主机设备发送的主机通讯报文;指令轮询模块40,用于读取主机设备指令队列中的其中一个主机通讯报文;读取的主机通讯报文所对应的主控设备定义为当前主机设备;以及,接收地址转换及报文封装模块60输出的虚拟从机地址,将虚拟从机地址对应的机通讯报文发送给当前主机设备;功能码过滤模块50,用于对指令轮询模块40输出的主机通讯报文进行功能码字段的检查,判断是否为允许的功能码,如是,则将该主机通讯报文给予通过;否则,将该主机通讯报文丢弃后,重新接收指令轮询模块40输出的主机通讯报文;地址转换及报文封装模块60,用于根据地址关系列表,对给予通过的主机通讯报文进行地址转换,将虚拟从机地址转换为实际从机地址;其中,所述地址关系列表中:多个主机设备对同一实际从机地址分别用不同的虚拟地址进行定义;以及,对数据采集模块30输出的从机通讯报文进行地址转换,将从机通讯报文中的实际从机地址转换为当前主机设备对应的虚拟从机地址;数据采集模块30,用于接收地址转换及报文封装模块60输出的主机通讯报文,并根据实际从机地址,对实际从机地址对应的光伏逆变器20进行数据采集,并返回光伏逆变器20响应于该主机通讯报文的从机通讯报文,并发送给地址转换及报文封装模块60。
41.具体地,所述数据采集模块30包括两种工作模式,分别为:透传模式和代理模式;在透传模式下:所述的数据采集模块30具体包括:接收主机通讯报文,并发送给实际从机地址对应的光伏逆变器20;并接收光伏逆变器20响应于主机通讯报文返回的从机通讯报文;在代理模式下:所述的数据采集模块30具体包括:按照设定的数据采集点表,对光伏逆变器20进行数据采集,并将采集的数据存储于数据缓存区301中;接收主机通讯报文,完成主机通讯报文中各字段的检查,从数据缓存区301内读取出主机通讯报文中对应的从机实际地址所返回的数据,并封装成该主机通讯报文的从机通讯报文。
42.以下对两种工作模式下,本实施例本实施例提供的基于modbus协议的光伏逆变器多主机安全通讯系统的工作过程进行详细说明。
43.如图4所示,在透传模式下,工作时:首先,通过配置管理接口70对轮询模式、功能码黑/白名单和地址关系列表进行定义;两路modbus主机通讯接口分别接收两个主机设备的主机通讯报文,并按先进先出的原则分别保存于各自主机设备的指令队列中;其次,指令轮询模块40依照轮询模式进行主机通讯报文的读取,并发送给功能码过滤模块50;
再次,功能码过滤模块50按照功能码黑/白名单对主机通讯报文进行功能码字段的检查,对于允许的功能码(如01h、02h、03h、04h等读功能码),则报文给予通过;对于不允许的功能码(如05h、06h、0fh、10h等写功能码),则报文给予丢弃;再次,地址转换及报文封装模块60按照地址关系列表对收到的主机通讯报文进行地址字段的处理,将该主机通讯报文中的虚拟从机地址转换为实际从机地址,然后将处理后的主机通讯报文送往数据采集模块30;再次,数据采集模块30收到通讯报文后通过从机通讯接口发给光伏逆变器20,并接收接收光伏逆变器20响应于主机通讯报文返回的从机通讯报文,然后将从机通讯报文送往地址转换及报文封装模块60;再次,地址转换及报文封装模块60按照地址关系列表对返回的从机通讯报文进行地址字段的转换,将报文中的实际从机地址转换为该路主机对应的虚拟从机地址,然后将通讯报文送往指令轮询模块40;最后,指令轮询模块40收到返回的从机通讯报文后,将报文通过对应的modbus主机通讯接口101发送给该路主机设备10;由上,即可完成某路主机设备对光伏逆变器的数据采集通讯过程。
44.如图5所示,在代理模式下,工作时:首先,通过配置管理接口70对轮询模式、功能码黑/白名单、地址关系列表以及数据采集点表进行定义;其次,数据采集模块30按照设定的数据采集点表,通过modbus从机通讯接口与光伏逆变器进行通讯,完成相应寄存器地址的数据采集,并将返回的结果发送至数据缓存区301进行更新,即:数据缓存区301内保存有从机实际地址、数据采集点表中定义的寄存器地址及对应的最新数据;再次,两路modbus主机通讯接口101分别接收两个主机设备10的主机通讯报文,并按先进先出的原则分别保存于各自主机设备的指令队列中;再次,指令轮询模块40依照轮询模式进行主机通讯报文的读取,并发送给功能码过滤模块50;再次,功能码过滤模块50按照功能码黑/白名单对主机通讯报文进行功能码字段的检查,对于允许的功能码(如01h、02h、03h、04h等读功能码),则报文给予通过;对于不允许的功能码(如05h、06h、0fh、10h等写功能码),则报文给予丢弃;再次,地址转换及报文封装模块60对收到的主机通讯报文进行从机地址、起始寄存器地址、采集的寄存器个数等字段的检查,然后按照地址关系列表进行实际地址的识别,从数据缓存区301内读取出对应从机实际地址所返回的数据,然后按照modbus协议格式封装成该条主机通讯报文的从机通讯报文(封装过程包括实际地址对虚拟地址的转化),并送往指令轮询模块40;最后,指令轮询模块40收到返回的从机通讯报文后,将报文通过对应的modbus主机通讯接口101发送给该路主机设备10;由上,即可完成某路主机设备对光伏逆变器的数据采集通讯过程。
45.本实施方式中,数据采集模块30可根据实际情况(如定时采集、网络择优采集等)对光伏逆变器20的数据进行采集和暂存,在主机设备10需要读取时,进行数据的封装,避免
网络拥塞造成的采集时长、数据稳定性低的问题,实用性强。
46.本发明还提供了一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行如上述的基于modbus协议的光伏逆变器多主机安全通讯方法。
47.所述存储设备可为一计算机可读存储介质,可以包括:rom、ram、磁盘或光盘等。
48.本发明还提供了一种终端,所述终端可包括:处理器,适于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行如上述的基于modbus协议的光伏逆变器多主机安全通讯方法。
49.所述终端可为任意能够实现基于modbus协议的光伏逆变器多主机安全通讯方法的装置,该装置可以是各种终端设备,例如:台式电脑、手提电脑等,具体可以通过软件和/或硬件来实现。
50.在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
51.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
52.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
53.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
54.可以理解的是,上述方法、装置及系统中的相关特征可以相互参考。所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
55.在本技术所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
56.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献