基于LonWorks 网络的PID控制节点的设计
北京化工大学自动化系(100029) 庞彦斌 程 炜
摘 要:介绍了基于Neuron芯片的LonWorks 网络PID控制节点的设计及开发。具体包括节点的硬件电路及软件设计方案。本设计方案经过实验验证是切实可行的。
关键词:现场总线控制系统(FCS) LonWorks技术 PID Neuron芯片
现代工业过程控制领域对测控系统的速度、精度、成本等方面提出了更高的要求,全数字、双向、多节点的现场总线应运而生。现场总线是一种串行的数字通信链路,它沟通了生产领域的现场设备之间以及与更高层次控制过程设备之间的联系。
LonWorks技术是Echelon公司于90年代推出的一种主要用于设备联网的局域操作网络技术LONLocal Operating Network。LonWorks技术的优势是将通讯协议固化于Neuron芯片中,并且提供一套完整的开发与建网工具--LonBuilder和NodeBuilder。这样使得用户可以较少关心网络的通讯,而集中于节点的具体应用开发。LonWorks技术极大地方便了用户,也促进了该技术的推广应用。
现场总线控制系统(FCS)是工业控制系统发展的必然趋势,然而在短时期内它无法完全取代DCS系统,因此现有的4~20mA模拟仪表到现场总线的接口开发具有较强的可行性及现实意义。本文拟对基于LonWorks 网络的PID控制节点的设计与开发作一论述。
1 整体设计思想
现场仪表,如测量变送器、执行器、调节阀等的输入/输出信号多为4~20mA模拟信号。本节点的任务是在完成现场模拟仪表与LonWorks网络连接的基础上,实现对被控对象的控制,即对现场仪表进行测量信号采集,控制运算及控制信号输出。整体节点设计分为三部分:信号采集、控制运算及信号输出。
Neuron芯片能够完成信息的输入、处理、输出,并可通过不同的收发器与不同的通讯介质相连接,方便地实现网络通讯。以其为中心器件,配以相关外围电路构成的节点,实现了用户应用程序与组网通讯的统一。
本文设计的PID控制节点的结构示意图如图1所示。
考虑到工业现场的电气工作情况,为保护节点核心部分免受损坏,在模拟输入/输出与Neuron芯片之间加入光电耦合器件,从而提高了节点的抗干扰性能。
2 节点实现
2.1 关键技术
LonWorks技术的核心是Neuron芯片。它是由美国Motorola和日本东芝两大芯片制造商生产的,共有两个系列MC143150和MC143120。本设计采用的是MC143150,可带片外存储器类型。该类型专门用于需要较大应用程序的传感器控制系统。
MC143150芯片内部有三个CPU,即:介质访问CPU,网络CPU,应用CPU。它们与片内存储器、网络通讯接口、定时/计数器、I/O口驱动电路通过16位地址总线和8位数据总线相连。芯片内部结构示意图如2所示。
Neuron芯片有11个可编程的I/O引脚,并提供四类共34种I/O对象。通过引脚的不同配置,为外部硬件提供灵活的接口,实现不同的I/O对象。这四类I/O对象为:直接I/O、并行I/O、串行I/O和计时器/计数器I/O对象。
本设计选用串行I/O对象中的Neuronware对象。该对象通过Neuron芯片11个引脚中的IO.8~IO.10进行三线串行传输,IO.0~IO.7可作为片选信号输出。数据传输以8位为单位,一次最多可传输255位。对于10MHz晶振输入的Neuron芯片,其串行时钟频率为20kHz,串行数据传输速率满足现场控制要求。 Neuron芯片的输入/输出对象中有parallel并行I/O对象。该对象有3.3Mbps的高传输速率,但由于其适用于8位并行数据,而且占用I/O引脚较多,功能扩展较复杂。所以不采用并行I/O对象。
2.2 节点硬件/软件设计
信号采集部分,采用高速、串行12位、8通道模数转换器MAX186。现场4~20mA测量信号经过200Ω精密电阻变为0.8~4V电压,进入MAX186的输入通道。MAX186具有一个内部4.096V基准源,每一通道带跟踪/保持(T/H)电路,最高采样频率可达133kHz。其SCLK、Din、Dout引脚分别与Neuron芯片的IO.8、IO.9、IO.10相连。IO.1作为MAX186的片选信号(/CS)。MAX186的控制字的写入与转换数据的输出通过串行数据线完成。其各个输入通道由控制字进行选择。MAX186外部接线简洁。
信号采集电路如图3所示。
MAX186接口程序为:
IO_8 neuroware master select(IO_1) MAX186;
//定义I/O对象为neuroware,IO_8为时钟输出引脚;IO_9为串行数据输出引脚;IO_10为串行数据输入引脚;选择主模式,MAX186片选信号由IO_1输出;数据在时钟上升沿被传输//
IO_1 output bit MAX186_CS=1;
//定义IO_1为位输出,作MAX186的片选信号//
When(timer_expires(clock_1))
// 定时/计数器clock_1满事件驱动//
Io_out(MAX186_CS,0);
//选中MAX186//
Io_out(MAX186,10001111);
//向MAX186送控制字:选择通道0,单极性,单端输入,外部时钟模式//
Input=io_in(MAX186,&input,16);
//输入转换结果//
Input=input>>4;
Io_out(MAX186_CS,1);
//不选中MAX186,结束信号采集//
控制运算部分主要通过对Neuron芯片编程完成。Neuron芯片的编程语言为由ANSI C发展而来的Neuron C语言。它包括对ANSI C的扩展,并增添了一些较强的功能,如:网络变量类型,事件调度when语句。网络变量简化了节点间的数据共享。本设计中PID控制运算的设定值、比例放大系数、积分/微分时间等数值均通过网络变量的形式传送。
PID控制运算的流程图如图4所示。
信号输出部分选用串行12位数模转换器MAX538。由于现场执行机构多接收4~20mA信号,所以需要将MAX538的电压输出转换成电流信号,为此选用AD694完成电压/电流转换。AD694具有内部电压基准,可输出作为MAX538的D/A转换基准,简化了电路设计,节省了空间。另外,AD694有较强的驱动能力,对于需要免除噪声的4~20mA信号传递以驱动操作电子管、传动装置和其他控制器件,它是理想的选择。
本PID控制节点设计为两路输出,片选信号分别由IO.2、IO.3给出,具体电路如图5所示。
信号输出部分接口程序为:
IO_8 neuroware master select(IO_2)
MAX538;
IO_2 output bit MAX538_CS=1;
Io_out(MAX538_CS,0);
Io_out(MAX538,&output,16);
Io_out(MAX538_CS,1);
总之,本文设计的基于LonWorks 网络的PID控制节点, 经过实验验证是切实可行的。它具有组网方便、集成度高、成本低等特点。利用它与其它种类的测控节点配合,加上上位操作管理计算机,可以容易地构成彻底分散的、地域分布的网络测控系统。这种系统可用于污水处理、过程控制、楼宇自动化等场合。
--------------------------------------------------
参 考 文 献
1 Echelon公司.Neuron C参考手册.1995
2 Echelon公司.Neuron C程序员指南.1995
3 MOTOROLA公司.LonWorks Technology Device Data 1996
信息来源:龙控网