童世华
(重庆电子工程职业学院计算机应用系,重庆 401331)
目前,越来越多的智能仪表连入工业以太网络,客户可通过IP地址远程识别工业现场的不同子设备。随着越来越多新设备的加入,用户在自动获取IP地址的同时存在着IP冲突的隐患[1]。为了解决这一隐患,本文提出了一个远程在线IP修改的方案,并采用温湿度采集模块加以实现和应用,让客户更轻松地对设备进行远程控制。
IP控制方法基于远程控制实现,可在远程监控室直观地显示控制信息。该控制方法是建立在上层组态监控软件的基础上实现的[2],具体依靠底层设备来实现执行,控制功能分布于设备的控制功能块中。在工业以太网控制系统中,每个设备都是一个智能设备,每1个设备包含有实现不同功能的功能块。智能设备可以由简单的AI、AO、DI和DO等输入输出功能块来实现。IP控制就是功能块实现的一部分,它可以对新上线设备的IP地址进行管理与控制。
此控制方法主要对以下两种场合起着非常重要的作用:
① 由于每个设备都初始化了一个固定IP,新上线设备IP与原有设备IP容易有冲突;
② 当设备从某一个网段转移到另外一个网段时,容易出现与其他网段原有设备的IP冲突,从而导致两个IP冲突设备中的其中一个不能监控。为了解决设备之间IP冲突或者同一个设备适用于不同网段等问题,提出了一种IP控制方法。该方法的实现为解决这些问题提供了一个较好的方案。
硬件载体包含了微处理器、存储器、传感器模块、网络通信接口、串口通信和电源等重要组成部分。在该平台中,电源使用了以太网供电设备,它可提供+24 V工业标准的以太网交换机。该交换机除了用于网口通信外,还提供设计中所需要的电源,即交换机提供的+24 V电压经过电平转换,能为微处理器、存储器以及传感器模块等提供所需的+5 V和+3.3 V电压。
微处理器使用C8051F120,它是 Silicon Lab的专利CIP-51微控制器内核,具有64个数字I/O引脚、片内VDD监视器、看门狗定时器和时钟振荡器。这些组成部件使C8051F120器件成为真正能独立工作的片上系统。微处理器部分包含了系统硬件的启动与复位、地址总线、数据总线的分配和定义以及与外设器件的连接等[3];C8051F120内部数据RAM 为8448 B,其芯片外部拓展了一个外部RAM,此外部RAM采用的是IS62LV2568LL-85H。
网络通信接口以RTL8019AS芯片为核心。RTL8019AS是高度集成的以太网控制器,它能够简单地实现即插即用功能。
NE2000兼容适配器被选作网络适配器。这种适配器具有二重功能和功率下降特性,且全二重功能能够模拟从双绞线到全二重以太网交换机的传播和接收状态。这个特性不仅可以使带宽从10 bit/s加强到20 Mbit/s,而且避免了由于以太网频道争夺特性导致的读出多路存取协议的问题。
为了提供完全解决即插即用方案,RTL8019AS集成了10BASET收发、BNC和AUI接口之间的自动检测功能[4],对RTL8019AS的驱动软件设计仅占用SRAM的16 kB。此设计不仅提供了更友好的功能,而且节省了SRAM存储资源。RTL8019AS的地址总线SA[7:0]与数据总线 SD[7:0]分别与 C8051F120的地址/数据总线相连。
隔离芯片采用HR61H50L,由它实现上层监控软件与底层设备的通信。
电源部分采用的是以太网供电设备。该设备采用符合802.3受电设备标准,输出标准的+24 V电压;然后经过LM2576-5和AS1117-3.3电源芯片的电平转换后,输出5 V和3.3 V电压。温湿度测量仪具体的硬件框图如图1所示。
图1 硬件框图Fig.1 Block diagram of hardware
软件实现是本方案实现的核心,远程在线IP修改实现的实质就是对C8051F120内部Flash进行读写操作。C8051F120内部具有1个128 kB分区Flash,可以进行在线系统编程;另外,还包含了256 B的临时存储区。该临时存储区分为2个128 B的扇区,用于非易失性数据的存储,从而使数据更新更加容易[5]。本文软件就是实现对C8051F120内部的128 B临时存储扇区进行相关操作。
在具体实现过程中,对临时存储扇区的操作主要分为写操作、读操作、擦除操作和界面操作这4部分,下面着重对这4部分代码的实现进行说明。
对Flash进行写操作的流程如图2所示。
图2 写操作流程图Fig.2 Flowchart of WRITE operation
在任何操作之前,首先得关中断,关中断的实现就是置EN为0,由于是对临时存储扇区进行写操作,所以还得置位SFLE位。当SFLE为1时,才能对临时存储区进行具体的操作[6],即置位FLWE与PSWE,使能用户软件写/擦除操作,然后按一个字节一个字节地输入数据,最后清除位,置位EN,使能中断。Flash写操作的具体实现代码如下。
读过程的实现很简单,就是读出Flash_ByteWrite()函数写入Pread地址里面的字节,然后返回。在这个操作过程中,为了保证数据的实时性和准确性,本文是在关中断后才对数据进行具体操作的,实现代码如下。
在擦除操作中,首先得关中断,因为擦除的内容位于临时存储区的某一页,所以必须将SFLE置位;再置位FLWE,允许对Flash扇区进行擦除,置位PSWE,使它能进行写操作;然后向要擦除的临时扇区任何一个地址随意地写入一个数据字节;最后清除所有位,使能中断。
擦除操作流程如图3所示。
图3 擦除操作流程图Fig.3 Flowchart of ERASE operation
擦除操作实现代码如下。
以上部分代码都是在底层设备中实现的,由于都是对临时存储扇区的操作,所以程序编写流程基本一致。至此,IP修改功能还无法实现,还需借助上位机监控软件来发送具体的指令。在这里,就是把具体要修改的IP数据通过信息分发服务传送给底层设备,最终实现在线IP修改。下面就上位机监控软件的IP修改操作界面做相关描述。
在操作界面中,必须通过相关工具把要修改的IP地址传送给底层设备,完成用户软件对设备的IP在线修改[7]。
本方案中的组态监控软件是基于基本功能块来实现监控的,基本功能块是指应用所执行的基本自动功能。该功能尽可能独立于I/O设备和网络的特性。每个功能块根据制定的算法和一组内含的变量来处理输入数据,并产生输出数据,其具体实现是通过发送修改IP的命令。该命令通过设置上层监控软件设备的变量设置项来实现。在这个设置项里,用户可以按工业环境需要来更改IP地址,设置好IP地址后,代码就会把IP数据赋值给一数组;然后打包以信息分发服务的方式传送给底层设备,底层设备对该数组进行读操作;最后把值赋给原IP,对原IP地址进行覆盖,从而完成IP地址的修改。
IP控制方法的实现为工业自动化系统对现场智能仪表的控制提供了更快捷的方式,但它存在一定的局限性,它只能应用于确定的某一个控制系统。因此,下一步的目标是加强其开放性,让这一功能融入任意控制系统中,使工业生产中的控制系统更加完善,也使用户操作更加快捷。
[1]周立功.单片机试验与实践教程[M].北京:北京航空航天大学出版社,2006:117-118.
[2]张娟,陈杰,蔡振江.基于多传感器数据融合的温室温度采集[J].微计算机信息,2007,34(1):58 -59.
[3]祁树胜.检测信号的温度补偿及线性化的计算机处理[J].西安航空技术高等专科学校学报,2007,26(3):45-49.
[4]唐炜,徐晓苏.基于温度补偿的传感器建模方法及其应用[J].计量技术,2007,23(2):74 -75.
[5]周忠保.基于GPRS的嵌入式远程控制系统设计[J].科技广场,2009,44(9):89 -91.
[6]李超,王岱,徐莉,等.LED显示屏自动运行和远程控制的实现[J].中国医疗设备,2009,36(11):8 -11.
[7]王勇,张浩,彭道刚,等.ARM平台在多功能数据采集系统中的设计与实现[J].自动化仪表,2010,31(1):54 -59.