U
N PHÂN TÁN Lecture Notes 8/2003) ư a c ậ ậ p nh ậ ật t ừ ừ 8/2003) (Ch ư
TS. Hoàng Minh Sơ n
Ự ĐỘNG, KHOA ĐIỆN BỘ MÔN ĐIỀU KHIỂN T Ự ĐỘ ĐẠ I HỌC BÁCH KHOA HÀ NỘI
CL 1
NH Ậ P MÔN Phạ m vi đề cậ p 1.1 Nội dung chươ ng ng trình 1.2 1.3 Yêu cầ u kiế n thứ c cơ sở 1.4 T ổng quan các gi ả i pháp điều khi ển n ng dụng điều khiển 1.4.1 Đặ c tr ư ưng g các lĩnh v ự ực ứ ng Các hệ thống điều khiển công nghiệp 1.4.2
2
C Ấ U TRÚC CÁC H Ệ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT Cấ u trúc và các thành ph ầ n cơ bả n 2.1 Mô hình phân c ấ p 2.2 Cấ p chấ p hành 2.2.1 Cấ p điều khiển 2.2.2 Cấ p điều khiển giám sát 2.2.3 Cấ u trúc điều khiển 2.3 2.3.1 Điều khiển t ậ ập trung Điều khiển t ậ ập trung v ớ ới vào/ra phân tán 2.3.2 2.3.3 Điều khiển phân tán 2.3.4 Điều khiển phân tán v ớ ới vào/ra phân tán
8 8 9 10 10 10 11 11 12 12 13
3
CÁC THÀNH PH Ầ N CỦ A MỘ T HỆ ĐIỀU KHIỂN PHÂN TÁN Cấ u hình c ơ bả n 3.1 3.1.1 Tr ạ ạm điều khiển cục bộ Bus tr ườ ng và các tr ạ 3.1.2 ườ ng ạm vào/ra t ừ ừ xa ạm v ậ ậ n hành 3.1.3 Tr ạ ạm k ỹ thuậ t và các công cụ phát triển 3.1.4 Tr ạ Bus hệ thống 3.1.5 Phân loạ i các hệ DCS 3.2 Các hệ DCS truy ền thống 3.2.1 Các hệ DCS trên n ền PLC 3.2.2 Các hệ DCS trên n ền PC 3.2.3 Các v ấ 3.3 ấn đề k ỹ thuậ t
15 15 15 17 18 19 20 21 21 22 25 26
4
X Ử Ử LÝ THỜ I GIAN THỰ C VÀ X Ử Ử LÝ PHÂN TÁN Một số khái niệm cơ bả n 4.1 Hệ thống thờ i gian thự c 4.1.1 ử lý thờ i gian thự c 4.1.2 X ử Hệ điều hành thờ i gian thự c 4.1.3 ử lý phân tán 4.1.4 X ử Các kiế n trúc x ử 4.2 ử lý phân tán Cơ chế giao tiế p 4.3 Đồng bộ hóa trong x ử ử lý phân tán 4.4
27 27 27 27 28 29 30 31 32
5 5 5 5 6 6 6
4.4.1 4.4.2
2 32 32
Đồng bộ hóa các tín hiệu vào/ra Đồng bộ hóa thờ i gian
5
CÔNG NGH Ệ ĐỐI T ƯỢ NG TRONG ĐIỀU KHIỂN PHÂN TÁN ƯỢ NG L ậ ng đối t ượ ng 5.1 ập trình hướ ng ượ ng Phân tích và thiế t k ế ng đối t ượ ng ế hướ ng ượ ng 5.2 Ngôn ng ữ mô hình hóa th ống nhấ t UML 5.2.1 Mẫ u thiế t k ế 5.2.2 ế Phầ n mềm khung 5.2.3 Phầ n mềm thành ph ầ n 5.3 ng phân tán Đối t ượ ượ ng 5.4
33 33 33 34 35 35 36 37
6
KIẾN TRÚC ĐỐI T ƯỢ NG PHÂN TÁN ƯỢ NG 6.1 Yêu cầ u chung Các mẫ u thiế t k ế 6.2 ế Giớ i thiệu chuẩ n CORBA 6.3 Giớ i thiệu chuẩ n COM/DCOM 6.4 Giao diện 6.4.1 Đối t ượ ượ ng ng COM 6.4.2 Giao tiế p giữ a client và object 6.4.3 Ngôn ng ữ mô t ả 6.4.4 ả giao diện Mô hình đối t ượ ng thành ph ầ n phân tán DCOM 6.4.5 ượ ng
38 38 38 39 40 41 41 44 46 46
7
CÁC MÔ HÌNH Ứ NG NG DỤNG ĐIỀU KHIỂN PHÂN TÁN IEC-61131 7.1 Mô hình ph ầ n mềm 7.1.1 Mô hình giao ti ế p 7.1.2 IEC-61499 7.2 Mô hình hệ thống 7.2.1 Mô hình thi ế t bị 7.2.2 Mô hình tài nguyên 7.2.3 Mô hình ứ ng ng dụng 7.2.4 Mô hình kh ối chứ c nă ng ng 7.2.5 Mô hình phân tán 7.2.6 Mô hình quả n lý 7.2.7 Mô hình tr ạ n t động 7.2.8 ạng g thái hoạ t
48 48 48 49 51 51 52 52 53 54 56 56 56
8
MỘ T SỐ CHU Ẩ N GIAO TI ẾP CÔNG NGHI ỆP MMS 8.1 IEC-61131-5 8.2 Mô hình giao ti ế p mạ ng ng 8.2.1 Dịch v ụ giao tiế p 8.2.2 Các khối chứ c nă ng ng giao ti ế p 8.2.3 OPC 8.3 8.3.1 T ổng quan v ề kiế n trúc OPC
58 58 60 60 61 62 63 63 © 2005, Hoàng Minh S ơ n
OPC Custom Interfaces OPC Automation Interface 8.3.3 Ngôn ngữ đ ữ đánh dấ u khả mở XML 8.4 Giớ i thiệu chung 8.4.1 ng dụng XML trong ph ầ n mềm khung iPC 8.4.2 Ứ ng
3 65 66 67 67 68
MÔ T Ả HỆ THỐNG ĐIỀU KHIỂN PHÂN TÁN Các phươ ng ng pháp mô t ả đồ 9.1 ả đồ họa L ư 9.2 ưu đồ P&ID Chuẩ n ISA S5.1 9.2.1 Chuẩ n ISA S5.3 9.2.2 Mô hình hóa h ướ ng ng đối t ượ ng 9.3 ượ ng
70 70 71 71 75 77
L Ậ P TRÌNH ĐIỀU KHIỂN PHÂN TÁN 10.1 L ậ ập trình theo chu ẩ n IEC 61131-3 10.1.1 Kiểu dữ liệu ng trình 10.1.2 T ổ chứ c chươ ng 10.1.3 Ngôn ng ữ FBD 10.1.4 Ngôn ng ữ ST 10.1.5 Ngôn ng ữ SFC 10.2 L ậ ập trình v ớ ới ngôn ngữ bậ c cao
78 78 79 81 83 84 85 85
CHỨ C N Ă NG 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 ng cơ bả n 11.1.1 Các thành ph ầ n chứ c nă ng 11.1.2 Công c ụ phầ n mềm SCADA/HMI ng cấ u trúc hệ thống 11.2 Xây dự ng i-máy 11.3 Thiế t k ế ế giao diện ngườ i-máy 11.3.1 Yêu c ầ u chung ng pháp giao ti ế p ngườ i-máy i-máy 11.3.2 Các phươ ng 11.3.3 Thiế t k ế ế cấ u trúc màn hình ắc thiế t k ế ế 11.3.4 Các nguyên t ắ
87 87 88 89 91 92 92 92 92 93
TÍNH S Ẵ N SÀNG VÀ ĐỘ TIN C Ậ Y CỦ A CÁC H Ệ ĐKPT 12.1 Đặ t v ấ ấn đề 12.2 Cơ chế dự phòng 12.3 Cơ chế an toàn 12.4 Cơ chế khở i động lạ i sau sự cố 12.5 Bả o mậ t 12.6 Bả o trì
94 94 94 95 95 95 95
Đ Á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 ng 13.1.1 Phạ m vi chứ c nă ng 13.1.2 Cấ u trúc h ệ thống và các thi ế t bị thành phầ n ng mở 13.1.3 Tính n ă ng
97 97 97 97 97
8.3.2
9
10
11
12
13
© 2005, Hoàng Minh S ơ n
Phát triển hệ thống y và tính s ẵ n sàng 13.1.5 Độ tin cậ 13.1.6 Giá thành, chi phí ớ i các giả i pháp khác 13.2 So sánh giả i pháp DCS tích h ợ p tr ọn v ẹn v ớ 13.1.4
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
14
4 97 98 98 98 100 100 100 100 100 100
MỘ T SỐ HƯỚ NG NG NGHIÊN C Ứ U VÀ Ứ NG NG DỤNG 101 ạo phân tán 101 15.1 Trí tu ệ nhân t ạ 102 15.2 Điều khiển và giám sát các h ệ thống giao thông 102 15.2.1 Đặ t v ấ ấn đề ng công 15.2.2 Mô hình h ệ thống điều khiển đèn tín hiệu giao thông b ằ ng nghệ Agent 102 104 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
15
TÀI LI ỆU THAM KH Ả O
105
© 2005, Hoàng Minh S ơ n
5
NH P MÔN
1 1.1
Ph m vi đề
Phạ m vi đề cậ p của môn H ệ ệ th ố ống ng ₫ i iề ề u khi ể ển phân tán là các hệ thống t ự ự động hoá hiện đạ i có cấ u trúc phân tán trong công nghi ệp cũng như trong nhiều l ĩnh v ự ng trên cơ sở ứ ng d ụng các tiế n b ộ ực khác. Môn h ọc đượ c xây dự ng ở ứ ng mớ i nhấ t của k t điều khiển, k ỹ thuậ t ỹ thuậ t truy ền thông công nghi ệp, công nghệ phầ n mềm vào trong các hệ thống điều khiển và giám sát. Mục đích của môn học cho sinh viên làm quen v ớ ớ i c ấ u trúc và các thi ế t b ị phầ n c ứ ng ng c ũng như các thành phầ n ph ầ n m ềm c ủa các hệ thống điều khiển và giám sát hiện đạ i, i, nắ m đượ c các nguyên t ắ ắc và phươ ng ng pháp cơ bả n cho hướ ng ng giả i quy ế ết nhữ ng ng bài toán th ườ ng ng đượ c đặ t ra trong th ự c t ế ế như thiế t t k ế ế cấ u trúc hệ thống, tích hợ p hệ thống, đư a vào v ậ ận hành và chẩ n đoán hệ thống. Bên cạ nh nh đó, môn h ọc đư a ra các hướ ng ng nghiên cứ u lý thuy ế ng ết và ứ ng dụng m ớ i, i, t ạ ạo c ơ sở cho các sinh viên muốn ti ế p t ục h ọc và nghiên cứ u ở các bậ c sau đạ i học. 1.2
i dung chương trình
Nội dung bài gi ả ng ng bao g ồm các chủ đề chính sau: Cấ u trúc các h ệ thống điều khiển và giám sát: Mô hình phân c ấ p, p, các thành phầ n chứ c nă ng ng cơ bả n, n, mô t ả ả hệ thống Cơ sở tin học: X ử ng đối t ượ ng, phầ n mềm ử lý phân tán, công ngh ệ hướ ng ượ ng, thành phầ n Các hệ thống điều khiển phân tán truy ền thống (DCS): C ấ u trúc h ệ thống, các thành ph ầ n hệ thống, phươ ng ng pháp phát tri ển hệ thống, giớ i thiệu một số hệ DCS tiêu bi ểu. Các hệ thống điều khiển phân tán trên n ền PLC (PLC-based DCS) Các hệ thống điều khiển phân tán trên n ền PC (PC-based DCS) Hệ thống điều khiển giám sát và thu th ậ p d ữ liệu (SCADA): C ấ u trúc hệ thống, công cụ phầ n mềm, thiế t k ế ế giao diện ngườ i-máy i-máy Các chuẩ n giao tiế p công nghi ệp: MMS, OPC, XML Các hướ ng ng nghiên cứ u và ứ ng ng dụng. •
•
•
• • •
• •
1.3
Yêu c u ki n th c c
Phầ n l ớ n n ội dung các bài giả ng ng mang tính ch ấ t t ổng h ợ p, p, liên môn, giành cho sinh viên n ă m cu ối. Bên cạ nh nh các môn c ơ sở chuyên ngành, yêu c ầ u h ọc viên phả i nắ m v ữ ững n g kiế n thứ c cơ bả n trong các môn h ọc sau: Điều khiển số Mạ ng ng truy ền thông công nghi ệp K ỹ thuậ t lậ p trình C++ (h ướ ng ng đối t ượ ượ ng) ng) • • •
© 2005, Hoàng Minh S ơ n
6 1.4
ng quan các gi i pháp
1.4.1
Đặc tr ng các l nh v
u khi
ng d ng
u khi
Khi xây dự ng ng m ột gi ả i pháp điều khiển, ta ph ả i quan tâm t ớ ới qui mô và đặ c thù của lĩnh v ự ng dụng. Một vài lĩnh v ự ng dụng tiêu bi ểu và các giả i ực ứ ng ực ứ ng pháp điều khiển đặ c thù t ươ ng ứ ng ng đượ c tóm t ắ ươ ng ắt dướ i đây. Điều khiển các thiế t bị và máy móc đơ n lẻ (công nghiệp và gia dụng): Các máy móc, thiế t bị đượ c sả n xuấ t hàng loạ t, t, vì v ậ ậ y yêu cầ u đầ u t ư ư cho giả i pháp điều khiển phả i thậ t tiế t kiệm (chươ ng ng trình nh ỏ, t ốn ít b ộ nhớ ). ). Các bài toán điều khiển có th ể r ấ ất khác nhau, t ừ đ ừ điều khiển logic t ớ ới điều khiển phả n hồi, điều khiển chuy ển động, điều khiển mờ ,… ,… Các giả i pháp điều khiển tiêu bi ểu là điều khiển nhúng (μP, μC), CNC, PLC,... T ự độ c : ự động hóa công nghiệp, đượ c chia ra hai lĩnh v ự ực: Công nghiệp chế biế n, n, khai thác: Các bài toán điều khiển tiêu bi ểu là điều khiển quá trình ( process control ), điều khiển trình t ự ự (sequence ), bên cạ nh nh điều khiển logic. Các thi ế t bị đượ c dùng ph ổ biế n là control ), PLC, DCS, (I)PC, Compact Digital Controllers. Công nghiệp chế t ạ o ạo, , lắ p ráp: Các bài toán điều khiển tiêu bi ểu là điều khiển logic, điều khiển chuy ển động, điều khiển sự kiện r ờ c . Các thiế t t ời r ạ ạc. bị đượ c dùng chủ y ế ế u là PLC, CNC, PC. Nay các h ệ DCS cũng tìm đượ c một số ứ ng ng dụng trong l ĩnh v ự ực này. Điều khiển các hệ thống giao thông, v ậ ận t ả ải:i : Đặ c thù là các bài toán điều khiển logic, điều khiển sự kiện r ờ ời r ạ ạc. c. Các thiế t bị đượ c dùng là PLC, DCS, PC, μP, μC,... Điều khiển các hệ thống phân phối nă ng ng lượ ng ng (dầ u khí, gas, điện): K ế ế t t hợ p giữ a các bài toán điều khiển quá trình v ớ ới điều khiển sự kiện r ờ ời r ạ ạc, c , điều khiển logic, sử dụng PLC, DCS, IPC,... T ự độ l e, PLC, μp, μC,... ự động hóa tòa nhà: R ơ ơle, Điều khiển và giám sát các h ệ thống quốc phòng: IPC, μP, μC, DSP và các thiế t bị đặ c chủng khác. ng: PLC, IPC, ... Điều khiển và giám sát các hệ thống thủ y lợ i,i, môi tr ườ ườ ng: ... •
• •
•
•
•
• •
• •
1.4.2
Các h th ng
u khi n công nghi
Chươ ng ng trình h ọc đặ t tr ọng tâm vào các giả i pháp điều khiển công nghi ệp, chia làm hai lĩnh v ự ng dụng cơ bả n: n: ực ứ ng Công nghiệp chế biế n, n, khai thác (Process Industry): D ầ u khí, hóa d ầ u, u, hóa m ỹ phẩ m, m, dượ c phẩ m, m, xi mă ng, ng, giấ y, ... Công nghiệp ch ế t ạ ạo, o , l ắ p ráp (Manufactoring Industry): Công nghi ệp ôtô, máy công cụ, công nghiệp điện t ử ử, vi điện t ử ử, thiế t bị dân dụng,... •
•
© 2005, Hoàng Minh S ơ n
7 TỰ ĐỘNG HÓA QUÁ TRÌNH (Công nghiệp chế biến, khai thác)
TỰ ĐỘNG HÓA XÍ NGHIỆP (Công nghiệp chế tạo, lắp ráp)
Các bộ điều chỉnh cư
Các thiết bị cơ khí
Thiết bị điều chỉnh PID khí nén (1920-1930)
Rõle điện – cơ, (1920)
Thiết bị điều chỉnh PID điện tử (1940-1950) Điều khiển số tr ực tiếp (DDC, 1965-1975)
Bộ điều chỉnh số gọn (CDC, 1980)
Các mạch logic lập trình cứng (PLD, 1960) Thiết bị điều khiển khả trình (PLC, 1970)
Hệ ĐKPT tích hợp (DCS, 1975)
PC công nghiệp (IPC) PC-104, CompactPCI, SBC (PC-based Control)
PLC-based DCS
PLC mềm (Soft-PLC, 1996)
PC-based DCS Hệ điều khiển lai Hệ điều khiển tr ườ ường (FCS, 2000)
Hình 1-1:
L ị ịch c h s ử iề u n ử phát tri ể ển các gi ả ải pháp ₫ i ề khi ể ển
© 2005, Hoàng Minh S ơ n
8
U TRÚC CÁC H TH NG GIÁM SÁT
2
2.1
U KHI N VÀ
u trúc và các thành ph n c
Các thành ph ầ n c ơ bả n c ủa m ột h ệ thống điều khiển và giám sát quá trình đượ c minh họa trên Hình 2-1. Các c ả m biế n và cơ cấ u chấ p hành đóng vai trò là giao diện gi ữ a các thiế t b ị điều khiển v ớ t. Trong khi đó, ới quá trình k ỹ thuậ t. hệ thống điều khiển giám sát đóng vai trò giao di ện giữ a ngườ i v ậ ận hành và máy. Các thiế t bị có thể đượ c ghép n ối tr ự ực tiế p điểm-điểm, hoặ c thông qua mạ ng ng truy ền thông. Hệ thố thống điều khiể khiển giám sát
NI
Thiế Thiết bị bị điều khiể khiển tự tự động động
NI
I/O
I/O
NI NI
nối tr ự ực ti ế ế p nối qua mạng
NI NI
Cảm biế biến và chấ chấp hành
NI
I/O
network interface (giao di ện mạng) input/output (vào/ra)
Quá trình kỹ kỹ thuậ thuật Hình 2-1: Các thành ph ầ n iề u ần c ơ ơ b ả ản c ủ ủa m ộ ột h ệ ệ th ố ống g ₫ i ề khi ể ển và giám sát
Tùy theo loạ i cả m biế n, n, tín hiệu của chúng đư a ra có thể là tín hi ệu nhị phân, tín hi ệu số hay tín hiệu t ươ ươ ng ng t ự ự theo các chuẩ n điện học thông dụng khác nhau (1..10V, 0..5V, 4..20mA, 0..20mA, v.v...). Tr ướ c khi có th ể x ử ử lý trong máy tính s ố, các tín hiệu đo c ầ n đượ c chuy ển đổi, thích ứ ng ng v ớ ớ i chuẩ n giao diện vào/ra c ủa máy tính. Bên cạ nh nh đó, ta c ũng c ầ n các biện pháp cách ly điện học để tránh sự ả nh hưở ng ng x ấ ự ả nh ấu lẫ n nhau giữ a các thiế t bị. Đó chính là các chứ c nă ng ng của các module vào/ra (I/O). Tóm l ạ i, i, một hệ thống điều khiển và giám sát bao gồm các thành phầ n chứ c nă ng ng chính sau đây: Giao diện quá trình: Các c ả m biế n và cơ cấ u chấ p hành, ghép n ối vào/ra, chuy ển đổi tín hi ệu. •
© 2005, Hoàng Minh S ơ n
9 •
•
•
•
2.2
Thiế t bị điều khiển t ự ự động: Các thi ế t bị điều khiển như các bộ điều khiển chuyên dụng, bộ điều khiển khả trình PLC ( programmable logic controller ), ), thiế t bị điều chỉnh số đơ n l ẻ (compact digital controller ) và máy tính cá nhân cùng v ớ ới các phầ n mềm điều khiển t ươ ươ ng ng ứ ng. ng. Hệ thống điều khiển giám sát: Các thi ế t b ị và phầ n m ềm giao diện ng ườ i máy, các tr ạ ạm k ỹ thuậ t, t, các tr ạ ạ m v ậ ận hành, giám sát và điều khiển cao cấ p. p. Hệ thống truy ền thông: Ghép n ối điểm-điểm, bus cả m biế n/ch n/chấ p hành, bus tr ườ ng, bus hệ thống. ườ ng, Hệ thống bả o v ệ, cơ chế thự c hiện chứ c nă ng ng an toàn.
Mô hình phân c
Càng ở nhữ ng ng c ấ p d ướ i thì các chứ c n ă ng ng càng mang tính ch ấ t c ơ bả n h ơ n và đòi hỏi yêu cầ u cao hơ n v ề độ nhanh nhạ y, thờ i gian ph ả n ứ ng. ng. Một chứ c nă ng ng ở cấ p trên đượ c thự c hiện dự a trên các chứ c nă ng ng cấ p dướ i, i, tuy không đòi hỏi thờ i gian phả n ứ ng ng nhanh như ở cấ p dướ i, i, như ng ng ngượ c lạ i lượ ng ng thông tin c ầ n trao đổi và x ử ng, ngườ i ta chỉ ử lý lạ i lớ n hơ n nhiều. Thông th ườ ng, coi ba cấ p d ướ i thuộc ph ạ m vi của m ột h ệ thống điều khiển và giám sát. Tuy nhiên, biểu thị hai cấ p trên cùng (qu ả n lý công ty và điều hành s ả n xuấ t) t) trên giúp ta hi ểu thêm một mô hình lý t ưở ng cho cấ u trúc chứ c n ă ng ng t ổng thể cho ưở ng các công ty sả n xuấ t công nghi ệp. Tính toán giá thành, lãi suấ su ất thố thống kê số số liệ liệu sả sản xuấ xuất, kinh doanh, xử lý đơn đơn đặt đặt hàng, kế kế hoạ hoạch tài nguyên Đánh Đánh giá kế kết quả quả, lậ lập kế kế hoạ hoạch sả sản xuấ xuất, bả bảo dưỡ dưỡng ng máy móc, tính toán tố tối ưu hoá sả sản xuấ xuất Giám sát, vậ vận hành, Đi Điều khiể khiển cao cấ cấp, Lập báo cáo Đi Điều khiể khiển, điều chỉ chỉ nh, nh, bảo vệ vệ, an toàn ghi chép tườ tường ng trình Đo Đo lườ lường, ng, truyề truyền động, động, chuyể chuyển đổi đổi tín hiệ hiệu
QL công ty Điều hành sản xuất
Điều khiển giám sát Cấp điều khiể khiển quá trình
Điều khiển Cấp tr ường ường
Chấp hành
Quá trình kỹ kỹ thuậ thuật Hình 2-2: Mô hình phân c ấ n n iề u n ấ p ch ứ ứ c n ă ăng g c ủ ủa m ộ ột h ệ ệ th ố ống g ₫ i ề khi ể ển và giám sát
© 2005, Hoàng Minh S ơ n
10 2.2.1
p ch p hành
Các chứ c nă ng ng chính của c ấ ng, truy ền động và ấ p ch ấ p hành là hành là đo lườ ng, chuy ển đổi tín hi ệu trong tr ườ ng hợ p cầ n thiế t. t. Thự c t ế ườ ng ế, đa số các thiế t bị cả m biế n (sensor ) hay cơ cấ u chấ p hành (actuator (actuator ) cũng có ph ầ n điều khiển riêng cho việc th ự c hi ện đo l ườ ng/truy ng/truy ền động đượ c chính xác và nhanh nhạ y. Các thiế t b ị thông minh1 cũng có thể đả m nh ậ n vi ệc x ử ử lý thô thông tin, tr ướ ướ c khi đư a lên cấ p điều khiển. 2.2.2
u khi
ấ p ₫ i iề ề u khi ể ển là n là nhậ n thông tin t ừ Nhiệm v ụ chính của c a c ấ ừ các cả m biế n, n, x ử ử lý các thông tin đó theo m ột thuậ t toán nh ấ t t định và truy ền đạ t lạ i k ế ết quả xuống các cơ cấ u ch ấ p hành. Khi còn điều khiển th ủ công, nhiệm v ụ đó đượ c ngườ i đứ ng ng máy tr ự ực ti ế p đả m nhiệm qua việc theo dõi các công c ụ đo l ườ ng, ng, sử dụng kiế n th ứ c và kinh nghi ệm để thự c hi ện nh ữ ng ng thao tác c ầ n thiế t nh ư t, núm xoay v.v... Trong m ột h ệ thống ấ n nút đóng/mở van, điều ch ỉnh c ầ n g ạ t, ng nhiệm v ụ đó đượ c điều khiển t ự độ ự động hiện đạ i,i, việc thự c hiện thủ công nhữ ng thay thế bằ ng ng máy tính. 2.2.3
u khi n giám sát
Cấ p điều khiển giám sát có chứ c n ă ng ng giám sát và v ậ ận hành một quá trình k t. Khi đa s ố các chứ c n ă ng ng như đ ng, điều khiển, điều ch ỉnh, bả o ỹ thuậ t. ư đo l ườ ng, toàn hệ thống đượ c các cấ p c ơ sở thự c hi ện, thì nhi ệm v ụ của c ấ p điều khiển giám sát là hỗ tr ợ t ứ ng ng dụng, thao tác, theo ợ ngườ i sử dụng trong vi ệc cài đặ t dõi, giám sát v ậ ng tình hu ống bấ t th ườ ng. ng. Ngoài ra, trong ận hành và x ử ử lý nhữ ng một số tr ườ ng hợ p, p, cấ p này còn th ự c hiện các bài toán điều khiển cao cấ p ườ ng như đ p, điều khiển trình t ự ư điều khiển phối h ợ p, ự và điều khiển theo công th ứ c (ví dụ trong chế biế n dượ c phẩ m, m, hoá chấ t). t). Khác v ớ ới các cấ p dướ i,i, việc thự c hiện các chứ c nă ng ng ở cấ p điều khiển giám sát th ườ ng ng không đòi hỏi phươ ng ng tiện, thiế t bị phầ n cứ ng ng đặ c biệt ngoài các máy tính thông th ườ ng ng (máy tính cá nhân, máy tr ạ m ạm, , máy chủ, termimal,...). Như ta sẽ thấ y, phân cấ p chứ c nă ng ng như trên sẽ tiện lợ i cho việc thiế t k ế ế hệ thống và lự a chọn thiế t bị. Trong th ự c t ế ứ ng dụng, sự phân cấ p chứ c nă ng ng có ế ứ ng thể khác một chút so v ớ ới trình bày ở đây, tùy thu ộc vào mứ c độ t ự ự động hoá và cấ u trúc hệ thống cụ thể. Trong nh ữ ng ng tr ườ ng h ợ p ứ ng ng d ụng đơ n gi ả n nh ư ườ ng điều khiển trang thi ế t bị dân dụng (máy giặ t, t, máy lạ nh, nh, điều hòa độ ẩ m,...), m,...), sự phân chia nhiều cấ p có th ể hoàn toàn không c ầ n thiế t. t. Ngượ c lạ i, i, trong t ự ự động hóa một nhà máy lớ n hiện đạ i như đ ư điện nguyên t ử ử, sả n xuấ t xi mă ng, ng, lọc dầ u, u, ta có th ể chia nhỏ hơ n nữ a các cấ p chứ c nă ng ng để tiện theo dõi.
ử lý thông tin. Thự c t ế ế , mỗi thiế t bị Một thiế t bị đượ c gọi là thông minh, khi nó có kh ả nă ng ng x ử ử lý riêng. thông minh phả i có ít nhấ t một bộ vi x ử 1
© 2005, Hoàng Minh S ơ n
11
u trúc
2.3
u khi
Biế n thể của cấ u trúc cơ bả n trên Hình 2-1 tìm th ấ y trong các giả i pháp thự c t ế ng điều khiển cũng như ở ế khác nhau ở sự phân bố chứ c nă ng ư ở sự phân bố v ị trí các máy tính quá trình và ph ụ kiện đượ c l ự a ch ọn. C ă n c ứ vào đó, ta có thể phân biệt gi ữ a c ấ u trúc điều khiển t ậ ập trung và c ấ u trúc điều khiển phân tán, cấ u trúc vào/ra t ậ ập trung và c ấ u trúc vào/ra phân tán.
u khi n t p trung
2.3.1
Cấ u trúc tiêu bi ểu của một hệ điều khiển t ậ (centralized control ập trung (centralized t đượ c dùng để system ) đượ c minh họa trên Hình 2-3. M ột máy tính duy nh ấ t t. Máy tính điều khiển ở đây (MT ĐK) có điều khiển toàn bộ quá trình k ỹ thuậ t. thể là các bộ điều khiển số tr ự ực tiế p (DDC), máy tính l ớ n, n, máy tính cá nhân hoặ c các thiế t bị điều khiển khả trình. Trong điều khiển công nghiệp, máy tính điều khiển t ậ ng đượ c đặ t t ạ ập trung thông th ườ ng ại phòng điều khiển trung tâm, cách xa hiện tr ườ ng. Các thi ế t bị cả m biế n và cơ cấ u chấ p hành đượ c nối ườ ng. tr ự p, điểm-điểm v ớ ực tiế p, ới máy tính điều khiển trung tâm qua các c ổng vào/ra của nó. Cách bố trí vào/ra t ạ ại máy tính điều khiển như v ậ ậ y cũng đượ c gọi là ). vào/ra t ậ ậ p trung ( trung (central I/O ). MTĐK
Phòng điều khiể khiển trung tâm
I/O
Hiệ Hiện tr ường ường
A
S
Phân đoạn 1
A
A
S
Phân đoạn n
Phân đoạn 2 I/O: inp input/output
S
A: actuator tor
S: sensor
Hình 2-3: C ấ i ề ấ u trúc ₫ i ều khi ể ển t ậ ậ p trung v ớ ới vào/ra t ậ ậ p trung
Đây là cấ u trúc điều khiển tiêu bi ểu trong nhữ ng ng nă m 1965-1975. Ngày nay, cấ u trúc t ậ ng thích h ợ p cho các ứ ng ng d ụng t ự ập trung trên đây thườ ng ự động hóa qui mô v ừ ừa và nhỏ, điều khiển các loạ i máy móc và thiế t bị bở i sự đơ n giả n, n, dễ thự c hiện và giá thành một lầ n cho máy tính điều khiển. Điểm đáng chú ý ở đây là sự t ậ ng x ử ập trung toàn b ộ “trí tuệ”, t ứ ức chứ c nă ng ử lý thông tin trong một thiế t b ị điều khiển duy nhấ t. t. Tuy nhiên, c ấ u trúc này bộc l ộ nhữ ng ng hạ n chế sau: Công việc nối dây phứ c t ạ p ạp, , giá thành cao Việc mở r ộng hệ thống gặ p khó kh ă n Độ tin cậ y kém. • • •
© 2005, Hoàng Minh S ơ n
12
u khi n t p trung v i vào/ra phân tán
2.3.2
Cấ u trúc vào/ra t ậ ập trung v ớ ới cách ghép n ối điểm-điểm thể hiện một nhượ c ng lớ n các cáp n ối, dẫ n đế n giá thành cao cho dây d ẫ n điểm cơ bả n là số lượ ng và công thiế t k ế t. Một hạ n chế khác nữ a là phươ ng ng pháp truy ền dẫ n ế, lắ p đặ t. tín hiệu thông th ườ ng ng giữ a các thiế t bị tr ườ ng và thiế t bị điều khiển dễ chịu ườ ng nh hưở ng ng của nhiễu, gây ra sai số lớ n. n. V ấ ng ả nh ấn đề này đượ c khắ c phục bằ ng phươ ng ng pháp dùng bus tr ườ ng như đã nêu trong ph ầ n tr ướ c. Hình 2-4 minh ườ ng ướ c. họa một cấ u hình m ạ ng ng đơ n giả n. n. Ở đây các module vào/ra đượ c đẩ y xuống cấ p tr ườ ng gầ n k ề v ớ ườ ng ớ i các cả m biế n và cơ cấ u chấ p hành, vì v ậ ậ y đượ c gọi là các vào/ra phân tán (Distributed (Distributed I/O ) hoặ c vào/ra t ừ ừ xa (Remote I/O ).). Một cách ghép nối khác là sử dụng các cả m bi ế n và cơ cấ u chấ p hành thông minh (màu xám trên hình v ẽ), có kh ả nă ng ng n ối mạ ng ng tr ự ực tiế p không cầ n thông qua các module vào/ra. Bên cạ nh nh khả nă ng ng x ử t ử lý giao thứ c truy ền thông, các thi ế t bị này còn đả m nhiệm một số chứ c nă ng ng x ử ử lý t ạ ại chỗ như lọc nhiễu, chỉnh n định thang đo, t ự đặ ự đặ t ch ế độ ế độ, điểm làm việc, chẩ n đoán tr ạ ạng g thái,v.v... Trong nhiều tr ườ ng h ợ p, p, các thi ế t b ị có thể đả m nhiệm c ả nhiệm v ụ điều khiển đơ n ườ ng giả n. n. MTĐK Phòng Đ Phòng ĐK K trung tâm
bus tr ườ ường
Hiệ Hiện tr ường ường
I/O
I/O
S
S Hình 2-4:
A
I/O
S
A
S
A
S
C ấ i ề ấ u trúc ₫ i ều khi ể ển t ậ ậ p trung v ớ ới vào/ra phân tán
Sử dụng bus tr ườ ng và cấ u trúc vào/ra phân tán mang l ạ i các ư u điểm ườ ng sau: Tiế t kiệm dây dẫ n và công đi dây, nối dây Giả m kích thướ c hộp điều khiển T ă n ăng g độ linh hoạ t h ệ thống nhờ sử dụng các thiế t b ị có giao diện chuẩ n và khả nă ng ng ghép n ối đơ n giả n Thiế t k ế ế và bả o trì dễ dàng nhờ cấ u trúc đơ n giả n Khả nă ng ng chẩ n đoán t ốt hơ n (các thiế t bị hỏng đượ c phát hiện dễ dàng) T ă n ăng g độ tin cậ y của toàn hệ thống. • • •
• • •
2.3.3
u khi n phân tán
Trong đa số các ứ ng ng dụng có qui mô v ừ n, phân tán là tính ch ấ t cố ừa và lớ n, hữ a của hệ thống. Một dây chuy ền sả n xuấ t thườ ng ng đượ c phân chia thành nhiều phân đoạ n, n, có th ể đượ c phân bố t ạ ại nhiều v ị trí cách xa nhau. Để khắ c © 2005, Hoàng Minh S ơ n
13 phục sự phụ thuộc vào một máy tính trung tâm trong c ấ u trúc t ậ ập trung và t ă n ng ăng g tính linh ho ạ t của hệ thống, ta có thể điều khiển mỗi phân đoạ n bằ ng một hoặ c một số máy tính cục bộ, như Hình 2-5 minh h ọa.
MTGS
PHÒNG Đ PHÒNG ĐIIỀU KHIỂ KHIỂN TRUNG TÂM
MTGS bus hệ thốn
MTĐK 1
A
S
MTĐK 2
A
MTĐK n
PHÒNG Đ PHÒNG ĐIIỀU KHIỂ KHIỂN CỤ CỤC BỘ BỘ
A
S
S
HIỆ HIỆN TRƯỜ TRƯỜNG NG
Phân đoạn 1
Phân đoạn n
Phân đoạn 2
Hình 2-5: C ấ i ề ấ u trúc ₫ i ều khi ể ển phân tán v ớ ới vào/ra t ậ ậ p trung
Các máy tính điều khiển c ục bộ thườ ng ng đượ c đặ t r ả ải rác t ạ ại các phòng điều khiển/phòng điện c ủa t ừ n n, phân x ưở ng, ở v ị trí không xa v ớ ừng g phân đoạ n, ưở ng, ới quá trình k t. Các phân đoạ n có liên h ệ t ươ ng tác v ớ ỹ thuậ t. ươ ng ới nhau, vì v ậ ậ y để điều khiển quá trình t ổng hợ p cầ n có sự điều khiển phối hợ p giữ a các máy tính ng h ợ p, p, các máy tính điều khiển đượ c n ối điều khiển. Trong ph ầ n l ớ n các tr ườ ườ ng mạ ng ng v ớ ới nhau và v ớ ớ i một hoặ c nhiều máy tính giám sát (MTGS) trung tâm ệ th ố ống ng . Gi ả i pháp này d ẫ n đế n các hệ thống có c ấ u trúc điều khiển qua bus qua bus h ệ ệ ₫ i ề khi ể ển phân tán (H phân tán, hay đượ c gọi là các h ệ iề u tán (HĐKPT). ng l ạ i ở độ t Ư u th ế của c ấ u trúc điều khiển phân tán không ch ỉ dừ ng ở độ linh hoạ t cao hơ n so v ớ ng cũng như độ tin cậ y t ổng thể ới cấ u trúc t ậ ập trung. Hi ệu nă ng của h ệ thống đượ c nâng cao nhờ sự phân tán chứ c n ă ng ng xuống các cấ p d ướ i. i. Việc phân tán ch ứ c nă ng ng x ử ử lý thông tin và ph ối hợ p điều khiển có sự giám sát t ừ ng ứ ng ng dụng mớ i, i, tích ừ các tr ạ ạm v ậ ận hành trung tâm m ở ra các khả nă ng hợ p tr ọn v ẹn trong hệ thống như lậ p trình cao c ấ p, p, điều khiển trình t ự ự, điều khiển theo công th ứ c và ghép nối v ớ t. ới cấ p điều hành sả n xuấ t. 2.3.4
u khi n phân tán v i vào/ra phân tán
L ư ưu ý r ằ ằng n g Hình 2-5 ch ỉ minh họa cách ghép n ối điểm-điểm gi ữ a một máy tính điều khiển v ớ ới các cả m biế n và cơ cấ u chấ p hành, s ử dụng vào/ra t ậ ậ p trung. Tuy nhiên, ta c ũng có th ể sử dụng bus tr ườ ng để thự c hiện cấ u trúc ườ ng vào/ra phân tán nh ư trên Hình 2-6. Khi đó, máy tính điều khiển có thể đặ t t ạ ại © 2005, Hoàng Minh S ơ n
14 phòng điều khiển trung tâm hoặ c t ạ ại các phòng điều khiển cục bộ, tùy theo qui mô của hệ thống và khả nă ng ng kéo dài c ủa bus tr ườ ng. ườ ng. Giả i pháp sử dụng các hệ điều khiển phân tán v ớ ới cấ u trúc vào/ra phân tán và các thiế t bị tr ườ ng thông minh chính là xu h ướ ng ng trong xây d ự ng ng các ườ ng hệ thống điều khiển và giám sát hi ện đạ i. i. Bên cạ nh nh độ tin cậ y cao, tính nă ng ng mở và độ linh hoạ t cao thì y ế ếu t ố kinh t ế ế cũng đóng vai trò quan tr ọng. Việc phân tán chứ c n ă ng ng x ử ng điều khiển theo bề r ộng c ũng ử lý thông tin, ch ứ c n ă ng như theo chiều sâu là tiền đề cho kiế n trúc “trí tu ệ phân tán” (distributed (distributed intelligence ) trong t ươ ươ ng ng lai.
MTGS
MTGS bus hệ thống
PHÒNG Đ PHÒNG ĐIIỀU KHIỂ KHIỂN TRUNG TÂM
MTĐK 1 bus tr ườ ường
MTĐK 2 bus tr ườ ường
I/O
S
PHÒNG Đ PHÒNG ĐIIỀU KHIỂ KHIỂN CỤ CỤC BỘ BỘ
bus tr ườ ường I/O
I/O
A
Phân đoạn 1 Hình 2-6:
MTĐK n
S
A
S
A
HIỆ HIỆN TRƯỜ TRƯỜNG NG
Phân đoạn n
Phân đoạn 2
C ấ i ề ấ u trúc ₫ i ều khi ể ển phân tán v ớ ới vào/ra phân tán
© 2005, Hoàng Minh S ơ n
15
CÁC THÀNH PH N C A M T H PHÂN TÁN
3
U KHI
u hình c
3.1
Cấ u hình cơ bả n một hệ điều khiển phân tán đượ c minh họa trên Hình 3-1, bao gồm các thành phầ n sau: Các tr ạ ạm điều khiển c ục bộ (local control station, LCS), đôi khi còn đượ c gọi là các khối điều khiển c ục b ộ (local control unit, LCU) ho ặ c các tr ạ ạm quá trình (process station, PS). Các tr ạ (operator station, OS) ạ m v ậ ận hành (operator Tr ạ (engineering station, ES) và các công cụ phát triển ạ m k ỹ thuậ t (engineering Hệ thống truy ền thông ( field ). field bus , system bus ). •
• • •
Máy PCtính Factory LAN
Operator Station
Operator Station
Engineering Station System bus Local Control Station
Local Control Station
Remote I/O Station PROCESS Hình 3-1:
C ấ i ề ấ u hình c ơ ơ b ả ả n m ộ ột h ệ ₫ ệ ₫ i ều khi ể ển phân tán
Đây là cấ u hình t ối thiểu, các cấ u hình cụ thể có thể chứ a các thành ph ầ n khác như tr ạ ạm vào/ra t ừ ừ xa (remote I/O station ),), các bộ điều khiển chuyên dụng,... 3.1.1
Tr
u khi n c c b
Thông thườ ng, ng, các tr ạ ng theo cấ u trúc ạm điều khiển cục bộ đượ c xây dự ng module. Các thành ph ầ n chính bao g ồm: Bộ cung cấ p nguồn, thông th ườ ng ng có dự phòng Khối x ử ử lý trung tâm (CPU), có th ể lự a chọn loạ i có dự phòng • •
© 2005, Hoàng Minh S ơ n
16 • • •
Giao diện v ớ ng cũng có dự phòng ớ i bus hệ thống, thông th ườ ng Giao diện v ớ ng nế u sử dụng cấ u trúc vào/ra phân tán ới bus tr ườ ườ ng Các module vào/ra s ố cũng như t ươ ươ ng ng t ự ự, đặ c bi ệt là các module vào/ra an toàn cháy nổ
Trong cấ u trúc vào/ra t ậ ập trung, các module vào/ra đượ c nối v ớ ớ i CPU thông qua bus n ội bộ đằ ng ng sau giá đỡ (backplane-bus ). ). Chính vì v ậ ậ y, các module này cũng phả i do nhà s ả n xuấ t cung cấ p kèm theo CPU. Trong các hệ thống điều khiển quá trình, m ột tr ạ ạ m điều khiển c ục b ộ cũng thườ ng ng đượ c cài đặ t giao diện HART và các module ghép n ối phụ kiện khác. Các thiế t bị này đượ c lắ p đặ t trong t ủ điều khiển cùng v ớ ới các linh ki ện hỗ tr ợ ợ khác như hàng k ẹp đấ u dây, các b ộ chuy ển đổi tín hiệu (transducers ), ), các khối đầ u cuối (terminal blocka ),... ),... Các t ủ điều khiển thườ ng ng đượ c đặ t trong phòng điều khiển/phòng điện ở bên cạ nh nh phòng điều khiển trung tâm ho ặ c r ả ng. ải rác gầ n khu v ự ực hiện tr ườ ườ ng. Các chứ c nă ng ng do tr ạ ạ m điều khiển cục bộ đả m nhiệm bao g ồm: ch vòng kín Điều khiển quá trình ( process control ): Điều khiển các mạ ch (nhiệt độ, áp suấ t, t, lư u lượ ng, ng, độ pH, độ đậ m đặ c,...). c,...). Hầ u hế t các mạ ch ch vòng đơ n đượ c điều khiển trên cơ sở luậ t PID, gi ả i quy ế ết bài toán điều khiển điều chỉnh, điều khiển t ỉ lệ, điều khiển t ầ n ầng. g. Các hệ thống hiện đạ i cho phép điều khiển mờ , điều khiển dự a mô hình (model-based (model-based control ), ), điều khiển thích nghi, ... Điều khiển trình t ự ự (sequential control, sequence control) Điều khiển logic Thự c hiện các công thứ c (recipe (recipe control ). ). Đặ t các tín hi ệu đầ u ra v ề tr ạ ạng n g thái an toàn trong tr ườ ườ ng ng hợ p có sự cố hệ thống L ư ưu tr ữ ữ t ạ ạm thờ i các tín hiệu quá trình trong tr ườ ườ ng ng hợ p mấ t liên lạ c v ớ ới tr ạ ạm v ậ ận hành Nhậ n biế t các tr ườ ng hợ p v ượ ng giá tr ị và t ạ ườ ng ượ t ngưỡ ng ạo các thông báo báo động. •
• • • •
•
•
Chính vì đây là thành ph ầ n quan tr ọng nhấ t trong h ệ thống, đạ i đa số các tr ạ ạm điều khiển cục bộ có tính nă ng ng kiểm tra và sử a lỗi (error checking and correcting , ECC), c ũng như cho phép lự a chọn cấ u hình dự phòng. Một điều quan tr ọng là một tr ạ ng đả m b ả o ti ế p t ục ạ m điều khiển c ục b ộ phả i có kh ả nă ng thự c hiện các chứ c nă ng ng nói trên trong tr ườ ng hợ p tr ạ ng ườ ng ạm v ậ ận hành hoặ c đườ ng truy ền bus hệ thống có sự cố. Các máy tính điều khiển có th ể là máy tính đặ c chủng của nhà cung cấ p (vendor-specific controller ), ), PLC hoặ c máy tính cá nhân công nghi ệp. D ự a trên cơ sở này có thể phân loạ i các hệ thống điều khiển phân tán có m ặ t hi ện nay trên thị tr ườ ng thành các h ệ các hệ truy ền thống (sau đây gọi là DCS là DCS truy ề ền n ườ ng ), các hệ trên nền PLC (PLC-based (PLC-based DCS ) và các hệ trên nền PC (PC-based (PC-based th ố ống ng ), ). DCS ). © 2005, Hoàng Minh S ơ n
17 Bấ t k ể chủng loạ i thiế t bị nào đượ c sử dụng, các yêu cầ u quan tr ọng nhấ t v ề mặ t k t đượ c đặ t ra cho m ột tr ạ ỹ thuậ t ạm điều khiển cục bộ là: Tính n ă ng ng thờ i thự c Độ tin cậ y và tính sẵ n sàng L ậ ập trình thu ậ n tiện, cho phép s ử dụng/cài đặ t các thuậ t toán cao c ấ p Khả nă ng ng điều khiển lai (liên t ục, trình t ự ự và logic). • • • •
3.1.2
Bus trường và các tr m vào/ra t xa
Khi sử dụng c ấ u trúc vào/ra phân tán, các tr ạ ạ m điều khiển c ục bộ sẽ đượ c bổ sung các module giao di ện bus để nối v ớ (remote I/O ới các tr ạ ạm vào/ra t ừ ừ xa (remote ng thông minh. Các yêu c ầ u chung đặ t ra v ớ station ) và một số thiế t bị tr ườ ườ ng ớ i bus tr ườ ng là tính n ă ng ng thờ i gian thự c, c, mứ c độ đơ n giả n và giá thành thấ p. p. ườ ng Bên cạ nh nh đó, đối v ớ ng d ễ cháy nổ còn các yêu cầ u k ỹ thuậ t t đặ c bi ệt ới môi tr ườ ườ ng khác v ề chuẩ n truy ền dẫ n, n, tính n ă ng ng điện học của các linh ki ện mạ ng, ng, cáp truy ền,... Các lo ạ i bus tr ườ ng đượ c hỗ tr ợ nh nhấ t là Profibus-DP, ườ ng ợ mạ nh Foundation Fieldbus, DeviceNet và AS-I. Trong môi tr ườ ng đòi hỏi an toàn ườ ng cháy nổ thì Profibus-PA và Foundation Fieldbus H1 là hai h ệ đượ c sử dụng phổ biế n nhấ t. t. Một tr ạ ạm vào/ra t ừ ừ xa thự c chấ t có c ấ u trúc không khác l ắ m so v ớ ới một tr ạ ng ạm điều khiển cục bộ, duy chỉ thiế u khối x ử ử lý trung tâm cho ch ứ c nă ng ng, các tr ạ điều khiển. Thông th ườ ng, ạm vào/ra t ừ ừ xa đượ c đặ t r ấ ất gầ n v ớ ới quá trình k t, vì thế tiế t ki ệm nhiều cáp truy ền và đơ n gi ả n hóa cấ u trúc h ệ ỹ thuậ t, thống. Tr ạ ạm vào/ra t ừ ừ xa cũng có thể đặ t cùng v ị trí v ớ ới tr ạ ạm điều khiển c ục bộ, tuy nhiên nh ư v ậ ậ y không l ợ i dụng đượ c ư u điểm của cấ u trúc này. Khác v ớ ới c ấ u trúc vào/ra t ậ ập trung, cấ u trúc vào/ra phân tán cho phép s ử dụng các tr ạ ạm vào/ra t ừ ừ xa của các nhà cung c ấ p khác v ớ ới điều kiện có hỗ tr ợ ợ loạ i bus tr ườ ng qui định. Tuy nhiên, để có thể khai thác t ối đa khả nă ng ng các ườ ng công cụ phầ n mềm tích hợ p và đả m bả o t ươ ng thích hoàn toàn gi ữ a các thành ươ ng phầ n trong một hệ DCS, việc dùng tr ọn sả n phẩ m của một hãng v ẫ ẫ n là giả i pháp an toàn nh ấ t. t. Bên cạ nh nh phươ ng ng pháp ghép n ối thiế t b ị điều khiển v ớ t ới quá trình k ỹ thuậ t thông qua các module vào/ra, ta có th ể sử dụng các cả m biế n hoặ c cơ cấ u chấ p hành có giao di ện bus tr ườ ng. Qua đó có th ể đơ n giả n hóa cấ u trúc h ệ ườ ng. thống hơ n nữ a, a, tiế t kiệm tiế t kiệm chỗ trong t ủ điều khiển và nâng cao tính nă ng ng thờ i gian thự c c ủa h ệ thống do t ậ ng x ử ận d ụng đượ c kh ả nă ng ử lý thông tin của các thiế t bị tr ườ ng. ườ ng. Trên Hình 3-4 là hình ả nh nh m ột s ố t ủ điều khiển DCS. Hình bên trái là m ột tr ạ ạm PCS7 (Siemens) v ớ ới b ộ điều khiển l ắ p đặ t cùng các module vào/ra phân tán. Hình gi ữ a minh họa một tr ạ p. T ủ điều khiển bên ạm vào/ra t ừ ừ xa lắ p độc lậ p. phả i minh họa tr ạ ạm điều khiển cục bộ DeltaV (Fisher-Rosermount) sử dụng giả i pháp Foundation Fieldbus (không c ầ n các module các vào/ra). © 2005, Hoàng Minh S ơ n
18
Hình 3-2: 3.1.3
M ộ nh t ủ ₫ iề u ộ s ố ố hình ả nh ủ ₫ i ề khi ể ển DCS
Tr m v n hành
Tr ạ ạm v ậ ận hành và tr ạ ạ m k ỹ thuậ t t đượ c đặ t t ạ ại phòng điều khiển trung tâm. Các tr ạ ạm v ậ ận hành có th ể hoạ t t động song song, độc l ậ p v ớ ới nhau. Để tiện cho việc v ậ ận hành hệ thống, ngườ i ta thườ ng ng sắ p x ế ếp mỗi tr ạ ạm v ậ ận hành t ươ ươ ng ng ng v ớ ng. Tuy nhiên, các ph ầ n mềm chạ y ứ ng ới một phân đoạ n hoặ c một phân x ưở ưở ng. trên t ấ ng hợ p cầ n thiế t t ấ t cả các tr ạ ạm hoàn toàn gi ống nhau, vì th ế trong tr ườ ườ ng mỗi tr ạ ng của các tr ạ ạm đều có thể thay thế chứ c nă ng ạm khác. Các chứ c nă ng ng tiêu bi ểu của một tr ạ ạm v ậ ận hành gồm có: Hiển th ị các hình ả nh nh chuẩ n (hình ả nh nh t ổng quan, hình ả nh nh nhóm, hình nh t ừ n ch vòng, hình ả nh nh điều khiển trình t ự ả nh ừng g mạ ch ự, các đồ thị thờ i gian thự c và đồ thị quá khứ ) Hiển thị các hình ả nh nh đồ họa t ự ự do (lư u đồ công nghệ, các phím điều khiển) Hỗ tr ợ ợ v ậ ận hành hệ thống qua các công cụ thao tác tiêu bi ểu, các hệ thống hướ ng ng dẫ n chỉ đạ o và hướ ng ng dẫ n tr ợ ợ giúp T ạ ạo và quả n lý các công thứ c điều khiển (cho điều khiển mẻ) X ử ử lý các sự kiện, sự cố X ử ử lý, lư u tr ữ ữ và quả n lý dữ liệu Chẩ n đoán hệ thống, hỗ tr ợ ợ ngườ i v ậ ận hành và bả o trì h ệ thống Hỗ tr ợ ợ lậ p báo cáo t ự độ ự động •
•
•
• • • • •
Khác v ớ ới các tr ạ ạm điều khiển, hầ u hế t các hệ DCS hiện đạ i đều sử dụng các sả n phẩ m thươ ng ng mạ i thông dụng như máy tính cá nhân (công nghi ệp) chạ y trên n ền WindowsNT/2000, ho ặ c các máy tính tr ạ ạ m chạ y trên n ền UNIX. Cùng v ớ ng là 19inch) v ớ ới các màn hình màu lớ n (thườ ng ới độ phân giả i cao để theo dõi quá trình s ả n xu ấ t, t, m ột tr ạ ạm v ậ ận hành hiện đạ i bao giờ cũng có các © 2005, Hoàng Minh S ơ n
19 thiế t b ị thao tác chuẩ n nh ư bàn phím và chuột. M ột tr ạ ạm v ậ ận hành có thể bố trí theo ki ểu một ngườ i sử dụng (một hoặ c nhiều màn hình), ho ặ c nhiều ngườ i sử dụng v ớ ới v ớ ới nhiều Terminals (Hình 3-3). Các phầ n mềm trên tr ạ ạm v ậ ận hành bao gi ờ cũng đi kèm đồng bộ v ớ ới hệ thống, song th ườ ng ng hỗ tr ợ ợ các chuẩ n phầ n mềm và chuẩ n giao tiế p công nghiệp như TCP/IP, DDE (Dynamic ( Dynamic Data Exchange ), ), OLE (Object (Object Linking and ), ODBC (Open ( Open Data Base Connection ), ), OPC (OLE (OLE for Process Embedding ), Control ). ). Operator Terminals Engineering Station Operator Station
Terminals bus System bus
Controller
Hình 3-3:
Các ph ươ ng pháp b ố ươ ng ố trí tr ạ ạm v ậ ận hành
t Đặ c điểm tiêu biểu của các tr ạ ạm v ậ ận hành hiện đạ i là sử dụng k ỹ thuậ t giao diện ngườ i-máy i-máy kiểu đa cử a sổ v ớ n. Tuy ới các phầ n t ử ử giao diện chuẩ n. nhiên, việc thiế t k ế ế các màn hình giao di ện công nghiệp khác v ớ ới các giao diện ứ ng ng dụng v ă ăn phòng, đòi hỏi kiế n thứ c t ổng hợ p v ề quá trình công ngh ệ, m ỹ thuậ t công nghiệp, tâm lý h ọc công nghiệp và công ngh ệ phầ n mềm. V ấ ấn đề này sẽ đượ c đề cậ p chi tiế t sau. 3.1.4
Tr m k thu t và các công c phát tri
Tr ạ ạm k ỹ thuậ t là nơ i cài đặ t các công cụ phát triển, cho phép đặ t c ấ u hình cho hệ thống, t ạ ng trình ứ ng ng dụng điều khiển và giao ạo và theo dõi các ch ươ ng diện ngườ i máy, đặ t cấ u hình và tham s ố hóa các thiế t bị tr ườ ườ ng. ng. Việc t ạ ạ o ứ ng ng dụng điều khiển hầ u hế t t đượ c thự c hiện theo ph ươ ng ng pháp khai báo, đặ t t tham số và ghép nối các khối ch ứ c n ă ng ng có sẵ n trong th ư viện. C ũng như các tr ạ ạm v ậ ận hành, thiế t b ị sử dụng thông th ườ ng ng là các máy tính cá nhân (công nghiệp) chạ y trên nền Windows95/98/NT/2000 ho ặ c UNIX. Một số đặ c tính tiêu bi ểu của các công cụ phát triển trên tr ạ ạm k ỹ thuậ t là: Các công cụ phát triển đượ c tích hợ p sẵ n trong h ệ thống Công việc phát tri ển (Engineering ) không yêu c ầ u có ph ầ n cứ ng ng DCS t ạ ạ i chỗ • •
© 2005, Hoàng Minh S ơ n
•
• •
20 sơ đồ khối hàm (FBD-Function (FBD-Function Function Chart ) và biểu đồ tiế n t ươ ươ ng ng t ự ự IEC61131-3 FBD () và
Các ngôn ng ữ lậ p trình thông d ụng là CFC-Continuous Block Diagram , hoặ c CFC-Continuous trình (SFC-Sequential (SFC-Sequential Function Chart ), ), SFC Một dự án có thể do nhiều ngườ i cùng ph ối hợ p phát tri ển song song Giao diện v ớ ớ i các hệ thống cấ p trên (CAD/CAM, MES, PPS, ERP,...)
t Để việc phát tri ển hệ thống phầ n mềm đượ c thuậ n lợ i,i, các nhà sả n xuấ t cung cấ p các thư viện khối hàm chuyên dụng. Bên cạ nh nh đó, nhiều nhà sả n xuấ t c ũng cung cấ p ph ầ n m ềm mô phỏng để ngườ i phát tri ển h ệ thống có thể t ạ ạo các đầ u vào/ra mô ph ỏng, giúp cho vi ệc phát triển phầ n mềm đượ c chắ c chắ n, n, an toàn h ơ n. n. Trong một số hệ thống, ngườ i ta không phân bi ệt giữ a tr ạ ạm v ậ ận hành và tr ạ ạm k ỹ thuậ t, t, mà s ử dụng một bàn phím có khóa chuy ển qua lạ i giữ a hai chế độ v ậ ận hành và phát tri ển. 3.1.5
Bus h th ng
Bus hệ thống có chứ c n ă ng ng n ối m ạ ng ng các tr ạ ạm điều khiển c ục b ộ v ớ ới nhau và v ớ i các tr ạ t. Trong đa số các hệ thống ứ ng ng ạ m v ậ ận hành và tr ạ ạ m k ỹ thuậ t. dụng, ngườ i ta l ự a chọn c ấ u hình có d ự phòng cho bus h ệ thống. Thêm n ữ a, a, để cả i thiện tính nă ng ng thờ i gian th ự c, c, nhiều khi một mạ ng ng riêng bi ệt (có th ể có ều u cả dự phòng) đượ c s ử dụng để ghép nối các tr ạ ạm điều khiển c ục b ộ (bus ₫ i i ề khi ể ển n , control bus ). ). Giả i pháp m ạ ng ng có thể đặ c chủng c ủa riêng công ty, ho ặ c dự a trên một mạ ng ng chuẩ n quốc t ế ế. Các hệ thống mạ ng ng đượ c sử dụng nhiều nhấ t là Ethernet, Profibus-FMS và ControlNet.
Đặ c điểm của việc trao đổi thông tin qua bus h ệ thống là lư u lượ ng ng thông tin lớ n, n, vì v ậ ậ y t ốc độ đườ ng ng truy ền phả i t ươ ươ ng ng đối cao. Tính n ă ng ng thờ i gian thự c cũng là một yêu cầ u đượ c đặ t ra (nhấ t là đối v ớ ới bus điều khiển), tuy nhiên không nghiêm ng ặ t nh ư v ớ ng. Thờ i gian phả n ứ ng ng thườ ng ng chỉ ới bus tr ườ ườ ng. yêu cầ u nằ m trong ph ạ m vi 0,1s tr ở ng tr ạ ng ở lên. Số lượ ng ạm tham gia thườ ng không lớ n và nhu cầ u trao đổi dữ liệu không có đột biế n lớ n. n. Vì v ậ ậ y đối v ớ ớ i mạ ng ng Ethernet, tính b ấ t t định của phươ ng ng pháp truy nh ậ p bus CSMA/CD thườ ng ng không ph ả i là v ấ ấ n đề gây lo nghĩ. Hình 3-4 minh h ọa cấ u hình tiêu bi ểu của một hệ điều khiển phân tán hi ện nh các thành ph ầ n đã mô t ả ng có đạ i.i. Bên cạ nh ả, một cấ u hình tiêu bi ểu thườ ng thêm một số tr ạ ạm server, máy tính phân tích, máy in, m ột số bộ điều khiển cục bộ chuyên dụng,...
© 2005, Hoàng Minh S ơ n
21 Factory
LAB
OS
ES
OS
SS
SYSTEM BUS Control Station 1
Control Station n
Control Station 2
FIELDBUS I/O
S
Controller
A
S
A S
A
S
A
Phân đoạn 1 Hình 3-4: 3.2 3.2.1
A I/O
Controller
I/O
S
S
Controller
I/O
S
A
Motor Control Center
A
Phân đoạn 2
S
A Phân đoạn n
C ấ i ề n i ấu hình tiêu bi ể ểu m ộ ột h ệ ệ ₫ i ều khi ể ển phân tán hi ệ ện ₫ạ i
Phân lo i các h DCS Các h DCS truy n th ng
Các hệ này sử dụng các bộ điều khiển quá trình đặ c chủng theo ki ế n trúc riêng của nhà sả n xuấ t. t. Các h ệ cũ thườ ng ng đóng kín, ít tuân theo các chu ẩ n giao tiế p công nghiệp, các bộ điều khiển đượ c sử dụng cũng thườ ng ng chỉ làm nhiệm v ụ điều khiển quá trình, vì v ậ ậ y phả i sử dụng k ế ết hợ p PLC cho các bài toán điều khiển logic và điều khiển trình t ự ng mở t ốt ự. Các hệ mớ i có tính n ă ng hơ n, n, một số bộ điều khiển lai đả m nhiệm cả các chứ c nă ng ng điều khiển quá trình, điều khiển trình t ự (hybrid controller ). ). ự và điều khiển logic (hybrid © 2005, Hoàng Minh S ơ n
22 Để hỗ tr ợ ợ các bài toán điều khiển quá trình di ễn ra đồng thờ i,i, khối x ử ử lý trung tâm đượ c cài đặ t một h ệ điều hành thờ i gian thự c, c, đa nhiệm - hoặ c c ủa riêng nhà sả n xuấ t phát tri ển hoặ c một sả n phẩ m thông d ụng như pSOS, TSOS, VRTX,... Chu k ỳ thờ i gian nhỏ nhấ t thự c hiện các mạ ch ch vòng điều khiển thườ ng ng nằ m trong kho ả ng ng 10-100ms, trong tr ườ ườ ng ng hợ p đặ c biệt (ví dụ cho nhà máy điện) có th ể t ớ ới 1ms. Một số sả n phẩ m tiêu bi ểu cùng v ớ ới tên tr ạ ạ m điều khiển cục bộ đượ c liệt kê dướ i đây: AdvantOCS (ABB): Advant Controller, h ệ điều hành riêng Freelance 2000 (ABB): D-PS h ợ c D-FC, hệ điều hành pSOS Symphonie (ABB): Melody, h ệ điều hành pSOS DeltaV (Fisher-Rosermount): Visual Controller, h ệ điều hành TSOS I/A Series (Foxboro): CP60, h ệ điều hành VRTX PlantScape (Honeywell): PlantScape Controller, h ệ điều hành riêng Centum CS1000/CS3000 (Yokogawa): PFCx-E, AFS10x/AFS20x, h ệ điều hành ORKID • • • • • • •
3.2.2
Các h DCS trên n n PLC
Thiế t bị điều khiển khả trình (PLC, programmable (PLC, programmable logic controller ) là một loạ i máy tính điều khiển chuyên dụng, do nhà phát minh ng ườ i M ỹ Richard Morley lầ n đầ u tiên đư a ra ý t ưở ng vào nă m 1968. D ự a trên yêu cầ u k ỹ thuậ t t ưở ng của General Motors là xây d ự ng ng một thiế t bị có khả nă ng ng lậ p trình m ềm dẻo thay thế cho mạ ch ch điều khiển logic cứ ng, ng, hai công ty độc l ậ p là Allen Bradley và Bedford Associates (sau này là Modicon) đã đư a ra trình bày các s ả n ph ẩ m n, 128 điểm đầ u tiên. Các thi ế t b ị này chỉ x ử ử lý đượ c m ột t ậ ậ p l ệnh logic cơ bả n, vào/ra (1 bit) và 1kByte b ộ nhớ . Lúc đầ u, u, cái tên programmable tên programmable controller , vi ế t t t ắ ắt là PC, đượ c sử dụng r ộng rãi. Trong khi đó, programmable logic controller hay PLC là th ươ ng ng hiệu đă ng ng ký c ủa công ty Allen Bradley. Sau này, khi máy tính cá nhân tr ở ở nên phổ biế n thì t ừ ừ viế t t ắ ắt PLC hay đượ c dùng hơ n để tránh nhầ m lẫ n. n. Vì v ậ ế t b ị ị ₫ i iề ề u khi ể ển kh ả ả ậ y t ừ ừ đây v ề sau ta sẽ dùng khái niệm thi ế ng v ớ là PLC . trình nh trình như ng ới t ừ ừ viế t t ắ ắ t là PLC V ớ t, nguyên t ắ ới cấ u trúc ghép n ối vào/ra linh ho ạ t, ắ c làm việc đơ n giả n theo chu kì, kh ả nă ng ng lậ p trình và lư u tr ữ ng trình trong b ộ nhớ không cầ n ữ chươ ng can thiệp tr ự ực tiế p t ớ ới phầ n cứ ng, ng, PLC nhanh chóng thu hút s ự chú ý trong giớ i chuyên ngành. Vào thờ i điểm các máy tính điều khiển chuyên dụng và không chuyên d ụng đều có kích c ỡ r ấ ất lớ n và giá thành r ấ ất cao, thì vi ệc sử dụng PLC là gi ả i pháp lý t ưở ưở ng ng để thay thế các mạ ch ch logic t ổ hợ p và tuầ n t ự ự trong điều khiển các quá trình gián đoạ n. n. Cho đế n nay, danh mục các chủng loạ i PLC có m ặ t trên thị tr ườ ườ ng ng thậ t t phong phú đế n mứ c khó có th ể bao quát. Chúng không nh ữ ng ng khác nhau ở công suấ t làm việc c ủa bộ x ử ử lý trung tâm, ở dung lượ ng ng bộ nhớ và ở số lượ ng ng các cổng vào/ra, mà còn ở các đặ c tính chứ c nă ng ng như cấ u trúc linh ho ạ t, t, © 2005, Hoàng Minh S ơ n
23 phươ ng ng pháp lậ p trình và kh ả nă ng ng nối mạ ng. ng. Tr ừ ừ một số loạ i nhỏ dùng trong các ứ ng ng d ụng đơ n gi ả n, n, h ầ u h ế t các PLC hiện đạ i đều không d ừ ng ng l ạ i ở việc th ự c hiện các phép tính logic đơ n gi ả n, n, mà còn có kh ả nă ng ng làm việc v ớ ới các tín hiệu t ươ ươ ng ng t ự ự và thự c hiện các phép toán số học, thậ m chí cả các thuậ t toán điều khiển phả n hồi nh ư đ ư điều khiển nhiều điểm, PID và điều khiển mờ . Các bộ đế m, m, bộ định thờ i và một số hàm toán học thông dụng thuộc phạ m vi chứ c nă ng ng chuẩ n của một PLC. Vi ệc sử dụng PLC vì v ậ ậ y không chỉ dừ ng ng l ạ i ở các quá trình gián đoạ n, n, mà nay đã r ấ ất ph ổ biế n đối v ớ ới điều khiển các quá trình liên t ục như trong công nghi ệp chế biế n, n, khai thác, công ngh ệ môi tr ườ ng v.v... ườ ng Một số hệ DCS trên nền PLC tiêu bi ểu là SattLine (ABB), Process Logix (Rockwell), Modicon TSX (Schneider Electric), PCS7 (Siemens),… Th ự c chấ t, t, ngày nay đa số các PLC v ừ ừa có thể sử dụng cho bài toán điều khiển logic và điều khiển quá trình. Tuy nhiên, các PLC đượ c sử dụng trong các hệ điều khiển phân tán th ườ ng ng có c ấ u hình mạ nh, nh, hỗ tr ợ đ ợ điều khiển trình t ự ự cùng v ớ ớ i các phươ ng ng pháp l ậ p trình hi ện đạ i (ví dụ SFC). u trúc ph n c ng
Hình 3-5 minh h ọa các thành ph ầ n chứ c nă ng ng chính của một hệ thống thiế t bị điều khiển khả trình và quan hệ t ươ ng tác gi ữ a chúng. V ề cơ bả n, n, một ươ ng PLC cũng có các thành ph ầ n giống như một máy vi tính thông th ườ ng, ng, đó là vi x ử ng trình, giao di ện vào/ra và cung ử lý, các bộ nhớ làm việc và bộ nhớ chươ ng cấ p nguồn. Tuy nhiên, m ột điểm khác cơ bả n là các thành ph ầ n giao diện ngườ i-máy i-máy như màn hình, bàn phím và chu ột không đượ c trang b ị ở đ ở đây. Việc lậ p trình vì v ậ ng một máy tính riêng bi ệt, ậ y phả i đượ c thự c hiện gián tiế p bằ ng ghép nối v ớ ng là một cổng ớ i CPU thông qua giao di ện thiế t bị lậ p trình (th ườ ng nối tiế p theo chuẩ n RS-232 ho ặ c RS-485). Bộ x ử ( Central Processing Unit , CPU) bao g ồm m ột ho ặ c nhiều ử lý trung tâm (Central vi x ử ng trình, b ộ nhớ làm việc, đồng h ồ nhịp và giao di ện v ớ ử lý, bộ nhớ chươ ng ới thiế t b ị lậ p trình, đượ c liên k ế ết v ớ ới nhau thông qua m ột h ệ bus nội b ộ. Nhiệm v ụ chính của CPU là qu ả n lý các cổng vào/ra, x ử ử lý thông tin, th ự c hiện các thuậ t toán điều khiển. Bộ nhớ chươ ng ng trình th ườ ng ng có dạ ng ng EPROM (Erasable ( Erasable ( Electrically Erasable and Programmable Read Only Memory ) hoặ c EEPROM (Electrically ), chứ a hệ điều hành và mã chươ ng ng and Programmable Read Only Memory ), trình ứ ng ng d ụng. Dữ liệu vào/ra cũng như các dữ liệu tính toán khác đượ c lư u trong bộ nhớ làm việc RAM (Random (Random Access Memory ). ). Đồng h ồ nhịp có vai trò t ạ ạo ngắ t cứ ng ng để điều khiển chươ ng ng trình theo chu k ỳ , thông th ườ ng ng trong khoả ng ng t ừ ừ 0,01giây t ớ ới 1000 phút. Các thành ph ầ n vào/ra (input/ouput (input/ouput , I/O) đóng vai trò là giao di ện giữ a a CPU và quá trình k ỹ thuậ t. t. Nhiệm v ụ của chúng là chuy ển đổi, thích ứ ng ng tín hiệu và cách ly galvanic gi ữ a các thiế t bị ngoạ i vi (cả m biế n, n, cơ cấ u chấ p hành) và CPU. Các thành ph ầ n vào/ra đượ c liên k ế ết v ớ ới CPU thông qua m ột hệ bus nội bộ hoặ c qua một hệ bus tr ườ ng (xem chươ ng ng 3). ườ ng © 2005, Hoàng Minh S ơ n
24 Bộ cung cấ p nguồn ( power supply , PS) có vai trò bi ế n đổi và ổn định nguồn nuôi (thông th ườ ng ng 5V) cho CPU và các thành ph ầ n chứ c nă ng ng khác t ừ ừ một nguồn xoay chiều (110V, 220V,...) ho ặ c một chiều (12V, 24V,...). Bên cạ nh nh các thành ph ầ n chính nêu trên, m ột h ệ thống PLC có th ể có các thành phầ n chứ c nă ng ng khác như ghép nối m ở r ộng, điều khiển chuyên dụng và x ử ử lý truy ền thông. CPU ố
o
đ
u ệ i h n í T
s p à v à ) v I D ự t I , g A n ( ơ ư t
Vi xử lý
Đồng hồ nhịp
Bộ nhớ chương trình
Giao diện lập trình
ố
s a r à ) v O ự t D , g O n A ( ơ ư t a R
Bộ nhớ làm việc
o à V
n
ể i
h k u ề i đ
u ệ i h n í T
Nguồ Nguồn nuôi (PS) Hình 3-5:
Các thành ph ầ n ần ch ứ ứ c n ă ăng g chính c ủ ủa m ộ ột PLC
Thi t k module và thi t k
Tùy theo sự phân chia chứ c nă ng ng trên các thành ph ầ n thiế t bị, ta có th ể phân biệt giữ a các PLC có thiế t k ế ế module và các PLC có thi ế t k ế ế gọn. Trong một PLC có thi ế t k ế ng đượ c tích hợ p gọn trong một ế gọn, t ấ ất cả các chứ c nă ng thiế t bị. Thông th ườ ng, ng, loạ i PLC này có s ẵ n một số cổng vào/ra cố định. Một số cũng đượ c tích hợ p giao di ện truy ền thông cho m ột loạ i bus tr ườ ng. Tuy ườ ng. nhiên, một s ố ít loạ i có c ấ u trúc gọn v ẫ n ng c ổng vào/ra ẫn cho phép t ă ăng g s ố lượ ng hoặ c bổ sung giao di ện m ạ ng ng bằ ng ng các module mở r ộng đặ c biệt. PLC có c ấ u trúc gọn thích hợ p v ớ n. ới các bài toán đơ n giả n. ng dụng có qui mô v ừ n, ta cầ n sử dụng các PLC có thi ế t t Đối v ớ ớ i các ứ ng ừa và lớ n, k ế ng ế module bở i độ linh hoạ t cao. Ở đây, hầ u hế t mỗi thành phầ n chứ c nă ng ng riêng bi ệt, đượ c lắ p đặ t trên m ột đượ c thự c hiện bở i một module phầ n cứ ng hoặ c nhiều giá đỡ . Bên cạ nh nh các thành ph ầ n cơ bả n là CPU, ngu ồn và các module vào/ra, một PLC còn có th ể chứ a các module chứ c n ă ng, ng, các module ghép nối và module truy ền thông. H ệ bus nội bộ đượ c sử dụng để ghép nối các module mở r ộng v ớ ng đượ c gọi là bus m ặ t sau (backplane (backplane bus ). ). ới CPU th ườ ng Các module chứ c nă ng ng ( function module , FM) đượ c sử dụng để thự c hiện một s ố nhiệm v ụ điều khiển riêng, ví d ụ module điều khiển PID, module điều khiển động cơ bướ c, c, module cân,... Các module này ho ạ t t động t ươ ng đối độc ươ ng lậ p v ớ ới CPU, tuy nhiên có th ể trao đổi dữ liệu quá trình và d ữ liệu tham số thông qua bus n ội bộ và các hàm hoặ c khối hàm giao ti ế p hệ thống. © 2005, Hoàng Minh S ơ n
25 Các module ghép n ối (interface module , IM) đượ c sử dụng trong việc mở r ộng hệ thống khi số lượ ng ng các module lớ n, n, không đủ chỗ trên một giá đỡ . Thông thườ ng, ng, mỗi giá đỡ cầ n có một module ngu ồn riêng bên cạ nh nh module ghép nối. Thông qua các module ghép n ối, m ột CPU có th ể quả n lý t ấ ất c ả các module trên các giá đỡ . S ố lượ ng ng và chủng loạ i các module cho phép trên m ột giá đỡ cũng như số lượ ng ng t ổng c ộng phụ thuộc vào khả nă ng ng quả n lý của lo ạ i CPU cụ thể. Các module truy ền thông (communication ( communication module , CM) có vai trò là giao diện mạ ng, ng, đượ c sử dụng để ghép nối nhiều PLC v ớ ới nhau, v ớ ới các thiế t bị tr ườ ườ ng ng và v ớ ớ i máy tính giám sát. Các module truy ền thông đả m nhiệm x ử ử lý giao thứ c một cách độc lậ p v ớ ới CPU. Tuy nhiên trong m ột số tr ườ ườ ng ng hợ p, p, bộ x ử ử lý trung tâm c ũng đượ c tích hợ p sẵ n giao di ện mạ ng ng cho m ột hệ bus tr ườ ườ ng ng thông dụng. 3.2.3
Các h DCS trên n n PC
Giả i pháp s ử dụng máy tính cá nhân (PC) tr ự ực tiế p làm thiế t b ị điều khiển không nh ữ ng ng đượ c bàn t ớ ới r ộng rãi, mà đã tr ở ở thành thự c t ế ế phổ biế n trong nhữ ng ng nă m gầ n đây. Nế u so sánh v ớ ới các bộ điều khiển khả trình (PLC) và các bộ điều khiển DCS đặ c ch ủng thì thế mạ nh nh của PC không nh ữ ng ng n ằ m ở tính nă ng ng m ở , kh ả nă ng ng l ậ p trình t ự ng tính toán cao và đa ch ứ c n ă ng, ng, ự do, hiệu nă ng mà còn ở khía cạ nh nh kinh t ế ế. Các bướ c ti ế n l ớ n trong k ỹ thuậ t máy tính, công nghiệp ph ầ n m ềm và công ngh ệ bus tr ườ ng chính là các y ế ườ ng ế u t ố thúc đẩ y khả nă ng ng cạ nh nh tranh của PC trong điều khiển công nghiệp. DCS trên n ền PC là m ột h ướ ng ng giả i pháp t ươ ng đối m ớ i, i, m ớ i có một s ố sả n ươ ng phẩ m trên th ị tr ườ ng như PCS7 (Siemens, giả i pháp Slot-PLC), 4Control ườ ng (Softing), Stardom (Yokogawa), Ovation (Westinghouse-Emerson Process Management)… Hướ ng ng giả i pháp này th ể hiện nhiều ư u điểm v ề mặ t giá thành, hiệu nă ng ng tính toán và tính n ă ng ng mở . Một tr ạ ạm điều khiển cục bộ chính là một máy tính cá nhân công nghi ệp đượ c cài đặ t một hệ điều hành thờ i gian thự c và các card giao di ện bus tr ườ ng và card giao di ện bus hệ ườ ng thống. Trong giả i pháp điều khiển dùng máy tính cá nhân thì m ột v ấ ng ấn đề thườ ng r ấ t đượ c quan tâm là độ tin cậ y của máy tính. Một phầ n ta có th ể yên tâm bở i ất v ớ ớ i c ấ u trúc vào/ra phân tán, máy tính điều khiển đượ c đặ t trong phòng điều khiển trung tâm v ớ ng làm việc t ốt. Mặ t khác, trên th ị ới điều kiện môi tr ườ ườ ng tr ườ ng cũng đã có r ấ ườ ng ấ t nhiều loạ i máy tính cá nhân công nghiệp, đả m bả o độ tin cậ y cao không kém một PLC. M ột khi máy tính ch ỉ đượ c cài đặ t hệ điều hành và phầ n mềm điều khiển thì kh ả nă ng ng gây lỗi do ph ầ n mềm cũng sẽ đượ c giả m thiểu. Tuy nhiên, đối v ớ ng dụng có yêu c ầ u cao v ề tính sẵ n sàng, độ tin cậ y ới các ứ ng của hệ thống, ta cầ n có một giả i pháp d ự phòng thích h ợ p. p. Giả i pháp đơ n giả n và tiế t kiệm nhấ t là “dự phòng lạ nh”, nh”, có ngh ĩa là trong tr ườ ng hợ p có sự cố t ạ ườ ng ại © 2005, Hoàng Minh S ơ n
26 máy tính điều khiển x ả ả y ra ta ch ỉ cầ n thay thế một máy mớ i v ớ ới cấ u hình và các phầ n m ềm đã đượ c cài đặ t gi ống h ệt máy chính. Song gi ả i pháp t ốt h ơ n là sử dụng một cấ u hình dự phòng nóng. 3.3
Các v
đề
thu
Các v ấ ấ n đề k ỹ thuậ t dướ i đây đóng vai trò đặ c biệt quan tr ọng khi nghiên cứ u v ề các hệ điều khiển phân tán, s ẽ đượ c đề cậ p chi tiế t trong các ph ầ n sau. Kiế n trúc x ử ( distributed processing ): ): Cấ u trúc phân tán v ề ử lý phân tán (distributed mặ t v ậ ử lý phân ật lý (địa lý) dẫ n đế n phân tán v ề mặ t x ử ử lý thông tin. X ử tán là tán là m ột khái ni ệm vay mượ n t ừ ừ lĩnh v ự ực tin học. X ử ử lý phân tán khác v ớ t, xuyên suốt ử lý c ụ ụ c b ộ ộ và khác v ớ ử lý n ố ối m ạ ạ ng ng ở tính thống nhấ t, ớ i x ử ớ i x ử trong việc xây dự ng ng ứ ng ng dụng và trao đổi dữ liệu giữ a các tr ạ m ạm. . Tính nă ng ng thờ i gian thự c (real-time ): ): Tính nă ng ng của một hệ thống luôn sẵ n sàng phả n ứ ng ng v ớ ng một ớ i các sự kiện bên ngoài và đư a ra đáp ứ ng cách đúng đắ n và k ịp thờ i. i. V ớ ới kiế n trúc x ử ử lý phân tán, vi ệc đáp ứ ng ng tính nă ng ng thờ i gian thự c đượ c cả i thiện b ở i kh ả nă ng ng x ử ử lý thông tin t ạ ại chỗ. Song c ũng nhiều v ấ ấn đề đượ c đặ t ra trong vi ệc giao tiế p giữ a các thành phầ n (real-time interprocess communication ), ), trong đó v ấ ấn đề giao thứ c mạ ng ng đóng một vai trò quan tr ọng. Tính sẵ n sàng (availability (availability ) và độ tin cậ y (reliability ): ): Một đặ c điểm nổi bậ t so v ớ ới các hướ ng ng giả i pháp khác là tính s ẵ n sàng cao thông qua kh ả nă ng ng dự phòng tích h ợ p, p, có th ể lự a chọn dự phòng cho t ừ n n. ừng g thành phầ n. Tính sẵ n sàng, phươ ng ng pháp giao tiế p số, kiế n trúc x ử ử lý phân tán, ph ầ n mềm đóng gói, ph ầ n cứ ng ng chuẩ n hóa công nghi ệp, độ tích hợ p cao giữ a a các thành phầ n phầ n cứ ng ng và phầ n mềm là các y ế ếu t ố giúp cho các h ệ thống điều khiển phân tán có độ tin cậ y cao. Hỗ tr ợ ợ chuẩ n (standard support ):): Thự c ra, đây không phả i là đặ c điểm tiêu biểu của các hệ DCS truy ền thống. Như ng ng đây là một yêu cầ u không thể thiế u đượ c trong các h ệ DCS mớ i. i. Đặ c biệt, sự t ươ ng thích v ớ ươ ng ới các chuẩ n công nghiệp là ti ền đề cho tính n ă ng ng m ở , cho khả nă ng ng t ươ ng tác ươ ng v ớ ới các thiế t bị của các hãng thứ ba. Công cụ phầ n mềm (software tools ): ): Việc xây dự ng ng các ứ ng ng dụng điều khiển đượ c hỗ tr ợ nh ợ bở i các công cụ “lậ p trình” ho ặ c “cấ u hình” r ấ ất mạ nh và các thư viện ph ầ n m ềm đóng gói chuẩ n, n, d ự a theo các chu ẩ n qu ốc t ế ế . Các công cụ phầ n mềm điều khiển giám sát cũng đượ c tích h ợ p và sử dụng chung một cơ sở dữ liệu trong h ệ thống. Khác v ớ ới các giả i pháp điều khiển đơ n l ẻ như PLC hoặ c PC, ta không ph ả i s ử dụng m ột công c ụ riêng, xây dự ng ng riêng giao di ện ngườ i-máy i-máy (HMI) và các chứ c nă ng ng SCADA khác. Quá trình t ạ ạo giao di ện ngườ ii- máy, t ạ ạo hệ thống cả nh nh báo, t ạ ạo công th ứ c điều khiển,… nằ m trong vi ệc phát tri ển ứ ng ng d ụng, đi ng chươ ng ng trình điều khiển cấ p thấ p. p. đôi v ớ ớ i việc xây dự ng •
•
•
•
•
© 2005, Hoàng Minh S ơ n
27 4
LÝ TH I GIAN TH C VÀ X
4.1
t s khái ni m c
4.1.1
LÝ PHÂN TÁN
th ng th i gian th
Một hệ thống thờ i gian thự c là một hệ thống mà sự hoạ t t động tin cậ y của nó không ch ỉ phụ thuộc vào sự chính xác của k ế ế t quả , mà còn ph ụ thuộc vào thờ i điểm đư a ra k ế ng v ớ ết quả để phả n ứ ng ới sự kiện bên ngoài. H ệ thống có lỗi khi thờ i gian yêu cầ u không đượ c thoả mãn. Một hệ thống thờ i gian thự c có các đặ c điểm tiêu bi ểu sau: Tính bị động: Hệ thống phả i ph ả n ứ ng ng v ớ ới các sự kiện xu ấ t hi ện vào các thờ i điểm không biế t tr ướ c. ướ c. Tính nhanh nhạ y: Hệ thống phả i x ử ử lý thông tin m ột cách nhanh chóng ng một cách k ịp thờ i. i. để có thể đư a ra k ế ết quả phả n ứ ng Tính tiền định: Dự đoán tr ướ ng tiêu biểu, thờ i ướ c đượ c thờ i gian ph ả n ứ ng gian phả n ứ ng ng chậ m nhấ t cũng như trình t ự đư ng. ự đư a ra các phả n ứ ng. •
•
•
Tuy tính nhanh nhạ y là một đặ c điểm tiêu biểu, như ng ng một hệ thống có tính nă ng ng thờ i gian thự c không nhấ t thiế t phả i có đáp ứ ng ng thậ t nhanh mà quan tr ọng hơ n là ph ả i có ph ả n ứ ng ng k ịp thờ i đối v ớ u, tác động bên ới các yêu cầ u, ngoài. Có th ể nói, t ấ ất các các hệ thống điều khiển là các hệ thống thờ i gian thự c. c. Ngượ c lạ i, i, một số lớ n các hệ thống thờ i gian thự c là các hệ thống điều khiển. Một bộ điều khiển phả i đư a ra đượ c tín hiệu điều khiển k ịp thờ i sau một thờ i gian nhậ n đượ c tín hiệu đo để đư a quá trình k ỹ thuậ t v ề tr ạ n ạng g thái mong muốn. Một hệ thống truy ền thông có tính n ă ng ng thờ i gian thự c phả i có khả nă ng ng truy ền tin m ột cách tin cậ y và k ịp th ờ i đối v ớ ới các yêu cầ u của các đối tác truy ền thông. Tính n ă ng ng thờ i gian thự c của một hệ thống điều khiển phân tán không ch ỉ phụ thuộc vào tính n ă ng ng thờ i gian thự c của t ừ ừng n g thành phầ n trong h ệ thống, mà còn ph ụ thuộc vào sự phối hợ p hoạ t t động giữ a các thành phầ n đó. 4.1.2
lý th i gian th
X ử ử lý thờ i gian thự c là hình thứ c x ử ử lý thông tin trong m ột hệ thống để đả m bả o tính n ă ng ng thờ i gian thự c của nó. Nh ư v ậ ậ y, x ử ử lý thờ i gian thự c cũng có các đặ c điểm tiêu biểu nêu trên nh ư tính bị động, tính nhanh nh ạ y và tính tiền định. Để có thể phả n ứ ng ng v ớ ới nhiều s ự kiện diễn ra cùng một lúc, một h ệ thống x ử ử lý thờ i gian thự c sử dụng các quá trình tính toán đồng thờ i.i. Quá trình tính toán là toán là một ti ế n trình th ự c hiện m ột hoặ c một phầ n ch ươ ng ng trình tuầ n t ự ự do h ệ điều hành quả n lý trên một máy tính, có th ể t ồn t ạ ại đồng thờ i v ớ ới các quá trình khác k ể cả trong thờ i gian thự c hiện lệnh và thờ i gian x ế ếp hàng chờ đợ ờ đợ i thự c hiện. Quá trình tính toán đượ c chia thành hai loạ i: i: © 2005, Hoàng Minh S ơ n
•
•
28 Quá trình n ặ ặng ng cân (process): (process): là quá trình tính toán có không gian địa chỉ riêng. Quá trình nh ẹ ẹ cân (thread): (thread): là quá trình không có không gian địa chỉ riêng.
Các hình th ứ c t ổ chứ c các quá trình tính toán đồng thờ i: i: X ử nh tranh: Nhi ều quá trình tính toán chia s ẻ thờ i gian x ử ử lý cạ nh ử lý thông tin của một bộ x ử ử lý. X ử ử lý song song: Các quá trình tính toán đượ c phân chia thự c hi ện song song trên nhi ều bộ x ử ử lý của một máy tính. X ử ử lý phân tán: Mỗi quá trình tính toán đượ c thự c hiện riêng trên một máy tính. •
•
•
Trong các hệ thống điều khiển, khái ni ệm task c task cũng hay đượ c s ử dụng bên cạ nh nh quá trình tính toán. Có th ể nói, task là m ột nhiệm v ụ x ử ử lý thông tin trong hệ thống, có thể thự c hiện theo cơ chế tuầ n hoàn (periodic task) ho ặ c theo sự kiện (event task). Ví d ụ, m ột task thự c hiện nhiệm v ụ điều khiển cho một hoặ c nhiều mạ ch ch vòng kín có chu k ỳ trích mẫ u giống nhau. Ho ặ c, c, một task có th ể thự c hi ện nhiệm v ụ điều khiển logic, điều khiển trình t ự ự theo các sự kiện x ả ng một quá trình tính toán duy ả y ra. Task có thể thự c hiện dướ i dạ ng nhấ t, t, hoặ c một dãy các quá trình tính toán khác nhau. 4.1.3
u hành th i gian th
Các tr ạ ạm điều khiển trong m ột hệ điều khiển phân tán bao gi ờ cũng hoạ t t động dự a trên nền một hệ điều hành thờ i gian thự c. c. Hệ điều hành th ờ i gian thự c là một hệ điều hành h ỗ tr ợ ng trình ứ ng ng dụng x ử ợ các chươ ng ử lý thờ i gian thự c. c. Bả n thân hệ điều hành th ờ i gian thự c cũng là m ột hệ thờ i gian thự c theo đúng nghĩa c ủa nó, vì v ậ p. M ột ậ y c ũng có các đặ c điểm tiêu biểu đã đề cậ p. hệ điều hành thờ i gian thự c bao giờ cũng là một h ệ đa nhiệm (multi-tasking), hỗ tr ợ nh tr ạ nh hoặ c/và c/và x ử ợ x ử ử lý cạ nh ạ nh ử lý song song. L ậ ậ p lịch, đồng bộ hóa quá trình và giao ti ế p liên quá trình là các khái ni ệm quan tr ọng trong một hệ điều hành thờ i gian thự c. c. Phương pháp l p l ch (Scheduling)
Việc lậ p lịch thự c hiện cho các task có thể đượ c thự c hiện theo hai cách: L ậ ậ p l ệ ệnh nh t ĩ ĩnh n h : thứ t ự ự thự c hiện các quá trình tính toán không thay đổi mà đượ c xác đình tr ướ c. ướ c. ậ p l ệ ệnh nh ₫ộ ng L ậ ng : h ệ điều hành xác định l ệnh tr ướ ướ c ho ặ c sau khi quá trình tính toán đã bắ t t đầ u. u. •
•
Tuy nhiên, ta cầ n có m ột sách l ượ ượ c l ậ ậ p l ệ ệnh nh (strategy) để áp dụng đối v ớ ớ i t ừ n ng cách sau: ừng g tình hu ống cụ thể. Có thể chọn một trong nh ữ ng c. FIFO (First In First Out): Out): một tiế n trình đế n tr ướ ướ c sẽ đượ c thự c hiện tr ướ ướ c. t M ứ ức c ư u tiên c ố ố ₫ị nh/ nh/₫ộ ng ng : t ạ ại cùng một thờ i điểm, các tiế n trình đượ c đặ t các mứ c ư u tiên cố định hoặ c có thể thay đổi nế u cầ n. n. • •
© 2005, Hoàng Minh S ơ n
•
•
29 Preemptive : còn g ọi là chen hàng, t ứ ức là chọn một tiế n trình để thự c hiện tr ướ ướ c các tiế n trình khác. Non - Preemptive : không chen hàng. Các ti ế n trình đượ c thự c hiện bình thườ ng ng dự a trên mứ c ư u tiên của chúng.
Việc tính m ứ c ư u tiên của m ỗi ti ế n trình đượ c th ự c hi ện theo một trong s ố các thu ậ ật toán l ậ ậ p l ị ị ch sau: ch sau: ng xuyên càng đượ c ư u tiên. Rate monotonic : càng thườ ng Deadline monotonic : càng gấ p càng đượ c ư u tiên. Least laxity : t ỷ lệ thờ i gian tính toán/th ờ i hạ n cuối cùng(deadline) càng lớ n càng đượ c ư u tiên. • • •
Đồng b hoá quá trình
Khi các quá trình tính toán cùng s ử dụng m ột tài nguyên lo ạ i tr ừ ừ lẫ n nhau như một vùng nh ớ , cổng vào/ra, hoặ c chúng phụ thuộc lẫ n vào nhau ví d ụ ắ c c quá trình 1 ch ờ k ế ết quả của quá trình 2... s ẽ r ấ ất dễ dẫ n đế n tình tr ạ ạng n g t ắ ngh ẽ ẽn n (Deadlock), hay t ạ ống ng ch ạ ạy y ₫ ua ua (Race Condition). Do ạo ra một tình hu ố v ậ ậ y việc đồng bộ hoá các quá trình là điều cầ n thiế t. t. Có thể thự c hiện việc này theo các ph ươ ng ng pháp sau: Mutex (Mutual exclusion) Critical Section Semaphone Monitor • • • •
Giao ti p liên quá trình
Giao ti p liên quá trình là giao ti ế p gi ữ a các quá trình tính toán thu ộc cùng một hệ điều hành trên m ột máy. Có hai lo ạ i: i: Giữ a các Thread thuộc cùng một Process: sử dụng các biế n toàn cục. Giữ a các Process khác nhau ho ặ c giữ a các Thread thu ộc các Process khác nhau: sử dụng các phươ ng ng pháp nh ư shared memory, slot, pipes, mailbox, files... • •
4.1.4
lý phân tán
X ử ng lự c x ử ử lý phân tán giúp nâng cao n ă ng ử lý thông tin c ủa một hệ thống, góp phầ n c ả i thiện tính nă ng ng thờ i gian thự c, c, nâng cao độ tin cậ y và tính linh hoạ t của hệ thống. Phân biệt các khái niệm: X ử ử lý cục bộ - ứ ng ng dụng đơ n độc X ử ử lý cạ nh nh tranh - ứ ng ng dụng đa nhiệm X ử ử lý t ậ ập trung - ứ ng ng dụng t ậ ậ p trung X ử ử lý nối mạ ng ng - ứ ng ng dụng mạ ng ng X ử ử lý phân tán - ứ ng ng dụng phân tán • • • • •
© 2005, Hoàng Minh S ơ n
30 Cầ n phân bi ệt rõ giữ a a ứ ng ng d ụng m ạ ng ng và ứ ng ng d ụng phân tán. Trong m ột ng d ụng m ạ ng, ng, các chươ ng ng trình trên m ỗi tr ạ ứ ng ạ m t ồn t ạ ại hoàn toàn độc l ậ p v ớ ớ i nhau và việc giao tiế p giữ a chúng đượ c thự c hiện qua cơ chế “hiện” (explicit communication ). ). Web là m ột ứ ng ng dụng mạ ng ng tiêu bi ểu. Trong m ột ứ ng ng dụng phân tán, các ch ươ ng ng trình trên các tr ạ ạm hợ p tác chặ t chẽ v ớ ới nhau thông qua cơ chế giao tiế p ngầ m (implicit communication ) để cùng thự c hiện một nhiệm v ụ t ổng thể của hệ thống. Chứ c nă ng ng điều khiển trong một hệ điều khiển phân tán đượ c thự c hiện dướ i dạ ng ng một ứ ng ng dụng phân tán. Các v ấ ấn đề của x ử ử lý phân tán Phân chia và phối hợ p nhiệm v ụ Giao tiế p giữ a các tr ạ ạm Đồng bộ hóa các quá trình x ử ử lý phân tán Dự phòng, kh ắ c phục lỗi •
•
•
•
4.2
Các ki n trúc x lý phân tán
Ki n trúc Master/Slave • • •
• •
Các chứ c nă ng ng x ử ử lý thông tin đượ c phân chia trên nhiều tr ạ ạm t ớ ớ Một tr ạ ạm chủ phối hợ p hoạ t t động của nhiều tr ạ ạm t ớ ớ Các tr ạ ạm t ớ ớ có vai trò, nhi ệm v ụ t ươ ươ ng ng t ự ự như nhau (tuy v ớ ới các đối t ượ ượ ng ng khác nhau) Các tr ạ ạ m t ớ ớ có thể giao tiế p tr ự ực tiế p, p, hoặ c không Ví dụ tiêu biểu: Ứ ng ng dụng điều khiển sử dụng bus tr ườ ng, tr ạ ườ ng, ạm điều khiển là tr ạ ng là các tr ạ ạm chủ, các vào/ra t ừ ừ xa hoặ c thiế t bị tr ườ ườ ng ạm t ớ ớ.
Ki n trúc Client/Server •
• • •
Chứ c nă ng ng x ử ử lý thông tin đượ c phân chia thành hai ph ầ n khác nhau, phầ n s ử dụng chung cho nhi ều bài toán đượ c th ự c hi ện trên các server, phầ n riêng thự c hiện trên t ừ n ừng g client. Giữ a các client không cầ n thiế t có giao ti ế p tr ự ực tiế p Vai trò ch ủ động trong giao ti ế p thuộc v ề client Ví dụ tiêu biểu: Trong c ấ p điều khiển giám sát, có th ể sử dụng m ột tr ạ ạ m chủ cho việc thu th ậ p và quả n lý, lư u tr ữ nh giớ i báo động, ữ dữ liệu và cả nh các tr ạ i-máy v ớ ạm v ậ ận hành là thự c hiện giao diện ngườ i-máy ới vai trò là client.
Ki n trúc bình ₫ẳng •
•
Các tr ạ ng, phối hợ p hoạ t t động tr ự ạm có vai trò bình đẳ ng, ực tiế p v ớ ới nhau không qua trung gian Ví dụ tiêu biểu: Trong c ấ p điều khiển, các tr ạ ạm điều khiển cục bộ phân chia thự c hiện chứ c nă ng ng điều khiển cho cả dây chuy ền sả n xuấ t. t.
Ki n trúc t tr •
•
Các tr ạ ạm có vai trò bình đẳ ng, ng, có th ể hoạ t t động t ươ ươ ng ng đối độc lậ p như ng ng sự phối hợ p hoạ t t động t ạ ạo hiệu quả cao nhấ t. t. Ví dụ tiêu biểu: Kiế n trúc điều khiển thông minh các h ệ thống đèn tín hiệu giao thông. © 2005, Hoàng Minh S ơ n
31 4.3
• •
•
• •
ch giao ti Giống như một vùng nhớ chung Mỗi tr ạ ạm đều ch ứ a m ột ả nh nh c ủa b ả ng ng d ữ liệu toàn c ục, trong đó có toàn bộ dữ liệu cầ n trao đổi của t ấ ất cả các tr ạ ạm khác Mỗi tr ạ ạm gử i phầ n dữ liệu của nó t ớ ới t ấ ất cả các tr ạ ạm, m , mỗi tr ạ ạm t ự ự cậ p nhậ t t ả nh nh của bả ng ng dữ liệu toàn cục n, tiền định như ng ng kém hiệu quả Đơ n giả n, Áp dụng cho lượ ng ng dữ liệu nhỏ, tuầ n hoàn, thích h ợ p trong ki ế n trúc bình đẳ ng ng (ví dụ giữ a các tr ạ ạm điều khiển).
i tu n t (Polling, Scanning) • • • •
Một tr ạ ạm đóng vai trò Master Cơ chế hỏi/đáp tuầ n t ự ự n, tiền định, hiệu quả cao Đơ n giả n, Áp dụng cho trao đổi dữ liệu tuầ n hoàn, thích h ợ p trong ki ế n trúc Master/Slave
Tay ôi (Peer-To-Peer) •
•
•
Hình thứ c có liên k ế t , cấ u hình tr ướ ết hoặ c không liên k ế ết, ướ c hoặ c không cấ u hình tr ướ c, có xác nh ậ n hoặ c không xác nhậ n, n, có yêu c ầ u hoặ c ướ c, không có yêu c ầ u Linh hoạ t như ng ng thủ t ục có thể phứ c t ạ ạp Áp dụng cho trao đổi dữ liệu tuầ n hoàn hoặ c không tuầ n hoàn, thích hợ p cho t ấ ất cả các kiế n trúc khác nhau.
Chào/₫ặt hàng (Subscriber/Publisher) •
•
•
•
Nội dung thông báo đượ c m ột tr ạ ạm chủ chào và các tr ạ ạm client đặ t theo cơ chế tuầ n hoàn hoặ c theo sự kiện Thông báo chỉ đượ c g ử i t ớ ới các tr ạ ạ m đặ t (có th ể gử i riêng hoặ c g ử i đồng loạ t) t) Linh hoạ t, t, tiền định, hiệu suấ t cao Áp dụng cho trao đổi dữ liệu tuầ n hoàn hoặ c không tuầ n hoàn, thích hợ p cho ki ế n trúc Client/Server ho ặ c kiế n trúc bình đẳ ng. ng.
p th (Mailbox) •
•
•
•
•
Các tr ạ ạ m sử dụng một môi tr ườ ườ ng ng trung gian nh ư files, một cơ sở dữ liệu hoặ c một chươ ng ng trình server khác để ghi và đọc dữ liệu Mỗi b ứ c th ư mang dữ liệu và mã că n c ướ c (n ội dung thư hoặ c/và c/và ngườ i nhậ n) n) Gử i và nhậ n thư có thể diễn ra t ạ ại bấ t cứ thờ i điểm nào Linh hoạ t như ng ng kém hiệu quả , khó đả m bả o tính n ă ng ng thờ i gian thự c Áp dụng cho trao đổi dữ liệu có tính ch ấ t ít quan tr ọng, thích hợ p cho kiế n trúc Client/Server ho ặ c kiế n trúc t ự ự tr ị. © 2005, Hoàng Minh S ơ n
4.4 4.4.1
Đồng b hóa trong x lý phân tán
32
Đồng b hóa các tín hi u vào/ra
Cấ u trúc vào/ra phân tán s ử dụng bus tr ườ ng làm nả y sinh một v ấ ườ ng ấn đề chư a a đượ c xét t ớ t điều khiển số. Đó là sự không đồng bộ của ới trong lý thuy ế ết các tín hiệu vào/ra do th ờ i gian tr ễ t ừ n ừng g kênh khác nhau, khó xác định. Có hai cách giả i quy ế ế t sau: Đặ t cấ u hình bus và ch ọn chu k ỳ điều khiển sao cho chu k ỳ bus nhỏ hơ n nhiều so v ớ n ới chu k ỳ điều khiển để có thể bỏ qua thờ i gian tr ễ t ừ ừng g kênh khác nhau. Sử dụng loạ i bus tr ườ ng có h ỗ tr ợ ườ ng ợ đồng bộ hóa các đầ u vào/ra, ví d ụ Profibus-DP. •
•
Ví dụ, các lệnh dướ i đây đượ c sử dụng trong Profibus-DP để đồng bộ hóa các đầ u vào/ra: FREEZE: hi nh ậ n đượ c lệnh này, các DP-Slave s ẽ nhậ n dữ liệu đầ u ra gử i t ừ ừ DP-Master và sau đó sẽ không nhậ n dữ liệu đầ u ra gử i t ừ ừ DPMaster nữ a cho đế n khi k ế ết thúc lệnh FREEZE. UNFREEZE: L ệnh này làm k ế ết thúc lệnh FREEZE . Các DP-Slave sẽ tiế p t ục nhậ n dữ liệu đầ u ra gử i t ừ ừ DP-Master. SYNC: Khi nh ậ n đượ c lệnh này,t ấ ất c hoặ c một vài DP-Slave sẽ gử i dữ liệu t ớ ới DP-Master và sau đó DP-Master sẽ không nhậ n dữ liệu đầ u vào gử i t ừ ừ DP-Slave nữ a cho đế n khi k ế ết thúc lệnh SYNC. UNSYNC: L ệnh này làm ngừ ng ng lệnh SYNC. DP-Master s ẽ tiế p t ục nhậ n dữ liệu đầ u vào gử i t ừ ừ các DP-Slave. •
•
•
•
4.4.2
Đồng b hóa th i gian
Giữ a các tr ạ ạm điều khiển cục bộ và các tr ạ ạm v ậ ận hành cầ n có một sự đồ ự đồng bộ hóa thờ i gian một cách chặ t chẽ, vì đây là v ấ ấn đề liên quan hệ tr ọng t ớ ớ i tính chính xác và độ tin cậ y của các thông tin điều khiển, v ậ ận hành, thông báo báo động.
Để đồng bộ hoá thờ i gian trong m ột h ệ điều khiển phân tán, m ột tr ạ ạ m v ậ ận hành có th ể đượ c chọn làm qui chiế u, u, t ấ ất cả các tr ạ ạ m khác nối v ớ ới bus h ệ thống đượ c đồng b ộ hoá thờ i gian theo tr ạ ạm này thông qua các thông báo g ử i ng có hỗ tr ợ đồng lọat. Trong m ột số hệ thống mạ ng ợ tr ự ực tiế p việc đồng bộ hóa thờ i gian, ngườ i ta có thể chọn một thiế t bị đặ c chủng (time master ) phục v ụ mục đích này. Ta có th ể định nghĩa 2 tr ạ ng t ạ ạm v ậ ận hành làm qui chiế u như ng ạ i một th ờ i điểm ch ỉ có m ột tr ạ ạm mang tín hiệu đồng b ộ hoá, nế u tr ạ ạm đó b ị lỗi thì tr ạ t động. ạ m còn lạ i t ự độ ự động hoạ t Trong công nghi ệp chế biế n, n, khoả ng ng thờ i gian chênh lệch cho phép gi ữ a các tr ạ ạm thườ ng ng ở trong phạ m vi +/-5ms. Các thông báo th ờ i gian cầ n gử i đồng loạ t theo chu k ỳ t ối đa 1 phút. © 2005, Hoàng Minh S ơ n
33
CÔNG NGH ĐỐI TƯỢNG TRONG PHÂN TÁN
5
5.1
U KHI
p trình hướng đối tượng
L ậ ng đối t ượ ng đượ c coi là ph ươ ng ng pháp lậ p trình chuẩ n hiện ập trình h ướ ng ượ ng nay bở i nó có nhi ều ư u điểm lớ n so v ớ ng pháp c ổ điển. Mục tiêu mà ới các phươ ng lậ p trình h ướ ng ng đối t ượ ng đặ t ra là: ượ ng Đơ n giả n hoá việc xây dự ng ng và sử dụng các thư viện Cho phép dùng l ạ i mã. Nế u hàm thư viện không phù h ợ p v ớ ớ i yêu cầ u của ngườ i lậ p trình thì ng ườ i lậ p trình có kh ả nă ng ng sử a a đổi dễ dàng mà không cầ n tìm hiển ng ọn nguồn, không c ầ n phả i có mã ngu ồn của hàm đó trong tay. Mã sinh ra t ừ ừ thự c nghiệm dễ dàng đượ c dùng lạ i trong mã chính thứ c. c. Nói khác đi, ngườ i lậ p trình có điều kiện để thoả i mái sáng t ạ o ạo. . Cả i thiện khả nă ng ng bả o trì c ủa mã, mã ph ả i dễ hiểu, dễ sử a a đổi. Trên thự c t ế ế, việc biên soạ n tài liệu bao giờ cũng đi sau khá xa so v ớ ới mã đượ c viế t ra. Cho phép t ạ ng trình d ễ mở r ộng. Có th ể thêm chứ c nă ng ng cho ạ o ra chươ ng chươ ng ng trình mà không ả nh nh h ưở ng ng dây chuy ền đế n mã đã vi ế t. t. Mã đang có là mồ hôi, là ti ền bạ c, c, không th ể tr ả ng thêm ả giá đắ t cho mỗi ch ứ c nă ng vào. • •
•
•
L ậ ng đối t ượ ng phả i đượ c thự c hiện thông qua một ngôn ngữ ập trình h ướ ng ượ ng lậ p trình h ướ ng ng đối t ượ ng. Để đạ t ượ ng. t đượ c các mục tiêu trên, mọi ngôn ng ữ lậ p trình hướ ng ng đối t ượ ng đều thể hiện ba khái ni ệm: đóng gói (encapsulation, ( encapsulation, ượ ng ), đa hình (polymorphism ) và thừ a k ế packaging ), ế (inheritance ).). Các ngôn ng ữ lậ p trình hướ ng ng đối t ượ ng thông d ụng là C++, Java, Ada... ượ ng 5.2
Phân tích và thi t k
ướng đối tượng
Theo dòng phát tri ển của công nghệ công tin, ph ươ ng ng pháp lậ p trình đã tiế n hoá t ừ ừ lậ p trình không có c ấ u trúc lên l ậ p trình có c ấ u trúc và t ớ ới nay là lậ p trình hướ ng ng đối t ượ ng. Phươ ng ng pháp phân tích, thi ế t k ế ượ ng. ế phầ n mềm cũng đi theo các bướ c ti ế n hoá này. Tr ướ ướ c đây, ngườ i ta phân tích, thi ế t k ế ế phầ n m ềm theo ki ểu hướ ng ng thủ t ục procedure-oriented ( procedure-oriented ) hoặ c hướ ng ng dữ liệu (data- ). Theo ph ươ ng ng pháp này, ph ầ n mềm cầ n xây dự ng ng đượ c chia thành oriented ). giả i thuậ t và cấ u trúc dữ liệu. Trong quá trình phân tích, gi ả i thuậ t t đượ c phân chia thành các gi ả i thuậ t con đơ n giả n hơ n, n, cấ u trúc dữ liệu lớ n đượ c chia thành nhữ ng ng cấ u trúc nhỏ hơ n. n. Quá trình t ươ ng t ự ươ ng ự cũng đượ c tiế n hành trong quá trình thi ế t k ế ế. Phươ ng ng pháp phân tích, thi ế t k ế ng thủ t ục hoặ c hướ ng ng dữ liệu có ư u ế hướ ng n, nhanh chóng t ạ điểm đơ n giả n, ạo ra k ế ết quả (do tiế n hành theo ki ểu t ừ ừ trên xuống) như ng ng k ế ết qu ả t ạ ạo ra không ph ả n ánh bả n ch ấ t c ủa th ể giớ i th ự c d ẫ n © 2005, Hoàng Minh S ơ n
34 ng nhắ c, c, khó thay đổi khi yêu c ầ u đặ t ra thay đổi, khó m ở r ộng khi đế n c ứ ng hệ thống phát tri ển. Phươ ng ng pháp phân tích, thi ế t k ế ng đối ế phầ n m ềm tiên tiế n hi ện nay là hướ ng t ượ ng (object-oriented (object-oriented ), ), trong đó khối cơ bả n để xây dự ng ng nên phầ n mềm là ₫ố i i ượ ng n, đối t ượ ng là sự phả n ánh thế giớ i t ự t ượ ượ ng ng hay l ớ ớ p . Nói m ột cách đơ n giả n, ượ ng ự nhiên xung quanh. Ví dụ nế u trong h ệ thống điều khiển có các thiế t bị vào/ra số/t ươ ng t ự ươ ng ự như AI, AO, DI, DO thì trong ph ầ n mềm cũng có các lớ p AI, AO, DI, DO ; trong h ệ thống điều khiển có khâu điều khiển PID thì trong ph ầ n mềm cũng có lớ p PID,... Trong các hệ thống điều khiển, các đối t ượ ng có thể đạ i diện các thành ượ ng phầ n hệ thống như : Các thuậ t toán điều khiển X ử ử lý sự kiện và báo động X ử ử lý mệnh lệnh Quan sát và chẩ n đoán Cấ u hình vào/ra Mô phỏng Thông tin thi ế t k ế ế • • • • • • •
Việc tr ừ ng hoá th ế giớ i t ự ng như v ậ ừu t ượ ượ ng ự nhiên thành các lớ p đối t ượ ượ ng ậ y đượ c gọi là mô hình hoá h ướ ng ng đối t ượ ng. Dự a trên mô hình đối t ượ ng thu đượ c, c, ượ ng. ượ ng phươ ng ng pháp phân tích, thi ế t k ế ng đối t ượ ng s ẽ bổ sung thêm ế phầ n m ềm h ướ ng ượ ng các liên k ế ng m ớ i, i, tinh ch ỉnh l ạ i,... i,... để t ạ ết và lớ p đối t ượ ượ ng ạo ra một mô hình đối t ượ ng chi tiế t của phầ n mềm. Cuối cùng, ngườ i lậ p trình sử dụng một ngôn ượ ng ngữ lậ p trình nào đó (không nh ấ t thiế t ph ả i là ngôn ng ữ hướ ng ng đối t ượ ượ ng) ng) thể hiện mô hình đối t ượ ượ ng ng chi tiế t thành mã nguồn. Ư u điểm l ớ n nh ấ t c ủa phân tích, thiế t k ế ế phầ n mềm hướ ng ng đối t ượ ượ ng ng không ph ả i nằ m ở chỗ t ạ ạo ra chươ ng ng trình nhanh t ốn ít công sứ c, c, mà nằ m ở chỗ nó g ầ n v ớ ới thự c t ế ế và do đó thúc ng thành quả đ ng đượ c nh ư mã l ệnh hay đẩ y việc tái sử dụng l ạ i nh ữ ng ả đã xây dự ng bả n thiế t k ế ế. 5.2.1
Ngôn ng mô hình hóa th ng nh t UML
Để phục v ụ cho công việc mô hình hoá v ốn là cốt lõi của phân tích, thi ế t k ế ế ữ UML (unified modeling language ) đượ c phầ n mềm hướ ng ng đối t ượ ượ ng, ng, ngôn ng ữ sử dụng r ộng rãi. UML - m ột chuẩ n quốc t ế ế đượ c quả n lý bở i t ổ chứ c OMG (object management group ) - là m ột ngôn ng ữ đồ họa dùng để tr ự ực quan hóa, ng và t ư đặ c t ả ả , xây dự ng ư liệu hóa hệ thống thiên v ề phầ n mềm. UML đem lạ i cho ngườ i s ử dụng phươ ng ng pháp chuẩ n để viế t b ả n thiế t k ế ế hệ thống bao trùm t ừ ừ nhữ ng ng thứ cụ thể như các lớ p viế t bằ ng ng một ngôn ng ữ lậ p trình nào đó, các thành phầ n phầ n mềm có thể tái sử dụng,... cho đế n nhữ ng ng y ế ng ếu t ố tr ừ ừu t ượ ượ ng như chứ c n ă ng ng c ủa toàn bộ hệ thống. Vì lý do này, ngôn ng ữ UML không ch ỉ ng kiế n trúc và thiế t k ế đượ c sử dụng để mô t ả ả, xây dự ng ế của các hệ thống phầ n mềm, mà còn là m ột công cụ mô hình hóa thích h ợ p cho các hệ thống k ỹ © 2005, Hoàng Minh S ơ n
35 thuậ t nói chung và các h ệ thống điều khiển nói riêng. Trên Hình 5-1 là m ột biểu đồ lớ p UML, minh h ọa đơ n gi ả n các lớ p đối t ượ ng và quan hệ của chúng ượ ng trong một hệ thống điều khiển.
<
> Controller
sensor
actuator
Sensor
Actuator 1 controller
Thermometer
sensors
ControlSystem
Hình 5-1:
Valve
1.. 1..* 1..*
*
<>
valves
1 plant Plant
PT2 PT2
<>
Mô hình hóa m ộ n iề u ng UML ột h ệ ệ th ố ống g ₫ i ề khi ể ển s ử ử d ụ ụ ng
Có thể nói, UML là m ột ngôn ng ữ mô hình hóa r ấ nh, đa n ă ng. ng. Tài li ệu ất m ạ nh, v ề UML có r ấ ất nhiều, ví dụ [1][2]. 5.2.2
u thi t k
ẫu thi ế ết k ế ế là sự hình thứ c hoá c ủa cách tiế p cậ n t ớ ng M ẫ ới một v ấ ấn đề thườ ng gặ p trong ng ữ cả nh nh cụ thể. Mỗi mẫ u thiế t k ế ế mô t ả ả một giả i pháp cho m ột v ấ ấ n nh xác định. Giả i pháp này đã đượ c chứ ng ng đề thiế t k ế ế cụ thể trong một ngữ cả nh minh là hợ p lý, s ử dụng nhiều lầ n đem lạ i k ế ết quả t ốt và do đó đượ c tr ừ ừu t ượ ng hoá thành m ột m ẫ ẫu u . Nói m ột cách ngắ n gọn, mẫ u thiế t k ế ượ ng ế là kinh nghiệm thiế t k ế ng cách dùng các mẫ u thiế t k ế ế đúc k ế ết l ạ i.i. B ằ ng ế, ngườ i thiế t k ế ế không kh ả i thiế t k ế ế hệ thống của mình t ừ đầ ừ đầ u mà sử dụng lạ i kinh nghiệm đã có t ừ c, dẫ n đế n chấ t lượ ng ng thiế t k ế n, t ă n ừ tr ướ ướ c, ế t ốt hơ n, ăng g tính tái s ử dụng của bả n thiế t k ế là Abstract factory , Iterator , ế. Một số mẫ u thiế t k ế ế tiêu biểu là và Template method . Để xây dự ng ng các hệ thống phân tán Prototype , Singleton và Template hiện đạ i, i, ngườ i ta sử dụng các mẫ u thiế t k ế ế như Proxy , Broker , Marshaling/Unmarshaling , Adapter và Interface Mapping . Một tác phẩ m đượ c coi là kinh điển viế t v ề đề tài này là [3]. 5.2.3
Ph n m m khung
Phầ n mềm khung là m ột dạ ng ng phầ n mềm bao gồm thư viện và các mẫ u thiế t k ế ng trình ứ ng ng dụng bằ ng ng cách ế giúp ngườ i sử dụng dễ dàng t ạ ạo các chươ ng bổ sung các phầ n mã ứ ng ng dụng cụ thể vào các khung có s ẵ n. n. Điểm khác nhau giữ a một phầ n mềm khung v ớ ớ i một thư viện lớ p hay một thư viện hàm đơ n thuầ n là:
© 2005, Hoàng Minh S ơ n
•
•
36 Một thư viện chỉ là một t ậ ập hợ p của các lớ p hay hàm hoàn ch ỉnh phục v ụ một mục đích ứ ng ng dụng nào đó. Mã của một thư viện lớ p hay hàm đượ c chươ ng ng trình ứ ng ng dụng chủ động gọi. Một phầ n mềm khung chứ a một số lớ p chư a hoàn ch ỉnh, t ứ ức chư a sử dụng t ạ ạ o thể nghiệm đượ c ngay (lớ p tr ừ ừu t ượ ượ ng), ng), mà bắ t buộc phả i dẫ n xuấ t và bổ sung mã ứ ng ng dụng cụ thể. Việc xây dự ng ng một chươ ng ng trình ứ ng ng d ụng phả i tuân theo các m ẫ u thiế t k ế ế có s ẵ n. n. Không nh ữ ng ng chươ ng ng trình ứ ng ng d ụng g ọi mã trong ph ầ n m ềm khung, mà mã trong ph ầ n m ềm khung cũng chủ động gọi mã ứ ng ng dụng.
Có thể so sánh một ph ầ n m ềm khung như một khung nhà bê tông đã đượ c đúc sẵ n theo một thiế t k ế ế, ngườ i thi công c ầ n bổ sung các phầ n t ườ ườ ng ng bao, t ườ ườ ng ng ngă n, n, c ử a s ổ... theo thi ế t k ế đ ế đó, s ử dụng các thư viện là các viên gạ ch, ch, cánh cử a, a, t ấ n. ấm vách ngă n làm sẵ n. Một số ví dụ phầ n mềm khung tiêu bi ểu là MFC (Microsoft (Microsoft Foundation Class ), ), Microsoft’s COM (Component ( Component Object Model ), ), Borland’s VCL (Vitual (Vitual ). Component Library ). 5.3
Ph n m m thành ph
Phầ n mềm thành phầ n (component software ) là một hướ ng ng đi mớ i, i, phát triển trên cơ sở phươ ng ng pháp lậ p trình hướ ng ng đối t ượ ng. L ậ ng đối ượ ng. ập trình h ướ ng t ượ ng cho phép s ử dụng lạ i phầ n mềm (dướ i dạ ng ng các class ) vào giai đoạ n ượ ng biên dịch (compile-time ), ), trong khi ph ầ n mềm thành phầ n cho phép s ử dụng lạ i phầ n mềm (dướ i dạ ng ng các component ) vào cả giai đoạ n biên dịch và giai đoạ n ch ạ y (run-time ( run-time ). ). Do v ậ ậ y, theo t ư ư t ưở ưở ng ng phầ n m ềm thành phầ n, n, ngôn ngữ lậ p trình c ũng như “lớ p” p” là thứ y ế ếu, u, giao diện m ớ i là quan tr ọng. Nói nh ư v ậ ậ y t ứ ức là một thành ph ầ n phầ n mềm (component ) là các phầ n mềm có thể đượ c viế t t ở các ngôn ngữ khác nhau, đã đượ c hoàn ch ỉnh, biên dịch và đóng gói, có các giao di ện chuẩ n để có thể sử dụng thuậ n tiện, linh ho ạ t trong nhi ều ứ ng ng dụng khác nhau mà không c ầ n biên dịch lạ i. i. Thậ m chí trong một số tr ườ ng ườ ng hợ p, p, việc sử dụng các thành ph ầ n ph ầ n m ềm có sẵ n không đòi h ỏi l ậ p trình. Ví dụ ngườ i soạ n thả o một v ă ă n bả n có thể sử dụng k ế ết hợ p các thành phầ n phầ n m ềm có sẵ n nh ư trình soạ n th ả o công th ứ c, c, v ẽ đồ thị, ... mà c ả m t ưở ng ưở ng như t ấ ng trình soạ n thả o v ă n. ất cả đề ả đều nằ m trong chươ ng ă n bả n. Một số ví dụ mô hình ph ầ n mềm thành ph ầ n tiêu biểu là: Delphi VC JavaBeans Visual Basic VBX ActiveX-Controls •
•
•
•
Có thể nói, hầ u hế t các hệ thống phát tri ển ứ ng ng dụng trong các h ệ điều khiển phân tán hi ện nay thự c hi ện triệt để t ư ng h ướ ng ng đối t ượ ng và phầ n ư t ưở ưở ng ượ ng
© 2005, Hoàng Minh S ơ n
37 mềm thành ph ầ n. n. T ư ng sử dụng khối hàm, các kh ối đồ họa, các khối ư t ưở ưở ng chươ ng ng trình trong nhi ều hệ thống là nhữ ng ng ví dụ tiêu biểu. 5.4
Đối tượng phân tán
ng phân tán c ũng là một hướ ng ng phát tri ển t ự ng pháp Đối t ượ ượ ng ự nhiên t ừ ừ phươ ng luậ n hướ ng ng đối t ượ ng, bên cạ nh nh phầ n mềm thành ph ầ n. n. Trong khi ph ầ n mềm ượ ng, thành phầ n quan tâm t ớ ng để có thể sử dụng lạ i ới việc đóng gói các đối t ượ ượ ng một cách thuậ n tiện, thì đối t ượ ng phân tán t ậ ượ ng ập trung vào v ấ ấn đề kiế n trúc các đối t ượ ng có kh ả nă ng ng giao ti ế p một cách trong suốt trên các n ền và hệ ượ ng thống mạ ng ng khác nhau (giao (giao ti ế ) . Cũng giống như phầ n mềm thành ế p ng ầ m m). phầ n, n, một đối t ượ ng phân tán có th ể thự c hiện ở một ngôn ngữ bấ t k ượ ng ỳ , như ng ng nó ph ả i có các giao diện theo m ột chuẩ n nào đó để có thể hợ p tác v ớ ớ i nhau liên quá trình và xuyên m ạ ng ng một cách đơ n giả n như hai đối t ượ ng ượ ng trong một chươ ng ng trình. Nói nh ư v ậ ng phân tán c ũng đượ c sử ậ y, một đối t ượ ượ ng dụng khi đã biên dịch, đóng gói hoàn ch ỉnh d ướ i d ạ ng ng m ột server t server . Tuy nhiên, việc sử dụng chúng có thể v ẫ ẫn đòi hỏi phả i lậ p trình phía client phía client (m (một đối t ượ ượ ng ng phân tán hoặ c một chươ ng ng trình ứ ng ng dụng thông th ườ ng). ng). Ngày nay, đối t ượ ng phân tán và ph ầ n mềm thành phầ n đã gặ p nhau ở nhiều điểm, ví dụ ượ ng trong công ngh ệ COM/DCOM/ActiveX. Nói tóm l ạ i, i, m ột đối t ượ ượ ng ng phân tán là m ột đối t ượ ượ ng ng phầ n m ềm trong m ột hệ thống phân tán, có th ể đượ c s ử dụng b ở i các chươ ng ng trình ứ ng ng d ụng hoặ c các đối t ượ ng khác thuộc cùng một quá trình tính toán, thu ộc một quá trình ượ ng tính toán khác ho ặ c thuộc một tr ạ ng theo một phươ ng ng thứ c ạm khác trong m ạ ng thống nhấ t thông qua giao ti ế p ngầ m (không để ý t ớ ới giao thứ c truy ền thông cụ thể, trong su ốt v ớ ng và hệ thống m ạ ng). ng). ới h ệ điều hành, kiế n trúc phầ n c ứ ng Một đối t ượ ng phân tán có các thu ộc tính có th ể truy cậ p đượ c t ừ ượ ng ừ xa, có các phép toán có th ể gọi đượ c t ừ ừ xa. Mỗi đối t ượ ng phân tán (distributed ( distributed object ) - bấ t k ể dạ ng ng thự c hiện, nền ượ ng triển khai và v ị trí cài đặ t - đều có că n c ướ c phân biệt và có th ể đượ c s ử dụng như các đối t ượ ng n ội trình (in-process (in-process object ). ). L ợ t định ở đ ượ ng ợi thế quy ế ết ở đây là việc t ạ ng một ứ ng ng dụng phân tán đượ c thự c hiện ở mứ c tr ừ ng cao hơ n ạo dự ng ừu t ượ ượ ng so v ớ ng cổ điển, nhờ v ậ ới kiểu lậ p trình mạ ng ậ y trên nguyên t ắ ắc không khác bi ệt so v ớ ng một ứ ng ng dụng đơ n độc (stand-alone (stand-alone application ). ). ới t ạ ạo dự ng t đượ c điều đó, ta cầ n s ự hỗ tr ợ Để đạ t ợ hữ u hi ệu c ủa m ột ph ầ n m ềm khung ( framework ). ). Hiện nay có hai mô hình chuẩ n cho nhữ ng ng công trình khung đó framework là DCOM và CORBA. CORBA cho phép s ử dụng một cách r ộng rãi và linh ho ạ t t hơ n, n, trong khi DCOM hi ện nay hầ u như chỉ sử dụng đượ c trên các h ệ Microsoft Windows (95, 98, NT, 2000).
© 2005, Hoàng Minh S ơ n
38
KI N TRÚC ĐỐI TƯỢNG PHÂN TÁN
6
Một kiế n trúc đối t ượ ượ ng ng phân tán định nghĩa mô hình các đối t ượ ượ ng ng phân tán, mô hình giao ti ế p và chuẩ n giao tiế p giữ a các đối t ượ ượ ng ng phân tán. 6.1
Yêu c u chung
Một kiế n trúc đối t ượ ng phân tán t ạ ượ ng ạo điều kiện cho việc lậ p trình ở một mứ c tr ừ ng cao hơ n so v ớ ng pháp hướ ng ng đối t ượ ng cổ điển. Cụ thể, ừu t ượ ượ ng ới phươ ng ượ ng ng đối t ượ ng cổ điển nằ m ở “tính trong su ố ố t t điểm khác biệt so v ớ ới lậ p trình h ướ ng ượ ng (distribution transparency ), ), thể hiện qua các đặ c tính sau: phân tán ” (distribution Trong suốt v ị trí: Một client không c ầ n biế t r ằ ằng n g đối t ượ ượ ng ng server nằ m trong cùng một quá trình tính toán, thu ộc m ột quá trình tính toán khác trên cùng một tr ạ ạm hoặ c trên một tr ạ ạm khác, cách sử dụng đối t ượ ượ ng ng server là thống nhấ t. t. Ngượ c lạ i cũng v ậ ậ y. Trong suốt th ể hiện: Client không c ầ n quan tâm t ớ ng server ới vi ệc đối t ượ ượ ng ng ngôn ng ữ lậ p trình nào và b ằ ng ng phươ ng ng pháp nào, đượ c thể hiện bằ ng mà chỉ cầ n quan tâm t ớ ới giao diện để có thể sử dụng. Trong suốt nền: Một client không c ầ n biế t r ằ n ng server nằ m ằng g đối t ượ ượ ng trên hệ điều hành nào, trên n ền máy tính ki ế n trúc ra sao. Trong suốt truy ền thông: Mã th ự c hiện client và các đối t ượ ng server ượ ng không liên quan t ớ ng truy ền thông và giao th ứ c truy ền thông cụ thể· ới mạ ng •
•
•
•
6.2
Các m u thi t k
ng các yêu cầ u trên, ngườ i ta th ườ ng ng áp d ụng các mẫ u thiế t k ế Để đáp ứ ng ế sau đây: ng đạ i di ện cho server bên phía client, để client có thể Proxy : M ột đối t ượ ượ ng sử dụng đối t ượ ượ ng ng server đơ n giả n nh ư v ớ ới m ột đối t ượ ượ ng ng nội trình (ví d ụ thông qua con tr ỏ). Broker : B ộ phậ n che dấ u chi ti ế t v ề cơ chế truy ền thông c ụ thể, t ạ ạo điều kiện cho client/proxy và server giao ti ế p v ớ ới nhau mà không ph ụ thuộc vào nền và hệ thống truy ền thông bên d ướ i. i. Broker có m ặ t c ả bên client •
•
•
•
và server. ng trung gian, có vai trò thích ứ ng ng giao di ện gi ữ a broker Adapter : Đối t ượ ượ ng và server, t ạ p, cũng ạo điều kiện cho việc phát tri ển server một cách độc lậ p, như sử dụng các server có sẵ n (chư a tuân theo ki ế n trúc đối t ượ ng phân ượ ng tán). Marshaling/Unmarshaling : Cơ chế thự c hiện mã hóa và đóng gói các lờ i gọi hàm bên client thành các b ứ c điện t ươ ng ứ ng ng v ớ ươ ng ới cơ chế truy ền thông cấ p th ấ p, p, c ũng m ở gói và giả i mã các bứ c điện thành l ờ i g ọi hàm chi ti ế t t bên đối t ượ ng server. Các ph ươ ng ng thứ c t ươ ng t ự ượ ng ươ ng ự cũng đượ c th ự c hiện để
© 2005, Hoàng Minh S ơ n
39
•
chuy ển k ế ết quả t ừ ừ server tr ở ở lạ i client. Các nhi ệm v ụ này do proxy, server hoặ c/và c/và adapter đả m nhiệm. Interface Mapping : Giả i quy ế ết v ấ ấn đề trong suốt thể hiện bằ ng ng cách mô t ả ả các giao diện bằ ng ng một ngôn ngữ độc lậ p IDL (Interface (Interface Description Language ) và cho phép ánh x ạ ạ sang thự c hiện bằ ng ng một ngôn ngữ cụ thể. Process A
Process B
1: op ( )
client
4: upcall( )
proxy
adapter
2: marshal ( )
broker_A Hình 6-1: 6.3
5: op( )
server
3: dispatch( ) IPC
broker_B
Các m ẫ ng server ẫu thi ế ết k ế ế giao ti ế ế p gi ữ ữa client và ₫ố i t ượ ượ ng
Gi i thi u chu n CORBA
Chuẩ n CORBA [4] do t ổ chứ c OMG (Object (Object Management Group ) quả n lý và phát triển. Đây là hiệp hội lớ n nhấ t của các nhà phát tri ển, sả n xuấ t và ứ ng ng dụng phầ n mềm trên thế giớ i, i, hiện nay có gầ n 1.000 thành viên. Chu ẩ n CORBA đư a ra một kiế n trúc đối t ượ ng phân tán cùng v ớ ng dụng ượ ng ớ i các đặ c t ả ứ ả ứ ng cho nhiều lĩnh v ự ực khác nhau, nhiều nền khác nhau và nhiều ngôn ngữ lậ p trình khác nhau. Vì tính trung l ậ p của nó, CORBA đượ c hỗ tr ợ ợ r ấ ất r ộng rãi, đặ c biệt trong các h ệ thống thông tin th ươ ng ng mạ i, i, phầ n mềm giao dịch kinh doanh và dịch v ụ viễn thông. Tuy nhiên, c ũng do tính độc l ậ p c ủa nó dẫ n đế n nhiều lý do mà CORBA không th ự c sự mạ nh nh ở các hệ thống ứ ng ng qui mô v ừ ừa a và nhỏ. Hình 6-2 minh h ọa c ấ u trúc mô hình CORBA, trong đó b ộ phậ n tr ừ ừu t ượ ượ ng ng Broker (ORB) giữ vai trò quan tr ọng nhấ t trung gian mang tên Object Request Broker (ORB) t (broker ). ). ORB cho phép khách hàng (client ( client ) sử dụng dịch v ụ của đối t ượ ượ ng ng phục v ụ (server ) mà không cầ n bi ế t c ụ thể dạ ng ng thự c hi ện, n ền triển khai và v ị trí cài đặ t c ủa đối t ượ ượ ng ng phục v ụ. Ki ế n trúc ở đây đượ c thự c hiện theo các mẫ u thiế t k ế đ c. ế đã trình bày trong ph ầ n tr ướ ướ c.
© 2005, Hoàng Minh S ơ n
40 Client
Dynamic Invocation
Object Implementation
IDL Stubs
ORB Interface
Static IDL Skeleton
Dynamic Skeleton
Object Adapter
Object Request Broker Core
Hình 6-2: 6.4
C ấ ấ u trúc mô hình CORBA
Gi i thi u chu n COM/DCOM
COM (Component (Component Object Model ) là một mô hình đối t ượ ượ ng ng thành ph ầ n, n, m ột mô hình cơ sở cho nhiều công ngh ệ phầ n mềm quan tr ọng của hãng Microsoft. COM định nghĩa chuẩ n nhị phân và đặ c t ả ng ả k ế ết nối cho việc t ươ ươ ng tác giữ a các thành phầ n của một phầ n mềm v ớ ới một thành ph ầ n khác trên cùng một quá trình tính toán, trên nhi ều quá trình khác nhau hay trên các máy tính riêng bi ệt. Hãng Microsoft c ũng hy v ọng một ngày không xa COM cũng đượ c sử dụng phổ biế n trên các nền phầ n cứ ng ng và hệ điều hành khác nhau. COM là m ột mô t mô hình l ậ ng ậ p trình c ơ ơ s ở ở ₫ố i t ượ ượ ng thi ng thiế t k ế để ế để nâng cao sự t ươ ươ ng tác giữ a các thành phầ n phầ n mềm, nghĩa là, cho phép hai ho ặ c nhiều ứ ng ng dụng hay các thành ph ầ n d ễ dàng giao ti ế p v ớ t ới nhau cho dù chúng đượ c viế t bở i nhiều ngườ i khác nhau trong nh ữ ng ng khoả ng ng thờ i gian khác nhau, b ằ ng ng nhiều ngôn ngữ lậ p trình khác nhau th ậ m chí chạ y trên các máy tính khác nhau, không hay cài đặ t cùng một hệ điều hành. Để thự c hiện điều này, COM ng dụng k ế định nghĩa và thự c thi các k ỹ thuậ t cho phép các ứ ng ết nối v ớ ới nhau như các ₫ố i t ượ ượ ng ng ph ầ ần m ề ềm m. Nói cách khác, COM đư a ra một mô hình t ươ ng tác mà qua đó một khách ươ ng hàng (client (client ) có thể k ế ết nối v ớ ới các nhà cung cấ p dịch v ụ (object ) đó một cách thuậ n ti ện. V ớ ng dụng k ế ới COM, các ứ ng ết n ối v ớ ới nhau và v ớ ới h ệ thống qua các t ậ ng thứ c hay nhữ ng ng hàm ập hợ p của các lờ i gọi hàm - xem nh ư là các phươ ng thành viên, còn gọi là giao là giao di ệ ện n . Theo cách t ư c” kiểu mạ nh nh giữ a các ư duy COM, m ột giao diện là một “quy ướ c” thành phầ n phầ n mềm nhằ m cung cấ p nhữ ng ng liên quan dù nh ỏ như ng ng hữ u dụng t ậ ng đượ c định nghĩa ập các thao tác liên quan danh ngh ĩa. Một đối t ượ ượ ng phù hợ p v ớ ng. Một đối t ượ ng ới COM là m ột sự thể hiện đặ c biệt của đối t ượ ượ ng. ượ ng COM giống như một đối t ượ ng C++ nh ư ng ng khác ở chỗ một client không truy ượ ng nhậ p tr ự ng COM mà s ẽ qua các giao diện mà đối t ượ ng cung ực tiế p vào đối t ượ ượ ng ượ ng cấ p. p. © 2005, Hoàng Minh S ơ n
41 6.4.1
Giao di
Cách duy nhấ t t để truy cậ p dữ liệu hoặ c tác động lên một đối t ượ ng COM là ượ ng thông qua giao di ện c ủa nó. M ột giao di ện th ự c ch ấ t là một nhóm các hàm có sẵ n liên quan v ớ ới nhau. Có th ể so sánh một giao di ện v ớ ới một lớ p cơ sở tr ừ ừu t ượ ng chỉ gồm các hàm thuầ n ả o trong ngôn ng ữ C++. Giao di ện định nghĩa ượ ng cú pháp các hàm thành viên, g ọi là các phươ ng ng thứ c (methods (methods ), ), kiểu tr ả ả v ề, số lượ ng ng và các ki ểu tham số. Một giao di ện không qui định cụ thể các phươ ng ng thứ c đó đượ c thự c hiện như thế nào. Th ự c chấ t việc thể hiện giao di ện là sử dụng con tr ỏ truy nhậ p vào m ột m ả ng ng các con tr ỏ khác và các con tr ỏ này tr ỏ t ớ ới các hàm của giao diện. Thông thườ ng, ng, tên của giao di ện đượ c bắ t t đầ u bằ ng ng chữ cái I, ví dụ như IUnknown, IData... Định danh thậ t của giao diện thể hiện ở chỉ danh GUID của nó, còn tên ch ỉ để thuậ n tiện cho việc lậ p trình và h ệ thống COM sẽ sử dụng các chỉ danh này khi thao tác trên giao di ện. Thêm vào đó, khi giao di ện có tên ho ặ c kiểu cụ thể và tên của các hàm thành viên, nó chỉ định nghĩa làm thế nào một client có th ể sử dụng giao diện ng đáp ứ ng ng mong đợ i t ừ đố ng qua giao di ện đó. Ví dụ, giao di ện đó và nhữ ng ừ đối t ượ ượ ng IStack v ớ ớ i hai hàm thành viên PUSH và POP ch ỉ định nghĩa nhữ ng ng thông s ố và kiểu tr ả ả v ề của hai hàm này và nh ữ ng ng gì chúng đượ c mong đợ i thự c hiện t ừ ừ client. Có thể nói, giao di ện là phươ ng ng tiện để đối t ượ ng đư a ra nhữ ng ng dịch v ụ của ượ ng nó. Có b ốn điểm quan tr ọng v ề giao diện mà ta cầ n biế t: t: M ộ ột giao di ệ ện không ph ả ải là m ộ ột l ớ ớ p theo p theo định nghĩa l ớ p thông th ườ ng ng b ở i một lớ p có thể đượ c thể hiện qua một đối t ượ ng còn một giao diện thì ượ ng không bở i nó không kèm theo s ự thự c thi. ột giao di ệ ện không ph ả ải là m ộ ộ t ượ ng bở i một giao di ện chỉ đơ n thuầ n M ộ t ₫ố i t ượ ng b là một nhóm các hàm liên quan và là chu ẩ n nhị phân mà qua đó client và object có th ể giao tiế p v ớ ng thì có th ể thự c thi trên ới nhau. Còn đối t ượ ượ ng nhiều ngôn ng ữ v ớ n ới nhiều thể hiện c ủa tr ạ ạng g thái bên trong, và do đó nó có thể cung cấ p con tr ỏ đế n các hàm thành viên của giao diện. Giao di ệ ện có ki ể ểu m ạ ạ nh: nh: Mỗi một giao di ện đều có m ột định danh riêng nên ngă n chặ n đượ c khả nă ng ng xung đột có th ể x ả ả y ra đối v ớ ới các tên ta n n ng trình. đặ t cho giao di ện. Điều này t ă ăng g thêm tính b ền v ữ ững g cho chươ ng Các giao di ệ ện n ₫ượ c phân bi ệ ệt rõ ràng: Mọi sự thay đổi nh ư thêm hoặ c xoá hàm thành viên, thay đổi ngữ nghĩa đều dẫ n t ớ ới hình thành m ột giao diện mớ i và đượ c gán một định danh mớ i. i. Do đó giao di ện mớ i và cũ không thể xung đột v ớ ới nhau cho dù m ọi s ự thay đổi ch ỉ đơ n thuầ n là v ề ngữ nghĩa. •
•
•
•
6.4.2
Đối tượng COM
Một đối t ượ ng COM có th ể đượ c lậ p trình b ằ ng ng một ngôn ng ữ thông dụng ượ ng như C, C++ ho ặ c VB. Một đối t ượ ng có thể cung cấ p nhiều giao diện. T ấ ượ ng ất cả © 2005, Hoàng Minh S ơ n
42 các đối t ượ ng COM đều có một giao diện cơ bả n là IUnknown. Đây là giao ượ ng diện c ơ sở cho t ấ ng phả i h ỗ ấ t c ả các giao diện khác trong COM mà m ọi đối t ượ ượ ng tr ợ ợ. Bên cạ nh nh đó, đối t ượ ượ ng ng c ũng có khả nă ng ng thự c thi nhiều giao diện khác. Các đối t ượ ượ ng ng v ớ ới nhiều giao di ện có thể cung cấ p các con tr ỏ truy nhậ p vào nhiều b ả ng ng chứ a các hàm. Các con tr ỏ này có thể gọi đượ c con tr ỏ giao diện. Trong COM, giao diện là một bả ng ng các con tr ỏ ( giống như vtable trong C++) vào các hàm đượ c thự c hiện bở i đối t ượ ượ ng. ng. IUnknown
Các giao di ện khác
Hình 6-3:
A
Đối tượng
B
Mô hình m ộ t ₫ố i t ượ ng COM ột ượ ng
Trong thự c t ế ế, m ột con tr ỏ tr ỏ đế n m ột giao diện là một con tr ỏ t ớ ới m ột con tr ỏ tr ỏ t ớ ới bả ng ng các con tr ỏ vào các hàm thành viên. Tuy nhiên, để tránh cách diễn đạ t quanh co này khi nói v ề giao diện ngườ i ta th ườ ng ng sử dụng thuậ t ngữ con tr ỏ giao diện để thay thế . Khi đó sự thự c thi giao di ện đơ n giả n là dùng con tr ỏ tr ỏ t ớ ng các con tr ỏ t ớ ới m ả ng ới các hàm. Hình 6-4 sau minh h ọa cho điều này. Giao di n IUnknown
Như đã trình bày ở trên, mọi đối t ượ ượ ng ng COM, không có s ự loạ i tr ừ ừ, đều h ỗ tr ợ ng thứ c AddRef(), AddRef(), Release() ợ giao diện IUnknown. Giao di ện này có ba ph ươ ng và QueryInterface(). QueryInterface(). T ấ ất cả các giao diện khác đều dẫ n xuấ t t ừ ừ giao diện IUnknown và đều có các con tr ỏ đế n các phươ ng ng thứ c này. Hai phươ ng ng thứ c đầ u tính toán s ố đế m tham chiế u để điều khiển th ờ i gian sống của đối t ượ ng. Khi đối t ượ ng đượ c t ạ u, ta cầ n gọi phươ ng ng thứ c ượ ng. ượ ng ạo lầ n đầ u, AddRef() c ủa đối t ượ ng để t ă n m. Khi không còn c ầ n t ớ ng, ta g ọi ượ ng ăng g số đế m. ới đối t ượ ượ ng, phươ ng ng thứ c Release() để giả m s ố đế m tham chiế u. u. Khi ngườ i dùng cu ối cùng gọi phươ ng ng thứ c Release(), số đế m giả m v ề 0 thì đối t ượ ng sẽ t ự ượ ng ự hu ỷ .
© 2005, Hoàng Minh S ơ n
43 Interface Pointer Interface Function Table pointer
Pointer to Function1 Pointer to Function2 Pointer to Function3 ...
Function1(...) { ... } Function2(...) { ... } Function3(...) { ... }
...
Hình 6-4:
S ự n ự th ự ực thi con tr ỏ ỏ giao di ệ ện
Ta có thể thấ y rõ v ấ ng thứ c ấ n đề hơ n qua sự thự c thi đơ n giả n hai ph ươ ng IUnknown::AddRef() và IUnknown::Release() dướ i đây: //tăng biến thành viên ch ứa số đếm tham chiếu ULONG IUnknown::AddRef() { return ++m_RefCount; } //giảm biến chứa số đếm tham chiếu, nếu bằng 0 thì hu ỷ đối tượng ULONG IUnknown::Release() { --m_RefCout; if (m_RefCount == 0) { delete this; return 0; } return m_RefCount; }
Khi ta có m ột con tr ỏ đế n đối t ượ ng thì th ự c ch ấ t, t, nhữ ng ng gì ta có ch ỉ là m ột ượ ng con tr ỏ đế n m ột trong s ố các giao diện c ủa nó, còn đó là giao di ện nào thì l ạ i phụ thuộc vào cách mà ta có con tr ỏ đó. T ừ ừ con tr ỏ vào một giao di ện, ta có thể truy cậ p đượ c con tr ỏ vào các giao diện khác mà đối t ượ ng hỗ tr ợ ượ ng ợ. Đối t ượ ng có thể hoặ c không hỗ tr ợ ng mọi đối ượ ng ợ giao diện mà ta quan tâm, nh ư ng t ượ ượ ng ng đều đượ c đả m bả o hỗ tr ợ ợ giao diện Iunknown nên ta có th ể yêu cầ u các giao diện khác qua ph ươ ng ng thứ c IUnknow::QueryInterface(). Các giao diện đượ c định danh bở i các IIDs (Interface IDs ) ví dụ như IID_IUnknown của giao diện IUnknown. Khi ta g ọi phươ ng ng thứ c QueryInterface(), ta gử i IID của giao diện mà ta cầ n cho nó và một con tr ỏ đế n tham số đầ u ra. Nế u đối t ượ ng h ỗ tr ợ u, nó s ẽ tr ả ượ ng ợ giao diện yêu cầ u, ả lạ i đoạ n mã báo thành công S_OK (định nghĩa là 0) và đặ t vào tham số đầ u ra mà ta cung cấ p con tr ỏ đế n giao di ện yêu cầ u. u. Nế u đối t ượ ng không h ỗ tr ợ ượ ng ợ giao diện này nó báo lỗi và đặ t tham số đầ u ra là NULL. Ta xét m ột sự thự c thi đơ n giả n sau: HRESULT IUnknown::QueryInterface (REFIID riid , LPVOID * ppv) { //kiểm tra IID xem đối tượng có h ỗ trợ giao diện yêu cầu không,
© 2005, Hoàng Minh S ơ n
44 //nếu hỗ trợ ta tăng số đếm tham chi ếu, đưa vào biến đầu ra cung c ấp // một con tr ỏ đến giao diện, và báo r ằng đã thành công if (riid == IDD_IUnknow) { AddRef(); *ppv = (LPVOID) this; return S_OK; } //nếu không h ỗ trợ giao diện ta đặt biến đầu ra cung c ấp là NULL và // trả về một mã thông báo l ỗi else { *ppv = NULL; return E_NOINTERFACE; } }
₫ối tượng và các giao di Các client ch ỉ ỉ k ế ết n ố ối qua con tr ỏ ỏ t ớ ới các giao di ệ ện n. Khi m ột client truy
Quan h gi •
•
nhậ p vào một đối t ượ ng, client chỉ đơ n thuầ n thông qua con tr ỏ giao ượ ng, diện. Con tr ỏ giấ u đi n ội dung của thao tác bên trong, ta không th ể thấ y chi tiế t v ề đối t ượ ng mà chỉ có thể thấ y thông tin v ề tr ạ ượ ng ạng ng thái c ủa chúng. ng có thể Đố i t ượ ượ ng ng có th ể ể th ự ực thi nhi ề ều giao di ệ ệ n n. Một lớ p thự c thi đối t ượ ượ ng thự c thi nhiều giao di ện, ví dụ qua phươ ng ng pháp đa thừ a k ế ế.
6.4.3
Giao ti p gi a client và object
Cách th c c a s giao ti
Tr ướ ướ c khi sử dụng một đối t ượ ượ ng ng COM trong m ột ứ ng ng dụng, ta cầ n khở i t ạ ạ o cơ chế COM trong ứ ng ng dụng bằ ng ng lờ i gọi CoInitialize(...) và sau đó t ạ ạo đối t ượ ượ ng ng COM mong muốn. Client k ế ết n ối v ớ ới object thông qua con tr ỏ giao diện và không bao giờ truy nhậ p tr ự ực ti ế p vào object. Khi c ầ n s ử dụng d ịch v ụ nào ng, client hi ểu r ằ ng nó c ầ n có con tr ỏ đế n một hay nhiều giao đó của đối t ượ ượ ng, ằ ng diện của đối t ượ ng. Để t ạ ng COM và nhậ n một con tr ỏ vào giao ượ ng. ạo m ột đối t ượ ượ ng diện, ta có th ể gọi một trong hai hàm CoCreateInstance() hoặ c CoCreateInstanceEx() v ớ ng. ới các tham số xác định đối t ượ ượ ng.
Client Application
Hình 6-5:
Object Interface Pointer
Giao ti ế a ng và khách hàng ế p gi ữ ữa ₫ố i t ượ ượ ng
Trong m ột số tr ườ ng hợ p, p, bả n thân client sẽ đóng vai trò m ột object và cung ườ ng cấ p cho các đối t ượ ng khác nhữ ng ng chứ c n ă ng ng g ọi các sự kiện ho ặ c đư a ra các ượ ng dịch v ụ của nó. Lúc này client là m ột đối t ượ ng thự c thi còn object là m ột ượ ng khách hàng.
© 2005, Hoàng Minh S ơ n
45 Application
Object
Object Application
Hình 6-6:
Giao ti ế ng ế p gi ữ ữa hai ₫ố i t ượ ượ ng
Giao ti p trên cùng m t quá trình tính toán
Khi client và đối t ượ ng COM cùng n ằ m trên một quá trình tính toán thì ượ ng client sẽ k ế ết nối tr ự ực tiế p v ớ ới object qua con tr ỏ giao diện. Quá trình client client
server object
Hình 6-7:
Giao ti ế a ng và khách hàng trên cùng quá trình ế p gi ữ ữa ₫ố i t ượ ượ ng
Giao ti p liên quá trình
Nế u client và object không cùng n ằ m trên m ột không gian địa ch ỉ hay nằ m trên các máy tính khác nhau thì COM s ẽ thiế t lậ p một đối t ượ ng đạ i diện ượ ng (proxy) bên phía client và m ột đối t ượ ng gốc (stub) bên phía object. Proxy và ượ ng stub sẽ k ế ế t nối v ớ ới nhau qua kênh giao ti ế p (channel). Khi đó, client s ẽ thự c hiện lờ i g ọi d ịch v ụ trong không gian địa ch ỉ của nó t ứ ức là giao ti ế p tr ự ực ti ế p v ớ ới proxy. Proxy s ẽ thu thậ p (marshal) các thông s ố, gử i chúng đế n stub qua kênh giao tiế p. p. Stub th ự c hi ện l ờ i g ọi đế n đối t ượ ng d ịch v ụ, đóng gói k ế ượ ng ế t qu ả và đư a v ề cho proxy. Quá trình client client
Quá trình dịch vụ cục bộ hay từ xa
server
Proxy server Stub
proxy
object
COM Engine
Hình 6-8: Giao ti ế a ng và khách hàng trên hai quá trình ế p gi ữ ữa ₫ố i t ượ ượ ng khác nhau
© 2005, Hoàng Minh S ơ n
46
Ngôn ng mô t giao di
6.4.4
IDL (Interface (Interface Description Language ) là một ngôn ng ữ kiểu mạ nh nh dùng để mô t ả ng COM, độc lậ p v ớ ả giao diện c ủa đối t ượ ượ ng ới ngôn ngữ lậ p trình. Cú pháp của ngôn ngữ này không phứ c t ạ ạp so v ớ ới một ngồn ngữ lậ p trình. Khi xây dự ng ng một đối t ượ ng COM, ta c ầ n mô t ả ng thứ c của giao diện bằ ng ng ượ ng ả các phươ ng cách sử dụng ngôn ngữ này. Sau khi t ạ ạp xong file mô t ả ả giao diện này, ta cầ n lư u nó ở dạ ng ng *.idl để chươ ng ng trình dịch có thể hiểu đượ c. c. Chươ ng ng trình d ịch (IDL-Compiler) sẽ dịch sang một ngôn ng ữ lậ p trình, ví d ụ C++. Khi đó một giao diện sẽ đượ c chuy ển sang thự c hiện bằ ng ng một cấ u trúc thích h ợ p trong ngôn ngữ lậ p trình, ví d ụ một lớ p thuầ n ả o trong C++.
Mô hình đối tượng thành ph n phân tán DCOM
6.4.5
DCOM (Distributed COM) m ở r ộng COM cho vi ệc giao tiế p giữ a các đối t ượ ng phân tán, thu ộc các chươ ng ng trình ch ạ y trên nhiều máy tính khác nhau ượ ng trên mạ ng ng LAN, WAN hay Internet. V ớ ng d ụng có thể phân tán ới DCOM, các ứ ng trên nhiều v ị trí đem l ạ i s ự thuậ n lợ i cho chính ứ ng ng d ụng. Ngày nay khi ng ườ i ta nói t ớ ng bao hàm DCOM trong đó. ới COM là c ũng thườ ng DCOM là m ột công nghệ lý t ưở ng cho nhữ ng ng ứ ng ng dụng nhiều t ầ n ưở ng ầng g lớ p bở i vì nó cho phép nh ữ ng ng thành ph ầ n ActiveX làm vi ệc ngang qua mạ ng. ng. Nhi ều ngườ i có thể phát triển thêm cùng một thành phầ n mà không c ầ n phả i lo lắ ng ng v ề lậ p trình mạ ng, ng, tính t ươ ng thích hệ thống hoặ c sự hợ p nhấ t của nhữ ng ng ươ ng thành phầ n xây d ự ng ng t ừ ng ngôn ng ữ khác nhau. Nó d ẫ n t ớ ừ nhữ ng ới hạ thấ p giá thành và làm giả m sự phứ c t ạ ng dụng thành ph ầ n. n. ạp của việc phân tán các ứ ng
Client
Stub
Proxy
CoCreateInstance()
COM Runtime
Security DCE RPC Provider
Security DCE RPC Provider
Protocol Stack
Protocol Stack
Component
CoCreateInstance()
(Remote) Activation
SCM
SCM DCOM networkprotocol
Hình 6-9: Giao ti ế a ng và khách hàng trên hai máy khác ế p gi ữ ữa ₫ố i t ượ ượ ng nhau v ớ ới DCOM
© 2005, Hoàng Minh S ơ n
47 Khi các đối t ượ ng ở trên các máy tính khác nhau, DCOM đơ n giả n thự c ượ ng hiện s ự thay thế truy ền thông liên quá trình c ục b ộ bở i giao thứ c m ạ ng. ng. Hình dướ i đây minh họa rõ nét cách thứ c giao tiế p gi ữ a các đối t ượ ượ ng ng n ằ m trên hai máy tính khác nhau. Thư viện COM Run-Time cung cấ p nhữ ng ng dịch v ụ hướ ng ng đối t ượ ng t ớ ượ ng ới khách hàng và thành phầ n muốn giao tiế p v ớ ới nhau đồng thờ i sử dụng RPC và nhà cung cấ p an toàn để t ạ ng đóng gói tuân theo giao th ứ c ạ o chuẩ n nối mạ ng truy ền thông cho DCOM. Một ứ ng ng dụng client có thể t ạ ng trên m ột máy tính khác qua ạ o một đối t ượ ượ ng hàm API CoCreateInstance(). Ta xét m ột ví dụ đơ n giả n sau: HRESUL hr = CoCreateInstance( CLSID_CData, // định danh l ớp của đối tượng yêu c ầu NULL, CLSCTX_REMOTE_SERVER, // d ịch vụ từ xa được yêu cầu &si); // tham số đầu ra để chứa con tr ỏ giao diện
© 2005, Hoàng Minh S ơ n
48
CÁC MÔ HÌNH NG D NG TÁN
7
7.1
U KHI N PHÂN
IEC-61131
IEC (International (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 ớ n, trong đó các phầ n ới nó. Chuẩ n IEC 61131 bao g ồm 9 phầ n, 1 đế n 5 là quan tr ọng nhấ t: t: Phầ n 1 (General Information ): ): Đư a ra các định nghĩa chung và các đặ c tính chứ c nă ng 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 nh quá trình, thi ế t bị lậ p trình và giao diện ngườ i-máy. i-máy. Phầ n 2 (Equipment ( Equipment requirements ): ): Đặ t ra các yêu c ầ u điện h ọc, c ơ học và chứ c nă ng ng cho các thi ế t bị; định nghĩa phươ ng ng pháp kiểm tra và th ử nghiệm các kiểu thiế t bị t ươ ng ứ ng. ng. Các yêu c ầ u đượ c định nghĩa là ươ ng nhiệt độ, độ ẩ m, 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 (Ladder Diagram , LD), bi ểu đồ khối chứ c nă ng ng (Function (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 ă (Structured Text , ST) thì m ột phươ ng ng pháp ă n b ả n có cấ u trúc (Structured 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 (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 ( Communication ): ): Đề cậ p t ớ ng pháp truy ền thông gi ữ a các ớ i ph ươ ng 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. 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
ấu hình (configuration) nào Mỗi PLC t ạ ại một thờ i điểm bấ t k ỳ chỉ có một c ấ nguyên (resource) bên trong đặ c đó. M ột c ấ u hình bao g ồm m ột hay nhiều tài nguyên (resource) tr ư ưng n g cho khả nă ng ng x ử ử lý tín hiệu của PLC. M ỗi tài nguyên bao g ồm ít nhấ t t ươ ng ng trình (program) hoạ t ụ (task). một ch ươ t động dướ i sự điều khiển của tác v ụ Chươ ng ng trình đượ c xây dự ng ng nên t ừ ố i ch c h ứ ức n ă ă ng (function ng (function block) ho ặ c ừ các kh ố 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 c (global variable) và l ố ối truy c ậ ậ p (access path) là nhữ ng ng c ơ chế giao tiế p trong chươ ng ng trình và gi ữ a các tài nguyên v ớ ớ i nhau.
CONFIGURATION RESOURCE
RESOURCE
T AS K
TASK
TASK
TASK
PR O G RA M
PROG RAM
PROG RAM
PR O G RA M
FB
FB
FB
GLOBAL and DIRECTLY and INSTANCE -SPECIFIC
FB
REPRESENTED VARIABLES INITIALIZATIONS
ACCESS PATHS C om om m un un ic ic at at io n fu fu nc nc t i o n
( S ee ee IE IE C 11 1 1 31 31 -5 -5 ) Execution control path Variable access paths
or FB
Function block Variable
Hình 7-1: 7.1.2
Mô hình ph ầ ần m ề ềm theo IEC 61131-3
Mô hình giao ti
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 ng trình bằ ng 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. n. FB1 a
Hình 7-2:
FB2 b
Giao ti ế ng trình ế p bên trong ch ươ ươ ng
Giá tr ị của bi ế n c ũng có th ể đượ c truy ền gi ữ a các chươ ng 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 ớ ng trình s ử ớ i t ấ ất cả các chươ ng dụng nó. © 2005, Hoàng Minh S ơ n
50 CONFIGURATION C PROGRAM A VAR_EXTERNAL x: BOOL; END_VAR
PROGRAM B VAR_EXTERNAL x: BOOL; END_VAR
FB1 FB_X a
x
VAR_GLOBAL x: BOOL; END_VAR
FB2 FB_Y b
x
Hình 7-3: Giao ti ế ng trình trong cùng m ộ ế p gi ữ a các ch ươ ươ ng ột c ấ ấu hình b ằ n c ằng g bi ế ến toàn c ụ ụ c
Hình 7-4 bi ểu diễn cách giao tiế p đa nă ng ng nhấ t thông qua kh ố ối ch ứ ức n ă ă ng ng ng này đượ c mô t ả giao ti ế ế p . Chi ti ế t v ề loạ i khối ch ứ c nă ng ả trong IEC 61131-5, ở n ng truy ền thông, giá tr ị của biế n có đây chỉ lư u ý r ằ ằng, g, sử dụng khối chứ c n ă ng thể đượ c truy ền giữ a các bộ phậ n của chươ ng ng trình, gi ữ a các chươ ng 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 a chươ ng ng trình ch ạ y trong PLC v ớ ớ i các hệ thống khác không ph ả i PLC.
CONFIGURATION C PROGRAM
FB1 FB_
send SEND SD1
a
Hình 7-4:
CONFIGURATION D rcv1 PROGRAM RCV RD1
FB2 FB_ b
Giao ti ế n ế p qua kh ố ối ch ứ ứ c n ă ăng g
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 B
PROGRAM A FB1 FB_X a
Z 'CSX'
TO_FB2 READ RD1 VAR_1
FB2 FB_Y b
VAR_ACCESS CSX: P1.Z : REAL READ_ONLY;
Hình 7-5:
Giao ti ế ng d ẫ ế p qua ₫ườ ng ẫn truy c ậ ậ p
IEC-61499
7.2
IEC 61499 là tiêu chu ẩ n liên quan đế n việc sử dụng các khối chứ c nă ng ng v ớ ới t ư ư cách là các module phầ n mềm trong hệ thống đo lườ ng ng - điều khiển phân tán. Đứ ng ng t ừ ừ quan điểm hướ ng ng đối t ượ ượ ng, ng, mỗi khối chứ c nă ng ng đượ c coi là một đối t ượ ượ ng ng phân tán v ớ ới m ột ch ứ c n ă ng 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. t. IEC 61499-1 định nghĩa kiế n trúc chung c ủa hệ thống đo lườ ng ng - điều khiển, ở đó khối chứ c nă ng ng ng các mô hình tham khả o. o. Có t ấ đóng vai trò c ốt lõi, dướ i dạ ng ấ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 ng - điều khiển quá trình công nghi ệp ở dạ ng 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 ng truy ền thông nh ư trong Hình 7-6 d ướ i đây. Các mạ ng ng này có thể đượ c t ổ chứ c theo thứ bậ c. 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 ệ n ệ th ố ống g theo IEC 61499
© 2005, Hoàng Minh S ơ n
52 Mỗi chứ c nă ng ng đượ c thự c hiện bở i hệ thống đo lườ ng ng - điều khiển đượ c mô hình hóa b ằ ng ng một ứ ng ng dụng như trong hình v ẽ trên. Một ứ ng ng dụng có thể nằ m trong m ột thiế t bị duy nhấ t, t, như ứ ng 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 ng dụng A và B. Ví d ụ, một ứ ng 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 ng khối chứ c nă ng. 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.
a Giao di ệ ện quá trình là 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 ự ươ ng ự, 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 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 ạ ng truy ền thông phía trên và các tài nguyên bên trong thi ế t bị. ạ giữ a mạ ng 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 ớ ng dữ liệu và sự ới tài nguyên thành d ạ ng 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, 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 ạ ng tham số, khở i động, xóa, ... mà không ạo ra, đặ t cấ u hình, th ể hiện bằ ng nh hưở ng ng đế n các tài nguyên khác bên trong thi ế t bị. ả nh Chứ c nă ng 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 ớ ng ớ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 ng dông côc bé (hoÆc phÇn côc bé cña øng dông ph©n t¸n
¸nh x¹ truyÒn th«ng
Sù kiÖn Khèi chøc n¨ng giao diÖn dÞch vô
D÷ liÖu ThuËt to¸n
Khèi chøc n¨ng giao 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 : ng d ụ ụ ng ng c ụ ục b ộ ộ (hay thành phầ n cục bộ của một ứ ng Một hoặ c nhiều ứ ng 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 ng thự c hiện phép toán c ầ n cho ứ ng ng dụng. ạ quá trình có Thành ph ầ n ánh x ạ a 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 ứ ng ng phục v ụ giao tiế p. p. Khối chứ c đượ c thự c hiện bở i các khối chứ c nă ng nă ng ng phục v ụ giao tiế p cũng là kh ối chứ c nă ng ng thông th ườ ng ng như ng 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ó thông có nhiệm v ụ ánh x ạ ạ dữ liệu và sự kiện giữ a a ứ ng 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 ng phục v ụ giao tiế p. p. B ộ ộ ph ậ ậ n l ậ ậ p l ị ịch c h có nhiệm v ụ điều khiển sự thự c thi của các khối hàm bên trong ứ ng ng d ụng c ũng như dòng dữ liệu truy ền gi ữ a chúng tuân theo nhữ ng ng yêu cầ u v ề thờ i gian và trình t ự t định bở i sự xuấ t hiện của ự quy ế ết 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 ng dụng đượ c mô hình hóa ở dạ ng ng một mạ ng ng các khối chứ c nă ng ng (function block network). M ạ ng ng này đượ c cấ u thành t ừ ng là các ừ các nút mạ ng © 2005, Hoàng Minh S ơ n
54 khối chứ c nă ng ng và liên k ế ng là liên k ế ết giữ a các nút mạ ng ết dữ liệu (data (event connections ). ). connections ) và liên k ế ết sự kiện (event Một ứ ng 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 ng thích hợ p đối v ớ ứ ng ết ớ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 ừ ng này bao gồm : ừ tài nguyên khác. Các ph ả n ứ ng 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 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 ng cách chỉ ra m ối liên hệ giữ a các khối ch ứ c Ứ ng nă ng 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 ế t ng dụng. định việc lậ p lịch và thự c thi của mỗi tài nguyên bên trong ứ ng Luång sù kiÖn
∗
∗ Luång d÷ liÖu
Hình 7-9: 7.2.5
Mô hình ứ ng ng d ụ n ụng g
Mô hình kh i ch c n ng
Mỗi khối chứ c nă ng 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 ng nào đó function ( function block type ) cũng t ươ ng t ự ươ ng ự như mỗi đối t ượ ng là một biế n thể hiện của một lớ p nào đó. ượ ng Các đặ c tính của khối chứ c nă ng: ng: Tên biế n (là tên của chính khối chứ c nă ng ng đó) và tên ki ểu (là tên của kiểu khối chứ c nă ng 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 ế nh hưở ng ng t ớ ết sự kiện v ớ ới bên ngoài. Chính các s ự kiện đầ u vào sẽ ả nh ớ i việc thự c thi thuậ t toán bên trong kh ối chứ c nă ng. 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 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 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 n g v ề chứ c nă ng, ng, đượ c xác định bằ ng 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 thùc hiÖn (che giÊu)
Luång sù kiÖn
Tªn kiÓu ThuËt to¸n (che giÊu)
Luång d÷ liÖ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 ố n ối ch ứ ứ c n ă ăng g
Thuậ t toán bên trong kh ối hàm, v ề nguyên t ắ c , không nhìn th ấ y đượ c t ừ ắc, ừ 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, 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 ng thái t ồn t ạ ại không đổi giữ a nhữ ng ng lầ n gọi thuậ t toán của khối hàm như ng 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 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, 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, 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ộ • •
•
ng ngoài ph ầ n chung k ể trên còn có thêm ph ầ n Đặ c t ả ả kiểu khối chứ c nă ng ng đặ c tr ư n định nghĩa chứ c n ă ng ưng g 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 ng : Khối chứ c nă ng ng cơ bả n là đơ n v ị chứ c nă ng ng nhỏ nhấ t, t, không th ể phân chia hơ n đượ c nữ a a Khối ch ứ c n ă ng ng k ế ết h ợ p (Siêu khối) là loạ i kh ối ch ứ c n ă ng ng h ợ p thành t ừ ừ nhiều khối chứ c nă ng ng khác nhỏ hơ n Khối chứ c nă ng ng dịch v ụ giao tiế p là lo ạ i khối chứ c nă ng ng cung cấ p các dịch v ụ giao diện giữ a các khối chứ c nă ng ng khác v ớ ới nhau hoặ c giữ a tài •
•
•
© 2005, Hoàng Minh S ơ n
56 nguyên và mạ ng ng truy ền thông và gi ữ a tài nguyên và quá trình công nghệ đượ c điều khiển. ng cơ bả n, n, chứ c nă ng ng đặ c tr ư n Đối v ớ ớ i kiểu khối ch ứ c n ă ng ưng g của nó đượ c diễn ng cách mô t ả t động dự a trên giá tr ị đạ t bằ ng ả thuậ t toán bên trong kh ối đó hoạ t 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. ng k ế p, đặ c t ả t Đối v ớ ới kiểu kh ối chứ c n ă ng ết hợ p, ả kiểu còn bao g ồm các liên k ế ết dữ liệu và liên k ế ng khối ch ứ c n ă ng ng thành phầ n bên trong ết s ự kiện gi ữ a nh ữ ng khối chứ c nă ng ng k ế p. ết hợ p.
Đối v ớ ới kiểu khối chứ c nă ng ng phục v ụ giao tiế p, p, chứ c nă ng ng đặ c tr ư ưng n g đượ c mô t ả ng cách ánh x ạ ả bằ ng ạ 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 ng dụng cụ thể đượ c phân tán bằ ng ng cách phân b ố các khối chứ c nă ng 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 ng là không nhìn th ấ y đượ c đối v ớ ng dụng ới ứ ng sử dụng nó cho nên kh ối chứ c nă ng ng phi là đơ n v ị nhỏ nhấ t không phân chia ng đượ 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 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 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 ng giữ a các khối ch ứ c n ă ng ng không đượ c phép bị nh h ưở ng ng b ở i s ự phân tán. Tuy nhiên, so v ớ ng d ụng t ậ ả nh ới ứ ng ập trung, các y ế ếu t ố v ề thờ i gian và độ tin cậ y c ủa ch ứ c n ă ng ng truy ền thông có ả nh nh h ưở ng ng đáng k ể t ớ ng dụng phân tán. ới các y ế ế u t ố v ề thờ i gian và độ tin cậ y của toàn ứ ng 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 ạ ng cái ạo riêng để qun lý t ấ ất c nhữ ng còn lạ i. 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
độ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 ng và cuối cùng sau khi hoàn thành nhi ệm v ụ - đượ c i của hệ thống. hủ y bỏ. Điều này đượ c mô hình hóa b ằ ng ng cái g ọi là vòng ₫ờ i © 2005, Hoàng Minh S ơ n
57 ng c ấ u thành nên h ệ thống như thiế t b ị, Đế n l ượ t mình, các đơ n v ị chứ c n ă ng tài nguyên, ứ ng ng dụng mỗi cái cũng có vòng đờ i riêng của mình. ng t ạ Để hỗ tr ợ ợ cho đơ n v ị chứ c nă ng ạ 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, ng, các tr ạ n ạng g thái hoạ t t động phả i đượ c định nghĩa, ví dụ “Đang hoạ t t động”, “Có thể cấ u hình”, “Đã nạ p”, p”, “Đã dừ ng”, ng”, ... Mỗi tr ạ t động của một đơ n v ị chứ c nă ng ng chỉ rõ hành động nào ạng ng thái hoạ t ng ứ ng. ng. đượ c chấ p nhậ n và hành vi mong muốn t ươ ươ ng Hệ thống có th ể đượ c t ổ chứ c theo cách m ột kh ối ch ứ c n ă ng ng nào đó có th ể sở hữ u hoặ c nhậ n đượ c quy ền thay đổi tr ạ ạng ng thái của khối chứ c nă ng 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 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 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 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, 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
TS
8 8.1
CHU N GIAO TI P CÔNG NGHI
MMS
MMS (Manufactoring (Manufactoring Message Specification ) là một chuẩ n quốc t ế ế cho việc xây dự ng ng lớ p ứ ng 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, 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 ng đượ c chuẩ n hóa trong ISO/IEC 9506. ươ ng MMS có xuấ t x ứ ứ t ừ ừ MAP (Manufactoring (Manufactoring Automation Protocol ), ), m ột giao thứ c do hãng General Motors kh ở i x ướ ướ ng ng phát tri ển vào đầ u nhữ ng 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 ự t định hướ ng ng t ớ ự động hóa, nó đã tác động có tính ch ấ 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 ạ ng lớ p ứ ng ng dụng trong nhi ều hệ ạo cơ sở quan tr ọng trong vi ệc xây dự ng thống bus tr ườ ng. Một s ố ví d ụ như FMS (Fieldbus (Fieldbus Message Specification ) c ủa ườ ng. PROFIBUS, PMS (Peripheral ( Peripheral Message Specification ) của Interbus, MPS (Manufactoring Periodic/aperiodic Services ) của WorldFIP và RAC (Remote ( 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, ng, có thể thích hợ p v ớ ng dụng và ngành ới r ấ ất nhiều loạ i thiế t bị, nhiều ứ ng công nghiệp khác nhau. Ví dụ, d ịch v ụ Read cho ng trình ứ ng ng Read cho phép một ch ươ ng dụng hoặ c m ột thiế t b ị đọc m ột ho ặ c nhiều bi ế n m ột lúc t ừ ng trình ừ một ch ươ ng 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 ứ ng chươ ng ng trình điều khiển t ự ng trình điều khiển giám sát, các ự động hay chươ ng dịch v ụ và thông báo MMS đều như nhau. V ề cơ bả n, 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 ng nối, truy nh ậ p biế n, n, điều khiển sự kiện, cài đặ t và can thiệp chươ ng 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”, o”, đạ i diện cho các đối t ượ ng v ậ ượ ng ượ ng ậ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 ả t ả o VMD ả dịch v ụ, định nghĩa mô hình thi ế t bị sả n xuấ t (Virtual Manufactoring Device ), ), các dịch v ụ trao đổi giữ a các nút mạ ng, ng, các thuộc tính cũng như tham số t ươ ng ứ ng ng v ớ ươ ng ới VMD và các dịch v ụ. Phầ n 2: Đặ c t ả c, định nghĩa trình t ự ả giao thứ c, ự các thông báo đượ c g ử i đi © 2005, Hoàng Minh S ơ n •
•
59 trong mạ ng, ng, cấ u trúc và ki ểu mã hóa các thông báo, t ươ ng tác giữ a a ươ ng 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 - mở r ộng phầ n c ốt lõi nhằ m thích ứ ng (Companion Standard) - m ng cho các l ĩnh v ự ực Control (phầ n 3), Numeric Control ứ ng ng dụng điều khiển khác nhau như Robot Control (ph (phầ n 4), Programmable Controller (ph và Process Control (ph Controller (phầ n 5) và Process Control (phầ n 6). Một trong nh ữ ng ng điểm đặ c tr ư n ng VMD. Trên ưng g của MMS là mô hình đối t ượ ượ ng quan điểm hướ ng ng đối t ượ ng, mô hình VMD cho phép các thi ế t b ị đóng vai trò ượ ng, một server, cung c ấ p các dịch v ụ cho các client thông qua các đối t ượ ng ả o. o. ượ ng Các đối t ượ ng ả o này đạ i diện cho nhữ ng ng đối t ượ ng khác nhau trong một hệ ượ ng ượ ng thống k t, trong đó có cả các biế n, n, chươ ng ng trình, sự kiện, v.v... M ỗi ỹ thuậ t, chươ ng ng trình ứ ng 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: ượ ng ng hợ p thành t ừ VMD : Bả n thân VMD đượ c coi là m ột đối t ượ ượ ng ừ các đối t ượ ng khác, đạ i diện cho toàn b ộ một thiế t bị. ượ ng 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 ng trình có th ể nạ p xuống (download ) và nạ p lên (upload ) đượ c. c. Program Invocation : Một chươ ng ng trình chạ y trong b ộ nhớ chính đượ c hợ p thành bở i một hoặ c nhiều domain . y Variable : Một biế n dữ liệu có ki ểu (ví dụ số nguyên, số thự c dấ u phả ng). động, mả ng). n. Ki ể ểu 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. ng dùng để kiểm soát việc truy nh ậ p cạ nh nh tranh Semaphore : Một đối t ượ ượ ng 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. ng đạ i diện cho tr ạ n Event Condition : Một đối t ượ ượ ng ạng g thái của một sự kiện Event Action : Một đối t ượ ượ ng ng đạ i diện hành động đượ c thự c hiện khi tr ạ n ạng g thái của một sự kiện thay đổi ng đạ i diện cho một chươ ng ng trình ứ ng ng Event Enrollment : Một đối t ượ ượ ng dụng mạ ng ng đượ c thông báo khi khi tr ạ n ạng g thái của một sự kiện thay đổi. ng ghi lạ i diễn biế n của các sự kiện và biế n theo Journal : Một đối t ượ ượ ng 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 ng v ớ ng c ơ bả n đượ c gi ớ i thiệu tóm ươ ng ới các đối t ượ ượ ng t ắ ng 8.1. ắt trong b ả ng Bả ng ng 8.1: 8.1:
T ổ n c h v ụ n ổng g quan các d ị ịch ụ MMS c ơ ơ b ả ả n
Nhóm dịch vụ Environment and General Management Services VMD Support Services
Mô tả tóm tắt các dịch vụ Khở Khởi tạ tạo/Kế o/Kết thúc các quan hệ hệ truyề truyền thông
Ví dụ - Initiate - Abort
Thông tin về về tr ạng thái củ của mộ một thiế thiết bị ảo, về về các đặc đặc tính, thông số số và đối đối tượ tượng ng củ của nó
- Status - UnsolicitedStatus - Identity
Domain Management Services
Tạo lậ lập, nạ nạp lên/nạ lên/nạp xuố xuống và xóa Domain
- InitiateDownloadSequence - DownloadSegment - InitiateUploadSequence - UploadSegment - RequestDomainDownload - RequestDomainUpload
Program Invocation Management Services
Tạo lậ lập, xóa và kiể kiểm soát Program Invocation
Variable Access Services
Truy nhậ nhập các biế biến củ của mộ một VMD
- CreateProgramInvocation - Start - Stop - Resume - Reset - Read - Write
Semaphore Management Services
Đồng Đồng bộ bộ hóa việ việc truy nhậ nhập cạ cạnh tranh tài nguyên củ của VMD
- DefineSemaphore - DelelteSemaphore - ReportSemaphoreStatus
Operator Communication Services
Hỗ tr ợ việ việc giao tiế tiếp vớ với mộ một tr ạm thao tác
- Input - Output
Event Management Services
Xử lý sự sự kiệ kiện, sự sự cố
- AlterEventCondition Monitoring - EventNofification - AcknowledgeEvent Notification
Journal Management Services
Ghi biên bả bản các sự sự kiệ kiện và thông tin
- InitiateJournal - ReportJournalStatus
8.2 8.2.1
IEC-61131-5 Mô hình giao ti p m ng
ng c ủa chuẩ n IEC 61131-5 là các d ịch v ụ do các thiế t b ị điều khiển Đối t ượ ượ ng 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 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 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
HÖ thèng m¹ng truyÒn th«ng
M¸y tÝnh §KGS Client
Client
Server
C¸c thiÕt bÞ kh¸c cã giao tiÕp víi PLC
Client PLC2
PLC1
M¸y mãc hoÆc qu¸ tr×nh kü thuËt Hình 8.1: Mô hình giao ti ế ế p m ạ ạng ng theo IEC 61131-5
ch v giao ti
8.2.2
Các dịch v ụ giao tiế p cung cấ p thông tin tr ạ ạng ng thái và ch ỉ thị sự cố của các thành phầ n: 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 ư n n ưu ý r ằ ằng, g, status cung c ấ p thông tin v ề tr ạ ạng g thái của thiế t b ị điều khiển và các thành ph ầ n phầ n cứ ng, 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 ng thái cũng không cung cấ p thông tin v ề quá trình đượ c ng trình ứ ng ng dụng trên PLC. điều khiển cũng như chươ ng Các dịch v ụ giao tiế p đượ c li ệt kê trong b ả ng 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 ng 8.2: 8.2:
Các d ị ị ch ch v ụ ụ giao ti ế ế p
STT
Các dịch vụ vụ giao tiế tiếp
PLC yêu cầ cầu
PLC đáp Khố Khối hàm ứng có sẵ sẵn
1
Kiể Kiểm tra thiế thiết bị bị
X
X
X
2
Thu thậ thập dữ dữ liệ liệu
X
X
X
3
Đi Điều khiể khiển
X
X
X
4
Đồng Đồng bộ bộ hóa giữ giữa các chươ chương ng trình ứng dụ dụng X
X
X
5
Báo động động
X
0
X
6
Thự Thực hiệ hiện chươ chương ng trình và điều khiể khiển vào/ra
0
X
0
7
Truyề Truyền nạ nạp chươ chương ng trình ứng dụ dụng
0
X
0
8
Quả Quản lý nố 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
Các dịch v ụ giao tiế p đượ c thự c hiện qua các kh ối chứ c nă ng ng giao tiế p (communication function block, CFB ), ), như đượ ng dướ i đây. ư đượ c liệt kê trong b ả ng Bả ng ng 8.3: 8.3:
Các kh ố n ối ch ứ ức n ă ăng g giao ti ế ế p (CFB)
STT Chức năng 1 Định Định địa địa chỉ chỉ các các biế biến từ từ xa 2 Kiể Kiểm tra thiế thiết bị bị 3 4 Thu thậ thập dữ dữ liệ liệu kiể kiểu hỏ hỏi tuầ tuần tự tự 5 Thu thậ thập dữ dữ liệ liệu kiể kiểu lậ lập trình 6 7 Đi Điều khiể khiển tham số số 8 Đi Điều khiể khiển liên động động 9 10 Báo động động được được lậ lập trình 11 12 Quả Quản lý nố nối
Tên khối chức năng REMOTE_VAR STATUS, USTATUS READ, USEND, URCV WRITE, SEND, RCV NOTIFY, ALARM CONNECT
Lưu ý: Các khố kh ối hàm UXXX thể thể hiệ hiện các hàm dị dịch vụ vụ không cầ cần yêu cầ cầu (unsolicited services).
Ki m tra thi t b
Các khối hàm STATUS và USTATUS h ỗ tr ợ n ợ việc PLC ki ểm tra tr ạ ạng g thái c ủa các thiế t bị t ự độ ự động hóa khác. Thu th p d li
Dữ liệu trong các thi ế t bị khác có thể đượ c biểu diễn qua các bi ế n. n. Có hai phươ ng 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 ự polled hoặ c nhiều biế n t ạ ại thờ i điểm đượ c chươ ng ng trình ứ ng 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 ậ t định b ở i các ập trình: Th ờ i điểm d ữ liệu cung cấ p cho PLC đượ c quy ế ế t thiế t bị khác. Các kh ối URCV/USEND đượ c sử dụng trong các ch ươ ng ng trình ứ ng ng dụng PLC để nhậ n dữ liệu t ừ ừ và gử i dữ liệu đế n các thiế t bị khác. •
•
u khi
Hai phươ ng 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 (interlocked ) parametric t động của các thiế t bị đượ c điều khiển bằ ng ng Điều khiển tham số: Hoạ t 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 ừ ng trình ứ ng ng dụng. ừ một chươ 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 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 ng trình ứ ng 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. n. Qu n lý các m i liên k
Các chươ ng ng trình ứ ng ng dụng trong PLC s ử dụng khối CONNECT để quả n lý các mối liên k ế ết. t . 8.3
OPC
Tiế n bộ của các hệ thống bus tr ườ ng cùng v ớ ườ ng ới s ự phổ biế n c ủa các thiế t b ị cậ n tr ườ ng thông minh là hai y ế t định t ớ ng sang cấ u ườ ng ế u t ố quy ế ết ớ i sự chuy ển hướ ng 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 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 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 ng v ấ ấn đề thườ ng 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 ng t ươ ng tác giữ a các thiế t bị t ự độ ươ ng ự động hóa của nhiều nhà sả n xuấ t khác nhau. Bên c ạ nh nh đó, tích h ợ p theo chiều dọc đòi hỏi khả nă ng ng k ế ng dụng cơ sở như đo lườ ng, ng, điều khiển v ớ ng dụng ết nối giữ a các ứ ng ớ i các ứ ng cao cấ p h ơ n nh ư điều khiển giám sát và thu th ậ p d ữ liệu (supervisory ( supervisory control i-máy (human-machine (human-machine interface , and data acquisition , SCADA), giao di ện ngườ i-máy HMI) và hệ thống điều hành sả n xu ấ t (manufactoring ( manufactoring execution system , MES). Việc sử dụng một chuẩ n giao di ện vì v ậ t . ậ y tr ở ở thành một điều kiện tiên quy ế ết. Tiêu biểu cho hướ ng 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 ự động hóa quá trình công nghi ệp. 8.3.1
ng quan v ki n trúc OPC
OPC (OLE (OLE for Process Control ) là một chuẩ n giao di ện đượ c hiệp hội OPC Foundation xây d ự ng ng và phát tri ển. Dự a trên mô hình đối t ượ ượ ng 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 ừ t, t ạ ng các ứ ng ng ừ các quá trình k ỹ thuậ t, ạo cơ sở cho việc xây dự ng dụng điều khiển phân tán mà không b ị phụ thuộc vào mạ ng 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 ng để phổ biế n sang các hệ điều hành thông d ụng khác. V ớ ng phầ n mềm k ế ới mục đích ban đầ u là thay thế cho các dạ ng ết nối như I/ODrivers và DDE, OPC qui định một số giao diện chuẩ n cho các ch ứ c nă ng ng như : Khai thác, truy nh ậ p dữ liệu quá trình (Data ( 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,..) ườ ng, ườ ng, 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 ợ ng khác như an hoàn hệ thống ươ ng ợ các chứ c nă 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 ấ ng d ụng h ỗ tr ợ ất c ả các ứ ng ợ 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 ng d ụng khai thác, truy nh ậ p d ữ liệu theo một cách đơ n giả n, n, thống nhấ t t Hỗ tr ợ ợ truy nhậ p dữ liệu theo cơ chế hỏi tuầ n t ự ự polling ( polling ) hoặ c theo sự kiện (event-driven (event-driven ) Đượ c t ối ư u cho vi ệc sử dụng trong m ạ ng 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 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 ng trình ph ầ n m ềm ph ục v ụ gọi là OPC-Server là OPC-Server , trong đó chứ a các mục dữ liệu (OPC-Item (OPC-Item ) đượ c t ổ chứ c thành các nhóm (OPC- (OPC- ). Thông th ườ ng, ng, một OPC-Server đạ i di ện m ột thiế t b ị thu thậ p dữ liệu Group ). như PLC, RTU, I/O ho ặ c m ột c ấ u hình mạ ng 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 ng d ự a trên ý t ưở ng ứ ng ng d ụng công ngh ệ COM nhằ m đơ n ưở ng giả n hóa, chuẩ n hóa việc khai thác d ữ liệu t ừ ng và thiế t t ừ các thiế t b ị cậ n tr ườ ườ ng bị điều khiển, t ươ ng t ự ươ ng ự như việc khai thác một hệ thống cơ sở dữ liệu thông thườ ng. 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. 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, ngôn ngữ dùng ở đ ở đây language hay IDL) không ph ụ thuộc vào nền cài đặ t (gọi là interface definition language hay t hay ngôn ngữ lậ p trình. Visual Basic, VB Scripts,...
Automation Interface
OPC Server
OPC Group -Item -Item C++, Java, Delphi,...
Hình 8.2:
Custom Interfaces
Giao thøc riªng
a ã h g n é ® ù t Þ b t Õ i h t c ¸ C
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 ượ ng tr ọng nhấ t trong ki ế n trúc OPC là OPC-Server và OPC-Group. Trong khi OPCServer 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 ng t ổ chứ c các phầ n t ử ượ ng ử dữ liệu (items ) thành t ừ n p. Thông th ườ ng, ng, mỗi item ứ ng ng v ớ ừng g nhóm để tiện cho việc truy nhậ p. ớ 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à Server là một đối t ượ ng phân tán, cung c ấ p giao diện OPC chuẩ n cho ượ ng các ứ ng ng dụng. Việc giao tiế p qua các mạ ng ng công nghi ệp đượ c thự c hiện bằ ng ng các lờ i gọi đơ n giả n, n, thống nhấ t không ph ụ thuộc vào mạ ng ng truy ền thông và giao thứ c đượ c sử dụng. ng pháp truy c ậ p dữ liệu : OPC Server h Server hỗ tr ợ ợ hai phươ ng Polling : Client ch Client chủ động yêu cầ u Server cung 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 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
Hình 8.3:
OPC-Server
OPC-Server
Ki ế ến trúc Client/Server trong OPC
Interfaces (OPC Chuẩ n OPC hi ện nay qui định hai ki ểu giao diện là Custom là Custom Interfaces (OPC Interface (OPC Taskforce, 1998c) 2. Kiểu thứ Taskforce, 1998b) và và Automation Interface (OPC 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 ng n ằ m ở mô hình đối t ượ ượ ng, ng, ở các ngôn ngữ lậ p trình h ỗ tr ợ ng, hiệu suấ t sử dụng. Custom Interface dùng các ợ mà cũng còn ở tính nă ng, ngôn ngữ như C/C++phứ c t ạ ng hiệu suấ t cao, d ự a tr ự ạ p hơ n như ng ực tiế p trên các đối t ượ ng COM. Automation COM. Automation Interface dùng n, phư ong ong Interface dùng các ngôn ngữ đơ ượ ng ữ đơ n giả n, pháp lậ p trình đơ n giả n, n, hiệu quả thấ p, 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 ượ ng ượ ng 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 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 ừ n ng giao di ện này chỉ là các giao diện theo ừng g giao di ện. Chính vì nhữ ng 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ệ ni ệm “Automation” đượ c dùng ở đ ở đây hoàn toàn không có liên quan t ớ i k ỹ thuậ thuật tự tự động độ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 nh đó, các công c ụ khác nhau c ũng cung cấ p một số phầ n đích này. Bên c ạ nh frameworks ) thích hợ p để hỗ tr ợ mềm khung ( frameworks ợ ngườ i lậ p trình. IUnknown
IOPCCommon
OPC Server
IOPCServer IOPCItemProperties [IOPCServerPublicGroups ] [IOPCBrowseServerAddressSpace] [IPersistFile ]
IConnectionPointContainer
Hình 8.4:
IUnknown
IOPCItemMgt
OPC Group
IOPCGroupStateMgt [IOPCPublicGroupStateMgt]
IOPCSyncIO IOPCAsyncIO2 IConnectionPointContainer
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 ạ ng OPC-Server ạo một (bả n sao) đối t ượ ượ ng 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 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 ượ ng 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 ượ ng 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 ng mối liên hệ v ớ ượ ng ớ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 ượ ng để đọ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 a X ử n ử lý các lỗi trong t ừ ừng g bướ c nêu trên.
8.3.3
OPC Automation Interface
Giống như đối v ớ ới các đối t ượ ượ ng ng OLE-Automation khác, vi ệc sử dụng các ng của OPC Automation Interface đượ c đơ n giả n hóa nhi ều. Cụ thể, đối t ượ ượ ng 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 ạ ng ứ ng ng dụng RAD (rapid (rapid application ạ o dự ng development ) như Visual Basic. Mặ t trái của v ấ ng pháp này ph ả i tr ả ấ n đề lạ i là, sự đơ n giả n hóa của phươ ng ả giá bằ ng ng sự hạ n chế trong phạ m vi chứ c nă ng, 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 ng truy ền thông công nghi ệp, thì hai điểm y ế ếu nói sau tr ở ở nên r ấ ất 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 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 ng của một ứ ng ng dụng đối v ớ ớ i một sự kiện một cách đáng k ể. •
•
p: OPC nhóm OPC nhóm các giao diện và các methods c methods của chúng theo th ứ t ự ự 3 lớ p: OPC Server class OPC Group class OPC Item class • • •
8.4 8.4.1
Ngôn ng
ánh d u kh
XML
Gi i thi u chung
XML (eXtensible 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 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, ng và quả n lý bở i t ổ chứ c W3C (World (World Wide Web Consortium ). ). Tuy đượ c xây dự ng nhiên, đằ ng 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 ng: dạ ng ng nhị phân (binary) và dạ ng ng v ă đượ c lư u tr ữ ữ dướ i một trong hai d ạ ng: ă n bả n (text). Dạ ng ng l ư u tr ữ ng trình x ử ữ nhị phân thuậ n ti ện h ơ n cho các chươ ng ử lý, trong khi con ng ườ i không th ể đọc đượ c dạ ng ng này còn dạ ng ng v ă ă n bả n thuậ n lợ i ng lạ i không hiệu quả trong lư u tr ữ đối v ớ ới con ngườ i như ng ữ, x ử ử lý. Mặ t khác, khi lự a ch ọn khuôn d ạ ng 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 ng chuẩ n đã có sẵ n hay t ự ng một khuôn d ạ ng ng cho ự xây dự ng riêng mình. Các loạ i ngôn ng ữ đ ng ữ đánh dấ u chình là cách lư u tr ữ ữ thông tin d ạ ng v ă n, ở đó ý ngh ĩa của v ă ẻ ₫ ánh ánh d ấ ấ u u ă n bả n, ăn bả n đượ c thể hiện bở i các th ẻ (markup tag ). ). HTML là một ngôn ng ữ đánh dấ u điển hình, là n ền t ả n ảng g 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 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 a cặ p thẻ ... ... ý ngh ĩa của các thẻ HTML đã đượ c quy định sẵ n, 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 ự ươ ng ự, 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 ng dụng điều khiển Ngôn ngữ mô t ả ả tính nă ng ng các thiế t bị (Device Description Language ) Xây dự ng ng các trang Web nhúng trong các thi ế t bị • • •
L ư ng XML cho phép tài li ệu v ừ ưu tr ữ ữ thông tin d ướ i dạ ng ừa dễ đọc v ớ ới con ngườ i, i, v ừ ng trình máy tính và cho phép các ph ầ n ừa dễ dàng x ử ử lý bở i chươ ng 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. u. Sự linh hoạ t, t, đa nă ng 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 ớ ng trong ph ầ n mềm khung, ới các thư viện khối chứ c nă ng ngườ i sử dụng có th ể xây dự ng ng một ứ ng ng dụng điều khiển bằ ng ng phươ ng ng pháp mô t ả ả hay c ấu hình thay hình thay vì l ậ ậ p trình . Th ư viện vào/ra cho phép ứ ng hay c ấ ng d ụng điều khiển giao ti ế p v ớ ới thiế t bị cấ p tr ườ ườ ng ng một cách trong su ốt, độc lậ p v ớ ớ i mạ ng ng truy ền thông v ậ ng dụng t ừ ật lý. Bướ c chuy ển một ứ ng ừ chế độ mô phỏng sang n, t ự điều khiển th ờ i gian thự c có thể thự c hi ện hoàn toàn đơ n gi ả n, ự nhiên. Hơ n nữ a, 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, u, cũng như ghép nối chươ ng 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 EDITOR
HMI/SCADA APPLICATION
Hình 8.5:
OPC
*.xml
APPLICATION ENGINE
«framework iPC
C++ CONTROL APPLICATION
Mô hình phát tri ể ển iPC
Trong kiế n trúc ph ầ n mềm khung iPC, m ột ứ ng 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 ng dụng điều khiển đượ c đặ t trong c ặ p thẻ ... . Ng ườ i phát triển ứ ng ng dụng t ạ ạo t ậ ập tin này bằ ng ng một công cụ soạ n thả o ứ ng ng dụng (application (application editor ) dướ i dạ ng ng một chươ ng ng trình soạ n thả o XML thông th ườ ng ng hoặ c một chươ ng ng trình soạ n thả o đồ họa khối. Một chươ ng ng trình ch ạ y ứ ng 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 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 ự ng vào/ra t ươ ng t ự ng Profibusươ ng ự như v ậ ậ y, các khối chứ c nă ng ươ ng ự qua mạ ng DP (địa chỉ slave=3, module 3) sử dụng trong mạ ch 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 ớ ch vòng điều ới chu k ỳ 100ms để thự c hiện mạ ch 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 ế ng pháp sử dụng các khối hàm nh ư các đối t ượ ng ết hợ p giữ a phươ ng ượ 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, t, việc lư u tr ữ ng XML v ừ ữ cấ u hình hệ thống dướ i dạ ng ừa dễ đọc đối v ớ ới con ngườ i,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, n, ngườ i phát tri ển ứ ng ng d ụng không c ầ ần ph p h ả ả i bi ế ết l ậ ậ p trình . M ỗi khi thay đổi ho h oặ c bổ sung phầ n nào trong ứ ng 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. ng. Hơ n nữ a, a, việc s ử dụng các khối hàm ươ ng vào/ra mô phỏng cho phép chuy ển một ứ ng ng dụng giữ a chế độ mô ph ỏ ỏng ng th ờ ờ i i và chế độ ₫ i gian th ự ự c c và ch i ề ều khi ể ể n th ờ ời gian th ự ự c m c một cách đơ n giả n như thay tên thư viện khối hàm t ươ ng ứ ng ng trong t ậ ươ ng ậ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 ng “DPSimIO.DLL”.
© 2005, Hoàng Minh S ơ n
70
MÔ T
9
TH NG
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 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 ng các mô hình và tài li ệu k t đi kèm. Các mô hình có th ể dướ i dạ ng ng toán ỹ thuậ t 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 ng các phươ ng ng pháp đồ họa, không đi vào mô t ả t ả toán học chi tiế t t ừ n ch vòng điều khiển. Qua các tài li ệu mô t ả ừng g mạ ch ả 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, 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 ng đượ c các mô hình chi ti ế t cho việc ỹ sư điều khiển cũng đã xây dự ng thiế t k ế ng, phát tri ển ứ ng ng dụng điều khiển và giao di ện ế cấ u hình ph ầ n cứ ng, ngườ i máy. 9.1
Các phương pháp mô t đồ
Các phươ ng 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 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 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 ả ng và ả chi tiế t quá trình công ngh ệ kèm theo các thiế t bị đo lườ ng ng liên hệ giữ a các thành ph ầ n. n. Tài li ệu hình điều khiển cùng các đườ ng thành phục v ụ thự c hiện chứ c nă ng ng điều khiển quá trình. Hai chu ẩ n quan tr ọng liên quan t ớ ng lư u đồ P&ID là ANSI/ISA S5.1 ới các biểu t ượ ượ ng và ANSI/ISA S5.3. Microsoft’s Visio cũng là một công cụ thích hợ p để xây dự ng ng các lư u đồ P&ID. Biểu đồ trình t ự ng (sequential (sequential function chart , SFC ) biểu diễn các ự chứ c nă ng bướ c th ự c hiện ch ứ c nă ng 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 ng pháp mô hình hóa h ướ ng ng đối t ượ ng cũng đượ c sử dụng ượ ng ng tác giữ a các thành phầ n phầ n cứ ng ng và để mô t ả ả toàn bộ hệ thống, sự t ươ ươ ng phầ n mềm trong hệ thống. Các mô hình h ướ ng ng đối t ượ ng cũng giúp ích cho ượ ng việc phát triển các phầ n mềm ứ ng 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
9.2
71
đồ 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 ượ ng ươ ng thế giớ i. i. Hai chuẩ n do ISA (Instrument ( 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 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 ượ ng biểu t ượ ng có thể biểu diễn m ột thi t thi ế t ch ứ ết b ị ị hoặ c một ch ức n ă ă ng trong ng trong một thiế t bị ượ ng 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, 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 ng cho t ừ ừng n g thiế t b ị/chứ c n ă ng, ng, hoặ c b ỏ qua một số trong tr ườ ng hợ p t ươ ng đối hiển nhiên. ườ ng ươ ng Các biểu t ượ ượ ng ng trên bả ng ng 9.1 mô t ả ả các thiế t bị cũng như chứ c nă ng ng mà ngườ i v ậ ận hành có th ể tr ự ực tiế p thao tác, sử dụng (accessible). Trong tr ườ ườ ng ng hợ p các thiế t bị/chứ c nă ng ng đượ c đặ t sau bả ng, ng, hoặ c ngườ i v ậ ận hành không ng gạ ch ch giữ a các biểu t ượ ng cầ n đượ c v ẽ bằ ng ng nét đượ c phép can thiệp, đườ ng ượ ng t. đứ t. Bi u tượng các ₫ường tín hi u và ₫ường n
Để phân biệt rõ ràng v ớ ới các đườ ng ng ống dẫ n, n, t ấ ấ t cả các đườ ng ng tín hiệu và đườ ng ng nối khác cầ n đượ c v ẽ nét thanh. Các đườ ng ng n ối đượ c th ể hiện bằ ng ng các biểu t ượ ượ ng ng trong b ả ng ng 9.2. Bả ng ng 9.1: 9.1:
Bi ể u ₫ồ P&ID ểu di ễ ễn các thi ế ết b ị ị trên l ư ư u
Phòng điều khiển trung tâm (Remote)
Vị trí mở r ộng (Auxilary Location)
Hiện tr ườ ường (Local)
Thiế Thiết bị bị phầ phần cứ cứng đơn đơn lẻ lẻ Phầ Phần cứ cứng chia sẻ sẻ - Hiể Hiển thị thị chia sẻ sẻ - Đi Điều khiể khiển chia sẻ sẻ Phầ Phần mề mềm Chứ Chức nă năng máy tính Logic chia sẻ sẻ Đi Điều khiể khiển logic khả khả trình
© 2005, Hoàng Minh S ơ n
72 Thiế Thiết bị bị cho hai biế biến hoặ hoặc một biế biến vớ với hai hoặ hoặc nhiề nhiều chứ chức nă năng
Bả ng ng 9.2: 9.2:
Bi ể u ₫ồ P&ID ểu di ễ ễn các thi ế ết b ị ị trên l ư ư u
Tín hiệ hiệu không định định ngh ĩ ngh ĩ a Đường Đường nố nối tớ tới quá trình kỹ kỹ thuậ thuật, hoặ hoặc đường đường cấ cấp nă năng lượ lượng ng cho thiế thiết bị bị Tín hiệ hiệu khí nén Tín hiệ hiệu điện Tín hiệ hiệu thủ thủy lự lực Tín hiệ hiệu điện từ từ hoặ hoặc âm thanh (có dẫ dẫn định) định) * Tín hiệ hiệu điện từ từ hoặ hoặc âm thanh (không dẫ dẫn định)* định)* Đường Đường nố nối nộ nội bộ bộ hệ thố thống (liên kế kết phầ phần mề mềm hoặ hoặc dữ dữ liệ liệu) Đường Đường nố nối cơ cơ học Ống mao dẫ dẫn
* Các hiện t ượ ượ ng ừ gồm cả nhiệt, sóng vô tuy ế ến, , phóng x ạ ạ nguyên t ử ử và ánh sáng . ng điện t ừ n Thông thườ ng, ng, một đườ ng ng tính hi ệu đủ để biểu diễn liên k ế ế t gi ữ a các thiế t t bị trên lư u đồ P&ID ngay c ả khi t ồn t ạ ại nhiều đườ ng 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 ng cấ p nă ng ng lượ ng: ng: Air supply ): AS ( Air ): cấ p không khí ES (Electric (Electric supply ): ): cấ p điện GS (Gas (Gas supply ): ): cấ p gas HS (Hydraulic (Hydraulic supply ): ): cấ p thủ y lự c NS (Nitrogen (Nitrogen supply ): ): cấ p nit ơ ơ SS (Steam (Steam supply ): ): cấ p hơ i nướ c WS (Water (Water supply ): ): cấ p nướ c • • • • • • •
Mứ c tín hiệu có th ể ghi kèm theo ký hi ệu các đườ ng ng c ấ p, p, ví dụ ES 24DC ký hiệu đườ ng 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 ng biểu diễn trên l ư u đồ cầ n đượ c phân biệt bở i một nhãn (tag (tag ). ). M ột nhãn bao g ồm ph ầ n ch ữ biểu di ễn ch ứ c n ă ng ng và phầ n s ố phân biệt vòng kín (loop (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 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 ng 9.3 li ệt kê ý ngh ĩa c ủa các chữ cái phân bi ệt ch ứ c n ă ng. ng. Phầ n bi ểu diễn chứ c nă ng ng bắ t t đầ u bằ ng ng m ột chữ cái ký hiệu biế n đo đượ c hoặ c một biế n khở i t ạ ạo, o , sau đế n các chữ cái ký hiệu chứ c nă ng ng chỉ thị hoặ c chứ c nă ng ng bị động. Tiế p n ữ a là các chữ cái thể hiện ch ứ c n ă ng ng đầ u ra theo m ột th ứ t ự ự tùy ý, tr ừ ừ tr ườ ườ ng ng hợ p chữ C (control) ph ả i đứ ng ng tr ướ ướ c V (valve). Các ch ữ cái phụ nế u có thể sử dụng ngay đằ ng ng sau một chữ cái chính để thay đổi ý nghĩa chứ c nă ng, ng, ví dụ PD biểu diễn chênh lệch (D) áp su ấ t (P). L ư ưu ý r ằ ằng, n g, các ký hi ệu sử dụng tuân theo ch ứ c nă ng 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 ng theo nguyên t ắ ắc chênh lệch áp suấ t 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 ng đượ c điều khiển bở i một bộ điều khiển áp suấ t t đượ c ký hiệu là PV ch ứ không phả i FV.
© 2005, Hoàng Minh S ơ n
74 B ả n ảng g 9.3:
Các ch ữ ữ cái ký hi ệ ệu nhãn thi ế ết b ị ị Chữ cái đầu
Bi ến đ o đượ c hoặc bi ến khở i t ạo
Thay đổi
Các chữ cái đứng sau Chứ c năng hi ển th ị hoặc Chứ c năng đầu ra ị động b ị độ
A Phân tích ( Analysis)
Báo động động ( Alarm Alarm)
Đốt nóng ( Burner, B Đốt combustion)
Tùy sử sử dụng
C Tùy sử sử dụng D Tùy sử sử dụng
Lưu tố tốc (Flow rate)
Chênh lệ l ệch (Differential ) Phầ Phần tử tử sensor Tỉ l ỉ lệ (Fraction) Kính (Glass), thiế thiết bị bị nhìn
G Tùy sử sử dụng H Bằng tay ( Hand ) I
Dòng điện
J
Công suấ suất
K Thờ Thời gian, lịlịch trình L
Cao (High) Hiể Hiển thị thị (Indication) Quét Tần suấ suất thay đổi đổi
Mức (Level )
M Tùy sử sử dụng
Tr ạm điều khiể khiển Ánh sáng (Light )
Trung bình ( Middle) Tùy sử dụng
O Tùy sử sử dụng
Hạn chế chế (Orifice)
P Áp suấ suất (Pressure)
Đi Điểm thử thử (Point )
T
Chuyể Chuyển mạ mạch (Switch)
An toàn (Safety )
Truyề Truyền, phát (Transmit )
U Nhiề Nhiều biế biến
Đa Đa chứ chức nă năng
V Độ rung (Vibration), phân tích cơ cơ học
Đa Đa chứ chức nă năng
Đa Đa chứ chức nă năng
Van (Valve), giả giảm chấ chấn
W Tr ọng lượ lượng ng (Weight ), ), lự lự c
Giế Giếng (Well), phun Tr ục X
Không xếp loạ loại
Không xếp loạ loại
kiện, tr ạng thái hoặ ho ặc sự sự Y Sự kiệ Tr ục Y có mặ mặt
Rơle, tính toán, bi ến đổi đổi
Z
Truyề Truyền động, động, chấ chấp hành
Vị trí, kích thướ th ướcc
Tùy sử dụng
Ghi chép ( Record )
Nhiệ Nhiệt độ (Temperature)
X Không xế xếp loạ loại
Tùy s ử dụng
Tích phân, tổng số số
xạ, phóng xạ xạ R Bức xạ (Radiation) S Tốc độ, độ, tầ tần số số (Speed )
Thấ Thấp (Low )
Nhấ Nhất thờ thời (Momentary )
N Tùy sử sử dụng
Q Số lượng( ượng(Quantity )
Tùy sử dụng
Đi Điều khiể khiển (Control )
E Đi Điện áp F
Tùy s ử dụng
Thay đổi
Tr ục Z
Không xếp loạ loại
© 2005, Hoàng Minh S ơ n
75 Ví d minh h
Hình 9.1 minh h ọa một ví dụ mạ ch ch vòng điều khiển áp suấ t. t. L ư t ư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 ch vòng điều khiển áp suấ t t đượ c điều khiển bở i tr ạ ạ m điều khiển DCS. Giá tr ị đặ t t đượ c đư a t ừ ng truy ền dữ liệu. Mạ ch ch ừ một máy tính thông qua đườ ng 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 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 PCV211. 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.
AI-17
C-#2 (PI) PAH dP/dt PIC 211 S.P.
AO-21 PIC 211
0-300# PT 211
PY 211
AS
P AS LIN. FC PCV 211
Chi tiết
Đơn giản
Hình 9.1: L ư u i ề ưu ₫ồ chi ti ế ết m ộ ột vòng ₫ i ều khi ể ển áp su ấ ất (bên trái) và l ư u i ) ư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 ng trong m ột h ệ điều khiển phân tán. Thự c ra, S5.1 v ẫ ng, như ng ng m ở r ộng và ẫ n gi ữ nguyên t ậ ậ p hợ p các biểu t ượ ượ ng, chi tiế t hóa ý ngh ĩa của một số biểu t ượ ng. ượ ng. Các bi u tượng cho hi n th
u khi n chia s
Thông th ườ ườ ng 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 ng truy ền thông 4) Giao di ện v ậ ng truy ền thông ận hành trên đườ ng Thi ế ết b ị ị l ắ ắ p t ạ ại v ị ị trí m ở ở r ộ ộng ng : © 2005, Hoàng Minh S ơ n
76 1) L ắ ng có giao di ện s ử ắp trên panel t ạ ại v ị trí mở r ộng, thông th ườ ng dụng t ươ ng t ự ươ ng ự, 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 ng tay 3) Truy nh ậ p có th ể chỉ qua đườ ng ng truy ền thông 4) Giao di ện v ậ ng truy ền thông. ận hành qua đườ ng Thông th ườ ườ ng 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 ạ ng ạ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 ng truy ền thông 5) Thông th ườ ng 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 ng d ướ i đây đượ c s ử dụng để chỉ các “máy tính” và chứ c n ă ng 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 ng v ớ ới các thành ph ầ n còn lạ i,i, hoặ c đứ ng ng độc lậ p. p. Thông th ườ ườ ng 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 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
u khi n trình t và logic
Bi ể ểu t ượ ượ ng ng cho ₫ i iề ề u khi ể ể n logic ho ặ ặ c c ₫ i iề ề u khi ể ể n trình t ự ự ph ứ ứ c t ạ ạ p không ₫ị nh nh ngh ĩ ĩa a :
B ộ ộ ₫ i iề ề u khi ể ển logic trong h ệ ệ Đ KPT KPT v ớ ới ch ứ ức n ă ăng n g ₫ i iề ề u khi ể ể n logic ho ặ ặc c ₫ i iề ề u 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 ngườ i v ậ c. ận hành không can thi ệp đượ c. Ý ngh ĩ ĩ a nh ư ư trên, nh ư ưng ng ng ườ ườ i v ậ ận hành có th ể ể can thi ệ ệ p :
© 2005, Hoàng Minh S ơ n
77 Tính toán và
u hòa tín hi
Ngoài các biểu t ượ ng đã định nghĩa trong S5.1, chu ẩ n S5.3 còn b ổ sung ượ ng biểu t ượ ng riêng cho tính toán và điều hòa tín hi ệu: ượ ng
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 ừ p, biểu đồ triển khai có th ể xây dự ng ng cấ u hình h ệ thống ừ biểu đồ lớ p, T ừ n ừ biểu đồ tr ạ ạng g thái có th ể chuy ển sang SFC T ừ ng tác có thể chuy ển sang FBD (CFC) ừ biểu đồ t ươ ươ ng • • •
(Chi tiế t v ề sử dụng UML xem [2])
© 2005, Hoàng Minh S ơ n
78
P TRÌNH
10 10.1
U KHI N PHÂN TÁN
p trình theo chu n IEC 61131-3
IEC 61131-3 là chu ẩ n quốc t ế 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 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 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, ng, khả mở Một thư viện các hàm và khối chứ c nă ng ng chuẩ n Bướ c đầ u có ý t ưở ng hướ ng ng đối t ượ ng ưở ng ượ ng Một mô hình giao ti ế p thống nhấ t. t. • • • • • •
Nă m ngôn ngữ đượ là li ệ ), sơ đồ ệt kê l ệ ệ nh nh ( IL, Instruction List ), ữ đượ c chuẩ n hóa là li ơ đồ tiế p ng (FBD, Function Block điểm (LD, Ladder Diagram ),), sơ đồ khối chứ c nă ng ), v ă và bi ể Diagram ), ă n b ả ản có c ấ ấu trúc (ST, Structured Text ) và bi ểu u ₫ồ ho ạ ạ t t ₫ộ ng ng tu ầ ầ n n ). Thự c ra, tr ọng tâm của IEC 61131-3 lúc t ự ự (SFC, Sequential Function Chart ). ng t ớ đầ u hướ ng ớ 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 ngôn ng ữ đó là FBD, ST và SFC, mặ c dù trong th ự c t ế ế chúng có nhữ ng ng biế n thể khác nhau và đượ c gọi v ớ ớ i nhữ ng ng cái tên khác nhau. Hai ngôn ng ữ còn lạ i là IL và LD th ườ ng 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 InstructionList (IL) (IL) LD
A
ANDN B ST
C:= A AND NOTB
C
Functio tion Bloc lockDiag iagram (F (FBD) AND A
StructuredText Text (ST)
Ladder Diag iagram(LD) A B
C
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 nh khác nhau trong m ột chươ ng 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 ng có sẵ n, n, ST thích h ợ p cho việc thự c hiện các khối chứ c nă ng, ng, SFC phù hợ p cho bài toán điều khiển trình t ự t động ự và cho biểu di ễn trình t ự ự hoạ t trong một chươ ng ng trình ở mứ c cao hơ n FBD.
© 2005, Hoàng Minh S ơ n
79 10.1.1
Ki u d li
Các ki u d li u c
Các kiểu dữ liệu cơ sở chuẩ n hóa trong IEC 61131-3 đượ c liệt kê trong bả ng 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 ả n ảng g 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 (bit)
Giá tr ị khởi tạo mặc định
1
BOOL
Kiể Kiểu Bool
1
0/FALSE
2
SINT
Kiể Kiểu nguyên ngắ ngắn
8
0
3
INT
Kiể Kiểu nguyên
16
0
4
DINT
Kiể Kiểu nguyên đúp
32
0
5
LINT
Kiể Kiểu nguyên dài
64
0
6
USINT
Kiể Kiểu nguyên dươ dương ng ngắ ngắn
8
0
7
UINT
Kiể Kiểu nguyên dươ dương ng
16
0
8
UDINT
Kiể Kiểu nguyên dươ dương ng đúp
32
0
9
ULINT
Kiể Kiểu nguyên dươ dương ng dài
64
0
10
REAL
Số thự thực
32
0.0
11
LREAL
Số thự thực dài
64
0.0
12
TIME
Khoả Khoảng thờ thời gian
--
T#0S
13
DATE
Ngày tháng
--
D#0001-01-01
14
TIME_OF_DAY TOD
Thờ Thời gian trong ngày
--
TOD#00:00:00
15
DATE_AND_TIME Ngày tháng và thờ thời gian DT
--
DT#0001-01-0100:00:00
16
STRING
Chuỗ Chuỗi ký tự tự 8bit
8xN
''
17
BYTE
Chuỗ Chuỗi 8 bit
8
0
18
WORD
Chuỗ Chuỗi 16 bit
16
0
19
DWORD
Chuỗ Chuỗi 32 bit
32
0
20
LWORD
Chuỗ Chuỗi 64 bit
64
0
21
WSTRING
Chuỗ Chuỗi ký tự tự 16bit
16 x N
""
Các ki u d li u t ng quát
Bên cạ nh 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 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 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 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 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 ng 10-2. B ả n ảng g 10-2:
Các ki ể n ểu d ữ ữ li ệ ệu t ổ ổng g 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
Các kiểu dẫ n xuấ t t đượ c tóm t ắ ng 10.3, g ồm có: ắt trong b ả ng 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 ng Các kiểu cấ u trúc • • • • •
B ả n ảng g 10-3:
Các ki ể ểu d ữ ữ li ệ ệu d ẫ ẫn xu ấ ất trong IEC 61131-3
STT 1
Mô tả /ví dụ Dẫn xuấ xuất tr ực tiế tiếp từ từ kiể kiểu cơ cơ sở, ví dụ dụ TYPE RU_REAL : REAL ; END_TYPE
2
Các kiể kiểu liệ liệt kê, ví dụ dụ: TYPE ANALOG_SIGNAL_TYPE: (SINGLE_ENDED, DIFFERENTIAL); END_TYPE
3
Các kiể kiểu dãy con, ví dụ dụ: TYPE ANALOG_DATA: INT (-4095..4095); END_TYPE
4
Các kiể kiểu mả mảng, ví dụ dụ: TYPE ANALOG_16_INPUT_DATA: ARRAY [1..16] OF ANALOG_DATA; END_TYPE
© 2005, Hoàng Minh S ơ n
81 STT 5
Mô tả /ví dụ Các kiể kiểu cấ cấu trúc, ví dụ 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
ch c chương trình
Chươ ng ng trình (PROGRAM), kh ối chứ c nă ng ng (FUNCTION_BLOCK) và hàm (FUNCTION) là các đơ n v ị t ổ chứ c chươ ng ng trình (Program ( 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 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.
Data Type Data Type Data Type
KHAI BÁO HÀM
SỬ DỤNG HÀM
Name
Name
P1 P2 P3
Data Type
Các tham số hình thức
X 0.25
P1 P2 P3
Các tham số thực tại
Hình 10-2: Khai báo và s ử n ử d ụ ụng g m ộ ột hàm
Mã khai báo/ định nghĩa và gọi hàm dướ i dạ ng 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 THÔNG THƯỜNG
HÀM NẠP CHỒNG
ADD_REAL
ADD ANY_NUM ANY_NUM ANY_NUM
REAK REAL REAL
ANY_NUM
REAL
Hình 10-3: Khai báo hàm n ạ n ng ạ p ch ồ ồng g và hàm thông th ườ ườ ng FUNCTION_BLOCK
Hàm và khối ch ứ c n ă ng ng là các khối t ổ chứ c ch ươ ng ng trình có giá tr ị sử dụng lạ i. i. Một khối chứ c nă ng ng giống như một đối t ượ ng, có tr ạ n ượ ng, ạng g 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 ớ ng thì m ột khối chứ c nă ng ng chỉ có một ới một đối t ượ ượ ng hàm thành viên duy nh ấ t, t, vì thế cách gọi một khối chứ c nă ng ng t ươ ng t ự ươ ng ự như cách gọi một hàm. M ỗi khối chứ c nă ng ng có một tr ạ n ạng g thái riêng nên ta ph ả i ểu kh ố ối ch ứ ức n ă ă ng ng (giống như l ớ ớ p ) và th ể ể nghi ệ ệm kh ố ối ch ứ ức c phân biệt giữ a a ki ể n ă ăng (gi n g (giống như ₫ố i t ượ ượ ng ng ). ối ch ứ ức n ă ă ng ng ). Tùy theo ng ữ cả nh nh mà khái niệm kh ố 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 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, ng, như minh họa trên Hình 10-4. SỬ DỤNG KHỐI CHỨC NĂNG
KHAI BÁO KHỐI CHỨC NĂMG
Tên biến thể nghiệm
fb1
FB_NAME Data Type Data Type Data Type
P1 P2 P3
O1 O2
Các tham biến hình thức
FB_NAME Data Type Data Type
X 0.25
P1 P2 P3
O1 O2
Y
Các tham số thực tại
Hình 10-4: Khai báo và s ử n n ử d ụ ụng g m ộ ột kh ố ối ch ứ ức n ă ăng g
© 2005, Hoàng Minh S ơ n
83 Dướ i đây là ví dụ mã một khối chứ c nă ng, ng, viế t bằ ng 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 n g thái) v ớ ới VAR .. END_VAR • • • •
PROGRAM
Một ch ươ ng ng trình có th ể coi như một m ạ ng ng các hàm và kh ối ch ứ c n ă ng ng n ối v ớ ng, một ch ươ ng ng trình có th ể sử dụng ới nhau. Khác v ớ ới hàm và khối ch ứ c n ă 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. 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 t đã nêu, như ng ng cũng có thể là một khối chứ c nă ng. ng. Như v ậ ậ y, các khối chứ c nă ng ng có giá tr ị sử dụng l ạ i, i, trong khi ch ươ ng ng trình thì không. M ột ch ươ ng ng trình ho ặ c m ột khối chứ c nă ng 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. ng. Nhiều chươ ng ng trình và kh ối chứ c nă ng ng có ươ ng 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 ng chươ ng ng trình t ừ ối ch ứ ứ c n ă ă ng ng ưở ng ừ các kh ố ( function block ) k ế ng tín hiệu. M ỗi khối ch ứ c n ă ng ng thự c hi ện function ết n ối v ớ ới nhau bằ ng một nhiệm v ụ x ử ng trình xây d ự ng ng bằ ng ng ngôn ngữ FBD có ử lý nào đó. Chươ ng hình thứ c r ấ t, FBD là s ự ất giống sơ đồ ơ đồ khối của hệ thống điều khiển. Thự c chấ t, k ế ết hợ p của sơ đồ ơ đồ logic cố điển (binary (binary logic diagram ) và bi ểu đồ hoạ t 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 ng c ũng có th ể là m ột khối có các đầ u vào/ra t ươ ươ ng ng t ự ự như ADD, PID, AI, AO,... FBD thườ ng ng đượ c sử dụng để thự c hiện một phầ n t ươ ng đối độc lậ p của ươ ng chươ ng ng trình điều khiển trên cơ sở các khối ch ứ c n ă ng ng có sẵ n, n, ví dụ lậ p trình các mạ ch ch vòng điều khiển quá trình ho ặ c các mạ ch 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 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 ả n ảng g 10-4:
L ệ n ệnh h trong ST
No.
Kiể Kiểu lệ lệnh
1
Gán
2
Sử dụng hàm
3
Quay về về RETURN
4
Đi Điều kiệ kiện r ẽ nhánh if
5
Phân nhánh CASE
6
Vòng lặ lặp FOR
7
Vòng lặ lặp WHILE (3.3.2.4)
8
Vòng lặ lặp REPEAT (3.3.2.4)
9
Kết thúc EXIT (3.3.2.4)a
10
Lệnh r ỗng
Ví dụ A := B;
CV := CV+1; C := SIN(X);
CMD_TMR(IN:=%IX5, PT:=T#300ms) ; A := CMD_TMR.Q ; RETURN ; D := B*B - 4*A*C ; IF D < 0.0 THEN NROOTS := 0 ; ELSIF D = 0.0 THEN NROOTS := 1 ; X1 := - B/(2.0*A) ; ELSE NROOTS := 2 ; X1 := (- B + SQRT(D))/(2.0*A) ; X2 := (- B - SQRT(D))/(2.0*A) ; END_IF ; TW := BCD_TO_INT(THUMBWHEEL); TW_ERROR := 0; CASE TW OF 1,5: DISPLAY := OVEN_TEMP; 2: DISPLAY := MOTOR_SPEED; 3: DISPLAY := GROSS - TARE; 4,6..10: DISPLAY := STATUS(TW - 4); ELSE DISPLAY := 0 ; TW_ERROR := 1; END_CASE; QW100 := INT_TO_BCD(DISPLAY); J := 101 ; FOR I := 1 TO 100 BY 2 DO IF WORDS[I] = 'KEY' THEN J := I ; EXIT ; END_IF ; END_FOR ; J := 1; WHILE J <= 100 & WORDS[J] <> 'KEY' DO J := J+2 ; END_WHILE ; J := -1 ; REPEAT J := J+2 ; UNTIL J = 101 OR WORDS[J] = 'KEY' END_REPEAT ; EXIT ; ;
© 2005, Hoàng Minh S ơ n
85 10.1.5
Ngôn ng SFC
SFC mô t ả t động tuầ n t ự ng trình điều khiển. ả tiế n trình hoạ t ự của một chươ ng SFC đượ c xây dự ng ng trên cơ sở mạ ng ng Petri và chuẩ n IEC 848 Grafcet, v ớ ới các thay đổi c ầ n thiế t t để có thể thự c hi ện chứ c n ă ng 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 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 ế ( Action Block ) ết v ớ ới một khối hành động Action để 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 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 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 ( macro step ), ), trong đó m ỗi b ướ c l ớ n l ạ i có thể đượ c biểu diễn bằ ng ng một SFC khác. Nh ờ v ậ ng ậ y ta có thể mô hình hóa ứ ng dụng, lậ p trình ứ ng ng dụng ở nhiều mứ c tr ừ ng, t ạ ừu t ượ ượ ng, ạ o điều kiện thuậ n lợ i cho giả i quy ế ết các bài toán ph ứ c t ạ ạp. p .
Step 1
N
FILL
Transition 1
Step 2
S
Empty
Transition 2
Step 3
Hình 10-5:
10.2
M ộ n ột ví d ụ ụ SFC ₫ơ n gi ả ản
p trình v i ngôn ng
c cao
Bên cạ nh 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 ng Thể hiện một số chứ c nă ng ng mở r ộng L ậ ập trình cho h ệ DCS trên n ền PC • • •
Ngôn ngữ thườ ng ng đượ c sử dụng nhấ t là C/C++. V ớ nh trong ới các công cụ mạ nh tay, việc lậ p trình các thu ậ t toán điều khiển tr ở nh các ở nên dễ dàng. Bên cạ nh luậ t t điều khiển logic hoặ c các bộ điều khiển ph ả n h ồi PID, thì kh ả nă ng 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 t điều khiển này có th ể đượ c sử dụng l ạ i nhiều lầ n, n, vì v ậ ậ y có thể xây dự ng ng thành một th ư viện l ớ p. p. Bên cạ nh nh các y ế ế u t ố như tham số bộ điều khiển và chu k ỳ lấ y m ẫ u, 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 ng tay/t ự ự windup (ở bộ điều khiển PID). động, hiệu ứ ng ng reset windup ( ng C/C++ b ổ sung vào thư viện khối chứ c n ă ng ng trong Để đư a các mã viế t bằ ng một hệ DCS, ng ườ i lậ p trình c ầ n tuân thủ theo một qui định nhấ t t định. Thông thườ ng, ng, việc này không d ễ dàng và đòi hỏi tính n ă ng ng mở của hệ thống.
© 2005, Hoàng Minh S ơ n
87 11
CH C N NG
11.1
U KHI N GIÁM SÁT
Gi i thi u chung v các h
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 n ă m g ầ n đây, ự động hóa hiện đạ i.i. T ừ ừ nhữ ng 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 ng mớ i, i, giả i pháp mớ i. i. đã thự c sự đ ự đem lạ i nhiều khả nă ng 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 ( Supervisory Control And Data Acquisition ) cũng đượ c hi ểu v ớ ng ý ới nhữ ng nghĩa hơ i khác nhau, tu ỳ theo lĩnh v ự ực ứ ng ng dụng và theo thờ i gian. Có th ể, khi nói t ớ ới SCADA ng ườ i ta chỉ liên t ưở ưở ng ng t ớ ới một hệ thống mạ ng 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 ử ng dụng trong công nghi ệp khai thác ử lý. Các hệ thống ứ ng dầ u khí và phân ph ối nă ng ng lượ ng ng là nhữ ng ng ví dụ tiêu biểu. Theo cách hi ểu này, v ấ u. Trong nhi ều tr ườ ng h ợ p, p, các ề n thông đượ c đặ t lên hàng đầ u. ấ n đề truy ề ườ ng 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 ệ ph ầ ầ n m ề ềm là m là v ấ Basic, Delphi, JBuilder, ...). ở đây, công ngh ệ ấ n đề đượ c quan tâm chủ y ế u ế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 ừ ng. ừ 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 ừ Đươ ng ừ xa cầ n phả i có hệ thống truy nhậ p (không chỉ thu thậ p!) p!) và truy ền t ả ải dữ liệu, cũng như cầ n phả i có giao diện ngườ i-máy 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 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 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, 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. 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 ớ ườ ng ớ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 ạ ng phầ n ạ o d ự ng mềm SCADA theo m ột hướ ng ng mớ i, i, sử dụng PC và Windows NT làm n ền phát triển và cài đặ t. t. T ừ ng thuầ n tuý là thu th ậ p d ữ liệu cho việc ừ phạ m vi chứ c n ă ng 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, p, điều khiển phối hợ p. p. Phươ ng ng pháp điều khiển theo mẻ, ng ví dụ tiêu điều khiển theo công thứ c (batch control, recipe control) là nh ữ ng © 2005, Hoàng Minh S ơ n
88 biểu. H ơ n n ữ a, a, khả nă ng ng tích hợ p h ệ điều khiển giám sát v ớ ng d ụng ới các ứ 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. 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) n) đã có sẵ n. n. Nế u như mạ ng ng máy tính ườ ng, của một công ty c ũng đã đượ c trang bị (chủ y ế ếu dùng Ethernet), thì c ơ sở hạ t ầ n t . Chính vì ầng g cho vi ệc truy ền thông không còn là v ấ ấ n đề lớ n phả i giả i quy ế ết. v ậ ậ y, tr ọng tâm của việc xây dự ng 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 ng SCADA là m ột thành ph ầ n không thể thiế u đượ c. c. Như v ậ ậ y có thể nói, một hệ DCS bao gi ờ cũng có chứ c nă ng 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
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 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 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 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 ng các I/ODrivers, I/O-Servers (DDE,OPC,...). Giao diện ngườ i-máy i-máy
© 2005, Hoàng Minh S ơ n
89 HỆ THỐNG
GIAO DIỆN
LẬP BÁO CÁO TỰ
CƠ SỞ DỮ
I/OI/ODRIVE DRIVE • • • •
ĐIỀU KHIỂN CAO CẤP
I/OSERVER
Cơ sở dữ liệu quá trình Hệ thống cả nh nh báo, báo động L ậ ập báo cáo t ự độ ự động p: Điều khiển m ẻ, điều khiển trình t ự Điều khiển cao cấ p: ự, điều khiển công thứ c, 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 ậ ng các chứ c n ă ng ng SCADA ở đ ậ y, việc xây dự ng ở đâ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 • • •
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, 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 ng đối t ượ ng ượ 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 ừ ướ ng ng ₫ố i t ượ ượ ng ng vào danh sách các đặ c tính ư u việt để ừ khóa h ướ quả ng ng cáo. Mặ c dù trong đạ i đa số các tr ườ ng hợ p, p, cách sử dụng thuậ t ngữ ườ ng như v ậ ng qua đó ta cũng thấ y ít hay nhiều ậ y mang tính chấ t lạ m dụng, như ng t ầ ng. Thự c ch ấ t, t, các thư viện thành phầ n ầm quan tr ọng của công nghệ đối t ượ ượ ng. sẵ n có trong nh ữ ng ng sả n phẩ m thuộc thế hệ mớ i thườ ng ng đượ c xây dự ng ng trên cơ sở một mô hình đối t ượ ng, đặ c biệt phả i nói t ớ ượ ng, ới mô hình COM c ủa Microsoft. Việc sử dụng một mô hình đối t ượ ượ ng 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 ng giao di ện ngườ i-máy i-máy bằ ng ng cách sử dụng ActiveX-Controls •
© 2005, Hoàng Minh S ơ n
90 •
•
Nâng cao kh ả nă ng ng t ươ ng tác và kh ả nă ng ng mở r ộng, hay nói cách khác ươ ng là tính nă ng 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, 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, 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 ệ ậ p trình đã m ở ra khả nă ng đối t ượ ượ ng ng thành phầ n và các phươ ng ng pháp không l ậ 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 ng công nghệ tin học quan tr ọng b ậ c nh ấ t. t. Không ch ỉ là m ột ph ươ ng 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 ng đa n ă ng ng cho các ứ ng ng dụng phân tán. Một ứ ng ng dụng Web cấ u thành bở i sự t ươ ươ ng ng tác giữ a Web server, Web browser, trang HTML (Hypertext (Hypertext Markup Language ) v ớ ới các ứ ng ng dụng và phụ kiện khác. Nh ữ ng ng ứ ng ng dụng đó c ũng hay đượ c gọi là các ứ ng ng d ụng nhiều lớ p (multi-tier applications ). ). Sử dụng Web làm n ền cho các ứ ng 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 ướ ng m ớ i cho ướ c tiên là mở ra khả nă ng việc tích hợ p hệ thống t ự 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 ng độc quy ền của các chuyên viên k t. Một giám đốc điều hành sả n xuấ t, t, hay một t ổng giám ỹ thuậ t. đố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 ự ươ ng ự, 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 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, t, mà có thể theo dõi toàn b ộ diễn biế n quá trình k ỹ thuậ t 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 ng hướ ng ng giả i quy ế ết thích hợ p. p. Có thể nói, một trong nh ữ ng ng y ế ếu t ố mang lạ i thành công cho công ngh ệ Web là mô hình đơ n giả n, 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 ng y ế ế u điểm sau: Giao thứ c HTTP có tính n ă ng ng kém, không thích h ợ p cho các ứ ng ng dụng mang tính t ươ ươ ng ng tác và thờ i gian thự c. 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 ng hiệu suấ t kém. Độ an toàn và độ tin cậ y của Web còn r ấ ất thấ p. p. •
• • •
Để khắ c phục nhữ ng 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 n g 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. ng. Nhìn m ột cách t ổng quát, ta có th ể tóm t ắ ắ t l ạ i nhữ ng 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 DynamicHTML để nâng cao tính t ươ ng tác và kh ả nă ng ng lậ p trình cho trang Web. ươ ng 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 ă n ng dụng. K ăng g hiệu suấ t của ứ ng ỹ thuậ t này th ườ ng 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 ng cho các ứ ng ng dụng. K ng hạ n trong ỹ thuậ t này đượ c dùng chẳ ng 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 ng cho các ứ ng ng dụng. Dùng sả n phẩ m Web server và Web browser riêng để t ối ư u tính n ă ng ng v ậ ng dụng. K ng hạ n trong Scout ận hành của ứ ng ỹ thuậ t này đượ c dùng chẳ ng - một bộ chươ ng ng trình quan sát ti ế n trình d ự a Web của công ty Wonderware.
11.2
Đặt v • •
• •
Xây d ng c u trúc h th ng ₫ề
Yêu cầ u thự c t ế ng dụng: qui mô h ệ thống, giá thành ế của ứ ng Hiệu nă ng ng của hệ thống: Khả nă ng ng cậ p nhậ t dữ liệu, cậ p nhậ t màn hình, hiệu suấ t sử dụng đườ ng ng truy ền Độ tin cậ y của hệ thống Khả nă ng ng hỗ tr ợ ợ bở i các công cụ phầ n mềm
u trúc m t người s • •
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 ng truy ền thông
© 2005, Hoàng Minh S ơ n
92 u trúc nhi u người s • • •
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 ng phẳ ng ng và cấ u trúc m ạ ng ng phân cấ p
u trúc h th ng qui mô l n: •
•
Số lượ ng 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 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 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, t, tr ạ ạng 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.i. Ngày nay, các ph ầ n mềm giao diện ng ườ i-máy i-máy chủ y ế ếu đượ c xây dự ng ng trên nền máy tính cá nhân, d ự a trên các k t đồ họa hiện đạ i. i. Giao di ện ngườ i-máy i-máy là một trong các thành ỹ thuậ t phầ n chính của một hệ thống điều khiển giám sát. 11.3.1 • • • • •
n, dễ sử dụng (easy-to-use (easy-to-use ) Đơ n giả n, Bền v ữ n (robustness ) ững, g, khó gây l ỗi (robustness Tính thông tin cao (informativeness ( informativeness ) Nhấ t quán (consistency (consistency ) Đẹp, nhã nhặ n (good-looking, elegant)
11.3.2 • • •
Yêu c u chung
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
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 ế ng pháp sử dụng chuy ển cấ p hoặ c lự a a ế t hợ p hợ p lý phươ ng chọn nhanh
•
Phân c p màn hình •
• •
T ổng quan hệ thống (system overview ), ), hệ thống con (subsystem (subsystem overview ) T ổng quan nhóm (group (group overview ) Hiển thị nhóm (group (group display ) © 2005, Hoàng Minh S ơ n
93 • •
• •
Hiển thị chi tiế t (details (details display ) Hình ả nh nh hệ thống, hình ả nh nh phạ m vi/công đoạ n/máy n/máy móc dướ i dạ ng ng lư u đồ công nghệ process ( process diagram ) hoặ c hình ả nh nh dây chuy ền sả n xuấ t t Đồ thị (trends ):): Đồ thị thờ i gian thự c, c, đồ thị quá khứ Cử a sổ báo động (alarm (alarm windows )
11.3.4
Các nguyên t c thi t k
Màu s • • •
• •
Chỉ dùng màu s ắ c khi th ậ t cầ n thiế t 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, ng, màu và độ sáng khác ít so v ớ ớ i nền, cố gắ ng ng tránh 3D, tránh các m ẫ u hoa v ă ăn Hình t ĩnh (đườ ng ng ống, máy móc): tránh các màu t ươ ươ i,i, chói Tín hi ệu tr ạ ạng ng thái, hình động: Chọn các màu t ươ ươ i,i, chói
Ch vi • •
Hạ n chế số font chữ , kiểu chữ , chênh lệch độ lớ n Chân phươ ng, ng, tránh các hiệu ứ ng ng đặ c biệt (3D, l ượ n sóng, đườ ng ng viền,...)
Các hình nh ₫ộng • • •
•
Hỗ tr ợ n ợ phân biệt tr ạ ạng g 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, 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
đề
Tính sẵ n sàng và độ tin cậ y của hệ thống phụ thuộc vào: n Độ tin cậ y của t ừ ừng g thiế t bị Cấ u trúc hệ thống Tính n ă ng 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 t Khả nă ng ng bả o trì ... • • • • • • • • •
12.2
ch
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 ườ ng lỗi một thành ph ầ n đơ n (phầ n cứ ng ng & phầ n mềm) không làm m ấ t t đi tính nă ng 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 • •
Dự phòng lạ nh nh Dự phòng nóng: D ự phòng cạ nh 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 ạ nh tranh, ạ m điều khiển cầ n có CPU d ự phòng cạ nh 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 ạ ch k ịp th ờ i, i, ạm điều khiển: D ự phòng dự tr ữ ữ 1:1, chuy ển m ạ ch tr ơ ơn tru Dự phòng dự tr ữ ng: Dự phòng cáp truy ền, dự phòng ữ hệ thống mạ ng: module truy ền thông và các thi ế t bị mạ ng ng khác, chuy ển mạ ch ch k ịp th ờ i, i, tr ơ ch < 1ms ơn tru, thờ i gian chuy ển mạ ch 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
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 ạ t ạm điều khiển trong m ột thờ i gian nhanh nhấ t
© 2005, Hoàng Minh S ơ n
95 12.3 •
•
Có cơ chế dừ ng ng an toàn, d ừ ng ng khẩ n cấ p (mạ ch ch cứ ng 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 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 a v ề giá tr ị mặ c định)
12.4 •
•
•
• • •
ch kh
động l i sau s
Các tr ạ ng t ự ạm điều khiển cầ n có khả nă ng ự 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 n g thái an toàn, sau khi có ngu ồn tr ở ở lạ i phả i có khả nă ng ng hồi phục tr ạ ạng n g thái cũ Các tr ạ ạm v ậ ận hành phả i có khả nă ng ng t ự ự hồi phục tr ạ ạng n g thái làm vi ệc tr ướ ướ c khi x ả ả y ra s ự cố T ấ ng phả i có kh ả nă ng ng t ự ấ t cả các nút mạ ng ự khở i động một cách độc lậ p v ớ ớ i các nút khác
12.5 •
ch an toàn
om
Đặ 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 n n Đặ t chế độ ế độ bả o mậ t dự a trên t ừ ừng g tag riêng r ẽ hoặ c t ừ ừng g 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
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 a ườ ng ườ ng 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 ạ n ạng g 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 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 ng trình điều khiển, lỗi thự c hiện thuậ t toán điều khiển, lỗi nạ p chươ ng 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 ng tiện ph ổ thông, t ấ ất cả các phầ n mềm phát triển, chươ ng ng •
•
•
•
© 2005, Hoàng Minh S ơ n
•
96 trình ứ ng ng d ụng và các gói phầ n mềm chuẩ n c ũng như tu ỳ chọn ph ả i ng hoặ c đĩa CD. đượ c cung cấ p cùng đĩa cứ ng Các công cụ đặ c biệt do nhà sả n xuấ t cung cấ p, 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 KHI N PHÂN TÁN
13.1
13.1.1
ánh giá và l a ch n các s n ph m DCS tích h p tr Ph m vi ch c n ng
Ch c n ng •
•
Phươ ng 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 • • •
• • • • •
• • • •
• •
u trúc h th ng và các thi t b thành ph
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 ng truy ền thông đượ c hỗ tr ợ ợ (đặ c biệt bus tr ườ ườ ng ng liên quan t ớ ới các chủng loạ i thiế t bị tr ườ ườ ng ng có thể hỗ tr ợ ợ).) .
13.1.3 •
u khi n giám sát
Chấ t lượ ng ng giao di ện đồ họa Khả nă ng 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 ng Web
13.1.2 •
u khi n cao c
Điều khiển mẻ, điều khiển công thứ c n Điều khiển thích nghi, b ền v ữ ững, g, t ối ư u Điều khiển chuyên gia
Ch c n ng •
u khi n c
Tính n ng m
Khả nă ng 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
u hình h th ng • •
n, hướ ng ng đối t ượ ng Đơ n giả n, ượ ng Khả nă ng 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 ng truy ền thông d ễ dàng qua phầ n mềm t ừ t ừ tr ạ ạm k ỹ thuậ t
p trình • • • • •
n, hướ ng ng đối t ượ ng Đơ n giả n, ượ 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 ng t ự ng (thông qua m ột ngôn ng ữ lậ p ự mở r ộng thư viện chứ c nă ng trình bậ c cao)
13.1.5 • • •
u khi
Độ tin c y và tính s n sàng
Cơ chế dự phòng Khả nă ng ng bả o mậ t t ...
13.1.6
Giá thành, chi phí
Chi phí ban ₫ầ • • • • • • •
Chi phí thiêt k ế ế hệ thống Chi phí ph ầ n cứ ng ng Chi phí ph ầ n mềm công cụ Chi phí phát tri ển phầ n mềm ứ ng ng dụng Chi phí tri ển khai, đư a vào v ậ ận hành Chi phí đào t ạ o ạo, , chuy ển giao công nghệ ...
Chi phí v n hành • • • • •
Chi phí b ả o trì, b ả o dưỡ ng ng thiế t bị và phầ n mềm Chi phí thi ế t bị thay thế Chi phí d ịch v ụ hỗ tr ợ t ợ k ỹ thuậ t Chi phí d ừ ng ng hệ thống khi x ả ả y ra sự cố ...
So sánh gi i pháp DCS tích h p tr n v n v i các gi pháp khác
13.2
So sánh trên c ơ sở các tiêu chí: Phạ m vi chứ c nă ng ng Độ tin cậ y và tính sẵ n sàng Tính n ă ng 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 TÁN TIÊU BI
U KHI N PHÂN
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
TS
15 15.1
ƯỚNG NGHIÊN C U VÀ NG D NG
Trí tu nhân t o phân tán
ng dụng trí tu ệ ệ Đối v ớ ới các hệ thống mang đặ c thù tính phân tán, vi ệc ứ ng ng h ướ ng ng nghiên cứ u m ớ i, i, h ứ a h ẹn nhiều nhân t ạ ạo phân tán là tán là m ột trong nh ữ ng 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 ng t ự t động v ớ ự hoạ t ớ i nhiệm v ụ xác định để đạ t 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 ự ho ạ ạt t ₫ộ ng ng cách thống nhấ t. t. Hầ u như ngườ i ta chỉ có thể nhấ t trí r ằ ằng n g t ự (autonomy ) là tr ọng tâm trong khái ni ệm agent. Có th ể nói, chính vì đứ ng ng trên các quan điểm ứ ng 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 ớ ng dụng cụ thể. Do đó, việc phân ới lĩnh v ự ực ứ ng loạ i agent tr ướ ướ c định nghĩa có lẽ hợ p lý hơ n quá trình ng ượ c lạ i.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. 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. ươ ng
Agent hợp tác-học
Học
Hợp tác 2 1
Agent hợp tác
4
Agent thông minh 3
Tự hoạt động
Agent giao diện
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 ươ ng các agent đó là một phầ n của môi tr ườ ng xung quanh. M ột hệ thống multiườ ng agent có thể phân chia một nhiệm v ụ để nhiều agent cùng ph ối hợ p giả i quy ế t . ế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 ng đặ c điểm chính như sau: Thông minh và có khả nă ng ng hoạ t t động độc lậ p ( Autonomy and ): các agent t ự ng quy ế t Intelligence ): ự kiểm soát và chịu trách nhiệm v ề nhữ ng ết © 2005, Hoàng Minh S ơ n •
102
•
•
•
•
t động mà không c ầ n đợ i nhữ ng ng tác định và hành vi của mình, t ự ự hoạ t động t ừ ừ ngoài vào. Có khả nă ng ng học (Learning (Learning ): ): t ồn t ạ ại trong m ột môi tr ườ ườ ng ng động, các agent phả i có kh ả nă ng ng học để có thể thích nghi và gi ả i quy ế ết nhữ ng ng v ấ ấn đề nả y sinh. Có khả nă ng ng giao tiế p (Communication ( Communication ): ): giao tiế p gi ữ a các agent, và gi ữ a a agent v ớ ới con ngườ i.i. Có khả nă ng ng phối hợ p hoạ t t động (Co-operation (Co-operation ): ): v ớ ới các agent khác và v ớ ới con ngườ i nhằ m giả i quy ế ng v ấ ết nh ữ ng ấn đề phứ c t ạ ạp mà một agent không thể thự c hiện. Có khả nă ng 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 ng dụng thự c t ế ng giao tiế p và phối h ợ p ho ạ t t động là hai đặ c tính trong m ột ế. Ví dụ, kh ả nă ng hệ multi-agent. Hay kh ả nă ng 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 ng ứ ng dụng khác.
u khi n và giám sát các h th ng giao thông
15.2 15.2.1
Đặt v
đề
Hệ thống giao thông nói chung và h ệ thống điều khiển tín hi ệu giao thông ng hệ phân tán tiêu bi ểu, việc áp dụng phươ ng ng pháp đô thị nói riêng là nhữ ng p. Độ phứ c t ạ điều khiển cục bộ hay t ậ ập trung đều không thích h ợ p. ạp của cấ u trúc phân tán ở đây không nhữ ng 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 ng và tính b ấ t t định, dễ thay đổi của mô hình. Dự a trên ý t ưở ưở ng ng trí tuệ phân tán, ngườ i ta có th ể xây dự ng 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.
Mô hình h th ng công ngh Agent
15.2.2
u khi
èn tín hi u giao thông b ng
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 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, t, mỗi agent ở đây là một bộ điều khiển thích nghi, có kh ả nă ng ng nhậ n bi ế t tình hình giao thông th ự c t ế t định điều khiển một cách thông ế để đư a ra quy ế ết minh. Ví d ụ, một agent có thể dự a vào lượ ng 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ở đ đườ ng ết ở đè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
A3.0
A3.2
A3.4
A3.6
A3.8
A5.1
A5.2
A5.4
A5.6
A5.8
Hình 15-2: 15-2: Mô hình h ệ n iề u ệ th ố ống g ₫ i ề 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 ng Bắ c-Nam c-Nam đượ c đánh số chẵ n. n. Các Đông-Tây đượ c đánh số lẻ và các đườ ng agent điều khiển nút (Ax.y) thu ộc một tuy ế ng đượ c nối mạ ng ng v ớ ến đườ ng ớ i nhau thành một nhóm. Nh ư v ậ ng thuộc hai ậ y, một agent điều khiển nút thông th ườ ng nhóm khác nhau ứ ng ng v ớ ng. Trong điều kiện thông th ườ ng, ng, ới hai tuy ế ến đườ ng. giữ a các agent lân c ậ n có sự giao tiế p và phối hợ p hoạ t t động để đạ t t đượ c m ục tiêu đề ra là t ối ư u kh ả nă ng ng l ư u thông trên m ột tuy ế ng. Ví dụ, A3.4 có ến đườ ng. 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 ả ng), mỗi agent ườ ng ả y ra (ví dụ do sự cố mạ ng), phả i có kh ả nă ng ng chuy ển t ừ t động hoàn toàn ừ chế độ ế độ hợ p tác sang chế độ ế độ hoạ t p. Khi đó, mỗi agent không có thông tin h ỗ tr ợ độc lậ p. ợ 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, ng, các agent ườ ng trên cùng một tuy ế ng một chiều có th ể trao đổi thông tin v ề thờ i điểm ế n đườ ng mở đèn xanh để t ạ ng l ư u thông t ốt nh ấ t. t. Tuy nhiên, khi có s ự cố ạo ra khả nă ng x ả p, mỗi agent s ẽ phả i t ự ng giao ả y ra v ề mặ t giao tiế p, ự nhậ n biế t mẫ u lư u lượ ng thông thông qua các thi ế t bị đo để ra quy ế t định phối hợ p mở đ ết ở đèn xanh. Có thể thấ y r ằ n ng phươ ng ng pháp ằng, g, việc t ối ư u hóa toàn c ục cho hệ thống bằ ng t ĩnh c ũng như phươ ng ng pháp động như ng 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,i, việc t ối ư u hóa c ục bộ cho t ừ n ừng g 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 ế ng, v ấ ế thị tr ườ ườ ng, ấ n ng t ự đề tr ọng tâm ở đ ở đây là khả nă ng ự 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 t đượ c mục tiêu chung m ột cách t ốt nhấ t cho c ả hệ thống. ng linh hoạ t r ấ Điều khiển thông minh mang đế n kh ả nă ng ất l ớ n cho hệ thống 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 ng nghiên cứ u có nhi ều triển v ọng. 15.3
u khi n và giám sát các h th ng s n xu t và cung
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, n, do đó việc áp dụng các phươ ng 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: n n Điều khiển cục bộ t ừ ừng g nhà máy điện, t ừ ừng g 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 ng và hiệu quả kinh t ế ế) Truy ền thông đườ ng ng dài Tính ng ẫ u nhiên, tính b ấ t t định, tính h ỗn hợ p của hệ thống. •
•
• •
Một số hướ ng 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 t động trong toàn h ệ thống Công nghệ truy ền thông qua đườ ng ng dây t ả ải điện Công nghệ Web cho chứ c nă ng ng điều khiển giám sát. ... •
• • •
© 2005, Hoàng Minh S ơ n
TÀI LI U THAM KH [1]
Martin Fowler, Kendall Scott: UML Distilled: A Brief Guide to the Standard Object Modeling Language (2nd 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 ObjectOriented Software. Addision- Wesley, 1995.
[4]
OMG: CORBA — Specification . www.omg.org (*)
[5]
Microsoft Corp.: “DCOM- Technical Overview”. White Paper . MSDNLibrary. (*)
[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.. (*) 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 t: Xây d ự ựng ng ph ầ ầ n m ề ềm khung cho gi ả ải pháp Đặ ng ₫ i 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 ạ ự ₫ộ ng ng hóa ngày nay . ạp chí T ự [11] Chuẩ n IEC-61131-3 và IEC-61499: www.holobloc.com IEC-61499: www.holobloc.com (*) [12] Trang Web v ề IEC-61131-3: www.plcopen.org 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. ng.