Giáo trình Hệ thống điều khiển phân tán (Phần 2)
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ thống điều khiển phân tán (Phần 2)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
giao_trinh_he_thong_dieu_khien_phan_tan_phan_2.pdf
Nội dung text: Giáo trình Hệ thống điều khiển phân tán (Phần 2)
- 48 7 CÁC MÔ HÌNH ỨNG DỤNG ĐIỀU KHIỂN PHÂN TÁN 7.1 IEC-61131 IEC (International Electrotechnical Commission) là một tổ chức toàn cầu bao gồm các hội đồng ở các quốc gia. Mục tiêu của tổ chức này là thúc đẩy công việc chuẩn hoá trong lĩnh vực điện và điện tử. IEC 61131 là tiêu chuẩn về bộ điểu khiển khả trình PLC và các thiết bị ngoại vi đi kèm với nó. Chuẩn IEC 61131 bao gồm 9 phần, trong đó các phần 1 đến 5 là quan trọng nhất: • Phần 1 (General Information): Đưa ra các định nghĩa chung và các đặc tính chức năng tiêu biểu cho mỗi hệ thống điều khiển sử dụng PLC, ví dụ cơ chế thực hiện tuần hoàn, ảnh quá trình, thiết bị lập trình và giao diện người-máy. • Phần 2 (Equipment requirements): Đặt ra các yêu cầu điện học, cơ học và chức năng cho các thiết bị; định nghĩa phương pháp kiểm tra và thử nghiệm các kiểu thiết bị tương ứng. Các yêu cầu được định nghĩa là nhiệt độ, độ ẩm, cung cấp nguồn, độ kháng nhiễu, phạm vi tín hiệu logic và sức bền cơ học của các thiết bị. • Phần 3 (Programming languages): Định nghĩa các ngôn ngữ lập trình cho các thiết bị điều khiển khả trình. Ngoài ba ngôn ngữ kinh điển là biểu đồ hình thang (Ladder Diagram, LD), biểu đồ khối chức năng (Function Block Diagram, FBD) và liệt kê lệnh (Instruction List, IL), và một ngôn ngữ bậc cao kiểu văn bản có cấu trúc (Structured Text, ST) thì một phương pháp lập trình đồ họa phục vụ biểu diễn các thuật toán điều khiển trình tự là SFC (Sequential Function Chart) cũng đã được chuẩn hóa. • Phần 4 (Guidelines for users): Đưa ra các nguyên tắc chỉ đạo cho người sử dụng trong các quá trình của một dự án, từ phân tích hệ thống cho tới lựa chọn thiết bị, vận hành và bảo trì hệ thống. • Phần 5 (Communication): Đề cập tới phương pháp truyền thông giữa các PLC cũng như giữa PLC và một thiết bị khác trên cơ sở các khối hàm chuẩn. Các dịch vụ truyền thông này mở rộng chuẩn ISO/IEC 9506-1/2, thực chất là một tập con trong các dịch vụ được qui định trong MMS. 7.1.1 Mô hình phần mềm Mỗi PLC tại một thời điểm bất kỳ chỉ có một cấu hình (configuration) nào đó. Một cấu hình bao gồm một hay nhiều tài nguyên (resource) bên trong đặc trưng cho khả năng xử lý tín hiệu của PLC. Mỗi tài nguyên bao gồm ít nhất một chương trình (program) hoạt động dưới sự điều khiển của tác vụ (task). Chương trình được xây dựng nên từ các khối chức năng (function block) hoặc các yếu tố ngôn ngữ khác (có cả thảy 5 ngôn ngữ lập trình được định nghĩa © 2005, Hoàng Minh Sơn
- 49 trong phần này). Các biến toàn cục (global variable) và lối truy cập (access path) là những cơ chế giao tiếp trong chương trình và giữa các tài nguyên với nhau. CONFIGURATION RESOURCE RESOURCE TASK TASK TASK TASK PROGRAM PROGRAM PROGRAM PROGRAM FB FB FB FB GLOBAL and DIRECTLY REPRESENTED VARIABLES and INSTANCE-SPECIFIC INITIALIZATIONS ACCESS PATHS Communication function (See IEC 1131-5) Execution control path or Variable access paths FB Function block Variable Hình 7-1: Mô hình phần mềm theo IEC 61131-3 7.1.2 Mô hình giao tiếp Như biểu diễn trong Hình 7-2, giá trị của biến có thể được truyền trực tiếp trong nội bộ chương trình bằng cách kết nối đầu ra của đơn vị ngôn ngữ này tới đầu vào của đơn vị ngôn ngữ khác. Mối liên kết này được biểu diễn một cách trực quan trong các ngôn ngữ đồ họa hoặc ẩn trong các ngôn ngữ văn bản. FB1 FB2 ab Hình 7-2: Giao tiếp bên trong chương trình Giá trị của biến cũng có thể được truyền giữa các chương trình trong cùng một cấu hình thông qua biến toàn cục kiểu như biến x biểu diễn trong Hình 7-3. Biến này được khai báo là EXTERNAL đối với tất cả các chương trình sử dụng nó. © 2005, Hoàng Minh Sơn
- 50 CONFIGURATION C PROGRAM A PROGRAM B VAR_EXTERNAL VAR_EXTERNAL x: BOOL; x: BOOL; END_VAR END_VAR FB1 FB2 FB_X VAR_GLOBAL FB_Y a x x: BOOL; x b END_VAR Hình 7-3: Giao tiếp giữa các chương trình trong cùng một cấu hình bằng biến toàn cục Hình 7-4 biểu diễn cách giao tiếp đa năng nhất thông qua khối chức năng giao tiếp. Chi tiết về loại khối chức năng này được mô tả trong IEC 61131-5, ở đây chỉ lưu ý rằng, sử dụng khối chức năng truyền thông, giá trị của biến có thể được truyền giữa các bộ phận của chương trình, giữa các chương trình trong cùng một cấu hình hay trong các cấu hình khác nhau, thậm chí giữa chương trình chạy trong PLC với các hệ thống khác không phải PLC. CONFIGURATION C CONFIGURATION D PROGRAM send rcv1 PROGRAM SEND RCV FB1 SD1 RD1 FB2 FB_ FB_ b a Hình 7-4: Giao tiếp qua khối chức năng Sau cùng, bộ điều khiển khả trình và hệ thống không phải PLC có thể truyền dữ liệu qua lại thông qua lối truy cập như biểu diễn trong Hình 7-5, sử dụng các cơ chế định nghĩa trong IEC 61131-5. © 2005, Hoàng Minh Sơn
- 51 CONFIGURATION C CONFIGURATION D P1 PROGRAM A PROGRAM B FB1 FB_X TO_FB2 FB2 a Z READ FB_Y RD1 b 'CSX' VAR_1 VAR_ACCESS CSX: P1.Z : REAL READ_ONLY; Hình 7-5: Giao tiếp qua ₫ường dẫn truy cập 7.2 IEC-61499 IEC 61499 là tiêu chuẩn liên quan đến việc sử dụng các khối chức năng với tư cách là các module phần mềm trong hệ thống đo lường - điều khiển phân tán. Đứng từ quan điểm hướng đối tượng, mỗi khối chức năng được coi là một đối tượng phân tán với một chức năng trong hệ thống. Chuẩn IEC 61499 bao gồm 3 phần trong đó phần 1 là quan trọng nhất. IEC 61499-1 định nghĩa kiến trúc chung của hệ thống đo lường - điều khiển, ở đó khối chức năng đóng vai trò cốt lõi, dưới dạng các mô hình tham khảo. Có tất cả 8 mô hình được định nghĩa như trình bày dưới đây. 7.2.1 Mô hình hệ thống Chuẩn IEC mô tả hệ thống đo lường - điều khiển quá trình công nghiệp ở dạng một tập hợp các thiết bị kết nối lại và liên lạc với nhau thông qua một hay nhiều mạng truyền thông như trong Hình 7-6 dưới đây. Các mạng này có thể được tổ chức theo thứ bậc. HÖ thèng m¹ng truyÒn th«ng ThiÕt bÞ 1 ThiÕt bÞ 2 ThiÕt bÞ 3 ThiÕt bÞ 4 øng dông A øng dông B øng dông C Qu¸ tr×nh kü thuËt Hình 7-6: Mô hình hệ thống theo IEC 61499 © 2005, Hoàng Minh Sơn
- 52 Mỗi chức năng được thực hiện bởi hệ thống đo lường - điều khiển được mô hình hóa bằng một ứng dụng như trong hình vẽ trên. Một ứng dụng có thể nằm trong một thiết bị duy nhất, như ứng dụng C trong hình vẽ, hoặc phân tán trên một số thiết bị, như các ứng dụng A và B. Ví dụ, một ứng dụng có thể chứa một hay nhiều vòng điều khiển trong đó việc lấy mẫu đầu vào được thực hiện bởi một thiết bị, tính toán điều khiển được thực hiện bởi thiết bị khác còn việc chuyển đổi đầu ra lại được tiến hành bởi thiết bị thứ ba. 7.2.2 Mô hình thiết bị Như biểu diễn trong Hình 7-7, mỗi thiết bị chứa trong nó ít nhất một giao diện, ngoài ra có thể có hoặc không chứa các tài nguyên và mạng khối chức năng. Liªn kÕt truyÒn th«ng Luång d÷ liÖu vμ sù kiÖn Ranh giíi thiÕt bÞ Giao diÖn truyÒn th«ng Tμi nguyªn X Tμi nguyªn Y Tμi nguyªn Z øng dông A øng dông C øng dông C Giao diÖn qu¸ tr×nh Qu¸ tr×nh kü thuËt Hình 7-7: Mô hình thiết bị theo IEC 61499 (ví dụ thiết bị 2 trong Hình 7-6. Giao diện quá trình là một thành phần của thiết bị có nhiệm vụ ánh xạ giữa cấp điều khiển bên dưới (thiết bị đo tương tự, thiết bị vào/ra phân tán, ) và các tài nguyên bên trong thiết bị. Thông tin trao đổi giữa cấp điều khiển bên dưới và các tài nguyên thể hiện dưới dạng luồng dữ liệu và sự kiện. Giao diện truyền thông cũng là một thành phần của thiết bị có nhiệm vụ ánh xạ giữa mạng truyền thông phía trên và các tài nguyên bên trong thiết bị. Các dịch vụ cung cấp bởi giao diện này bao gồm : • Biểu diễn các thông tin truyền tới tài nguyên thành dạng dữ liệu và sự kiện • Cung cấp các dịch vụ khác để hỗ trợ việc lập trình, đặt cấu hình, dò lỗi, 7.2.3 Mô hình tài nguyên Chuẩn IEC coi tài nguyên là một đơn vị chức năng, chứa trong một thiết bị vốn có quyền độc lập điều khiển hành vi của mình. Tài nguyên có thể được © 2005, Hoàng Minh Sơn
- 53 tạo ra, đặt cấu hình, thể hiện bằng tham số, khởi động, xóa, mà không ảnh hưởng đến các tài nguyên khác bên trong thiết bị. Chức năng của tài nguyên là nhận dữ liệu và/hoặc sự kiện từ giao diện truyền thông hoặc giao diện quá trình, xử lý dữ liệu/sự kiện đó rồi gửi tr lại dữ liệu/sự kiện tới giao diện truyền thông/quá trình theo yêu cầu của ứng dụng sử dụng tài nguyên. Giao diÖn truyÒn th«ng øng dông côc bé ¸nh x¹ truyÒn th«ng (hoÆc phÇn côc bé cña øng dông ph©n t¸n Sù kiÖn D÷ liÖu Khèi chøc Khèi chøc n¨ng giao ThuËt n¨ng giao diÖn dÞch vô to¸n diÖn dÞch vô ¸nh x¹ qu¸ tr×nh Giao diÖn qu¸ tr×nh C¸c hμm dÞch vô Hình 7-8: Mô hình tài nguyên Như trong , tài nguyên được mô hình hóa bao gồm các thành phần sau : • Một hoặc nhiều ứng dụng cục bộ (hay thành phần cục bộ của một ứng dụng phân tán). Các biến và sự kiện được quản lý trong phần này các biến đầu vào, biến đầu ra, sự kiện đầu vào, sự kiện đầu ra của các khối chức năng thực hiện phép toán cần cho ứng dụng. • Thành phần ánh xạ quá trình có nhiệm vụ ánh xạ dữ liệu và sự kiện giữa ứng dụng và giao diện quá trình. Như biểu diễn trong hình, điều này được thực hiện bởi các khối chức năng phục vụ giao tiếp. Khối chức năng phục vụ giao tiếp cũng là khối chức năng thông thường nhưng được chuyên biệt hóa cho nhiệm vụ này. • Thành phần ánh xạ truyền thông có nhiệm vụ ánh xạ dữ liệu và sự kiện giữa ứng dụng và giao diện truyền thông. Như biểu diễn trong hình, điều này cũng được thực hiện bởi các khối chức năng phục vụ giao tiếp. • Bộ phận lập lịch có nhiệm vụ điều khiển sự thực thi của các khối hàm bên trong ứng dụng cũng như dòng dữ liệu truyền giữa chúng tuân theo những yêu cầu về thời gian và trình tự quyết định bởi sự xuất hiện của các sự kiện, liên kết giữa các khối hàm và thông tin khác như chu kỳ và mức ưu tiên. 7.2.4 Mô hình ứng dụng Mỗi ứng dụng được mô hình hóa ở dạng một mạng các khối chức năng (function block network). Mạng này được cấu thành từ các nút mạng là các © 2005, Hoàng Minh Sơn
- 54 khối chức năng và liên kết giữa các nút mạng là liên kết dữ liệu (data connections) và liên kết sự kiện (event connections). Một ứng dụng có thể được phân tán trên nhiều tài nguyên thuộc một hay nhiều thiết bị. Mỗi tài nguyên sử dụng các mối liên hệ nhân quả chỉ ra bởi ứng dụng để quyết định phản ứng thích hợp đối với các sự kiện phát sinh từ giao diện truyền thông, giao diện quá trình, từ trong bản thân chính tài nguyên đó hoặc từ tài nguyên khác. Các phản ứng này bao gồm : • Sự lập lịch và thực thi thuật toán (bên trong tài nguyên) • Việc thay đổi các biến • Sản sinh các tín hiệu • Tương tác với giao diện truyền thông và giao diện quá trình Ứng dụng được định nghĩa bằng cách chỉ ra mối liên hệ giữa các khối chức năng chứa bên trong nó như minh họa trong hình vẽ, cụ thể là chỉ ra luồng sự kiện (event flow) và luồng dữ liệu (data flow). Chính luồng sự kiện là cái quyết định việc lập lịch và thực thi của mỗi tài nguyên bên trong ứng dụng. Luång sù kiÖn ∗ ∗ ∗ Luång d÷ liÖu Hình 7-9: Mô hình ứng dụng 7.2.5 Mô hình khối chức năng Mỗi khối chức năng thực ra là một biến thể hiện (function block instance) của một kiểu khối chức năng nào đó (function block type) cũng tương tự như mỗi đối tượng là một biến thể hiện của một lớp nào đó. Các đặc tính của khối chức năng: • Tên biến (là tên của chính khối chức năng đó) và tên kiểu (là tên của kiểu khối chức năng mà nó thuộc) • Một tập các đầu vào sự kiện, dùng để nhận các sự kiện đến từ các liên kết sự kiện với bên ngoài. Chính các sự kiện đầu vào sẽ ảnh hưởng tới việc thực thi thuật toán bên trong khối chức năng. • Một tập các đầu ra sự kiện, dùng để đẩy các sự kiện ra các liên kết sự kiện với bên ngoài tùy thuộc và sự thực thi của thuật toán và một số yếu tố khác • Một tập các đầu vào dữ liệu, chúng được ánh xạ tới các biến đầu vào tương ứng © 2005, Hoàng Minh Sơn
- 55 • Một tập các đầu ra dữ liệu, chúng được ánh xạ tới các biến đầu ra tương ứng • Dữ liệu nội bộ, chúng được ánh xạ tới tập các biến nội bộ • Các đặc trưng về chức năng, được xác định bằng cách kết hợp giữa dữ liệu nội bộ với thuật toán của khối chức §Çu vμo sù kiÖn §Çu ra sù kiÖn Tªn khèi Luång sù kiÖn §iÒu khiÓn Luång sù kiÖn thùc hiÖn (che giÊu) Tªn kiÓu ThuËt to¸n Luång d÷ liÖu (che giÊu) Luång d÷ liÖu D÷ liÖu néi bé (che giÊu) §Çu vμo d÷ liÖu §Çu ra d÷ liÖu N¨ng lùc tμi nguyªn (LËp lÞch, ¸nh x¹ truyÒn th«ng, ¸nh x¹ qu¸ tr×nh) Hình 7-10: Mô hình khối chức năng Thuật toán bên trong khối hàm, về nguyên tắc, không nhìn thấy được từ bên ngoài, trừ phi được người cung cấp khối hàm mô tả theo một cách nào đó. Thêm nữa, khối hàm có thể chứa bên trong nó các biến nội bộ hay các thông tin về trạng thái tồn tại không đổi giữa những lần gọi thuật toán của khối hàm nhưng chúng cũng không truy cập được từ bên ngoài. Mỗi kiểu khối chức năng là một yếu tố phần mềm chỉ rõ đặc tính của tất cả các biến thể hiện thuộc kiểu đó, bao gồm : • Tên kiểu • Số lượng, tên, tên kiểu và trật tự của các đầu vào sự kiện và đầu ra sự kiện • Số lượng, tên, kiểu dữ liệu và trật tự của các biến đầu vào, biến đầu ra và biến nội bộ Đặc tả kiểu khối chức năng ngoài phần chung kể trên còn có thêm phần định nghĩa chức năng đặc trưng của khối phụ thuộc vào loại khối cụ thể. Có cả thảy 3 loại khối chức năng : • Khối chức năng cơ bản là đơn vị chức năng nhỏ nhất, không thể phân chia hơn được nữa • Khối chức năng kết hợp (Siêu khối) là loại khối chức năng hợp thành từ nhiều khối chức năng khác nhỏ hơn • Khối chức năng dịch vụ giao tiếp là loại khối chức năng cung cấp các dịch vụ giao diện giữa các khối chức năng khác với nhau hoặc giữa tài © 2005, Hoàng Minh Sơn
- 56 nguyên và mạng truyền thông và giữa tài nguyên và quá trình công nghệ được điều khiển. Đối với kiểu khối chức năng cơ bản, chức năng đặc trưng của nó được diễn đạt bằng cách mô tả thuật toán bên trong khối đó hoạt động dựa trên giá trị của các biến đầu vào, biến đầu ra, biến nội bộ để tạo ra giá trị mới cho các biến đầu ra và biến nội bộ như thế nào, cũng như mối liên hệ giữa sự khởi động, thực thi và kết thúc của thuật toán với sự xuất hiện của các sự kiện tại đầu vào và sự kiện đầu ra của khối. Đối với kiểu khối chức năng kết hợp, đặc tả kiểu còn bao gồm các liên kết dữ liệu và liên kết sự kiện giữa những khối chức năng thành phần bên trong khối chức năng kết hợp. Đối với kiểu khối chức năng phục vụ giao tiếp, chức năng đặc trưng được mô tả bằng cách ánh xạ các dịch vụ cơ bản mà nó cung cấp thành các đầu vào sự kiện, đầu ra sự kiện, đầu vào dữ liệu, đầu ra dữ liệu của nó. 7.2.6 Mô hình phân tán Một ứng dụng cụ thể được phân tán bằng cách phân bố các khối chức năng của nó vào các tài nguyên khác nhau nằm trên một hay nhiều thiết bị. Bởi vì chi tiết bên trong khối chức năng là không nhìn thấy được đối với ứng dụng sử dụng nó cho nên khối chức năng phi là đơn vị nhỏ nhất không phân chia được đối với sự phân tán này. Nghĩa là, không thể chia nhỏ khối chức năng hơn nữa để phân tán trên nhiều tài nguyên; các thành phần chứa bên trong khối chức năng phải nằm trên cùng một tài nguyên. Các mối liên hệ về chức năng giữa các khối chức năng không được phép bị ảnh hưởng bởi sự phân tán. Tuy nhiên, so với ứng dụng tập trung, các yếu tố về thời gian và độ tin cậy của chức năng truyền thông có ảnh hưởng đáng kể tới các yếu tố về thời gian và độ tin cậy của toàn ứng dụng phân tán. 7.2.7 Mô hình quản lý Việc quản lý các tài nguyên bên trong một thiết bị được mô hình theo một trong hai cách • Trong thiết bị, có một tài nguyên được tạo riêng để qun lý tất c những cái còn lại. Nó cung cấp một tập các dịch vụ qun lý cho các tài nguyên khác dùng chung. • Mỗi tài nguyên có một bộ phận qun lý của riêng mình. Nói cách khác, các dịch vụ qun lý được phân tán ra khắp tất c các tài nguyên bên trong thiết bị. 7.2.8 Mô hình trạng thái hoạt động Bất kỳ hệ thống nào cũng được thiết kế, bàn giao công việc, đưa vào vận hành, duy trì bảo dưỡng và cuối cùng sau khi hoàn thành nhiệm vụ - được hủy bỏ. Điều này được mô hình hóa bằng cái gọi là vòng ₫ời của hệ thống. © 2005, Hoàng Minh Sơn
- 57 Đến lượt mình, các đơn vị chức năng cấu thành nên hệ thống như thiết bị, tài nguyên, ứng dụng mỗi cái cũng có vòng đời riêng của mình. Để hỗ trợ cho đơn vị chức năng tại mỗi thời điểm trong vòng đời của nó, các hành động khác nhau phải được thực hiện. Để phân biệt xem hành động nào có thể thực hiện và để duy trì tính toàn vẹn của đơn vị chức năng, các trạng thái hoạt động phải được định nghĩa, ví dụ “Đang hoạt động”, “Có thể cấu hình”, “Đã nạp”, “Đã dừng”, Mỗi trạng thái hoạt động của một đơn vị chức năng chỉ rõ hành động nào được chấp nhận và hành vi mong muốn tương ứng. Hệ thống có thể được tổ chức theo cách một khối chức năng nào đó có thể sở hữu hoặc nhận được quyền thay đổi trạng thái của khối chức năng khác. Một đặc điểm nổi bật của IEC 61499 là nó yêu cầu các công cụ phần mềm tuân theo chuẩn phải có khả năng trao đổi thông tin với nhau. Cụ thể là IEC 61499-2 yêu cầu nhà sản xuất thiết bị phần cứng hay thư viện phần mềm phải cung cấp đủ thông tin cần thiết cho việc sử dụng sản phẩm của họ một cách hiệu quả trong khi vẫn đảm bảo quyền sở hữu trí tuệ. Điều này được thực hiện bằng cách sử dụng ngôn ngữ XML. IEC 61499-2 định nghĩa một tập các thẻ (tag) và cấu trúc tài liệu XML chuẩn, dựa vào đó nhà sản xuất mô tả sản phẩm của mình. Tuân theo một tập thẻ chung, các sản phẩm có thể làm việc trực tiếp với nhau (interoperability). © 2005, Hoàng Minh Sơn
- 58 8 MỘT SỐ CHUẨN GIAO TIẾP CÔNG NGHIỆP 8.1 MMS MMS (Manufactoring Message Specification) là một chuẩn quốc tế cho việc xây dựng lớp ứng dụng theo mô hình qui chiếu OSI. Chuẩn này có ý nghĩa đặc biệt trong các hệ thống truyền thông công nghiệp. Về cơ bản, MMS qui định một tập hợp các dịch vụ chuẩn cho việc trao đổi dữ liệu thời gian thực cũng như thông tin điều khiển giám sát. Các dịch vụ này cũng như các giao thức tương ứng được chuẩn hóa trong ISO/IEC 9506. MMS có xuất xứ từ MAP (Manufactoring Automation Protocol), một giao thức do hãng General Motors khởi xướng phát triển vào đầu những năm 80. Mặc dù MAP không trở thành giao thức truyền thông thống nhất cho công nghiệp tự động hóa, nó đã tác động có tính chất định hướng tới các phát triển sau này. Trên cơ sở của MAP, các dịch vụ truyền thông đã được định nghĩa trong MMS tạo cơ sở quan trọng trong việc xây dựng lớp ứng dụng trong nhiều hệ thống bus trường. Một số ví dụ như FMS (Fieldbus Message Specification) của PROFIBUS, PMS (Peripheral Message Specification) của Interbus, MPS (Manufactoring Periodic/aperiodic Services) của WorldFIP và RAC (Remote Access Control) của Bitbus đều là các tập con các dịch vụ MMS. Các dịch vụ được định nghĩa trong MMS có tính chất thông dụng và đa dạng, có thể thích hợp với rất nhiều loại thiết bị, nhiều ứng dụng và ngành công nghiệp khác nhau. Ví dụ, dịch vụ Read cho phép một chương trình ứng dụng hoặc một thiết bị đọc một hoặc nhiều biến một lúc từ một chương trình ứng dụng hoặc một thiết bị khác. Bất kể một thiết bị là PLC hay robot, một chương trình điều khiển tự động hay chương trình điều khiển giám sát, các dịch vụ và thông báo MMS đều như nhau. Về cơ bản, MMS định nghĩa: • Hơn 80 dịch vụ truyền thông thông dụng cho các hệ thống bus, trong đó có kiểm soát đường nối, truy nhập biến, điều khiển sự kiện, cài đặt và can thiệp chương trình • Một giao thức qui định cấu trúc dữ liệu cho việc chuyển giao tham số của các dịch vụ • Mô hình một số đối tượng “ảo”, đại diện cho các đối tượng vật lý (máy móc, robot, ) • Một cơ chế Client/Server trong quan hệ giữa các đối tác truyền thông. Chuẩn ISO/IEC 9506 bao gồm hai phần cốt lõi sau: • Phần 1: Đặc tả dịch vụ, định nghĩa mô hình thiết bị sản xuất ảo VMD (Virtual Manufactoring Device), các dịch vụ trao đổi giữa các nút mạng, các thuộc tính cũng như tham số tương ứng với VMD và các dịch vụ. • Phần 2: Đặc tả giao thức, định nghĩa trình tự các thông báo được gửi đi © 2005, Hoàng Minh Sơn
- 59 trong mạng, cấu trúc và kiểu mã hóa các thông báo, tương tác giữa MMS với các lớp khác trong mô hình OSI. MMS sử dụng chuẩn lớp biểu diễn dữ liệu ASN.1 (Abstract Notation Number One - ISO 8824) để đặc tả cấu trúc các thông báo. Ngoài ra, bốn phần phụ tiếp theo - được gọi là các chuẩn đi kèm (Companion Standard) - mở rộng phần cốt lõi nhằm thích ứng cho các lĩnh vực ứng dụng điều khiển khác nhau như Robot Control (phần 3), Numeric Control (phần 4), Programmable Controller (phần 5) và Process Control (phần 6). Một trong những điểm đặc trưng của MMS là mô hình đối tượng VMD. Trên quan điểm hướng đối tượng, mô hình VMD cho phép các thiết bị đóng vai trò một server, cung cấp các dịch vụ cho các client thông qua các đối tượng ảo. Các đối tượng ảo này đại diện cho những đối tượng khác nhau trong một hệ thống kỹ thuật, trong đó có cả các biến, chương trình, sự kiện, v.v Mỗi chương trình ứng dụng có thể đồng thời đóng vai trò server và client. Mô hình VMD định nghĩa các đối tượng sau: • VMD: Bản thân VMD được coi là một đối tượng hợp thành từ các đối tượng khác, đại diện cho toàn bộ một thiết bị. • Domain: Đại diện một phần nhớ có liên kết trong một VMD, ví dụ phần nhớ cho một chương trình có thể nạp xuống (download) và nạp lên (upload) được. • Program Invocation: Một chương trình chạy trong bộ nhớ chính được hợp thành bởi một hoặc nhiều domain. • Variable: Một biến dữ liệu có kiểu (ví dụ số nguyên, số thực dấu phảy động, mảng). • Kiểu: Mô tả cấu trúc và ý nghĩa của dữ liệu chứa trong một biến. • Named Variable List: Một danh sách nhiều biến có tên. • Semaphore: Một đối tượng dùng để kiểm soát việc truy nhập cạnh tranh một tài nguyên chung (ví dụ bộ nhớ, CPU, cổng vào/ra) • Operator Station: Một trạm có màn hình và bàn phím dùng cho thao tác viên vận hành quá trình. • Event Condition: Một đối tượng đại diện cho trạng thái của một sự kiện • Event Action: Một đối tượng đại diện hành động được thực hiện khi trạng thái của một sự kiện thay đổi • Event Enrollment: Một đối tượng đại diện cho một chương trình ứng dụng mạng được thông báo khi khi trạng thái của một sự kiện thay đổi. • Journal: Một đối tượng ghi lại diễn biến của các sự kiện và biến theo thời gian. • File: Một file trong một trạm server. • Transaction: Đại diện một yêu cầu dịch vụ MMS riêng biệt. © 2005, Hoàng Minh Sơn
- 60 Các loại dịch vụ tương ứng với các đối tượng cơ bản được giới thiệu tóm tắt trong bảng 8.1. Bảng 8.1: Tổng quan các dịch vụ MMS cơ bản Nhóm dịch vụ Mô tả tóm tắt các dịch vụ Ví dụ Environment and Khởi tạo/Kết thúc các quan hệ - Initiate General Management truyền thông - Abort Services VMD Support Services Thông tin về trạng thái của một thiết - Status bị ảo, về các đặc tính, thông số và - UnsolicitedStatus đối tượng của nó - Identity Domain Management Tạo lập, nạp lên/nạp xuống và xóa - InitiateDownloadSequence Services Domain - DownloadSegment - InitiateUploadSequence - UploadSegment - RequestDomainDownload - RequestDomainUpload Program Invocation Tạo lập, xóa và kiểm soát Program - CreateProgramInvocation Management Services Invocation - Start - Stop - Resume - Reset Variable Access Truy nhập các biến của một VMD - Read Services - Write Semaphore Đồng bộ hóa việc truy nhập cạnh - DefineSemaphore Management Services tranh tài nguyên của VMD - DelelteSemaphore - ReportSemaphoreStatus Operator Hỗ trợ việc giao tiếp với một trạm - Input Communication thao tác - Output Services Event Management Xử lý sự kiện, sự cố - AlterEventCondition Services Monitoring - EventNofification - AcknowledgeEvent Notification Journal Management Ghi biên bản các sự kiện và thông - InitiateJournal Services tin - ReportJournalStatus 8.2 IEC-61131-5 8.2.1 Mô hình giao tiếp mạng Đối tượng của chuẩn IEC 61131-5 là các dịch vụ do các thiết bị điều khiển khả trình (PLC) thực hiện, hoặc các dịch vụ các PLC có thể yêu cầu từ các thiết bị khác, thể hiện qua các hàm và khối chức năng sử dụng khi lập trình với IEC 61131-5. Phạm vi của chuẩn này vì vậy bó hẹp ở việc giao tiếp giữa các PLC hoặc giữa PLC và một thiết bị khác, theo kiến trúc Client/Server. © 2005, Hoàng Minh Sơn
- 61 M¸y tÝnh §KGS Client HÖ thèng m¹ng truyÒn th«ng Client Server Client C¸c thiÕt bÞ kh¸c cã PLC1 PLC2 giao tiÕp víi PLC M¸y mãc hoÆc qu¸ tr×nh kü thuËt Hình 8.1: Mô hình giao tiếp mạng theo IEC 61131-5 8.2.2 Dịch vụ giao tiếp Các dịch vụ giao tiếp cung cấp thông tin trạng thái và chỉ thị sự cố của các thành phần: • Thiết bị điều khiển khả trình (tổng thể) • Vào/ra • Bộ xử lý trung tâm • Cung cấp nguồn • Bộ nhớ • Hệ thống truyền thông Lưu ý rằng, status cung cấp thông tin về trạng thái của thiết bị điều khiển và các thành phần phần cứng, phần rắn của nó, không quan tâm tới thông tin cấu hình. Dữ liệu trạng thái cũng không cung cấp thông tin về quá trình được điều khiển cũng như chương trình ứng dụng trên PLC. Các dịch vụ giao tiếp được liệt kê trong bảng dưới đây. Tuy nhiên, một PLC không bắt buộc phải cung cấp tất cả các dịch vụ này. Bảng 8.2: Các dịch vụ giao tiếp STT Các dịch vụ giao tiếp PLC PLC đáp Khối hàm yêu cầu ứng có sẵn 1 Kiểm tra thiết bị X X X 2 Thu thập dữ liệu X X X 3 Điều khiển X X X 4 Đồng bộ hóa giữa các chương trình ứng dụng X X X 5 Báo động X 0 X 6 Thực hiện chương trình và điều khiển vào/ra 0 X 0 7 Truyền nạp chương trình ứng dụng 0 X 0 8 Quản lý nối X X X © 2005, Hoàng Minh Sơn
- 62 8.2.3 Các khối chức năng giao tiếp Các dịch vụ giao tiếp được thực hiện qua các khối chức năng giao tiếp (communication function block, CFB), như được liệt kê trong bảng dưới đây. Bảng 8.3: Các khối chức năng giao tiếp (CFB) STT Chức năng Tên khối chức năng 1 Định địa chỉ các biến từ xa REMOTE_VAR 2 Kiểm tra thiết bị STATUS, 3 USTATUS 4 Thu thập dữ liệu kiểu hỏi tuần tự READ, 5 Thu thập dữ liệu kiểu lập trình USEND, 6 URCV 7 Điều khiển tham số WRITE, 8 Điều khiển liên động SEND, 9 RCV 10 Báo động được lập trình NOTIFY, 11 ALARM 12 Quản lý nối CONNECT Lưu ý: Các khối hàm UXXX thể hiện các hàm dịch vụ không cần yêu cầu (unsolicited services). Kiểm tra thiết bị Các khối hàm STATUS và USTATUS hỗ trợ việc PLC kiểm tra trạng thái của các thiết bị tự động hóa khác. Thu thập dữ liệu Dữ liệu trong các thiết bị khác có thể được biểu diễn qua các biến. Có hai phương pháp để PLC truy nhập các dữ liệu này sử dụng các CFB: • Hỏi tuần tự (polled): PLC sử dụng khối hàm READ để đọc giá trị của một hoặc nhiều biến tại thời điểm được chương trình ứng dụng trong PLC xác định. Việc truy nhập các biến này có thể do các thiết bị kiểm soát. • Lập trình: Thời điểm dữ liệu cung cấp cho PLC được quyết định bởi các thiết bị khác. Các khối URCV/USEND được sử dụng trong các chương trình ứng dụng PLC để nhận dữ liệu từ và gửi dữ liệu đến các thiết bị khác. Điều khiển Hai phương pháp điều khiển cần được PLC hỗ trợ: điều khiển tham số (parametric) và điều khiển khóa liên động (interlocked) • Điều khiển tham số: Hoạt động của các thiết bị được điều khiển bằng cách thay đổi các tham số của chúng. PLC sử dụng khối WRITE để thực hiện họat động này từ một chương trình ứng dụng. • Điều khiển khóa liên động: Một client yêu cầu server thực hiện một phép toán ứng dụng và thông báo kết quả cho client. PLC sử dụng các khối SEND và RCV để thực hiện vai trò client and server. © 2005, Hoàng Minh Sơn
- 63 Báo ₫ộng Một PLC có thể gửi các báo động tới các client khi một sự kiện xảy ra. Client có thể thông báo lại đã xác nhận tới bộ điều khiển. PLC sử dụng các khối ALARM và NOTIFY trong các chương trình ứng dụng để gửi các thông báo cần xác nhận và không cần xác nhận. Quản lý các mối liên kết Các chương trình ứng dụng trong PLC sử dụng khối CONNECT để quản lý các mối liên kết. 8.3 OPC Tiến bộ của các hệ thống bus trường cùng với sự phổ biến của các thiết bị cận trường thông minh là hai yếu tố quyết định tới sự chuyển hướng sang cấu trúc phân tán trong các giải pháp tự động hóa. Sự phân tán hóa này một mặt mang lại nhiều ưu thế so với cấu trúc xử lý thông tin tập trung cổ điển, như độ tin cậy và tính linh hoạt của hệ thống, nhưng mặt khác cũng tạo ra hàng loạt thách thức mới cho giới sản xuất cũng như cho người sử dụng. Một trong những vấn đề thường gặp phải là việc tích hợp hệ thống. Tích hợp theo chiều ngang đòi hỏi khả năng tương tác giữa các thiết bị tự động hóa của nhiều nhà sản xuất khác nhau. Bên cạnh đó, tích hợp theo chiều dọc đòi hỏi khả năng kết nối giữa các ứng dụng cơ sở như đo lường, điều khiển với các ứng dụng cao cấp hơn như điều khiển giám sát và thu thập dữ liệu (supervisory control and data acquisition, SCADA), giao diện người-máy (human-machine interface, HMI) và hệ thống điều hành sản xuất (manufactoring execution system, MES). Việc sử dụng một chuẩn giao diện vì vậy trở thành một điều kiện tiên quyết. Tiêu biểu cho hướng đi này là chuẩn OPC, được chấp nhận rộng rãi trong các ứng dụng tự động hóa quá trình công nghiệp. 8.3.1 Tổng quan về kiến trúc OPC OPC (OLE for Process Control) là một chuẩn giao diện được hiệp hội OPC Foundation xây dựng và phát triển. Dựa trên mô hình đối tượng thành phần (D)COM của hãng Microsoft, OPC định nghĩa thêm một số giao diện cho khai thác dữ liệu từ các quá trình kỹ thuật, tạo cơ sở cho việc xây dựng các ứng dụng điều khiển phân tán mà không bị phụ thuộc vào mạng công nghiệp cụ thể. Trong thời điểm hiện nay, OPC cũng như COM tuy mới được thực hiện trên nền Windows, song đã có nhiều cố gắng để phổ biến sang các hệ điều hành thông dụng khác. Với mục đích ban đầu là thay thế cho các dạng phần mềm kết nối như I/O- Drivers và DDE, OPC qui định một số giao diện chuẩn cho các chức năng như: • Khai thác, truy nhập dữ liệu quá trình (Data Access) từ nhiều nguồn khác nhau (PLC, các thiết bị trường, bus trường, cơ sở dữ liệu, ) • Xử lý sự kiện và sự cố (Event and Alarm) © 2005, Hoàng Minh Sơn
- 64 • Truy nhập dữ liệu quá khứ (Historical Access) Trong tương lai OPC sẽ hỗ trợ các chức năng khác như an hoàn hệ thống (Security) và điều khiển mẻ (Batch). OPC sử dụng cơ chế COM/COM để cung cấp các dịch vụ truyền thông cho tất cả các ứng dụng hỗ trợ COM. Có thể kể ra hàng loạt các ưu điểm của việc sử dụng OPC như: • Cho phép các ứng dụng khai thác, truy nhập dữ liệu theo một cách đơn giản, thống nhất • Hỗ trợ truy nhập dữ liệu theo cơ chế hỏi tuần tự (polling) hoặc theo sự kiện (event-driven) • Được tối ưu cho việc sử dụng trong mạng công nghiệp • Kiến trúc không phụ thuộc vào nhà cung cấp thiết bị • Linh hoạt và hiệu suất cao • Sử dụng được từ hầu hết các công cụ phần mềm SCADA thông dụng, hoặc bằng một ngôn ngữ bậc cao (C++, Visual Basic, Delphi, ). Cốt lõi của OPC là một chương trình phần mềm phục vụ gọi là OPC-Server, trong đó chứa các mục dữ liệu (OPC-Item) được tổ chức thành các nhóm (OPC- Group). Thông thường, một OPC-Server đại diện một thiết bị thu thập dữ liệu như PLC, RTU, I/O hoặc một cấu hình mạng truyền thông. Các OPC-Items sẽ đại diện cho các biến quá trình, các tham số điều khiển, v.v OPC được xây dựng dựa trên ý tưởng ứng dụng công nghệ COM nhằm đơn giản hóa, chuẩn hóa việc khai thác dữ liệu từ các thiết bị cận trường và thiết bị điều khiển, tương tự như việc khai thác một hệ thống cơ sở dữ liệu thông thường. Giống như COM, OPC không qui định việc thực hiện khai thác cụ thể, mà chỉ định nghĩa một số giao diện chuẩn. Thay cho việc dùng C/C++ dùng để định nghĩa một giao diện lập trình như thông thường, ngôn ngữ dùng ở đây (gọi là interface definition language hay IDL) không phụ thuộc vào nền cài đặt hay ngôn ngữ lập trình. OPC Server Visual Basic, Automation VB Scripts, Interface Giao thøc riªng OPC Group -Item -Item C++, Java, Custom Delphi, Interfaces C¸c thiÕt bÞ tù ®éng hãa Hình 8.2: Kiến trúc sơ lược của OPC Như được minh họa trên Hình 8.2, hai kiểu đối tượng thành phần quan trọng nhất trong kiến trúc OPC là OPC-Server và OPC-Group. Trong khi OPC- Server có nhiệm vụ quản lí toàn bộ việc sử dụng và khai thác các dữ liệu, thì các đối tượng OPC-Group có chức năng tổ chức các phần tử dữ liệu (items) thành từng nhóm để tiện cho việc truy nhập. Thông thường, mỗi item ứng với một biến trong một quá trình kỹ thuật hay trong một thiết bị điều khiển. © 2005, Hoàng Minh Sơn
- 65 OPC Server OPC Server là một đối tượng phân tán, cung cấp giao diện OPC chuẩn cho các ứng dụng. Việc giao tiếp qua các mạng công nghiệp được thực hiện bằng các lời gọi đơn giản, thống nhất không phụ thuộc vào mạng truyền thông và giao thức được sử dụng. OPC Server hỗ trợ hai phương pháp truy cập dữ liệu : • Polling: Client chủ động yêu cầu Server cung cấp dữ liệu mỗi khi cần • Publisher/Subscriber: Client chỉ cần một lần yêu cầu Server, sau đó tùy theo cách đặt (Theo chu kỳ, theo sự thay đổi của giữ liệu hoặc theo một sự kiện nào đó). Phương pháp này còn được gọi là truy cập không đồng bộ. OPC-Client OPC-Client OPC-Interface OPC-Interface OPC-Server OPC-Server OPC-Server Hình 8.3: Kiến trúc Client/Server trong OPC Chuẩn OPC hiện nay qui định hai kiểu giao diện là Custom Interfaces (OPC Taskforce, 1998b) và Automation Interface (OPC Taskforce, 1998c)2. Kiểu thứ nhất bao gồm một số giao diện theo mô hình COM thuần túy, còn kiểu thứ hai dựa trên công nghệ mở rộng OLE-Automation. Sự khác nhau giữa hai kiểu giao diện này không những nằm ở mô hình đối tượng, ở các ngôn ngữ lập trình hỗ trợ mà cũng còn ở tính năng, hiệu suất sử dụng. Custom Interface dùng các ngôn ngữ như C/C++phức tạp hơn nhưng hiệu suất cao, dựa trực tiếp trên các đối tượng COM. Automation Interface dùng các ngôn ngữ đơn giản, phưong pháp lập trình đơn giản, hiệu quả thấp, dựa trên công nghệ COM automation. 8.3.2 OPC Custom Interfaces Giống như các đối tượng COM khác, hai loại đối tượng thành phần quan trọng nhất của OPC là OPC-Server và OPC-Group cung cấp các dịch vụ qua các giao diện của chúng, được gọi là OPC Custom Interfaces, như được minh họa trên Hình 3. Tham khảo (OPC Taskforce, 1988b) để tìm hiểu ý nghĩa cụ thể của từng giao diện. Chính vì những giao diện này chỉ là các giao diện theo mô hình COM thuần túy, việc lập trình với chúng đòi hỏi một ngôn ngữ biên 2 Lưu ý khái niệm “Automation” được dùng ở đây hoàn toàn không có liên quan tới kỹ thuật tự động hóa © 2005, Hoàng Minh Sơn
- 66 dịch. Trong thực tế, C++ là ngôn ngữ chiếm ưu thế tuyệt đối phục vụ mục đích này. Bên cạnh đó, các công cụ khác nhau cũng cung cấp một số phần mềm khung (frameworks) thích hợp để hỗ trợ người lập trình. IUnknown IUnknown IOPCCommon OPC Server OPC Group IOPCItemMgt IOPCServer IOPCGroupStateMgt IOPCItemProperties [IOPCPublicGroupStateMgt] [IOPCServerPublicGroups] IOPCSyncIO [IOPCBrowseServerAddressSpace] IOPCAsyncIO2 [IPersistFile] IConnectionPointContainer IConnectionPointContainer Hình 8.4: OPC Custom Interfaces Để truy nhập dữ liệu dùng OPC Custom Interfaces, ta cần thực hiện hang loạt các bước sau: • Tạo một (bản sao) đối tượng OPC-Server • Tìm và lưu trữ con trỏ (địa chỉ) của các giao diện cần dùng, trong đó có IOPCServer • Dùng các phương pháp thích hợp của giao diện IOPCServer để tạo một số đối tượng OPC-Group như cần thiết • Tìm và lưu trữ con trỏ (địa chỉ) của các giao diện cần dùng của các đối tượng OPC-Group • Sử dụng các giao diện thích hợp của OPC-Group để tổ chức và cấu hình cho các đối tượng này, kể cả việc xây dựng mối liên hệ với các phần tử dữ liệu thực • Sử dụng IOPCSyncIO và IOPCAsyncIO2 của các đối tượng OPC-Group để đọc hoặc viết dữ liệu theo cơ chế đồng bộ hoặc không đồng bộ (tùy ý hoặc định kỳ) • Giải phóng các giao diện không sử dụng nữa • Xử lý các lỗi trong từng bước nêu trên. 8.3.3 OPC Automation Interface Giống như đối với các đối tượng OLE-Automation khác, việc sử dụng các đối tượng của OPC Automation Interface được đơn giản hóa nhiều. Cụ thể, nhiều thủ tục phức tạp trong lập trình với COM được loại bỏ. Người lập trình không cần hiểu biết sâu sắc về COM cũng như C++, mà chỉ cần sử dụng thành thạo một công cụ tạo dựng ứng dụng RAD (rapid application development) như Visual Basic. Mặt trái của vấn đề lại là, sự đơn giản hóa của phương pháp này phải trả giá bằng sự hạn chế trong phạm vi chức năng, hiệu suất sử dụng và tốc độ © 2005, Hoàng Minh Sơn
- 67 trao đổi dữ liệu. Nhất là trong một giải pháp tự động hóa phân tán, có sự tham gia của các mạng truyền thông công nghiệp, thì hai điểm yếu nói sau trở nên rất đáng quan tâm. Lý do nằm chính trong mô hình giao tiếp của OLE- Automation và các công cụ hỗ trợ, đó là: • Dùng kiểu dữ liệu đa năng (VARIANT) một mặt sẽ lãng phí khi trao đổi dữ liệu nhỏ, một mặt hạn chế kiểu dữ liệu sử dụng được • Cơ chế tập trung hóa việc đón nhận và chuyển giao thông tin dùng giao diện IDispatch làm giảm thời gian phản ứng của một ứng dụng đối với một sự kiện một cách đáng kể. OPC nhóm các giao diện và các methods của chúng theo thứ tự 3 lớp: • OPC Server class • OPC Group class • OPC Item class 8.4 Ngôn ngữ đánh dấu khả mở XML 8.4.1 Giới thiệu chung XML (eXtensible Markup Language) là một tập con của ngôn ngữ SGML (Standard Generalized Markup Language). SGML là một chuẩn quốc tế (ISO 8879) về một loại "siêu ngôn ngữ" có khả năng tạo ra các loại ngôn ngữ đánh dấu khác và XML chỉ đơn giản là một phiên bản đơn giản hoá của SGML, được xây dựng và quản lý bởi tổ chức W3C (World Wide Web Consortium). Tuy nhiên, đằng sau nó là cả một triết lý về cách lưu trữ và trao đổi thông tin. Trong tin học, cách lưu trữ thông tin là một yếu tố quan trọng. Thông tin được lưu trữ dưới một trong hai dạng: dạng nhị phân (binary) và dạng văn bản (text). Dạng lưu trữ nhị phân thuận tiện hơn cho các chương trình xử lý, trong khi con người không thể đọc được dạng này còn dạng văn bản thuận lợi đối với con người nhưng lại không hiệu quả trong lưu trữ, xử lý. Mặt khác, khi lựa chọn khuôn dạng lưu trữ thông tin, người ta cũng phải cân nhắc xem nên sử dụng khuôn dạng chuẩn đã có sẵn hay tự xây dựng một khuôn dạng cho riêng mình. Các loại ngôn ngữ đánh dấu chình là cách lưu trữ thông tin dạng văn bản, ở đó ý nghĩa của văn bản được thể hiện bởi các thẻ ₫ánh dấu (markup tag). HTML là một ngôn ngữ đánh dấu điển hình, là nền tảng của công nghệ Web. Một trang web về cơ bản là một tập tin văn bản có bổ sung các thẻ HTML, những thể này mô tả cách trình duyệt sẽ hiển thị văn bản như thể nào. Ví dụ, khi đoạn văn bản nào đó cần in nghiêng trong trình duyệt thì nó sẽ được đặt giữa cặp thẻ , đoạn văn bản cần in đậm được đặt giữa cặp thẻ ý nghĩa của các thẻ HTML đã được quy định sẵn, trình duỵệt dựa vào đó để hiển thị trang Web. Tài liệu XML cũng có cấu trúc tương tự, tuy nhiên sở dĩ XML được gọi là ngôn ngữ khả mở (extensible) là bởi người viết tài liệu có thể tự tạo ra các thẻ © 2005, Hoàng Minh Sơn
- 68 cho riêng mình với ý nghĩa xác định. Vì vậy ta có thể sử dụng XML vào nhiều mục đích khác nhau như: • Ngôn ngữ mô tả một hệ thống điều khiển hoặc một ứng dụng điều khiển • Ngôn ngữ mô tả tính năng các thiết bị (Device Description Language) • Xây dựng các trang Web nhúng trong các thiết bị Lưu trữ thông tin dưới dạng XML cho phép tài liệu vừa dễ đọc với con người, vừa dễ dàng xử lý bởi chương trình máy tính và cho phép các phần mềm khác nhau có thể trao đổi thông tin được với nhau miễn là chúng cùng thống nhất một bộ thẻ đánh dấu. Sự linh hoạt, đa năng và khả chuyển của XML có ý nghĩa đặc biệt đối với các hệ thống phân tán. 8.4.2 Ứng dụng XML trong phần mềm khung iPC iPC [9] là một phần mềm khung cho các giải pháp điều khiển trên nền máy tính cá nhân, được phát triển trên cơ sở các chuẩn quốc tế IEC 61131, IEC 61499, XML và OPC. Với các thư viện khối chức năng trong phần mềm khung, người sử dụng có thể xây dựng một ứng dụng điều khiển bằng phương pháp mô tả hay cấu hình thay vì lập trình. Thư viện vào/ra cho phép ứng dụng điều khiển giao tiếp với thiết bị cấp trường một cách trong suốt, độc lập với mạng truyền thông vật lý. Bước chuyển một ứng dụng từ chế độ mô phỏng sang điều khiển thời gian thực có thể thực hiện hoàn toàn đơn giản, tự nhiên. Hơn nữa, người sử dụng có thể dễ dàng mở rộng thư viện khối hàm theo nhu cầu, cũng như ghép nối chương trình điều khiển với các phần mềm điều khiển giám sát cấp trên. XML EDITOR VISUAL APPLICATION *.xml APPLICATION EDITOR ENGINE OPC HMI/SCADA «framework C++ CONTROL APPLICATION iPC APPLICATION Hình 8.5: Mô hình phát triển iPC Trong kiến trúc phần mềm khung iPC, một ứng dụng điều khiển được mô tả bởi một tập tin XML. Toàn bộ đoạn văn bản mô tả ứng dụng điều khiển được đặt trong cặp thẻ . Người phát triển ứng dụng tạo tập tin này bằng một công cụ soạn thảo ứng dụng (application editor) dưới dạng một chương trình soạn thảo XML thông thường hoặc một chương trình soạn thảo đồ họa khối. Một chương trình chạy ứng dụng (application © 2005, Hoàng Minh Sơn
- 69 engine) sẽ đọc tập tin XML để vận hành hệ thống. Ví dụ, việc khai báo một bộ điều khiển mờ dạng Mamdani với các số liệu thiết kế trong tập tin LC103.mam được thể hiện như sau: filename=LC103.mam; Tương tự như vậy, các khối chức năng vào/ra tương tự qua mạng Profibus- DP (địa chỉ slave=3, module 3) sử dụng trong mạch vòng điều khiển được khai báo như sau: slave=3; module=3; slave=3; module=3; Bước thiết lập một TASK với chu kỳ 100ms để thực hiện mạch vòng điều khiển gồm ba khối hàm AI103, LC103 và AO103 được mô tả như sau: AI103; LC103; AO103; AI103.out -> LC103.in; LC103.out ->AO103.in; Sự kết hợp giữa phương pháp sử dụng các khối hàm như các đối tượng phần mềm độc lập và ngôn ngữ mô tả XML mang lại nhiều ưu điểm quan trọng. Thứ nhất, việc lưu trữ cấu hình hệ thống dưới dạng XML vừa dễ đọc đối với con người, vừa dễ dàng xử lý bởi máy tính. Thứ hai, với một thư viện khối hàm có sẵn, người phát triển ứng dụng không cần phải biết lập trình. Mỗi khi thay đổi hoặc bổ sung phần nào trong ứng dụng, hay thay đổi một khối hàm ta chỉ cần sửa các dòng XML tương ứng. Hơn nữa, việc sử dụng các khối hàm vào/ra mô phỏng cho phép chuyển một ứng dụng giữa chế độ mô phỏng thời gian thực và chế độ ₫iều khiển thời gian thực một cách đơn giản như thay tên thư viện khối hàm tương ứng trong tập tin XML. Trong ví dụ trên đây, để chuyển giữa hai chế độ điều khiển và chế độ mô phỏng ta chỉ cần thay đổi tên thư viện khối hàm vào/ra Profibus-DP “DPIO.DLL” bằng “DPSimIO.DLL”. © 2005, Hoàng Minh Sơn
- 70 9 MÔ TẢ HỆ THỐNG ĐIỀU KHIỂN PHÂN TÁN Mô tả hệ thống là một công việc không thể thiếu được trong thiết kế, xây dựng và phát triển một hệ thống điều khiển. Mô tả hệ thống yêu cầu xây dựng các mô hình và tài liệu kỹ thuật đi kèm. Các mô hình có thể dưới dạng toán học hoặc đồ họa. Nội dung trong phần này chỉ đề cập tới việc mô tả hệ thống ở mức vĩ mô bằng các phương pháp đồ họa, không đi vào mô tả toán học chi tiết từng mạch vòng điều khiển. Qua các tài liệu mô tả hệ thống, các kỹ sư điều khiển và các nhà công nghệ có một ngôn ngữ chung để bàn bạc, trao đổi trước khi tiến hành triển khai một dự án. Cũng qua việc mô tả hệ thống, bản thân các kỹ sư điều khiển cũng đã xây dựng được các mô hình chi tiết cho việc thiết kế cấu hình phần cứng, phát triển ứng dụng điều khiển và giao diện người máy. 9.1 Các phương pháp mô tả đồ họa Các phương pháp mô tả đồ họa sau đây được xem như chuẩn trong công nghiệp: • Lưu đồ công nghệ (process flow diagram) miêu tả quá trình công nghệ không có các thiết bị đo lường và điều khiển. Hiện nay có nhiều công cụ phần mềm khác nhau hỗ trợ xây dựng lưu đồ công nghệ, ví dụ Microsoft’s Visio. • Lưu đồ ống dẫn và thiết bị (piping and instrumentation diagram, P&ID) miêu tả chi tiết quá trình công nghệ kèm theo các thiết bị đo lường và điều khiển cùng các đường liên hệ giữa các thành phần. Tài liệu hình thành phục vụ thực hiện chức năng điều khiển quá trình. Hai chuẩn quan trọng liên quan tới các biểu tượng lưu đồ P&ID là ANSI/ISA S5.1 và ANSI/ISA S5.3. Microsoft’s Visio cũng là một công cụ thích hợp để xây dựng các lưu đồ P&ID. • Biểu đồ trình tự chức năng (sequential function chart, SFC) biểu diễn các bước thực hiện chức năng của qui trình công nghệ. Tài liệu hình thành phục vụ bài toán điều khiển trình tự và điều khiển logic. Chính vì sự gần gũi với việc mô tả thuật toán điều khiển, SFC cũng được coi là một ngôn ngữ lập trình. SFC được giới thiệu chi tiết trong bài 10. Gần đây, phương pháp mô hình hóa hướng đối tượng cũng được sử dụng để mô tả toàn bộ hệ thống, sự tương tác giữa các thành phần phần cứng và phần mềm trong hệ thống. Các mô hình hướng đối tượng cũng giúp ích cho việc phát triển các phần mềm ứng dụng. Ngôn ngữ mô hình hóa được sử dụng thống nhất hiện nay là UML. © 2005, Hoàng Minh Sơn
- 71 9.2 Lưu đồ P&ID Các biểu tượng lưu đồ P&ID được sử dụng tương đối thống nhất trên toàn thế giới. Hai chuẩn do ISA (Instrument Society of America) phát hành được chấp nhận rộng rãi trên toàn thế giới là: • ANSI/ISA S5.1: Instrumentation Symbols and Identification. • ANSI/ISA S5.3: Graphic Symbols for Distributed Control/Shared Display Instrumentation, Logic and Computer Systems. 9.2.1 Chuẩn ISA S5.1 Biểu tượng thiết bị Bảng 9.1 liệt kê các biểu tượng thiết bị trên lưu đồ P&ID. Cần lưu ý một biểu tượng có thể biểu diễn một thiết bị hoặc một chức năng trong một thiết bị chia sẻ (ví dụ một bộ điều khiển hoặc một màn hình chia sẻ). Ý nghĩa của khái niệm “chia sẻ” ở đây là nhằm phân biệt với các thiết bị đơn lẻ (discrete instrument), chuyên dụng cho một mục đích duy nhất, ví dụ một bộ điều chỉnh số đơn lẻ, một đèn hiển thị đơn lẻ. Tùy theo mục đích mô tả mà lưu đồ có thể chứa chi tiết biểu tượng cho từng thiết bị/chức năng, hoặc bỏ qua một số trong trường hợp tương đối hiển nhiên. Các biểu tượng trên bảng 9.1 mô tả các thiết bị cũng như chức năng mà người vận hành có thể trực tiếp thao tác, sử dụng (accessible). Trong trường hợp các thiết bị/chức năng được đặt sau bảng, hoặc người vận hành không được phép can thiệp, đường gạch giữa các biểu tượng cần được vẽ bằng nét đứt. Biểu tượng các ₫ường tín hiệu và ₫ường nối Để phân biệt rõ ràng với các đường ống dẫn, tất cả các đường tín hiệu và đường nối khác cần được vẽ nét thanh. Các đường nối được thể hiện bằng các biểu tượng trong bảng 9.2. Bảng 9.1: Biểu diễn các thiết bị trên lưu ₫ồ P&ID Phòng điều khiển Vị trí mở rộng Hiện trường trung tâm (Auxilary (Local) (Remote) Location) Thiết bị phần cứng đơn lẻ Phần cứng chia sẻ - Hiển thị chia sẻ - Điều khiển chia sẻ Phần mềm Chức năng máy tính Logic chia sẻ Điều khiển logic khả trình © 2005, Hoàng Minh Sơn
- 72 Thiết bị cho hai biến hoặc một biến với hai hoặc nhiều chức năng Bảng 9.2: Biểu diễn các thiết bị trên lưu ₫ồ P&ID Tín hiệu không định nghĩa Đường nối tới quá trình kỹ thuật, hoặc đường cấp năng lượng cho thiết bị Tín hiệu khí nén Tín hiệu điện Tín hiệu thủy lực Tín hiệu điện từ hoặc âm thanh (có dẫn định) * Tín hiệu điện từ hoặc âm thanh (không dẫn định)* Đường nối nội bộ hệ thống (liên kết phần mềm hoặc dữ liệu) Đường nối cơ học Ống mao dẫn * Các hiện tượng điện từ gồm cả nhiệt, sóng vô tuyến, phóng xạ nguyên tử và ánh sáng. Thông thường, một đường tính hiệu đủ để biểu diễn liên kết giữa các thiết bị trên lưu đồ P&ID ngay cả khi tồn tại nhiều đường vật lý trong thực tế. Các mũi tên có thể sử dụng bổ sung để làm rõ chiều của luồng thông tin. Các chữ viết tắt sau đây được dùng để ký hiệu các đường cấp năng lượng: • AS (Air supply): cấp không khí • ES (Electric supply): cấp điện • GS (Gas supply): cấp gas • HS (Hydraulic supply): cấp thủy lực • NS (Nitrogen supply): cấp nitơ • SS (Steam supply): cấp hơi nước • WS (Water supply): cấp nước Mức tín hiệu có thể ghi kèm theo ký hiệu các đường cấp, ví dụ ES 24DC ký hiệu đường cấp nguồn 24V một chiều. Nhãn thiết bị và ký hiệu chức năng Mỗi thiết bị hoặc chức năng biểu diễn trên lưu đồ cần được phân biệt bởi một nhãn (tag). Một nhãn bao gồm phần chữ biểu diễn chức năng và phần số phân biệt vòng kín (loop), trong đó phần số có thể mang thông tin về khu vực sản xuất hoặc số thứ tự bản lưu đồ. Ví dụ nhãn FIC-1103 biểu diễn chức năng điều khiển (C) và hiển thị (I) lưu tốc (F), có thể cho vòng điều khiển số 03 trong lưu đồ số 11. © 2005, Hoàng Minh Sơn
- 73 Bảng 9.3 liệt kê ý nghĩa của các chữ cái phân biệt chức năng. Phần biểu diễn chức năng bắt đầu bằng một chữ cái ký hiệu biến đo được hoặc một biến khởi tạo, sau đến các chữ cái ký hiệu chức năng chỉ thị hoặc chức năng bị động. Tiếp nữa là các chữ cái thể hiện chức năng đầu ra theo một thứ tự tùy ý, trừ trường hợp chữ C (control) phải đứng trước V (valve). Các chữ cái phụ nếu có thể sử dụng ngay đằng sau một chữ cái chính để thay đổi ý nghĩa chức năng, ví dụ PD biểu diễn chênh lệch (D) áp suất (P). Lưu ý rằng, các ký hiệu sử dụng tuân theo chức năng chứ không theo nguyên tắc kết cấu hay nguyên tắc làm việc của thiết bị. Ví dụ, một thiết bị đo lưu lượng theo nguyên tắc chênh lệch áp suất được ký hiệu là FT chứ không phải PDT. Chữ cái đầu tiên ký hiệu biến được đo (đầu ra của quá trình) hoặc biến khởi tạo chứ không phải biến điều khiển (đầu ra điều khiển). Ví dụ, một van điều chỉnh lưu lượng được điều khiển bởi một bộ điều khiển áp suất được ký hiệu là PV chứ không phải FV. © 2005, Hoàng Minh Sơn
- 74 Bảng 9.3: Các chữ cái ký hiệu nhãn thiết bị Chữ cái đầu Các chữ cái đứng sau Biến đo được hoặc biến Chức năng hiển thị hoặc Thay đổi Chức năng đầu ra Thay đổi khởi tạo bị động A Phân tích (Analysis) Báo động (Alarm) Đốt nóng (Burner, B Tùy sử dụng Tùy sử dụng Tùy sử dụng combustion) C Tùy sử dụng Điều khiển (Control) Chênh lệch D Tùy sử dụng (Differential) E Điện áp Phần tử sensor F Lưu tốc (Flow rate) Tỉ lệ (Fraction) Kính (Glass), thiết bị G Tùy sử dụng nhìn H Bằng tay (Hand) Cao (High) I Dòng điện Hiển thị (Indication) J Công suất Quét K Thời gian, lịch trình Tần suất thay đổi Trạm điều khiển L Mức (Level) Ánh sáng (Light) Thấp (Low) Nhất thời M Tùy sử dụng Trung bình (Middle) (Momentary) N Tùy sử dụng Tùy sử dụng Tùy sử dụng Tùy sử dụng O Tùy sử dụng Hạn chế (Orifice) P Áp suất (Pressure) Điểm thử (Point) Q Số lượng(Quantity) Tích phân, tổng số Bức xạ, phóng xạ R Ghi chép (Record) (Radiation) Chuyển mạch S Tốc độ, tần số (Speed) An toàn (Safety) (Switch) Truyền, phát T Nhiệt độ (Temperature) (Transmit) U Nhiều biến Đa chức năng Đa chức năng Đa chức năng Độ rung (Vibration), phân Van (Valve), giảm V tích cơ học chấn W Trọng lượng (Weight), lực Giếng (Well), phun X Không xếp loại Trục X Không xếp loại Không xếp loại Không xếp loại Sự kiện, trạng thái hoặc sự Rơle, tính toán, biến Y Trục Y có mặt đổi Truyền động, chấp Z Vị trí, kích thước Trục Z hành © 2005, Hoàng Minh Sơn
- 75 Ví dụ minh họa Hình 9.1 minh họa một ví dụ mạch vòng điều khiển áp suất. Lưu đồ chi tiết bên trái là cơ sở cho thiết kế hệ thống và phát triển phần mềm, trong khi lưu đồ đơn giản hóa bên phải có thể xuất hiện trên các lưu đồ công nghệ. Mạch vòng điều khiển áp suất được điều khiển bởi trạm điều khiển DCS. Giá trị đặt được đưa từ một máy tính thông qua đường truyền dữ liệu. Mạch vòng điều khiển có số nhãn 211, ký hiệu vòng điều khiển số 11 trên lưu đồ số 2. Thiết bị đo áp suất PT-211 được nối với ống dẫn qua một van khóa và phạm vi làm việc 0-300 PSIG. Tín hiệu ra là dòng điện 4-20mA, được ký hiệu đầu vào AI-17 trong hệ DCS. Bộ điều khiển PIC-211 được thực hiện thuật toán PI trên trạm số 2 (C-2). Đầu ra của bộ điều khiển được ký hiệu AO-21 được đưa vào một bộ chuyển đổi dòng-áp suất (PY-211) gắn trên van điều chỉnh PCV- 211. Van điều chỉnh là loại tuyến tính, đóng an toàn, được trang bị bộ định vị (P). Cả bộ định vị và bộ biến đổi được cấp khí nén. C-#2 PAH (PI) AI-17 dP/dt PIC AO-21 211 S.P. PIC 211 0-300# PT PY AS 211 211 P AS LIN. FC PCV Chi tiết 211 Đơn giản Hình 9.1: Lưu ₫ồ chi tiết một vòng ₫iều khiển áp suất (bên trái) và lưu ₫ồ ₫ơn giản hóa (bên phải) 9.2.2 Chuẩn ISA S5.3 Chuẩn mở rộng ISA S5.1 cho các chức năng trong một hệ điều khiển phân tán. Thực ra, S5.1 vẫn giữ nguyên tập hợp các biểu tượng, nhưng mở rộng và chi tiết hóa ý nghĩa của một số biểu tượng. Các biểu tượng cho hiển thị/₫iều khiển chia sẻ Thông thường người vận hành có thể can thiệp: 1) Hiển thị chia sẻ 2) Hiển thị chia sẻ và điều khiển chia sẻ 3) Truy nhập chỉ qua đường truyền thông 4) Giao diện vận hành trên đường truyền thông Thiết bị lắp tại vị trí mở rộng: © 2005, Hoàng Minh Sơn
- 76 1) Lắp trên panel tại vị trí mở rộng, thông thường có giao diện sử dụng tương tự, không lắp tại trạm vận hành trung tâm 2) Có thể là một bộ điều khiển dự phòng hoặc một trạm thao tác bằng tay 3) Truy nhập có thể chỉ qua đường truyền thông 4) Giao diện vận hành qua đường truyền thông. Thông thường người vận hành không thể can thiệp: 1) Bộ điều khiển chia sẻ câm (không có giao diện) 2) Hiển thị chia sẻ lắp tại hiện trường 3) Tính toán, điều hòa tín hiệu trong bộ điều khiển chia sẻ 4) Có thể được nối mạng truyền thông 5) Thông thường vận hành không cần giao diện 6) Có thể thay đổi khi cấu hình Các biểu tượng máy tính Các biểu tượng dưới đây được sử dụng để chỉ các “máy tính” và chức năng máy tính tách biệt với các thành phần cơ bản tích hợp trong hệ DCS. Các máy tính này có thể được nối mạng với các thành phần còn lại, hoặc đứng độc lập. Thông thường người vận hành có thể can thiệp: 1) Màn hình chỉ thị 2) Máy tính điều khiển 3) Máy tính ghi chép Bình thường người vận hành không thể can thiệp: 1) Giao diện vào/ra 2) Tính toán, điều hòa tín hiệu trong máy tính 3) Có thể sử dụng như một bộ điều khiển câm hoặc một module phần mềm tính toán. Các biểu tượng ₫iều khiển trình tự và logic Biểu tượng cho ₫iều khiển logic hoặc ₫iều khiển trình tự phức tạp không ₫ịnh nghĩa: Bộ ₫iều khiển logic trong hệ ĐKPT với chức năng ₫iều khiển logic hoặc ₫iều khiển trình tự: 1) Bộ điều khiển logic khả trình, hoặc điều khiển logic số tích hợp trong các thiết bị điều khiển phân tán 2) Bình thường người vận hành không can thiệp được. Ý nghĩa như trên, nhưng người vận hành có thể can thiệp: © 2005, Hoàng Minh Sơn
- 77 Tính toán và ₫iều hòa tín hiệu Ngoài các biểu tượng đã định nghĩa trong S5.1, chuẩn S5.3 còn bổ sung biểu tượng riêng cho tính toán và điều hòa tín hiệu: 9.3 Mô hình hóa hướng đối tượng Sử dụng ngôn ngữ UML để mô hình hóa hệ thống: • Từ biểu đồ lớp, biểu đồ triển khai có thể xây dựng cấu hình hệ thống • Từ biểu đồ trạng thái có thể chuyển sang SFC • Từ biểu đồ tương tác có thể chuyển sang FBD (CFC) (Chi tiết về sử dụng UML xem [2]) © 2005, Hoàng Minh Sơn
- 78 10 LẬP TRÌNH ĐIỀU KHIỂN PHÂN TÁN 10.1 Lập trình theo chuẩn IEC 61131-3 IEC 61131-3 là chuẩn quốc tế duy nhất về ngôn ngữ lập trình cho các thiết bị điều khiển, được chấp nhận rộng rãi trong công nghiệp. Các tiến bộ so với các phương pháp lập trình PLC cổ điển là: • Các ngôn ngữ lập trình thống nhất • Một mô hình Task và Resource thích hợp cho nhiều hệ thống khác nhau • Các kiểu dữ liệu đa dạng, khả mở • Một thư viện các hàm và khối chức năng chuẩn • Bước đầu có ý tưởng hướng đối tượng • Một mô hình giao tiếp thống nhất. Năm ngôn ngữ được chuẩn hóa là liệt kê lệnh( IL, Instruction List), sơ đồ tiếp điểm (LD, Ladder Diagram), sơ đồ khối chức năng (FBD, Function Block Diagram), văn bản có cấu trúc (ST, Structured Text) và biểu ₫ồ hoạt ₫ộng tuần tự (SFC, Sequential Function Chart). Thực ra, trọng tâm của IEC 61131-3 lúc đầu hướng tới các bộ điều khiển khả trình (PLC) đơn lẻ, song một số ngôn ngữ chuẩn hóa ở đây cũng phản ánh các ngôn ngữ lập trình tiêu biểu được dùng trong các hệ điều khiển phân tán. Những ngôn ngữ đó là FBD, ST và SFC, mặc dù trong thực tế chúng có những biến thể khác nhau và được gọi với những cái tên khác nhau. Hai ngôn ngữ còn lại là IL và LD thường chỉ được sử dụng cho lập trình các PLC đơn lẻ, nên không được đề cập ở đây. Instruction List (IL) Structured Text (ST) LD A ANDN B C:= A AND NOT B ST C Function Block Diagram (FBD) Ladder Diagram (LD) AND A B C A C -| | |/| ( ) B Hình 10-1: Minh họa một số ngôn ngữ lập trình PLC Mỗi ngôn ngữ lập trình như FBD, ST và SFC thích hợp cho việc thể hiện các khía cạnh khác nhau trong một chương trình điều khiển. Cụ thể là, FBD thích hợp cho bài toán điều khiển quá trình và điều khiển logic trên cơ sở các khối chức năng có sẵn, ST thích hợp cho việc thực hiện các khối chức năng, SFC phù hợp cho bài toán điều khiển trình tự và cho biểu diễn trình tự hoạt động trong một chương trình ở mức cao hơn FBD. © 2005, Hoàng Minh Sơn
- 79 10.1.1 Kiểu dữ liệu Các kiểu dữ liệu cơ sở Các kiểu dữ liệu cơ sở chuẩn hóa trong IEC 61131-3 được liệt kê trong bảng 10.1, kèm theo qui định về chiều dài ô nhớ và giá trị khởi tạo mặc định. Phạm vi biểu diễn của các số có thể suy ra từ chiều dài ô nhớ. Cách biểu diễn các số thực tuân theo chuẩn IEC 559. Bảng 10-1: Các kiểu dữ liệu cơ sở trong IEC 61131-3 STT Từ khóa Kiểu dữ liệu Chiều dài Giá trị khởi tạo (bit) mặc định 1 BOOL Kiểu Bool 1 0/FALSE 2 SINT Kiểu nguyên ngắn 8 0 3 INT Kiểu nguyên 16 0 4 DINT Kiểu nguyên đúp 32 0 5 LINT Kiểu nguyên dài 64 0 6 USINT Kiểu nguyên dương ngắn 8 0 7 UINT Kiểu nguyên dương 16 0 8 UDINT Kiểu nguyên dương đúp 32 0 9 ULINT Kiểu nguyên dương dài 64 0 10 REAL Số thực 32 0.0 11 LREAL Số thực dài 64 0.0 12 TIME Khoảng thời gian T#0S 13 DATE Ngày tháng D#0001-01-01 14 TIME_OF_DAY Thời gian trong ngày TOD#00:00:00 TOD 15 DATE_AND_TIME Ngày tháng và thời gian DT#0001-01-01- DT 00:00:00 16 STRING Chuỗi ký tự 8bit 8 x N '' 17 BYTE Chuỗi 8 bit 8 0 18 WORD Chuỗi 16 bit 16 0 19 DWORD Chuỗi 32 bit 32 0 20 LWORD Chuỗi 64 bit 64 0 21 WSTRING Chuỗi ký tự 16bit 16 x N "" Các kiểu dữ liệu tổng quát Bên cạnh các kiểu dữ liệu cơ sở, chuẩn còn đưa ra khái niệm “kiểu dữ liệu tổng quát”. Thực chất đây là các từ khóa đại diện cho một nhóm kiểu có thể sử dụng trong một số hàm và khối chức năng tổng quát. Việc sử dụng các từ khóa này nhằm đơn giản hóa việc mô tả các hàm và khối chức năng có thể áp dụng cho nhiều kiểu dữ liệu khác nhau. Ngoài ra, các kiểu dữ liệu tổng quát © 2005, Hoàng Minh Sơn
- 80 không có ý nghĩa nào khác trong một chương trình, do đó người sử dụng không thể khai báo một biến thuộc kiểu tổng quát. Qui định về các kiểu dữ liệu tổng quát được minh họa trong bảng 10-2. Bảng 10-2: Các kiểu dữ liệu tổng quát trong IEC 61131-3 ANY ANY_DERIVED ANY_ELEMENTARY ANY_MAGNITUDE ANY_NUM ANY_REAL LREAL REAL ANY_INT LINT, DINT, INT, SINT ULINT, UDINT, UINT, USINT TIME ANY_BIT LWORD, DWORD, WORD, BYTE, BOOL ANY_STRING STRING WSTRING ANY_DATE DATE_AND_TIME DATE, TIME_OF_DAY Các kiểu dữ liệu dẫn xuất Các kiểu dẫn xuất được tóm tắt trong bảng 10.3, gồm có: • Các kiểu dẫn xuất trực tiếp • Các kiểu liệt kê • Các kiểu dãy con • Các kiểu mảng • Các kiểu cấu trúc Bảng 10-3: Các kiểu dữ liệu dẫn xuất trong IEC 61131-3 STT Mô tả/ví dụ 1 Dẫn xuất trực tiếp từ kiểu cơ sở, ví dụ TYPE RU_REAL : REAL ; END_TYPE 2 Các kiểu liệt kê, ví dụ: TYPE ANALOG_SIGNAL_TYPE: (SINGLE_ENDED, DIFFERENTIAL); END_TYPE 3 Các kiểu dãy con, ví dụ: TYPE ANALOG_DATA: INT (-4095 4095); END_TYPE 4 Các kiểu mảng, ví dụ: TYPE ANALOG_16_INPUT_DATA: ARRAY [1 16] OF ANALOG_DATA; END_TYPE © 2005, Hoàng Minh Sơn
- 81 STT Mô tả/ví dụ 5 Các kiểu cấu trúc, ví dụ: TYPE ANALOG_CHANNEL_CONFIGURATION: STRUCT RANGE : ANALOG_SIGNAL_RANGE ; MIN_SCALE : ANALOG_DATA ; MAX_SCALE : ANALOG_DATA ; END_STRUCT ; ANALOG_16_INPUT_CONFIGURATION : STRUCT SIGNAL_TYPE : ANALOG_SIGNAL_TYPE ; FILTER_PARAMETER : SINT (0 99) ; CHANNEL: ARRAY [1 16] OF ANALOG_CHANNEL_CONFIGURATION; END_STRUCT ; END_TYPE 10.1.2 Tổ chức chương trình Chương trình (PROGRAM), khối chức năng (FUNCTION_BLOCK) và hàm (FUNCTION) là các đơn vị tổ chức chương trình (Program Organization Unit), POU). FUNCTION Giống như trong PASCAL, một hàm có một hoặc nhiều đầu vào và chính xác một đầu ra. Một hàm không có trạng thái, có nghĩa là gọi hàm với các giá trị đầu vào như nhau sẽ cho kết quả như nhau. Ví dụ về hàm là các hàm toán học SIN, COS, ADD, hoặc các hàm logic AND, OR, Một hàm được biểu diễn đồ họa như trên Hình 10-2. KHAI BÁO HÀM SỬ DỤNG HÀM Name Name Data Type P1 P1 Data Type P2 Data Type X P2 Data Type P3 0.25 P3 Các tham số hình thức Các tham số thực tại Hình 10-2: Khai báo và sử dụng một hàm Mã khai báo/định nghĩa và gọi hàm dưới dạng ST được minh họa dưới đây: (* Khai báo và định nghĩa hàm *) FUNCTION fct1 : REAL VAR_INPUT a, b: REAL; c : REAL:= 1.0; END_VAR fct1 := a*b/c; © 2005, Hoàng Minh Sơn
- 82 END_FUNCTION (* Gọi hàm *) y := fct1(a:= x, b:= 2.0); Cần lưu ý: • Khai báo VAR_INPUT END_VAR cho các biến đầu vào • Khai báo VAR EBD_VAR cho các biến cục bộ • Kết quả trả về được gán cho tên hàm • Các hàm cũng có thể được nạp chồng để có thể áp dụng với nhiều kiểu dữ liệu khác nhau (Hình 10-3). HÀM NẠP CHỒNG HÀM THÔNG THƯỜNG ADD_REAL ADD REAK ANY_NUM REAL REAL ANY_NUM ANY_NUM REAL ANY_NUM Hình 10-3: Khai báo hàm nạp chồng và hàm thông thường FUNCTION_BLOCK Hàm và khối chức năng là các khối tổ chức chương trình có giá trị sử dụng lại. Một khối chức năng giống như một đối tượng, có trạng thái và có thể có nhiều đầu ra, ví dụ các bộ điều khiển động, các khâu Flip-Flop, Timer, Counter. Nếu so sánh với một đối tượng thì một khối chức năng chỉ có một hàm thành viên duy nhất, vì thế cách gọi một khối chức năng tương tự như cách gọi một hàm. Mỗi khối chức năng có một trạng thái riêng nên ta phải phân biệt giữa kiểu khối chức năng (giống như lớp) và thể nghiệm khối chức năng (giống như ₫ối tượng). Tùy theo ngữ cảnh mà khái niệm khối chức năng có thể hiểu theo một trong hai nghĩa trên. Việc gọi một khối chức năng cũng được thông qua tên của biến thể nghiệm, chứ không thông qua tên kiểu khối chức năng, như minh họa trên Hình 10-4. KHAI BÁO KHỐI CHỨC NĂMG SỬ DỤNG KHỐI CHỨC NĂNG Tên biến thể nghiệm fb1 FB_NAME FB_NAME Data Type P1 O1 Data Type P1 O1 Data Type P2 O2 Data Type X P2 O2 Y Data Type P3 0.25 P3 Các tham biến hình thức Các tham số thực tại Hình 10-4: Khai báo và sử dụng một khối chức năng © 2005, Hoàng Minh Sơn
- 83 Dưới đây là ví dụ mã một khối chức năng, viết bằng ST. FUNCTION_BLOCK Example VAR_INPUT X : BOOL; Y : BOOL; END_VAR VAR_OUTPUT Z : BOOL; END_VAR VAR INTERNAL_STATE: BOOL; END_VAR (* statements of functionblock body *) END_FUNCTION_BLOCK Cần lưu ý: • Khai báo biến đầu vào với VAR_INPUT END_VAR • Khai báo biến đầu ra với VAR_OUTPUT END_VAR • Khai báo biến vào/ra với VAR_IN_OUT END_VAR • Khai báo các biến nội bộ (trạng thái) với VAR END_VAR PROGRAM Một chương trình có thể coi như một mạng các hàm và khối chức năng nối với nhau. Khác với hàm và khối chức năng, một chương trình có thể sử dụng các biến toàn cục, các biến vào/ra quá trình hoặc các biến định địa chỉ trực tiếp. Một biến có thể thuộc các kiểu dữ liệu cơ bản hoặc dẫn xuất đã nêu, nhưng cũng có thể là một khối chức năng. Như vậy, các khối chức năng có giá trị sử dụng lại, trong khi chương trình thì không. Một chương trình hoặc một khối chức năng có thể được thực hiện tuần hoàn, theo sự kiện hay liên tục nhờ các tác vụ (TASK) tương ứng. Nhiều chương trình và khối chức năng có thể chia sẻ cùng một tác vụ. 10.1.3 Ngôn ngữ FBD FBD là một trong năm ngôn ngữ được định nghĩa trong IEC 61131-3. Ý tưởng của ngôn ngữ này là xây dựng chương trình từ các khối chức năng (function block) kết nối với nhau bằng tín hiệu. Mỗi khối chức năng thực hiện một nhiệm vụ xử lý nào đó. Chương trình xây dựng bằng ngôn ngữ FBD có hình thức rất giống sơ đồ khối của hệ thống điều khiển. Thực chất, FBD là sự kết hợp của sơ đồ logic cố điển (binary logic diagram) và biểu đồ hoạt động liên tục (continuos function chart, CFC). Mỗi khối trong FBD có thể là một khối logic như AND, OR, nhưng cũng có thể là một khối có các đầu vào/ra tương tự như ADD, PID, AI, AO, FBD thường được sử dụng để thực hiện một phần tương đối độc lập của chương trình điều khiển trên cơ sở các khối chức năng có sẵn, ví dụ lập trình các mạch vòng điều khiển quá trình hoặc các mạch logic điều khiển khóa liên động. © 2005, Hoàng Minh Sơn
- 84 10.1.4 Ngôn ngữ ST ST (Structured Text) là một ngôn ngữ bậc cao mới được xây dựng trên cơ sở cú pháp PASCAL, nhờ vậy rất thuận tiện cho việc thể hiện các thuật toán phức tạp trong điều khiển quá trình. Bảng 10-4: Lệnh trong ST No. Kiểu lệnh Ví dụ 1 Gán A := B; CV := CV+1; C := SIN(X); 2 Sử dụng hàm CMD_TMR(IN:=%IX5, PT:=T#300ms) ; A := CMD_TMR.Q ; 3 Quay về RETURN RETURN ; 4 Điều kiện rẽ nhánh if D := B*B - 4*A*C ; IF D 'KEY' DO J := J+2 ; END_WHILE ; 8 Vòng lặp REPEAT (3.3.2.4) J := -1 ; REPEAT J := J+2 ; UNTIL J = 101 OR WORDS[J] = 'KEY' END_REPEAT ; 9 Kết thúc EXIT (3.3.2.4)a EXIT ; 10 Lệnh rỗng ; © 2005, Hoàng Minh Sơn
- 85 10.1.5 Ngôn ngữ SFC SFC mô tả tiến trình hoạt động tuần tự của một chương trình điều khiển. SFC được xây dựng trên cơ sở mạng Petri và chuẩn IEC 848 Grafcet, với các thay đổi cần thiết để có thể thực hiện chức năng điều khiển thay vì chỉ là một chuẩn tài liệu mô tả. SFC bao gồm các bước (Step) và các chuyển tiếp (Transition). Mỗi bước đại diện cho một trạng thái cụ thể của hệ thống được điều khiển. Một chuyển tiếp được gán một điều kiện logic, khi trở thành “đúng” sẽ kết thúc bước và kích hoạt bước sau. Một bước được liên kết với một khối hành động (Action Block) để thực hiện các thao tác điều khiển. Các khối hành động trong SFC đều có thể được lập trình bởi một ngôn ngữ IEC bất kỳ, kể cả chính SFC, trong khi các điều kiện chuyển tiếp có thể được lập trình bằng bốn ngôn ngữ IL, LD, FBD hoặc ST. SFC cũng cho phép mô tả các quá trình phân nhánh cạnh tranh hoặc các quá trình phân nhánh song song. SFC cho phép sử dụng các bước lớn (macro step), trong đó mỗi bước lớn lại có thể được biểu diễn bằng một SFC khác. Nhờ vậy ta có thể mô hình hóa ứng dụng, lập trình ứng dụng ở nhiều mức trừu tượng, tạo điều kiện thuận lợi cho giải quyết các bài toán phức tạp. Step 1 N FILL Transition 1 Step 2 S Empty Transition 2 Step 3 Hình 10-5: Một ví dụ SFC ₫ơn giản 10.2 Lập trình với ngôn ngữ bậc cao Bên cạnh sử dụng các ngôn ngữ lập trình chuyên dụng, việc lập trình với ngôn ngữ bậc cao phục vụ các mục đích sau đây: • Mở rộng thư viện khối chức năng • Thể hiện một số chức năng mở rộng • Lập trình cho hệ DCS trên nền PC Ngôn ngữ thường được sử dụng nhất là C/C++. Với các công cụ mạnh trong tay, việc lập trình các thuật toán điều khiển trở nên dễ dàng. Bên cạnh các luật điều khiển logic hoặc các bộ điều khiển phản hồi PID, thì khả năng thực © 2005, Hoàng Minh Sơn
- 86 hiện các thuật toán điều khiển cao cấp cũng hoàn toàn không bị giới hạn bởi ngôn ngữ lập trình. Các luật điều khiển này có thể được sử dụng lại nhiều lần, vì vậy có thể xây dựng thành một thư viện lớp. Bên cạnh các yếu tố như tham số bộ điều khiển và chu kỳ lấy mẫu, cần lưu ý giải quyết hợp lý các vấn đề thực tế như giới hạn đầu vào, chuyển đổi chế độ điều khiển bằng tay/tự động, hiệu ứng reset windup (ở bộ điều khiển PID). Để đưa các mã viết bằng C/C++ bổ sung vào thư viện khối chức năng trong một hệ DCS, người lập trình cần tuân thủ theo một qui định nhất định. Thông thường, việc này không dễ dàng và đòi hỏi tính năng mở của hệ thống. © 2005, Hoàng Minh Sơn
- 87 11 CHỨC NĂNG ĐIỀU KHIỂN GIÁM SÁT 11.1 Giới thiệu chung về các hệ điều khiển giám sát Điều khiển giám sát và thu thập dữ liệu (SCADA) là một phần không thể thiếu được trong một hệ thống tự động hóa hiện đại. Từ những năm gần đây, tiến bộ trong các lĩnh vực truyền thông công nghiệp và công nghệ phần mềm đã thực sự đem lại nhiều khả năng mới, giải pháp mới. Giống như nhiều từ viết tắt có tính chất truyền thống khác, khái niệm SCADA (Supervisory Control And Data Acquisition) cũng được hiểu với những ý nghĩa hơi khác nhau, tuỳ theo lĩnh vực ứng dụng và theo thời gian. Có thể, khi nói tới SCADA người ta chỉ liên tưởng tới một hệ thống mạng và thiết bị có nhiệm vụ thuần túy là thu thập dữ liệu từ các trạm ở xa và truyền tải về một khu trung tâm để xử lý. Các hệ thống ứng dụng trong công nghiệp khai thác dầu khí và phân phối năng lượng là những ví dụ tiêu biểu. Theo cách hiểu này, vấn đề truyền thông được đặt lên hàng đầu. Trong nhiều trường hợp, các khái niệm SCADA và "None-SCADA" lại được dùng để phân biệt các giải pháp điều khiển giám sát dùng công cụ phần mềm chuyên dụng (ví dụ FIX, InTouch, WinCC, Lookout, ) hay phần mềm phổ thông (Access, Excel, Visual Basic, Delphi, JBuilder, ). ở đây, công nghệ phần mềm là vấn đề được quan tâm chủ yếu. Nói một cách khái quát, một hệ SCADA không có gì khác là một hệ thống điều khiển giám sát, tức là một hệ thống hỗ trợ con người trong việc quan sát và điều khiển từ xa, ở cấp cao hơn hệ điều khiển tự động thông thường. Đương nhiên, để có thể quan sát và điều khiển từ xa cần phải có hệ thống truy nhập (không chỉ thu thập!) và truyền tải dữ liệu, cũng như cần phải có giao diện người-máy (Human-Machine Interface, HMI). Tùy theo trọng tâm của nhiệm vụ mà người ta có thể có những cách nhìn khác nhau. Như ta thấy, HMI là một thành phần trong một hệ SCADA, tuy nhiên không phải chỉ ở cấp điều khiển giám sát, mà ngay ở các cấp thấp hơn người ta cũng cần giao diện người-máy phục vụ việc quan sát và thao tác vận hành cục bộ. Vì lý do giá thành, đặc tính kỹ thuật cũng như phạm vi chức năng, ở các cấp gần với quá trình kỹ thuật này các OP chuyên dụng chiếm vai trò quan trọng hơn. Sự tiến bộ trong công nghệ phần mềm và kỹ thuật máy tính PC, đặc biệt là sự chiếm lĩnh thị trường của hệ điều hành Windows NT cùng với các công nghệ của Microsoft đã thúc đẩy sự phát triển của các công cụ tạo dựng phần mềm SCADA theo một hướng mới, sử dụng PC và Windows NT làm nền phát triển và cài đặt. Từ phạm vi chức năng thuần tuý là thu thập dữ liệu cho việc quan sát, theo dõi quá trình, một hệ SCADA ngày nay có thể đảm nhiệm vai trò điều khiển cao cấp, điều khiển phối hợp. Phương pháp điều khiển theo mẻ, điều khiển theo công thức (batch control, recipe control) là những ví dụ tiêu © 2005, Hoàng Minh Sơn
- 88 biểu. Hơn nữa, khả năng tích hợp hệ điều khiển giám sát với các ứng dụng khác như các phần mềm quản lý, tối ưu hóa hệ thống, của toàn công ty cũng trở nên dễ dàng hơn. Trong giải pháp điều khiển phân tán, hệ thống truyền thông ở các cấp dưới (bus trường, bus chấp hành-cảm biến) đã có sẵn. Nếu như mạng máy tính của một công ty cũng đã được trang bị (chủ yếu dùng Ethernet), thì cơ sở hạ tầng cho việc truyền thông không còn là vấn đề lớn phải giải quyết. Chính vì vậy, trọng tâm của việc xây dựng các giải pháp SCADA trong thời điểm hiện nay là vấn đề lựa chọn công cụ phần mềm thiết kế giao diện và tích hợp hệ thống. Trong một hệ điều khiển phân tán, chức năng SCADA là một thành phần không thể thiếu được. Như vậy có thể nói, một hệ DCS bao giờ cũng có chức năng SCADA, trong khi một hệ SCADA theo đúng nghĩa của nó không thể là một hệ DCS. 11.1.1 Các thành phần chức năng cơ bản Xét một cách tổng quát, một hệ SCADA bao gồm các thành phần chức năng liệt kê dưới đây. Phần cứng • Thiết bị thu thập dữ liệu: PLC, RTU, PC, I/O, các đầu đo thông minh • Hệ thống truyền thông: Mạng truyền thông, các bộ dồn kênh/phân kênh, Modem, các bộ thu phát. • Trạm quản lý dữ liệu: Máy chủ (PC, Workstation), các bộ tập trung dữ liệu (Data concentrator, PLC, PC) • Trạm vận hành (Operator Station) Hình 11-1: Các thành phần phần mềm trong một hệ SCADA Phần mềm: • Giao diện vào/ra (phần mềm giao diện quá trình), dưới dạng các I/O- Drivers, I/O-Servers (DDE,OPC, ). • Giao diện người-máy © 2005, Hoàng Minh Sơn
- 89 GIAO HỆ DIỆN THỐNG NGƯỜI CẢNH LẬP BÁO ĐIỀU KHIỂN CÁO TỰ CƠ SỞ DỮ CAO CẤP ĐỘNG LIỆUQUÁ I/O-I/O- DRIVE I/O- DRIVE SERI/VER • Cơ sở dữ liệu quá trình • Hệ thống cảnh báo, báo động • Lập báo cáo tự động • Điều khiển cao cấp: Điều khiển mẻ, điều khiển trình tự, điều khiển công thức, điều khiển chuyên gia Các thành phần nói trên đã được tích hợp trong một hệ điều khiển phân tán. Vì vậy, việc xây dựng các chức năng SCADA ở đây đơn giản hơn nhiều so với trong các hệ khác. 11.1.2 Công cụ phần mềm SCADA/HMI Phân loại theo phạm vi sử dụng: • Công cụ lập trình phổ thông • Công cụ tích hợp trong một hệ DCS • Công cụ độc lập, có thể sử dụng cho nhiều hệ thống khác nhau: WinCC (Siemens), InTouch (Wonderware), iFIX (Intellution), Genesis (Iconics), LookOut (NI) Phân loại theo kiến trúc phần mềm: • Kiến trúc truyền thống • Kiến trúc hướng đối tượng • Kiến trúc Web Kiến trúc hướng ₫ối tượng Hiện nay, có lẽ không một phần mềm SCADA nào tự nhận là tiên tiến mà không đưa từ khóa hướng ₫ối tượng vào danh sách các đặc tính ưu việt để quảng cáo. Mặc dù trong đại đa số các trường hợp, cách sử dụng thuật ngữ như vậy mang tính chất lạm dụng, nhưng qua đó ta cũng thấy ít hay nhiều tầm quan trọng của công nghệ đối tượng. Thực chất, các thư viện thành phần sẵn có trong những sản phẩm thuộc thế hệ mới thường được xây dựng trên cơ sở một mô hình đối tượng, đặc biệt phải nói tới mô hình COM của Microsoft. Việc sử dụng một mô hình đối tượng thành phần chuẩn công nghiệp như COM mang lại nhiều ưu thế như: • Nâng cao hiệu suất công việc thiết kế, xây dựng giao diện người-máy bằng cách sử dụng ActiveX-Controls © 2005, Hoàng Minh Sơn
- 90 • Nâng cao khả năng tương tác và khả năng mở rộng, hay nói cách khác là tính năng mở của hệ thống • Thuận lợi trong việc sử dụng một chuẩn giao diện quá trình như OPC để kết nối với các thiết bị cung cấp dữ liệu. Quả thật, hầu hết (nếu không nói là tất cả) các phần mềm SCADA tiên tiến nhất hiện nay đều hỗ trợ COM, cụ thể là đều có ba đặc điểm nêu trên. Nếu trước đây để tạo được một màn hình giao diện đồ họa, một kỹ sư có kinh nghiệm cần trung bình một vài ngày, thì nay thời gian có thể giảm xuống tới một vài giờ. Sử dụng một công cụ thích hợp, ta có thể hoàn toàn tập trung vào công việc chính mà không cần kiến thức chuyên sâu về lập trình. Công nghệ đối tượng thành phần và các phương pháp không lập trình đã mở ra khả năng này. Kiến trúc Web Chỉ trong vòng mấy năm gần đây, Web đã phát triển thành một trong những công nghệ tin học quan trọng bậc nhất. Không chỉ là một phương tiện truyền bá và truy nhập thông tin đại chúng như trong thời gian đầu mới hình thành, bản thân Web hiện đã trở thành một môi trường đa năng cho các ứng dụng phân tán. Một ứng dụng Web cấu thành bởi sự tương tác giữa Web server, Web browser, trang HTML (Hypertext Markup Language) với các ứng dụng và phụ kiện khác. Những ứng dụng đó cũng hay được gọi là các ứng dụng nhiều lớp (multi-tier applications). Sử dụng Web làm nền cho các ứng dụng SCADA không chỉ mang lại hiệu quả về thời gian cài đặt phần mềm, mà trước tiên là mở ra khả năng mới cho việc tích hợp hệ thống tự động hóa trong một hệ thống thông tin thống nhất của công ty. Điều khiển giám sát không còn là chức năng độc quyền của các chuyên viên kỹ thuật. Một giám đốc điều hành sản xuất, hay một tổng giám đốc công ty đều có thể quan sát và tham gia điều hành quá trình sản xuất từ phòng làm việc riêng, chỉ qua màn hình, bàn phím và chuột. Tương tự, các báo cáo về tình hình sản xuất cũng như các chỉ thị không nhất thiết phải đi theo con đường giấy tờ hay truyền miệng, mà trực tiếp diễn ra "on-line". Đưa SCADA lên Web cũng tạo điều kiện thuận lợi cho các dịch vụ bảo trì hệ thống từ xa. Các nhà cung cấp giải pháp tự động hóa không cần phải đến trực tiếp cơ sở sản xuất, mà có thể theo dõi toàn bộ diễn biến quá trình kỹ thuật qua một trình duyệt như Internet Explorer hay Netscape Navigator, trên cơ sở đó có thể chẩn đoán, xác định lỗi và đưa ra phương hướng giải quyết thích hợp. Có thể nói, một trong những yếu tố mang lại thành công cho công nghệ Web là mô hình đơn giản, không phụ thuộc vào nền triển khai và sử dụng. Hầu hết các loại máy tính, hầu hết các hệ điều hành thông dụng đều cho © 2005, Hoàng Minh Sơn
- 91 phép cài đặt Web server và Web browser. Tuy nhiên, mô hình Web nguyên sơ thể hiện rõ những yếu điểm sau: • Giao thức HTTP có tính năng kém, không thích hợp cho các ứng dụng mang tính tương tác và thời gian thực. • Sự nghèo nàn của HTML. • Cấu trúc xử lý nhiều lớp mặc dù linh hoạt nhưng hiệu suất kém. • Độ an toàn và độ tin cậy của Web còn rất thấp. Để khắc phục những yếu điểm trên, người ta đã đưa ra nhiều giải pháp khác nhau. Trong phạm vi hẹp của báo cáo tác giả không thể đưa ra đầy đủ, cũng như không thể đi sâu vào chi tiết từng giải pháp, nhất là khi các tiến bộ công nghệ Web hiện nay được cập nhật không ngừng. Nhìn một cách tổng quát, ta có thể tóm tắt lại những kỹ thuật chính được áp dụng hiện nay như sau: • Dùng ActiveX-Controls hoặc JavaApplets kết hợp với các biên ngữ (scripting language) như VBScript, JavaScript, hoặc dùng Dynamic- HTML để nâng cao tính tương tác và khả năng lập trình cho trang Web. • Sử dụng giao thức riêng biệt kết hợp với ActiveX-Controls hoặc JavaApplets và bỏ qua HTTP nhằm tăng hiệu suất của ứng dụng. Kỹ thuật này thường được các nhà sản xuất ActiveX-Controls hoặc JavaApplets áp dụng trong các sản phẩm của mình. • Dùng plug-ins trong Web server và Web browser để mở rộng, cải tiến chức năng cho các ứng dụng. Kỹ thuật này được dùng chẳng hạn trong các sản phẩm của công ty Netscape Communications. • Hầu hết các Web server và Web browser đều dành sẵn các giao diện lập trình (APIs) để tạo điều kiện cho người dùng mở rộng, cải tiến chức năng cho các ứng dụng. • Dùng sản phẩm Web server và Web browser riêng để tối ưu tính năng vận hành của ứng dụng. Kỹ thuật này được dùng chẳng hạn trong Scout - một bộ chương trình quan sát tiến trình dựa Web của công ty Wonderware. 11.2 Xây dựng cấu trúc hệ thống Đặt vấn ₫ề • Yêu cầu thực tế của ứng dụng: qui mô hệ thống, giá thành • Hiệu năng của hệ thống: Khả năng cập nhật dữ liệu, cập nhật màn hình, hiệu suất sử dụng đường truyền • Độ tin cậy của hệ thống • Khả năng hỗ trợ bởi các công cụ phần mềm Cấu trúc một người sử dụng (single-user) • Ghép nối điểm-điểm • Ghép nối nhiều điểm: vai trò của mạng truyền thông © 2005, Hoàng Minh Sơn
- 92 Cấu trúc nhiều người sử dụng (multi-user) • Một màn hình/một trạm • Nhiều màn hình/một trạm • Kiến trúc Client/Server: Cấu trúc mạng phẳng và cấu trúc mạng phân cấp Cấu trúc hệ thống qui mô lớn: • Số lượng lớn các thiết bị thu thập dữ liệu: Vai trò của các bộ tập trung dữ liệu • Hệ thống diện rộng: Vai trò các bộ dồn kênh/phân kên, các bộ thu/phát, modem, mạng viễn thông, Internet. 11.3 Thiết kế giao diện người-máy Giao diện người-máy là hệ thống phần mềm hỗ trợ con người theo dõi quá trình các diễn biến của kỹ thuật, trạng thái và các thông số làm việc của các thiết bị trong hệ thống, qua đó có thể thực hiện các thao tác vận hành và can thiệp từ xa tới hệ thống điều khiển phía dưới. Ngày nay, các phần mềm giao diện người-máy chủ yếu được xây dựng trên nền máy tính cá nhân, dựa trên các kỹ thuật đồ họa hiện đại. Giao diện người-máy là một trong các thành phần chính của một hệ thống điều khiển giám sát. 11.3.1 Yêu cầu chung • Đơn giản, dễ sử dụng (easy-to-use) • Bền vững, khó gây lỗi (robustness) • Tính thông tin cao (informativeness) • Nhất quán (consistency) • Đẹp, nhã nhặn (good-looking, elegant) 11.3.2 Các phương pháp giao tiếp người-máy • Đưa lệnh trực tiếp • Lựa chọn lệnh từ menu • Giao tiếp qua hộp thoại 11.3.3 Thiết kế cấu trúc màn hình Yêu cầu cấu trúc các màn hình • Gần với các máy móc, thiết bị, công nghệ thực • Khoa học, kết hợp hợp lý phương pháp sử dụng chuyển cấp hoặc lựa chọn nhanh • Phân cấp màn hình • Tổng quan hệ thống (system overview), hệ thống con (subsystem overview) • Tổng quan nhóm (group overview) • Hiển thị nhóm (group display) © 2005, Hoàng Minh Sơn
- 93 • Hiển thị chi tiết (details display) • Hình ảnh hệ thống, hình ảnh phạm vi/công đoạn/máy móc dưới dạng lưu đồ công nghệ (process diagram) hoặc hình ảnh dây chuyền sản xuất • Đồ thị (trends): Đồ thị thời gian thực, đồ thị quá khứ • Cửa sổ báo động (alarm windows) 11.3.4 Các nguyên tắc thiết kế Màu sắc • Chỉ dùng màu sắc khi thật cần thiết • Nền: màu tối, ví dụ xám sẫm hoặc xanh lam đậm • Máy móc, thiết bị: Sử dụng hình phẳng, màu và độ sáng khác ít so với nền, cố gắng tránh 3D, tránh các mẫu hoa văn • Hình tĩnh (đường ống, máy móc): tránh các màu tươi, chói • Tín hiệu trạng thái, hình động: Chọn các màu tươi, chói Chữ viết • Hạn chế số font chữ, kiểu chữ, chênh lệch độ lớn • Chân phương, tránh các hiệu ứng đặc biệt (3D, lượn sóng, đường viền, ) Các hình ảnh ₫ộng • Hỗ trợ phân biệt trạng thái, ví dụ nhấp nháy • Nhất quán trong tất cả các màn hình • Các số nên chỉnh căn phải, các biến liên quan trực tiếp để gần nhau và cùng cách biểu diễn • Biểu diễn các đơn vị vật lý với giá trị số và đơn vị, không dùng % © 2005, Hoàng Minh Sơn
- 94 12 TÍNH SẴN SÀNG VÀ ĐỘ TIN CẬY CỦA CÁC HỆ ĐKPT 12.1 Đặt vấn đề Tính sẵn sàng và độ tin cậy của hệ thống phụ thuộc vào: • Độ tin cậy của từng thiết bị • Cấu trúc hệ thống • Tính năng hệ thống truyền thông • Cơ chế dự phòng • Cơ chế an toàn • Cơ chế khởi động lại sau sự cố nguồn • Cơ chế bảo mật • Khả năng bảo trì • 12.2 Cơ chế dự phòng Yêu cầu: • Các thành phần quan trọng cần được dự phòng hoàn toàn để trường hợp lỗi một thành phần đơn (phần cứng & phần mềm) không làm mất đi tính năng do nó cung cấp • Lỗi mỗi module hoặc card được phép không gây ra tê liệt hơn một trạm vận hành hoặc một vòng điều khiển. Phân biệt • Dự phòng lạnh • Dự phòng nóng: Dự phòng cạnh tranh và dự phòng dự trữ Các biện pháp dự phòng nóng • Dự phòng CPU: Mỗi trạm điều khiển cần có CPU dự phòng cạnh tranh, thực hiện song song và đồng bộ với CPU chính và so sánh kết quả • Dự phòng trạm điều khiển: Dự phòng dự trữ 1:1, chuyển mạch kịp thời, trơn tru • Dự phòng dự trữ hệ thống mạng: Dự phòng cáp truyền, dự phòng module truyền thông và các thiết bị mạng khác, chuyển mạch kịp thời, trơn tru, thời gian chuyển mạch < 1ms • Dự phòng vào/ra • Dự phòng trạm vận hành 1:n • Dự phòng trạm server 1:1 Dự phòng lạnh: • Cho phép thay thế trực tuyến các module vào/ra và các card khác • Cho phép thay thế các trạm điều khiển trong một thời gian nhanh nhất © 2005, Hoàng Minh Sơn
- 95 12.3 Cơ chế an toàn • Có cơ chế dừng an toàn, dừng khẩn cấp (mạch cứng hoặc qua bus an toàn) khi hệ thống có các cơ cấu chuyển động • Tín hiệu ra tương tự hỗ trợ chế độ an toàn khi mất liên lạc với trạm điều khiển hoặc khi phát hiện trạm điều khiển có lỗi (giữ giá trị cuối hoặc đưa về giá trị mặc định) 12.4 Cơ chế khởi động lại sau sự cố • Các trạm điều khiển cần có khả năng tự phát hiện lỗi mất nguồn, thực hiện xử lý và đặt các tín hiệu ra về trạng thái an toàn, sau khi có nguồn trở lại phải có khả năng hồi phục trạng thái cũ • Các trạm vận hành phải có khả năng tự hồi phục trạng thái làm việc trước khi xảy ra sự cố • Tất cả các nút mạng phải có khả năng tự khởi động một cách độc lập với các nút khác 12.5 Bảo mật • Đặt chế độ bảo mật theo trạm hoặc theo người sử dụng để hạn chế, kiểm soát quyền truy nhập dữ liệu và điều khiển • Đặt chế độ bảo mật dựa trên từng tag riêng rẽ hoặc từng cửa sổ riêng rẽ • Người vận hành cần sử dụng mã ID và mật khẩu • Cho phép thực hiện bảo mật theo nhóm 12.6 Bảo trì • Chế độ bảo trì: Hệ thống cần cho phép người vận hành đưa trực tiếp giá trị biến quá trình trong trường hợp thiết bị trường hỏng, cần sửa chữa hoặc đang được hiệu chỉnh • Chỉ thị lỗi: mỗi module, mỗi card hoặc bộ nguồn cần được trang bị đèn LED hoặc đèn khác để chỉ thị trạng thái vận hành • Chẩn đoán: Hệ thống phải hỗ trợ chẩn đoán trực tuyến với các yêu cầu tối thiểu như: - CPU của trạm điều khiển cần có biện pháp phát hiện và sửa lỗi trong bộ nhớ - Mạng truyền thông thời gian thực cần sử dụng biện pháp bảo toàn dữ liệu để phát hiện lỗi - Thông báo lỗi và các thông tin chẩn đoán với người vận hành về cấp nguồn, quạt thông gió/làm mát, các card DCS, máy in, ROM của trạm điều khiển, lỗi thực hiện thuật toán điều khiển, lỗi nạp chương trình lên/xuống, • System back-up: Toàn bộ hệ thống phần mềm cần được lưu trữ backup trên các phương tiện phổ thông, tất cả các phần mềm phát triển, chương © 2005, Hoàng Minh Sơn
- 96 trình ứng dụng và các gói phần mềm chuẩn cũng như tuỳ chọn phải được cung cấp cùng đĩa cứng hoặc đĩa CD. • Các công cụ đặc biệt do nhà sản xuất cung cấp, phục vụ chẩn đoán và thay thế thiết bị • © 2005, Hoàng Minh Sơn
- 97 13 ĐÁNH GIÁ VÀ LỰA CHỌN GIẢI PHÁP ĐIỀU KHIỂN PHÂN TÁN 13.1 Đánh giá và lựa chọn các sản phẩm DCS tích hợp trọn vẹn 13.1.1 Phạm vi chức năng Chức năng ₫iều khiển cơ sở • Phương pháp điều khiển vòng kín (PID, MPC, Fuzzy) với các yêu cầu công nghiệp như chuyển chế độ Manual/Automatic trơn tru, Anti-Reset- Windup. • Điều khiển logic, khóa liên động Chức năng ₫iều khiển cao cấp • Điều khiển mẻ, điều khiển công thức • Điều khiển thích nghi, bền vững, tối ưu • Điều khiển chuyên gia Chức năng ₫iều khiển giám sát • Chất lượng giao diện đồ họa • Khả năng lập báo cáo tự động • Cơ chế quản lý và xử lý sự kiện, sự cố • Hỗ trợ ActiveX-Control và OPC • Hỗ trợ giao diện cơ sở dữ liệu ODBC • Chức năng Web 13.1.2 Cấu trúc hệ thống và các thiết bị thành phần • Cấu trúc vào/ra phân tán hay vào/ra tập trung • Cấu trúc cấp điều khiển • Cấu trúc cấp điều khiển giám sát • Các chủng loại thiết bị hỗ trợ • Các hệ thống mạng truyền thông được hỗ trợ (đặc biệt bus trường liên quan tới các chủng loại thiết bị trường có thể hỗ trợ). 13.1.3 Tính năng mở • Khả năng tự mở rộng hệ thống • Lựa chọn các thiết bị của các nhà cung cấp khác • Hỗ trợ các chuẩn công nghiệp (COM, OPC, ActiveX-Control, MMS, IEC, ) 13.1.4 Phát triển hệ thống Cấu hình hệ thống • Đơn giản, hướng đối tượng • Khả năng phát triển hệ thống một cách xuyên suốt © 2005, Hoàng Minh Sơn
- 98 • Cấu hình và tham số hóa các thiết bị và mạng truyền thông dễ dàng qua phần mềm từ trạm kỹ thuật Lập trình ₫iều khiển • Đơn giản, hướng đối tượng • Các ngôn ngữ lập trình chuyên dụng (FBD, SFC, ST, ) • Các ngôn ngữ lập trình bậc cao (C/C++, BASIC) • Lập trình giao tiếp ngầm hay hiện • Khả năng tự mở rộng thư viện chức năng (thông qua một ngôn ngữ lập trình bậc cao) 13.1.5 Độ tin cậy và tính sẵn sàng • Cơ chế dự phòng • Khả năng bảo mật • 13.1.6 Giá thành, chi phí Chi phí ban ₫ầu • Chi phí thiêt kế hệ thống • Chi phí phần cứng • Chi phí phần mềm công cụ • Chi phí phát triển phần mềm ứng dụng • Chi phí triển khai, đưa vào vận hành • Chi phí đào tạo, chuyển giao công nghệ • Chi phí vận hành • Chi phí bảo trì, bảo dưỡng thiết bị và phần mềm • Chi phí thiết bị thay thế • Chi phí dịch vụ hỗ trợ kỹ thuật • Chi phí dừng hệ thống khi xảy ra sự cố • 13.2 So sánh giải pháp DCS tích hợp trọn vẹn với các giải pháp khác So sánh trên cơ sở các tiêu chí: • Phạm vi chức năng • Độ tin cậy và tính sẵn sàng • Tính năng mở • Phát triển hệ thống • Giá thành, chi phí So sánh với giải pháp PLC+SCADA/HMI Tham khảo [11] © 2005, Hoàng Minh Sơn
- 99 So sánh với giải pháp PC + SCADA/HMI Tham khảo [10] © 2005, Hoàng Minh Sơn
- 100 14 GIỚI THIỆU MỘT SỐ HỆ ĐIỀU KHIỂN PHÂN TÁN TIÊU BIỂU 14.1 PCS7 của Siemens 14.2 PlantScape của Honeywell 14.3 DeltaV của Fisher Rosermount 14.4 Centum CS1000/CS3000 của Yokogawa 14.5 AdvantOCS của ABB Tham khảo các tài liệu đi kèm đĩa CD. © 2005, Hoàng Minh Sơn
- 101 15 MỘT SỐ HƯỚNG NGHIÊN CỨU VÀ ỨNG DỤNG 15.1 Trí tuệ nhân tạo phân tán Đối với các hệ thống mang đặc thù tính phân tán, việc ứng dụng trí tuệ nhân tạo phân tán là một trong những hướng nghiên cứu mới, hứa hẹn nhiều kết quả khả quan. Gần đây, agent (tác tử) và multi-agent (đa tác tử) được coi là các công nghệ trọng tâm của trí tuệ nhân tạo phân tán, thu hút được sự quan tâm của đông đảo giới nghiên cứu trong lĩnh vực công nghệ thông tin. Agent là một thực thể phần mềm thông minh, có khả năng tự hoạt động với nhiệm vụ xác định để đạt được các mục tiêu đã đề ra. Đáng lưu ý là trong thực tế không có định nghĩa nào cho khái niệm agent được chấp nhận một cách thống nhất. Hầu như người ta chỉ có thể nhất trí rằng tự hoạt ₫ộng (autonomy) là trọng tâm trong khái niệm agent. Có thể nói, chính vì đứng trên các quan điểm ứng dụng khác nhau nên mỗi nhà nghiên cứu tìm cách đưa ra một định nghĩa thích hợp nhất với lĩnh vực ứng dụng cụ thể. Do đó, việc phân loại agent trước định nghĩa có lẽ hợp lý hơn quá trình ngược lại. Trong thực tế cũng có nhiều quan điểm phân loại agent khác nhau. Ví dụ, một số tác giả phân biệt agent thông minh, agent di động với agent thông thường. Trên Hình 15-1 là mô hình phân loại theo Nwana, được chấp nhận tương đối rộng rãi. Agent hợp tác-học Hợp tác 2 Học 4 Agent thông minh 1 3 Agent hợp tác Tự hoạt Agent giao diện động Hình 15-1: Phân loại agent theo Nwana Các agent có thể thiết kế theo mô hình single-agent hoặc multi-agent. Các single-agent không nhận biết các agent khác để cùng tương tác, mà nó chỉ coi các agent đó là một phần của môi trường xung quanh. Một hệ thống multi- agent có thể phân chia một nhiệm vụ để nhiều agent cùng phối hợp giải quyết. Điều này rất có ý nghĩa trong một hệ thống điều khiển phân tán. Theo nhiều quan điểm, agent có những đặc điểm chính như sau: • Thông minh và có khả năng hoạt động độc lập (Autonomy and Intelligence): các agent tự kiểm soát và chịu trách nhiệm về những quyết © 2005, Hoàng Minh Sơn
- 102 định và hành vi của mình, tự hoạt động mà không cần đợi những tác động từ ngoài vào. • Có khả năng học (Learning): tồn tại trong một môi trường động, các agent phải có khả năng học để có thể thích nghi và giải quyết những vấn đề nảy sinh. • Có khả năng giao tiếp (Communication): giao tiếp giữa các agent, và giữa agent với con người. • Có khả năng phối hợp hoạt động (Co-operation): với các agent khác và với con người nhằm giải quyết những vấn đề phức tạp mà một agent không thể thực hiện. • Có khả năng di chuyển (Mobility): một agent có thể di chuyển qua hệ thống, từ khu vực này đến khu vực khác nhằm thu thập dữ liệu. Tuy nhiên, trong các đặc tính trên, chỉ đặc tính thứ nhất và thứ hai được coi là cốt lõi, còn các đặc tính khác chỉ là tiêu biểu trong các ứng dụng thực tế. Ví dụ, khả năng giao tiếp và phối hợp hoạt động là hai đặc tính trong một hệ multi-agent. Hay khả năng di chuyển là một đặc tính tiêu biểu trong các ứng dụng Internet, tuy không thực sự cần thiết trong nhiều hệ thống ứng dụng khác. 15.2 Điều khiển và giám sát các hệ thống giao thông 15.2.1 Đặt vấn đề Hệ thống giao thông nói chung và hệ thống điều khiển tín hiệu giao thông đô thị nói riêng là những hệ phân tán tiêu biểu, việc áp dụng phương pháp điều khiển cục bộ hay tập trung đều không thích hợp. Độ phức tạp của cấu trúc phân tán ở đây không những thể hiện qua phân bố địa lý trên phạm vi rộng, mà còn qua sự phân tán chức năng và tính bất định, dễ thay đổi của mô hình. Dựa trên ý tưởng trí tuệ phân tán, người ta có thể xây dựng một mô hình kiến trúc tổng thể cho điều khiển thông minh hệ thống đèn tín hiệu giao thông. 15.2.2 Mô hình hệ thống điều khiển đèn tín hiệu giao thông bằng công nghệ Agent Hệ thống điều khiển đèn tín hiệu giao thông đô thị đưa ra ở đây có cấu trúc phân tán hoàn toàn, được thực hiện dưới dạng một hệ multi-agent, trong đó việc điều khiển tại mỗi nút giao thông do một agent đảm nhiệm. Thực chất, mỗi agent ở đây là một bộ điều khiển thích nghi, có khả năng nhận biết tình hình giao thông thực tế để đưa ra quyết định điều khiển một cách thông minh. Ví dụ, một agent có thể dựa vào lượng giao thông thực tế tại các làn đường mà đưa ra quyết định về thời gian mở đèn xanh, sử dụng lý thuyết logic mờ . © 2005, Hoàng Minh Sơn
- 103 A1.0 A1.2 A1.4 A1.6 A1.8 1 0 2 4 6 8 A3.0 A3.2 A3.4 A3.6 A3.8 3 A5.1 A5.2 A5.4 A5.6 A5.8 5 Hình 15-2: Mô hình hệ thống ₫iều khiển tín hiệu giao thông Mô hình hệ thống được minh họa đơn giản hóa trên Hình 15-2. Các đường Đông-Tây được đánh số lẻ và các đường Bắc-Nam được đánh số chẵn. Các agent điều khiển nút (Ax.y) thuộc một tuyến đường được nối mạng với nhau thành một nhóm. Như vậy, một agent điều khiển nút thông thường thuộc hai nhóm khác nhau ứng với hai tuyến đường. Trong điều kiện thông thường, giữa các agent lân cận có sự giao tiếp và phối hợp hoạt động để đạt được mục tiêu đề ra là tối ưu khả năng lưu thông trên một tuyến đường. Ví dụ, A3.4 có thể hợp tác với A3.2, A3.6, A1.4 và A.5.4. Trường hợp có sự cố trong giao tiếp xảy ra (ví dụ do sự cố mạng), mỗi agent phải có khả năng chuyển từ chế độ hợp tác sang chế độ hoạt động hoàn toàn độc lập. Khi đó, mỗi agent không có thông tin hỗ trợ từ các agent khác, mà phải tự nhận biết tình huống để phán đoán và khai thác thông tin. Điều khiển làn sóng xanh là một ví dụ tiêu biểu. Trong trường hợp bình thường, các agent trên cùng một tuyến đường một chiều có thể trao đổi thông tin về thời điểm mở đèn xanh để tạo ra khả năng lưu thông tốt nhất. Tuy nhiên, khi có sự cố xảy ra về mặt giao tiếp, mỗi agent sẽ phải tự nhận biết mẫu lưu lượng giao thông thông qua các thiết bị đo để ra quyết định phối hợp mở đèn xanh. Có thể thấy rằng, việc tối ưu hóa toàn cục cho hệ thống bằng phương pháp tĩnh cũng như phương pháp động nhưng tập trung là một bài toán không thể giải được đối với một hệ phân tán có cấu trúc và tham số thay đổi. Ngược lại, việc tối ưu hóa cục bộ cho từng nút giao thông không thể mang lại hiệu quả cao nhất cho toàn hệ thống. Giống như trong một nền kinh tế thị trường, vấn đề trọng tâm ở đây là khả năng tự học, tự thích nghi và hợp tác giữa các agent điều khiển nút để có thể cùng nhau đạt được mục tiêu chung một cách tốt nhất cho cả hệ thống. Điều khiển thông minh mang đến khả năng linh hoạt rất lớn cho hệ thống đèn tín hiệu và đem lại sự thuận tiện tối ưu cho hệ thống giao thông. Ứng dụng trí tuệ phân tán và công nghệ agent, multi-agent vào trong các hệ thống © 2005, Hoàng Minh Sơn
- 104 điều khiển phân tán nói chung và các hệ thống giao thông nói riêng là một hướng nghiên cứu có nhiều triển vọng. 15.3 Điều khiển và giám sát các hệ thống sản xuất và cung cấp điện Hệ thống sản xuất và cung cấp điện cũng là một ví dụ điển hình một hệ thống phân tán qui mô lớn, do đó việc áp dụng các phương pháp điều khiển phân tán sẽ mang lại hiệu quả tốt. Một số vấn đề lớn được đặt ra: • Điều khiển cục bộ từng nhà máy điện, từng khu vực và điều khiển phối hợp trong một hệ thống điện lưới quốc gia • Tối ưu hóa cục bộ và tối ưu hóa toàn cục (chất lượng và hiệu quả kinh tế) • Truyền thông đường dài • Tính ngẫu nhiên, tính bất định, tính hỗn hợp của hệ thống. Một số hướng giải pháp là: • Sử dụng công nghệ tác tử và đa tác tử cho điều khiển cục bộ và phối hợp hoạt động trong toàn hệ thống • Công nghệ truyền thông qua đường dây tải điện • Công nghệ Web cho chức năng điều khiển giám sát. • © 2005, Hoàng Minh Sơn
- TÀI LIỆU THAM KHẢO [1] Martin Fowler, Kendall Scott: UML Distilled: A Brief Guide to the Standard Object Modeling Language (2nd Edition). Addison-Wesley, 1999. [2] James Rumbaugh, Iva Jacobson, Grady Booch: The unified modeling language reference manual. Addison Wesley 1999. (*) [3] Erich Gamma et. al.: Design Patterns — Elements of Reuseable Object- Oriented Software. Addision- Wesley, 1995. [4] OMG: CORBA — Specification. www.omg.org (*) [5] Microsoft Corp.: “DCOM- Technical Overview”. White Paper. MSDN- Library. (*) [6] Microsoft Corp.: “Dr. GUI on Components, COM, and ATL”. MSDN Selected Online Column. (*) [7] OPC Foundation: OPC — Data Access Custom Interfaces Specification 2.0. www.opcfoundation.org. (*) [8] OPC Foundation: OPC — Data Access Automation Interfaces Specification 2.0. www.opcfoundation.org (*) [9] Đặng Anh Việt, Bùi Quang Việt: Xây dựng phần mềm khung cho giải pháp ₫iều khiển trên nền PC. Đồ án tốt nghiệp, BM Điều khiển Tự động, Đại học Bách khoa Hà Nội, 5/2002. [10] Tạp chí Tự ₫ộng hóa ngày nay. [11] Chuẩn IEC-61131-3 và IEC-61499: www.holobloc.com (*) [12] Trang Web về IEC-61131-3: www.plcopen.org [13] Các tài liệu sản phẩm DCS của một số hãng (*) (*): Có trong đĩa CD tài liệu kèm theo bài giảng.



