博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

RapidScada中文文档

Posted on 2022-06-18 16:41  风-  阅读(3842)  评论(0编辑  收藏  举报

Rapid SCADA

软件概述

软件用途和特点

Rapid SCADA 提供以下类型的自动化系统的创建:

  • 工业自动化系统。
  • 家庭自动化系统。
  • 能源核算系统。
  • 安全和火灾报警系统。
  • 访问控制系统。
  • 任何包含控制器、传感器和继电器的系统。

Rapid SCADA 是一种软件,可自动收集与控制器通信的数据、处理数据并向调度员提供信息。Rapid SCADA 支持常用的通信标准,如 Modbus 协议和 OPC,允许使用大量的各种设备。可以通过开发其他驱动程序来扩展支持的设备列表。

Rapid SCADA 由一组应用程序和库组成。该软件是一个平台,允许灵活的系统配置以满足客户的需求。Rapid SCADA 是开源软件,其内部数据格式和通信协议都有文档记录。这种方法简化了 Rapid SCADA 与其他应用程序的集成,以创建复杂的企业级解决方案。通过添加实现所需功能的自定义模块,可以增强 Rapid SCADA 的功能。

Rapid SCADA 中对信息和控制功能的访问受到用户权限的限制。使用 Active Directory 进行用户身份验证的能力显着提高了存储密码的安全性。使用 Active Directory 进行用户权限管理使系统管理员无需手动输入用户登录名和密码。

下表包含该软件的主要特征。

特征价值
支持的操作系统系列 视窗、Linux
最大输入通道数 65535
最大输出通道数 65535
最大通信线路数 65535
最大设备数 65535
最小当前数据写入周期 1秒
最短归档数据写入周期 30秒
最大归档数据存储期 10年
自动存档数据备份 是的
Active Directory 身份验证选项 是的
应用程序之间的通信协议 TCP
将应用程序和用户操作写入日志文件 是的
禁用遥控命令选项 是的
可扩展的功能 是的
该软件是开源的 是的

软件架构

Rapid SCADA 的架构是多层和分布式的(参见图 1)。应用程序可以在单个服务器或网络上的多台计算机上运行。控制器可以使用不同类型的通信通道连接到系统。决定系统配置的主要因素是设备位置的数量、它们之间的距离、最终用户活动的估计、外部系统的限制。

软件架构
图 1. 软件架构

Rapid SCADA 包括以下主要应用:

  1. Webstation是一个 Web 应用程序,它通过浏览器以不同的形式(表格、示意图、图表、报告)向调度员显示信息并提供发送命令。
  2. 服务器管理数据存档、执行数学计算并向客户端应用程序提供信息。
  3. Communicator与控制器交互,将数据传输到服务器应用程序。

使用 Web 技术提供数据访问显着简化了系统的部署和维护,这对于大量用户来说尤其重要。

系统控制的常用设备有电表、热量表、火灾和安全报警器、门禁控制器等设备。

应用说明

服务器应用程序

服务器管理数据存档、执行数学计算并向客户端应用程序提供信息。服务器将数据写入主存档并同时制作备份副本。

用于服务器配置的图形外壳
图 1. 用于服务器配置的图形外壳

服务器作为服务工作。它没有用户界面。无论用户登录和注销,服务器都会在后台连续运行。用于服务器配置的图形外壳内置于 Administrator 应用程序中(参见图 1)。

该应用程序在处理请求和传递命令时监视用户连接并检查用户权限。有关应用程序状态和执行操作的信息存储在文本日志文件中。服务器专为不间断运行而设计。

附加的服务器模块允许根据客户要求扩展服务器的功能。

通讯器应用程序

Communicator 与控制器交互并将数据传输到服务器应用程序。与连接到系统的控制器的通信跨多条线路并行执行。Communicator 接收来自控制器的当前数据、存档数据、事件并向控制器发送命令。该应用程序有助于解决通信线路和设备的问题。

Communicator 配置的图形外壳
图 1. Communicator 配置的图形外壳

Communicator 作为一项服务工作。用于 Communicator 配置的图形外壳内置于 Administrator 应用程序中(参见图 1)。有关应用程序、通信线路和每个连接设备的信息存储在日志文件中。Communicator 专为不间断运行而设计。

开发人员能够实现自己的设备驱动程序来与各种控制器进行交互。

网站应用

Webstation 是一个 Web 应用程序,它通过浏览器以不同的形式(表格、示意图、图表、报告等)向调度员显示信息并提供发送命令。报告以常用的 HTML 和 Microsoft Excel 格式生成。

网站应用程序。 方案视图
图 1. Webstation 应用程序。方案视图

网站应用程序。 表视图
图 2. Webstation 应用程序。表视图

用户可以选择视图(表格或方案)和日期来访问存档数据。要显示输入通道的图表,请单击表中的项目图标或方案中的适当元素。

Webstation 可从连接到组织网络的任何计算机或平板电脑上使用,无需安装任何软件。访问由定义用户权限的系统管理员管理。

Webstation 的功能可以通过附加插件进行扩展。例如,Chart Pro 插件扩展了 Rapid SCADA 图表的功能:添加缩放、显示多个图表、导出为 PNG 和 PDF。Elastic Report Plugin允许根据自定义配置生成报告。使用此插件,您可以构建几乎任何所需的报告。开发人员可以下载 Rapid SCADA 源代码和文档来学习如何实现插件。

代理应用

代理在 Rapid SCADA 实例和管理员应用程序之间传输配置。此外,Agent 提供了用于在 Administrator 中显示的日志文件。Agent 在安装了由 Agent 控制的 Rapid SCADA 实例的服务器上作为服务运行。Rapid SCADA 的一个实例包括 Server、Communicator 和 Webstation 应用程序,以及所有或部分这些应用程序。

代理通过 TCP 与管理员通信。因此,Administrator 可以与 Agent 安装在同一台计算机上,也可以安装在可通过网络访问的另一台计算机上。默认情况下,Agent 使用 TPC 端口 10002。在远程访问的情况下,服务器防火墙必须允许此端口上的传入连接。

代理没有用户界面。要检查其操作,请使用默认位置为 C:\SCADA\ScadaAgent\Log 的日志文件

管理员应用

Administrator 应用程序(参见图 1)旨在开发 Rapid SCADA 项目和监控自动化系统的状态。Administrator 是一个集成开发环境,提供编辑配置数据库、配置主要的 Rapid SCADA 应用程序、服务器模块和设备驱动程序。

管理员申请
图 1. 管理员应用程序

用于加快配置过程的管理员工具:

  • 导入和导出配置数据库表,用于项目之间的作品交流。
  • 自动创建输入和输出通道的向导。
  • 频道克隆功能可最大限度地减少手动输入。

一个项目包含一组配置文件,主要使用 XML 格式。这种方法可以轻松地将项目从一台计算机复制到另一台计算机。要控制项目版本和协作,Git 是最佳选择。

表格编辑器应用程序

表格编辑器应用程序旨在创建显示在操作员工作站上的表格视图。工程师在快速 SCADA 配置期间使用表格编辑器。

表格编辑器应用程序
图 1. 表编辑器应用程序

从窗口左窗格中的配置数据库中选择通道,并将它们添加到表视图中。表视图的内容显示在右窗格中。表格视图的隐藏项不会显示在Webstation应用程序中,但是在按视图过滤事件时它们是有意义的。

表编辑器通常通过在项目浏览器中双击表视图节点从管理员应用程序启动。编辑器的状态栏显示项目的配置数据库路径,其中包含正在编辑的表。

方案编辑器应用程序

方案编辑器应用程序旨在创建显示在操作员工作站上的方案。工程师在快速 SCADA 配置期间使用方案编辑器。

方案编辑器应用程序
图 1. 方案编辑器应用程序

方案由具有一组属性的文本和图形元素组成,这些属性定义了它们的外观和行为。静态元素显示不变的内容。动态元素绑定到配置数据库的通道,允许显示当前测量值和状态,绘制图表并通过用户单击发送命令。

路线图

主要特点 
Rapid SCADA项目的统一开发环境 完全的
用于与远程服务器交互的代理应用程序 完全的
申请自动生成和发送报告 完全的
计划 
将方案组件的任何属性绑定到输入通道 不包括在计划中
新方案组件 感谢社区帮助
方案的新图像 感谢社区帮助
通讯器驱动程序 
Modbus 从驱动程序 完全的
IEC-61850 驱动器 感谢社区帮助
BACnet 驱动程序 感谢社区帮助
任何新的驱动程序 感谢社区帮助
服务器模块 
语音模块 感谢社区帮助
任何新模块 感谢社区帮助
网站插件 
根据用户反馈更新 Chart Pro 插件 完全的
仪表板插件的改进 不包括在计划中
开发用于下载和上传档案的插件 不包括在计划中
任何新插件 感谢社区帮助

安装和运行

系统要求

Windows 服务器软件要求

  • 操作系统:Microsoft Windows Server 2008 R2 SP1 或更高版本、Microsoft Windows 7 SP1 或更高版本。
  • 微软 .NET 框架 4.7.2。
  • 部署 Web 应用程序需要 Microsoft IIS。

Linux 服务器软件要求

  • 操作系统:Ubuntu、Debian 及其衍生产品。
  • Mono .NET Framework 5.20.1 或更高版本。
  • 阿帕奇网络服务器。

服务器硬件要求

服务器的硬件配置取决于自动化系统的规模。最低配置由操作系统要求决定。要估计所需的硬盘空间,首先配置 Rapid SCADA,然后测量归档数据大小的每日增量,并将其乘以归档数据存储周期。

Rapid SCADA 包含自己的内置 DBMS,因此无需为第三方 DBMS 额外付费。该软件可以在物理或虚拟环境中运行。

工作站或平板电脑要求

  • 现代浏览器:Chrome、Firefox、Safari 或 Edge。
  • 需要 Microsoft Office 2003 或更高版本才能查看报告。

软件安装

安装前

Rapid SCADA 需要安装某些 Windows 组件。转到控制面板 > 程序 > 打开或关闭 Windows 功能。Microsoft .NET Framework 所需组件如图1 和图3 所示。注意Microsoft .NET Framework 3.5的Windows Communication Foundation 子组件必须关闭。

Webstation 应用程序需要作为 Windows 功能之一的 Internet 信息服务 (IIS)。除非打开了某些 IIS 功能集,否则 Webstation 将无法运行。图 2 和图 4 显示了必须安装的功能。在 Web 应用程序设置期间,安装程序会检查这些功能的可用性。

Windows 7 .NET 组件
图 1. Windows 7 .NET 组件

适用于 Windows 7 的 IIS 组件
图 2. Windows 7 IIS 组件

Windows 10 .NET 组件
图 3. Windows 10 .NET 组件

Windows 10 IIS 组件
图 4. Windows 10 IIS 组件

安装

运行安装包中的ScadaSetup.exe开始快速 SCADA 安装。安装程序如图 5 所示。必须使用管理员帐户执行安装。Rapid SCADA 需要安装最新版本的 Microsoft .NET Framework。安装程序会检查框架是否存在,并在必要时建议下载并安装它。

快速 SCADA 安装程序
图 5. 快速 SCADA 安装程序

在安装开始之前,会要求用户选择应用程序和安装目录(参见图 5 和图 6)。此目录指定整个软件的位置。安装程序会创建所选应用程序所需的子目录。由于简化了应用程序的配置,建议使用默认目录C:\SCADA 。

选择安装目录
图 6. 选择安装目录

Web 应用程序安装选项(参见图 7)已与系统管理员商定。如果对 Web 应用程序没有特定要求,则应使用默认值。

Web 应用程序安装选项
图 7. Web 应用程序安装选项

安装完成后,建议检查Scada Web 应用程序是否使用具有 .NET 4.0 运行时版本和集成管道模式的应用程序池。IIS 管理控制台路径是Control Panel > System and Security > Administrative Tools > Internet Information Services (IIS) Manager

手动安装

手动快速 SCADA 设置提供对软件安装、更新和卸载过程的完全控制。

手动安装顺序:

  1. 通过选择适当的 Windows 功能来安装 Microsoft Internet 信息服务 (IIS)。更多细节...
  2. 安装系统要求中指定版本的 Microsoft .NET Framework(在框架之前安装 IIS)。
  3. 将安装包的 Arc 文件夹中的文件解压到 SCADA 安装目录。推荐目的地是 C:\SCADA
  4. 打开 IIS 管理控制台:控制面板 > 系统和安全 > 管理工具 > Internet 信息服务 (IIS) 管理器
  5. 将 Web 应用程序添加到站点树。右键单击适当的站点,在大多数情况下为默认网站,然后选择添加应用程序菜单项。
  6. 输入应用程序别名:Scada。检查所选应用程序池是否使用 .NET 4.0 运行时版本和集成管道模式。指定 Web 应用程序文件的物理路径:C:\SCADA\ScadaWeb。然后单击确定
  7. 通过以管理员身份执行 ScadaServer\svc_install.bat 来注册 ScadaServerService。
  8. 通过以管理员身份执行 ScadaComm\svc_install.bat 来注册 ScadaCommService。
  9. 通过以管理员身份执行 ScadaAgent\svc_install.bat 来注册 ScadaAgentService。
  10. 如有必要,在桌面上为管理员和 Webstation 应用程序创建快捷方式。
  11. 运行应用程序

手动卸载顺序:

  1. 使用 IIS 管理器删除 Scada Web 应用程序。
  2. 停止 ScadaServerService 和 ScadaCommService 服务,关闭 Rapid SCADA 的所有应用程序。
  3. 通过以管理员身份执行 ScadaServer\svc_uninstall.bat 来取消注册 ScadaServerService。
  4. 通过以管理员身份执行 ScadaComm\svc_uninstall.bat 来取消注册 ScadaCommService。
  5. 通过以管理员身份执行 ScadaAgent\svc_uninstall.bat 来取消注册 ScadaAgentService。
  6. 从硬盘中删除 SCADA 文件夹并从桌面上删除快捷方式。

安装附加模块

Rapid SCADA 支持扩展软件功能的附加模块。本节包含对大多数模块典型的常见安装顺序的描述。

服务器模块的安装

安装新的或更新服务器应用程序的现有模块的顺序:

  1. 如果管理员应用程序正在运行,请关闭它。
  2. 解压模块安装包。
  3. 将模块安装包SCADA文件夹中的所有文件复制到Rapid SCADA安装目录下,默认为C:\SCADA,目录层次不变。
  4. 如果使用 Windows 8 或更高版本,找到 C:\SCADA\ScadaServer\Mod\Mod*.dll,打开文件属性并取消阻止文件。
  5. 启动 Administrator,打开项目并使用项目资源管理器打开服务器 > 模块页面。
  6. 在未使用的模块列表中选择已安装的模块,然后单击激活按钮。
  7. 执行模块文档中指定的模块配置。
  8. 保存项目并使用按钮将配置上传到服务器。

安装通讯器驱动程序

安装 Communicator 应用程序的新驱动程序或更新现有驱动程序的顺序:

  1. 如果管理员应用程序正在运行,请关闭它。
  2. 解压驱动安装包。
  3. 将驱动安装包的SCADA文件夹中的所有文件复制到Rapid SCADA安装目录下,默认为C:\SCADA,目录层次不变。
  4. 如果使用 Windows 8 或更高版本,找到 C:\SCADA\ScadaComm\KP\Kp*.dll,打开文件属性并解锁文件。
  5. 启动 Administrator,打开项目并使用项目资源管理器打开Communicator > Drivers页面。
  6. 确保已安装的驱动程序在可用驱动程序列表中。如果选择了驱动程序,则会显示其描述。

安装 Webstation 插件

Webstation 应用程序的附加模块称为插件。新插件的安装顺序:

  1. 解压插件安装包。
  2. 将插件安装包的SCADA文件夹中的所有文件复制到Rapid SCADA安装目录下,默认为C:\SCADA,目录层次不变。
  3. 如果使用 Windows 8 或更高版本,找到 C:\SCADA\ScadaWeb\bin\Plg*.dll,打开文件属性并解锁文件。
  4. 以管理员身份登录 Web 应用程序,然后转到Main Menu > Plugins > Installed
  5. 在页面上找到新插件,然后单击激活链接。
  6. 执行插件文档中指定的插件配置。

运行应用程序

第一次运行

安装 Rapid SCADA 后,建议重新启动计算机,以便 Server、Communicator 和 Agent 服务自动启动。重新启动完成后,运行以下浏览器之一:Google Chrome、Mozilla Firefox 或 Microsoft Edge。在地址栏中,键入http://localhost/scada/。登录页面应该打开(参见图 1)。在登录和密码字段中输入admin12345 ,然后单击登录按钮。

登录网页表单
图 1. 登录 Web 表单

运行管理员

要启动 Administrator 应用程序,请使用位于菜单Start > Programs > SCADA中的快捷方式。如果由于某种原因缺少快捷方式,可以从可执行文件 C:\SCADA\ScadaAdmin\ScadaAdmin.exe 运行 Administrator

Administrator 应用程序包括用于管理其他 Rapid SCADA 应用程序的工具。

服务

服务器、通信器和代理应用程序作为服务工作。如果在 Windows 上工作,请使用 services.msc 管理单元来管理服务。它可以从命令行或通过Control Panel > System and Security > Administrative Tools > Services运行。服务名称:ScadaServerService、ScadaCommService 和 ScadaAgentService。

另外,对应应用程序的目录下还有svc_start.bat和svc_stop.bat文件,可以启动和停止服务。这些批处理文件必须以管理员身份运行。

Administrator 应用程序还能够启动和停止 Server 和 Communicator。要在 Administrator 中管理服务,请打开一个项目,然后使用按钮打开实例状态表单(参见图 2)。

管理员中的实例状态
数字。2.Administrator中的实例状态

Server、Communicator 和Agent 服务的默认启动类型为Automatic,即操作系统启动时服务启动,操作系统停止时服务停止。如果不需要自动启动,可以设置手动启动类型(见图3)。

设置 Windows 服务启动类型
图 3. 设置 Windows 服务启动类型

Web应用程序

要打开名为 Webstation 的 Web 应用程序,请在浏览器地址栏中输入 http://compname/scada/ 其中 compname 是安装了 Web 应用程序的计算机的主机名或 IP 地址,scada 是安装时指定的虚拟目录. 如果 Webstation 在安装它的同一台计算机上打开,则可以使用http://localhost/scada/http://127.0.0.1/scada/

默认用户名:admin
默认密码:12345

将配置迁移到新服务器

需要快速 SCADA 迁移到另一台服务器时的典型任务:

  • 使用开发人员工作站完成配置后在生产服务器上的软件部署。
  • 服务器更换。

迁移配置的步骤是:

  1. 确保服务器和设备之间的连接配置正确:存在所需的串行端口、可通过网络使用的工业控制器等。
  2. 在新服务器上安装 Rapid SCADA,但不要启动 Server 和 Communicator 服务。
  3. 停止过时服务器上的 Server 和 Communicator 服务。将这些服务的启动类型切换为手动。
  4. 将位于以下目录中的数据存档从过时的服务器复制到新服务器:
    C:\SCADA\ArchiveDAT
    C:\SCADA\ArchiveDATCopy
  5. 通过以下方式之一将配置从过时的服务器转移到新服务器。
    • 将下列目录的内容从过时的服务器复制到新服务器(显示默认目录):
      C:\SCADA\BaseDAT
      C:\SCADA\Interface
      C:\SCADA\Projects
      C:\SCADA\ScadaAgent\Config
      C: \SCADA\ScadaComm\Config
      C:\SCADA\ScadaServer\Config
      C:\SCADA\ScadaWeb\config
      C:\SCADA\ScadaWeb\storage
    • 在 Administrator 应用程序中打开项目并使用按钮将配置上传到新服务器,取消选中Restart ServerRestart Communicator复选框。
  6. 在新服务器上启动 Server 和 Communicator 服务。
  7. 检查新服务器是否运行良好。

软件更新

将 Rapid SCADA 更新到新版本必须首先在测试环境中执行。仔细阅读新版本中所做的更改列表。如果更改了配置数据库结构或更改了存档或配置文件格式,则需要特殊的实用程序来转换数据。

只有在确保新版本的 Rapid SCADA 在测试环境中正常运行的情况下,才允许在生产服务器上进行安装。

更新 Rapid SCADA 的步骤:

  1. 默认情况下,对位于 C:\SCADA 目录中的 Rapid SCADA 的所有文件进行备份。
  2. 使用安装程序 ScadaSetup.exe 卸载 Rapid SCADA。
  3. 安装新版本的 Rapid SCADA 并从备份副本迁移配置。
  4. 按 Shift + F5 清除浏览器缓存或刷新 Web 应用程序页面。

通过直接复制新版本的文件来更新 Rapid SCADA 在技术上是可行的。但是,此操作需要对 Rapid SCADA 有深入的了解,并且可能会导致软件出错。

安全建议

文件保护

如果在公司环境中使用 Rapid SCADA,请限制域用户对 Rapid SCADA 安装目录的访问,默认为 C:\SCADA\。为此,打开包含 Rapid SCADA 应用程序的目录的属性,选择安全选项卡并配置访问权限。

HTTPS

配置 Web 服务器以启用 Webstation 应用程序的 HTTPS 协议。使用 HTTPS,浏览器和 Web 服务器之间的所有流量(包括密码)都会被加密。

VPN

使用 VPN 为外部用户提供访问权限。如果可能,请避免从外部开放访问 Webstation。

密码

更改默认密码。使用 Administrator 应用程序打开项目,在 Users 表中输入新密码,并更新应用程序设置中指定的连接服务器的密码。要创建强密码,请使用密码生成器。如果公司使用 Active Directory,则在 Rapid SCADA 中设置基于 Active Directory 的身份验证可增强系统安全性。

软件配置

配置基础

创建项目

Rapid SCADA 的配置是在项目基础上执行的。项目是存储在项目目录中的一组不同格式的文件。要创建和编辑项目,请使用管理员应用程序。当 Administrator 启动时,将打开Start 页面,其中包含用于创建新项目或打开现有项目的按钮(参见图 1)。

首页
图 1. 起始页

项目创建表格
图 2. 项目创建表单

注意项目创建表单的Template字段(参见图 2)。该模板定义了添加到项目中的初始配置。另一个现有项目可以用作模板。

项目结构

快速 SCADA 配置显示在项目浏览器中,它位于管理员主窗口的左侧。该项目由以下主要部分组成(图3):

  • 配置数据库是整个自动化系统的结构化描述。配置数据库一般定义系统,而详细设置参考相应的快速 SCADA 应用程序。
  • 界面。该配置部分包含视图文件和报告配置文件。视图示例:方案、表格、地图和仪表板。
  • 服务器应用程序设置。
  • Communicator 应用程序设置。
  • Webstation 网络应用程序设置。更方便的是通过网页界面编辑Webstation设置,然后下载到工程中。

项目结构
图 3. 项目结构

实例是部署了 Rapid SCADA 的计算机。一个项目可以包含多个交换数据的 Rapid SCADA 实例。Administrator 应用程序可以连接到远程服务器以下载和上传配置,因此,Rapid SCADA 可以使用一个工作站进行配置。

一般配置顺序

开始使用 Rapid SCADA,建议遵循下面描述的一般配置顺序。在获得一些经验后,更好地理解应用程序之间的依赖关系,可以改变顺序以提高效率。

  1. 创建一个新项目或打开一个现有项目。
  2. 将对象、通信线路和设备添加到配置数据库中。要创建通信线路和设备,建议使用使用管理员工具栏上的按钮打开的向导。
  3. 检查添加的通信线路和设备是否存在于 Communicator 设置中。如有必要,通过从项目浏览器的通信线路节点的上下文菜单中选择导入菜单项来导入它们。
  4. 在 Communicator 中配置与设备的通信。
  5. 在配置数据库中创建输入和输出通道。建议使用按钮打开的向导。
  6. 创建视图并在配置数据库的接口表中指定它们。
  7. 通过按钮将项目上传到服务器。

调整配置数据库

配置数据库结构

配置数据库是整个自动化系统的结构化描述。Rapid SCADA 中包含的应用程序将配置数据库中的信息与其设置结合使用。

配置数据库使用管理员应用程序作为项目的一部分进行编辑。配置数据库的编辑实例是 XML 文件格式。当项目上传到服务器执行时,配置数据库被转换为特殊的 DAT 格式。

配置数据库由表组成,而表又由列和行组成。每个表都属于以下组之一:

  1. 系统。该组包含定义特定自动化系统配置的表格。
  2. 字典。该组包含辅助表。在大多数情况下,不需要更改这些表。

下表描述了配置数据库表。

表名描述
系统组
对象 包含用于在系统中构建信息的逻辑对象。对象可以解释为位置
通讯线路 描述用于与设备交换数据的通信线路
设备 包含真实或虚拟设备
输入通道 定义从设备接收的数据和计算的数据
输出通道 指定系统执行的命令
角色 包含角色。每个角色定义了一组可供用户使用的功能
用户 包含系统用户及其角色的列表
界面 包含界面对象(视图、报告和数据窗口)的描述
权利 按角色定义接口对象的权限
词典集团
渠道类型 输入通道类型字典
命令类型 输出通道使用的命令类型字典
事件类型 归档中系统事件类型和输入通道状态的字典
设备类型 可连接到系统的设备类型字典
数量 测量量字典
单位 输入通道值的单位字典和输入通道的可枚举值
命令值 输出通道传输的可枚举指令值字典
数字格式 用于显示输入通道值的格式字典
公式 用于计算输入通道数据和输出通道指令值的公式字典

编辑配置数据库

配置数据库表之间是有关系的,即一个表的一个单元格可以引用另一个表的记录。例如,每个设备指的是它所连接的通信线路。因此,按照一定的顺序编辑表格是有效的。对于系统组中的表,按从对象表开始到权限表结束的顺序输入数据。

要添加通信线路和设备,建议使用使用按钮打开的向导。使用该向导可以向配置数据库表中添加一个条目,还可以在 Communicator 设置中创建相应的实体。要创建输入和输出通道,请使用按钮打开的向导。但是,选择的设备驱动程序必须支持自动创建通道,否则应手动输入通道。

如果该按钮显示在表格工具栏上,则可以使用表单视图编辑表格。编辑通道属性的表格如图 1 和图 2 所示。

输入通道属性
图 1. 输入通道属性

输出通道属性
图 2. 输出通道属性

使用现有作品可以显着加快创建配置数据库的速度。为了在不同数据库之间交换信息,Administrator 应用程序支持Import tableExport table功能(参见图 3 和 4),它们可以在File菜单中访问。表格可以导出为 DAT、XML 和 CSV 文件。然后可以将信息从 DAT 和 XML 文件导入到相同或不同的项目中。通过指定开始和结束标识符来限制导出和导入数据的范围。如果为导入操作设置了新的目标标识符,则使用标识符偏移量导入数据。

导入表
图 3. 导入表

导出表
图 4. 导出表

克隆工具可用于输入和输出通道(参见图 5)。在Clone Channels表单中填写源和目标通道号。如果需要,为克隆的通道选择一个新对象和设备。如果在以下函数中使用通道号作为参数,则公式中的通道号更新功能适用:N()、Val()、Stat()、SetVal()、SetStat() 和 SetData()。

频道克隆
图 5. 通道克隆

复制 (Ctrl + C) 和粘贴 (Ctrl + V) 可用于表格单元格。单击列标题可按该列的值对表行进行排序。搜索和替换功能 (Ctrl + F) 也加快了编辑速度。

使用公式

公式用于计算输入通道的值和状态以及计算命令的值。公式处理由服务器应用程序执行。

公式在配置数据库的输入通道输出通道表的公式列中输入。要启用公式,请勾选使用的公式列中的复选框。公式表包含可用于输入和输出通道公式的附加函数和数据结构。

公式编写规则

编写和使用公式的一般规则:

  1. 公式使用C# 语言的表达式语法。许多 Microsoft .NET 类都是可访问的,例如 Math 和 DateTime 类。
  2. 可以添加新的常量、字段、属性和方法以在公式中使用。
  3. 如果至少有一个公式包含错误,则服务器操作是不可能的。有关公式中的错误的信息写入服务器应用程序日志中。

计算输入通道公式的规则:

  1. DiscreteReal类型的Channels 是在Server 接收到通道数据时计算的。如果公式不引用其他通道的数据,请使用这些通道类型。
  2. Calculated *Switching 计数器类型的通道会根据通道编号按顺序永久计算。一个计算出的通道的公式通常是指其他通道的数据。
  3. Minute *Hourly *类型的频道会定期计算,每分钟一次或每小时一次。使用这些通道类型来创建累积值,例如能耗或运行时间。
  4. 对于DiscreteReal类型的通道,如果没有明确指定状态计算,则计算后的通道状态等于 Server 接收到的这些通道的状态。
  5. 如果未明确指定状态计算,则将其他类型通道的状态设置为已定义。
  6. 不包含“;”的输入通道公式 (分号)符号仅计算输入通道值。
  7. 如果输入通道公式包含“;”,则公式计算输入通道值和状态。分号之前的第一部分是价值计算公式,分号之后的第二部分是计算状态。
  8. 如果指定了通道限制,则在计算通道公式后重新计算通道状态并考虑限制。
  9. 计算通道值的公式必须返回一个double类型的实数,计算状态的公式返回一个int类型的整数。

计算输出通道公式的规则:

  1. 为具有标准二进制命令类型的输出通道处理公式。
  2. 标准命令的计算公式必须返回double类型的实数,二进制命令的计算公式返回byte[]类型的字节数组。

现有公式

公式中可访问的变量:

多变的值类型描述
CnlVal, Cnl 双倍的 计算前传给Server的输入通道值
统计数据 整数 计算前传给Server的输入通道状态
CmdVal, Cmd 双倍的 计算前传给Server的命令值
CmdData 字节[] 计算前传给Server的命令数据
编号 整数 计算公式的通道号
双倍的 自然对数底,由常数 e 指定
PI 双倍的 圆的周长与其直径的比值,由常数 π 指定

公式中可访问的函数:

功能值类型描述
N (n) 整数 返回指定的频道号以在克隆时更新号码
值() 双倍的 获取公式通道的当前值
下降) 双倍的 获取通道 n 的当前值
SetVal (n, 值) 双倍的 设置通道 n 的当前值
统计() 整数 获取公式通道的当前状态
状态) 整数 获取通道 n 的当前状态
SetStat(n,统计) 整数 设置通道 n 的当前状态
SetData (n, val, stat) 双倍的 设置通道 n 的当前值和状态
绝对值(x) 双倍的 计算数字的绝对值
罪(x) 双倍的 计算指定角度的正弦值
余弦(x) 双倍的 计算指定角度的余弦
谭(x) 双倍的 计算指定角度的正切
经验(x) 双倍的 计算 e 的指定幂
Ln(x), 对数(x) 双倍的 计算指定数字的自然(以 e 为底)对数
平方(x) 双倍的 计算指定数字的平方
平方(x) 双倍的 计算指定数字的平方根

GitHub 上提供了其他公式,包括计算平均值的公式。

调试公式

如果您开发自定义公式,请检查它们的语法并验证它们是否正常工作。如果服务器服务在启动时无法编译公式,则有关错误的信息将写入服务器日志文件,并且服务器尝试编译的公式的源代码位于服务器日志中的 CalcEngine.cs 中目录,默认为 C:\SCADA\ScadaServer\Log\

要开发复杂的公式,建议使用 Microsoft Visual Studio 社区版。在项目中添加对 FormulaTester.dll 程序集的引用。例如,使用上面提到的项目,其中包含公式。

用户认证配置

Rapid SCADA 支持三种用户身份验证方法:

  1. 基于存储在配置数据库中的用户名和密码。
  2. 基于活动目录。
  3. 组合法。

为了执行身份验证,客户端应用程序(例如 Communicator 或 Webstation)向服务器应用程序发送验证用户名和密码的请求。服务器检查用户凭据并将用户角色返回给客户端应用程序。

下表列出了标准用户角色及其功能。

ID角色名称描述
0 已禁用 系统访问被拒绝
1 行政人员 完全访问
2 调度员 查看所有信息,发送命令
3 来宾 查看所有信息
4 应用 与服务器应用程序交互

要限制用户访问接口对象(表视图、方案等),请在配置数据库的Roles表中创建新的用户角色。然后在权限表中指定访问权限。

如果 Rapid SCADA 在由 Active Directory 管理的网络中运行,出于安​​全原因,建议使用第 2 种和第 3 种身份验证方法。这些方法的细节如下所述。

要允许服务器服务与 Active Directory 交互,请指定域控制器路径并在应用程序的Common Parameters页面上勾选附近的复选框,并在Modules页面上激活 ModActiveDirectory.dll 。

如果标准角色足以管理用户权限,则使用第二种身份验证方法。这种方法的好处是使用常用的 Active Directory 工具执行权限管理,而无需编辑配置数据库并重新启动服务器服务。

要使用第二种方法,需要在 Active Directory 中创建安全组。这些组对应于用户角色:

  • ScadaDisabled - 禁用角色;
  • ScadaAdmin - 管理员角色;
  • ScadaDispatcher - 调度员角色;
  • ScadaGuest - 来宾角色;
  • ScadaApp - 应用程序角色。

如果用户是上述组的成员,或者他是组的成员,而该组的成员又是上述组的成员,则该用户在 Rapid SCADA 中被授予相应的权限。

第三种方法结合了第一种和第二种方法的能力。用户凭据的验证使用 Active Directory 执行,用户角色由配置数据库的用户表定义。在这种情况下,用户名和用户角色在用户表中指定,但用户密码在表中保持空白。

允许同时使用上述所有身份验证方法。

与设备配置通信

与真实或虚拟设备的交互由 Communicator 应用程序执行,该应用程序充当主机或从机,轮询数据并向设备发送命令。所有设备都绑定到通信线路。通信线路相互独立,并行工作。

Communicator 的用户界面专为配置而设计,内置于 Administrator 应用程序中。Communicator 被配置为项目的一部分。

图 1 显示了主要通信线路参数的示例。通信通道确定用于与设备进行数据交换的物理接口或网络协议。支持以下通信通道:串口、TCP 客户端、TCP 服务器和 UDP。在某些情况下,如果与设备的交互是由设备驱动程序实现的,则通信通道应该是未定义的(例如,OPC 驱动程序)。

如果不需要向设备发送命令,出于安全原因,建议取消勾选启用命令复选框。

主要通讯线路参数
图 1. 主要通信线路参数

请求序列
图 2. 请求序列

通信顺序和请求参数在请求序列页面上设置(参见图 2)。

如果未设置Main Parameters页面上的Active复选框,则会禁用相应的通信线路,并且不会执行任何请求。如果未设置Selected Device组框中的Active复选框,则禁用与该设备的通信。

Main Parameters页面上的Bound to Server复选框允许打开或关闭向服务器发送通信线路数据。Selected Device组框中的Bound to Server复选框具有类似的目的,但仅适用于设备。如果未设置 Communicator 设置的Common Parameters页面上的Interact with Server复选框,则会禁用 Communicator 和 Server 之间的任何交互。这些选项对于测试连接到系统的新设备很有用。

如果设备的TimePeriod参数等于 0,则循环请求该设备。如果Time参数大于零且Period为零,则设备在指定时间每天请求一次。如果Period大于零,则从指定时间开始定期请求设备。Timeout字段定义了在请求后等待设备应答的时间。延迟字段定义每次向设备发出请求后的延迟。命令行可能包含设备驱动程序文档中描述的附加参数。

要将所选设备的请求参数重置为默认值,请单击“重置”按钮。要打开设备属性表单,如果所选设备的驱动程序支持它,请单击“属性”按钮或使用项目浏览器的弹出菜单。要设置设备类型的全局属性,请选择驱动程序页面,选择设备驱动程序并单击属性按钮(如果该按钮已启用)。

要将通信线路和设备从配置数据库导入 Communicator 设置,请在项目浏览器中右键单击通信线路节点或特定通信线路的节点,然后在上下文菜单中选择导入项。导入表单如图 3 所示。

导入 Communicator 设置
图 3. 导入 Communicator 设置

设置同步功能(参见图 4)也使用通信线路上下文菜单运行。同步允许根据配置数据库更新现有通信线路和设备的参数,但是手动输入的参数可能会丢失。

同步 Communicator 设置
图 4. 同步 Communicator 设置

创建视图

视图是 Webstation 应用程序中的一种数据表示形式。默认支持两种视图:表视图和方案。可以通过安装其他插件来添加对其他类型视图的支持。

表编辑器方案编辑器旨在创建视图。视图保存到必须位于项目界面目录中的文件中。在运行时,视图位于服务器应用程序设置中指定的接口目录或其子目录中,默认为 C:\SCADA\Interface\

视图文件示例:
Interface\Servers\ServerRoom.sch - 方案,
Interface\Servers\ServerRoom.tbl - 表视图。

要打开用于创建视图的对话框,请选择New file上下文菜单项(参见图 1 和图 2)。然后在对话框中,选择视图类型,指定文件名并单击确定按钮。创建的文件将显示在项目资源管理器中。通过双击相应的树节点,编辑器打开视图。

创建视图的菜单
图 1. 创建视图的菜单

视图创建对话框
图 2. 视图创建对话框

创建视图文件后,必须在配置数据库的接口表中指定它们,如图 3 所示。视图标识符必须是唯一的。视图路径是相对于界面目录的。Title列中指定的文本在 Webstation 的资源管理器树中显示为节点文本,标识符决定视图的排序。如果视图文件位于 interface 目录的子目录中,则这些子目录也必须在Interface表中指定。

编辑接口表
图 3. 编辑接口表

方案模板

方案支持模板模式。模板是使用方案编辑器创建的常规方案,可以绑定到任意输入和输出通道。

要在模板模式下使用方案,请在接口表中指定适当的参数。有两个选项可用(参见图 3):

  1. 指定相对于原始方案的通道号偏移量,以及标题组件标识符。
  2. 指定包含方案组件与通道的绑定的文件。

接口表中的方案模板
图 4. 接口表中的方案模板

参数说明:
inCnlOffset - 输入通道号偏移量;
ctrlCnlOffset - 输出通道号偏移量;
titleCompID - 标题组件标识符;
bindingFileName - 相对于 Webstation 配置目录的绑定文件名。

在模板模式下工作的方案的标题文本取自接口表的标题字段。使用方案编辑器创建方案模板时,建议将方案标题属性留空。

绑定文件必须位于 Webstation 配置目录中,默认为 C:\SCADA\ScadaWeb\config\。绑定文件示例:

<?xml version="1.0" encoding="utf-8" ?>
<TemplateBindings>
  <TemplateFileName>MyScheme.sch</TemplateFileName>
  <TitleCompID>3</TitleCompID>
  <Binding compID="1" inCnlNum="101" ctrlCnlNum="101" />
  <Binding compID="2" inCnlNum="102" />
</TemplateBindings>

模块

数据库导入驱动程序

概述

数据库导入驱动程序旨在接收来自第三方数据库的当前数据,以及使用遥控命令将信息写入第三方数据库。此驱动程序包含在 Rapid SCADA 安装包中,不需要单独安装。驱动程序库文件是 KpDbImport.dll。

配置

每个使用数据库导入驱动程序的设备都包含一个接收数据的请求和一组更改数据的命令。可以有一个或多个设备在一条通信线路上导入数据。

使用设备属性表单来配置数据库导入驱动程序。要打开此表单,请在 Communicator 设置中找到相应的设备,右键单击设备节点并选择“属性”菜单项。

设置数据库连接

数据库页面允许指定数据库类型和数据库连接的参数。如果需要非标准的连接参数,可以直接编辑连接字符串。

设置数据检索

数据检索页面指定用于从数据库中检索当前数据的SQL 查询。驱动程序会根据请求的表列列表自动创建设备标记。如果请求具有复杂的语法,请手动输入标签数。

设置遥控命令

设备支持的遥控命令在命令页面上定义。命令提供从 Rapid SCADA 到数据库的信息传输。一条命令的 SQL 查询可能包含变量 cmdVal 和 cmdNum,其中包含命令的值和编号。对于查询中的大多数 DBMS 变量,需要前缀@,而:(冒号)通常用于 Oracle。

编号为 0 的命令是默认命令。如果在设备命令列表中找不到发送的命令编号,则执行默认命令。

Modbus 从驱动程序

概述

驱动支持标准的Modbus通讯协议,作为从机工作。使用驱动程序,Communicator 等待来自作为主设备工作的第三方设备或应用程序的传入请求和命令。支持以下通信通道:串口、TCP 服务器和 UDP。该驱动程序可以在 Modbus RTU 或 Modbus TCP 模式下工作。

Modbus 从驱动程序特点:

  1. 使用写入命令从设备接收数据。
  2. 向设备提供数据以响应读取命令。
  3. 传输从其他设备接收的快速 SCADA 输入通道的值,以便与第三方系统集成。

安装

Modbus Slave 驱动程序按照安装 Communicator 驱动程序的一般顺序进行安装。驱动程序库文件为 KpModbusSlave.dll。

配置

首先,在配置数据库以及 Communicator 设置中创建一条新的通信线路和一个新设备。为此,建议使用由按钮打开的向导。设备地址很重要,因为这是 Communicator 验证响应的单元 ID。然后打开通讯线路的主要参数,选择通讯通道类型并配置其属性。通信通道属性的示例如下所示。

串口属性

TCP 服务器属性

在 Communicator 中创建设备后,打开设备属性表单并配置设备。

Modbus 从设备属性

输入数据有效期允许自动设置设备输入标签的未定义状态,如果在指定时间内没有从设备接收到新数据。

设备模板定义了 Modbus 寄存器映射。KpModbus.dll 和 KpModbusSlave.dll 驱动程序的设备模板完全兼容。

数据源设备设置为非零以将从另一个设备接收的输入通道值传输到第三方系统。如果驱动程序用于与真实设备交互,则该参数应为 0。

下图显示了 Modbus 模板编辑器:

Modbus 模板编辑器

Modbus 从站驱动程序需要注册。完成设置后,使用按钮将项目上传到服务器。然后在Administrator应用程序中打开Drivers页面,选择KpModbusSlave.dll驱动,打开驱动属性并注册。注册后,再次将项目上传到服务器。

Telegram驱动程序

概述

Telegram Driver 旨在使用流行的 Telegram Messenger 发送通知。使用 Telegram 的优点是接收通知的速度快,服务不收费,通知组管理方便。

安装

Telegram 驱动程序按照安装 Communicator 驱动程序的一般顺序进行安装。驱动程序库文件是 KpTelegram.dll。

配置

创建电报机器人

首先,您需要创建一个 Telegram 机器人。去做这个:

  1. 安装应用程序并注册Telegram
  2. 将名为BotFather的机器人添加到联系人列表中。
    电报机器人父亲
  3. 在与 BotFather 的对话中,运行命令/newbot并按照 BotFather 的说明进行操作。
  4. 单击菜单图标并创建一个新组以接收通知。
    新电报群
  5. 将您创建的机器人添加到新组中。
  6. 将联系人添加到新组。这些联系人将收到通知。

驱动程序设置

使用管理员应用程序作为项目的一部分来配置通知。配置步骤如下:

  1. 打开设备类型表并检查设备类型“224 Telegram”是否存在。如果缺少指定的记录,请手动输入。
  2. 创建单独的通信线路和属于该通信线路的 Telegram 类型的单个设备。使用由和按钮打开的向导。
  3. 在 Communicator 设置中打开设备属性,输入创建机器人时获得的机器人令牌,并生成管理订阅所需的机器人密码。
    电报驱动配置
  4. 保存驱动程序配置。
  5. 通过按钮将项目上传到服务器。
  6. 转到注册页面并使用表单上的超链接注册驱动程序。
    电报司机注册
  7. 再次保存更改并将项目上传到服务器。

管理订阅

如果设置正确,您的机器人将响应信使命令,例如/help命令。有必要在驱动程序设置中指定订阅(聊天)。

电报通知组

要获取订阅的 ID 和名称,请使用信使发送/info命令。然后使用设备配置表单添加接收到的值。

过时的方法:要添加或删除订阅,请使用/start/stop命令以及之前生成的密码。但是,默认情况下,订阅更改会被阻止。要解锁它,请通过 Communicator 发送值为 1 的标准命令 2。然后您可以添加或删除订阅。

发送消息

要将消息从 Rapid SCADA 发送到 Telegram 组,您需要发送包含组名称(或标识符)和消息文本的二进制命令编号 1。例如:
RapidScadaDemo;测试消息。

发送电报消息

在特定条件和事件的情况下自动发送通知由自动控制模块执行。

自动控制模块

概述

自动控制模块根据特定条件自动发送命令。除非您注册该模块,否则它在演示模式下工作。完整功能演示的持续时间限制为重启后 10 分钟。该模块在服务器应用程序的控制下运行。如下所示的表格用于配置模块。

模块配置表

发送指定为几种类型触发器的命令所需的条件:

  • 通道数据触发。如果输入通道的值或状态满足条件,则触发触发器。
  • 通道数据更改触发器。每当输入通道的值或状态发生变化时,触发器都会触发。
  • 事件触发器。如果事件满足条件发生,触发器将触发。
  • 时间触发。触发器在指定的日期和时间触发。
  • 命令触发器。如果服务器应用程序接收到指定的命令,触发器就会触发。

每个触发器包含一组在触发器触发时发送的命令。有关触发触发器的信息可在日志页面或直接从 ModAutoControl.log 文件中访问。此文件位于服务器日志目录 C:\SCADA\ScadaServer\Log

安装

自动控制模块按照安装服务器模块的一般顺序进行安装。模块库文件是 ModAutoControl.dll。通过添加模块,执行以下附加操作:

  1. 激活模块后,将项目上传到服务器,以确定模块注册的计算机代码。
  2. 在“模块”页面上选择模块,然后单击“属性”按钮以打开模块设置表单。
  3. 转到注册页面并使用表单上的超链接注册模块。
  4. 通过创建触发器和命令来配置模块。
  5. 保存模块配置并将项目上传到服务器。

遥控指令变量

触发触发时发送的遥控命令字符串数据可以包含变量。变量写在大括号中。

支持以下变量:

多变的描述
{n} 输入通道n的当前值,带单位,其中n为通道号,n=0为数据触发中指定的通道
{现在} 服务器上的当前日期和时间
{CnlNum},{CnlName} 数据触发参数:输入通道号和名称
{CnlVal},{CnlStat} 导致触发触发的输入通道的值和状态
{EvNum}、{EvTime}、{EvObj}、{EvDev}、{EvCnl}、{EvText} 触发触发的事件参数:编号、日期和时间、对象、设备、通道和描述
{CtrlCnlNum},{CtrlCnlName} 命令触发器的参数:输出通道号和名称
{CmdVal}、{CmdDataStr}、{CmdDataHex} 触发触发的命令参数:值、字符串数据、十六进制数据

导出到数据库模块

概述

该模块在流行的数据库中提供从设备接收的实时导出数据。支持的 DBMS 是 Microsoft SQL Server、Oracle、PostgreSQL 和 MySQL。该模块包含在 Rapid SCADA 安装包中,不需要单独安装。模块库文件是 ModDBExport.dll。

配置

在项目中转到Modules页面,激活 ModDBExport.dll 模块并打开其属性。该模块支持在多个不同的数据库中并行导出。要添加数据库,请单击按钮。Connection页面包含连接数据库的参数。在Current DataArchive DataEvents页面上指定 SQL 查询。当服务器接收到新数据时,这些查询由模块执行。必须创建作为导出目标的数据库并包含用于存储数据的适当表。

数据库连接参数

当前数据导出参数

如果某些数据没有及时导出,例如数据库不可用,可以手动传输数据。手动导出表格由按钮打开。要使手动导出成为可能,请在配置数据库中创建相应的输出通道并在表单上指定它们。

手动导出

表和 SQL 查询示例

微软 SQL 服务器

-- Delete channel data table if it exists
IF OBJECT_ID('CnlData', 'U') IS NOT NULL
DROP TABLE CnlData;

-- Create channel data table
CREATE TABLE CnlData (
  DateTime datetime2 NOT NULL,
  CnlNum   int NOT NULL,
  Val      float NOT NULL,
  Stat     int NOT NULL,
  PRIMARY KEY (DateTime, CnlNum)
);

CREATE INDEX idx_CnlData_CnlNum ON CnlData (CnlNum);

-- Delete events table if it exists
IF OBJECT_ID('Events', 'U') IS NOT NULL
DROP TABLE Events;

-- Create events table
CREATE TABLE Events (
  DateTime   datetime2 NOT NULL,
  ObjNum     int NOT NULL,
  KPNum      int NOT NULL,
  ParamID    int NOT NULL,
  CnlNum     int NOT NULL,
  OldCnlVal  float NOT NULL,
  OldCnlStat int NOT NULL,
  NewCnlVal  float NOT NULL,
  NewCnlStat int NOT NULL,
  Checked    bit NOT NULL,
  UserID     int NOT NULL,
  Descr      char(100),
  Data       char(50)
);

CREATE INDEX idx_Events_DateTime ON Events (DateTime);
CREATE INDEX idx_Events_ObjNum ON Events (ObjNum);
CREATE INDEX idx_Events_KPNum ON Events (KPNum);
CREATE INDEX idx_Events_CnlNum ON Events (CnlNum);

-- Insert current data
INSERT INTO CnlData (DateTime, CnlNum, Val, Stat)
VALUES (@dateTime, @cnlNum, @val, @stat)

-- Insert or update existing archive data
MERGE CnlData AS target
USING (SELECT @dateTime, @cnlNum) AS source (DateTime, CnlNum)
ON (target.DateTime = source.DateTime AND target.CnlNum = source.CnlNum)
WHEN MATCHED THEN 
  UPDATE SET Val = @val, Stat = @stat
WHEN NOT MATCHED THEN
  INSERT (DateTime, CnlNum, Val, Stat)
  VALUES (@dateTime, @cnlNum, @val, @stat);

-- Insert event
INSERT INTO Events (DateTime, ObjNum, KPNum, ParamID, CnlNum, OldCnlVal, OldCnlStat, NewCnlVal, NewCnlStat, Checked, UserID, Descr, Data)
VALUES (@dateTime, @objNum, @kpNum, @paramID, @cnlNum, @oldCnlVal, @oldCnlStat, @newCnlVal, @newCnlStat, @checked, @userID, @descr, @data)

Oracle

-- Delete channel data table if it exists
BEGIN
  EXECUTE IMMEDIATE 'DROP TABLE cnldata';
EXCEPTION
  WHEN OTHERS THEN
    IF SQLCODE != -942 THEN
      RAISE;
    END IF;
END;

-- Create channel data table
CREATE TABLE cnldata (
  datetime TIMESTAMP NOT NULL,
  cnlnum   INTEGER NOT NULL,
  val      FLOAT NOT NULL,
  stat     INTEGER NOT NULL,
  PRIMARY KEY (datetime, cnlnum)
);

CREATE INDEX idx_cnldata_cnlnum ON cnldata (cnlnum);

-- Delete events table if it exists
BEGIN
  EXECUTE IMMEDIATE 'DROP TABLE events';
EXCEPTION
  WHEN OTHERS THEN
    IF SQLCODE != -942 THEN
      RAISE;
    END IF;
END;

-- Create events table
CREATE TABLE events (
  datetime   TIMESTAMP NOT NULL,
  objnum     INTEGER NOT NULL,
  kpnum      INTEGER NOT NULL,
  paramid    INTEGER NOT NULL,
  cnlnum     INTEGER NOT NULL,
  oldcnlval  FLOAT NOT NULL,
  oldcnlstat INTEGER NOT NULL,
  newcnlval  FLOAT NOT NULL,
  newcnlstat INTEGER NOT NULL,
  checked    INTEGER NOT NULL,
  userid     INTEGER NOT NULL,
  descr      CHAR(100),
  data       CHAR(50)
);

CREATE INDEX idx_events_datetime ON events (datetime);
CREATE INDEX idx_events_objnum ON events (objnum);
CREATE INDEX idx_events_kpnum ON events (kpnum);
CREATE INDEX idx_events_cnlnum ON events (cnlnum);

-- Insert current data
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (:dateTime, :cnlNum, @val, :stat)

-- Insert or update existing archive data
MERGE INTO cnldata
USING dual ON (datetime = :dateTime AND cnlnum = :cnlnum)
WHEN MATCHED THEN 
  UPDATE SET val = :val, stat = :stat
WHEN NOT MATCHED THEN 
  INSERT (datetime, cnlnum, val, stat)
  VALUES (:dateTime, :cnlNum, :val, :stat)

-- Insert event
INSERT INTO events (datetime, objnum, kpnum, paramid, cnlnum, oldcnlval, oldcnlstat, newcnlval, newcnlstat, checked, userid, descr, data)
VALUES (:dateTime, :objNum, :kpNum, :paramID, :cnlNum, :oldCnlVal, :oldCnlStat, :newCnlVal, :newCnlStat, :checked, :userID, :descr, :data)

PostgreSQL

-- Delete channel data table if it exists
DROP TABLE IF EXISTS cnldata;

-- Create channel data table
CREATE TABLE cnldata (
  datetime timestamp NOT NULL,
  cnlnum   integer NOT NULL,
  val      double precision NOT NULL,
  stat     integer NOT NULL,
  PRIMARY KEY (datetime, cnlnum)
);

CREATE INDEX ON cnldata (cnlnum);

-- Delete events table if it exists
DROP TABLE IF EXISTS events;

-- Create events table
CREATE TABLE events (
  datetime   timestamp NOT NULL,
  objnum     integer NOT NULL,
  kpnum      integer NOT NULL,
  paramid    integer NOT NULL,
  cnlnum     integer NOT NULL,
  oldcnlval  double precision NOT NULL,
  oldcnlstat integer NOT NULL,
  newcnlval  double precision NOT NULL,
  newcnlstat integer NOT NULL,
  checked    boolean NOT NULL,
  userid     integer NOT NULL,
  descr      char(100),
  data       char(50)
);

CREATE INDEX ON events (datetime);
CREATE INDEX ON events (objnum);
CREATE INDEX ON events (kpnum);
CREATE INDEX ON events (cnlnum);

-- Insert current data
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)

-- Insert or update existing archive data
WITH upsert AS (UPDATE cnldata SET val = @val, stat = @stat 
WHERE datetime = @datetime AND cnlnum = @cnlNum RETURNING *)
INSERT INTO cnldata (datetime, cnlnum, val, stat)
SELECT @dateTime, @cnlNum, @val, @stat
WHERE NOT EXISTS (SELECT * FROM upsert)

-- Insert event
INSERT INTO events (datetime, objnum, kpnum, paramid, cnlnum, oldcnlval, oldcnlstat, newcnlval, newcnlstat, checked, userid, descr, data)
VALUES (@dateTime, @objNum, @kpNum, @paramID, @cnlNum, @oldCnlVal, @oldCnlStat, @newCnlVal, @newCnlStat, @checked, @userID, @descr, @data)

MySQL

-- Delete channel data table if it exists
DROP TABLE IF EXISTS cnldata;

-- Create channel data table
CREATE TABLE cnldata (
  datetime DATETIME NOT NULL,
  cnlnum   INT NOT NULL,
  val      DOUBLE NOT NULL,
  stat     SMALLINT UNSIGNED NOT NULL,
  PRIMARY KEY (datetime, cnlnum)
) ENGINE=InnoDB;

CREATE INDEX idx_cnldata_cnlnum ON cnldata (cnlnum);

-- Delete events table if it exists
DROP TABLE IF EXISTS events;

-- Create events table
CREATE TABLE events (
  datetime   DATETIME NOT NULL,
  objnum     INT NOT NULL,
  kpnum      INT NOT NULL,
  paramid    INT NOT NULL,
  cnlnum     INT NOT NULL,
  oldcnlval  DOUBLE NOT NULL,
  oldcnlstat SMALLINT UNSIGNED NOT NULL,
  newcnlval  DOUBLE NOT NULL,
  newcnlstat SMALLINT UNSIGNED NOT NULL,
  checked    TINYINT UNSIGNED NOT NULL,
  userid     INT NOT NULL,
  descr      CHAR(100),
  data       CHAR(50)
) ENGINE=InnoDB;

CREATE INDEX idx_events_datetime ON events (datetime);
CREATE INDEX idx_events_objnum ON events (objnum);
CREATE INDEX idx_events_kpnum ON events (kpnum);
CREATE INDEX idx_events_cnlnum ON events (cnlnum);

-- Insert current data
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)

-- Insert or update existing archive data
INSERT INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)
ON DUPLICATE KEY UPDATE val = @val, stat = @stat

-- Insert event
INSERT INTO events (datetime, objnum, kpnum, paramid, cnlnum, oldcnlval, oldcnlstat, newcnlval, newcnlstat, checked, userid, descr, data)
VALUES (@dateTime, @objNum, @kpNum, @paramID, @cnlNum, @oldCnlVal, @oldCnlStat, @newCnlVal, @newCnlStat, @checked, @userID, @descr, @data)

Rapid Gate Module

概述

Rapid Gate 模块旨在在不同的 Rapid SCADA 实例之间同步数据。该模块允许设置备份服务器,并提供从安装在远程位置的 SCADA 到主 SCADA 的数据传输。该模块支持任意数量的独立网关,用于与多个 Rapid SCADA 服务器交换信息。

安装

Rapid Gate 模块按照安装服务器模块的一般顺序进行安装。模块库文件是 ModRapidGate.dll。添加模块后,需要执行几个额外的操作:

  1. 将模块配置文件 ModRapidGate.xml 和 ModRapidGate_Reg.xml 复制到编辑的项目中。在项目内部,这些文件位于 ScadaServer\Config\
  2. 激活模块后,将项目上传到服务器,以确定模块注册的计算机代码。计算机代码写在 C:\SCADA\ScadaServer\Log\ModRapidGate.log
  3. 通过联系开发人员或使用试用密钥生成器注册模块。注册密钥必须存储在项目文件 ScadaServer\Config\ModRapidGate_Reg.xml 的 RegKey 标记之间。
  4. 配置模块并将项目上传到服务器。

配置

要配置 Rapid Gate 模块,请使用文本编辑器编辑项目文件 ScadaServer\Config\ModRapidGate.xml。请注意,您通常需要在目标服务器上配置防火墙以允许传入 TCP 端口 10000 的连接。

简单考虑一下配置文件的内容:

XML 标记描述
网关部分。该文件可以包含几个这样的部分
常规选项 通用网关选项
连接选项 远程服务器连接选项。密码必须使用EncryptPassword.exe实用程序加密
映射选项 定义此服务器和远程服务器之间的通道、对象和设备编号的匹配
转移选项 将数据传输到远程服务器的选项
CurDataTransferOptions 当前数据传输选项
ArcDataTransferOptions 存档数据传输选项
事件传输选项 事件传输选项
InCmdTransferOptions 确定从远程服务器接收遥控命令的选项
OutCmdTransferOptions 确定将遥控命令传输到远程服务器的选项
弧上传选项 确定将档案上传到远程服务器的选项

存档上传

档案的上传状态在模块运行过程中保存,重启Server服务后恢复。状态文件被写入 Storage 目录。上传档案是自动执行的。但是,操作员可以手动发送命令以上传一段时间的档案。二进制类型的命令必须使用模块配置中指定的输出通道发送。

命令示例:

cmd=ArcUpload 
minDT=2020-02-18 10:00:00 
maxDT=2020-02-18 10:15:00

图表专业插件

概述

Chart Pro Plugin 是 Webstation 应用程序的附加插件,扩展了 Rapid SCADA 图表的功能:添加缩放、显示多个图表、导出为 PNG 和 PDF。

安装

首先,您需要执行安装插件的一般顺序,然后执行几个附加操作:

  1. 进入主菜单 > 注册 > Chart Pro
  2. 使用页面上的超链接注册插件。
  3. 进入主菜单 > 配置 > Web 应用程序
  4. 找到Chart 插件参数,从下拉列表中选择 Chart Pro 插件,然后单击Save Configuration按钮。
  5. 使用管理员应用程序将更改的 Webstation 设置下载到项目中。

配置

Chart Pro 插件默认配置。插件设置保存在 PlgChartPro.xml 文件中,该文件位于 Webstation 配置目录中的项目中。如有必要,系统管理员可以通过编辑现有文件或创建新设置文件来更改设置。

除配置文件外,图表显示由查询字符串决定。查询字符串的格式如下:
http://localhost/Scada/plugins/ChartPro/ChartPro.aspx?cnlNums=101&viewIDs=2&year=2020&month=3&day=31&mode=fixed&period=1&title=Test&config=PlgChartPro.xml

查询字符串参数如下。

范围价值观描述
cnlNums 逗号分隔的整数 图表上显示的输入通道号
视图 ID 逗号分隔的整数 查看每个输入通道的 ID
年月日 整数 显示数据的开始日期。如果未指定,则使用当前日期
模式 固定 | 滚动 图表模式:固定或滚动
时期 整数。它可以是正面的或负面的 图表相对于开始日期的周期。固定模式以天为单位,滚动模式以分钟为单位
标题 细绳。可以为空 图表标题
配置 细绳。可以为空 相对于 Web 应用程序配置目录的图表配置文件名

在固定模式下,插件显示选定时间段的图表。通过在图表右侧添加新值来自动更新图表数据。

在滚动模式下,插件显示从当前时刻到指定深度的图表。图表数据自动更新,而图表从右向左移动。

下图有助于理解图表的布局,以便更改插件配置。

图表布局

仪表板插件

概述

仪表板插件在仪表板上显示有用的小部件:图表、当前数据和任意帧,例如闭路电视摄像机流。每个仪表板的设置允许指定列数和小部件纵横比。

安装

首先,您需要执行安装插件的一般顺序,然后执行几个附加操作:

  1. 进入主菜单 > 注册 > 仪表板
  2. 使用页面上的超链接注册插件。
  3. 通过使用管理员应用程序下载 Webstation 设置,将注册码添加到项目中。

配置

指定仪表板

每个仪表板的配置存储在单独的 XML 文件中。仪表板示例 DashboardExample1.xml 包含在插件安装包中。仪表板文件可以位于界面目录中,也可以位于 Webstation 存储目录中。第一个选项是首选。

为了在 Webstation 的资源管理器树中显示仪表板链接,请在项目中执行以下设置:

  1. 在界面目录中创建和编辑仪表板文件。
  2. 在配置数据库的接口表中指定仪表板路径。

仪表板文件

编辑接口表

@DashboardView 路径后缀表示视图的类型。仪表板的访问权限是使用配置数据库的权限表配置的。它类似于编辑表格视图和方案的权限。

此外,仪表盘文件可以位于 Webstation 的存储目录中。在这种情况下,单击Webstation 主菜单的仪表板项目以显示可用仪表板的列表。存储中的仪表板位置示例:

ScadaWeb\storage\allusers\Dashboard\ - 可供所有用户使用的仪表板;
ScadaWeb\storage\myuser\Dashboard\ - MyUser 可用的仪表板。

仪表板文件结构

考虑仪表板配置文件的内容:

<?xml version="1.0" encoding="utf-8" ?>
<DashboardConfig>
  <DashboardOptions>
    <Name>Dashboard Example 1</Name>
    <ColumnCount>2</ColumnCount>
    <AspectRatio>1.33</AspectRatio>
  </DashboardOptions>
  <Widgets>
    <Widget type="Chart" cnlNums="101,102" viewIDs="2,2" period="2" />
    <Widget type="Chart" cnlNums="101,103" viewIDs="2,2" mode="fixed" period="2" title="Sample Chart" config="PlgChartPro.xml" />
    <Widget type="CurData" cnlNums="101,102,103,104,105,106,107,115" viewIDs="2,2,2,2,2,2,2,2" title="Sample Data" />
    <Widget type="View" viewID="2" />
    <Widget type="CustomUrl" url="https://www.youtube.com/embed/EEIk7gwjgIM" />
  </Widgets>
</DashboardConfig>

DashboardOptions部分包含常用仪表板参数:
名称 - 仪表板名称, ColumnCount - 1 到 4 的
列数(小部件在移动设备的小屏幕上显示在单列中),
AspectRatio - 小部件宽度与其高度的比率。

部件部分包含显示在仪表板上的小部件列表。小部件的数量是任意的。但是,同一仪表板上的太多小部件会降低 Web 应用程序的性能。

支持以下类型的小部件:
Chart - 指定输入通道的图表,
CurData - 包含指定输入通道的当前数据的表格,
View - 具有指定 ID 的视图,
CustomUrl - 自定义网页。

Chart 和 CurData 类型的小部件的配置必须定义输入通道号以及包含这些输入通道的视图的标识符。用户访问权限验证需要查看 ID。

弹性报表插件

概述

Elastic Report Plugin 允许根据自定义配置生成报告。使用此插件,您可以构建几乎任何所需的报告。用户只需选择时间段并单击生成报告按钮。管理员创建报表配置,定义一组不同的报表部分并将报表列和行绑定到系统数据。

安装

首先,您需要执行安装插件的一般顺序,然后执行几个附加操作:

  1. 转到主菜单 > 注册 > 弹性报告
  2. 使用页面上的超链接注册插件。
  3. 通过使用管理员应用程序下载 Webstation 设置,将注册码添加到项目中。

报告配置

一份报告由一组部分组成,这些部分在输出文档中逐一列出。每个部分都有自己的类型、参数和数据绑定。此外,该报告具有影响所有部分的一般参数。可以以多种格式生成相同的报告。目前支持的 Excel、PDF 和 HTML 格式。以不同格式生成的同一份报告的外观可能略有不同。

报告配置文件

配置文件指定报告格式并定义报告数据与输入通道的绑定。每个报告表单必须有一个单独的配置文件。配置文件为 XML 格式。它必须保存在项目中的接口目录或其子目录中。

插件分发包包含报告配置文件 SCADA\Interface\ElasticReport\ElasticRepExample.xml 的示例。此示例包括设置的详细说明,并演示了所有可能类型的报告部分的生成。

配置文件可以使用任何文本编辑器进行编辑。例如,免费文本编辑器Notepad++支持通过特殊插件轻松处理 XML 文件。

报告样式

可以自定义报告样式:字体、颜色、单元格大小等。

文件 SCADA\ScadaWeb\plugins\ElasticReport\templates\ElasticRepExcel.xml 指定 Excel 格式的报告样式。

要创建自定义样式,请在 Excel 中打开此文件,然后转到其他样式所在的“自定义样式”页面。使用默认样式页面中的样式作为示例。

PDF 格式的自定义样式在文件
SCADA\ScadaWeb\plugins\ElasticReport\templates\ElasticRepPdfCustom.xml中指定

定义 PDF 样式的 XML 文件是使用任何文本编辑器手动编辑的。使用位于 ElasticRepPdfDefault.xml 中的默认样式作为示例。

HTML 输出的报告样式在文件
SCADA\ScadaWeb\plugins\ElasticReport\css\customstyles.css 中根据 Cascade Style Sheets 的规则进行配置。

在配置数据库中添加报告

要使报告在可用报告列表中可见,必须使用管理员应用程序在接口表中指定它。指定接口目录相关的报表配置文件路径,指定ElasticRep报表类型并输入报表标题(见图)。项目上传到服务器后,报告在主菜单 > 报告页面上可用。

报告文件

编辑接口表

地图插件

概述

Map Plugin 在 OpenStreetMap 交互式地图上显示位置的状态和参数。该插件允许监控地理分布的系统并导航到某个位置的详细信息页面。

安装

首先,您需要执行安装插件的一般顺序,然后执行几个附加操作:

  1. 进入主菜单 > 注册 > 地图
  2. 使用页面上的超链接注册插件。
  3. 通过使用管理员应用程序下载 Webstation 设置,将注册码添加到项目中。

创建地图

地图是快速 SCADA 的视图。地图的创建和编辑类似于使用方案和表格视图。

地图文件

显示选项和地图位置存储在带有地图扩展名的文件中。映射文件必须放在项目中的接口目录或其子目录中。

插件安装包包含地图文件 SCADA\Interface\Map\MapExample.map 的示例。要编辑地图文件,请使用任何熟悉的文本编辑器,例如Notepad++。要创建您自己的地图,请使用新名称创建示例文件的副本并对其进行编辑。地图文件的名称是任意的,文件扩展名为map。

Tiling部分包含用于连接到切片服务器的参数。瓷砖用于构成地图背景。有来自不同供应商的瓦片服务器,包括付费和免费的。

<Tiling>
  <UrlTemplate>https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png</UrlTemplate>
</Tiling>

InitialView部分指定地图的初始坐标和比例刻度是从 0 到 18 的整数。

<InitialView>
    <Lat>48.861111</Lat>
    <Lon>2.336389</Lon>
    <Zoom>13</Zoom>
</InitialView>

位置部分描述了地图上显示的一组位置。让我们考虑一个例子:

<Locations>
  <Location>
    <Lat>48.858222</Lat>
    <Lon>2.2945</Lon>
    <Name>Eiffel Tower</Name>
    <Descr>Avenue Anatole France, Paris, France</Descr>
    <StatusCnlNum>0</StatusCnlNum>
    <Data>
      <DataItem cnlNum="101" />
      <DataItem cnlNum="115">Avg. temp</DataItem>
    </Data>
    <Link viewID="2" />
  </Location>
  ...

Lat и Lon - 地图位置的纬度和经度,
Name - 位置名称, Descr
- 附加描述,
StatusCnlNum - 输入通道的编号,表示该位置的状态;0 - 未指定通道;正通道值表示该位置正常,否则该位置需要注意,
DataItem - 显示的与输入通道关联的数据项,
Link - 对包含有关位置的详细信息的视图的引用。

将地图添加到配置数据库

要使地图在视图树中可见,必须使用管理员应用程序将其注册到界面表中。指定映射文件相对于界面目录的路径,并输入标题,即树节点的文本(见图)。

地图文件

编辑接口表

要在 Web Station 应用程序中显示更改,请将项目上传到服务器并重新登录 Web 应用程序。结果是:

地图示例

通知插件

概述

通知插件帮助操作员关注最重要的事件。该插件根据指定的规则根据事件生成通知,并显示在网页右侧出现的通知面板中。此外,插件会根据通知类型打开声音警报。

安装

首先,您需要执行安装插件的一般顺序,然后执行几个附加操作:

  1. 进入主菜单 > 注册 > 通知
  2. 使用页面上的超链接注册插件。
  3. 通过使用管理员应用程序下载 Webstation 设置,将注册码添加到项目中。

如果插件安装正确,网页右上角会有一个铃铛。

配置

Notification 插件的配置存储在 PlgNotification.xml 文件中。该文件必须包含在项目中并位于 Webstation 的配置文件夹中。在运行时,插件配置文件位于 C:\SCADA\ScadaWeb\config\

考虑配置文件的内容:

XML 标记描述
常规选项 一般选项部分
周期 采取事件创建通知的周期(以天为单位)
DispNotifCnt 显示的通知数
通知选项 包含选项的部分确定如何生成通知
InfoCondition
WarningCondition
ErrorCondition
指定生成信息、警告和错误类型通知的条件
状态 输入导致新通知的通道状态
参数 ID 允许通知的输入通道的数量 ID
提示 指定通知提示的部分
小费 部分确定一个提示
提示条件 小费的状况
关联 如果已定义,则指定要按提示导航的链接
html 提示标记而不是链接

附加应用

自动报告应用程序

概述

自动报告应用程序旨在自动生成各种报告,将它们保存到磁盘并通过电子邮件发送。使用自动控制模块设置生成报告的时间表。通过电子邮件发送报告由相应的 KpEmail.dll 驱动程序提供,该驱动程序包含在标准快速 SCADA 安装中。

支持以下类型的报告:

  • 每小时数据报告;
  • 事件报告;
  • 分钟数据报告;
  • 弹性报告。

工作算法

自动报告作为一项服务工作。它连接到服务器应用程序并永久准备好接收命令。作为服务器的一部分运行的自动控制模块发送命令以执行任务以在指定时间生成报告。由于一个命令,生成一组报告并以办公文件或存档的格式保存到磁盘。如果设置了相应的选项,则自动报告应用程序将命令传递给服务器以通过电子邮件发送生成的报告。

安装

  1. 解压应用安装包。
  2. 将安装包SCADA文件夹中的所有文件复制到Rapid SCADA安装目录下,默认为C:\SCADA,目录层次结构不变。
  3. 以管理员身份执行文件 ScadaAutoReport\svc_install.bat 来注册服务。
  4. 以管理员身份执行文件 ScadaAutoReport\svc_start.bat 以运行服务。
  5. 打开应用程序 ScadaAutoReport\ScadaAutoReportConfig.exe,转到注册选项卡并注册应用程序。

配置

自动报告的配置存储在文件 C:\SCADA\ScadaAutoReport\Config\ScadaAutoReportConfig.xml 中。要编辑配置,需要使用 ScadaAutoReportConfig.exe 应用程序。其用户界面如下图所示:

自动报告的一般选项

自动报告的任务选项

要使自动报告工作,需要在项目中执行某些设置:

  1. 创建通信线路、设备和输出通道,以通过电子邮件将报告发送给指定的收件人。
  2. 创建设备和输出通道以发送和接收用于生成报告的命令。
  3. 添加一个新用户,用于将应用程序连接到服务器。
  4. 配置自动控制模块以按计划发送命令。
  5. 在 Communicator 中设置电子邮件发送。

动作 1、2、3 如下图所示:

通讯线路

设备

输出通道

用户

自动控制模块(第 4 项)的设置如下图所示:

自动控制模块

用于发送电子邮件的 Communicator 设置示例(第 5 项)包含在 DemoProject.en-GB.rsproj 项目中。下图显示了设备属性:

电子邮件设置

Operation

完成配置或更改现有配置后,重新启动自动报告服务。为此,请以管理员身份运行文件 ScadaAutoReport\svc_restart.bat 或使用 Windows 管理控制台。服务名称是 ScadaAutoReportService。

要执行检查,请运行管理员应用程序生成报告的任务。打开生成器表单并发送标准命令,指定负责生成报告的控制通道。本例中,输出通道号为201。使用任务ID作为命令值。然后检查位于目录 C:\SCADA\ScadaAutoReport\Log\ 中的日志文件

遥控指令

如果应用程序运行良好,生成的报告会保存在常规选项中指定的目录中,默认为 C:\SCADA\Reports\

用例

使用 Modbus 协议连接设备

本文介绍如何使用 Modbus 协议配置与设备的通信。Modbus 简单而健壮,从此成为事实上的标准通信协议,现在它是连接工业电子设备的常用手段(参见Wikipedia)。Rapid SCADA 支持 Modbus RTU、ASCII 和 TCP 模式。

配置的一般顺序:

  1. 使用 Administrator 应用程序创建项目。
  2. 创建一个新对象、一条通信线路和设备。
  3. 配置 Communicator 和设备之间的通信。
  4. 根据设备的标签在配置数据库中创建输入通道。根据命令创建输出通道。
  5. 创建视图(表或方案)以在 Webstation 应用程序中显示数据。在配置数据库中定义视图。

以下是设置新 Modbus 设备的分步指南。

创建项目

运行管理员并单击新建项目按钮。在对话框中输入项目名称,然后单击“确定”按钮。如果选择名为 EmptyProject.en-GB 的空项目作为模板,设置过程与文章完全一致。

创建项目
Fugire 1. 创建项目

初步数据库配置

展开Configuration Database节点,打开Objects表并为对象 2“Test object”添加一个新行(参见图 2)。单击工具栏按钮打开通信线路向导。使用向导,添加第 1 行“测试线”(参见图 3)。之后单击按钮并添加设备 1“测试设备”(参见图 4)。

添加对象
Fugire 2. 添加对象

添加通讯线路
Fugire 3. 添加通讯线路

添加设备
Fugire 4. 添加设备

添加设备时请注意以下字段:

设备类型: Modbus
地址: 您设备的 Modbus 地址,例如 1
电话号码: IP 地址,如果设备通过以太网连接。否则,留空
通讯线路: 最近创建的“测试线”

打开通信线路设备表以检查通信线路和设备是否已成功添加到表中。确保在 Communicator 设置中创建了相应的通信线路和设备。

配置与设备的通信

在项目浏览器中,进入通讯器设置,展开刚刚创建的通讯线路节点,双击线路参数节点。配置主要参数页面上显示的通信通道(参见图 5)。在 Modbus 通信的情况下,最常见的通道类型是TCP 客户端串行端口

通讯线主要参数
图 5 通信线路主要参数

如果通过串行端口进行通信,下表列出了典型的串行端口参数,具体取决于 Modbus 类型。在 RTU 和 ASCII 模式下,通信器设置中指定的波特率与设备上设置的波特率必须匹配。连接到一条通信线路的所有设备必须使用相同的 Modbus 类型和相同的波特率运行。

Modbus RTUModbus ASCIIModbus TCP
8 个数据位,
偶校验,
1 个停止位
7 个数据位,
偶校验,
1 个停止位
-
8 个数据位,
无奇偶校验,
2 个停止位
7 个数据位,
无奇偶校验,
2 个停止位
-

转到Request Sequence页面并选择“Test device”行(参见图 6)。如果未指定设备轮询时间和周期,则循环轮询设备。轮询完成后立即发送命令。

设备请求序列
图 6. 设备请求序列

单击属性按钮打开设备属性表单(参见图 7)。在表格中选择 Modbus 类型,必须在设备手册中指定。在我们的例子中,Modbus TCP。

设备属性
图 7. 设备属性

按钮选择现有设备模板,或单击以创建新模板。单击创建按钮或编辑按钮时,将显示设备模板编辑器(参见图 8)。本文使用已有模板KpModbus_Adam6015.xml,之前复制到工程目录C:\SCADA\Projects\ModbusTest\Instances\Default\ScadaComm\Config\

设备模板编辑器
图 8. 设备模板编辑器

设备模板反映了 Modbus 包的结构。请求的数据被组合成元素组。每个组都有其名称、数据表、起始地址和元素计数。每个元素都是设备的标签。Rapid SCADA 通过其信号编号识别标签。命令由其名称、数据表和地址来描述。命令编号标识 Rapid SCADA 中的命令。

组、元素和命令的名称是任意的。可用的数据表和元件地址通常在设备手册中描述。根据制造商的不同,元素的寻址可以从零开始或从一开始,指定为十进制或十六进制数。默认情况下,地址以 1 开头并表示为小数。要切换模板寻址,请单击按钮。模板设置对话框打开(参见图 9)。

模板设置
图 9. 模板设置

编辑设备属性(参见图 7)完成后,单击OK。设备参数的命令行字段包含模板文件名 KpModbus_Adam6015.xml。通过按钮将项目上传到服务器。

在项目浏览器中双击设备节点以检查设备状态和数据可用性(参见图 10)。此示例的数据由Modbus Simulator提供。

设备数据
图 10. 设备数据

如果与设备失去通信,请使用通信线路日志了解问题原因。要打开日志,请双击Line Stats树节点并转到Line Log页面。数据包可以通过在线 Modbus Parser进行解码。

创建频道

与设备建立通信后,在配置数据库中创建输入通道和输出通道。创建通道最快的方法是按钮调用的向导。如果系统中添加了多个相同类型的设备,可以通过通道克隆工具加速配置。

执行向导步骤(参见图 11-13),从下拉列表中选择之前创建的通信线路、设备和对象。要检查可用的频道编号,请使用步骤 3 中的频道映射。

创建渠道。 步骤1
图 11. 创建通道。步骤1

创建渠道。 第2步
图 12. 创建通道。第2步

创建渠道。 第 3 步
图 13. 创建通道。第 3 步

单击创建按钮创建通道。通道是根据在本文上一节中创建并分配给设备的设备模板自动创建的。要查看创建的通道,请打开输入通道 > 测试设备表和输出通道 > 测试设备表。建议手动填写输入通道的数量单位字段以及输出通道的命令值字段。然而,在第一个实验的情况下,这是不必要的。有助于理解输入通道使用信号绑定到设备标签场地。输出通道根据命令编号字段绑定到设备命令。

配置数据库编辑完成后,通过按钮将工程上传到服务器。在 Communicator 设置中打开设备数据页面,确保输入通道绑定到设备标签。Channel列必须包含创建的输入通道的编号(参见图 14)。

绑定到通道的设备数据
图 14. 绑定到通道的设备数据

作为上述操作的结果,应从设备中收集数据并将其存储在档案中。仍然需要为操作员定制用户界面。

自定义操作员用户界面

考虑为 Webstation 应用程序创建一个表视图。如果需要在方案上显示数据,创建视图的步骤类似。

右键单击项目资源管理器的接口节点。首先,在上下文菜单中选择新建文件夹并创建 ModbusTest 文件夹。然后在创建的文件夹的上下文菜单中,选择New File(参见图 15)。在打开的窗口中,设置表格视图类型,指定文件名 ModbusDevice.tbl 并单击OK按钮(参见图 16)。

用于创建视图的菜单
图 15. 创建视图的菜单

视图创建对话框
图 16. 视图创建对话框

创建的视图文件出现在项目资源管理器中。双击文件打开表编辑器。输入标题并填写视图项,如图 17 所示。保存更改并关闭编辑器。

编辑视图
图 17. 编辑视图

创建视图文件后,在配置数据库的Interface表中指定父目录和文件(参见图 18)。

在接口表中添加视图
图 18. 在 Interface 表中添加一个视图

通过按钮将项目上传到服务器。现在启动浏览器并输入地址http://localhost/scada/。在登录表单上使用admin / 12345(参见图 19)。如果配置正确执行,登录后,您将看到一个表格,其中包含从设备获取的数据,类似于图 20。

登录表单
图 19. 登录表单

Webstation 应用程序
图 20. Webstation 应用程序

Modbus 标签转换

接收到的元素值可能需要转换。设备模板允许选择元素使用的字节数和字节顺序。这些设置定义了初始转换。如果需要,SCADA-Server 会根据配置数据库中的输入通道公式执行额外的转换。

最简单的转换是由以下公式描述的比例:

X * (B - A) / 2 N + A,其中 A 和 B 是元素值范围的边界,N – 值中的位数,X – 接收值。

另一种常用的转换是二进制补码。有关详细信息,请参阅维基百科。公式可以在配置数据库的输入通道行中内联定义,也可以使用公式表单独定义。本节介绍了公式的使用。

使用 OPC 标准连接设备

本文介绍如何使用 OPC 标准配置与设备的通信。OPC 旨在为来自不同制造商的软件和过程控制设备提供一个通用的桥梁(参见Wikipedia)。Rapid SCADA 支持以下 OPC 规范:

  • OPC DA(数据访问)读取和写入当前设备数据。
  • OPC AE(警报和事件)接收事件通知。

OPC 客户端的快速 SCADA 实施由 Communicator 应用程序提供,确切地说,由 KpOpc.dll 驱动程序提供。本文的目的是了解 Communicator 配置以使用 OPC 的详细信息。

一般配置顺序:

  1. 下载并安装 OPC 核心组件。这些组件可以在opcfoundation.orgrapidscada.org找到。
  2. 使用 Administrator 应用程序创建项目。
  3. 在配置数据库中创建对象、通信线路和设备。
  4. 按照本文所述配置 Communicator 和 OPC 服务器之间的通信。
  5. 根据设备的标签在配置数据库中创建输入通道。根据命令创建输出通道。
  6. 创建视图(表或方案)以在 Webstation 应用程序中显示数据。在配置数据库中定义视图。

上述步骤的详细信息(不包括步骤#4)在软件配置部分进行了描述。建议查看项目 DemoProject.en-GB,它与 Rapid SCADA 一起安装。设备 21“OPC Demo”是使用 OPC 的示例。设备标签由表视图 OpcDemo.tbl 显示。此示例需要提供数据的MatrikonOPC 模拟服务器。

为使用的每个 OPC 服务器创建单独的通信线路。这是最有效的方法,因为它允许与 OPC 服务器并行通信。为 Communicator 中创建的通信线路设置未定义的通信通道类型。然后将设备添加到通信线路。

转到 Communicator 设置并打开设备属性。图 1 所示的配置表单允许选择从 OPC 服务器接收哪些 OPC 标签。

选择 OPC 变量
图 1. 选择 OPC 标签

Communicator 可以使用安装在本地计算机上的 OPC 服务器。如果需要来自安装在网络中另一台计算机上的 OPC 服务器的数据,请在该计算机上部署一个额外的 Communicator 实例并正确配置它以连接到服务器应用程序。

将 OPC 标签绑定到配置数据库的输入通道有两种方法:

  1. 使用设备标签和输入通道的Signal字段来识别标签。
  2. 直接在图1所示的配置表中设置输入通道号。

选择更适合自动化系统特定配置的方式。

配置完成后,通过按钮将工程上传到服务器。使用 Communicator 日志检查 OPC 通信状态和接收数据(参见图 2)。如果 Communicator 中的数据似乎是真实的,请打开浏览器并在 Webstation 应用程序中查找相同的数据。

OPC 变量的值
图 2. OPC 标签的值

使用 OPC 的已知问题:当 OPC 标签属性在设备配置表单中可用时,无法从 OPC 服务器接收数据,不会引发错误消息。

可能的原因是 Communicator 服务以系统用户身份运行,但 OPC 服务器禁止与系统用户交互。

解决方案 1。指定用于运行 OPC 服务器的用户帐户。要打开 DCOM 配置(参见图 3),请遵循路径Control Panel\System and Security\Administrative Tools\Component Services或只运行comexp.msc

DCOM 配置
图 3. DCOM 配置

解决方案 2。指定用于运行 Communicator 服务的用户帐户。转到Control Panel\System and Security\Administrative Tools\Services或运行services.msc,找到 ScadaCommService 并打开服务属性。然后在Log On页面输入用户账号和密码,如图4所示。指定的用户必须是计算机管理员。

服务属性
图 4. 服务属性