Tải bản đầy đủ (.docx) (19 trang)

ĐỀ TÀI: TÌM HIỂU VÀ THIẾT KẾ OPC UA VỚI C#

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.62 MB, 19 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC BÁCH KHOA</b>

<b>KHOA ĐIỆN – ĐIỆN TỬ</b>

<b>BỘ MÔN ĐIỀU KHIỂN VÀ TỰ ĐỘNG</b>

<b>---o0o---BÁO CÁO BÀI TẬP LỚN</b>

<b>ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNHĐỀ TÀI: TÌM HIỂU VÀ THIẾT KẾ OPC UA VỚI C# </b>

<b>TP. HỒ CHÍ MINH, THÁNG 6 NĂM 2023</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>MỤC LỤC</b>

<b>I. TÌM HIỂU VỀ OPC UA...2</b>

<i>1. Giới thiệu về OPC...3</i>

<i>2. Giới thiệu về OPC UA...3</i>

<b>II. THIẾT KẾ VÀ MÔ PHỎNG OPC UA VỚI C#...2</b>

<i>1. Mô phỏng Server bằng “OPC UA Server Simulator”...2</i>

<i>2. Mô phỏng Client bằng “OPC UA Client”...4</i>

<i>3. Thiết kế giao tiếp OPC UA bằng C# sử dụng thư viện Opc.UaFx.Client...5</i>

<b>III. TÀI LIỆU THAM KHẢO...9</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>I. TÌM HIỂU VỀ OPC UA</b>

<i><b>1. Giới thiệu về OPC</b></i>

OPC (OLE for Process Control) là một tiêu chuẩn truyền thông công nghiệp đượcsử dụng để truyền tải dữ liệu và thông tin giữa các thiết bị và hệ thống từ các nhà sản xuấtkhác nhau. Nó đóng vai trị quan trọng trong nghiên cứu vì cho phép giao tiếp và truyềntải dữ liệu giữa các thành phần trong một hệ thống tự động hóa cơng nghiệp một cách tiệnlợi và hiệu quả. OPC sử dụng mô hình khung COM/DCOM (Component ObjectModel/Distributed Component Object Model) của Microsoft để tạo ra một giao diệnchung cho việc truyền tải dữ liệu. Điều này giúp đơn giản hóa việc giao tiếp giữa cácthiết bị, hệ thống và ứng dụng khác nhau bằng cách cung cấp một tập hợp các quy tắc vàquy định chuẩn.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

OPC được phát triển để đảm bảo tính tương thích, độ tin cậy và khả năng mở rộng.Nó cung cấp một loạt các giao thức truyền tải dữ liệu đa dạng để phục vụ các mục đíchcụ thể trong tự động hóa cơng nghiệp.

phép truy cập dữ liệu thời gian thực từ các thiết bị và hệ thống. Giao thức nàycho phép lấy dữ liệu từ các biến, thông số và trạng thái hiện tại của các thiết bị.

sử, cho phép thu thập và truy xuất thông tin về các dữ liệu đã được lưu trữ trongquá khứ. Điều này rất hữu ích để phân tích xu hướng, thống kê và xem xét lạicác sự kiện quan trọng đã xảy ra trong quá trình vận hành.

và sự kiện trong hệ thống. Nó cho phép đọc, ghi và xử lý các cảnh báo và sự kiệnxảy ra trong quá trình hoạt động, giúp người dùng theo dõi và phản ứng nhanhchóng đối với các tình huống bất thường.

- Ngồi ra, OPC còn cung cấp nhiều giao thức khác như OPC DX (DataeXchange) để truyền dữ liệu qua mạng, OPC XML-DA (XML Data Access) sửdụng định dạng XML để truy cập dữ liệu, và nhiều giao thức khác nhằm đáp ứngcác yêu cầu và nhu cầu đặc thù của các ứng dụng trong tự động hóa cơng nghiệp.Với việc cung cấp các giao thức truyền tải dữ liệu đa dạng, OPC đóng vai trị quantrọng trong việc kết nối và truy cập dữ liệu từ các thiết bị và hệ thống trong tự động hóacơng nghiệp.

Tiêu chuẩn OPC đóng góp quan trọng trong nghiên cứu bởi khả năng tích hợp linhhoạt và tiêu chuẩn hóa giao tiếp giữa các thiết bị và hệ thống từ các nhà sản xuất khácnhau. Điều này giúp nghiên cứu viên tiếp cận và sử dụng dữ liệu từ nhiều nguồn khácnhau một cách dễ dàng và hiệu quả. Việc áp dụng tiêu chuẩn OPC trong nghiên cứu giúptăng cường tính tương thích, tính nhất quán và khả năng mở rộng của các hệ thống tựđộng hóa cơng nghiệp, đồng thời tạo ra cơ sở cho phát triển và ứng dụng các giải phápmới trong lĩnh vực này.OPC được sử dụng trong nhiều lĩnh vực tự động hóa cơng nghiệp,

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

bao gồm hệ thống điều khiển quy trình, hệ thống giám sát, hệ thống thu thập dữ liệu vàquản lý tài ngun. Nó cho phép tích hợp linh hoạt giữa các thiết bị và hệ thống từ cácnhà sản xuất khác nhau, không bị ràng buộc bởi các công nghệ hoặc giao thức cụ thể.

<i><b>2. Giới thiệu về OPC UA</b></i>

OPC Unified Architecture (UA) là một tiêu chuẩn công nghệ truyền thông đượcOPC Foundation phát hành lần đầu vào năm 2006 nhằm cải tiến trên phiên bản trước đócủa nó, OPC Classic. OPC UA bao gồm tất cả các chức năng được tìm thấy trong OPCClassic. Điều này được thực hiện bằng cách kết hợp các thông số kỹ thuật khác nhau củaOPC Classic thành một điểm nhập duy nhất vào hệ thống cung cấp DA và A&E hiện tại,kết hợp với lịch sử của cả hai.

Hơn nữa, OPC UA dựa trên một kiến trúc dịch vụ hướng đến doanh nghiệp trênnhiều nền tảng (SOA) được tối ưu hóa, mở rộng về tính bảo mật và chức năng được tìmthấy trong OPC Classic thay vì cơng nghệ COM/DCOM của Microsoft. OPC UA hỗ trợhai giao thức: một giao thức nhị phân sử dụng tài nguyên tối thiểu, cho phép dễ dàng kíchhoạt qua tường lửa, và một giao thức dịch vụ web (SOAP) sử dụng các cổngHTTP/HTTPS tiêu chuẩn. Bởi vì lợi ích của giao thức mới này, ngày càng nhiều ứngdụng công nghiệp đã áp dụng giao thức UA cả trong khơng gian tự động hóa cơng nghiệptruyền thống dựa trên OPC và các lĩnh vực mới như năng lượng.

OPC Classic yêu cầu hệ điều hành Microsoft Windows để triển khai chức năng máychủ COM/DCOM. Bằng cách sử dụng kiến trúc SOA và dịch vụ web, OPC UA là một hệthống độc lập nền tảng, loại bỏ sự phụ thuộc trước đây vào hệ điều hành Windows. Bằngcách sử dụng giao thức SOAP/XML thơng qua HTTP, OPC UA có thể triển khai trênnhiều hệ thống nhúng khác nhau, bất kể hệ điều hành đó là một hệ điều hành đa năng nhưWindows hay một hệ điều hành thời gian thực xác định.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<i>OPC UA loại bỏ nhu cầu sử dụng các thành phần dựa trên Windows và có thể truyềnthông trực tiếp với các máy chủ OPC UA nhúng trên PLC.</i>

Một trong những lợi ích quan trọng nhất của việc loại bỏ sự phụ thuộc vào côngnghệ COM/DCOM là mở rộng các tính năng bảo mật. Hệ thống OPC Classic phụ thuộcvào cấu hình phức tạp của DCOM để cung cấp bảo mật giữa các tiến trình. Thường thì,các nhà cung cấp thiết bị thường bỏ qua bước kiểm tra này, dẫn đến việc cấu hình phứctạp cho người dùng. Điều này thường dẫn đến việc bảo mật bị tắt hoàn toàn, gây ra các lỗhổng bảo mật lớn trong mạng. Trong hệ thống OPC Classic, các nhà phát triển phải sửdụng danh sách điều khiển truy cập (Access Control lists) được lưu trữ trong các cài đặtDCOM để cấu hình các thiết lập bảo mật cho từng thành phần.

Ngược lại, OPC UA sử dụng các công nghệ web tiêu chuẩn làm nền tảng bảo mật,bao gồm cả khả năng xác thực và mã hóa để bảo vệ dữ liệu. Điều này loại bỏ sự phụthuộc vào DCOM và cung cấp một hệ thống bảo mật đơn giản và dễ dàng cấu hình hơn.Các tính năng bảo mật được tích hợp sẵn trong giao thức OPC UA, giúp các nhà pháttriển và người dùng có thể dễ dàng triển khai các giải pháp bảo mật mạnh mẽ trong cáchệ thống tự động hóa cơng nghiệp.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<i>OPC UA yêu cầu thực hiện bắt tay giữa các máy khách và máy chủ bằng cách sử dụngchứng chỉ chuẩn Web X.509 để xác thực trước khi họ có thể giao tiếp với nhau.</i>

Các máy chủ và máy khách OPC UA phải phụ thuộc vào các chứng chỉ duy nhất đểgiao tiếp với nhau. OPC UA hỗ trợ chuẩn Mật mã Khóa cơng khai PKCS12 để cung cấpcác tập tin chứa khóa cơng khai và khóa riêng tư X.509. Cả máy chủ và máy khách đềucó thể lựa chọn cặp khóa cơng khai và khóa riêng tư để sử dụng. Để giao tiếp giữa máychủ và máy khách, người dùng có thể chọn ba chế độ thơng điệp: None, Sign, Sign andEncrypt. Ngoài ra, người dùng có thể kích hoạt một trong hai chính sách bảo mật:Basic256 và Basic128Rsa15. Những chính sách bảo mật này là cơ sở cho thuật tốn đểký hoặc mã hóa dữ liệu giữa máy khách và máy chủ.

Nhờ vào mơ hình bảo mật được tiêu chuẩn hóa, OPC UA cho phép tích hợp dễ dàngvào các mạng IT hiện có, giảm thiểu chi phí cấu hình. OPC UA có thể giao tiếp thơngqua bất kỳ cổng HTTP hoặc UA TCP tiêu chuẩn nào. Nhờ sự tiêu chuẩn hóa này, OPCUA có thể kết nối an toàn qua VPN và qua tường lửa để cho phép kết nối từ xa giữa máykhách và máy chủ một cách dễ dàng. Như đã đề cập trước đó, OPC UA cũng triển khaicác giao thức mạng tiêu chuẩn, bao gồm xác thực với chứng chỉ và mã hóa dữ liệu.

Do sự thay đổi trong công nghệ truyền thông dữ liệu, giao thức OPC UA khơngtương thích ngược với mơ hình truy cập dữ liệu (DA) của OPC Classic. Các máy chủOPC DA cần một UA Wrapper để truy cập các ứng dụng khách UA. Ngoài ra, để truycập các máy chủ UA, các ứng dụng khách OPC DA cần một UA Proxy là một DCOMEXE Server kết nối đến các máy chủ UA bằng cách tạo các Pseudo-server COM.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<i>Để truy cập các máy chủ OPC UA, các ứng dụng khách dựa trên COM của OPC Classiccần một UA Proxy để giao tiếp với các máy chủ UA.</i>

<i>Để tương tác với các ứng dụng khách UA, các máy chủ dựa trên COM của OPC Classiccần một UA Wrapper để chuyển đổi giao thức từ OPC Classic sang OPC UA.</i>

OPC UA có thể được sử dụng cho hệ thống kiểm soát và thu thập dữ liệu giám sát(SCADA), loại bỏ sự sử dụng của các hệ thống trung gian dựa trên Windows để tối ưuquá trình truyền dữ liệu từ các cấp độ trường và điều khiển theo chiều dọc lên các cấpquản lý và doanh nghiệp. Khả năng cung cấp truyền dữ liệu an toàn và đáng tin cậy củaOPC UA qua nhiều giao thức truyền thông cho phép các hệ thống SCADA giao tiếp hiệuquả với các hệ thống khác, chẳng hạn như hệ thống quản lý tài nguyên doanh nghiệp(ERP), hệ thống thực thi sản xuất (MES) và các hệ thống kinh doanh khác. Điều này chophép các tổ chức tận dụng dữ liệu thời gian thực từ hệ thống SCADA của họ để đưa raquyết định thông minh, cải thiện hiệu quả hoạt động và tối ưu hóa quy trình của họ. Bằngcách sử dụng OPC UA, các tổ chức có thể tạo ra một kiến trúc hệ thống mượt mà và tíchhợp hơn, giảm độ phức tạp và cải thiện hiệu suất tổng thể của hệ thống.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<i>OPC UA cung cấp phương tiện truyền thông thông tin trong kiểm soát giám sát truyềnthống.</i>

Tuy nhiên, OPC UA cũng phù hợp cho việc truyền thông M2M giữa nhiều bộ điềukhiển từ các nhà sản xuất khác nhau ở cấp độ điều khiển. Điều này cho phép các thiết bịđiều khiển và cảm biến sử dụng một ngôn ngữ chung để truyền tải dữ liệu một cách antoàn và đáng tin cậy giữa các hệ thống và phụ hệ thống trong các ứng dụng máy thôngminh.

OPC UA cung cấp một giao thức truyền thông tiêu chuẩn độc lập với các nền tảngphần cứng và phần mềm cơ bản, cho phép tích hợp giữa các hệ thống và thiết bị khácnhau, bao gồm các thiết bị từ các nhà sản xuất khác nhau. Điều này giúp giảm độ phứctạp và cải thiện khả năng tương thích trong các ứng dụng máy thơng minh, cho phép cáctổ chức tận dụng tối đa tiềm năng của các máy của họ bằng cách thu thập và phân tích dữliệu thời gian thực từ nhiều nguồn khác nhau.

Bằng cách sử dụng OPC UA cho truyền thông M2M, các tổ chức có thể tạo ra mộtkiến trúc hệ thống linh hoạt và có khả năng mở rộng, cho phép thích nghi với các nhu cầukinh doanh thay đổi và các công nghệ mới nổi.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i>OPC UA kích hoạt giao tiếp M2M trong máy thơng minh</i>

OPC UA mở rộng các chức năng của mơ hình OPC gốc, OPC Classic, bằng cách cảithiện tính bảo mật và chuyển sang một phiên bản độc lập nền tảng dựa trên các công nghệweb tiêu chuẩn. Những cải tiến của OPC UA vượt qua nhiều thách thức với OPC Classicvà sẽ giúp thúc đẩy việc áp dụng tiêu chuẩn ngành công nghiệp mở này hơn nữa tronglĩnh vực Tự động hóa Cơng nghiệp cũng như các lĩnh vực ứng dụng khác cần một giaodiện truyền thông tiêu chuẩn, mở và an toàn.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>II. THIẾT KẾ VÀ MƠ PHỎNG OPC UA VỚI C#</b>

<i><b>1. Mơ phỏng Server bằng “OPC UA Server Simulator”</b></i>

Được phát triển bởi Integration Objects, công cụ máy chủ OPC UA miễn phí này hỗ trợ các mơ hình truy cập dữ liệu và lịch sử của OPC UA:

- Cung cấp dữ liệu thời gian thực mơ phỏng và dữ liệu lịch sử.

- Người dùng có thể cấu hình các thẻ của riêng mình và mơ phỏng dữ liệu thông qua tệp CSV.

- Các client OPC UA có thể giám sát dữ liệu thời gian thực và khám phá dữ liệu lịch sử từ trình mơ phỏng này.

- Link download phần mềm: architecture/opc-ua-server-simulator/

<small> Server</small>

<small>OPC Client</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Giao diện phần mềm:

Trình mơ phỏng máy chủ OPC UA sử dụng 2 tệp mô phỏng CSV:

- "AddressSpace.csv" được sử dụng để xây dựng không gian địa chỉ của máy chủ OPCUA.

- "ValueSpace.csv" được sử dụng để mô phỏng giá trị dữ liệu của các mục OPC UA.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i><b>2. Mô phỏng Client bằng “OPC UA Client”</b></i>

OPC UA Client là một cơng cụ Client miễn phí hỗ trợ các mơ hình thơng tin chính củakiến trúc OPC UA. Các mơ hình này bao gồm Truy cập Dữ liệu, Cảnh báo & Điều kiệnvà Truy cập Dữ liệu Lịch sử. Thực tế, nó cung cấp khả năng:

- Giám sát dữ liệu thời gian thực và cảnh báo & điều kiện.

- Hơn nữa, trình duyệt OPC UA này cho phép bạn tạo Chứng chỉ ApplicationInstance để cung cấp bảo mật cấp ứng dụng và kết nối an toàn với các máy chủOPC UA.

- Link download phần mềm: unified-architecture/opc-ua-client/

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

diện phần mềm:

<i><b>3. Thiết kế giao tiếp OPC UA bằng C# sử dụng thư viện Opc.UaFx.Client</b></i>

Tải thư viện Opc.UaFx.Client bằng NuGet Package Manager:

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small> publicpartialclassForm1 : Form {</small>

<small> int i;</small>

<small> publicForm1() {</small>

<small> InitializeComponent(); </small>

<small> }</small>

<small> privatevoid Form1_Load(object sender, EventArgs e) {</small>

<small> } </small>

<small> void btnStart_Click(object sender, EventArgs e) {</small>

<small> try</small>

<small> {</small>

<small> string opcUrl;</small>

<small> opcUrl = Convert.ToString(txtopcUrl.Text); var tagName = "ns=2;s=Tag7";</small>

<small> var client = new OpcClient(opcUrl); i = 1;</small>

<small> DateTime sensorDateTime = DateTime.Now;</small>

<small> txtTimeStamp.Text = sensorDateTime.ToString("yyyy-MM-dd HH:mm:ss"); lblStatusMessage.Text = "Logging Started and Connected to OPC Server"; }</small>

<small> var client = new OpcClient(opcUrl); i = 0;</small>

<small> DateTime sensorDateTime = DateTime.Now;</small>

<small> txtTimeStamp.Text = sensorDateTime.ToString("yyyy-MM-dd HH:mm:ss"); lblStatusMessage.Text = "Logging Stopped and Disconnected from OPC Server"; }</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small> </small>

<small> private void label2_Click(object sender, EventArgs e)</small>

<small> { }</small>

<small> privatevoid lblStatusMessage_Paint(object sender, PaintEventArgs e) {</small>

<small> var client = new OpcClient(opcUrl); double sensorValue;</small>

<small> </small>

<small> if(i==1) { try</small>

<small> {</small>

<small> sensorValue = Convert.ToDouble(txtSensorValue.Text); client.Connect();</small>

<small> client.WriteNode(tagName, sensorValue); }</small>

<small> privatevoid txtopcUrl_TextChanged(object sender, EventArgs e) {</small>

<small> var client = new OpcClient(opcUrl); if (i == 1)</small>

<small> { </small>

<small> client.Connect();</small>

<small> var y= client.ReadNode(tagName); textBox1.Text = y.ToString(); }</small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Giao diện:

Tổng quan phần mềm: Phần mềm kết nối với Node: ns=2;s=Tag7 để đọc, ghi dữ liệudạng Double

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>III. TÀI LIỆU THAM KHẢO</b>

<i>[1] Hans-Petter Halvorsen, OPC UA with Visual Studio and C#, truy cập từ:</i>

<i>[2] NATIONAL INSTRUMENTS CORP (7/11/2022), Why OPC UA Matters, truy cập</i>

từ: opc-ua-matters.html


×