1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây

83 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và Phát triển SCADA Dựa Trên Điện Toán Đám Mây
Tác giả Mai Khắc Hiệp
Người hướng dẫn TS. Trương Đình Châu
Trường học Trường Đại học Bách Khoa - ĐHQG Tp. HCM
Chuyên ngành Tự Động Hóa
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2015
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 2,24 MB

Cấu trúc

  • CHƯƠNG 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (12)
    • 1.1. Tổng quan về tình hình nghiên cứu (12)
    • 1.2. Phạm vi nghiên cứu của luận văn (14)
    • 1.3. Sản phẩm của luận văn (14)
  • CHƯƠNG 2. ĐIỆN TOÁN ĐÁM MÂY (15)
    • 2.1. Ảo hóa (Virtualization) (15)
    • 2.2. Điện toán đám mây (20)
    • 2.3. Window Azure (29)
      • 2.3.1. Các mô hình điện toán trên Window Azure (30)
      • 2.3.2. Virual Machine (30)
      • 2.3.3. Website (32)
      • 2.3.4. Cloud service (32)
      • 2.3.5. Lưu trữ trong Azure (Blob, table, queue, SQL Azure) (34)
      • 2.3.6 Network (37)
      • 2.3.7. Message (41)
  • CHƯƠNG 3. SCADA (45)
    • 3.1. Kiến trúc hệ thống quản lý giám sát sản xuất (45)
    • 3.2. Tổng quan các chức năng chính của SCADA (45)
    • 3.3. Các mô hình kết nối trong SCADA (46)
    • 3.4. Các thành phần chính trong phần mềm SCADA (52)
  • CHƯƠNG 4. THIẾT KẾ SCADA DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY (53)
    • 4.1. Xây dựng SCADA dựa trên nền tảng điện toán đám mây Window Azure (53)
    • 4.2. Thiết kế Front-End Server (54)
    • 4.3. Thiết kế Scheduler (62)
    • 4.4. Thiết kế Realtime Database (67)
    • 4.5. Thiết kế Runtime Manager (71)
    • 4.6. Thiết kế Web HMI Server/Client (72)
  • CHƯƠNG 5. XÂY DỰNG HỆ THỐNG SCADA TÍN HIỆU GIAO THÔNG DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY (78)
    • 5.1. Tổng quan hệ thống (78)
    • 5.2. Giao diện ứng dụng (78)
    • 5.3. Kết luận và đánh giá (81)
    • 5.4. Hướng phát triển đề tài (81)
  • TÀI LIỆU THAM KHẢO (82)

Nội dung

Nhiệm vụ và nội dung: - Nghiên cứu điện toán đám mây và kiến trúc chương trình SCADA - Thiết kế kiến trúc và phát triển các thành phần trong chương trình SCADA dựa trên điện toán đám mấ

TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Tổng quan về tình hình nghiên cứu

Cloud computing là thuật ngữ được ra đời từ giữa năm 2007, nó bắt nguồn từ ứng dụng điện toán lưới (grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility computing) và phần mềm dịch vụ [1] Điện toán đám mây được nhiều nhà phát triển và cung cấp lớn, trong đó có Amazon, Google, Microsoft

13 Cloud computing dựa trên ý tưởng các khối lượng công việc của người dùng sẽ được chuyển đến các tài nguyên điện toán xử lý (người dùng hoàn toàn không biết thông tin gì về các tài nguyên này như vị trí địa lý, thiết bị vật lý, v.v ) và chuyển kết quả lại cho người dùng Cloud computing có các đặc trưng sau: [2]

 Ba mô hình dịch vụ : Cơ sở hạ tầng như một dịch vụ (IaaS - Infacstructure as a

Service), nền tảng như một dịch vụ (PaaS - Platfrom as a Service), phần mềm như một dịch vụ (SaaS - Software as a Service);

 Bốn mô hình triển khai : Private Cloud, Public Cloud, Community Cloud và

 Năm đặc tính kỹ thuật : khả năng co giãn (rapid elasticity), dịch vụ theo nhu cầu (on-demand self-service), truy xuất diện rộng (broad network access), dịch vụ được đo lường (measured service), dùng chung tài nguyên và điều tiết dịch vụ (resource pooling)

SCADA (Supervisory Control and Data Acquisition) là một hệ thống điều khiển giám sát và thu thập dữ liệu, nhằm hỗ trợ con người trong quá trình giám sát và điều khiển từ xa hệ thống tự động hóa SCADA đã trải qua ba thế hệ (monolithic, distributed, networked) và đang phát triển ở thế hệ thứ tư (Internet of things) dựa trên nền tảng điện toán đám mây [3]

Hệ thống SCADA gồm các hệ thống con [4] được chia thành nhiều lớp như lớp thiết bị trường (bao gồm cảm biến, thiết bị chấp hành), lớp thiết bị điều khiển (gồm các bộ điều khiển), lớp giám sát điều khiển (phần mềm thu thập dữ liệu, phần mềm điều khiển quá trình) Lớp giám sát điều khiển cần phải có các tính năng cơ bản sau:

 Hỗ trợ kết nối, giao tiếp với nhiều loại bộ điều khiển khác nhau

 Hỗ trợ các tiêu chuẩn, giao thức kết nối phổ biến như Modbus, Profibus, CAN, v.v

 Lưu trữ cơ sở dữ liệu các cài đặt người dùng và các trạng thái của hệ thống khi chạy runtime

 Các biểu đồ, trạng thái của hệ thống

 Các báo cáo về tình trạng hoạt động, lịch sử hoạt động

 Giao diện người dùng cho phép cài đặt và hiển thị các trạng thái hoạt động của hệ thống khi chạy runtime

14 Các vấn đề cần quan tâm khi triển khai SCADA lên điện toán đám mây đó là tính bảo mật, hiệu suất hoạt động, độ tin cậy dữ liệu [5][6][7] Có rất nhiều giải pháp đã được đưa ra nhằm giải quyết ba vấn đề trên Tuy nhiên, các nguyên nhân dẫn đến các vấn đề trên phần lớn nằm ở cơ sở hạ tầng mạng Khi kết nối mạng chậm (ngẽn mạng hay băng thông thấp) sẽ dẫn đến việc xử lý dữ liệu bị trễ, dẫn đến sự mất thống nhất trong hệ thống (giá trị của các biến dữ liệu khác nhau giữa máy chủ và máy khách), hiệu suất hoạt động giảm và dữ liệu không còn tin cậy Về phương pháp bảo mật dữ liệu trên cloud, [9] đưa ra một phương pháp bảo mật theo nhiều lớp khác nhau

Trong khuôn khổ luận văn trình bày kiến trúc tổng quan cloud-based SCADA dưới dạng SaaS và được triển khai theo mô hình public cloud, đồng thời đưa ra các thiết kế chi tiết của các thành phần trong dịch vụ.

Phạm vi nghiên cứu của luận văn

Nghiên cứu điện toán đám mây và kiến trúc chương trình SCADA

Thiết kế kiến trúc và phát triển các thành phần trong chương trình SCADA dựa trên điện toán đám mây, triển khai lên cloud Window Azure

Xây dựng hệ thống giám sát tín hiệu giao thông bằng Cloud-Based SCADA

Sản phẩm của luận văn

Giải thuật, mô hình và chương trình Cloud-Based SCADA dựa trên Window Azure Hệ thống giám sát và điều khiển tín hiệu giao thông trên địa bàn Thành phố Hồ Chí Minh

ĐIỆN TOÁN ĐÁM MÂY

Ảo hóa (Virtualization)

Để nắm rõ ảo hóa là gì, các ưu điểm nhược điểm của nó, trước hết ta cần phân biệt và hiểu rõ các khái niệm sau:

 Phần cứng (Hardware): là các thiết bị, linh kiện điện tử, vật lý hiện hữu phục vụ cho nhu cầu tính toán, ví dụ như CPU, RAM, ổ cứng, mainboard, v.v

 Hệ điều hành (OS - Operating System): là phần mềm chạy trên phần cứng, dùng để điều hành, quản lý các thiết bị phần cứng và các tài nguyên trên máy tính Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người dùng và phần cứng máy tính, cung cấp một môi trường cho phép người dùng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng

 Nền tảng (Platform): bao gồm hệ điều hành và phần cứng mà nó chạy trên đó Ảo hóa là sự trừu tượng hóa phần cứng thành phần mềm, tách hệ điều hành (OS) ra khỏi phần cứng (hardware), làm nó không còn phụ thuộc vào phần cứng Trong khi đó, điện toán đám mây tách là nhằm tách ứng dụng phần mềm ra khỏi platform Ảo hóa là một thành phần nằm trong điện toán đám mây

 Phương pháp ảo hóa cho các máy chủ

Các trung tâm dữ liệu bao gồm nhiều máy chủ (server) hoạt động Mỗi server sẽ được cài đặt ban đầu hệ điều hành, phần mềm trên một phần cứng cố định Khi các server gặp sự cố, không hoạt động được thì hệ thống tê liệt, làm gián đoạn hoạt động sản xuất Để giải quyết vấn đề này, các server thường được lắp đặt thêm các server dự phòng Khi server chính gặp sự cố, các server dự phòng sẽ đảm nhiệm tiếp tục công

16 việc trong khi chờ đợi server chính khắc phục sự cố Đối với những hệ thống quan trọng, một server chính sẽ có thêm hai đến ba (hoặc nhiều hơn) các server dự phòng

Phương pháp này chi phí cao, hệ thống cồng kềnh, cài đặt, bảo trì, nâng cấp, mở rộng cực kỳ khó khăn, gần như phải thao tác cài đặt trên cả phần cứng, hệ điều hành, phần mềm lại từ đầu

Hình 2.1 Hệ thống máy chủ khi chưa có ảo hóa

17 Với phương pháp ảo hóa, nhiều server có thể chạy song song trên cùng một hardware

Khi server gặp sự cố về phần cứng, ta chỉ việc đơn giản thay thế phần cứng mà không cần phải cài đặt gì lại cho server Khi hệ điều hành server gặp sự cố, chỉ đơn giản cho chạy một ảnh khác của server này Việc bảo trì nâng cấp mở rộng cực kỳ đơn giản, nhanh chóng, tiện lợi và chi phí thấp

Hình 2.2 Hệ thống máy chủ khi sử dụng ảo hóa

Hypervisor là thành phần chính của ảo hóa Nó dùng để ảo hóa các thành phần phần cứng vật lý thành giao diện phần mềm Nó đóng vai trò trung gian giữa phần cứng và hệ điều hành Mọi yêu cầu từ hệ điều hành xuống phần cứng phải thông qua hypervisor Ngược lại, các phản hồi từ phần cứng phải đi qua hypervisor rồi mới đến các hệ điều hành Dựa trên nền tảng của hypervisor, nhiều loại hệ điều hành với môi

18 trường của nó có thể chạy song song với nhau Có hai loại hypervisor: native hypervisor và hosted hypervisor

 Native hypervisor: Là loại hypervisor được cài đặt trực tiếp lên máy chủ vật lý (không thông qua hệ điều hành) Tuy nhiên, ta cần thêm một máy trạm khác để cài đặt và quản lý các OS chạy trên hypervisor này thông qua Hypervisor

 Hosted Hypervisor: đây là loại hypervisor phổ biến hơn, nó được cài đặt lên máy chủ vật lý thông qua hệ điều hành của máy đó Do đó, hosted hypervisor có thể được sử dụng để chạy các hệ điều hành khác với hệ điều hành của máy chủ

Các hypervisor phổ biến hiện nay dùng để ảo hóa đó là Hyper-V của Microsoft và vSphere của VMWare Các phần mềm này được sử dụng rất đơn giản để có thể ảo hóa phần cứng, nó đưa ra các máy ảo (virtual machine), ta tiến hành cài đặt hệ điều hành và phần mềm cho server Các VM này được lưu trữ thành dạng các tập tin trên ổ cứng

 Giải pháp dự phòng cho máy chủ bằng công nghệ ảo hóa

Sử dụng hai máy chủ đã ảo hóa trên hai máy chủ vật lý khác nhau và chạy song song đồng thời:

 Active server: máy chủ ảo hóa chạy chính các server ảo

 Shadow server: máy chủ ảo hóa dự phòng

Shadow server được đồng bộ với active server theo thời gian thực Khi active server gặp sự cố, shadow server sẽ đảm nhận tiếp tục công việc của nó Khi active server khắc phục được sự cố, nó sẽ đồng bộ lại từ shadow server và đảm nhận lại việc xử lý dữ liệu hệ thống Bởi vì hai máy chủ ảo hóa được đồng bộ theo thời gian thực nên sẽ đảm bảo được hệ thống hoạt động liên tục và thông suốt

Dựa trên ưu điểm này của ảo hóa, điện toán đám mây phát triển nó thành một trong những tính năng quan trọng của mình Trên điện toán đám mây, người dùng chỉ đơn giản cài đặt là sẽ có bao nhiêu hệ thống dự phòng cho hệ thống chính, việc cài đặt còn lại sẽ được hệ thống cài đặt và vận hành một cách tự động

19 Hình 2.3 Giải pháp cho hệ thống dự phòng bằng công nghệ ảo hóa

 Các vấn đề cần quan tâm và giải pháp khi sử dụng ảo hóa cho các máy chủ

 Hiệu năng: khi phân bổ tài nguyên để các chạy các server ảo song song, lượng tài nguyên vật lý sẽ cạn kiệt dần, làm giảm hiệu năng hoạt động của các server ảo, làm chậm toàn bộ hệ thống Cần thiết phải lên kế hoạch từ đầu lượng tài nguyên và số lượng máy ảo cung cấp tối đa, nhằm tránh tình trạng trên xảy ra

 Xung đột phần cứng: khi nhiều server ảo cùng truy cập vào một tài nguyên duy nhất (ví dụ card mạng) sẽ dễ gây ra tình trạng xung đột trên bus hệ thống, có khả năng gây treo hệ thống Cần thiết phải ảo hóa các thành phần này một cách chặt chẽ, nhằm tránh xung đột

 Tính real-time: Hệ thống chạy trên nền tảng ảo hóa sẽ thực thi chậm hơn so với chạy trên phần cứng thực sự Bởi vì nó được chạy thông qua phần mềm, rồi mới đến phần cứng Một giải pháp cho vấn đề này đó là sử dụng ảo hóa dưới sự hổ trợ trực tiếp của phần cứng VT-x của Intel hoặc AMD-V của AMD Các công nghệ này đã được tích hợp vào các chipset của họ Các chức năng của hypervisor sẽ được tích hợp trực tiếp vào phần cứng, các mô phỏng giả lập phần cứng cũng do các chipset này thực thi Do đó, các lệnh được yêu cầu từ các máy ảo sẽ được thực thi nhanh hơn

Điện toán đám mây

Điện toán đám mây là một mô hình cho phép truy cập một cách thuận tiện từ mọi nơi đến những tài nguyên cho điện toán như mạng, máy chủ, lữu trữ, ứng dụng và dịch vụ Nó có thể được cung cấp cho người dùng hoặc lấy lại một cách dễ dàng mà không mất nhiều thời gian công sức cho quản trị Mô hình điện toán đám mây đưa ra năm đặc tính, ba mô hình dịch vụ và bốn cách để triển khai Đối với ảo hóa, việc cấp phát hiệu năng, tài nguyên, lưu trữ, ứng dụng, nền tảng cho các server được người dùng cài đặt và giám sát local tại máy chủ đó Điện toán đám mây nâng cao khả năng của ảo hóa, bằng cách cho phép cài đặt và giám sát từ xa thông qua internet Người dùng hoàn toàn không biết thông tin về các thành phần vật

21 lý này như đặt ở đâu, ai quản lý, của hãng sản xuất nào, v.v Mặt khác, nó cung cấp việc tự động hóa các cài đặt chi tiết kỹ thuật bên trong hệ thống, người dùng chỉ đơn giản cài đặt những gì mình mong muốn

Ba thành phần chính để cấu tạo nên 1 cloud đó là computing, storage và network

 Computing: bao gồm tất cả nhân xử lý tín hiệu CPU và RAM tại datacenter

 Storage: bao gồm toàn bộ bộ nhớ để chứa dữ liệu tại datacenter

 Network: kết nối mạng thực giữa các máy chủ thực tại datacenter

Tại một trung tâm dữ liệu, tập hợp tất cả các thành phần vật lý computing, storage, network sẽ được ảo hóa hoàn toàn Sau đó chia nhỏ nó ra thành nhiều cloud khác nhau Điện toán đám mây cung cấp ba loại hình dịch vụ:

 Software as a Service (SaaS): Cung cấp người dùng các dịch vụ về phần mềm

(application) thông qua web như google docs, google excels, v.v

 Platform as a Service (PaaS): Cung cấp cho người dùng các dịch vụ nền tảng

(hardware và OS) để họ cài đặt ứng dụng trên đó

 Infrastructure as a Service (IaaS): Cung cấp cho người dùng các dịch vụ về phần cứng (CPU, RAM, storage, network)

Hình 2.4 Các mô hình dịch vụ

22 Để hiểu rõ các mô hình dịch vụ này, ta có thể chia các thành phần phần mềm, phần cứng thành hai nhóm: nhóm thành phần do nhà cung cấp quản trị, nhóm thành phần do người dùng quản trị Các thành phần phần cứng bao gồm servers (computing), storage, networking Các thành phần phần mềm bao gồm virtualization, OS, middleware, runtime, data, application

 On premises: người dùng quản trị tất cả các thành phần (mô hình được sử dụng hiện tại vì chi phí đầu tư nhỏ đối với các hệ thống nhỏ)

 IaaS: nhà cung cấp quản lý các thành phần phần cứng và virtualization, người dùng quản lý các thành phần phần mềm còn lại

 PaaS: nhà cung cấp quản lý các thành phần phần cứng, virtualization, OS, middleware, runtime Người dùng quản lý data và application

 SaaS: nhà cung cấp quản lý tất cả các thành phần phần cứng lẫn phần mềm

Người dùng đơn giản sử dụng các phần mềm mà nhà cung cấp cung cấp

Hình 2.5 Mô hình các thành phần hệ thống trong cloud

Luận văn hướng tới xây dựng một dịch vụ SCADA dựa trên PaaS của nhà cung cấp và đưa đến người dùng SCADA như là một SaaS Điện toán đám mây có năm đặc tính sau:

 Dịch vụ theo yêu cầu (Ondemand Seft-Service): Người dùng gửi yêu cầu thông qua trang web cung cấp dịch vụ, hệ thống của nhà cung cấp sẽ đáp ứng để người dùng có thể tự phục vụ như: tăng – giảm thời gian sử dụng server và

23 dung lượng lưu trữ, … mà không cần phải trực tiếp yêu cầu nhà cung cấp dịch vụ, tức là mọi nhu cầu khách hàng đều được xử lý trên internet

 Truy xuất diện rộng (Broad network access): Cloud Computing Service là tập hợp các dịch vụ công nghệ thông tin được cung cấp thông qua môi trường internet, ở đó người dùng thích dịch vụ gì thì dùng dịch vụ ấy, dùng bao nhiêu trả bấy nhiêu, được lựa chọn những dịch vụ tốt nhất ở bất cứ đâu vào bất cứ lúc nào Như vậy người dùng có kết nối internet là có thể sử dụng dịch vụ, Cloud Computing Service không yêu cầu người dùng phải có khả năng xử lý cao, người dùng có thể truy xuất bằng các thiết bị di dộng như điện thoại, PDA, laptop

 Dùng chung tài nguyên và điều tiết dịch vụ (Resource pooling): Nhà cung cấp dịch vụ cho phép người dùng dùng chung tài nguyên do họ cung cấp dựa trên mô hình “multi-tenant”, tài nguyên được phân phát rất linh hoạt tùy theo nhu cầu của người dùng Khi nhu cầu của một người dùng nào đó giảm xuống, lập tức phần tài nguyên dư thừa sẽ được phục vụ cho người dùng khác Nếu một người dùng 4 CPU từ 7 – đến 11 giờ hàng ngày, một người dùng khác thuê 4

CPU tương tự 13 giờ đến 17 giờ hàng ngày thì họ có thể dùng chung 4 CPU đó

 Khả năng co giãn (Rapid elasticity): tự động mở rộng hoặc thu nhỏ hệ thống theo yêu cầu người dùng Ví dụ, một người dùng ký hợp đồng thuê một Server gồm 4 CPU Nếu lượng truy cập thấp chỉ cần 1 CPU là đủ, khi đó hệ thống quản lý của nhà cung cấp dịch vụ sẽ tự ngắt bớt 3 CPU, người dùng không phải trả phí cho 3 CPU nói trên và chúng được đưa sang phục vụ người dùng khác Đến khi nhu cầu tăng tức là lượng truy cập tăng, hệ thống ngay lập tức sẽ tự động thêm CPU vào, nếu nhu cầu vượt quá 4 CPU thì người dùng trả phí theo hợp đồng đã ký với nhà cung cấp

 Dịch vụ đo lường được (Measured service): hệ thống điện toán đám mây tự động điều khiển và tối ưu tài nguyên sử dụng nhờ vào khả năng đo lường được (như thời gian sử dụng bộ nhớ, CPU xử lý, băng thông, số lượng tài khoản truy cập vào hệ thống,…) Độ sử dụng tài nguyên có thể giám sát, điều khiển, báo cáo cho nhà cung cấp lẫn người sử dụng Điện toán đám mây được triển khai trên các mô hình sau:

 Private cloud: là mô hình trong đó hạ tầng đám mây được sở hữu bởi một tổ chức và phục vụ cho người dùng của tổ chức đó Private Cloud có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên thứ tư) Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng

24 cho mình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị của điện toán đám mây Với Private Cloud, các doanh nghiệp tối ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thị trường

 Public Cloud: được một tổ chức sở hữu và cung cấp dịch vụ rộng rãi cho tất cả các khách hàng thông qua hạ tầng internet hoặc các mạng công cộng diện rộng

Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ

Window Azure

Window Azure (sản phẩm của Microsoft, được chạy trên nền tảng của Window Server) là hệ điều hành dành cho điện toán đám mây (được cài đặt trên cloud), ảo hóa toàn bộ các thành phần vật lý của hệ thống điện toán Người dùng lựa chọn các tính năng, tiện ích, thành phần mà không cần phải cài đặt phần cứng hay phần mềm đối với máy ảo mà họ sẽ được cấp từ dịch vụ Để đảm bảo cho khả năng mở rộng và khả năng chịu lỗi, dữ liệu chứa trên Window Azure sẽ được lưu trữ trên ba máy trạm khác nhau Bộ load balancer (một thành phần phần mềm trong Window Azure) sẽ chia tải cho các trạm, việc phân tải hoàn toàn trong suốt đối với người dùng, họ sẽ không biết gì về các hoạt động này Window Azure cung cấp các lựa chọn về phần cứng như sau:

 CPU: từ 1 core đến 8 core, xung nhịp hoạt động từ 1 GHz trở lên

 RAM: từ 768MB đến 8GB

 Bộ nhớ: từ 20 GB đến 2TB

 Hiệu suất IO: thấp, trung bình, cao

Tùy theo chi phí mình bỏ ra (subcription fee), hệ thống còn cung cấp thêm nhiều tính năng khác nữa Bên cạnh đó, các tài nguyên, thành phần phần cứng có thể được thay đổi bất cứ lúc nào Ví dụ, khi lượng dữ liệu cần xử lý tăng lên, ta có thể tăng thêm CPU và RAM cho máy ảo, hoặc tăng thêm lượng máy ảo Việc tăng giảm này được thay đổi rất nhanh chóng, đáp ứng tốt nhu cầu sử dụng tính toán của người dùng

Vấn đề bảo trì và bảo mật, các bản vá bảo mật cũng như bảo trì hệ thống được Microsoft team thực hiện nhanh nhất và tự động, đảm bảo hệ thống hoạt động trơn tru, cập nhật với xu thế mà người dùng hoàn toàn không cần phải quan tâm đến các vấn đề này

Window Azure ẩn đi các chi tiết kỹ thuật bên trong, nó chỉ đưa ra cho người dùng các dịch vụ và các giao thực chuẩn để họ sử dụng dịch vụ Các tài nguyên vật lý được cung cấp cho người dùng theo mô hình IaaS (Infrastructure as a Service) Người dùng không cần thiết phải viết các đoạn mã để quản lý phần cứng như: địa chỉ vật lý, loại ổ cứng, tên máy chủ, đường dẫn mạng, IIS virtual directory, địa chỉ IP,… Để thao tác với các tài nguyên, ứng dụng phải gọi các dịch vụ tương ứng của các tài nguyên này

Ví dụ, người dùng có thể URI của dịch vụ để chèn thêm, cập nhật hoặc xóa tài nguyên và sử dụng ODATA Rest để lấy được lấy được các dịch vụ của tài nguyên

30 Các ứng dụng đã được chạy tốt trên nền tảng Window thì hoàn toàn có thể hoạt động tốt trên nền tảng của Azure Tùy theo code lập trình của các developer và các đòi hỏi về tính năng phần mềm, các ứng dụng có thể sẽ phải chỉnh sửa lại để đáp ứng tốt hơn trên nền tảng Azure

2.3.1 Các mô hình điện toán trên Window Azure

Một trong những tính năng cơ bản của nền tảng điện toán đám mây đó là các ứng dụng thực thi Azure cung cấp những lựa chọn sau:

 Virtual Machine: cho phép người dùng kiểm soát máy ảo của riêng mình, bao gồm cả hệ điều hành Đây là dịch vụ thuộc IaaS

 Website: cung cấp sẵn nhiều mẫu ứng dụng, framework khác nhau, giúp người dùng triển khai một cách nhanh chóng các ứng dụng web lớn, dễ dàng mở rộng và quản lý các công đoạn phát triển, kiểm thử, vận hành một cách hiệu quả Đây là một dịch vụ thuộc mô hình SaaS

 Cloud Service: là một dịch vụ thuộc PaaS (platform as a service), người dùng có thể tạo ra một ứng dụng có tính mở rộng, tính chịu lỗi cao và linh động hơn cả website

Khả năng tạo ra một máy ảo (người dùng tự tạo cho riêng mình rồi tải lên cloud hoặc do nhà cung cấp dịch vụ tự tạo cho người dùng) theo nhu cầu rất là hữu ích Đây là một dịch IaaS mà Azure cung cấp Có thể sử dụng VM trong các trường hợp sau:

31 Hình 2.9 Mô hình của VM

 Dev/test: dùng để xây dựng 1 nền tảng môi trường phục vụ cho phát triển hay kiểm thử phần mềm với chi phí thấp Ta có thể thực thi bất kỳ dạng ứng dụng nào, bất kỳ nền tảng ngôn ngữ hay thư viện nào, bất kỳ loại cơ sở dữ liệu nào

 Chuyển ứng dụng lên cloud (lift and shift): khi có nhu cầu đòi hỏi các ứng dụng ở máy tính local phải được triển khai lên cloud, nhằm có thể được sử dụng ở mức rộng rãi hơn, ta có thể tạo ảnh cho máy tính đó (VHD Image), sau đó upload ảnh này lên cloud Do đó, ứng dụng local sẽ được triển khai lên cloud một cách nhanh chóng

 Mở rộng datacenter: tạo máy ảo trên cloud, sau đó dùng Azure Virtual Network để tạo kết nối giữa máy ảo trên cloud và datacenter ở local network Khi đó, datacenter sẽ được mở rộng lên cloud

Một trong những điều phổ biến mà người dùng thườn thực hiện đó là thực thi các website và web application Azure cung cấp một môi trường quản lý web bằng Azure Management Portal và APIs, nhằm giúp người dùng có thể tạo và quản lý website, web application một cách nhanh chóng, mà không cần tốn công sức trong việc cài đặt, bảo trì hệ thống nền tảng Người dùng có thể upload website của mình lên cloud để hoạt động bình thường mà không hề có bất cứ thay đổi gì, hoặc họ có thể tạo ngay website trên cloud mà không hề có bất cứ khó khăn gì Website thường được sử dụng bởi các tập đoàn, người phát triển và các công ty thiết kế Đối với tập đoàn, đây là giải pháp dễ dàng quản lý, mở rộng, bảo mật cao khi họ muốn đưa webiste hiện tại của mình lên cloud

Hình 2.10 Mô hình điện toán website

Trường hợp ta muốn xây dựng một ứng dụng trên cloud cho phép nhiều người dùng truy cập cùng lúc Đều này hoàn toàn có thể bằng cách sử dụng mô hình Website hoặc VM Tuy nhiên, đối với Website, nó có nhiều giới hạn truy cập hệ thống Nó chỉ cho ta cài đặt, thiết kế logic liên quan đến web mà không thể thực thi các process chạy

33 ngầm bên trong (theo mục đích của riêng mình) Đối với VM, ta có thể toàn quyền đối với hệ thống, chạy bất cứ ứng dụng nào ta muốn Tuy nhiên việc quản trị VM đòi hỏi mất nhiều công sức, chi phí, và kỹ thuật cho nó Như vậy, cầu nối giữa Webiste và VM đó chính là Cloud service Cloud service thuộc mô hình PaaS (Platform as a Service) Việc cập nhật các bản vá lỗi hệ điều hành, phần cứng sẽ do nhà cung cấp dịch vụ đảm nhiệm, giảm bớt việc bảo trì hệ thống về phía người dùng, đồng thời cho phép nhiều loại ứng dụng khác nhau thực thi trên đó Có hai lựa chọn khi xây dựng ứng dụng trên cloud service đó là web role và worker role Sự khác biệt giữa hai instance này đó là web role thì được chạy trên IIS, còn worker role thì không Một ứng dụng cloud service thì thường dùng cả hai role này Ví dụ, web role sẽ nhận yêu cầu từ phía người dùng, và chuyển nó sang cho worker role xử lý (worker role là process chạy ngầm để xử lý dữ liệu)

Hình 2.11 Mô hình cloud service Cloud-based SCADA sẽ được phát triển theo mô hình của Cloud Service vì những ưu điểm của nó so với VM và Website

2.3.5 Lưu trữ trong Azure (Blob, table, queue, SQL Azure)

SCADA

Kiến trúc hệ thống quản lý giám sát sản xuất

Một hệ thống quản lý điều khiển sản xuất ở nhà máy bao gồm các lớp chức năng sau đây:

Hình 3.1 Kiến trúc hệ thống

 ERP (Enterprise Resource Planning): là phần mềm tự động hóa các tác nghiệp của đội ngũ nhân viên của doanh nghiệp nhằm mục đích nâng cao hiệu quả hoạt động và hiệu quả quản lý toàn diện của doanh nghiệp

 MES (Manufacturing Execution Systems): là hệ thống để quản lý giám sát công việc trong quá trình sản xuất ở nhà máy MES theo dõi tất cả các thông tin sản xuất trong thời gian thực Kết hợp phần mềm MES và ERP, quản lý nhà máy có thể chủ động về bảo đảm việc phân phối các sản phẩm chất lượng, hiệu quả kịp thời

 SCADA (Supervisory Control and Data Acquisition): là hệ thống giám sát điều khiển và thu thập dữ liệu của hệ thống điều khiển

 PLC/DCS: là các bộ điều khiển, điều khiển hoạt động của các thiết bị chấp hành, đồng thời nhận tín hiệu phản hồi từ các cảm biến và ra các quyết định điều khiển

 Sensor và Actuavator: Là các thiết bị cấp trường, vật lý trong sản xuất

Mục tiêu của đề tài nhằm xây dựng một phần mềm SCADA được triển khai trên cloud, giảm sát điều khiển sản xuất.

Tổng quan các chức năng chính của SCADA

 Communication & Conectivity: hỗ trợ nhiều driver phổ biến để giao tiếp với các thiết bị cấp trường, nhằm thu thập dữ liệu và xuất lệnh điều khiển đến các thiết bị này

Bên cạnh đó, nó còn phải hỗ trợ các giao tiếp chuẩn khác đến các phần mềm thứ ba (OPC/ODBC/XML/SQL) cho mục đích báo cáo hoặc tích hợp dữ liệu từ bên thứ ba này vào hệ thống

 Configuration: đưa ra giao diện người dùng, cho phép họ cài đặt từ các kết nối hệ thống đến việc thiết kế giao diện, lập trình chương trình theo mục đích người dùng

 Runtime: Tiến hành vận hành hệ thống, thu thập dữ liệu từ thiết bị cấp trường, hiển thị giao diện người dùng, đưa ra các cảnh báo, xuất báo cáo tự động, vẽ giản đồ xu hướng của hệ thống,…

 Database: chứa các dữ liệu cài đặt của người dùng, chứa các dữ liệu theo thời gian thực của hệ thống cũng lưu lịch sử các dữ liệu này

 Trend: Hỗ trợ vẽ đồ thị, giản đồ các dữ liệu của hệ thống nhằm đưa ra cái nhìn bao quát về xu hướng của hệ thống Trend hỗ trợ hai loại giản đồ: trend theo thời gian thực và trend lịch sử của hệ thống

 Report: cho phép người dùng tạo các mẫu báo cáo, sau đó hệ thống sẽ tự động xuất báo cáo theo lịch cài đặt hoặc có thể xuất báo cáo bất cứ lúc nào người dùng yêu cầu

 Alarm: Cho phép người dùng cài đặt nhiều loại cảnh báo khác nhau, đưa ra các quy tắc để cảnh báo khi nhận được dữ liệu từ các thiết bị trường, hoặc các dữ liệu hoạt động của hệ thống.

Các mô hình kết nối trong SCADA

Các thành phần phần mềm trong hệ thống SCADA bao gồm:

 SCADA Server: là nhân xử của hệ thống, quản lý tập hợp các tag dữ liệu, thu thập dữ liệu từ các thiết bị hoặc Front-End Server trong hệ thống phân tán hay hệ thống đơn

 Front-End Server: tiền xử lý các dữ liệu lớn và nhạy của các thiết bị cấp trường, sau đó chuyển các dữ liệu này lên SCADA server

 Web HMI Server: đưa các dữ liệu thu thập được từ SCADA Server lên web, cho phép người dùng giám sát các dữ liệu và thông tin hệ thống

 Web HMI Client: truy cập vào Web HMI Server để hiển thị vận hành hệ thống, trend, alarm, event và các xử lý dữ liệu khác Web HMI Client cho phép người dùng cài đặt hệ thống lẫn giám sát hệ thống khi nó chạy runtime

47 Từ những thành phần trên và tùy theo mức độ phức tạp của hệ thống, mà ta có thể xây dựng nên các mô hình sau:

Các thành phần SCADA Server, Front-End Server, Web Server, Web Client được cài đặt trên một máy tính duy nhất Mô hình này được áp dụng cho các ứng dụng nhỏ, tích hợp việc thu thập dữ liệu, giám sát hệ thống và thiết kế trên một tính duy nhất

Hình 3.2 Hệ thống Stand-alone

Distributed Web HMI Client/Server:

SCADA Server, Font-End Server, Real-time database sẽ được chạy trên một máy tính server Web Server và Web Client sẽ được chạy trên các máy tính khác để hiện thị dữ liệu vận hành và cài đặt hệ thống

48 Hình 3.3 Mô hình phân tán

SCADA Server, Front-End Server, Realtime database sẽ được cài đặt trên một máy chủ mạnh Web HMI Server sẽ được cài đặt ở một máy tính Các Web HMI Client sẽ nằm trên các mạng intranet hay internet, truy cập hệ thống từ xa nhằm cài đặt và giám sát hoạt động

49 Hình 3.4 Mô hình remote web HMI client

Bao gồm các hệ thống SCADA giao tiếp với nhau, nhằm trao đổi dữ liệu hoặc điều khiển từ xa một phần hệ thống

50 Hình 3.5 Mô hình host to host

Khi hệ thống lớn, bao gồm nhiều process nằm ở nhiều vị trí địa lý khác nhau

Khi đó, ta nên xây dựng hệ thống phân tán Ở mỗi trạm, sẽ được cài đặt Front-End Server để thu thập và xử lý các dữ liệu tại trạm đó Sau đó, nó chuyển các dữ liệu này trung tâm SCADA Server Từ SCADA Server, ta có thể xây dựng nên các Web HMI Server và Web HMI Client

51 Hình 3.6 Mô hình phân tán

Các thành phần chính trong phần mềm SCADA

Hình 3.7 Các thành phần trong phần mềm SCADA

 System bus: là giao diện để các thành phần trong hệ thống có thể trao đổi dữ liệu với nhau

 Real time database: quản lý các định nghĩa về item, alarm, history và các dữ liệu theo thời gian thực

 IO Communication: quản lý tất cả các driver để giao tiếp với các thiết bị cấp trường như PLC, cảm biến,…

 Connectivity: quản lý các kết nối OPC và ODBC

 Configuration & Runtime: quản lý các cài đặt của người dùng, thực hiện các hoạt động thu thập dữ liệu, điều khiển và đưa ra các giao diện người dùng

 Programing: cho phép người dùng tạo các đoạn mã, và sẽ được xử lý khi chạy runtime

 Operation log: quản lý các cài đặt về kiểm kê và các dữ liệu cần được kiểm kê

 3 rd party app: là các giao diện để ứng dụng bên thứ ba truy cập vào hệ thống và lấy dữ liệu

 Alarm: quản lý tất cả các chức năng về cảnh báo

 Report: quản lý tất cả các chức năng về báo cáo

 History: có nhiệm vụ sao lưu tất cả các dữ liệu từ thiết bị trường, các cảnh báo, các báo cáo, các thống kê

Các khối chức năng này trong chương trình SCADA sẽ được thiết kế và triển khai lên cloud

THIẾT KẾ SCADA DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY

Xây dựng SCADA dựa trên nền tảng điện toán đám mây Window Azure

Như đã đề cập ở phần trên, hệ thống sẽ bao gồm Front-End Server, SCADA Server,

Web HMI Server và Web HMI Client

 Front-End Server: sẽ gồm các module phần mềm Communication (Direct driver), Connectivity (OPC/ODBC) Nhiệm vụ của front-end server là tạo kết nối đến các thiết bị trường, và đưa ra một interface cho runtime sử dụng Front- End Server có thể được triển khai ở một máy tính local trong nhà máy hoặc triển khai lên cloud (sử dụng VM service application)

 SCADA Server: là một Cloud Service Application, nhận các dữ liệu từ front- end server theo cơ chế pub/sub trên Service Bus, sau đó chuyển các dữ liệu này đến các woker role như History (lưu trữ dữ liệu vào database), Alarm (xử lý cảnh bảo), Trend (xử lý đồ thị), Report (xử lý báo cáo), đồng thời đưa dữ liệu lên Web HMI Server (web role) để xuất dữ liệu hiển thị ra các Web HMI Client

Bên cạnh đó, SCADA server còn có hai worker role khác đó là Configuration Manager (nhận các yêu cầu cài đặt từ người dùng thông qua Web HMI Client/Server lưu trữ vào database), và Runtime Manager (quản lý vận hành của Scheduler, Alarm, Trend, Report)

 Web HMI Server: có hai nhiệm vụ chính là nhận các cài đặt từ người dùng và hiển thị các trạng thái vận hành của hệ thống cũng như cho phép điều khiển hệ thống thông qua nó

 Web HMI Client: là các thành phần giao diện, xử lý các dữ liệu nhận được Web HMI Server, hiển thị các dữ liệu một cách trực quan sinh động

Kiến trúc Cloud-based SCADA được thiết kế như sau:

54 Hình 4.1 Kiến trúc cloud-based SCADA

Thiết kế Front-End Server

Front-End Server có hai cách để triển khai như sau:

Hình 4.1 Triển khai front-end server tại local

 Front-End Server được đặt tại local của nhà máy, nó sẽ được kết nối lên cloud thông qua virtual network

 Front-End Server sẽ được triển khai lên cloud bằng cách sử dụng VM role Một máy ảo trên cloud sẽ được tạo ra, được cài đặt một mạng ảo để kết nối với hệ thống nhà máy tại local Về phía nhà máy, máy ảo này như một phần trong hệ thống mạng của họ Front-End Server sẽ được triển khai trên máy ảo

Hình 4.2 Triển khai front-end server trên cloud

Cả hai cách này đều sử dụng virtual network và VPN để có thể kết nối SCADA Server với các thiết bị trường ở nhà máy thông qua Front-End Server Trong giới hạn của luận văn (về thiết bị phần cứng mạng VPN), nên đưa ra một hướng tiếp cận khác

Front-End Server sẽ được đặt tại local, kết nối với các thiết bị trường và đưa ra các service để cho các yêu cầu từ cloud gửi xuống, read hay write dữ liệu

56 Hình 4.3 Mô hình kết nối từ cloud đến on-premise Ứng dụng của luận văn là hệ thống giám sát điều khiển tín hiệu giao thông trên địa bàn Thành phố Hồ Chí Minh Có hai loại tủ điều khiển giao thông: tủ sử dụng vi điều khiển và tủ sử dụng PLC Tủ sử dụng vi điều khiển được xây dựng một protocol riêng biệt dựa trên nền tảng TCP/IP Tủ sử dụng PLC được kết nối về Front-End Server thông qua OPC Server Do đó, Front-End Server sẽ triển khai 2 loại driver: VDKDriver và OPC Client Cả hai loại driver sẽ được thống nhất trên một interface duy nhất là ITCLDriver

Các thành phần phần mềm trong Front-End Server bao gồm: VDK Driver, OPC Client, Remote Server Proxy

57 Hình 4.4 Các module phần mềm trong Front-End Server

VDK Driver là một loại driver được thiết kế đặc chủng riêng biệt dành cho tủ điều khiển tín hiệu giao thông, nên luận văn sẽ không đề cập chi tiết về driver này

OPC Client dựa theo giao thức OPC chuẩn Dựa trên thư viện OPCLib có sẵn (viết trên nền tảng C++), luận văn viết thêm một lớp đóng gói cho nó thành thư viện trên nền tảng ngôn ngữ C# Mục đích nhằm dễ sử dụng hơn và có thiết kế thêm một interface ITCLDriver

60 Hình 4.8 OPC Client Interface chuẩn ITLC Driver được thiết kế như sau:

61 Hình 4.9 ITLCDriver Interface Proxy dành cho OPC Lib như sau:

Hình 4.10 Proxy cho OPC Lib

Front-End Server sẽ gọi hàm StartServer để khởi động proxy server Worker Role trên cloud muốn kết nối đến Front-End Server thì gọi hàm ConnectToServer Proxy này chạy trên TCP Channel với URL: tcp://{serverIP}:{serverPort}/OPCA

Proxy dành cho VDK Driver như sau:

62 Hình 4.11 Proxy dành cho VDK Driver

Front-End Server sẽ gọi hàm StartServer để khởi động proxy server Worker Role trên cloud muốn kết nối đến Front-End Server thì gọi hàm ConnectToServer Proxy này chạy trên TCP Channel với URL: tcp://{serverIP}:{serverPort}/VDKDriver.

Thiết kế Scheduler

Mục đích của scheduler là tạo ra những vòng lặp theo chu kỳ nhằm cập nhật dữ liệu của các tag từ front-end server Khi dữ liệu của tag được cập nhật, nó sẽ đưa ra 1 event (topic trong cloud) để các thành phần khác xử lý như Web HMI Server, Trend, Alarm, Realtime database

Scheduler được thiết kế trên cloud đóng vai trò là một worker role Nó có 3 thành phần chính:

 Task Collection: lập lịch để quét tag

 Quản lý front-end server: scheduler sẽ liên kết đến nhiều front-end server khác nhau nhằm cập nhật dữ liệu cho tag

 Service bus: đây là bus hệ thống chính, vận chuyển các message trong cloud

Task Collection chứa nhiều task, mỗi task có một chu kỳ cập nhật khác nhau Khi lượng tag trong 1 task quá nhiều, việc polling để cập nhật dữ liệu sẽ bị chậm trễ Do đó, ta phải phân task ra nhiều sub task Số lượng tag tối đa trong một sub task tùy theo khả năng xử lý của CPU

Bên cạnh đó, scheduler cũng thiết lập 1 subcription để lắng nghe các yêu cầu từ các module khác (chủ yếu là từ Web HMI Server, truyền các giá trị cài đặt cho bộ điều khiển) nhằm ghi giá trị xuống cho tag

Hình 4.13 Kiến trúc ghi dữ liệu xuống cho tag

Hình 4.14 IOTag Thiết kế Sub Task:

66 Hình 4.17 Quản lý front-end server

Hình 4.18 Scheduler quản lý Task Collection, Front-End, và Service Bus

Thiết kế Realtime Database

Database là một thành phần quan trọng trong tất cả các phần mềm Database trong cloud-based SCADA được thiết kế để lưu trữ các thành phần sau:

 Các cài đặt về giao diện dự án của người dùng

 Các cài đặt về hệ thống của dự ánh như channel, device, tag,…

 Lữu trữ các file mà người dùng upload lên server

 Lưu trữ dữ liệu thu thập được của hệ thống theo thời gian, nhằm đáp ứng cho việc thống kê dữ liệu

Dựa trên các mục đích này, database trong cloud-based SCADA triển khai trên Azure theo các hình thức sau:

 Blob (SaaS): chứa các dữ liệu cài đặt về giao diện, về dự án của người dùng

(các cài đặt sẽ được lưu trên blob theo định dạng XML

 SQL Azure (SaaS): là cơ sở dữ liệu quan hệ, để lưu trữ các cài đặt hệ thống và lưu trữ dữ liệu thu thập được

 Table (SaaS): khi chạy runtime, các cài đặt từ SQL Azure sẽ được load lên table, nhằm mục đích truy xuất nhanh Table được định dạng theo NoSQL

Nên việc đọc ghi dữ liệu truy xuất rất nhanh, chứa các dữ liệu realtime của hệ thống

Thiết kế blob Đối với mỗi dự án được tạo ra thì realtime database sẽ tạo 1 container tương ứng với tên dự án đó để chứa các blob Tạo 1 lớp service như Blob Access Service với 1 số thao tác cơ bản như upload, download, delete,…

68 Hình 4.19 Xây dựng blob access service, nằm trong BlobAccess.cs Blob chứa các định nghĩa về dự án sẽ chứa trong /{tên dự án}/Project

Blob chứa các thư viện hình ảnh sẽ chứa trong /{tên dự án}/Images Blob chứa các file khác sẽ chứa trong /{tên dự án}/Others

Chương trình được lập trình theo phong cách Code first, dùng các entity và dbContext để thực hiện việc mô phỏng cở sở dữ liệu quan hệ

Sử dụng entity framework để thực hiện các thao tác với database như add, update, get, getAll, getByFilter, getById thông qua service

Kiến trúc giao tiếp với database

Hình 4.20 Giao tiếp với SQL Azure thông qua service

Cơ sở dữ liệu cở bản được thiết kế trong chương trình

69 Hình 4.21 Cơ sở dữ liệu

 Device table: chứa các cài đặt về device như tên, địa chỉ, driver là gì,…

 IOTag: Chứa các định nghĩa về tag trong device

 Alarm Tag: chứa các định nghĩa và quy tắc cho alarm

 IOTagValue: chứa thông tin thu thập được theo thời gian

 AlarmTagValue: chứa các thông tin về alarm theo thời gian, nhằm kiểm soát lỗi

Các method giao tiếp với database được viết trong DBAccess.cs

70 Hình 4.22 Tạo/chỉnh sửa/xóa/lấy các đối tượng device từ database trong file

Table trong azure tương tự như cơ sở dữ liệu NoSQL, chứa những dữ liệu không có cấu trúc, không có quan hệ Khi dự án được chạy runtime, runtime manger sẽ load tất cả các cài đặt về IOTag (kèm theo các thông tin của device) và AlarmTag (kèm thêm các thông tin về IOTag) lên table Khi stop runtime, thì lưu trữ trong table sẽ bị xóa đi

Tượng tự như blob và SQL Azure, ta phải thiết kế một service phục vụ cho CRUD (create, read, update, delete) table và entity

Realtime database sẽ nhận các yêu cầu thông qua Service Bus, topic Realtime Database Các yêu cầu thường xuất phát từ Web HMI Server để cài đặt hệ thống và Scheduler để lưu trữ dữ liệu.

Thiết kế Runtime Manager

Runtime Manager dùng để điều khiển hoạt động của dự án, start, pause, resume

72 Hình 4.24 Sơ đồ vận hành của runtime manager Các yêu cầu của Runtime Manager sẽ được đưa ra trên topic RuntimeManager.

Thiết kế Web HMI Server/Client

Module Web HMI Server được viết dựa trên ASP.Net WebForm

Theo phương pháp truyền thống, khi chạy runtime, các web client sẽ gửi yêu cầu về phía server để cập nhật lại trạng thái hiển thị Ajax là một bước tiến lớn nhằm để chỉ load lại một phần trang web mà không cần phải load lại cả trang Tuy nhiên, khi lượng truy cập lớn thì server cũng sẽ đảm nhận một lượng lớn yêu cầu, server sẽ phải đáp ứng nhiều yêu cầu bị trùng lắp từ nhiều client khác nhau Khiến cho server rất nặng nề

Một phương pháp mới đây, cho phép giải quyết vấn đề trên, SignalR

SignalR cho phép server sẽ gọi các hàm java script ở client mà không cần client request dữ liệu Một khi server cập nhật dữ liệu mới, nó sẽ đưa ra tất cả các client kết nối đến nó Phương pháp này giúp giảm nhẹ rất lượng workload của server, ngoài ra còn tăng tính bảo mật (dữ liệu đi một chiều từ phía server ra client sẽ an toàn hơn rất nhiều)

73 Nguyên lý làm việc của SignalR là cho phép server gọi các hàm javascipt ở client, và ngược lại, client cũng có thể gọi các hàm ở server thông qua signalR Hub

Hình 4.25 Nguyên lý của signalR

Mỗi khi có một client mới, chương trình sẽ tạo một hub mới ở phía server để kết nối với client Như vậy, làm sao để quan lý tất cả các kết nối này và khi có dữ liệu mới từ hệ thốn thì cần thiết phải đẩy dữ liệu mới này ra tất cả các client kết nói đến hub

Chương trình xây dựng 1 Broadcaster (là một instance duy nhất) chịu trách nhiệm quản lý các hub

Một trong điểm mạnh của cloud computing đó là tính co giãn Nó có thể tăng số lượng đối tượng lên để đáp ứng các yêu cầu, hoặc giảm xuống khi các yêu cầu không còn nữa Như vậy, khi số lượng người dùng truy cập hệ thống lớn lên, đòi hỏi cần phải có nhiều Web HMI Server để đáp ứng điều này Tuy nhiên, nó sẽ phát sinh ra hai vấn đề sau:

 Vấn đề 1: Khi có một dữ liệu mới cập nhật, làm thế nào để tất cả các Web HMI

Server đều nhận được dữ liệu mới đó và đưa ra các client

 Vấn đề 2: đó là khi client gửi lệnh yêu cầu cài đặt hệ thống lên Web HMI Server 1, thì làm cách nào để các client kết nối đến Web HMI Server 2 cập nhật lại được các cài đặt hệ thống này

Phương pháp giải quyết hai vấn đề trên đó là sử dụng backlane, mà ở đây là service bus

76 Hình 4.29 Giải quyết vấn đề 1 bằng service bus

Các Web HMI Server sẽ subcribe SchdulerTopic Khi có dữ liệu mới, thì toàn bộ Web HMI Server sẽ nhận được

Hình 4.30 Giải quyết vấn đề 2 bằng service bus

77 Khi có yêu cầu Web HMI Server n nhận được, nó sẽ đẩy ra một message, message này sẽ được nhận bởi real-time database để lưu cài đặt Đồng thời message này cũng được các Web HMI Server 1, 2 nhận được và cập nhật trạng thái lại cho Client 1, 2, 3 Đây là một công nghệ rất hay, giải quyết được các bài toán hiện nay về workload

XÂY DỰNG HỆ THỐNG SCADA TÍN HIỆU GIAO THÔNG DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY

Tổng quan hệ thống

 Các chốt điều khiển (thường đặt ở ngã tư) tín hiệu giao thông trên địa bàn

Thành phố Hồ Chí Minh

 Front-End Server: đặt tại trụ sở của công ty Chiếu Sáng Công Cộng Tp Hồ Chí

 SCADA Server: đặt trên cloud Window Azure

 Web HMI Server: đặt tại cloud Window Azure

Hình 5.1 Mô hình kết nối của hệ thống

Giao diện ứng dụng

Hệ thống điều khiển và giám sát tín hiệu giao thông, khu vực quận 1 và phố đi bộ Nguyễn Huệ

79 Hình 5.2 Giao diện quản lý tổng quát Giao diện giám sát tủ điều khiển tại chốt

Hình 5.3 Giao diện giám sát thông tin tủ

80 Hình 5.4 Giao diện giám sát thông tin tủ

Kết luận và đánh giá

Hệ thống Cloud SCADA là thế hệ phát triển tiếp theo của SCADA Nó giúp tiết giảm các chi phí phần cứng, cũng như chi phí bảo trì, đảm bảo tính liên tục của hệ thống, tính dự phòng Việc triển khai cũng rất dễ dàng

Bốn ưu điểm lớn nhất của hệ thống cloud-based SCADA:

 Dễ dàng kết nối với hệ thống mạng ở các trạm hiện sẵn thông qua virtual network hoặc remoting technique

 Tính co giãn và tính liên tục của cloud giúp cho giảm đi rất chi phí cho hệ thống dự phòng mà hệ thống vẫn lun đảm bảo hoạt động liên tục

 Mỗi thành phần trong cloud-based SCADA có thể tăng số lượng instance lên để đáp ứng tải hoặc giảm đi một cách tự động dựa theo các quy tắc đặt trước của người vận hành Điều này giúp hệ thống lun hoạt động hiệu quả và tiết kiệm tài nguyên

 Sử dụng công nghệ SignalR làm giảm tải cho Web HMI Server, giảm bớt một lượng lớn yêu cầu xử lý tại server Đồng thời, các Web HMI Client cũng không cần phải lặp tuần hoàn để cập nhật dữ liệu, giảm nhẹ tải cho máy client

Hai khuyết điểm sau đây của cloud-based SCADA cần cải tiến:

 Băng thông phải lun đảm bảo, nhằm giảm độ trễ dữ liệu từ nhà máy đến client Khi độ trễ lớn sẽ gây ra sự không thống nhất dữ liệu từ phía client và nhà máy, dẫn đến điều khiển sai

 Vấn đề bảo mật cần được nâng cao để đảm bảo an toàn tuyệt đối cho nhà máy.

Hướng phát triển đề tài

Nghiên cứu xây dựng các tính năng nâng cao của phần mềm như module programing, hệ thống báo cáo

Xây dựng MES (Manufacturing Execution System) dựa trên nền tảng điện toán đám mây

Tích hợp các bảo mật Cyper-Security trên cloud

Ngày đăng: 09/09/2024, 15:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[8] Fayyaz, S. and M.M. Nazir, Handling Security Issues for Smart Grid Applications using Cloud Computing Framework. Journal of Emerging Trends in Computing and Information Sciences, 2012. 3(2) Sách, tạp chí
Tiêu đề: Handling Security Issues for Smart Grid Applications using Cloud Computing Framework. Journal of Emerging Trends in Computing and Information Sciences
[2] Qi Zhang, Lu Cheng, Raouf Boutaba, Cloud computing: state-of-the-art and research challenges Khác
[5] White Paper, Cloud-Based SCADA Systems: The Benefits & Risks Is Moving Your SCADA System to the Cloud Right For Your Company Khác
[6] White Paper, Is Moving Your SCADA System to the Cloud Right For Your Company? Cloud- Based SCADA Systems: The Benefits & Risks Khác
[9] Christophe Feltus, Moussa Ouedraogo, Djamel Khadraoui, Towards Cyber-Security Protection of Critical Infrastructures by Generating Security Policy for SCADA Systems Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Hệ thống máy chủ khi chưa có ảo hóa - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.1. Hệ thống máy chủ khi chưa có ảo hóa (Trang 16)
Hình 2.2. Hệ thống máy chủ khi sử dụng ảo hóa - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.2. Hệ thống máy chủ khi sử dụng ảo hóa (Trang 17)
Hình 2.4. Các mô hình dịch vụ - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.4. Các mô hình dịch vụ (Trang 21)
Hình 2.5. Mô hình các thành phần hệ thống trong cloud - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.5. Mô hình các thành phần hệ thống trong cloud (Trang 22)
Hình 2.10. Mô hình điện toán website - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.10. Mô hình điện toán website (Trang 32)
Hình 2.11. Mô hình cloud service  Cloud-based SCADA sẽ được phát triển theo mô hình của Cloud Service vì những ưu  điểm của nó so với VM và Website - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.11. Mô hình cloud service Cloud-based SCADA sẽ được phát triển theo mô hình của Cloud Service vì những ưu điểm của nó so với VM và Website (Trang 33)
Hình 2.12. Mô hình blob  Trong đó, - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.12. Mô hình blob Trong đó, (Trang 34)
Hình 2.14. Mô hình của queue - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.14. Mô hình của queue (Trang 36)
Hình 2.15. SQL Azure  Nếu ta xây dựng một ứng dụng cần đến cơ sở dữ liệu quan hệ, thì SQL Azure  là một sự lựa chọn tốt - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.15. SQL Azure Nếu ta xây dựng một ứng dụng cần đến cơ sở dữ liệu quan hệ, thì SQL Azure là một sự lựa chọn tốt (Trang 37)
Hình 2.16. Mở rộng network bằng virtual network  Tùy theo yêu cầu của hệ thống, ta có thể sử dụng virtual network theo nhiều cách  khác nhau - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.16. Mở rộng network bằng virtual network Tùy theo yêu cầu của hệ thống, ta có thể sử dụng virtual network theo nhiều cách khác nhau (Trang 38)
Hình 2.19. Traffic Manager - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.19. Traffic Manager (Trang 41)
Hình 2.20. Queue - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 2.20. Queue (Trang 42)
Hình 3.1. Kiến trúc hệ thống - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 3.1. Kiến trúc hệ thống (Trang 45)
Hình 3.2. Hệ thống Stand-alone - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 3.2. Hệ thống Stand-alone (Trang 47)
Hình 3.7. Các thành phần trong phần mềm SCADA - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 3.7. Các thành phần trong phần mềm SCADA (Trang 52)
Hình 4.1. Triển khai front-end server tại local - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.1. Triển khai front-end server tại local (Trang 54)
Hình 4.7. OPC Client - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.7. OPC Client (Trang 59)
Hình 4.10 Proxy cho OPC Lib. - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.10 Proxy cho OPC Lib (Trang 61)
Hình 4.13 Kiến trúc ghi dữ liệu xuống cho tag - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.13 Kiến trúc ghi dữ liệu xuống cho tag (Trang 63)
Hình 4.14. IOTag  Thiết kế Sub Task: - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.14. IOTag Thiết kế Sub Task: (Trang 64)
Hình 4.16. Task - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.16. Task (Trang 65)
Hình 4.18. Scheduler quản lý Task Collection, Front-End, và Service Bus - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.18. Scheduler quản lý Task Collection, Front-End, và Service Bus (Trang 66)
Hình 4.25.  Nguyên lý của signalR - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.25. Nguyên lý của signalR (Trang 73)
Hình 4.27. Hub Class - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.27. Hub Class (Trang 74)
Hình 4.30. Giải quyết vấn đề 2 bằng service bus - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 4.30. Giải quyết vấn đề 2 bằng service bus (Trang 76)
Hình 5.1 Mô hình kết nối của hệ thống - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 5.1 Mô hình kết nối của hệ thống (Trang 78)
Hình 5.3. Giao diện giám sát thông tin tủ - Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Nghiên cứu và phát triển Scada dựa trên điện toán đám mây
Hình 5.3. Giao diện giám sát thông tin tủ (Trang 79)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w