接口/总线/驱动
本文介绍了利用LonWorks现场总线代替原有的现场工业控制总线。利用LonWorks底层的显形报文格式和广播方式将原来的通信协议转换成LonWorks的通信协议,把LonWorks作为通信协处理机使用,利用LonWorks的并行口与控制器如8031、80C196进行数据交换。解决了原有控制网络通信速度慢、拓扑结构不合理的问题,这种应用方法对原有的硬件不需要做大的修改,软件方面也只改通信部分,控制软件可以不变。这样即可以提升控制网络的性能,又可以减少人力物力,是LonWorks现场总线的一个典型应用方法。
一、概要
交通部上海船舶运输科学研究所于1989年开始研制实时船用网络系统,历时3年,于1991年研制成功,命名为船用2+实时网络系统,并首次应用于南海904运输补给舰,目前已用于多艘舰船,有远望3号、053舰等。至今为止,形成了船用控制网络的批量产品。在当时由于现场总线技术还未开始应用,使得2+网络添补了国内船用控制网络的一个空白,并形成产品推广使用了多年。现在看来,2+网络系统在船舶控制系统中还是起作主要作用。使得船舶控制从单机转变为网络型自动控制。2+网络系统的拓扑结构见图1,从图中可以看出,这种树形的网络结构不尽合理,通信总机肩负着很重要的任务,可靠性要求很高。从控制机到控制机最远的路由要通过3个交换机,造成通信时间加长,实时性不高。随着现场总线技术的不断完善,选用一种能结合我国实际的现场总线技术代替船用控制网络已非常必要。
二、LonWorks现场总线的特点:
LonWorks技术的核心是神经元芯片(Neuron chip),它由美国摩托罗拉公司和日本东芝公司生产,有以下几个特点:
(1) LonWorks技术的基本元件——Neuron芯片,同时具备了通信与控制功能,并且固化了ISO/OSI的全部七层通信协议,以及34种常见的I/O控制对象。
(2) 改善了CSMA,LonWorks称之为Predictive P-Persistant CSMA。这样,在网络负载很重时,不会导致网络瘫痪。
(3) 网络通信采用了面向对象的设计方法,LonWorks技术将其称之为“网络变量”。使网络通信的设计简化成为参数设置。这样,不但节省了大量的设计工作量,同时增加了通信的可靠性。
(4) LonWorks技术的通信的每帧有效字节可以从0到228个字节。
(5) LonWorks技术的通信速度可达1.25MBps(此时有效距离为130M)。
(6) LonWorks技术一个测控网络上的节点数可以达到32000个。
(7) LonWorks技术的直接通信距离可以达到2700m(双绞线,78KBps)。
(8) 针对不同的通信介质有不同的收发器和路由器。
(9) 有LON-WEB网关,可以连接INTERNET。
三、 应用方法:
目前LonWorks现场总线技术已经在国内开始应用。但多采用网络变量的方式进行数据通信,其主要优点在于:软件编程方便、可采用标准的网络变量便于今后和其它标准的LonWorks设备进行通信。但采用网络变量通信是要用LONMAKER软件进行网络变量的现场绑定(BIND),必须要在现场配备一台PC机进行网络变量绑定,对于只有几个节点的控制对象来说,势必要增加设备的投资。如果在设备运行过程中遇到节点损坏需要更换节点时,又要重复做一遍节点的网络变量绑定。这就要对最终用户的维修人员进行培训,教会他们用LONMAKER软件进行网络变量的现场绑定。对于技术水平不高的用户,只好由开发人员亲自到现场进行维护。这大大提高的控制设备的维护成本。
在LonWorks的应用过程中,可采用两种通信方式即网络变量通信和显形报文通信。根据各自通信特点我们选用显形报文通信方式。采取显形报文通信方式最大的好处在于系统安装配置时不需要绑定,便于现场用户的安装和维护。显形报文通信的数据包和长度可以由用户定义,就可以突破LonWorks关于每个控制节点不能超过63个网络变量的限制。通过显形报文还可以在不同的网络之间进行协议和路由的转换。但采取显形报文通信也有其不足之处:控制网络系统成了封闭系统,不能和其他LonWorks产品进行互连,另外软件的编制过程也较为复杂,要增加相应的用户协议。
下面是利用显形报文进行数据块传送的一个例子:
msg_tag motor;
#define MOTOR_ON 0
typedef enum {
MOTOR_FWD,
MOTOR_REV
} motor_dir;
struct {
long motor_speed;
motor_dir motor_direction;
int motor_ramp_up_rate;
} motor_on_message;
when (some_event){
msg_out.tag=motor;
msg_out.code=MOTOR_ON;
motor_on_message.motor_direction=MOTOR_FWD;
motor_on_message.motor_speed=500;
motor_on_message.ramp_up_rate=100;
memcpy(msg_out.data,&motor_on_message,
sizeof(motor_on_message));
msg_send();
}
具体在实现过程中,我们采用INTEL的80C196作为现场级的CPU进行控制对象的数据采集和现场控制,而利用LonWorks作为通信协处理器进行现场的数据传输。在80C196和3150采用并行口进行数据交换,交换的速度可达到100KBYTE/S以上,远远超过LonWorks双绞线的78K的通信速率。对各个控制点之间的通信采用了广播方式定时进行广播通信,一个数据采集点把现场实时采集到的数据广播给控制网络上的其他节点,其他节点都同时收到这个采集点发来的数据,需要的数据可以保存下来,而不需要的数据就放弃。这种通信方式与主从式通信方式比较可大大减少网络上的数据通信量,提高网络的数据流量,大大提高通信的传输效率。
在3150控制模块的选用上,原来采用ECHELON公司的控制模块Model 55020-10,但是在应用过程中发现这个模块无外部扩展内存(RAM),作为通信协处理器使用要求有大量的数据缓冲区进行数据交换,而仅仅利用3150内部的2K RAM容量是远远不够的(运行时系统还要占掉800多个字节)。在这种条件下,我们自己设计了一块3150控制模块,与55020-10兼容,在这基础上增加了24K的外部RAM,这样可以增加3150发送和接收缓冲区的数量,使得控制模块的功能大大增强。采用这种方法,圆满地解决了3150通信协处理器的数据通信和交换的功能。
四、几点体会:
在LonWorks的应用过程中,我们也觉得该系统有些不足之处。
1. 3150的CPU处理运算能力差:
由于3150开发时间较早,当时采用8位数据处理是局限于当时情况,而在微处理机发展飞快的今天再采用当时的技术已嫌落后。
2. 3150的CPU处理速度慢:
3150最快采用10MHZ主频,对于在工业高速控制场合这种速度不能满足控制要求。
3. 3150CPU在10MHZ主频下的IO输入输出操作指令速度为60us,这只能用于如智能化大楼等低速控制场合。
4. ECHELON公司提供了PC机上的LonWorks网络接口卡,而给用户的驱动程序并没有给出其具体的功能调用,不利于用户进行二次开发。
5. 开发系统的费用太高,一套基本的开发系统要10万元以上,不符合国情,不利于LonWorks系统的推广。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !