多个包设备与DCS的通讯

2016-08-29 百科 阅读:

多个包设备与DCS的通讯(一)
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协议的硬件,主要有:MODBUSGATEWAY,MODBUSGATEWAYPLUS,适用于RS-232通讯及RS-485通讯,并可以选择做为仆方或主方。采用专门的通讯硬件,可以与一切提供MODBUS协议通讯接口的设备进行通讯,包括其它公司的DCS系统、PLC产品等。在上海Foxboro公司所实施的大部分需要进行通讯的项目中均采用这种方式。

除以上两种专门通讯硬件外,Foxboro公司还有一个可以自定义协议的通讯硬件—FOREIGNDEVICEINTIGRATOR30(设备集成器30)。使用此通讯硬件,需要通讯的双方只要定义好通讯数据包格式(包括数据包报头信息、数据格式、数据包报尾信息)和通讯参数(包括起始位、停止位、数据位、波特率)即可实现通讯。在镇江电厂项目中,上海Foxboro公司就采用这个方法实现了与GEPLC及无锡阳山智能数据采集前端的通讯,大大减少了用户的投资。

此外,对于市场上使用较多的PLC和DCS产品,Foxboro公司提供专门的通讯软件进行通讯。 以上所有的通讯方式所采用的硬件是一样的:通讯处理机30

(COMMUNICATIONPROCESSOR30),不同之处在于所选用的通讯软件不一样。

对于MODBUS协议,采用的波特率通常为9600bps,因此每秒所能通讯的数据包是有限制的。 对于MODBUS协议,如果MODBUS设备不同,每个通讯包所能通讯的量是不一样的,通常使用的548设备可以通讯到256个字节,亦即128个模拟量或2048个数字量。

标准的MODBUS通讯帧格式为:―〈仆方地址〉〈功能码〉〈起始地址〉〈数据传送量〉〈校验码〉‖。对于不同的设备具有不同的MODBUS地址;同一设备,不同数据类型(外部寄存器、内部寄存器、外部保持线圈、内部保持线圈等)具有不同的功能码;同一数据类型,读/写操作不同时,也具有不同的功能码。

因此,在考虑MODBUS协议通讯时,不能只看有多少个模拟量/数字量,而必须同时考虑:有多少个设备,每个设备的通讯模拟量/数字量数据有多少,数据是否双向传送,通讯速率为多少。综合考虑以上因数后,计算出需要多少个通讯处理器。

需要强调的是:Foxboro公司的硬件通讯产品COMM30与许多公司的硬件通讯方式通过采用插在工程师站/操作员站主板上的串口通讯卡实现不同,Foxboro公司的COMM30具有专用的CPU芯片,独立于工程师站及操作员站运行,是控制网络中一个独立的处理站,即使在工程师站/操作员站死机时仍能保证通讯的正常运行,这在参与控制的通讯(如与定排程控、吹灰程控等)中显的尤为重要。

三.用专业通讯软件实现通讯

专业的通讯软件主要分为两类:一类实现数据的实时采集与传送,另一类实现流程画面的实时传送。

3.1数据的实时采集及传送

用Foxboro公司开发的通讯软件或利用第三方开发的针对I/A’s的通讯软件实现通讯是一种非常方便的办法,它可以大大缩短项目周期。

Foxboro公司的专业通讯软件从早期的DataforWindow、PIMS中的DataLink到现在使用的AIM*AT软件秉承始终如一的思想,利用AISAPI(FOXAPI的早期版本),FOXAPI的内部函数调用实现数据的实时读写;利用TCP/IP实现数据在I/A’s与PC机之间的双向传送;利用DDE技术将I/A’s的数据在支持DDE技术的程序(如:Excel、Lotus1-2-3、Delphi等)中显示,同时提供VB调用函数,便于用户的二次开发。该软件的最快传送速率为0.1秒。在目前的项目中,比较多的采用了这种办法。

对于目前较流行的OPC通讯协议,Foxboro公司提供专门的OPC通讯软件,同时也可以选用第三方,如:MATRICON公司的OPC通讯软件。

第三方通讯软件主要是美国OSI公司的PI实时数据库。OSI公司的PI系统基于C/S结构,能将100多家的DCS系统或PLC中的实时数据传送到WindowNT服务器中,利用其专利的―螺旋门压缩‖技术,将数据进行压缩加工,使其保存周期可长达数年以上(取决于硬盘容量)。同时,利用其强大的系统工具实现二次开发,包括流程画面显示、趋势显示、优化处理、性能计算等。PI实时数据库在Foxboro的I/A’s中的应用在国外已经有了上百个成功使用的业绩。谏壁发电厂利用PI系统将其#7、#8、#9、#10四台300MW机组多达20,000点的数据实现了实时传送、长达2年的数据存储,并利用其强大的二次开发工具,为全厂MIS(或SIS)系统的应用开发服务。

专业的通讯软件,如:PI,除了具有高率、高速、数据保存时间长、安全可靠、功能强大、界面友好、使用方便等优点外,通常在数据传送时还具有以下特性:

【多个包设备与DCS的通讯】

l采用―例外报告‖方式:设定数据需要传送的变化范围,对未超过变化范围的数据不传送,这一机制大大降低了通讯负载。

l具有―数据缓存‖机制:在网络通讯中断时,将需要传送的数据缓存在工作站的硬盘上,待网络通讯恢复时,在网络通讯的空闲时再将数据传送到数据库中。这一机制保证了数据不丢失。

3.2流程画面的实时传送

将流程画面实时传送到PC机上,可以使企业领导和运行管理人员、热工仪表维护人员可以及时掌握现场的生产运行情况,便于整个企业的资源共享、状态监视及物流管理。

关于流程画面的实时传送,目前使用较多的是使用HumingBird公司的Exceed软件。利用Exceed软件的Telnet功能和I/A’s的附加显示管理器(AdditionalDisplayManager),将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.1I/A’s数据的读写及处理【多个包设备与DCS的通讯】

Foxboro公司I/A’s系统提供强大的内部编程函数(C函数、FORTRAN),主要包括有:

lOMCALL函数–实现I/A’s系统内部数据的读写操作。

主要函数有:

2intgetval(char*name,intobj_type,intimport,char*value,unsignedint*status,intdata_len)

此函数实现单个数据的读操作。

2intom_getval(char*name,intobj_type,intimport,charvalue,unsignedint*status,intdata_len,PSAP_ADDR*psap_ptr) 此函数实现单个数据的读操作,它使用PSAP指针。

2intsetval(char*name,intobj_type,intimport,char*value,unsigned*status,intdata_len)

【多个包设备与DCS的通讯】

此函数实现单个数据的写操作。

2intom_setval(char*name,intobj_type,intimport,char*value,unsigned*status,intdata_len,PASP_ADDR*psap_ptr); 此函数实现单个数据的写操作,它使用PSAP指针。

2intomopen(structom_header_node*om_descriptor,intopen_id)

此函数实现打开一个LIST,为数据的读写操作做准备。

2intomread(intomopen_id,intsize_list,structvalue*var_list)

此函数实现从打开的LIST中读取数据。

2intomwrite(intomopen_id,intsize_list,structvalue*var_list);

此函数实现向打开的LIST中写数据。

2intomclose(intopen_id,structom_header_node*header,structopen_var*var_list,structnet_addr*addr_tbl) 此函数实现关闭一个已经打开的LIST。

2头部文件、OM结构及例程

#include

#include

#include

#include

#include

main()

{

structo

pen_varin_var_list[8];

structheader_nodein_om_desc;

structnet_adrin_net_adr_tbl[2];

intin_open_id;

intrtn;

floatdelta_temp,delta_fc,delta_df;

structvalue*in_data_list,*temp;

inti;

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;

……

}

2特点

使用getval、setval、om_getval、om_setval函数进行编程比较简单,但效率较差;用omopen、omread、omwrite、omclose编程需要复杂的声明,编程比较复杂,但程序通用性好(不要FOXAPI的支持)、效率高。

lFOXAPI函数–实现I/A’s系统内部数据的读写操作及强大的C/S结构编程。【多个包设备与DCS的通讯】

主要函数有:

2intsbopen(int*gw_array,intnument,char*name_array,int*valtyp_array,intacctyp,float*delta_array,intclexit,intrsr,intwsr,float*wdelta_array,int*dset,int*index_array,int*error_array,int*reterr)

此函数实现以连续更新的方式打开一个读写SET。

2intbread(intdset,long*value_array,int*status_array,int*reterr)

此函数实现从一个已经打开SET中读取数据。

2intbwrite(intdset,long*value_array,int*error_array,int*reterr)

此函数实现向一个已经打开S

intreterr[SETNUM];/*OpenSetreturnErrorCode*/

/*PredefineParameterofutility*/

intset[SETNUM];/*OpenSetNumber*/

intTotal_SET;/*TotalSetNumber*/

intLast_SET_Num;/*LastSetValueNuber*/

intTotal_Num;/*TotalNumberofobjects*/

intTotal_File;/*TotaloutputfilesNumber*/

intINTERVAL;/*Communicateinterval*/

intCol_Num;/*Valuenumberperline*/

main()

{

……scopen(gw[i],k,name[i],valtype[i],acctype,rdelta[i],clexit,rsr,\

wsr,wdelta[i],&set[i],index[i],error[i],&reterr[i]);

多个包设备与DCS的通讯(二)
DCS与DEH通讯存在问题及解决方案

DCS与DEH通讯存在问题及解决方案

广东韶关发电厂8号200MW机组的DCS和DEH改造,DCS采用西屋公司的OVATION分散控制系统,DEH采用新华公司的由XDPS 400分散控制系统组成的DEH―ⅢA。在改造设计中,DEH系统配备工程师站和历史站各一台,没有专用的操作员站。DEH系统采用与DCS系统共享操作员站的方案,通过通讯的方法,实现在DCS的操作员站上对DEH系统进行全部监控的功能。

1、DEH与DCS通讯原理

如图1所示,DEH侧的工程师站和历史站同时兼作通讯站,其第3块网卡通过RJ45通讯电缆与DCS侧的1、2号FDDI(光纤分布数据接口)交换机连接起来,实现与DCS侧的07、57号控制器(Drop07、Drop57)通讯。通讯协议采用TCP/IP上的MODBUS,DEH侧为从站(SLAVE),DCS侧为主站(MASTER)。

图1 DEH与DCS通讯结构图

DEH侧运行新华公司开发的“Hbgtw.exe”程序与OVATION系统进行通讯,该程序当初是新华公司为XDPS400系统与H&B公司的CONTRONIC DCS系统通讯而开发的,后来成为新华公司的XDPS400系统与其它系统进行通讯的一部份,并且与多个DCS系统通讯取得了成功。

DCS侧利用OVATION系统的虚拟IO(Input & Output)设备与DEH系统进行通讯,虚拟IO设备是OVATION系统集成的与第三方系统通讯的功能,利用虚拟IO设备,OVATION可以

直接与AB PLC、MODBUS PLC、GE Mark Ⅴ/Ⅵ、RTP I/O等第三方系统进行通讯。在本工程中,将DEH系统虚拟为OVATION系统的MODBUS PLC设备,实现与DEH系统的通讯。

2、DEH与DCS通讯存在的问题

2.1 DCS无法正常向DEH发送操作指令

新华公司的XDPS400系统采用“HBGTW.EXE”程序与H&B公司的CONTRONIC、ABB BAILEY的SYMPHENY等系统进行通讯都取得了成功,但与OVATION系统通讯还是第一次。

在韶关电厂8号机组改造中,DEH与DCS通讯一开始调试时,就发现虽然DEH侧的数据可以正确送到DCS系统,但是DCS无法对DEH进行正常操作,而且当通讯程序启动后,DEH的所有操作块每秒周期地被操作一次,造成DEH系统出现混乱。

新华公司的“HBGTW.EXE”程序当初是为实现DEH与DCS共享操作员站而设计开发的,其设计的当初是与DCS的操作员站进行通讯,“HBGTW.EXE”程序用MODBUS功能号2、4完成向DCS传送开关量和模拟量数据、用MODBUS功能号5、6完成DCS对DEH系统进行的脉冲和置数操作。在通讯过程中,主站(MASTER)DCS周期地向从站(SLAVE)DEH发送MODBUS功能号2、4消息,DEH回应主站的号2、4消息,从而实现DEH侧数据传送到DCS侧;当DCS侧要对DEH进行脉冲或置数操作时,主站DCS向从站DEH发送MODBUS 2号或4号息消,DEH收到主站的2、4号消息后,向DPU(Distributed Process Unit)发送操作指令信号,就象运行人员在DEH操作员站对DEH进行操作一样,从而实现DEH与DCS共享操作站。

在本工程中,DEH是与OVATION系统的控制器通讯,而不是操作员站。OVATION控制器用MODBUS功能号5、6向DEH传送的不是操作指令,而是开关量和模拟量信号,而且是周期地传送的。由于DCS与DEH两系统对MODBUS功能号5、6消息的解释不同,DEH每收到一条MODBUS功能号5或6消息,DEH系统就对其DPU进行一次操作,造成每个通讯周期DEH都要对其DPU进行一次脉冲和置数操作,引起DEH系统混乱。

2.2 通讯无法实现冗余

通讯设计时,DCS侧的07号控制器与DEH的工程站通讯,DCS侧的57号控制器与DEH的历史站通讯。DEH侧的工程师站和历史站在通讯上是相互冗余来设计的,任一个站与DCS通讯正常都能保证DEH与DCS两系统间的通讯正常。

DCS侧的07、57号控制器作为冗余而配置的控制器,采用一用一备的工作方式,当07号控制器为主时,57号控制器备用,反之,当57号控制器为主时,07号控制器备用。处于备用方式的控制器跟踪主控制器,其本身并不进行IO扫描运算,因此,处于备用方式的控制器并不会与DEH进行通讯,而处于主工作方式的控制器只与DEH的其中一个站进行通讯,当这路通讯线路故障或DEH侧正在通讯的站出现故障或关闭时,虽然DCS与DEH的另一路通

讯回路正常,但DCS主控制器并不会切换到与DEH侧的另一台站进行通讯,DCS的主/备控制器也不会自动切换,造成DCS与DEH的通讯失去。

可见,虽然设计了两个通讯回路,但由于通讯是一对一的方式,一路通讯中断后无法自动切换到另一路通讯上,两个通讯回路无法真正实现相互冗余的功能。

3、DEH与DCS通讯问题解决

3.1 DCS无法正常向DEH发送操作指令的解决

从上面的分析可以得知,DCS无法向DEH发送操作指令的原因是DCS向DEH传送的不是操作指令,而是开关量和模拟信号。要解决DCS不能对DEH进行正常操作的问题,理论上分析可有两种解决方案。

第一种是对DCS侧的通讯设置进行修改,使DCS向DEH发送的不是开关量和模拟信号,而是操作指令,即DCS侧只有运行人员对DEH进行开关量或模拟量置数操作时,才向DEH发送MODBUS功能5或6号消息。采用这个方案的好处是通讯实时性较好,通讯负担也较小,但DCS侧的OVATION系统是采用虚拟IO设备与DEH进行通讯,虚拟IO设备是OVATION系统集成的功能,我们可能无法对OVATION系统进行修改。

第二种是对DEH侧进行修改,使DEH收到DCS传送来的数据时,不是直接对DPU进行操作,而是将数据送到DPU进行逻辑判断,判断出DCS需要对DEH进行操作时,再通过逻辑处理的方法对DPU进行操作。这种方案,DCS侧对DEH进行操作时,操作指令先送到DCS的控制器,由控制器进行逻辑处理后再以IO输出方式通讯到DEH侧,DEH收到后再经过逻辑处理才进行操作。可见,在DCS侧进行操作后,至少要经过DCS和DEH各一个逻辑扫描周期后,DEH才进行操作,操作实时性较第一种方案差。DEH侧的通讯程序为新华公司开发,新华公司的研发人员可以很容易对通讯程序进行修改。当第一种方案无法实施时,只能

多个包设备与DCS的通讯

http://m.zhuodaoren.com/shenghuo366500/

推荐访问:dcs通讯电缆 dcs与plc通讯

百科推荐文章

推荐内容

上一篇:苗族牡丹图案 下一篇:并联导纳无功负荷