产品描述
6ES7214-1AD23-0XB8选型说明
VC(Visual C++)是功能强大的一种bbbbbbs应用程序可视化软件开发工具。VC支持面向对象的设计方法,并可以使用功能强大的微软基础类库MFC(Micro - soft foundation class)。并且由于Microsoft公司在操作市场上的地位,用VC开发出来的软件稳定性好、可移植性强,而且软件与硬件相互独立[1],可以用来开发控制系统的上层管理系统。RSView32是作为一种专门用于工业控制的组态软件,不仅包含了大量图形开发工具和现成图形库,使用户能够方便的进行系统开发,而且还可以对报警、活动记录、事件、历史趋势等进行组态,是一个功能强大的工业自动化产品[2],因此可以很方便地对下层设备进行组态。在实际系统开发时,利用OPC技术把两种工具有效的结合起来,使上层的VC程序通过RSView32间接地与下层PLC进行数据通信,以获取令人满意的结果。
2 OPC介绍
OPC(OLE for Process Control)是根据Microsoft的OLE(现在Active)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术所要求的功能制定的一个开放和互用式的用户界面标准,它保证了自动化/控制应用程序和区域系统/设备之间的互用。它以OLE/COM机制作为应用程序级的通讯标准,采用 CLIENT/SERVER模式,
OPC规范中提供了两套接口方案,即定制接口和自动化接口。定制接口效,通过该接口能够发挥OPC服务器的较佳性能,采用C++语言的客户一般采用定制接口方案;自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采用VB等语言的客户一般采用自动化接口。
OPC 数据存取服务器由对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象用于指出特定的OPC服务器应用程序名,并作为组对象的容器;组对象存储由若干Item组成的Group信息并逻辑组织数据项;数据项对象()存储具体的Item的定义、数据值、状态值等信息,一个 Item就代表一个具体的过程变量。OPC客户应用程序要获取OPC服务器的数据,必须事先*应用程序所在的计算机名(服务器应用程序和客户应用程序不在同一台PC上)、OPC数据访问服务器名和该服务器提供的OPC项的定义。
建立OPC连接后,客户应用程序一般可以通过三种方式从OPC 服务器读取数据:使用同步接口IOPC- SyncIO,简单有效,适合于只读取少量数据的客户程序;使用接口IOPCCallback的“订阅”的功能OnChange,每当数据有变化时,服务器自动通知客户;使用异步接口IOPCASyncIO2,可以直接与物理设备通讯,速度慢但数据精确度高。
3 RSView32作为OPC服务器
西门子专门用于工业控制的通用组态软件之一RSView32支持OPC技术,它可以用作一个OPC客户和外部OPC服务器软件通信,也可以作为一个OPC服务器和其它第三方支持OPC技术的软件进行连接。本文中RSView32作为服务器,VC应用程序作为客户端,采用C/S模式实现两者之间的数据交换。
3.1 使RSView32作为OPC服务器
用下列方法之一使RSView32作为OPC服务器:
(1) 选择“启动”编辑器里“启动”页上的“OPC/DDE服务器”复选框;
(2) 发出RTDataServerOn命令(从命令行或另一个 RSView32组件里,使用RTDataServerOff命令可以取消此功能),这将允许其它应用程序读取数值但不能改变它;
(3) 发出RTDataWriteEnable命令(从命令行或另一个RSView32组件里,使用RTDataWriteDisable命令可以取消此功能),这允许从外部OPC应用程序写入,以改变RSView32的标记值。
3.2 建立 OPC 客户项目
VC应用程序要从RSView32取得数据,必须使用下列信息:
服务器:RSI.RSView32OPCTagServer;
类型:本机/远程;
服务器计算机名或地址:如果客户务器在同一计算机上,这项可以是空白。
访问路径:项目名;
更新速率:一个以秒为单位的速率;
条目:标记名。可以通过查看RSView32的标签数据库获得。
4 VC应用程序作为OPC客户端的程序实现
在VC环境中使用定制接口开发OPC客户应用程序,下面是程序实现的关键步骤。
4.1 包含OPC头文件
开发OPC客户应用程序,除了需要OPC接口外,还需要在程序中包含OPC标准库文件,可以从OPC会网站(网址:www.)下载这些文件:
#include "opcda_i.c" OPC数据存取接口
#include "opcda.h" OPC数据存取2.0头文件
#include "opccomn_i.c" OPC公共接口定义
#include "opccomn.h" OPC公共头文件
4.2 初始化COM支持库
由于OPC是基于COM技术制定,所以在使用接口类之前必须首先使用CoInitialize(NULL)函数初始化COM库,如果成功,函数返回值等于S_ OK
。
4.3 连接opc服务器
OPC 客户能够连接到OPC服务器上,并建立OPC组和OPC数据项,这是OPC数据访问的基础,如果没有这个机制,数据访问的其它机能不可能实现[4]。连接 OPC服务器,OPC客户需要事先*计算机名(如果OPC服务器和OPC客户不在同一台计算机上)和OPC数据访问服务器名 (RSI.RSView32OPCTagServer)。实现代码如下:
ConnectToServer(/*in */LPOLESTR ProgID,/*in*/ BOOL IsRemote,/*out */ IUnknown **ppUnknown)
{
CLSID OPCCLSID;
HRESULT hRet=CLSIDFromProgID(ProgID,&OPCCLSID);
//将字符串ProgID转换为一OPCCLSID
if(IsRemote)
//opc服务器和opc客户不在同一台计算机上
{
COSERVERINFO ServerInfo;
memset(&ServerInfo,0,sizeof(ServerInfo));
ServerInfo.pwszName=T2OLE("ServerComouter");
MULTI_QI qi[1];
memset(qi, 0, sizeof(qi));
qi[0].pIID=&IID_IUnknown;
HRESULT hRet=CoCreateInstanceEx(OPCCLSID,NULL,CLSCTX_REMOTE_SERVER,
&ServerInfo,1,qi);
*ppUnknown=qi[0].pItf;
}
else
//opc服务器和opc客户在同一台计算机上
{
hRet=CoCreateInstance(OPCCLSID,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,
(void **)ppUnknown);
}
}
4.4 创建OPC组
IOPCServer接口的AddGroup()方法可以创建一个有*名称和属性的OPC组。在调用该方法之前,可以使用上一步得到的Iunknown接口指针,通过QueryInterface()方法请求IOPCServer接口指针。代码如下:
ppUnknown->QueryInterface(IID_IOPCServer,(void **)&pServer);
//得到IOPCServer接口指针
pServer->AddGroup(L"",TRUE,500,1235,&lTimeBias,&fTemp,0,&hOPCServerGroup, &dwActualRate,IID_IOPCItemMgt,& pOPCItemMgt);
4.5 添加数据项
IOPCItemMgt接口的AddItem()方法可以添加具有特殊属性的*数量的数据项。
pOPCItemMgt->AddItems(ItemNumber,ItemArray,
(OPCITEMRESULT**)&pItemResult,(HRESULT **)&pErrors);
ItemArray 为OPCITEMDEF类型结构数组,它包含数据项的详细信息,客户需要知道要进行交换的数据在RSView32标签数据库中的名称、数据类型及作为 OPC服务器的RSView32项目名称。添加数据项之前,要用这些数据项信息对ItemArray结构数组进行初始化。
4.6 数据交换
成功地增加完所需要的数据项后,OPC客户(VC应用程序)和OPC服务器(RSView32)就可以进行数据交换了。在数据量不大的情况下,可以使用 IOPCSyncIO同步接口的Write()和Read()两个方法进行数据的读写操作,从而实现OPC客户(VC应用程序)和OPC服务器 (RSView32)之间的数据交换。代码如下:
ppUnknown->QueryInterface(IID_IOPCSyncIO,(void **)&pOPCSync);
//得到IOPCSyncIO接口指针
pOPCSync->Read(OPC_DS_CACHE,ReadNumber,hServerRead,&pItemValue,&pErrors);
//读ReadNumber个数据
pOPCSync->Write(WriteNumber,hServerWrite,Writbbbbue,&pErrors);
//写WriteNumber个数据
4.7 释放接口指针
在VC应用程序停止运行之前必须使用Release()方法删除已创建的OPC对象并释放内存。
5 结束语
OPC技术规范把硬件供应商和应用软件开发者分离开来,使得双方的工作效率都有了很大提高。软件开发商*了解硬件的实质和操作过程,就能访问OPC数据服务器中的数据,尤其是开发商在已使用了组态软件进行实时监控的过程控制系统基础上,用C++等高级语言开发系统时,大大简化了过去从设备传输数据的复杂过程。在某铝厂的自动配料系统开发中,应用OPC技术方便地实现了VC应用程序和RSView32的数据交换,间接地实现了VC应用程序与PLC的通信,获得了很好的结果。
1 引 言
地铁的供电系统为地铁运营提供电能。无论地铁列车还是地铁中的辅助设施都依赖电能。地铁供电电源一般取自城市电网,通过城市电网一次电力系统和地铁供电系统实现输送或变换,然后以适当的电压等级供给地铁各类设备。
地铁全面采用变电站自动化设计,由于变电站数量多、设备多,在加上其完善的综合功能,信息交换量大,而且要求信息传输速度快和准确无误。在变电站综合自动化系统中,监控系统至关重要,是确保整个系统可靠运行的关键。
变电站自动化系统,经过几代的发展,已经进入了分散式控制系统时代。遥测、遥信、遥控命令执行和继电保护功能等均由现场单元部件独立完成,并将这些信息通过通讯系统送至后台计算机系统。变电站自动化的综合功能均由后台计算机系统承担。
将变电站中的微机保护、微机监控等装置通过计算机网络和现代通信技术集成为一体化的自动化系统。它取消了传统的控制屏台、表计等常规设备,因而节省了控制电缆,缩小了控制室面积。
2 地铁变电站自动化系统组成
在本地铁变电站自动化系统设计中,采用分层分布式功能分割方案。系统纵向分三层,即变电站管理层、网络通讯层和间隔设备层。分层式设计有利于系统功能的划分,结构清晰明了。系统采用集中管理、分散布置的模式,各下位监控单元安装于各开关柜内,上位监控单元通过所内通信网络对其进行监视控制。变电站自动化系统需要对35kV交流微机保护测控装置、直流1500kV牵引系统微机保护测控装置、380/220V监测装置、变压器及整流器的温控装置、直流/交流电源屏等设备进行监控和数据采集。
由于可编程序控制器技术经过几十年的发展,已经相当成熟。其品种齐全,功能繁多,已被广泛应用于工业控制的各个领域。用PLC来实现地铁变电站自动化的RTU功能,能够很好地满足“三遥”的要求。本系统采用了Modicon Quantum系列PLC,来实现变电站自动化的RTU功能。Quantum具有模块化,可扩展的体系结构,用于工业和制造过程实时控制。对应于变电站的电压等级和点数的多少,可以选用大、中、小型不同容量的PLC产品。
随着当地保护装置功能的日益强大,可以通过与保护装置的通讯来实现遥控和遥信功能。一些特殊要求的情况下,采用DI、DO、AI模块来实现遥控和遥信。使用PLC的DI模块来实现遥信、用PLC的DO模块来实现遥控、用PLC的AI模块来实现遥测、用PLC的通信功来完成与微机保护单元的通讯。利用PLC的各种模块可以很方便的实现“三遥”基本功能。
3 地铁变电站自动化系统设计
3.1 系统结构
变电站管理单元内的主监控部分采用可编程控制器PLC。CPU模块采用80586处理器,主频66MHz,内存2M,并配有存放数据、可调参数和软件的 RAM和FLASH MEMORY。能对CPU及I/O进行自诊断。
电源模块,采用冗余配置。电源采用冗余配置,系统输入两路直流电源,保证系统在1路电源失电时,系统仍可无扰动安全运行,提高系统的可靠性。通讯模块采用Modbus+通讯模块。
间隔层的微机保护装置经过RS-485总线分成几个组,连接到网桥的Modbus通讯口上,通过网桥收集数据并将这些数据通过MB+网络送到主监控单元PLC。
系统的主监控单元可通过可编程网桥编制不同的规约,满足与不同智能设备之间的接口需要。MODBUS网桥NW-BM85C002 MB+网桥/多路转换器,每台网桥具有4个通讯口与间隔层的智能设备通讯,网桥将MODBUS协议的数据进行协议转化,通过MB+网络与PLC建立网络通讯;同时在*信号屏中还配有可编程网桥NW-BM85C485,通过MB+网络与PLC连接,每个可编程网桥具有四个通讯协议可编程的RS-485口,在本方案中对其中的两个口进行编程,使之通过IEC-60870-7-101与中央控制中心通讯。
系统网络通讯层向上通过可编程网桥的RS-422接口采用IEC60870-5-101国际标准规约实现与控制中心通讯;向下网络通讯层通过网桥RS-422接口MODBUS标准规约实现与主变电站内的各开关柜或保护屏内的微机综合保护测控单元等智能装置通讯,满足变电所综合自动化系统控制、测量、保护的技术要求。通过网桥与智能设备及控制中心通讯,由网桥实现协议转换,降低PLC的CPU模块负荷率,提高系统的可靠性。
配置液晶显示器,用于变电所内监控、软件维护,设备调试,站控层操作等人机接口。带有液晶显示器实现站内数据的显示和控制。液晶显示以汉字实时显示所内所有事故、预告信号、所内各微机综合保护测控单元的运行状态。事件变位的内容、时间等。当多个事故信号同时发生时,液晶显示报置按新旧次序,在所内时间分辨率的范围内依次显示各种信息,并能存储。操作员通过按钮对显示进行选择,必要时操作员可通过该组操作按钮对开关进行所内集中控制。
“就地-远方”控制切换装置。为便于系统运行的需要,在*信号屏内装有“就地-远方”切换开关,实现就地控制和远方控制之间的方式切换和闭锁。在变电站控制上,方便分层控制和管理。
系统的电源采用冗余配置,系统输入两路直流电源,保证系统在一路电源失电时,系统仍可无扰动安全运行,提高系统的可靠性。
3.2 开放式、宜扩展性设计
可以与满足相应标准规约(profibus, spabus, modbus等)的其它公司相关的(IED)互联进行信息交换。充分考虑到变电站扩建、改造等因素,间隔层设备基于模块式标准化设计,可根据要求随意配置,变电站层设备设置灵活。
网络通讯层设计考虑到工业以太网、CAN、422、modbus+等现场总线的接口设计,能充分满足大流量实时数据传送的实时性和可靠性。
3.3 软件设计
PLC软件方面,由于PLC以循环扫描和中断两种方式来执行程序。为了完成所有RTU功能,PLC采用循环扫描方式,与各个间隔层保护单元进行通讯。通过Modbus总线,读取各个保护单元的遥测、遥信信息,同时通过总线通讯对各个智能保护装置进行设点操作,实现对开关的遥控功能。本系统采用了Quantum系列PLC配套的concept编程软件中的FBD方式,进行了PLC的组态,实现了变电站自动化的三遥功能。
如图2所示的遥控功能的组态。通过使用合适的功能块的组合,可以实现你所要的功能。其中的功能块有concept软件的FFB libarary 提供的标准功能块,也可以自己定义,自己*特的功能块。
遥信的实现,有两种方式。一种是通讯方式,当变电站设备发生变位时,通过PLC与智能保护装置的通讯,读取变位的信息到PLC中,并将其上送给控制中心。另一种为DI模块方式,通过连接设备的位置继电器,PLC的DI模块能够感知设备的变位信息。
遥测的实现也包含两种方式。一种是通讯方式,PLC通过与智能保护装置的通讯,实时获取保护装置的遥测量信息,相当于由保护装置完成现场级的采集功能。另一种为AI模块方式,由PLC自己来完成现场的遥测量,并将采集到的数据存放在RAM中。网桥将RAM中的遥测量信息,作为二级数据,实时的与控制中心进行通讯。
网桥中的报文接析程序分析控制中心传来的报文,如果分析认为其是遥控报文,对其进行报文解析,将获取的遥控对象信息写入PLC,由PLC程序与智能保护装置通讯,来完成遥控功能。
3.4 系统功能及特点
变电站自动化实施对变电站各种设备进行实时控制和数据采集,实现对各种设备的微机控制、监视、逻辑闭锁、微机测量以及实现所间开关联跳功能。
变电站自动化系统的特点:
(1) 完善的自检功能,除通过通信对各单元进行监控外,各单元中保护和监控模块都具有较强的自检功能,同时二者相互监视,一旦发生异常,及时报警,提高系统运行可靠性。
(2) 开关、闸状态信息采用常开及常闭双位置接点,通过软件判断其合法性。
(3) 监控系统采用PLC代替传统的RTU,各智能模块采集的数据通过现场总线上传到通讯控制器。
(4) 取消了常规光字牌,采用计算机模拟光字牌,并按不同电压等级的分层模式来显示。
(5) 简化防误闭锁设计,重要设备之间用硬接线实现闭锁功能,综合自动化软件具备软件逻辑判别功能,但考虑到已有运行和检修经验,一般不在后台软件中进行闭锁。
(6) 对暂态变位信号,经软件处理,采用自保持方式,未经人工确认信号不会消失。
4 结束语
在实际运行中,网桥与控制中心的双通道设计,给运营和检修带来了很大的便利。因为是软件自动切换,克服了进口系统手动切换通道的缺点,通道的状态由软件来判断,大大提高了发现问题的及时性。双通道同时出现故障的概率并不是很高,实际运营中有在备用通道长时间运行的情况,这样就给检修人员预留了充足的时间来检查问题。
PLC硬件由于应用工业级可靠性设计,因此实际运行中非常可靠,绝少出现死机的情况,可靠性远**采用bbbbbbs操作系统的通用计算机,很好的满足了供电监控的要求。从交付使用到现在PLC还没有出现过硬件故障,凸显了PLC对地铁的潮湿、高温环境的适应性。模块化的设计也使的系统的检修和更换更为便捷。
需要更改进的方面,就是对通信的改进。由于设计中没有采用光纤通讯模块,各设备对由绝缘检修和线缆破损窜进来的高压电,不能非常有效的隔离,会造成设备的高压击穿,造成不必要的损失,计划在今后的设计中对于高电压的隔离方面加以改进,就可以很好的避免这种问题。
产品推荐