您的当前位置:华林调节阀网>>调节阀论文>>概述DeviceNet现场总线的电动执行器控制系统开发

概述DeviceNet现场总线的电动执行器控制系统开发

0概述

关于DeviceNet是一种开放、高性能、面向底层工业设备的现场总线技术,特别适用于制造业、工业控制、电力系统等行业。它在物理层和数据链路层中使用了CAN技术,并增加了物理接口的规定,更加适合工业现场;摒弃了传统的源/目的的传输方式,采用更为有效的生产者/消费者模式,生产者将报文发布到DeviceNet总线上,供多个消费者同时使用,从而实现高效的数据传送。本研究以重庆工业自动化仪表研究所生产的电动执行器为基础,设计了DeviceNet接口,分析了该控制器的功能,并给出了软硬件解决方案,实现了产品的升级。这对于国内的电动执行器厂家推出自己的现场总线产品,提高产品的竞争力,巩固国内市场有着重要的意义。

1电动执行器的功能及DeviceNet对象模型

现有的电动执行器能够在现场设置开关极限位置,实现开、关、停等动作,能够将过热、过转矩等故障状态通过电动执行器上的液晶显示屏显示。基于DeviceNet现场总线的电动执行器要求,除保证原有现场功能外,还要具有DeviceNet接口,能够根据DeviceNet现场总线上的命令实现对电动执行器的控制,并能够将开度信息、完整准确的运行状态信息、故障信息发布到DeviceNet现场总线上。

在DeviceNet现场总线技术中,采用对象模型(ObjectModel)描述DeviceNet产品的外部特征及信息交换方式。类是指表现出相同类型的系统成分的对象的集合,类是一个对象的概括,某类内的所有对象在形式及行为上是相同的,但有可能具有不同的属性值;对象实例是指在分类中某一特定对象的具体表示。一个分类的每个实例不但有一组相同的属性,也有自身的一组特定的属性值,在一个DeviceNet节点的一个特定分类中,可以存在多个对象实例。总线上的每个设备都是DeviceNet节点,可以分为多个对象模块,每个模块具有属性(数据)、服务(方法或步骤)和行为。对象就是相关服务和属性的集合;属性是用数值表示的、可以变化的对象特性,通常属性提供状态信息或管理对象的操作;服务是对象或类提供的功能;对象行为是指对象检测到不同事件而产生的动作。

为了降低设计成本、简化设计要求,DeviceNet规范中提供了一种仅支持固定连接的服务器,称为仅限组2服务器(group 2 only server)。这类服务器是在工业控制中应用最广泛的从站类型,据统计,DeviceNet产品的80%以上属于该类型。本文所研发的电动执行器就是一个典型的仅限组2服务器,只需支持POLL(轮询)方式和Bit-Strobe(位–选通)方式的I/O数据获取。

由以上的分析,电动执行器通过DeviceNet现场总线所交换的数据可归纳为:模拟输入量,如电动执行器的当前开度;模拟输出量,如电动执行器的设定开度;数字输入量,如过转矩信息、缺相信息等故障状态;数字输出量,如电机停机等。参照DeviceNet规范中定义的过程控制调节阀(processcontrolvalve)设备规范,本文设计出基于DeviceNet的电动执行器对象模型如图1所示。


图1 DeviceNet现场总线型电动执行器对象模型

2 DeviceNet电动执行器的硬件设计

2.1 电动执行器的CPU选择

为保证与原产品的兼容以及考虑到以后产品的扩展、升级,在系统的硬件电路设计中,选用了微处理器C8051F040。Silicon Laboratories公司出品的C8051F系列单片机完全集成了混合信号,其大部分型号具备控制系统所需的模拟和数字外设,包括看门狗、ADC、DAC、电压比较器、电压基准输出、定时器、PWM、定时器捕捉和方波输出等,并具备多种总线接口,包括UART、SPI、SMBUS(与I2C兼容)总线以及CAN总线。

系统硬件设计充分应用了单片机对模拟信号处理的支持,在模拟量输入和模拟量输出模块中,应用了单片机自带的ADC、DAC功能,单片机为其提供典型值为2.43V的参考电压,该参考电压值平稳,并且受温度影响小。

2.2 电动执行器控制单元总体结构

硬件总体设计布局如图2所示。整个电路结构分以下几个大的模块:电源转换电路、状态采集和联动控制电路、显示电路、位置采集电路、电机控制电路、键盘接口电路以及DeviceNet网络通信电路。其中,电源转换电路为系统各个组成部分提供不同的电压源;状态采集和联动控制电路实现模拟量输入、模拟量输出、开关量输入、开关量输出;显示电路包括电源、电动执行器控制方式、运行状态、报警、设备和网络状态等LED指示,以及液晶屏显示;位置采集电路负责采集执行器位置对应的电压值,并送至单片机的模拟输入端口;电机控制电路通过光耦和可控硅控制交流电机的运动;键盘接口电路实现现场键盘操作,拨码开关用来设置DeviceNet网络通信波特率和MACID值;DeviceNet网络通信电路在单片机CAN控制器的基础上,实现DeviceNet的数据收发。

图2 系统硬件结构图

2.3 DeviceNet协议规定的硬件设计

除了采用CAN的物理层和数据链路层外,DeviceNet规范中还详细定义了现场设备的具体物理结构。如设备需要通过双色(红/绿)LED指示工作状态和网络状态,LED显示的颜色、闪烁的频率和方式与当前状态有关,以便维护人员快速定位故障;通过拨码开关可以设置节点MACID和波特率;电源电路采用误接线保护回路,防止网络电源线不慎反接造成的损害。在设计中充分考虑DeviceNet规范上的这些要求,图2中的灰色部分均遵照DeviceNet协议的有关规范设计。

3 DeviceNet电动执行器的软件设计

3.1 对象类的实现

单片机C8051F040支持C语言(C51)编程,C语言是面向过程的高级编程语言,不支持面向对象的编程方式,单片机也不支持动态内存管理。可以借助定义结构体的方法实现对象类的概念,结构体的成员代表对象类的各个属性。同样,对象实例属性也由结构体以及结构体的成员变量表示。连接对象类实例的结构体定义如下:

Typedef struct{

Unsigned char State;//连接实例状态

Unsigned char instance_type;//本连接实例类型

Unsigned char transport Class_trigger;//本连接实例行为

UINT produced_connection_id;//发送报文的CAN标识符

UINT consumed_connection_id;//指示要接收的报文的标识符

unsigned char initial_comm_characteristics;//连接报文组

UINT produced_connection_size;//发送数据最大字节数

UINT consumed_connection_size;//接收数据最大字节数

UINT expected_packet_rate;//定时

unsigned char watchdog_timeout_action;//看门狗溢出后行为

UINT produced_connection_path_length;//生产字节数

unsigned charproduced_connection_path[6];//生产的应用对象路径

UINT consumed_connection_path_length;//消费字节数

unsigned charconsumed_connection_path[6];//消费的应用对象路径

}CONNECTION;

结构体只能包含数据,也就是对象的“属性”。对于对象支持的“服务”、“行为”等,则通过具体的服务函数来实现。

3.2 DeviceNet协议栈的设计

无论在选择独立的CAN控制器,或是包含CAN内核的微控制器,设计出DeviceNet协议栈,都可以与CAN总线相关内容相独立,只需要处理少量的接口函数。因此,本文设计了独立的DeviceNet协议栈,结构如图3所示。


图3 DeviceNet协议栈结构

DeviceNet协议栈由两部分组成,CAN总线相关层与系统具体使用的CAN控制器有关,包括数据传输波特率设置,CAN通信初始化和接收发送CAN数据等内容。上层程序解析了DeviceNet协议应用层部分内容,主要分为5个部分:设备上电重复MACID检测;仅限组2变量初始化;仅限组2报文处理函数;网络状态指示灯状态更新;网络连接状态定时器负责实时更新各种网络连接的状态。其中仅限组2报文处理函数实现了DeviceNet协议栈的大部分内容。

上层DeviceNet应用层程序将收取到的报文经过应用层协议分析后,向CAN总线相关层发送报文。当移植DeviceNet协议栈时,只需要修改CAN总线相关层中对系统使用CAN控制器的配置信息,上层的DeviceNet应用层部分不需改变。

3.3 执行器控制单元软件流程

分析了电动执行器的功能需求和使用特点后,结合前述对象化设计和协议栈设计,本文总结出执行器控制单元软件流程如图4所示。

图4 系统工作流程图

程序的流程大体可分为系统初始化、DeviceNet协议处理和电动执行器控制功能实现三个模块,而灰色部分为DeviceNet协议规定的内容。

程序执行完设备初始化,即进入主流程依次执行各个任务。在主流程的设计中,要注意保持程序的模块化,保证电动执行器控制功能的独立性。即无论是否连接至DeviceNet网络,设备都应该完成有关电动执行器控制的全部功能,不受网络通信状态的影响。由图4可以观察到,右边用粗线连接的部分组成一个模块,与灰色标注的DeviceNet相关内容在结构上完全独立,保持了原有电动执行器控制器的完整功能。

微处理器C8051F040集成的CAN控制器是基于消息对象收发报文的,微处理器与CAN控制器的数据存储是依靠接口寄存器实现的。在进行DeviceNet通信之前,不仅需要扫描拨码开关,得到设备的MACID和通信波特率以初始化CAN通信,还要把通信所需的报文标识符设置成若干消息对象。

3.4EDS文件

DeviceNet规范定义了一个电子数据文件(EDS),DeviceNet产品开发者可以将产品的特殊信息通过EDS文件提供给用户。该电动执行器功能较简单,参数固定,所以EDS文档只包含了必需的文件说明、设备说明和I/O特性部分。电子数据文档的语法及格式都严格按照DeviceNet中的规定。

4 电动执行器的DeviceNet功能测试

为了测试电动执行器的DeviceNet功能,建立了如图5所示的组网测试环境。

图5DeviceNet组网测试环境

测试系统中,所有传输介质和设备接插头均符合协议标准。主站设备采用OMRON工业级PLC,型号为CJ1GCPU42H,主站模块CJ1W-DRM21;从站设备包括OMRON的DeviceNet智能从站设备DRT2-DA02,以及本文设计的电动执行器。为了更接近实际工作情况,采用工控机与PLC连接,工控机上运行组态软件“组态王”,这样就建立了一个从监控软件到现场总线设备的典型工业控制应用环境。

另外,通过USB-CAN适配器可以实时记录DeviceNet现场总线上的数据流,进一步验证通信细节。

5结论

本文以原有电动执行器的软硬件设计为基础,研发出支持DeviceNet现场总线通信的新型电动执行器,增强了设备的远程控制能力和通信能力,符合现场总线标准要求,实现了全数字化通信,为实现管控一体化提供了有力的基础。该电动执行器已经成功接入由标准DeviceNet产品构建的网络,实现了互连和互操作。产品性能通过了机械工业过程控制系统产品质量监督检测中心的检测。研究成果通过了重庆市科委组织的项目验收。

参考文献

[1]DeviceNet Specification Release2.0[S].Open DeviceNet Vendor Association,Inc,2000-4-1
[2]童长飞.C8051F系列单片机开发与C语言编程[M].北京:北京航空航天大学出版社,2005:38-391
[3]王唯唯.基于DeviceNet现场总线的阀门控制系统研究[D].北京航空航天大学硕士论文.2007
[4]夏继强,孙朋,卢明臻,邢春香.基于DeviceNet现场总线的电动阀门控制器[J].测控技术2005.4