当前位置:首页 > 代码 > 正文

scada图形编辑器源代码(scada开源)

admin 发布:2022-12-19 19:16 258


今天给各位分享scada图形编辑器源代码的知识,其中也会对scada开源进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

scada系统软件有哪些

国内组态软件基本都说做过SCADA系统,但最近表现挺好的是紫金桥软件公司推出的紫金桥组态6.0,紫金桥组态软件在燃气方面做过很多SCADA系统,另外还有在外网方面,天然气生产方面都有很成熟的案例。

100分急求电力调度自动化系统的一些制度和方案。

前 言

为了实现县级电网运行信息的集成和资源的整合,落实国家电网公司《农村电网自动化及通信系统技术导则Q/GDW 126-2005》的精神,实现县级电网调度自动化系统集约化和规范化改造和建设,全面提升县调管理水平,推动县调技术进步,我们组织编制了《东北电网有限公司县级电网调度自动化系统技术规范》,以指导和规范县级供电企业电网调度自动化系统的规划设计、建设、运行管理。

本规范书内容包括:系统总体要求、技术指标、系统配置和系统功能等。本技术规范将主站端控制系统进行整合,将各应用功能进行集成,在统一的技术支持平台上实现县级电网调度和生产控制的功能。

县级电网调度自动化系统通信部分以通信专业技术规范执行。

本《规范》由东北电网有限公司营销与农电管理部负责编制并解释。

1 总则

1.1 适用范围

本技术规范规定了“十一五”期间东北电网有限公司县级电网调度自动化主站系统(以下简称县调主站系统)建设目标、建设原则、系统结构、建设模式、应用功能规范和性能指标。

本技术规范是“十一五”期间东北电网有限公司县级电网调度自动化主站系统规划、设计、建设、改造、验收和运行的主要技术依据。

1.2 引用标准

IEEE- 802.X 系列局域网通信标准

IEC 61970 能量管理系统应用程序接口标准

IEC 61968 配网管理系统接口标准

IEC 60870-5(所有部分) 远动设备及系统 第5部分:传输规约

GB/T 13730 地区电网数据采集与监控系统通用技术条件

GB/T 13729 远动终端设备

DL/T 634.5101 远动设备及系统 第5-101部分:传输规约 基本远动任务配套标准

DL/T 634.5104 远动设备及系统 第5-104部分:传输规约 采用标准传输协议子集的IEC 60870-5-101网络访问

DL/T 516 电力调度自动化系统运行管理规程

DL/T 550 地区电网调度自动化功能规范

DL/T 5003 电力系统调度自动化设计技术规程

DL/T 5002 地区电网调度自动化设计技术规程

DL/T 635 县级电网调度自动化系统功能规范

DL/T 789 县级电网调度自动化系统实用化要求及验收

DL/T 721 配电网自动化系统远方终端

DL 451 循环式远动规约

DL 476 电力系统实时数据通信应用层协议

国家电监会令[2004] 第5号 电力二次系统安全防护规定

电监安全[2006]34号文 地、县级调度中心二次系统安全防护方案

国家经贸委令[2002]第30号 电网和电厂计算机监控系统及调度数据网络安全防护规定

国家电网公司Q/GDW 126-2005 农村电网自动化及通信系统技术导则

1.3 建设原则

⑴县级电网调度自动化系统(以下简称县调系统)的规划、设计和建设应参照相关国际标准,遵循相关国家标准、电力行业标准、国网公司企业标准以及相关国家部委技术文件的规定,统一规划、统一设计、重在实用、适当超前。

⑵ 县调系统的功能和配置应以县级电网一次系统的规模、结构以及运行管理的要求为依据,与一次电网的发展规模相适应,满足一次电网未来8年以上调度运行管理及变电运行管理的发展要求,确保电网的安全、优质、经济运行。

⑶ 县调系统应为电网提供监测、分析和控制功能的综合性业务服务平台,符合一体化系统设计和信息数据整合的技术要求,把县调系统建设成为电网调度、集中监控、运行操作的实时控制平台。

⑷ 县调系统采用一体化设计,应稳定可靠运行,快速准确地采集和处理电网的各种信息量,及时反应电网运行情况。具有良好的在线可扩展性,维护简便,满足电力系统二次安全防护的要求。在任何情况下,不能因本系统的缺陷导致一次系统的事故。

2 系统体系结构

2.1 总体要求

2.1.1 标准性

县调系统应遵循国际国内标准,操作系统采用Unix/ Windows;数据模型设计参考IEC 61970 CIM标准的思想,系统接口设计参考IEC 61970 CIS标准的思想;配网自动化数据模型参考IEC 61968标准的思想;数据网络通信采用TCP/IP协议,商用数据库访问遵循ANSI SQL标准;人机界面GUI采用Windows GDI+ 标准;通讯规约应满足IEEE、IEC标准或国家相关标准。

2.1.2 一体化设计

县调系统必须遵循一体化设计思想,采用分布式系统结构,在统一的支撑平台的基础上,可灵活扩展、集成和整合各种应用功能,各种应用功能的实现和使用应具有统一的数据库模型、人机交互界面,并能进行统一维护。

2.1.3 Unix/Windows混合平台

县调系统中所有服务器选择Unix硬件和操作系统平台,工作站选用PC和Windows操作系统,主要的数据采集、处理、发布节点可选择Unix处理平台,人机交互界面操作宜采用Windows平台。

2.1.4 可靠性

⑴ 系统的重要单元或单元的重要部件应为冗余配置,保证整个系统功能的可靠性不受单个故障的影响。

⑵ 系统应能够隔离故障,切除故障应不影响其它各节点的正常运行,并保证故障恢复过程快速而平稳。

⑶ 硬件设备的可靠性:县调系统所选设备应是符合现代工业标准,并具有相当的生产历史,在国内计算机领域占有一定比例的标准产品。所有设备具有可靠的质量保证和完善的售后服务保证。

⑷ 软件设计的可靠性:软件的开发应遵循软件工程的方法,经过充分测试,程序运行稳定可靠,系统软件平台应选择可靠和安全的版本。

⑸ 系统集成的可靠性:不同厂家的软、硬件产品应遵循共同的国际国内标准,以保证不同产品集成在一起能可靠地协调工作。

2.1.5 安全性

⑴ 系统应具有高度的安全保障特性,能保证数据的安全和具备一定的保密措施,执行重要功能的设备应具有冗余备份。系统运行数据要有双机热备份,防止意外丢失。

⑵ 系统应构筑坚固有效的专用防火墙和数据访问机制,最大限度地阻止从外部对系统的非法侵入,有效地防止以非正常的方式对系统软、硬件设置及各种数据进行访问、更改等操作。

⑶ 调度自动化系统与其它电力监控系统之间(变电站DCS监控系统)应是相对独立的关系。

⑷ 禁止非电力监控系统对调度自动化系统数据的直接调用。

⑸ 系统应实现主机加固。

⑹ 系统的管理上应采取各种措施防止内部人员对系统软硬件资源、数据的非法利用,对计算机病毒的防护应覆盖调度自动化系统的所有服务器和工作站,提供定期、及时更新病毒代码的机制,严格控制各种计算机病毒的侵入与扩散。

2.1.6 开放性

⑴ 支撑平台的各功能模块和各应用功能应提供统一标准接口,支持用户和第三方应用软件程序的开发,保证能和其它系统互联和集成。

⑵ 系统应具有良好的软件和硬件在线可扩展性,可以逐步建设、逐步扩充、逐步升级,不影响系统正常运行。

⑶ 系统容量可扩充,包括可接入的厂站数量、系统数据库的容量等,不应该有不合理的设计容量限制,从而能使系统可以整体设计、分步实施。

2.1.7 易用性

⑴ 系统应采用图模库一体化技术,方便系统维护人员画图、建模、建库,图模库一次生成,并保证三者数据的同步性和一致性。

⑵ 需对用户提供系统编译运行环境,以保证在软件修改和新模块增加时用户能独立生成可运行的完整系统。

⑶ 必须提供完整的技术资料(至少包括用户使用、维护及版本更新等相关手册以及第三方提供的技术资料)。

⑷ 操作应提供在线帮助功能,系统维护应具有流程和向导功能。

⑸ 应具备简便、易用的维护诊断工具,使系统维护人员可以迅速、准确地确定异常和故障发生的位置和原因。

2.2 系统软件结构

县调系统的软件体系结构由操作系统、支撑平台、应用功能共三个层次组成,层次结构图见下图1。其中:

1.操作系统可根据硬件平台选用Unix、Windows、Linux。

2.支撑平台为各种应用功能的实现提供通用的支撑服务。支撑平台提供以下的通用服务功能:网络数据传输、实时数据处理、历史数据处理、图形界面、报表、系统管理、权限管理、告警、计算等。

3.本期应用功能包括SCADA功能,集控监控功能,安全WEB数据发布功能等。

根据远期发展可选择电网分析功能(网络建模、网络拓扑、电压无功优化、状态估计、调度员潮流、负荷预报),配电自动化功能,操作安全约束系统等。

1.1 系统硬件结构

本期县调自动化系统采用双机双网结构,主要硬件设备采用冗余配置,避免单点硬件故障导致系统瘫痪。典型的系统配置包括:独立的数据采集网段;主网采用双网结构;主系统由两台数据采集服务器、两台数据服务器、两台调度员工作站、两台监控工作站、一台报表工作站、一台维护员工作站组成;设置一台物理隔离装置和WEB服务器实现信息的安全发布功能。

1.1.1 网络数据传输设备

网络数据采集设备包括前置采集交换机和主网络交换机,网络采用冗余交换式以太网结构。网络交换速率采用100M/1000M自适应。网络结构满足以下要求:

1.单网故障或单点网络故障不影响系统功能运行。

2.主网络交换机可具有SNMP网络管理协议,可以对交换机进行在线监视和控制,如端口运行工况、网络流量等。

1.1.2 数据通信与采集

数据通信与采集是整个系统的基础数据来源与控制通道,其组成包括前置数据采集服务器、串行通信设备、时间同步装置等。

通道及厂站装置冗余配置且正常工作条件下,前置数据采集服务器应分别使用不同的通道与厂站装置一一通信,实现负载均衡,通信资源优化利用。

前置数据采集服务器可配置PC服务器,应冗余配置。两台数据采集服务器按照主备热备用工作方式。

串行通信设备包括模拟通道板、数字通道板、终端服务器或路由器等。终端服务器用于常规远动串行通道接入,路由器和2M网络专线用于与网络RTU、RTU通过终端服务器接入数据网、综合自动化系统、上下级控制中心之间的通信。

1.1.3 数据服务器

数据服务器由两台PC服务器组成。数据服务器一方面运行商用数据库管理系统;另一方面承担数据处理、数据存贮、数据分发、数据检索、双服务器之间数据同步功能。两台数据服务器采用主备热备用工作机制,可以实现无扰动自动/手动切换,在切换过程中应保证数据不丢失。

1.1.4 人机界面交互工作站

人机界面交互工作站选用主流Windows图形工作站,可根据需要配置单屏或多屏显示器,并具有多媒体功能。主要的人机工作站有:调度员工作站、监控工作站、报表工作站、维护工作站等。

1.调度员工作站:完成对电网的各种实时监视功能;

2.监控工作站:完成对电网的各种实时监视和安全操作功能;

3.报表工作站:主要进行报表的维护和打印;

4.维护工作站:进行系统的数据库录入、画面编辑、报表制作以及系统性能调整工作。

1.1.5 WEB服务器

按照国调中心二次安全防护的要求,安全WEB发布与主系统相对独立,但图形、实时数据、历史数据等保持一致。WEB服务器应选用PC服务器。在I区和III区之间布置电力专用隔离装置,用于从内网向外网的单向通信,同步传送实时数据、历史数据、电量数据、各种统计数据、图形、报表、文件等,同时对I区的主系统形成保护,确保其不受病毒黑客等的攻击。

在WEB服务器上应安装防火墙、防病毒软件。

2 支撑平台

支撑平台位于操作系统与应用功能之间,实现对所有应用功能的全面、通用服务和支撑,为应用功能的一体化集成提供平台,结构图见下图2。

支撑平台应提供以下通用服务:网络数据传输、实时数据处理、历史数据处理、图形界面、报表、系统管理、权限管理、告警、计算等。

支撑平台应提供标准的服务访问或编程接口,支持用户新应用软件的开发以及第三方软件的集成。

1.1 系统运行环境

1.1.1 操作系统

选用Unix/Winodws的主流通用版本,并应及时安装相应系统补丁,确保上层应用软件的稳定可靠运行。

1.1.2 商用数据库

应选用主流商用数据库管理系统,推荐选用Oracle 9i和SQL Server2003等。

1.1.3 其它工具软件

在系统相应的节点上应根据实际需求安装C/C++/Java编译和运行环境、MS Office软件、防病毒软件、防火墙软件等。第三方软件的安装必须考虑与操作系统和应用软件的兼容性,并具有合法的使用授权。

1.2 支撑平台

1.2.1 网络数据传输

网络数据传输应采用动态平衡双网技术,对底层网络数据传输进行封装,实现服务器和工作站各个节点之间透明的网络数据传输,同时可以监视网络流量、网络传输异常,并自动进行告警。具体应满足以下要求:

1.网络数据传输应采用TCP/IP协议的分布式网络管理软件,可与各种网络设备相匹配。

2.网络数据传输应提供标准的应用程序接口,上层应用功能和用户开发的软件均通过此接口实现进程之间的透明网络通信。

3.网络数据传输应能支持单网、双网或单双网混合。

4.网络数据传输应采用动态双网平衡分流技术,正常工作时采用两个网段同时进行数据传输,异常情况下则通过动态网络路径管理将两种流量合并。

5.网络数据传输应能监视网络上所有节点的网络通信状态,自动监视和统计网络流量,自动诊断交换机故障和节点网卡故障,并具有网络异常和网卡故障告警功能。

1.2.2 实时数据处理

实时数据处理应采用C/S分布式结构,并借鉴IEC 61970 CIM数据模型,实现高效的实时数据处理、存取和管理。具体应满足以下要求:

1.应面向电力设备和网络,借鉴IEC 61970 CIM模型建立系统数据模型。

2.应基于C/S模式实现分布式的实时数据库管理。

3.支持实时态、研究态等多态。

4. 支持多应用:前置、SCADA、集控监控等。

5.实时数据库提供各种访问接口,包括本地接口与网络接口。

6.应提供简便易用的基于CIM模型思想的实时数据库浏览、录入和维护的图形界面,所有的修改操作都有历史记录,以备查询。

7.应提供CIM模型数据智能快速变换、录入和校核功能。

8.应提供CIM模型倒出工具,实现系统之间模型的互换,并具备自动/手动两种手段。

9.提供基于CIM模型的数据检索器。

1.2.3 历史数据处理

历史数据处理主要用于实现系统与商用数据库的交互,实现各种数据在商用数据库中的存贮与管理。应满足以下功能:

1.系统应提供访问历史数据库的接口和相关数据操作工具包,进行历史数据的查询和处理。

2.对商用数据库的访问应按照三层结构(客户-服务进程-商用数据库),客户进程不能直接访问数据服务器上的商用数据库,必须通过部署在数据服务器上的服务进程实现对商用数据库的访问。

3.商用数据库中的历史数据类型应至少包括下列内容:量测数据、统计计算数据、状态数据、事件/告警信息、SOE信息、事故追忆数据、趋势数据及曲线、预测数据、计划数据、应用软件计算结果断面、其它数据。

4.可灵活定义商用数据库历史采样数据的时间周期。

5.数据的保存:所有采样数据、事件、告警等信息至少保存1年。

6.应提供简单方便易操作的数据库备份和恢复工具,能按照表空间进行数据的备份和还原。能方便地在两个商用数据库之间进行数据库中的数据及结构比较功能。提供灵活方便的数据库维护工具。

7.具有灵活的历史数据统计、分析、处理和显示功能,具有灵活的查询和分析功能。

8.应具有商用数据库故障隔离与告警功能。

9.应具有基于动态SQL模板实现对各种历史事件告警数据的查询功能。

10.商用数据库应具备以下告警功能:商用数据库异常告警,数据库磁盘空间告警,表空间告警,表记录最大个数告警,数据库状态告警。

1.2.4 图形界面

图形界面主要采用图模库一体化技术以及多应用数据切换技术,实现矢量化、多平面、多层次的一体化图形系统。主要的功能包括图形编辑、图元编辑、间隔编辑、图形浏览功能。

系统的人机界面应采用面向对象技术,采用图模库一体化技术,建立多平面多层次矢量化无级缩放图形系统,生成单线图的同时,自动建立网络模型和网络库。需具备全图形人机界面,画面可以显示来自不同分布服务器节点的数据。系统的所有应用均应采用统一的人机界面。

系统应提供灵活、方便和丰富的图形编辑功能,可以利用系统自备的图元与用户编辑的图元,自主地定制各种接线图、目录、曲线等。

系统应提供按照面向对象的方法设计的基于CIM思想的图库一体化技术,提供一套先进的图形制导工具,图形和数据库录入一体化,作图的同时可在图形上录入数据库,使作图和录入数据一次完成,自动建立图形上的设备和数据库中的数据的对应关系。

系统应提供一套的图形应用切换技术。对于一个厂站而言,使用同一幅图形,采用多图层技术将不同应用共用的图形元素以及独特的图形元素都画在同一幅图里,在用户调出图形后,根据用户所选择的不同应用,图形系统自动识别显示该应用下的内容。

在一次接线图上可以实现多应用数据的自动比对功能。

提供子图的编辑和保存功能:对于系统中各种典型的间隔,可以预先在图形编辑器中编辑生成,保存为子图,作为一个整体直接加入一次接线图进行编辑。

提供图形模板的编辑、生成和浏览功能。

快速建设设备图元之间的拓扑关系,快速实现设备图元与数据库之间的关联关系。

自动检查和校核图形上连接关系的正确性,实现拓扑关系自动入库,自动生成设备的标注和测点。

1.2.5 报表服务

系统应具有与Microsoft Excel兼容的报表管理系统,运行于报表工作站上。

报表服务器应具有报表定义编辑、显示、存储、打印等功能,并且在兼容Microsoft Excel的基础上增加便于制作电力系统报表的数据定义功能。

支持在DMIS或MIS网上任何普通PC机上使用Excel制作报表,然后通过调用报表服务器数据库接口获得相关数据。

报表系统应支持对历史数据的修改功能,历史数据修改功能需要在报表服务器上完成。

曲线、棒图和饼图能添加到报表上,与电力系统运行相关的说明和注释也能由调度员在线写入到报表中并且能支持汉字,同时报表系统应提供调度员备忘录功能。

系统提供的各种查询工具,其结果应能通过报表显示和打印。

可灵活定义和生成时报、日报、周报、月报、季报及年报等,报表的生成时间、内容、格式和打印时间可由用户定义。

1.2.6 权限管理

1.按照功能、角色、用户、组和属性来构建权限体系;

2.系统管理员缺省情况下不具有遥控权限;

3.可以灵活定义责任区,建立责任区、人员、机器之间的关联关系。

1.2.7 告警

1.能够灵活处理电力系统事故或计算机系统故障时系统产生告警信息源。

2.具有灵活的告警方式组合。

3.当告警原因消除后,该告警显示能够自动撤消。

4.登录告警并由操作员确认。

5.用户可以预先定义告警事件的类别和级别以及选择告警方式,并提供告警信息的分类、统计、检索和历史存储功能,还可根据用户需要调节告警信息的存储量。

1.2.8 计算服务

计算引擎能够完成用户各种计算功能,使数据库具有动态特性。系统应提供支持ANSI C的全C语言计算引擎,通过自定义各种C语言公式来完成各种计算,在用户不用编程的情况下,能对数据库的点定义特定的计算。用户定义的计算没有限制。

1.可采用C语言内置的标准运算函数,如abs,三角运算等;可采用C语言提供的所有操作符和运算符;提供C语言全部的控制结构支持,如if then else 条件语句,for循环语句,while循环语句,switch分支结构等;支持变量定义,函数调用等C语言功能。

2.可引用数据库中的任何数据进行计算。。

3.计算周期可由用户在线设定或修改。

4.通过图形拖拽等技术快速方便的生成公式。

5.应能自动判断公式的定义出错信息。

6.公式的优先级可自动计算,自动判断公式的先后计算顺序。

7.应提供公式的正确性校核工具,并在公式修改完成后自动实现校核,并给出相关告警提示。

2 系统应用功能

系统的应用功能主要采集、处理厂站端综自/RTU数据、配网信息等数据,通过对控制系统和功能应用的集成,实现对电网的实时监视、分析和控制。

本期系统应具备数据采集功能,SCADA功能,集控监控功能,安全WEB数据发布功能等。

根据远期建设可扩展电网分析功能(网络建模、网络拓扑、根据实际需要选择状态估计、调度员潮流、负荷预报),电压无功优化AVQC功能,配电自动化、遥控操作安全约束系统等功能。

2.1 数据采集功能

SCADA前置系统完成数据采集功能。前置系统通过与各远方RTU或变电站综合自动化系统的通信实现对电网实时运行信息的采集,将其接收到的实时数据通过网络点对点通信方式写入到系统的实时数据库中去。前置系统同时接收用户控制命令,通过向远方终端下达控制命令实现对远方站的调控功能。前置系统在调度自动化系统中处于非常关键的地位,要求其必须具有高度的可靠性和强大的信息处理能力。

前置系统应必须具有以下功能:

1.与RTU或综合自动化系统的通信,包括CDT、Polling方式,采用的规约包括点对点通信的部颁CDT规约、IEC60870-5-101规约、DNP3.0、SC-1801等,以及网络通信的IEC60870-5-104规约。

2.支持全双工方式通信。传输速率300,600,1200,2400,4800,9600bps可选。

3.能够接收处理不同格式的遥测量,遥信量、脉冲量,并处理为系统要求的统一格式。

4.能够接收、处理厂站端的SOE事件信息。

5.能够实现对厂站端的遥控、遥调、对时等下行信息。

6.可以单通道或双通道方式收发同一厂站端数据。双通道工作时,可各自使用不同通信模式(数字或模拟通信),并能根据通道状态切换主/备通道。

7.可以同时采用一路网络、一路专线方式收发同一厂站端数据。网络、专线同时工作时,可各自使用不同的通信规约,并能根据需要进行主/备切换。

8.支持一点多址通信方式。

9.可接收同步/异步通道信号。

10.具有对通信过程监视诊断,统计通道停运时间。

11.能在线关闭和打开指定通道,可动态复位通讯口。

12.具有与GPS时钟接口。

13以厂站为单位分类组织实时数据:

遥测量YC(模拟量):带符号二进制数。

遥信量YX(数字量)

电度量YM(脉冲累计量或数字量)

事件顺序记录(SOE):在数据库内循环记录。

14.前置系统采用双机互为热备用工作方式的冗余配置,由系统运行管理软件监视其运行状态,支持手动或自动切换功能。

15.前置系统应交互方便、人机界面友好。其人机界面应提供如下功能:

各厂站通信原码监视,显示报文帧格式数据。应具有通信原码报文录制存盘功能。

对前置机系统配置库进行管理,如:插入、删除、修改。

修改和设置通道参数和厂站参数。

16.以厂站为单位分类组织的远动信息监视:遥测YC、遥信YX、电度YM、厂站的SOE数据以及通道状态的监视。

2.2 SCADA功能

系统SCADA功能主要是将前置系统采集的各类数据进行处理,并进行计算和统计,将其结果显示、打印和保存,实现对电网运行状态的实时监视,实现对各类事件、事故的分析,如:极值潮流、经济运行、安全监视等。

2.2.1 数据采集

1.模拟量

模拟量包括:有功功率、无功功率、电流、电压、频率及其它测量值。

可设定每个模拟量的限值范围,仅把超过限值具备变化的值发送给控制系统,每个模拟量的限值范围可在工作站通过人机界面设定。

2.状态量

状态量包括:断路器位置、事故跳闸总信号、预告信号、刀闸位置、有载调压变压器抽头位置、主保护动作信号、事件顺序记录、RTU状态信号、系统各工作站状态信号等。

3.脉冲量

脉冲量包括:各厂站RTU脉冲电能量等。

4.保护及综合自动化信息

系统对RTU除完成远动四遥功能之外,对已安装变电站微机保护及综合自动化系统的厂站亦可完成相应的保护数据采集及控制功能。包括:

接收并处理保护开关状态量

接收并处理保护测量值量

接收保护定值信息

远方传送、设定、修改保护定值

接收保护故障动作信息

接收保护装置自检信息

保护信号复归

2.2.2 数据处理

2.2.2.1 模拟量处理

1.每个模拟量可根据不同的时间或其他条件设置多组限值,系统应提供方便的界面让用户手动进行限值的切换。

2.允许人工设置数据,MMI上的画面数据需用颜色区分并提供列表。

3.自动统计记录任意采样模拟量的极值及其发生时间,自动统计记录任意采样模拟量每日的电度量,并作为历史数据供查阅和再加工。

4.对于不同数据,包括未被初始化的数据、可疑数据、不刷新数据及不可用数据及人工置数数据都需有不同质量标志。

5.应提供自动/手动两种方式下的旁路代和对端代功能及实时列表,并且不影响被代数据的各种运算结果。

6.旁路代时自动根据旁路量测值进行限值判断,以免因量测为0而没有正确判断出越限的情况。

7.提供遥测越限延时(可调)处理功能,如某一遥测越限并保持设置的时间后,才作告警。

2.2.2.2 状态量处理

状态量包括开关量和多状态的数字量。系统对状态量的处理应采用“遥信变位+周期刷新”的信息传送机制,以保证相关信息能快速准确的传送至后台。

1.状态量的极性处理

状态量的极性统一规定为“1”表示合闸状态,“0”表示分闸状态,并可进行反极性修改和处理。

2.状态量根据不同的性质发出不同的报警,并进入不同的分类栏。

3.状态量的事故判别

根据事故总信号或保护信号与开关变位,并结合相关遥测量(归零,时延由用户设定)判断事故跳闸。

4.状态量操作

对状态量的操作分为:

(1) 封锁(人工设置)指定遥信的合/分状态,封锁后可有颜色变化。

(2) 解除/封锁指定遥信的合/分状态。

(3) 抑制/恢复告警。

5.多态数据处理

为了表示电网中有关设备的运行状态,一个状态量应具有多个状态,系统能对同一状态量的多个状态进行不同的处理。

6.其他处理

(1) 对于可疑信号在数据库中应标明身份,并在人机界面(MMI)上显示。

太长,发不了。告知邮箱

哪有基本矢量绘图系统的源码

一、系统概述介绍一个应用于供配电的图纸中能实现与电网数据库连接的矢量绘图与参数处理系统,采用了面向对象的可视化编程语言.从图元直接输入、修改电力系统接线图的属性参数,后台数据库同步接受与更新,系统采用开放式子图库使绘图、数据管理、分析计算均在同一操作平台内完成,使用户完全感觉不到图形与数据天然分离。本系统共分五部分:人机界面、图形绘制和编辑、数据库、分析计算、结果输出。本系统具有常用的图形功能和友好的人机界面。用户进人主界面后,可进行电气图形的绘制、编辑和标注。直接从图形中对数据进行添加、修改、删除等操作,结果自动存人后台的数据库中,为下一步的分析计算作好准备本系统的主要功能有:①绘制各种电气接线图②实现图形与数据库的连接,自动为分析计算提供与图形对应的数据表;③进行供配电系统的分析计算,含潮流、短路及继电保护整定计算;①报表及图形等输人、输出。本系统还有以下特点:①全系统以一种高级语言为主编制,使高效的绘图组件(Visual Graph),数据库管理和分析计算三者一体化,占用运行空间小,使用效率高,消除了软件环境的转换带来的繁琐人工操作等不良影响;②采用工业上的电力行业的矢最绘图,快速开发;③灵活开放式图库建模系统。二、人机界面设计系统界面由一个主窗口,18个数据输人、显示窗口和4个模块构成。采用了Windows编程风格,形成了多层次树状菜单结构,制作了多种下拉式和弹出式菜单,工具条,状态条,让图形编辑,图元复用,数据关联,设备枚举列表,仿真分析,拔掉效验等都完美集合中一个界面上等等。三、数据输人输出窗口数据输人窗采用了DataBase控件捆绑待显示的数据库,再用一系列文本框绑定不同的字段名。当用户双击某图形元件时,即弹出相应的数据输人窗口可添加新数据,也可对数据库表进行修改和删除。借此达到图文并茂、形象直观的效果。现设有电源、变压器调相机、电动机、线路、电抗器等常用设备的数据窗门。窗口数据与数据库对应表中的数据同步变更。四、数据库设计可以采用Microsoft公司的SqlServer数据库系统或Oracle公司的Oracle数据库管理系统,数据库是一种功能强,使用方便的关系数据库,一般的计算机语言都提供基于数据库引擎对数据访问能力,可以创建、打开、编辑、修改、更新数据的结构,数据库文件包括许多独立或相关的表,每个表都有对应的字段和记录。该数据库还支持结构化查询语SQL.使数据库的兼容性大大提高 这样可将不同图形的数据同步,减少数据库文件的查找上作量,也可以更好实现数据资源的共享及转化,加强系统的可扩性,为了适应分析计算的使用,系统使用了3种数据方式,即数据库与顺序、随机文件方式,对图形数据,元件参数和计算结果数据这3类数据进行处理,全过程利用可视化语言面向对象的程序没计方法,在输人输出图形界面中进行,图形数据在绘图时自动生成,元件参数通过输人窗口输人,计算分析模块自动调用,最后结果以报表及图形方式输出。数据库设计示例:对于双绕组变压器数据表,有以下一些字段;名称、额定容量、一、二次额定电压、短路电压、空载电流、短路损耗、空载损耗、电阻、电抗、一、二次节点编号、一、二次cr变比、一二次绕组结线等等,分别存储相应的元件参数。元件参数采用易获得的铭牌数据,电阻、电抗自动计算显示,既省去r用户的手工计算,也提高了计算的准确性五、图形编辑建模设计由于图形界面的设计复杂性较高,所以一般都会购买第三方的图形平台作为自己系统的图形模块,在这里我推荐北京图王的Visual Graph图形引擎平台。以下再讲解一下电力图形的设计电力系统的图形多数为规则平面图,并且都是由一些基本元件组成的最简单的元件是点和线,在此基础上,将有规律且使用频率较高的图形也作为元件处理,称为子图。线、圆、弧、矩形是组成子图的元件,也是最简单的子图,而子图又是整张图的组成元件,简单子图又是复杂子图的组成元件。本系统的特点之一就是采用矢量作图方法,具有节省存储空间、无级缩放、图形编辑方便的优点,同时采用了递归开放式的子图库,用户可根据需要随时指定某被编辑图形为子图而置于库中,随时调用,且具备子图所有功能。子图库中的元件是电气制图中的基本图形符号,每个基本图元由7个数据描述,即一个特征代码和6个参数,这些数据为:元件代码、图心坐标 x和v,旋转因子、放大倍数、颜色、线形。因此子图库实质是一系列图形数据的集合图形编辑模块提供了旋转、删除、重画、子图平移、整图平移、子图放大、子图缩小、整图放大、整图缩小等功能。标注是绘图不可缺少的部分,操作中用鼠标右键定位,点击后弹出一输人框,可在其中输人标注内容。标注的字体字号由菜单选择。图形的绘制和编辑在图片框内完成,窗体左边是子图列表,存放着已定义的图元,图元按序分页存放,由鼠标点击翻页按钮换页。绘制图形时,先在子图列表中选取所要画的子图,再在图片框的任一位置点击,即可在点击处绘制一相应元件图形,随后便可对其进行编辑,逐一将子图绘于图片框上,构成整幅图形。线、椭圆、圆、弧、矩形等基本图元由鼠标拖动画出。一个直接面向用户的图形编辑设计模块往往体现了系统的专业性与易用性。所以在购买第三方图形包是要慎重。六、电力分析计算模块分析计算模块分为多个子模块,分别完成短路计算,潮流计算及继电保护整定计算等功能,其结构较复杂设计原理不再多讲了,纯粹是业务上的分析与理论上的应用。电力应用:电力,图形,接线图,配图,操作票,线路图,SCADA,电力图符,电力图形编辑,电力信息,电力系统,电力技术,电力设备,电力管理,抄表,电网,PAS,线损,调度,仿真,无功优化,控制,远程载波,电网调度仿真:电网,调度,仿真,DTS,电力,图形,建模,培训,供电局,开发,设计,模型,架构,SCADA,RTU,线路,软件仿真,仿真算法库,发电厂,分析发电厂运行仿真分析:锅炉效率,锅炉各部漏风,汽机效率,煤耗率,热耗,汽耗及辅机单耗,图形,曲线,图表,设计缺限,设备老化,结垢积灰,煤质变化,环境温度,从机组点火,升温,升压,冲转,暖机,并网,带负荷,满负荷运行,停机,甩负荷,电动门,点开门,风门,调节门,PID调节器,联锁操作,并网操作,给定值设定,风机,泵类,电机启停,试验,优化分析,东方仿真,仿真模拟,仿真教学软件,辅助教学课件,理工科专业仿真软件,素材库,教学培训软件,工业培训,化工仿真,仿真实验,仿真实习,仿真培训,技能鉴定,技能培训

SCADA,DCS,FUS的区别?

一、SCADA,DCS,FUS的区别:

1、scada是综合监控系统,是一个软件+硬件的综合平台。

2、DCS是分布式控制系统,是一种类型的系统的名称。

3、PLC是可编程逻辑控制器,是一个设备。

二、

DCS与PLC的区别要点

1、DCS是一种“分散式控制系统”,而PLC(可编程控制器)只是一种控制“装置”,两者是“系统”与“装置”的区别。系统可以实现任何装置的功能与协调,PLC装置只实现本单元所具备的功能。

2、在网络方面,DCS网络是整个系统的中枢神经,它是安全可靠双冗余的高速通讯网络,系统的拓展性与开放性更好。而PLC因为基本上都为个体工作,其在与别的PLC或上位机进行通讯时,所采用的网络形式基本都是单网结构,网络协议也经常与国际标准不符。在网络安全上,PLC没有很好的保护措施。我们采用电源,CPU,网络双冗余。

3、DCS整体考虑方案,操作员站都具备工程师站功能,站与站之间在运行方案程序下装后是一种紧密联合的关系,任何站、任何功能、任何被控装置间都是相互连锁控制,协调控制;而单用PLC互相连接构成的系统,其站与站(PLC与PLC)之间的联系则是一种松散连接方式,是做不出协调控制的功能。

4、DCS在整个设计上就留有大量的可扩展性接口,外接系统或扩展系统都十分方便,PLC所搭接的整个系统完成后,想随意的增加或减少操作员站都是很难实现的。

5、DCS安全性:为保证DCS控制的设备的安全可靠,DCS采用了双冗余的控制单元,当重要控制单元出现故障时,都会有相关的冗余单元实时无扰的切换为工作单元,保证整个系统的安全可靠。PLC所搭接的系统基本没有冗余的概念,就更谈不上冗余控制策略。特别是当其某个PLC单元发生故障时,不得不将整个系统停下来,才能进行更换维护并需重新编程。所以DCS系统要比其安全可靠性上高一个等级。

6、系统软件,对各种工艺控制方案更新是DCS的一项最基本的功能,当某个方案发生变化后,工程师只需要在工程师站上将更改过的方案编译后,执行下装命令就可以了,下装过程是由系统自动完成的,不影响原控制方案运行。系统各种控制软件与算法可以将工艺要求控制对象控制精度提高。而对于PLC构成的系统来说,工作量极其庞大,首先需要确定所要编辑更新的是哪个PLC,然后要用与之对应的编译器进行程序编译,最后再用专用的机器(读写器)专门一对一的将程序传送给这个PLC,在系统调试期间,大量增加调试时间和调试成本,而且极其不利于日后的维护。在控制精度上相差甚远。这就决定了为什么在大中型控制项目中(500点以上),基本不采用全部由PLC所连接而成的系统的原因。

7、模块:DCS系统所有I/O模块都带有CPU,可以实现对采集及输出信号品质判断与标量变换,故障带电插拔,随机更换。而PLC模块只是简单电气转换单元,没有智能芯片,故障后相应单元全部瘫痪。

用JAVA实现的图形编辑器

楼主给你一个我的,直接保存成pb.java编译运行,就是你要的画图功能 ,可以参考一下

____________________________________________________________________

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import java.awt.geom.*;

import java.io.*;

class Point implements Serializable

{

int x,y;

Color col;

int tool;

int boarder;

Point(int x, int y, Color col, int tool, int boarder)

{

this.x = x;

this.y = y;

this.col = col;

this.tool = tool;

this.boarder = boarder;

}

}

class paintboard extends Frame implements ActionListener,MouseMotionListener,MouseListener,ItemListener

{

int x = -1, y = -1;

int con = 1;//画笔大小

int Econ = 5;//橡皮大小

int toolFlag = 0;//toolFlag:工具标记

//toolFlag工具对应表:

//(0--画笔);(1--橡皮);(2--清除);

//(3--直线);(4--圆);(5--矩形);

Color c = new Color(0,0,0); //画笔颜色

BasicStroke size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);//画笔粗细

Point cutflag = new Point(-1, -1, c, 6, con);//截断标志

Vector paintInfo = null;//点信息向量组

int n = 1;

FileInputStream picIn = null;

FileOutputStream picOut = null;

ObjectInputStream VIn = null;

ObjectOutputStream VOut = null;

// *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/

Panel toolPanel;

Button eraser, drLine,drCircle,drRect;

Button clear ,pen;

Choice ColChoice,SizeChoice,EraserChoice;

Button colchooser;

Label 颜色,大小B,大小E;

//保存功能

Button openPic,savePic;

FileDialog openPicture,savePicture;

paintboard(String s)

{

super(s);

addMouseMotionListener(this);

addMouseListener(this);

paintInfo = new Vector();

/*各工具按钮及选择项*/

//颜色选择

ColChoice = new Choice();

ColChoice.add("black");

ColChoice.add("red");

ColChoice.add("blue");

ColChoice.add("green");

ColChoice.addItemListener(this);

//画笔大小选择

SizeChoice = new Choice();

SizeChoice.add("1");

SizeChoice.add("3");

SizeChoice.add("5");

SizeChoice.add("7");

SizeChoice.add("9");

SizeChoice.addItemListener(this);

//橡皮大小选择

EraserChoice = new Choice();

EraserChoice.add("5");

EraserChoice.add("9");

EraserChoice.add("13");

EraserChoice.add("17");

EraserChoice.addItemListener(this);

////////////////////////////////////////////////////

toolPanel = new Panel();

clear = new Button("清除");

eraser = new Button("橡皮");

pen = new Button("画笔");

drLine = new Button("画直线");

drCircle = new Button("画圆形");

drRect = new Button("画矩形");

openPic = new Button("打开图画");

savePic = new Button("保存图画");

colchooser = new Button("显示调色板");

//各组件事件监听

clear.addActionListener(this);

eraser.addActionListener(this);

pen.addActionListener(this);

drLine.addActionListener(this);

drCircle.addActionListener(this);

drRect.addActionListener(this);

openPic.addActionListener(this);

savePic.addActionListener(this);

colchooser.addActionListener(this);

颜色 = new Label("画笔颜色",Label.CENTER);

大小B = new Label("画笔大小",Label.CENTER);

大小E = new Label("橡皮大小",Label.CENTER);

//面板添加组件

toolPanel.add(openPic);

toolPanel.add(savePic);

toolPanel.add(pen);

toolPanel.add(drLine);

toolPanel.add(drCircle);

toolPanel.add(drRect);

toolPanel.add(颜色); toolPanel.add(ColChoice);

toolPanel.add(大小B); toolPanel.add(SizeChoice);

toolPanel.add(colchooser);

toolPanel.add(eraser);

toolPanel.add(大小E); toolPanel.add(EraserChoice);

toolPanel.add(clear);

//工具面板到APPLET面板

add(toolPanel,BorderLayout.NORTH);

setBounds(60,60,900,600); setVisible(true);

validate();

//dialog for save and load

openPicture = new FileDialog(this,"打开图画",FileDialog.LOAD);

openPicture.setVisible(false);

savePicture = new FileDialog(this,"保存图画",FileDialog.SAVE);

savePicture.setVisible(false);

openPicture.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{ openPicture.setVisible(false); }

});

savePicture.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{ savePicture.setVisible(false); }

});

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{ System.exit(0);}

});

}

public void paint(Graphics g)

{

Graphics2D g2d = (Graphics2D)g;

Point p1,p2;

n = paintInfo.size();

if(toolFlag==2)

g.clearRect(0,0,getSize().width,getSize().height);//清除

for(int i=0; in ;i++){

p1 = (Point)paintInfo.elementAt(i);

p2 = (Point)paintInfo.elementAt(i+1);

size = new BasicStroke(p1.boarder,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

g2d.setColor(p1.col);

g2d.setStroke(size);

if(p1.tool==p2.tool)

{

switch(p1.tool)

{

case 0://画笔

Line2D line1 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y);

g2d.draw(line1);

break;

case 1://橡皮

g.clearRect(p1.x, p1.y, p1.boarder, p1.boarder);

break;

case 3://画直线

Line2D line2 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y);

g2d.draw(line2);

break;

case 4://画圆

Ellipse2D ellipse = new Ellipse2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y));

g2d.draw(ellipse);

break;

case 5://画矩形

Rectangle2D rect = new Rectangle2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y));

g2d.draw(rect);

break;

case 6://截断,跳过

i=i+1;

break;

default :

}//end switch

}//end if

}//end for

}

public void itemStateChanged(ItemEvent e)

{

if(e.getSource()==ColChoice)//预选颜色

{

String name = ColChoice.getSelectedItem();

if(name=="black")

{c = new Color(0,0,0); }

else if(name=="red")

{c = new Color(255,0,0);}

else if(name=="green")

{c = new Color(0,255,0);}

else if(name=="blue")

{c = new Color(0,0,255);}

}

else if(e.getSource()==SizeChoice)//画笔大小

{

String selected = SizeChoice.getSelectedItem();

if(selected=="1")

{

con = 1;

size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

}

else if(selected=="3")

{

con = 3;

size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

}

else if(selected=="5")

{con = 5;

size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

}

else if(selected=="7")

{con = 7;

size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

}

else if(selected=="9")

{con = 9;

size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

}

}

else if(e.getSource()==EraserChoice)//橡皮大小

{

String Esize = EraserChoice.getSelectedItem();

if(Esize=="5")

{ Econ = 5*2; }

else if(Esize=="9")

{ Econ = 9*2; }

else if(Esize=="13")

{ Econ = 13*2; }

else if(Esize=="17")

{ Econ = 17*3; }

}

}

public void mouseDragged(MouseEvent e)

{

Point p1 ;

switch(toolFlag){

case 0://画笔

x = (int)e.getX();

y = (int)e.getY();

p1 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p1);

repaint();

break;

case 1://橡皮

x = (int)e.getX();

y = (int)e.getY();

p1 = new Point(x, y, null, toolFlag, Econ);

paintInfo.addElement(p1);

repaint();

break;

default :

}

}

public void mouseMoved(MouseEvent e) {}

public void update(Graphics g)

{

paint(g);

}

public void mousePressed(MouseEvent e)

{

Point p2;

switch(toolFlag){

case 3://直线

x = (int)e.getX();

y = (int)e.getY();

p2 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p2);

break;

case 4: //圆

x = (int)e.getX();

y = (int)e.getY();

p2 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p2);

break;

case 5: //矩形

x = (int)e.getX();

y = (int)e.getY();

p2 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p2);

break;

default :

}

}

public void mouseReleased(MouseEvent e)

{

Point p3;

switch(toolFlag){

case 0://画笔

paintInfo.addElement(cutflag);

break;

case 1: //eraser

paintInfo.addElement(cutflag);

break;

case 3://直线

x = (int)e.getX();

y = (int)e.getY();

p3 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p3);

paintInfo.addElement(cutflag);

repaint();

break;

case 4: //圆

x = (int)e.getX();

y = (int)e.getY();

p3 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p3);

paintInfo.addElement(cutflag);

repaint();

break;

case 5: //矩形

x = (int)e.getX();

y = (int)e.getY();

p3 = new Point(x, y, c, toolFlag, con);

paintInfo.addElement(p3);

paintInfo.addElement(cutflag);

repaint();

break;

default:

}

}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==pen)//画笔

{toolFlag = 0;}

if(e.getSource()==eraser)//橡皮

{toolFlag = 1;}

if(e.getSource()==clear)//清除

{

toolFlag = 2;

paintInfo.removeAllElements();

repaint();

}

if(e.getSource()==drLine)//画线

{toolFlag = 3;}

if(e.getSource()==drCircle)//画圆

{toolFlag = 4;}

if(e.getSource()==drRect)//画矩形

{toolFlag = 5;}

if(e.getSource()==colchooser)//调色板

{

Color newColor = JColorChooser.showDialog(this,"调色板",c);

c = newColor;

}

if(e.getSource()==openPic)//打开图画

{

openPicture.setVisible(true);

if(openPicture.getFile()!=null)

{

int tempflag;

tempflag = toolFlag;

toolFlag = 2 ;

repaint();

try{

paintInfo.removeAllElements();

File filein = new File(openPicture.getDirectory(),openPicture.getFile());

picIn = new FileInputStream(filein);

VIn = new ObjectInputStream(picIn);

paintInfo = (Vector)VIn.readObject();

VIn.close();

repaint();

toolFlag = tempflag;

}

catch(ClassNotFoundException IOe2)

{

repaint();

toolFlag = tempflag;

System.out.println("can not read object");

}

catch(IOException IOe)

{

repaint();

toolFlag = tempflag;

System.out.println("can not read file");

}

}

}

if(e.getSource()==savePic)//保存图画

{

savePicture.setVisible(true);

try{

File fileout = new File(savePicture.getDirectory(),savePicture.getFile());

picOut = new FileOutputStream(fileout);

VOut = new ObjectOutputStream(picOut);

VOut.writeObject(paintInfo);

VOut.close();

}

catch(IOException IOe)

{

System.out.println("can not write object");

}

}

}

}//end paintboard

public class pb

{

public static void main(String args[])

{ new paintboard("画图程序"); }

}

我的IFIX在安装时设置成SCADA服务器,现在想设置为客户端,该如何设置?

编辑SCU(系统配置),在SCADA中 禁止SCADA支持。

网络中启用TCP/IP,配置远程节点名。远程节点名就是服务器IFIX节点名

将服务器名也就是服务器IFIX节点名和IP,写入客户机的HOST文件,

搞定!

scada图形编辑器源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于scada开源、scada图形编辑器源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/19859.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载