APP下载

基于DL/T645规约的嵌入式工业物联控制节点设计

2017-03-27董芳针

计算机测量与控制 2017年3期
关键词:规约物联串口

董芳针,周 克,杨 桃

(1.贵州大学 电气工程学院,贵州 贵阳 550025; 2.贵州电网有限责任公司培训与评价中心,贵州 贵阳 550001)

基于DL/T645规约的嵌入式工业物联控制节点设计

董芳针1,周 克1,杨 桃2

(1.贵州大学 电气工程学院,贵州 贵阳 550025; 2.贵州电网有限责任公司培训与评价中心,贵州 贵阳 550001)

随着互联网、大数据、物联网等技术的飞跃发展,以实现智能制造为目标的“互联网+工业”行动计划已拉开了大幕;为满足智慧工厂的发展需求,一种具有实时高效、安全准确的现场数据传输的物联控制节点成为了关键;文章针对传统制造工厂通信系统的传输速率低、网络建设复杂、可靠性差、维护困难等缺点;提出了一种基于DL/T645规约的电力线载波数据采集节点,以STM32微控制器、载波收发模块、节点工厂设备接口等硬件,以DL/T645通信规约为核心设计物联节点,保障工厂现场数据的实时稳定采集,为构建监控和管理一体化的智慧工厂提供实时性强、可靠性高的通信系统。

互联网+工业;智慧工厂;物联节点;DL/T645规约

0 引言

在工业4.0提出的背景下,中国制定了‘互联网+’的行动计划,推动着大数据、云计算、移动互联网、物联网等先进技术与现代制造业的结合,让工厂现场生产设施与主控中心实时链接,构建信息物理设备系统(CPS),进而使各生产设备能够自主交互数据、触发动作和实施控制,能在PC控制中心实时掌握现场情况,有助于提升生产制造实时数据的感知、传送和分析的能力,促进现代制造企业的转型升级和提升核心竞争力。而工业大数据的采集、传输、交互和共享,必然需要建立容量、数据处理能力更强大的通信基础设施为智能制造工厂提供基本保障。因此,构建Qos更可靠、数据处理能力更强的工业通信基础设施将成为未来制造业中迫切需要解决的一项课题[1-3]。

目前工业领域应用比较多的通信方式有3种,串口通信、Modbus 通信、PROFIBUS通信。以上通信方式的初期投资成本低,但后期维护难度大,且建设施工困难。电力载波通信因智能化高、无需专门架设通信线路、节省成本、易于维护、方便在各种工业用电环境中安装,便于监控管理等优势,使其成为工业通信领域的新宠。而工业大数据对物理信道和通信软件提出了更高的要求,使优良的通信软件成为数据实时高效传输的前提。文中以电力载波为通信信道利用DL/T 645规约实现现场设备和控制中心之间的数据传输,并扩展了DL/T645规约中的数据标识域,精简工业物联节点MCU中的通信软件的代码量,提高其执行效率和数据通信效率[4-7]。

1 工业物联节点的硬件实现

本文设计的工业物联控制节点选用STM32系列微控制器,其内部集成的I2C、USART、SPI、CAN等多个通信接口,工业物联节点由接口转换电路、电力载波通信模块、STM32微控制器构成,图1为工业物联节点框图。载波通信模块与STM32之间通过USART口连接,工厂设备与STM32之间通过I2C、USART、SPI、CAN通信口连接进行数据互换。STM32负责采集工厂现场数据输出符合DL/T645通讯规约的传感数据,并通过USART口将数据帧传送至电力载波通信模块,以电力架空线作为智慧工厂高速数据传输的通道,实现可靠、有效的传输[8]。

图1 工业物联节点结构框图

2 工业物联节点的软件实现

在数据传输数据时,所有的通信设备都必须遵循一套固定的通讯规则,工业物联控制节点以DL/T645为通信规约。其主要分为三层,物理层、链路层、应用层。物理层:规定了终端设备的物理通信接口、电气特性,实现物理信道上信息的收发。数据链路层:建立终端设备之间的通信链路以帧为单位传输数据,能检测信息传输差错。应用层:通过数据链路层的数据传输特性,在终端设备之间传输各种数据信息[9]。

2.1 数据采集传输协议(DL/T645)

本工业节点的通信基于(DL/T645)协议,采用半双工通信模式。在数据采集时,宽带电力载波网关为主节点,工业物联数据节点为通信从节点,它们之间通过低压电力线作为传输媒介。每个工业物联控制节点都有唯一的MAC地址,用以实现一对多的主从通信。工业物联控制节点能根据设定的情况自动的向主节点发送数据帧,同时接收主节点发送来的命令并做出响应[10]。

DL/T645协议数据传输的基本单位为字节。每个字节有8位(按BCD编码规则编码),传输时,在传输的内容前加上起始位(0),并附上偶校验位(P)和停止位(1)。其数据传输格式如图2所示。所有数据均按照先低位,后高位的顺序传送。

图2 传输序列和数据帧格式

多个字节构成一个数据帧(Data Frame)。为保证信息的可靠传递,通常把用户数据封装成帧的形式。每帧数据都由帧起始符(68H)、通信地址(A0—A5)、控制码(C)、数据长度(L)、数据域(DATA)、帧数据校验码(CS)和帧结束符(16H)共7个部分构成。

在本文的通信协议的设计中,在原有DL/T645—2007《多功能电能表通信协议》的基础上对设备运行状态字、数据标识进行了扩展,增加了读传感器数据、现场设备监控等事件的定义,该部分用DI3、DI2、DI1、DI0四个字节表示。根据工厂采集的数据类型定义为:温湿度;06060200H:光照强度;06060300H:设备用电信息;06060400H:设备运行状态;06060500H:工厂安防信息;06060600H:设备控制。

2.2 串口中断方式收发一帧数据

利用STM32实现规约的关键在于如何实现一帧信息在串口中准确的接收,本文采用中断方式接收发送一帧数据,并通过查询方式监测工厂内用电设备、传感器等信息。使用功能块编程,便于程序的调用并设置帧开始标志APP_DLT645_START1、数据域标志data_length、帧结束标志endl来表示帧接收过程的状态。每帧信息的接收开始于收到68H,紧接着进入固定帧数据的接收阶段,然后进入数据域、校验码CS和结束符16H的接收阶段。当发送数据时,只需调用此功能块将地址,控制码,数据长度和数据装入命令帧中进行发送。

PLC模块工作流程如3中(2)所示,当检测到电力线上有载波信号时,PLC模块将接收的信号进行带通滤波和限幅处理后经过模块的MCU进行解调还原DL/T645数据帧,并直接将该数据帧透传给STM32芯片,STM32芯片通过相应的计算执行对应的动作。同时,当PLC模块监测到USART3口上有STM32传送来的数据时,由PLC模块将该DL/T645数据帧利用OFDM方式调制,后经载波收发电路将此信号放大耦合到电力线信道中去。

图3 串口接收流程图

其串口接收流程图如图3(1)所示,当STM32产生串口中断时,即串口收到PC控制中心发出的控制命令,并将该数据存储到缓存DataBuf中,然后执行帧解析子函数。在帧解析子函数中完成帧起始符、校验码CS、结束符的比对,确定为一帧完整的645数据帧后,将帧中所含的通信地址与本工业物联节点的通信地址进行比对,若为本节点地址则进行下一步处理,否则直接抛弃该数据帧。在上述运行后MCU提取出控制码、数据域,并根据规约中的要求完成相应的数据采集、设备控制[11]。

2.2.1 串口中断接收数据

串口接收信息,并将接收的数据存储在RxBuffer5中[12],接收的相关代码如下:

void USART3_IRQHandler(void)

{ if(USART_GetITStatus(USART3, USART_IT_RXNE)!= RESET)

{RxBuffer5[RxCounter1++]=USART_ReceiveData(USART3); if(RxCounter1>10){ require_data();

DLT__Recv.Length=RxCounter1;

message_pro();//处理帧信息

ReceiveState = 1; }} }

2.2.2 DL/T645协议解析

协议的解析实际上是对字符串的处理,这里给出了帧起始符(68H)、通信地址、控制码、数据域识别的代码。

u8 message_pro(void) //帧信息处理函数 帧解析

{ if(flag!=1) //判断一帧数据是否处理完成

{ if(ReceiveState==1) //接收到一帧数据

{ ReceiveState=0;

while((DLT_Recv.DataBuf[0]!=0x68)&&(DLT_Recv.DataBuf[7]!=0x68))

{ for(ms=1;ms< DLT__Recv.Length;ms++) // 将数据往前移// 找帧头

{DLT__Recv.DataBuf[ms-1]=DLT__Recv.DataBuf[ms];}

DLT__Recv.Length--;}

if((DLT_Recv.DataBuf[0]!=0x68)&&(DLT_Recv.DataBuf[7]!=0x68))

{ State_clearance();return 0;} // 没有找到帧头,直接返回

for(fe=0;fe<6;fe++)//取通信地址

{Slave_data.RxBuf_addr[fe]=DLT__Recv.DataBuf[fe+1];} for(Je=0;Je<6;Je++) //比较通信地址

{ad=ad+ (Slave_data.RxBuf_addr[Je]^Slave_data.ammeter_addr[Je]);}

add2[6]=ad ; add2[7]= ad1; add2[8]= ad2; //存取比较的结果

if(ad==0||ad1 ==0||ad2 ==0)

{ for(pe=0;pe< Slave_data.data_length;pe++)//取数据域数据

{ Slave_data.data[pe]=(DLT__Recv.DataBuf[10+pe]-0x33);}

Slave_data.ctrl=DLT__Recv.DataBuf[8]; //取控制码

flag=1;if(flag==1){ for(Jn=0;Jn<4;Jn++) //识别数据域

{con6=con6+(Slave_data.data[Jn]^temperature[Jn]); //读温湿度}

compare_data[5]=con6; //存储数据域比较结果

2.2.3 DLT645协议发送采集的数据

MCU采集的信息以数组的形式存放在TX_DataBuf中,通过DL645Package函数组成一个DL /T 645帧,最后经过串口将数据发送至载波模块,以电力载波方式将采集的数据传送至PC控制中心。发送部分代码如下:

u8 TX_DataBuf[MAX_QUEUE_LEN];

if(Slave_data.ctrl==0x11)

{ if(compare_data[5]==0) //温湿度

{DL645Package(8,30,0x91); //组帧函数

for(is=0; is<24; is++){ R_SByte(DLT__Recv.TX_DataBuf[is]);}

State_clearance(); //清除状态信息

flag=0;return 0; }

return 0; }

3 工业物联节点运行效果

在上述的程序、硬件设计后,将软件下载进MCU中,进行了仿真实验,图4是PC控制中心以相应的控制命令读取正向有功电能量、相电压、温湿度等信息。当PC控制中心需掌握201612210001号节点附近的温湿度信息时,则通过电力载波网关将控制命令帧“68010021121620681104333439392816”下发至此节点。该节点收到命令帧并识别该帧数据,根据控制命令采集温湿度传感信息,然后将该数据填入645帧中,将该帧数据由载波模块发送至电力线网络。

图4 测试结果

具体步骤如下:

(1) 使用PC控制端向电力网关发送TCP/IP数据报文,如图1中电力载波网关所示。

(2) 电力载波网关根据解析的TCP/IP数据报文进行重组DL/T645规约报文,通过电力线信道发送到载波模块。

(3) 最后,载波模块将接收的645报文直接透传给STM32,由STM32解析帧数据后执行动作,将返回的信息组成DL/T645报文经载波模块传递至电力线网络,电力载波网关接到物联节点的相应后,将信息转换成TCP规约报文,通过RJ45口,发回PC控制端。

4 结论

在解读DL/T645规约传输帧格式的基础上,本文提出利用DL/T645规约并结合先进的电力载波通信技术,设计工业物联控制节点。通过以RJ45口通信、USART口通信、电力线载波通信、DL/T645规约和TCP/IP规约的解析与重组、协议转换等一系列过程,实现智慧工厂现场设备的用电信息、运行状态和传感器等数据的高效传送,即可靠又便利,降低成本。在程序设计时,对DL/T645规约中的数据域、控制代码进行了扩展并使用功能块编程,程序具有良好的通用性避免了重复编程,大大提高了MCU的执行效率。为智慧工厂的搭建提供有效技术支撑。

[1] 王喜文.工业4.0:智能工业[J]. 物联网技术, 2013, 12: 3-6.

[2] 张小平,李佳宁,付 灏. 全球能源互联网对话工业4.0[J].电网技术, 2016, 40: 1-5.

[3] 李少壮,张泽光,李洪波. 从“工业4.0”看工业计量的未来[J].计测技术, 2015, 35(6):1-5.

[4] Wu R C.Wu R C.Intelligent control via power-line carrier for illumination and air condition in buildings[A].19th International Conference on Industrial Engineering and Engineering Management[C].2013:383-393.

[5] Kolberg, Dennis.Zühlke, Detlef.Lean Automation enabled by Industry 4.0 Technologies[A].IFAC Proceedings Volumes (IFAC-PapersOnline),ISPLC 2015[C]. 2015:1870-1875.

[6] 孟珺遐,朱宁辉,白晓民.基于DL/T645—2007协议的智能电表嵌入式通信软件研发[J].电网技术, 2010, 34(9):7-12.

[7] 冯小英,储昭碧.自适应波特率的DL/T-645规约通信的实现[J].中国仪器仪表, 2007, 9: 38-41.

[8] 李驹光,张 华. 基于ARM的工业以太网控制系统智能节点的设计[J].电子技术, 2003,7:17-18.

[9] Guo J.Liu D.Design of a smart meter recorder with mass storage based on DL/T645-2007 protocol[J].Communications in Computer and Information Science,CCIS,2015:660-666.

[10] 马利人,宗建华.DL/T 645-2007《多功能电能表通信协议》的技术特点和创新[J].电测与仪表, 2009, 46(3):1-13.

[11] 何 宾,吕育斌,冯 涛. Zigbee技术和DL/T645规约在无线抄表系统中的应用[J].电力系统保护与控制,2009, 37(24):81-84.

[12] 周峰华, 潘文亮, 刘军亮. Linux下ARM和单片机的串口通信设计[J].仪表技术,2011, 8:27-32.

Design of Embedded Industrial Joint Control Node Based on DL/T645 Protocol

Dong Fangzheng1,Zhou Ke1,Yang Tao2

(1.Electrical Engineering College, Guizhou University, Guiyang 550025,China;2.Training and evaluation center of Guizhou Power Grid Co., Ltd.,Guiyang 550001,China)

With the rapid development of the Internet, big data, networking and other technology, in order to achieve the goal of Intelligent Manufacturing ”Internet plus industrial” action plan has opened the big screen. To meet the development needs of the smart plant, a real time and efficient, safe and accurate field data transmission of the joint control node has become the key. This paper is aimed at the disadvantages of traditional manufacturing plant communication system, such as low transmission rate, complex network construction, poor reliability, maintenance difficulties and so on. A power line carrier data acquisition node based on DL/T645 protocol is proposed, which is based on STM32 microcontroller, carrier transceiver module, node factory equipment interface hardware and to DL/T645 protocol as the core design linked nodes, security factory field data real-time acquisition, for the construction of the monitoring and management of the integration of the wisdom of plants provide high speed, strong real-time, high reliability of the communication system.

internet plus industry; factories; IOT nodes; DL/T645 protocol

2016-09-26;

2016-11-02。

基于自动维护技术的用电信息采集装置的研发(20147614)。

董芳针(1988-),男,湖南常德人,硕士研究生,主要从事智能电网技术、电力电子信息技术方向的研究。

1671-4598(2017)03-0070-03

10.16526/j.cnki.11-4762/tp.2017.03.020

TN919.3

A

猜你喜欢

规约物联串口
《智能物联技术》征稿启事
传统自然资源保护规约的民俗控制机制及其现实意义
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
王永岗:改造物联服务链助力现代农业
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
一种在复杂环境中支持容错的高性能规约框架
创享物联时代新风潮
船舶电子设备串口数据的软件共享方法
无人值班变电站保护信号复归方式的改进