机电之家行业门户网运行
文章 下载
最新公告:

  没有公告

设备维修与管理培训
您现在的位置: 设备维修与管理 >> 设备管理 >> 基础管理 >> 维修管理 >> 资讯正文
 
赞助商
 
 
最新文章
 
 设备管理中存在的问题及改进措施
 探索设备备件更换规律,实现设备
 创新设备管理 提升竞争优势
 设备管理关乎企业效益
 TPM自主保全实践的探索与思考
 驱动离心泵的电机电流高的原因及
 离心泵运行时不打量的原因
 离心泵一般容易发生的故障有哪些
 离心泵各零部件的检修标准
 计量泵的常见故障及处理方法
 
推荐技术
 
 
相关文章
 
DCS/SIS一体化系统中的高
电力企业配网GIS系统的设
华北电网高压输变电GIS系
供电企业配电AM/FM/GI
浅析县级供电企业MIS系统
数据引擎技术在DCS中的应
SIS系统调试及运用体会
辽阳供电公司配电管理系
德化供电公司安全生产MI
实施EAM/CMMS系统的步骤
 
客户服务
 
如果您有设备方面好的文章或见解,您可以送到我们的投稿信箱
客服电话:0571-87774297
信   箱:88ctv@163.com
我们保证在48小时内回复


s

b

g

l

.

j

d

z

j

.

c

o

m

 

DCS系统中的通讯方式问题探讨           
DCS系统中的通讯方式问题探讨
作者:佚名 文章来源:不详 点击数: 更新时间:2008-9-24 9:23:00
摘要 本文以Foxboro公司I/A’s为例,讨论了在DCS系统中实现通讯的三种方法:利用专门硬件实现、利用专业通讯软件实现、以及自行开发通讯软件,并着重对自行开发的通讯软件的一些方法、C函数进行了描述。通过几种实现方法优缺点的比较,为用户在选择通讯方式时提供参考。
关键词 通讯方式,DCS,实时数据,安全性
       一. 简介
       随着我国工业的自动化整体水平的提高,企业中的控制系统及控制设备的种类也越来越多;同时,随着市场经济的发展,各个企业也对DCS系统的要求也越来越高,除了要满足常规的控制以外,还要求DCS系统能将控制系统的各个运行参数实时传送到上位的MIS系统或SIS系统中去,进行数据后处理加工、共享、性能优化。所有的这些,都对DCS系统提出了通讯问题,包括和其它DCS或PLC的通讯、以及与上位机的通讯。
在谏壁发电厂的四台300MW机组(7#、8#、9#、10#)的DCS改造中,全部采用的Foxboro公司的I/A’s系统,与I/A’s通讯的装置有893类智能数据采集前端、锅炉高过壁温分析系统、基于PC机的实时报表数据库系统、PI海量数据库(SIS系统),几乎涵盖了DCS系统与其他系统进行通讯的所有方式:使用专业通讯硬件实现通讯、使用专业通讯软件实现通讯、自行开发通讯程序(包括:串口通讯、TCP/IP通讯、FTP通讯、基于TCP/IP的MODBUS协议通讯)。
下面,将对以上几种通讯方式的实现做一个简单介绍并比较,给出在选择通讯方式时的几点建议。
       二. 利用硬件实现通讯
       对于市场上广泛使用的A-B公司PLC产品,Foxboro公司专门开发专用的通讯硬件--集成在I/A’s中的AB-STATION,通过AB-STATION,在I/A’s中可以直接对A-B的PLC进行管理、组态、通讯及数据采集监视,使整个系统既具有PLC快速的优点,又具有DCS系统友好的人机界面,强大的数据库管理的优势。
对于工业界广泛采用的MODBUS协议(含ASCII协议及RTU协议),Foxboro公司开发了多种符合MODBUS协议的硬件,主要有:MODBUS GATEWAY, MODBUS GATEWAY PLUS,适用于RS-232通讯及RS-485通讯,并可以选择做为仆方或主方。采用专门的通讯硬件,可以与一切提供MODBUS协议通讯接口的设备进行通讯,包括其它公司的DCS系统、PLC产品等。在上海Foxboro公司所实施的大部分需要进行通讯的项目中均采用这种方式。
除以上两种专门通讯硬件外,Foxboro公司还有一个可以自定义协议的通讯硬件—FOREIGN DEVICE INTIGRATOR 30(设备集成器30)。使用此通讯硬件,需要通讯的双方只要定义好通讯数据包格式(包括数据包报头信息、数据格式、数据包报尾信息)和通讯参数(包括起始位、停止位、数据位、波特率)即可实现通讯。在镇江电厂项目中,上海Foxboro公司就采用这个方法实现了与GE PLC及无锡阳山智能数据采集前端的通讯,大大减少了用户的投资。
此外,对于市场上使用较多的PLC和DCS产品,Foxboro公司提供专门的通讯软件进行通讯。
以上所有的通讯方式所采用的硬件是一样的:通讯处理机30(COMMUNICATION PROCESSOR 30),不同之处在于所选用的通讯软件不一样。
对于MODBUS协议,采用的波特率通常为9600bps,因此每秒所能通讯的数据包是有限制的。
对于MODBUS协议,如果MODBUS设备不同,每个通讯包所能通讯的量是不一样的,通常使用的548设备可以通讯到256个字节,亦即128个模拟量或2048个数字量。
标准的MODBUS通讯帧格式为:“〈仆方地址〉〈功能码〉〈起始地址〉〈数据传送量〉〈校验码〉”。对于不同的设备具有不同的MODBUS地址;同一设备,不同数据类型(外部寄存器、内部寄存器、外部保持线圈、内部保持线圈等)具有不同的功能码;同一数据类型,读/写操作不同时,也具有不同的功能码。
因此,在考虑MODBUS协议通讯时,不能只看有多少个模拟量/数字量,而必须同时考虑:有多少个设备,每个设备的通讯模拟量/数字量数据有多少,数据是否双向传送,通讯速率为多少。综合考虑以上因数后,计算出需要多少个通讯处理器。
需要强调的是:Foxboro公司的硬件通讯产品COMM30与许多公司的硬件通讯方式通过采用插在工程师站/操作员站主板上的串口通讯卡实现不同,Foxboro公司的COMM30具有专用的CPU芯片,独立于工程师站及操作员站运行,是控制网络中一个独立的处理站,即使在工程师站/操作员站死机时仍能保证通讯的正常运行,这在参与控制的通讯(如与定排程控、吹灰程控等)中显的尤为重要。
       三.   用专业通讯软件实现通讯
       专业的通讯软件主要分为两类:一类实现数据的实时采集与传送,另一类实现流程画面的实时传送。
       3.1 数据的实时采集及传送
用Foxboro公司开发的通讯软件或利用第三方开发的针对I/A’s的通讯软件实现通讯是一种非常方便的办法,它可以大大缩短项目周期。
Foxboro公司的专业通讯软件从早期的Data for Window、PIMS中的Data Link到现在使用的AIM*AT软件秉承始终如一的思想,利用AISAPI(FOXAPI的早期版本),FOXAPI的内部函数调用实现数据的实时读写;利用TCP/IP实现数据在I/A’s与PC机之间的双向传送;利用DDE技术将I/A’s的数据在支持DDE技术的程序(如:Excel、Lotus 1-2-3、Delphi等)中显示,同时提供VB调用函数,便于用户的二次开发。该软件的最快传送速率为0.1 秒。在目前的项目中,比较多的采用了这种办法。
对于目前较流行的OPC通讯协议,Foxboro公司提供专门的OPC通讯软件,同时也可以选用第三方,如:MATRICON公司的OPC通讯软件。
第三方通讯软件主要是美国OSI公司的PI实时数据库。OSI公司的PI系统基于C/S结构,能将100多家的DCS系统或PLC中的实时数据传送到Window NT服务器中,利用其专利的“螺旋门压缩”技术,将数据进行压缩加工,使其保存周期可长达数年以上(取决于硬盘容量)。同时,利用其强大的系统工具实现二次开发,包括流程画面显示、趋势显示、优化处理、性能计算等。PI实时数据库在Foxboro的I/A’s中的应用在国外已经有了上百个成功使用的业绩。谏壁发电厂利用PI系统将其#7、#8、#9、#10四台300MW机组多达20,000点的数据实现了实时传送、长达2年的数据存储,并利用其强大的二次开发工具,为全厂MIS(或SIS)系统的应用开发服务。
专业的通讯软件,如:PI,除了具有高率、高速、数据保存时间长、安全可靠、功能强大、界面友好、使用方便等优点外,通常在数据传送时还具有以下特性:
l 采用“例外报告”方式:设定数据需要传送的变化范围,对未超过变化范围的数据不传送,这一机制大大降低了通讯负载。
l 具有“数据缓存”机制:在网络通讯中断时,将需要传送的数据缓存在工作站的硬盘上,待网络通讯恢复时,在网络通讯的空闲时再将数据传送到数据库中。这一机制保证了数据不丢失。
       3.2 流程画面的实时传送
       将流程画面实时传送到PC机上,可以使企业领导和运行管理人员、热工仪表维护人员可以及时掌握现场的生产运行情况,便于整个企业的资源共享、状态监视及物流管理。
关于流程画面的实时传送,目前使用较多的是使用HumingBird公司的Exceed软件。利用Exceed软件的Telnet功能和I/A’s的附加显示管理器(Additional Display Manager),将I/A’s中的流程画面实时传送至PC机中,并可以定义在PC机中的操作权限是否可以操作。
除Exceed软件外,还可以使用GraphOn公司的GO_Global软件,该软件可以直接利用网络传输,也可以用拨号方式,将I/A’s中的流程画面实时传送至PC机中。
在使用Exceed及GO_Global软件时,利用Modem拨号,就可以实现“远程诊断”(FOXWATCH),即:将I/A’s使用情况等信息,及时传送回Foxboro公司,Foxboro公司的工程技术人员在公司内就可以对用户的各种要求进行及时响应,对其系统进行诊断,并对用户提出使用建议。在谏壁发电厂的I/A’s系统中,就安装有FOXWATCH软件,使用效果非常好,厂级领导、热工维护人员等在办公室内即可了解机组生产运行情况;在出现故障时,可以迅速将DCS系统使用情况传送给Foxboro公司的工程技术人员,在最短的时间内得到技术支持,最大程度地降低损失。
无论是采用专门的硬件实现通讯,还是使用专业的通讯软件实现通讯,实现方法都比较简单,下面将重点介绍在Foxboro公司I/A’s产品中用软件编程方法实现通讯的几种方法。
       四.   利用软件编程实现通讯
利用软件编程方式,可以更加灵活实现各种非常规的通讯。
由于自行编写的程序在工程师站/操作员站运行,需要占用一定的CUP时间及内存,因此在通讯数据量较大,同时要求通讯速度较快时,由于没有专业通讯软件的“例外报告”机制,建议不要采用自行开发程序的办法。
由于自行编写的程序通常没有“数据缓存”机制,在传送非常重要的数据时应该谨慎使用。
自行编程主要工作为了两方面,一为I/A数据的读写及处理,一为通讯的实现。
通常自行开发通讯软件包括:串口通讯(如智能前端)、TCP/IP通讯(如实时数据传送)、FTP通讯(如定期传送报表文本)、基于TCP/IP的MODBUS协议通讯。
以上几种通讯方式在通讯的实现方式上不同,但在I/A’s内数据的读写操作是一样的,接下来将阐述软件编程时的主要函数及方式:
       4.1  I/A’s数据的读写及处理
Foxboro公司I/A’s系统提供强大的内部编程函数(C函数、FORTRAN),主要包括有:
       l  OM CALL函数 – 实现I/A’s系统内部数据的读写操作。
主要函数有:
²        int getval(char *name, int obj_type, int import, char *value, unsigned int *status, int data_len)
    此函数实现单个数据的读操作。
²        int om_getval(char *name, int obj_type, int import, char value, unsigned int *status, int data_len, PSAP_ADDR *psap_ptr)
此函数实现单个数据的读操作,它使用PSAP指针。
²        int setval(char *name, int obj_type, int import, char *value, unsigned *status, int data_len)
此函数实现单个数据的写操作。
²        int om_setval (char *name, int obj_type, int import, char *value, unsigned *status, int data_len, PASP_ADDR *psap_ptr);
此函数实现单个数据的写操作,它使用PSAP指针。
²        int omopen(struct om_header_node *om_descriptor, int open_id)
此函数实现打开一个LIST,为数据的读写操作做准备。
²        int omread(int omopen_id, int size_list, struct value *var_list)
此函数实现从打开的LIST中读取数据。
²        int omwrite(int omopen_id, int size_list, struct value *var_list);
此函数实现向打开的LIST中写数据。
²        int omclose(int open_id, struct om_header_node *header, struct open_var *var_list,struct net_addr *addr_tbl)
此函数实现关闭一个已经打开的LIST。
²        头部文件、OM结构及例程
#include
#include
#include
#include
#include
main()
{
      struct open_var         in_var_list[8];
      struct header_node      in_om_desc;
      struct net_adr          in_net_adr_tbl[2];
      int     in_open_id;
      int rtn;
      float delta_temp, delta_fc, delta_df;
      struct value    *in_data_list,  *temp;
      int i;
      delta_temp = 5.0;
      delta_fc = 1.0;
      delta_df = 0.5;
      in_om_desc.task_status = OM_R_ACCESS;
      in_om_desc.net_adr_tbl_ptr = in_net_adr_tbl;
      in_om_desc.size_net_adr_tbl = 2;
      in_om_desc.open_list_ptr = in_var_list;
      in_om_desc.size_open_list = 8;
      ……
}
²        特点
    使用getval、setval、om_getval、om_setval函数进行编程比较简单,但效率较差;用omopen、omread、omwrite、omclose编程需要复杂的声明,编程比较复杂,但程序通用性好(不要FOXAPI的支持)、效率高。
l             FOXAPI函数 – 实现I/A’s系统内部数据的读写操作及强大的C/S结构编程。
主要函数有:
²        int sbopen (int *gw_array, int nument, char *name_array, int *valtyp_array, int acctyp, float *delta_array, int clexit, int rsr, int wsr, float *wdelta_array, int *dset, int *index_array, int *error_array, int *reterr )
此函数实现以连续更新的方式打开一个读写SET。
²        int bread (int dset, long *value_array, int *status_array, int *reterr)
此函数实现从一个已经打开SET中读取数据。
²        int bwrite (int dset, long *value_array, int *error_array, int *reterr)
此函数实现向一个已经打开SET中写数据。
²        int clsset (int dset, int *reterr)
此函数实现关闭一个已经打开SET,释放程序所使用的内存空间,释放对CP中数据的控制权。
²        头部函数,FOXAPI结构定义及例程
# include
# include
# include
# include
# include
# include
# include
# define OBJNUM       100
# define SETNUM       20


typedef union
{
      long  lval;
      short ival;
      float fval;
      char bval;
} IAXVAL;


/* Predefined Parameter of I/A value */
static int      gw[SETNUM][OBJNUM];             /* Gateway Array                  */
char   name[SETNUM][OBJNUM][32];            /* Object Name Array            */
char       

[1] [2] [3] 下一页

资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    不良信息
    举报中心
    机电之家设备管理网
    致力于机电设备维修与管理技术
    网络110
    报警服务
    服务热线:0571-87774297 传真:0571-87774298 电子邮件:donemi@hz.cn 服务 QQ:66821730
    机电之家(www.jdzj.com)旗下网站 杭州滨兴科技有限公司提供技术支持

    版权所有 Copyright © 机电之家--中国机电行业门户·设备维修与管理

    主办:杭州高新(滨江)机电一体化学会
    浙ICP备05041018号