一种基于CAN总线实现多个监控后台通讯的系统及方法
技术领域
本发明涉及电子技术领域,具体涉及一种适用电力SCADA后台、能耗监控系统、电动机预警维护后台、工业DCS、SIS控制、PLC控制等系统后台,通过CAN通讯网关与电力二次设备(电动机保护器、数字仪表、低压测量保护装置、高压微机保护)进行通讯。实现能源行业工业互联网设备与后台系统数据互联互通方案。
背景技术
工业互联网在电力二次设备行业使用时候,牵涉工业DCS、SIS、PLC控制,同时又具备电力SCADA系统、能耗监控系统、电动机预警维护后台。比如现场有3个系统(DCS工业控制系统、SIS化工生产安全系统、SCADA监控系统),电力二次设备需要3个通讯口与不同系统通讯,各个系统都实时需要电力二次设备数据,用于系统监控和控制。
DCS、SIS牵涉工艺控制,工业控制要求快速响应和高可靠性,用户为了实现快速响应,一般使用PLC控制二次设备DI开入量、采集4~20mA变送、或者直接控制电气线,实现工业快速控制需求。
工业互联网在能源行业大多数生产企业具备DCS、SCADA、SIS、PLC等相应的应用层软件或系统,能够实现控制数据、生产过程数据的采集及获取。
电力行业工业互联网应用主要集中在发电侧设备运维、电厂管理,用电侧用电优化等场景。
石化行业工业互联网应用主要集中在安全生产、生产管控、大机组装备效率优化等场景。
针对工业应用,一般用户使用2种或者多种软件平台,为了解决电力二次设备信息孤岛,电力二次设备数据采集数据有三种解决方案。
方案一:使用多个采集设备采集一个信息,比如监控电动机电力参数,需要变送器、数字表、电动机保护器等多个元件采集,每个系统厂家后台再配通讯管理,实现信息采集和转换。
方案二:一个电力二次设备,具备2个或者多个通讯接口,变送输出,现场同时布2个或者多根双绞线,变送信号线(一个信号一根双绞线)。比如监控电动机电力参数,需要输出4~20mA变送信号接入DCS、Prfibus接口PLC控制设备、多个串口接入电力SCADA或者SIS系统,每个系统厂家后台再配通讯管理单元,实现信息采集和转换。
方案三:采用OPC服务器模式,对一个电力二次设备读取数据,多个后台通讯解析。
方案1和方案2,缺点增加元件的成本,工程布线成本,优点是不同厂家后台之间彼此不牵涉协议转换和沟通。
方案3优点解决增加二次元件和工程布线成本,缺点是需要一个各个平台都相互公认OPC服务数据标准,然后大家各自解析数据,这种方案软件技术难度大,标准很难统一,门槛高,只有行业内龙头企业具备整合能力,很容易形成信息孤岛。还有一个缺点,就是OPC服务模式数据传输较慢,不满足DCS、PLC或者SIS快速控制的要求。
发明内容
为了解决以上问题,本发明提出一种针对工业互联网的多个监控后台通讯方法和系统,通过1根CAN接口实现3种后台实时通讯。解决了现场布线复杂、逻辑接线以及外界电气设备接线复杂的问题并且应用成本低。
本发明提出的一种基于CAN总线实现多个监控后台通讯的系统,包括:
多个监控后台,所述多个监控后台分别采用不同的通讯接口;
通讯网关,与多个监控后台分别采用通讯接口连接,所述通讯网关带有双CAN接口、以太网接口、以及串口,用于进行CAN接口与以太网接口或串口之间的数据传输;
多个电力二次设备通过CAN总线与所述通讯网关相连接。
进一步的,所述通讯网关的以太网接口包括两个端口,其中一个为2404端口,另一个为502端口,通讯网关的串口包括两个CAN转RS485串口。
进一步的,所述电力二次设备通过CAN总线与通讯网关进行通讯,通讯网关能够将CAN接口从CAN总线接收的数据转发到通讯网关的以太网接口或者串口;
通讯网关能够通过以太网接口或RS485串口转发电力二次设备数据,通过以太网接口的两个端口、以及RS485串口同时连接三种后台进行实时通讯;所述以太网接口符合IEC60870-5-104协议、和Modbus-TCP协议,所述RS485串口符合Modbus-RTU协议。
进一步的,所述电力二次设备,包括电动机保护器、数字仪表、低压测量保护装置、高压微机保护设备。
进一步的,所述监控后台包括多种类型:电力SCADA后台、能耗监控系统、电动机预警维护后台、工业DCS、SIS控制后台、PLC控制后台。
进一步的,通讯网关还包括1路B对时接口,用来接收B码对时,保证不同通讯网关时间误差不超过1ms;以及包括3路DI、2路DO。
进一步的,通讯网关采用芯片STM32F429,芯片内部CAN控制器和CAN收发器使用芯片TJA1050,实现与电力二次设备CAN总线通讯,使用芯片内部的以太网MAC,外接芯片PHYDP83848C,实现以太网通讯,使用芯片内部USART串口和收发器MAX485实现串口通讯。
进一步的,电力二次设备使用STM32芯片,使用芯片内部CAN控制器,CAN收发器使用芯片TJA1050,实现与通讯网关CAN总线通讯。
进一步的,电力二次设备采用STM32微处理器,还进行电力电压电流采集、电力参数运算、保护逻辑控制、液晶显示、设备交互操作、继电器(DO)出口控制、开入量(DI)采集、电气设备逻辑控制。
进一步的,通讯网关能接收B码设备对时信号,通过通讯网关与电力二次设备通讯对时。
根据本发明的另一方面,提出一种基于CAN总线实现多个监控后台通讯的方法,包括如下步骤:
步骤1:多个监控后台通过通讯网关连接到多个电力二次设备;所述通讯网关包括两个CAN接口、两个以太网接口、以及两个串口,用于将CAN接口转换到以太网口或串口;
步骤2:多个监控后台通过通讯网关查询电力二次设备的数据,或者所述的电力二次设备通过通讯网关主动上报设备数据;
步骤3:所述的电力二次设备通过通讯网关返回数据给监控后台。
进一步的,间隔层的电力二次设备上行协议中定义ID码,ID码组成包括5个部分:功能码、设备标识符地址码、数据帧号或者数据含义地址区分码、接收设备类型、数据帧号码或数据含义地址码;
网关下行协议码为:按照电力二次设备地址下发,电力二次设备地址区间为1~255;
CAN总线上所有设备保证发送ID码不冲突,上行码使用ID号均大于1677216,即十六进制的0x1000000,保证与管理机设备ID无冲突,间隔层电力二次设备同时加设备本身标识地址码,保证间隔层电力二次设备不冲突,同时又能区分间隔层电力二次设备;
CAN硬件物理层发送时,根据ID码优先级,控制传输。
进一步的,三个监控后台通过1路CAN总线实现数据交换,采用如下方法防止CAN总线上信号冲突:
利用CAN总线“载波侦听多路访问/冲突检测”的非破坏性总线仲裁方法、CAN总线29位ID号编码方式、嵌入系统多任务运行和信号量互锁机制。
进一步的,通讯网关通过4个不同的嵌入系统操作任务,从系统监控后台接收到数据后,通过嵌入系统信号量,保证4个系统监控后台分时占用CAN总线。虽然是有冲突,但是高速运行CPU和高速CAN总线,弥补分时等待时间,如同一个通讯占用独占一个CAN总线。
进一步的,2个系统监控后台通过以太网接口接收和发送数据,两个TCP/IP协议不同端口,同时接收和发送数据,通过端口区分不同协议发送数据。
2路串口对应2路CAN,一一对应,通过此串口发送或者接收系统监控后台数据。
进一步的,通讯网关同时兼容三种通讯协议:Modbus-TCP协议、Modbus-RTU协议、IEC60870-5-104协议,并且通讯网关三种协议接口同时通过一路CAN总线与间隔层设备交互,并且互不影响。
进一步的,通讯网关数据转发数据不使用数据库缓存模式,完全通过通讯网关和间隔层电力二次设备实时数据传输实现三种通讯协议同时传输,保证采集数据快速传输后台;
数据网关传输后台数据方式分为三种方式:间隔层电力二次设备根据规则主动传输、后台根据协议地址查询传输、后台下发遥控命令或者设置装置参数。
进一步的,所述间隔层电力二次设备主动传输数据,是指间隔层设备发送故障、SOE事件、遥测量突变传输,发生此数据后,主动通过CAN总线传输至网关,通过网关传输至后台。
进一步的,查询传输数据方式,是指监控后台根据协议地址,发送索要数据命令,包括总召唤命令、Modbus协议查询命令,下达至通讯网关,通讯网关通过CAN总线,下达索要命令,电力二次设备解析命令,立即按照要求转至CAN总线,通讯网关立即解析数据后,立即转到索要命令接口;通讯网关到间隔层电力二次设备下达命令、设备转到网关、网关转到监控后台系统,整个数据传递时间低于60ms时间间隔,通讯网关不缓存间隔层设备的数据,通讯网关无数据库或者文件系统。
进一步的,所述遥控命令和设置命令方式,是指监控后台直接下达命令到通讯网关,通讯网关到间隔层电力二次设备、间隔层电力二次设备执行遥控或者设置参数命令,然后电力二次设备转到通讯网关,通讯网关转到监控后台系统回复确认命令,整个流程耗时不超过60ms。
所述CAN总线“载波侦听多路访问/冲突检测”的非破坏性总线仲裁方法包括:
当节点同时向总线发送信息时,优先级较低的节点会主动退出发送,优先级高节点不受影响地继续传输数据,节省了总线仲裁时间;优先级高数据传输完毕,优先级较低的节点再次主动发送数据;优先级较低节点再次传输。
本发明电力间隔层设备CAN接口与CAN转以太网通讯网关通讯,通讯网关以太网接口转发透明间隔层设备数据,通过以太网不同端口(2404和502)、CAN转RS485串口,同时可以连接3种后台实时通讯。
有益效果:
本发明的技术方案,克服现有技术3种方案的缺点,又继承了3种解决方案各自的优点,具体如下:
1、本发明的电力二次设备利用CAN接口与CAN转以太网通讯网关通讯,通讯网关包括不同以太网端口(2404和502),通讯网关还提供CAN转RS485串口,2404端口是IEC60870-5-104协议规定端口、502是Modbus-TCP协议规定端口、RS485串口采用Modbus-RTU协议。仅需连接通讯网关以太网和RS485接口,即可同时连接3种监控后台通讯。
2、本发明利用CAN底层硬件仲裁机制、数据流程方案处理,实现一条CAN总线上同时实现3种通讯协议,间隔层1个CAN接口相当于3个独立通讯接口。解决增加电力二次设备、电力二次设备增加多个通讯接口、增加工程布线成本问题,又解决使用OPC服务器,软件技术复杂,标准不统一,门槛高,行业内龙头企业才具备整合能力问题。
附图说明
图1:本发明系统框架拓扑图;
图2:间隔层和通讯网关CAN数据发送框架图;
图3:通讯网关嵌入系统任务框架图;
图4:间隔层设备嵌入系统任务框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
参见附图1,本发明的系统框架拓扑结构图。
本发明的系统架构包括:间隔层、通讯层、监控和控制后台(监控后台)共三层;
间隔层主要包括电力二次设备,具体包括以下元件设备:电动机保护器、数字仪表、低压测量保护装置、高压微机保护电力二次元件设备。
通讯层包括带双CAN接口、以太网、双RS485接口的通讯网关,通讯网关与间隔层通过CAN总线数据交换。
通讯网关与监控后台通过以太网502端口、2404端口、双RS485接口,与3个不同监控后台进行数据交换,此数据是通过CAN总线读取间隔层电力二次设备的数据。
监控后台包括多种类型,包括:电力SCADA后台、能耗监控系统、电动机预警维护后台、工业DCS、SIS控制、PLC控制等系统后台。
根据本发明的一个实施例,间隔层电力二次设备均采用STM32带有CAN通讯口微处理器。优选地,意法半导体CPU芯片软硬件生态一致,所以本发明的一个实施例中,可以根据产品不同需求采用以下芯片STM32F103、STM32F407、STM32F429、STM32F302等芯片。
所述的间隔层电力二次设备除完成本身电网数据采集、液晶显示、用户操作、串口通讯、DI/DO(输入/输出)控制外。每个元件设备层均具备CAN通讯接口,符合控制器局域网络(CAN)底层的通讯协议,并且采用本发明设计的应用层协议。本发明根据CAN底层协议特点,独立设计应用层协议。
电力二次设备的各元件设备采用嵌入式操作系统,采用C语言编程,对不同功能应用进行系统管理。元件设备采用“边缘计算”理念,数据主动上传、遥测、遥信、遥控大部分数据和协议匹配由元件设备实现。
根据本发明的一个实施例,通讯层CAN转以太网通讯网关实现如下:
CAN转以太网通讯网关,优选的,采用意法STM32F429芯片,此通讯网关负责CAN数据转到以太网接口,对外后台通讯。
通讯网关具备2路CAN接口、1路B码对时输入接口、1路100M以太网接口、2路RS485接口、3路DI、2路DO。
嵌入式操作系统,采用C语言编程,网络通讯协议采用开源lwip协议。
以太网接口具备2种通讯协议:IEC60870-5-104协议(2404端口),Modbus-TCP协议(502端口),两种协议均遵守相关标准。
包括2路CAN通讯接口,符合控制器局域网络(CAN)底层的通讯协定,采用本发明定义的应用层协议。
包括1路B对时接口,用来接收B码对时,保证不同通讯网关时间误差不超过1ms。
包括2路RS485接口,此接口对应2路CAN接口,采用透明流传输,协议遵循RS485Modbus-RTU协议,只要底层设备有相关协议内容,均能通讯网关RS485通过CAN接口透明传输。
根据本发明的一个实施例,本发明定义了间隔层与通讯层之间CAN通讯协议,如下:
目前CAN底层标准协议有三种:CAN-FD、CAN2.0A、CAN2.0B。由于CAN-FD标准推出不久,本发明底层协议采用CAN2.0B标准。CAN2.0B标准采用29位ID码+8字节数据传输,以下ID码均指CAN2.0B标准29位掩码。
应用层协议,包括通讯网关下行协议和间隔层上行协议两种格式。
通讯网关接收ID,采用无滤波模式,能接收CAN总线上所有ID号数据。
间隔层设备上行通讯网关数据ID号均大于1677216(0x1000000),通讯网关无滤波,均能接收到数据,间隔层29位ID分为功能码、地址码、协议标识码解析数据,具体如下:
通讯网关下行ID号范围:1~255数据通讯ID号,间隔层采用地址滤波模式,一条总线设备地址号唯一,间隔层地址滤波保证通讯网关下行数据ID码与设备层地址完全相同才能接收。
间隔层设备上行通讯网关数据,ID号均大于1677216(0x1000000),间隔层地址范围在1~255,所以间隔层上行数据,不会进入间隔设备硬件中断。
通讯网关下行数据协议说明如下:
29位ID在1~255之间,每次下行数据,仅仅对间隔层一个设备起作用。通过8字节数据帧代表不同意义,实现Modbus协议转换、对时协议、总招协议、遥控、遥脉、故障信息读取、故障录波、电力波形传输等命令。
间隔层上行通讯协议说明如下:
上行传输数据量大,本协议充分利用29位ID码,用来标识数据含义解析。比如Modbus协议转换、对时协议、总招协议、遥控、遥脉、故障信息读取、故障录波、电力波形传、SOE事件和故障事件。
具体的,间隔层上行通讯协议,组成按照功能码+设备标识符地址码+数据帧号或者数据含义地址区分+接收设备类型+数据帧号码或数据含义码,29位ID协议格式定义如下:
ID24~ID29传送功能码协议,功能码值1~32,按照数据优先级确定功能码,数据优先级最高功能码是1,优先级最低功能码是32。优先级功能码无0,防止上行ID与下行ID冲突,因为除功能码以外,数据帧号、接收设备类型,数据帧号或者数据含义均有可能出现0情况,如果功能码也有零,ID码与通讯网关下发码冲突,也就是说通讯上行码ID号均大于1677216(0x1000000)。
ID16~ID23传送装置唯一标识符地址码,地址范围1~255,通讯网关根据此ID码区分同一个总线上设备层唯一编号。也就是通过此地址码,保证间隔层上行数据ID不冲突,同时通讯网关通过这几个码解析,区分间隔层数据来源。
ID15标识数据含义地址(数据含义通过Modbus协议地址标识)或者发送帧号序号。
ID13~ID14用来区分接收设备类型:0代表通讯网关接收、1代表间隔层挂载显示设备接收。
ID0~ID12标识数据含义,根据ID15区分数据含义地址或者发送数据帧序号。
比如传输录波数据,需要通过连续CAN数据帧组合成有效数据,ID0~ID12用来标识传输帧号,通讯网关按照数据帧序号组合数据,通过以太网转发至监控后台。
有些数据量不需要大批连续发送,使用ID0~ID12标识。本协议Modbus协议数据地址采用0~4095地址编码。ID0~ID12共4096个数据,间隔层数据含义标识已经足够。
进一步的,间隔层与通讯网关数据通讯采用查询和主动传输相结合方式。
上位机(监控后台)查询数据通过以太网接口或者RS485接口发送命令至通讯网关,通讯网关将以太网数据命令转换到CAN接口,与间隔层电力二次设备请求数据,间隔层电力二次设备解析数据命令,按照应用层协议格式将数据返回CAN通讯总线上,通讯网关按照应用层协议解析,组合成标准Modbus-TCP、IEC60870-5-104协议格式或者Modbus-RTU协议,通过以太网或者RS485发送至监控后台。
监控后台通过RS485下发查询命令(Modbus-RTU协议),CAN返回数据只能转发给RS485接口;
监控后台通过以太网2404端口(IEC60870-5-104协议)下发查询命令,CAN返回数据按照IEC60870-5-104协议转发到2404端口;监控后台通过以太网502端口(Modbus-TCP协议)下发查询命令,CAN返回数据按照Modbus-TCP协议转发到502端口。
间隔层也可主动传输数据,针对SOE事件、故障事件、以及遥测变化量等数据,采用主动上传模式,快速传输至后台。间隔层检测有紧急事件,判断是否有后台连接,如无后台连接,主动传输数据也无用,间隔层设备不传数据;如有连接后台,紧急事件按照协议层规定格式通过CAN总线转发数据,通讯网关接到CAN数据后,按照此后台连接协议格式,通过通讯网关以太网接口发至监控后台。
进一步的,通讯网关和间隔层发送数据的CAN硬件仲裁机制和数据传输流程如下:
间隔层电力二次设备CAN传输数据利用CAN硬件仲裁机制和处理传输流程实现,保证数据通讯网关和间隔传输可靠。
所述的CAN硬件仲裁机制,采用“载波侦听多路访问/冲突检测”的非破坏性总线仲裁技术,当节点同时向总线发送信息时,优先级较低的节点会主动退出发送,优先级高节点可不受影响地继续传输数据,从而节省了总线仲裁时间。优先级高数据传输完毕,优先级较低的节点再次主动发送数据。优先级节点再次传输,根据本发明设计的数据传输流程保证数据传输,数据传输流程框图如图2所示:
间隔层和通讯网关在CAN总线传输数据时候,首先,判断CAN总线上的硬件设备(间隔层和通讯网关发送均采用此方法)是否被其它任务占用,嵌入操作系统信号量保证共享CAN硬件设备仅一个任务被调用,等待CAN硬件共享信号释放后,数据发送获取CAN硬件;其次,软件判断是否有优先级更高节点占用总线或者竞争总线,如果无优先级更高节点占用总线,此设备数据放入CAN总线传输,如果发现CAN总线被其它节点占用,等待1ms,再次判断,如果此总线仍被其它节点被占用,再次延时1ms,连续10次判断发送,直至数据传输。
通讯网关和间隔层设备均采用此数据传输流程,每个设备往CAN总线发送数据,均采用此发送流程,保证数据被传输。
本发明通讯网关与系统监控后台协议说明如下:
系统监控后台仅需包括接入网关的以太网接口和/或RS485接口即可,无须额外通讯口接入间隔层设备,此通讯网关最多可接入三种不同类型监控后台同时运行。
以太网接口通过2404端口和502端口与后台交互数据。2404端口采用电力标准IEC60870-5-104协议,一般接电力监控SCADA后台;502端口采用标准Modbus-TCP协议,一般接DCS后台、能耗监控后台、电动机预警维护后台、用户特殊使用后台一种;RS485接口,采用标准Modbus-RTU协议,一般接入SIS后台或者PLC。
通讯网关同时运行双通讯协议IEC60870-5-104协议(2404端口),Modbus-TCP(502端口),也可从通讯网关RS485(双)接口Modbus-RTU协议从CAN接口读取其它设备数据。如果3个不同后台同时向CAN总线读取数据,数据在CAN总线上有冲突可能性。本发明采用CAN底层协议具备硬件仲裁机制和数据传输流程保证数据传输100%可靠性传输。
本发明通过CAN硬件特性和软件方法,保证3种后台同时读数据,保证数据不冲突。下面2项内容重点阐述数据传输流程方法,保证数据传输100%可靠性。
通讯网关中的数据传输流程如下:
CAN转以太网通讯网关,仅仅做数据转发,不具备数据存储功能。
本发明采用“边缘计算理念”,数据处理传输工作下放到间隔层处理。因为现场间隔层设备类型较多,不可能对每种设备进行通讯协议匹配,通讯网关代码协议达到通用性,同时降低通讯网关代码复杂度。
以太网对监控后台同时具备IEC60870-5-104协议(2404端口);Modbus-TCP(502端口);第1路RS485(Modbus-RTU协议)转CAN1接口,第2路RS485(Modbus-RTU协议)针对CAN2接口。3个后台同时从CAN总线传输数据肯定会有冲突,除了CAN硬件方面特性外,本发明在数据传输流程还进行特殊设计,保证通讯传输100%可靠。
参见图3,细箭头代表“下行”通讯,代表系统后台下达通讯命令;粗箭头代表“上行”数据,代表间隔层设备主动传输或者查询反馈数据。双向箭头指间隔层和通讯网关通过CAN总线并联接到一起。
三种通讯协议同时运行,同时占用CAN总线,通讯网关采用多任务嵌入操作系统,根据图3所示,通讯网关数据传输流程如下:
以太网2404端口任务,采用Socket编程方法,此任务接受系统后台“下行”数据和进入芯片硬件中断“上行”数据。系统后台按照IEC60870-5-104协议下发以太网,2404端口任务解析数据后,按照本发明定义的CAN协议,发送至CAN总线,间隔层设备接收数据,并按照本发明定义的CAN协议返回,进入CAN接收数据硬件中断(CAN1或者CAN2),硬件中断简单处理,判断是2404端口数据,操作系统调度2404端口任务,在2404端口任务里CAN数据解析,重新封装成IEC60870-5-104协议,通过以太网2404发送至后台。
间隔层电力二次设备,也可以主动传输数据到CAN总线,CAN接收数据硬件中断后,判断信息类型,如果是故障事件、遥测数据、SOE事件等信息码,转至2404端口任务,解析CAN协议,重新封装成IEC60870-5-104协议,通过以太网2404端口任务发送至后台。
同理,以太网502端口任务,采用Socket编程方法,此任务主要采用轮询模式进行数据交换。以太网502端口任务接受系统后台“下行”数据,芯片硬件中断“上行”数据,上行和下行数据,均在此任务中解析。
系统后台按照Modbus-TCP协议下发以太网,502端口任务解析数据后,按照本发明定义的CAN协议,发送至CAN总线,间隔层设备接收数据,并按照本发明定义的CAN协议返回,进入CAN接收数据硬件中断(CAN1或者CAN2),硬件中断对ID功能码进行简单处理分析,判断是502端口数据,操作系统调度502端口任务,把CAN数据解析,重新封装成Modbus-TCP协议,通过以太网502端口任务发送至后台。
根据本发明的一个实施例,第一个RS485转CAN1或者第二个RS485转CAN2方法一样,本实施例只论述第一个RS485转CAN1任务。
RS485_1转CAN1任务主要采用轮询模式接收或发送数据。此任务接收系统后台“下行”数据,芯片硬件中断“上行”数据,上行和下行数据,均在此任务中解析。
系统后台按照Modbus-RTU协议下发RS485串口,此任务解析数据后,按照本发明定义的CAN协议,发送至CAN总线,间隔层设备接收数据,并按照本发明定义的CAN协议返回,进入CAN1接收数据硬件中断,硬件中断根据功能码进行判断,判断是串口端口数据,操作系统调度RS485_1转CAN1任务,把CAN1数据解析,重新封装成Modbus-RTU协议,通过RS485_1转CAN1任务,通过第一路RS485传输后台。
各个任务处理各自数据,保证数据传输快速处理。
由于多个任务共用CAN硬件,嵌入操作系统采用共享信号方式,保护CAN硬件接口因多任务争夺资源导致不可靠。
本发明以太网通讯采用Socket编程方法,后台发过来数据通过不同端口(502和2404)传递给不同任务。每个端口有接收数据任务,根据协议格式解析转发CAN总线上,协议根据地址区分CAN1和CAN2,同一个通讯网关无论使用CAN1接口或CAN2接口,两个CAN接口地址不能冲突,现场应用根据现场情况,配置参数。
CAN保证数据传输100%可靠性,采用3层防护措施,措施如下:
措施1,通讯网关和间隔层设备往总线下达命令,先通过CAN硬件仲裁机制,CAN总线根据优先级传输数据,保证命令下达。
措施2,发送数据时候全部按照如图2所示流程,确保数据能发送到总线上。
措施3,上位机发送数据后,一般100ms延时等待反馈,未反馈,再次把后台下发指令传输一次,100ms后,仍未应答,再传输一次,如果未反馈,第3次仍未反馈数据,说明线路通讯不可靠。
间隔层CAN通讯流程如下:
本发明采用“边缘计算理念”,数据处理传输工作下放到间隔层处理。
间隔层设备传输采用嵌入系统多任务模式,软件框架图4所示。
间隔层设备检测到SOE(DI和DO)事件、故障事件、故障录波数据后,调用此任务,主动往总线上传输数据,数据发送模式图2所示流程。
间隔层设备计算遥测量,出现数据变化,也往总线上主动传输数据,调用数据变化主动传输任务,数据发送模式如图2所示流程。
间隔层CAN数据硬件接收中断打开,数据ID号与本设备地址一致的数据进入硬件中断,硬件中断解析功能码,根据功能码通过调度以下4个任务。
Modbus协议和总招嵌入系统任务,如果是Modbus协议查询数据,就按照查询数据结果返回到CAN总线上;如果是Modbus协议遥控命令,控制间隔层继电器动作,并往总线返回数据;如果是Modbus协议设置命令,设置相应参数,并往总线返回数据;如果是总招命令,开入量、继电器状态、遥测、电能信息,返回到总线数据。所有数据发送模式图2所属示发送流程。
SOE(DI和DO)事件、故障事件后,故障录波事件,通讯网关会主动发送确认信息已接收,如果突发事件数据在500ms未发确认,此数据再次传输,传输3次仍未确认,此信息不再传输。
通讯网关,间隔30秒发送一次对时信息,间隔层装置接收到信息后,调整本装置时间。
监控后台如需要电力数据波形,通过通讯网关下发命令,间隔层设备硬件中断接收到此命令,操作系统调度电力信号采集波形传输任务,此任务把波形数据拆分,按照多帧方法,根据本发明定义的协议往CAN总线上发送数据。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。