Link tải luận văn miễn phí cho ae Kết Nối

MỤC LỤC
1 NHẬP MÔN 5
1.1 Phạm vi đềcập 5
1.2 Nội dung chương trình 5
1.3 Yêu cầu kiến thức cơsở5
1.4 Tổng quan các giải pháp điều khiển 6
1.4.1 Đặc trưng các lĩnh vực ứng dụng điều khiển 6
1.4.2 Các hệthống điều khiển công nghiệp 6
2 CẤU TRÚC CÁC HỆTHỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT 8
2.1 Cấu trúc và các thành phần cơbản 8
2.2 Mô hình phân cấp 9
2.2.1 Cấp chấp hành 10
2.2.2 Cấp điều khiển 10
2.2.3 Cấp điều khiển giám sát 10
2.3 Cấu trúc điều khiển 11
2.3.1 Điều khiển tập trung 11
2.3.2 Điều khiển tập trung với vào/ra phân tán 12
2.3.3 Điều khiển phân tán 12
2.3.4 Điều khiển phân tán với vào/ra phân tán 13
3 CÁC THÀNH PHẦN CỦA MỘT HỆ ĐIỀU KHIỂN PHÂN TÁN 15
3.1 Cấu hình cơbản 15
3.1.1 Trạm điều khiển cục bộ15
3.1.2 Bus trường và các trạm vào/ra từxa 17
3.1.3 Trạm vận hành 18
3.1.4 Trạm kỹthuật và các công cụphát triển 19
3.1.5 Bus hệthống 20
3.2 Phân loại các hệDCS 21
3.2.1 Các hệDCS truyền thống 21
3.2.2 Các hệDCS trên nền PLC 22
3.2.3 Các hệDCS trên nền PC 25
3.3 Các vấn đềkỹthuật 26
4 XỬLÝ THỜI GIAN THỰC VÀ XỬLÝ PHÂN TÁN 27
4.1 Một sốkhái niệm cơbản 27
4.1.1 Hệthống thời gian thực 27
4.1.2 Xửlý thời gian thực 27
4.1.3 Hệ điều hành thời gian thực 28
4.1.4 Xửlý phân tán 29
4.2 Các kiến trúc xửlý phân tán 30
4.3 Cơchếgiao tiếp 31
4.4 Đồng bộhóa trong xửlý phân tán 32
4.4.1 Đồng bộhóa các tín hiệu vào/ra 32
4.4.2 Đồng bộhóa thời gian 32
5 CÔNG NGHỆ ĐỐI TƯỢNG TRONG ĐIỀU KHIỂN PHÂN TÁN 33
5.1 Lập trình hướng đối tượng 33
5.2 Phân tích và thiết kếhướng đối tượng 33
5.2.1 Ngôn ngữmô hình hóa thống nhất UML 34
5.2.2 Mẫu thiết kế35
5.2.3 Phần mềm khung 35
5.3 Phần mềm thành phần 36
5.4 Đối tượng phân tán 37
6 KIẾN TRÚC ĐỐI TƯỢNG PHÂN TÁN 38
6.1 Yêu cầu chung 38
6.2 Các mẫu thiết kế38
6.3 Giới thiệu chuẩn CORBA 39
6.4 Giới thiệu chuẩn COM/DCOM 40
6.4.1 Giao diện 41
6.4.2 Đối tượng COM 41
6.4.3 Giao tiếp giữa client và object 44
6.4.4 Ngôn ngữmô tảgiao diện 46
6.4.5 Mô hình đối tượng thành phần phân tán DCOM 46
7 CÁC MÔ HÌNH ỨNG DỤNG ĐIỀU KHIỂN PHÂN TÁN 48
7.1 IEC-61131 48
7.1.1 Mô hình phần mềm 48
7.1.2 Mô hình giao tiếp 49
7.2 IEC-61499 51
7.2.1 Mô hình hệthống 51
7.2.2 Mô hình thiết bị52
7.2.3 Mô hình tài nguyên 52
7.2.4 Mô hình ứng dụng 53
7.2.5 Mô hình khối chức năng 54
7.2.6 Mô hình phân tán 56
7.2.7 Mô hình quản lý 56
7.2.8 Mô hình trạng thái hoạt động 56
8 MỘT SỐCHUẨN GIAO TIẾP CÔNG NGHIỆP 58
8.1 MMS 58
8.2 IEC-61131-5 60
8.2.1 Mô hình giao tiếp mạng 60
8.2.2 Dịch vụgiao tiếp 61
8.2.3 Các khối chức năng giao tiếp 62
8.3 OPC 63
8.3.1 Tổng quan vềkiến trúc OPC 63
8.3.2 OPC Custom Interfaces 65
8.3.3 OPC Automation Interface 66
8.4 Ngôn ngữ đánh dấu khảmởXML 67
8.4.1 Giới thiệu chung 67
8.4.2 Ứng dụng XML trong phần mềm khung iPC 68
9 MÔ TẢHỆTHỐNG ĐIỀU KHIỂN PHÂN TÁN 70
9.1 Các phương pháp mô tả đồhọa 70
9.2 Lưu đồP&ID 71
9.2.1 Chuẩn ISA S5.1 71
9.2.2 Chuẩn ISA S5.3 75
9.3 Mô hình hóa hướng đối tượng 77
10 LẬP TRÌNH ĐIỀU KHIỂN PHÂN TÁN 78
10.1 Lập trình theo chuẩn IEC 61131-3 78
10.1.1 Kiểu dữliệu 79
10.1.2 Tổchức chương trình 81
10.1.3 Ngôn ngữFBD 83
10.1.4 Ngôn ngữST 84
10.1.5 Ngôn ngữSFC 85
10.2 Lập trình với ngôn ngữbậc cao 85
11 CHỨC NĂNG ĐIỀU KHIỂN GIÁM SÁT 87
11.1 Giới thiệu chung vềcác hệ điều khiển giám sát 87
11.1.1 Các thành phần chức năng cơbản 88
11.1.2 Công cụphần mềm SCADA/HMI 89
11.2 Xây dựng cấu trúc hệthống 91
11.3 Thiết kếgiao diện người-máy 92
11.3.1 Yêu cầu chung 92
11.3.2 Các phương pháp giao tiếp người-máy 92
11.3.3 Thiết kếcấu trúc màn hình 92
11.3.4 Các nguyên tắc thiết kế93
12 TÍNH SẴN SÀNG VÀ ĐỘTIN CẬY CỦA CÁC HỆ ĐKPT 94
12.1 Đặt vấn đề94
12.2 Cơchếdựphòng 94
12.3 Cơchếan toàn 95
12.4 Cơchếkhởi động lại sau sựcố95
12.5 Bảo mật 95
12.6 Bảo trì 95
13 ĐÁNH GIÁ VÀ LỰA CHỌN GIẢI PHÁP ĐIỀU KHIỂN PHÂN TÁN 97
13.1 Đánh giá và lựa chọn các sản phẩm DCS tích hợp trọn vẹn 97
13.1.1 Phạm vi chức năng 97
13.1.2 Cấu trúc hệthống và các thiết bịthành phần 97
13.1.3 chức năng mở97
13.1.4 Phát triển hệthống 97
13.1.5 Độtin cậy và tính sẵn sàng 98
13.1.6 Giá thành, chi phí 98
13.2 So sánh giải pháp DCS tích hợp trọn vẹn với các giải pháp khác 98
14 GIỚI THIỆU MỘT SỐHỆ ĐIỀU KHIỂN PHÂN TÁN TIÊU BIỂU 100
14.1 PCS7 của Siemens 100
14.2 PlantScape của Honeywell 100
14.3 DeltaV của Fisher Rosermount 100
14.4 Centum CS1000/CS3000 của Yokogawa 100
14.5 AdvantOCS của ABB 100
15 MỘT SỐHƯỚNG NGHIÊN CỨU VÀ ỨNG DỤNG 101
15.1 Trí tuệnhân tạo phân tán 101
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 đề102
15.2.2 Mô hình hệthống điều khiển đèn tín hiệu giao thông bằng công
nghệAgent 102
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 104
TÀI LIỆU THAM KHẢO 105
• Giao diện có kiểu mạ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 xung đột có thể xảy ra đối với các tên ta
đặt cho giao diện. Điều này tăng thêm tính bền vững cho chương trình.
• Các giao diện ₫ược phân biệt rõ ràng: Mọi sự thay đổi như thêm hay 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. 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 một ngôn ngữ thông dụng
như C, C++ hay VB. Một đối tượng có thể cung cấp nhiều giao diện. Tấ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
diện cơ sở cho tất cả các giao diện khác trong COM mà mọi đối tượng phải hỗ
trợ. Bên cạnh đó, đối tượng cũng có khả năng thực thi nhiều giao diện khác.
Các đối tượ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 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 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.
Hình 6-3: Mô hình một ₫ối tượng COM
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 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 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ới mảng các con trỏ tớ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 COM, không có sự loại trừ, đều hỗ
trợ giao diện IUnknown. Giao diện này có ba cách AddRef(), Release()
và 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 cách này.
Hai cách đầ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ạo lần đầu, ta cần gọi cách
AddRef() của đối tượng để tăng số đếm. Khi không còn cần tới đối tượng, ta gọi
cách Release() để giảm số đếm tham chiếu. Khi người dùng cuối cùng
gọi cách Release(), số đếm giảm về 0 thì đối tượng sẽ tự huỷ.
Đối tượng
IUnknown
Các giao diện
khác
B
A
© 2005, Hoàng Minh Sơn
43
Hình 6-4: Sự thực thi con trỏ giao diện
Ta có thể thấy rõ vấn đề hơn qua sự thực thi đơn giản hai cách
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, những gì ta có chỉ là một
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ợ. Đối
tượng có thể hay không hỗ trợ giao diện mà ta quan tâm, nhưng mọi đối
tượ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 cách 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 cách
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ợ giao diện yêu cầu, nó sẽ trả 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. Nếu đối tượng không hỗ trợ 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,
pointer
Interface Function Table
Interface Pointer
Pointer to Function1
Function1(...)
{
...
}
Pointer to Function2
Pointer to Function3
...
Function2(...)
{
...
}
Function3(...)
{
...
}
...
© 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;
}
}
Quan hệ giữa ₫ối tượng và các giao diện
• Các client chỉ kết nối qua con trỏ tới các giao diện. Khi một client truy
nhập vào một đối tượng, client chỉ đơn thuần thông qua con trỏ giao
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 thái của
chúng.
• Đối tượng có thể thực thi nhiều giao diện. Một lớp thực thi đối tượng có thể
thực thi nhiều giao diện, ví dụ qua phươ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ếp
Trước khi sử dụng một đối tượng COM trong một ứng dụng, ta cần khởi tạo
cơ chế COM trong ứng dụng bằng lời gọi CoInitialize(...) và sau đó tạo đối
tượ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
đó của đối tượng, client hiểu rằng nó cần có con trỏ đến một hay nhiều giao
diện của đối tượng. Để tạo một đối tượng COM và nhận một con trỏ vào giao
diện, ta có thể gọi một trong hai hàm CoCreateInstance() hay
CoCreateInstanceEx() với các tham số xác định đối tượng.
Hình 6-5: Giao tiếp giữa ₫ối tượng và khách hàng
Trong một số trường hợp, bản thân client sẽ đóng vai trò một object và cung
cấp cho các đối tượng khác những chức năng gọi các sự kiện hay đưa ra các
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
khách hàng.
Client
Application
Object
Interface
Pointer
© 2005, Hoàng Minh Sơn
45
Hình 6-6: Giao tiế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ì
client sẽ kết nối trực tiếp với object qua con trỏ giao diện.
Hình 6-7: Giao tiếp giữa ₫ối tượng và khách hàng trên cùng quá trình
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 thay mặt
(proxy) bên phía client và một đối tượng gốc (stub) bên phía object. Proxy và
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


Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 

chiyul21

New Member
Re: [Free] Giáo trình Hệ thống điều khiển phân tán

Em xin tài liệu này được không ạ
 

daigai

Well-Known Member
Re: [Free] Giáo trình Hệ thống điều khiển phân tán

Link mới update, mời bạn xem lại bài đầu
 
Top