Để xác định lớp biên và các lớp thực thể trong HDS công nghiệp, chúng ta áp dụng các qui tắc [16] sau đây:
Các mối quan hệ hoặc tín hiệu chỉ dẫn của một hộp chức năng được mô tả
trong sơ đồ khối chức năng mở rộng tương ứng với một lớp thực thể; Các lớp biên được xác định bởi:
- Sự tác động bên ngoài giữa hệ thống phát triển và các tác nhân,
- Sự tác động bên trong giữa các đối tượng của hệ thống này.
3.2.6Cấu trúc hệđộng lực lai ứng với Automate lai trong sơđồ cộng tác các đối tượng tượng
Cấu trúc hệđộng lực lai bao gồm 5 đối tượng cộng tác [15], [19], [20]: phần liên tục (Continous part), phần rời rạc (Discrete part), ứng xử liên tục toàn cục tức thời (Instantaneous Global Continuous Behavior - IGCB), giao diện bên trong (Interal interface), giao diện bên ngoài (External interface) để phát triển hệ thống
động lực lai công nghiệp. Những đối tượng cộng tác đó được diễn giải ở Hình 3.5. Chúng được xác định và được ứng dụng theo máy ảo của các sự kiện nhưđối tượng (Object), lớp (Class) hoặc phân cấp lớp (Class hierarchy).
Hình 3.5 Sơđồ cộng tác đối tượng trong HDS công nghiệp 3.2.6.1Gói phần rời rạc
45
Sự cộng tác (Collaboration) phần tử rời rạc bao gồm tập hợp vị trí Q và tập hợp dịch chuyển trạng thái A của Automate lai. Mỗi vị trí tạo nên sự liên kết với mỗi IGCB.
3.2.6.2Gói phần liên tục
Sự cộng tác phần tử liên tục bao gồm các lớp thực thểđể lưu trữ và xử lý các thông tin hoạt động biến đổi của hệ thống động lực lai công nghiệp. Chúng ta có thể
xây dựng một lớp thực thể trừu tượng để có thể thực thi tính kế thừa nhằm tránh nhân đôi thông tin. Chúng ta cũng có thể tìm thấy các thuộc tính chung giữa các lớp thực thểđể tái sử dụng chúng. Tại thời điểm hiện tại, chúng ta sẽ giới hạn các phần tử liên tục trong phạm vi bao gồm: bộ khuyếch đại, bộ quán tính, bộ trễ, bộ dao
động và bộđiều chỉnh. Tất cả phần tử liên tục được gợi nhớ lại một cách có thứ tự
theo sơ đồ khối chức năng mở rộng bởi IGCB để mà có thể hình thành nên dòng liên tục cụ thể.
3.2.6.3Gói IGCB
Gói IGCB bao gồm: các lớp thực thể trong ứng xử liên tục toàn cục hiện thời (các dòng liên tục F trong Automate lai của một hệ thống động lực lai đang phát triển). Mỗi dòng được kết nối với vị trí cụ thể qi. Hiện tại, chúng ta chỉ xem xét những dòng đơn biến và được mô tả bằng các hàm truyền đạt. Có duy nhất một IGCB cụ thể tại thời điểm nhất định, có duy nhất một lớp thực thể chủ động tại mỗi thời
điểm đưa ra trong gói này. Chúng ta cũng có thể xây dựng một lớp thực thể trừu tượng trong gói này để mà những lớp thực thể khác có thể kế thừa.
3.2.6.4Gói giao diện bên trong
Gói giao diện bên trong đưa ra sự kiện bên trong của HDS công nghiêp, do đó sự cộng tác phần rời rạc có thể xử lý các sự kiện đã được đưa ra. Gói này là một thành phần trung gian giữa sự cộng tác phần liên tục và sự cộng tác phần rời rạc. Nó kiểm tra các đại lượng bất biến điều khiển {q, Guard, , Jump, q’} của Automate lai và đưa ra sự kiện bên trong cần thiết cho phép của tiến trình.
46
Gói giao diện bên ngoài là thành phần trung gian giữa hệ thống phát triển và các hệ thống tương tác. Nó nhận hoặc gửi các sự kiện và tín hiệu chu kỳ giữa hệ
thống đã phát triển và hệ thống tương tác. Nó có thể tạo ra để hiện thị kết quảđiều khiển, thông số cài đặt.v.v…Chúng ta có thể sử dụng mẫu MVC(Model - View -
Controller) [8] để thực thi gói giao diện bên ngoài một cách nhanh chóng và tối ưu. Trong luận văn này chúng ta không đưa ra chi tiết về MVC bởi vì những mô hình này đã phát triển trong phầm mềm phổ biến.
3.3 Thiết kế hệ thống động lực lai công nghiệp
Chúng ta thấy rằng chuyển trực tiếp từ mô hình cộng tác đối tượng (Objects
Collaboration) tới môi trường thực thi phải được bổ sung thêm các mô hình cấu trúc và ứng xử chi tiết để thực thi hệ thống điều khiển công nghiệp. Ví dụ, sự cộng tác của một hệ thống điều khiển không thích ứng tốt để hiển thị hóa; những loại liên kết mô hình giữa các đối tượng hoặc với hệ thống tương tác cần phải chỉ rõ các tham số điều khiển cụ thể. Trong giai đoạn thiết kế chi tiết một HDS công nghiệp, chúng ta chuyển đổi các cộng tác đối tượng hoặc gói đối tượng đã xác định ở trên thành các gói thiết kế với Real time UML, nhằm thực thi một hệ thống HDS hoàn chỉnh và nhằm tái sử dụng chung các gói trong các ứng dụng khác nhau. Các bước
để xây dựng lên sơ đồ hợp tác những gói chính với Real time UML tuân theo các quy tắc sau:
- Mỗi một hợp tác đối tượng hoặc gói đối tượng đã xác định ở trên thì cần ít nhất một gói với Real time UML, ví dụ như là: gói của HDS công nghiệp toàn cục, gói của phần liên tục, gói của phần rời rạc, gói của giao diện bên trong, gói của giao diện bên ngoài, gói của IGCB,
- Các lớp chủ động trong cộng tác đối tượng hoặc gói đối tượng thì sẽ trở
thành các gói tương ứng,
- Các lớp bị động trong cộng tác đối tượng hoặc gói đối tượng hợp tác thì sẽ
47
- Các cổng và giao thức được xác định bởi sự tương tác giữa các cộng tác đối tượng hoặc gói đối tượng có kèm theo các thông điệp cụ thể.
Để xác định sơ đồ diễn tiến và máy trạng thái tổng quan của những gói này dựa trên Automate lai và sơđồ khối chức năng mở rộng.
3.3.1Cấu trúc kết nối toàn cục
Chúng ta áp dụng 5 gói chính được áp dụng theo quy tắc ở trên để thi hành Automate lai của hệ thống điều khiển : gói phần liên tục, gói phần rời rạc, gói giao diện bên trong, gói giao diện bên ngoài và gói ứng xử liên tục toàn cục hiện thời (IGCB). Kết nối truyền đạt giữa các gói chính bởi các cổng và giao thức, được mô tả
trong sơđồ cấu trúc gói Hình 3.6.
Hình 3.6 Sơ đồ cấu trúc gói của HDS công nghiệp 3.3.2Tiến trình thực thi Automate lai
Các giả thuyết [16], [18] mà chúng ta áp dụng cho tính thực thi của gói cơ bản (Main capsules) của Automate lai như sau:
- Nếu cuối tiến trình của phần rời rạc được xác định trước hoặc ngay khi khoảng chu kỳ lấy mẫu (T) của gói IGCB, thì mô hình liên tục IGCB hiện thời sẽ
chuyển sang mô hình IGCB mới tương ứng với tiến trình này,
- Nếu cuối tiến trình của phần rời rạc được xác định sau khi khoảng chu kỳ lấy mẫu (T), thì ICCB hiện thời không được chuyển đổi,
48
- Nếu có một sự kiện xuất hiện trong suốt tiến trình trong máy trạng thái ứng dụng, thì sự kiên này được ghi nhớ và được xử lý sau đó,
- Các sự kiện bên trong và bên ngoài xuất hiện sẽ có quá trình xử lý theo ứng xử
như gói phần rời rạc,
- Trong suốt chu kỳ lấy mẫu của gói IGCB, gói phần liên tục, gói giao diện bên trong và gói phần rời rạc, tiến trình riêng được tạo ra để có thể kết nối với chế độ hoạt động của IGCB; mô hình liên tục IGCB gợi lại trạng thái hiện thời của nó trong khoảng chu kỳ này,
- Trong suốt chu kỳ của gói IGCB, mô hình liên tục IGCB hiện thời đã phát hiện một vài trạng thái xuất hiện, thì khi đó ở cuối giai đoạn này, gói IGCB
đồng bộ với tất cả trạng thái này với khoảng thời gian trống, sau đó, mô hình liên tục IGCB hiện thời chuyển qua một chếđộ hoạt động mới tương ứng với trạng thái xuất hiện gần nhất trong suốt chu kỳ này.
Chúng ta đưa ra một ví dụ để giải thích giả thuyết này qua Automate lai, thể
hiện Hình 3.7, trong đó Fi là dòng liên tục, Ee1, Ee2, Ee3… là sự kiện bên ngoài.
Hình 3.7 Ví dụ về Automate lai
Chúng ta chuyển đổi Automate này thành Automate lai khác Hình 3.8, nó bao gồm sự kiện bên trong tạo ra trong gói giao diện bên ngoài và sẽ là máy trạng thái
ứng dụng.
Hình 3.8 Chuyển đổi Automate lai với sự kiện bên trong Ei
Khi xqinv(q4) và Guard_4_5=True; trong đó: qi là vị trí i, tiến trình này được thực hiện bởi máy trạng thái ứng dụng.
49
Sơđồ cạnh tranh thời gian để đưa ra các tiến trình của Automate lai này thể hiện bởi Hình 3.9.
Trong đó:
- Ee1, Ee2, Ee3…: các sự kiện bên ngoài,
- Ei1, Ei2 …: các sự kiện bên trong,
- q1, q2, …: các vị trí của amtomate lai,
- ec1, ec2, …, ecn: thể hiện các tiến trình của các phần tử liên tục trong phần liên tục của gói,
- T: chu kỳ lấy mẫu của gói IGCB.
Hình 3.9 Sơđồ cạnh tranh thời gian toàn cục của các gói cơ bản 3.3.3Đặc tả các gói cơ bản của HDS công nghiệp
Để giải thích chi tiết cấu trúc tĩnh và động của các gói cơ bản, chúng tôi sử
50
Hình 3.10thể hiện tiến trình trong khoảng thời gian cụ thể giữa các gói cơ bản của Automate lai đã nêu ở trên. Trong hình vẽ này, tất cả các thông điệp mà trao đổi giữa các gói cơ bản là không đồng bộ, khoảng thời gian giữa hai thông điệp “Timeout” gần nhau cho biết chu kỳ lấy mẫu của gói IGCB. Gói giao diện bên ngoài nhận các tín hiệu chu kỳ đến từ các thành phần thiết bị bên ngoài. Nó gửi thông điệp ‘ContinuosElement’ của phần tử liên tục tới gói IGCB để gói IGCB có thể gọi tất cả
các phần tử liên tục tương ứng với IGCB hiện tại là IGCB2. Trong suốt quá trình gợi lại chương trình của gói IGCB, gói giao diện bên ngoài nhận một sự kiện Ee3 từ các tác nhân của hệ thống phát triển, và gửi sự kiện này tới gói phần rời rạc. Khi đó, gói phần rời rạc ghi nhớ và sẽ xử lý sự kiện này. Nếu gói IGCB nhận thông điệp phần tử liên tục cuối (LastContinuousElement) từ gói phần tử liên tục, khi đó nó gửi thông
điệp tiến trình liên tục (ContinuosEvolution) tới gói phần liên tục để cho gói giao diện bên trong có thể nhận tất cả các biến số cập nhật. Gói giao diện bên trong xác định giá trị của vị trí q3, trong trường hợp này có một sự kiện bên trong được sinh ra. Khi
đó gói giao diện bên trong gửi những sự kiện này tới gói của phần rời rạc. Gói của phần rời rạc ghi nhớ và sẽ xử lý sự kiện này. Trong khoảng thời gian này, sự kiện Ee2
đã được xử lý bởi gói phần rời rạc. Gói IGCB xác định được IGCB3 cụ thể và truyền tín hiệu đầu ra tới gói giao diện bên ngoài. Cuối chu kỳ này, gói giao diện ngoài truyền sự kiện đầu ra và tín hiệu điều khiển tới môi trường ngoài của hệ thống phát triển, hệ thống này hoạt động với IGCB3 cụ thể.
51
Hình 3.10 Sơđồ diễn tiến của Automate lai đưa ra cho chu kỳ cụ thể [2T - 3T] tương ứng với Hình 3.9
3.3.4Mô tả chi tiết đặc tính các gói cơ bản
Gói phần rời rạc: gói phần rời rạc bao gồm tập hợp vị trí Q và tập dịch chuyển trạng thái A của Automate lai. Những gói này cũng bao gồm máy trạng thái
để nó tự tạo ra sự tiến trình với các gói khác như là các gói giao diện bên trong và các gói IGCB và để xử lý sự kiện phát sinh bên trong.
Gói phần liên tục: gói phần liên tục đặc tả các thực thi bởi các phần tử liên tục của HDS. Tiến trình của phần tử liên tục được thực hiện bởi các mẫu đồng bộ
(RendezVous-Semaphore) [5]. Gói phần liên tục cũng có một máy trạng thái để tạo nên tiến trình riêng với các gói như là gói IGCB và gói giao diện bên trong.
Gói IGCB: gói IGCB bao gồm dòng liên tục cụ thể của hệ thống điều khiển phát triển tại mọi thời điểm đưa ra trong Automate lai, ký hiệu là F. Mỗi dòng tương
52
ứng với một trạng thái của Automate lai này. Gói IGCB có một máy trạng thái để
tạo nên tiến trình riêng với các gói khác như là gói các phần rời rạc và gói giao diện bên ngoài. Trong tiến trình này gói IGCB thay đổi các tín hiệu theo chu kỳ.
Gói giao diện bên trong: gói giao diên bên trong sinh ra các sự kiện bên trong của HDS, từđó gói phần rời rạc đó có thể tạo nên tiến trình riêng theo những sự kiện đó. Nó có một máy trạng thái để tạo nên tiến trình riêng với các gói khác như là gói phần liên tục và gói phần rời rạc.
Gói giao diện bên ngoài: gói giao diện bên ngoài là gói trung gian dùng để
nhận và gửi các sự kiện rời rạc và tín hiệu tuần hoàn giữa hệ thống phát triển và các hệ thống tương tác giữa chúng. Gói giao diện bên ngoài có một máy trạng thái để
tạo nên tiến trình riêng với các gói khác như là gói phần rời rạc và gói IGCB. 3.3.5Kiểm tra mô hình thiết kế
Hiện nay không có tại các công cụ chuẩn nào dùng cho quá trình kiểm tra trực tiếp sự cộng tác các gói, nhưng có các phần mềm ứng dụng như là phần mềm kiểm tra “Rational Real-Time Test” [23]; nó có thể kiểm tra một tập hợp chuỗi đầu vào và
đối tượng đã xác định đểđảm bảo sự hoạt động của HDS phát triển.
Hơn nữa, chúng ta có thể sử dụng công cụ “B STERIA” [9] thư viện đối tượng B, nó có thể dùng để hỗ trợ tính tái sử dụng và để áp dụng cho các yêu cầu kiểm tra của các hệ thống phát triển. Cũng có các công cụ HYTECH [11] để kiểm tra mô hình phân tích với Automate lai của HDS.
3.3.6Nguyên tắc tái sử dụng các gói
Tính tái sử dụng rất quan trọng để phát triển hệ thống điều khiển công nghiệp, bởi vì nó có thể làm giảm về mặt thời gian và giảm giá thành. Chúng ta thấy các khung nhìn tái sử dụng khác nhau trong sự phát triển của HDS công nghiệp [16], [19], [24] như là:
- Khung nhìn tái sử dụng dựa trên cơ chếảo của các đối tượng, các lớp hoặc lớp phân cấp.
53
- Khung nhìn tái sử dụng dựa trên sự cộng tác các gói. Ví dụ, máy trạng thái tổng quan của gói chính được xác định, các điều kiện ràng buộc trong công nghiệp có thểđược thích ứng để phát triển ứng dụng trong công nghiệp.
Để cụ thể hóa, chúng ta có thể đưa ra nguyên tắc để tái sử dụng các gói hợp tác của một HDS công nghiệp đã phát triển trong áp dụng mới, được thể hiện
ở bảng sau:
Bảng 3.1 Nguyên tắc tái sử dụng của các gói.
Các gói của hệ thống động lực lai công nghiệp
Mô tả đặc trưng
Gói phần rời rạc
Phần đặc trưng gói của các phần rời rạc được thực hiện bằng việc thêm vào hoặc loại bỏ các vị trí mà được mô tả ở tiến trình trạng thái của máy trạng thái. Cổng và giao thức của gói này giữ nguyên cùng mức độ tổng quan cho ứng dụng HDS công nghiệp khác nhau.
Gói phần liên tục
Gói của phần liên tục được thực hiện bởi sự thêm vào hoặc loại bỏ phần tử liên tục cụ thể. Xuất phát từ các phần tử liên tục thêm vào hoặc loại bỏ, các trạng thái cũng được thêm vào hoặc loại bỏ trong máy trạng thái của gói này. Những cổng và giao thức của gói này giữ
nguyên cùng mức độ tổng quan cho ứng dụng HDS công nghiệp khác nhau.
Gói IGCB
Đặc trưng của gói IGCB thể hiện ứng xử liên tục toàn cục tức thời mới, được hình thành bởi cấu trúc phần tử
liên tục mới trong gói phần liên tục. Bước nhảy (Jump)