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 包括以下主要應用:
- Webstation是一個 Web 應用程序,它通過瀏覽器以不同的形式(表格、示意圖、圖表、報告)向調度員顯示信息並提供發送命令。
- 服務器管理數據存檔、執行數學計算並向客户端應用程序提供信息。
- Communicator與控制器交互,將數據傳輸到服務器應用程序。
使用 Web 技術提供數據訪問顯着簡化了系統的部署和維護,這對於大量用户來説尤其重要。
系統控制的常用設備有電錶、熱量表、火災和安全報警器、門禁控制器等設備。
應用説明
服務器應用程序
服務器管理數據存檔、執行數學計算並向客户端應用程序提供信息。服務器將數據寫入主存檔並同時製作備份副本。
圖 1. 用於服務器配置的圖形外殼
服務器作為服務工作。它沒有用户界面。無論用户登錄和註銷,服務器都會在後台連續運行。用於服務器配置的圖形外殼內置於 Administrator 應用程序中(參見圖 1)。
該應用程序在處理請求和傳遞命令時監視用户連接並檢查用户權限。有關應用程序狀態和執行操作的信息存儲在文本日誌文件中。服務器專為不間斷運行而設計。
附加的服務器模塊允許根據客户要求擴展服務器的功能。
通訊器應用程序
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 應用程序設置期間,安裝程序會檢查這些功能的可用性。
圖 1. Windows 7 .NET 組件
圖 2. Windows 7 IIS 組件
圖 3. Windows 10 .NET 組件
圖 4. Windows 10 IIS 組件
安裝
運行安裝包中的ScadaSetup.exe開始快速 SCADA 安裝。安裝程序如圖 5 所示。必須使用管理員帳户執行安裝。Rapid SCADA 需要安裝最新版本的 Microsoft .NET Framework。安裝程序會檢查框架是否存在,並在必要時建議下載並安裝它。
圖 5. 快速 SCADA 安裝程序
在安裝開始之前,會要求用户選擇應用程序和安裝目錄(參見圖 5 和圖 6)。此目錄指定整個軟件的位置。安裝程序會創建所選應用程序所需的子目錄。由於簡化了應用程序的配置,建議使用默認目錄C:\SCADA 。
圖 6. 選擇安裝目錄
Web 應用程序安裝選項(參見圖 7)已與系統管理員商定。如果對 Web 應用程序沒有特定要求,則應使用默認值。
圖 7. Web 應用程序安裝選項
安裝完成後,建議檢查Scada Web 應用程序是否使用具有 .NET 4.0 運行時版本和集成管道模式的應用程序池。IIS 管理控制枱路徑是Control Panel > System and Security > Administrative Tools > Internet Information Services (IIS) Manager。
手動安裝
手動快速 SCADA 設置提供對軟件安裝、更新和卸載過程的完全控制。
手動安裝順序:
- 通過選擇適當的 Windows 功能來安裝 Microsoft Internet 信息服務 (IIS)。更多細節...
- 安裝系統要求中指定版本的 Microsoft .NET Framework(在框架之前安裝 IIS)。
- 將安裝包的 Arc 文件夾中的文件解壓到 SCADA 安裝目錄。推薦目的地是 C:\SCADA
- 打開 IIS 管理控制枱:控制面板 > 系統和安全 > 管理工具 > Internet 信息服務 (IIS) 管理器。
- 將 Web 應用程序添加到站點樹。右鍵單擊適當的站點,在大多數情況下為默認網站,然後選擇添加應用程序菜單項。
- 輸入應用程序別名:Scada。檢查所選應用程序池是否使用 .NET 4.0 運行時版本和集成管道模式。指定 Web 應用程序文件的物理路徑:C:\SCADA\ScadaWeb。然後單擊確定。
- 通過以管理員身份執行 ScadaServer\svc_install.bat 來註冊 ScadaServerService。
- 通過以管理員身份執行 ScadaComm\svc_install.bat 來註冊 ScadaCommService。
- 通過以管理員身份執行 ScadaAgent\svc_install.bat 來註冊 ScadaAgentService。
- 如有必要,在桌面上為管理員和 Webstation 應用程序創建快捷方式。
- 運行應用程序。
手動卸載順序:
- 使用 IIS 管理器刪除 Scada Web 應用程序。
- 停止 ScadaServerService 和 ScadaCommService 服務,關閉 Rapid SCADA 的所有應用程序。
- 通過以管理員身份執行 ScadaServer\svc_uninstall.bat 來取消註冊 ScadaServerService。
- 通過以管理員身份執行 ScadaComm\svc_uninstall.bat 來取消註冊 ScadaCommService。
- 通過以管理員身份執行 ScadaAgent\svc_uninstall.bat 來取消註冊 ScadaAgentService。
- 從硬盤中刪除 SCADA 文件夾並從桌面上刪除快捷方式。
安裝附加模塊
Rapid SCADA 支持擴展軟件功能的附加模塊。本節包含對大多數模塊典型的常見安裝順序的描述。
服務器模塊的安裝
安裝新的或更新服務器應用程序的現有模塊的順序:
- 如果管理員應用程序正在運行,請關閉它。
- 解壓模塊安裝包。
- 將模塊安裝包SCADA文件夾中的所有文件複製到Rapid SCADA安裝目錄下,默認為C:\SCADA,目錄層次不變。
- 如果使用 Windows 8 或更高版本,找到 C:\SCADA\ScadaServer\Mod\Mod*.dll,打開文件屬性並取消阻止文件。
- 啓動 Administrator,打開項目並使用項目資源管理器打開服務器 > 模塊頁面。
- 在未使用的模塊列表中選擇已安裝的模塊,然後單擊激活按鈕。
- 執行模塊文檔中指定的模塊配置。
- 保存項目並使用按鈕將配置上傳到服務器。
安裝通訊器驅動程序
安裝 Communicator 應用程序的新驅動程序或更新現有驅動程序的順序:
- 如果管理員應用程序正在運行,請關閉它。
- 解壓驅動安裝包。
- 將驅動安裝包的SCADA文件夾中的所有文件複製到Rapid SCADA安裝目錄下,默認為C:\SCADA,目錄層次不變。
- 如果使用 Windows 8 或更高版本,找到 C:\SCADA\ScadaComm\KP\Kp*.dll,打開文件屬性並解鎖文件。
- 啓動 Administrator,打開項目並使用項目資源管理器打開Communicator > Drivers頁面。
- 確保已安裝的驅動程序在可用驅動程序列表中。如果選擇了驅動程序,則會顯示其描述。
安裝 Webstation 插件
Webstation 應用程序的附加模塊稱為插件。新插件的安裝順序:
- 解壓插件安裝包。
- 將插件安裝包的SCADA文件夾中的所有文件複製到Rapid SCADA安裝目錄下,默認為C:\SCADA,目錄層次不變。
- 如果使用 Windows 8 或更高版本,找到 C:\SCADA\ScadaWeb\bin\Plg*.dll,打開文件屬性並解鎖文件。
- 以管理員身份登錄 Web 應用程序,然後轉到Main Menu > Plugins > Installed。
- 在頁面上找到新插件,然後單擊激活鏈接。
- 執行插件文檔中指定的插件配置。
第一次運行
安裝 Rapid SCADA 後,建議重新啓動計算機,以便 Server、Communicator 和 Agent 服務自動啓動。重新啓動完成後,運行以下瀏覽器之一:Google Chrome、Mozilla Firefox 或 Microsoft Edge。在地址欄中,鍵入http://localhost/scada/。登錄頁面應該打開(參見圖 1)。在登錄和密碼字段中輸入admin和12345 ,然後單擊登錄按鈕。
圖 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)。
圖 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 遷移到另一台服務器時的典型任務:
- 使用開發人員工作站完成配置後在生產服務器上的軟件部署。
- 服務器更換。
遷移配置的步驟是:
- 確保服務器和設備之間的連接配置正確:存在所需的串行端口、可通過網絡使用的工業控制器等。
- 在新服務器上安裝 Rapid SCADA,但不要啓動 Server 和 Communicator 服務。
- 停止過時服務器上的 Server 和 Communicator 服務。將這些服務的啓動類型切換為手動。
- 將位於以下目錄中的數據存檔從過時的服務器複製到新服務器:
C:\SCADA\ArchiveDAT
C:\SCADA\ArchiveDATCopy - 通過以下方式之一將配置從過時的服務器轉移到新服務器。
- 將下列目錄的內容從過時的服務器複製到新服務器(顯示默認目錄):
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 Server和Restart Communicator複選框。
- 在新服務器上啓動 Server 和 Communicator 服務。
- 檢查新服務器是否運行良好。
將 Rapid SCADA 更新到新版本必須首先在測試環境中執行。仔細閲讀新版本中所做的更改列表。如果更改了配置數據庫結構或更改了存檔或配置文件格式,則需要特殊的實用程序來轉換數據。
只有在確保新版本的 Rapid SCADA 在測試環境中正常運行的情況下,才允許在生產服務器上進行安裝。
更新 Rapid SCADA 的步驟:
- 默認情況下,對位於 C:\SCADA 目錄中的 Rapid SCADA 的所有文件進行備份。
- 使用安裝程序 ScadaSetup.exe 卸載 Rapid SCADA。
- 安裝新版本的 Rapid SCADA 並從備份副本遷移配置。
- 按 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,建議遵循下面描述的一般配置順序。在獲得一些經驗後,更好地理解應用程序之間的依賴關係,可以改變順序以提高效率。
- 創建一個新項目或打開一個現有項目。
- 將對象、通信線路和設備添加到配置數據庫中。要創建通信線路和設備,建議使用使用管理員工具欄上的
- 和
- 按鈕打開的嚮導。
- 檢查添加的通信線路和設備是否存在於 Communicator 設置中。如有必要,通過從項目瀏覽器的通信線路節點的上下文菜單中選擇導入菜單項來導入它們。
- 在 Communicator 中配置與設備的通信。
- 在配置數據庫中創建輸入和輸出通道。建議使用
- 按鈕打開的嚮導。
- 創建視圖並在配置數據庫的接口表中指定它們。
- 通過按鈕將項目上傳到服務器。
配置數據庫結構
配置數據庫是整個自動化系統的結構化描述。Rapid SCADA 中包含的應用程序將配置數據庫中的信息與其設置結合使用。
配置數據庫使用管理員應用程序作為項目的一部分進行編輯。配置數據庫的編輯實例是 XML 文件格式。當項目上傳到服務器執行時,配置數據庫被轉換為特殊的 DAT 格式。
配置數據庫由表組成,而表又由列和行組成。每個表都屬於以下組之一:
- 系統。該組包含定義特定自動化系統配置的表格。
- 字典。該組包含輔助表。在大多數情況下,不需要更改這些表。
下表描述了配置數據庫表。
|
表名
|
描述
|
|
系統組 |
|
|
對象 |
包含用於在系統中構建信息的邏輯對象。對象可以解釋為位置
|
|
通訊線路 |
描述用於與設備交換數據的通信線路
|
|
設備 |
包含真實或虛擬設備
|
|
輸入通道 |
定義從設備接收的數據和計算的數據
|
|
輸出通道 |
指定系統執行的命令
|
|
角色 |
包含角色。每個角色定義了一組可供用户使用的功能
|
|
用户 |
包含系統用户及其角色的列表
|
|
界面 |
包含界面對象(視圖、報告和數據窗口)的描述
|
|
權利 |
按角色定義接口對象的權限
|
|
詞典集團 |
|
|
渠道類型 |
輸入通道類型字典
|
|
命令類型 |
輸出通道使用的命令類型字典
|
|
事件類型 |
歸檔中系統事件類型和輸入通道狀態的字典
|
|
設備類型 |
可連接到系統的設備類型字典
|
|
數量 |
測量量字典
|
|
單位 |
輸入通道值的單位字典和輸入通道的可枚舉值
|
|
命令值 |
輸出通道傳輸的可枚舉指令值字典
|
|
數字格式 |
用於顯示輸入通道值的格式字典
|
|
公式 |
用於計算輸入通道數據和輸出通道指令值的公式字典
|
編輯配置數據庫
配置數據庫表之間是有關係的,即一個表的一個單元格可以引用另一個表的記錄。例如,每個設備指的是它所連接的通信線路。因此,按照一定的順序編輯表格是有效的。對於系統組中的表,按從對象表開始到權限表結束的順序輸入數據。
要添加通信線路和設備,建議使用使用
和
按鈕打開的嚮導。使用該向導可以向配置數據庫表中添加一個條目,還可以在 Communicator 設置中創建相應的實體。要創建輸入和輸出通道,請使用
按鈕打開的嚮導。但是,選擇的設備驅動程序必須支持自動創建通道,否則應手動輸入通道。如果該
按鈕顯示在表格工具欄上,則可以使用表單視圖編輯表格。編輯通道屬性的表格如圖 1 和圖 2 所示。
圖 1. 輸入通道屬性
圖 2. 輸出通道屬性
使用現有作品可以顯着加快創建配置數據庫的速度。為了在不同數據庫之間交換信息,Administrator 應用程序支持Import table和Export 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) 也加快了編輯速度。
公式用於計算輸入通道的值和狀態以及計算命令的值。公式處理由服務器應用程序執行。
公式在配置數據庫的輸入通道和輸出通道表的公式列中輸入。要啓用公式,請勾選使用的公式列中的複選框。公式表包含可用於輸入和輸出通道公式的附加函數和數據結構。
公式編寫規則
編寫和使用公式的一般規則:
- 公式使用C# 語言的表達式語法。許多 Microsoft .NET 類都是可訪問的,例如 Math 和 DateTime 類。
- 可以添加新的常量、字段、屬性和方法以在公式中使用。
- 如果至少有一個公式包含錯誤,則服務器操作是不可能的。有關公式中的錯誤的信息寫入服務器應用程序日誌中。
計算輸入通道公式的規則:
- Discrete和Real類型的Channels 是在Server 接收到通道數據時計算的。如果公式不引用其他通道的數據,請使用這些通道類型。
- Calculated *和Switching 計數器類型的通道會根據通道編號按順序永久計算。一個計算出的通道的公式通常是指其他通道的數據。
- Minute *和Hourly *類型的頻道會定期計算,每分鐘一次或每小時一次。使用這些通道類型來創建累積值,例如能耗或運行時間。
- 對於Discrete和Real類型的通道,如果沒有明確指定狀態計算,則計算後的通道狀態等於 Server 接收到的這些通道的狀態。
- 如果未明確指定狀態計算,則將其他類型通道的狀態設置為已定義。
- 不包含“;”的輸入通道公式 (分號)符號僅計算輸入通道值。
- 如果輸入通道公式包含“;”,則公式計算輸入通道值和狀態。分號之前的第一部分是價值計算公式,分號之後的第二部分是計算狀態。
- 如果指定了通道限制,則在計算通道公式後重新計算通道狀態並考慮限制。
- 計算通道值的公式必須返回一個double類型的實數,計算狀態的公式返回一個int類型的整數。
計算輸出通道公式的規則:
- 為具有標準和二進制命令類型的輸出通道處理公式。
- 標準命令的計算公式必須返回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 支持三種用户身份驗證方法:
- 基於存儲在配置數據庫中的用户名和密碼。
- 基於活動目錄。
- 組合法。
為了執行身份驗證,客户端應用程序(例如 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 之間的任何交互。這些選項對於測試連接到系統的新設備很有用。
如果設備的Time和Period參數等於 0,則循環請求該設備。如果Time參數大於零且Period為零,則設備在指定時間每天請求一次。如果Period大於零,則從指定時間開始定期請求設備。Timeout字段定義了在請求後等待設備應答的時間。延遲字段定義每次向設備發出請求後的延遲。命令行可能包含設備驅動程序文檔中描述的附加參數。
要將所選設備的請求參數重置為默認值,請單擊“重置”按鈕。要打開設備屬性表單,如果所選設備的驅動程序支持它,請單擊“屬性”按鈕或使用項目瀏覽器的彈出菜單。要設置設備類型的全局屬性,請選擇驅動程序頁面,選擇設備驅動程序並單擊屬性按鈕(如果該按鈕已啓用)。
要將通信線路和設備從配置數據庫導入 Communicator 設置,請在項目瀏覽器中右鍵單擊通信線路節點或特定通信線路的節點,然後在上下文菜單中選擇導入項。導入表單如圖 3 所示。
圖 3. 導入 Communicator 設置
設置同步功能(參見圖 4)也使用通信線路上下文菜單運行。同步允許根據配置數據庫更新現有通信線路和設備的參數,但是手動輸入的參數可能會丟失。
圖 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):
- 指定相對於原始方案的通道號偏移量,以及標題組件標識符。
- 指定包含方案組件與通道的綁定的文件。
圖 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通訊協議,作為從機工作。使用驅動程序,Communicator 等待來自作為主設備工作的第三方設備或應用程序的傳入請求和命令。支持以下通信通道:串口、TCP 服務器和 UDP。該驅動程序可以在 Modbus RTU 或 Modbus TCP 模式下工作。
Modbus 從驅動程序特點:
- 使用寫入命令從設備接收數據。
- 向設備提供數據以響應讀取命令。
- 傳輸從其他設備接收的快速 SCADA 輸入通道的值,以便與第三方系統集成。
安裝
Modbus Slave 驅動程序按照安裝 Communicator 驅動程序的一般順序進行安裝。驅動程序庫文件為 KpModbusSlave.dll。
配置
首先,在配置數據庫以及 Communicator 設置中創建一條新的通信線路和一個新設備。為此,建議使用由
和
按鈕打開的嚮導。設備地址很重要,因為這是 Communicator 驗證響應的單元 ID。然後打開通訊線路的主要參數,選擇通訊通道類型並配置其屬性。通信通道屬性的示例如下所示。
在 Communicator 中創建設備後,打開設備屬性表單並配置設備。
輸入數據有效期允許自動設置設備輸入標籤的未定義狀態,如果在指定時間內沒有從設備接收到新數據。
設備模板定義了 Modbus 寄存器映射。KpModbus.dll 和 KpModbusSlave.dll 驅動程序的設備模板完全兼容。
數據源設備設置為非零以將從另一個設備接收的輸入通道值傳輸到第三方系統。如果驅動程序用於與真實設備交互,則該參數應為 0。
下圖顯示了 Modbus 模板編輯器:
Modbus 從站驅動程序需要註冊。完成設置後,使用
按鈕將項目上傳到服務器。然後在Administrator應用程序中打開Drivers頁面,選擇KpModbusSlave.dll驅動,打開驅動屬性並註冊。註冊後,再次將項目上傳到服務器。
概述
Telegram Driver 旨在使用流行的 Telegram Messenger 發送通知。使用 Telegram 的優點是接收通知的速度快,服務不收費,通知組管理方便。
安裝
Telegram 驅動程序按照安裝 Communicator 驅動程序的一般順序進行安裝。驅動程序庫文件是 KpTelegram.dll。
配置
創建電報機器人
首先,您需要創建一個 Telegram 機器人。去做這個:
- 安裝應用程序並註冊Telegram。
- 將名為BotFather的機器人添加到聯繫人列表中。
-
- 在與 BotFather 的對話中,運行命令/newbot並按照 BotFather 的説明進行操作。
- 單擊菜單圖標並創建一個新組以接收通知。
-
- 將您創建的機器人添加到新組中。
- 將聯繫人添加到新組。這些聯繫人將收到通知。
驅動程序設置
使用管理員應用程序作為項目的一部分來配置通知。配置步驟如下:
- 打開設備類型表並檢查設備類型“224 Telegram”是否存在。如果缺少指定的記錄,請手動輸入。
- 創建單獨的通信線路和屬於該通信線路的 Telegram 類型的單個設備。
- 使用由和
- 按鈕打開的嚮導。
- 在 Communicator 設置中打開設備屬性,輸入創建機器人時獲得的機器人令牌,並生成管理訂閲所需的機器人密碼。
-
- 保存驅動程序配置。
- 通過按鈕將項目上傳到服務器。
- 轉到註冊頁面並使用表單上的超鏈接註冊驅動程序。
-
- 再次保存更改並將項目上傳到服務器。
管理訂閲
如果設置正確,您的機器人將響應信使命令,例如/help命令。有必要在驅動程序設置中指定訂閲(聊天)。
要獲取訂閲的 ID 和名稱,請使用信使發送/info命令。然後使用設備配置表單添加接收到的值。
過時的方法:要添加或刪除訂閲,請使用/start和/stop命令以及之前生成的密碼。但是,默認情況下,訂閲更改會被阻止。要解鎖它,請通過 Communicator 發送值為 1 的標準命令 2。然後您可以添加或刪除訂閲。
發送消息
要將消息從 Rapid SCADA 發送到 Telegram 組,您需要發送包含組名稱(或標識符)和消息文本的二進制命令編號 1。例如:
RapidScadaDemo;測試消息。
在特定條件和事件的情況下自動發送通知由自動控制模塊執行。
概述
自動控制模塊根據特定條件自動發送命令。除非您註冊該模塊,否則它在演示模式下工作。完整功能演示的持續時間限制為重啓後 10 分鐘。該模塊在服務器應用程序的控制下運行。如下所示的表格用於配置模塊。
發送指定為幾種類型觸發器的命令所需的條件:
- 通道數據觸發。如果輸入通道的值或狀態滿足條件,則觸發觸發器。
- 通道數據更改觸發器。每當輸入通道的值或狀態發生變化時,觸發器都會觸發。
- 事件觸發器。如果事件滿足條件發生,觸發器將觸發。
- 時間觸發。觸發器在指定的日期和時間觸發。
- 命令觸發器。如果服務器應用程序接收到指定的命令,觸發器就會觸發。
每個觸發器包含一組在觸發器觸發時發送的命令。有關觸發觸發器的信息可在日誌頁面或直接從 ModAutoControl.log 文件中訪問。此文件位於服務器日誌目錄 C:\SCADA\ScadaServer\Log
安裝
自動控制模塊按照安裝服務器模塊的一般順序進行安裝。模塊庫文件是 ModAutoControl.dll。通過添加模塊,執行以下附加操作:
- 激活模塊後,將項目上傳到服務器,以確定模塊註冊的計算機代碼。
- 在“模塊”頁面上選擇模塊,然後單擊“屬性”按鈕以打開模塊設置表單。
- 轉到註冊頁面並使用表單上的超鏈接註冊模塊。
- 通過創建觸發器和命令來配置模塊。
- 保存模塊配置並將項目上傳到服務器。
遙控指令變量
觸發觸發時發送的遙控命令字符串數據可以包含變量。變量寫在大括號中。
支持以下變量:
|
多變的
|
描述
|
|
{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 Data、Archive Data和Events頁面上指定 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,