Thiết kế, xây dựng và lập trình công cụ tạo ứng dụng SCADA theo mô hình hướngđối tượng bang cách tô chức hệ thong SCADA theo các đối tượng.. Tính cấp thiết của vấn dé xây dựng bộ công cụ
TankWater1 lễ
Cửa số này (xem hình Hình 3.7) cho phép khởi tao cấu trúc và thứ tự các đối tượng khi chạy chương trình ứng dụng tại runtime.
Cửa số này (xem hình Hình 3.8) cho phép hién thị các instance đối tượng device của ứng dụng Với mục đích quan sát các device hiện tại và cho phép khởi tạo nhanh địa chỉ
ReadFrom/WriteTo đến attibute của đối tượng ứng dụng băng cách kéo thả đối tượng ứng dụng mong muôn đên các instance cửa đôi tượng thiệt bi năm trong cửa sô nay.
Hình 3.9 Cửa số công cu thiết kế và thiết lập đô hoa ứng dung SCADA
Trong công cụ này (hình Hình 3.9) có thành phan như:
- Ctra s6 Graphic Toolbox - Cửa số Property Toolbox - Cửa số Faceplate
- Cửa số Symbol - Cửa số Aplication Object - Cửa số Display page
Rectangle Ellipse Textbox Picture Button Text Panel Label Anmnaton PipeLme
Hình 3.10 Cửa số Graphic Toolbox
Cửa số này (Hình 3.10) chứa các đối tượng đồ họa cơ bản và đối tượng animation chứa các đối tượng symbol factory Dé sử dụng các đối tượng này ta tiễn hành kéo đối tượng từ cửa số toolbox này sang của số Form bên tay phải.
Các công cụ tạo ứng dung SCADA trên thị trường thường dùng các đối tượng đồ họa chủ yếu là các ảnh bitmap Điểm mạnh của kỹ thuật này là nó cho phép đơn giản trong việc xây dựng cũng như là lập trình xây dựng đối tượng đồ họa Tuy nhiên, điểm yếu của kỹ thuật này là các hình ảnh sẽ bị bễ và mat nét khi ta thay đổi kích thước Bên cạnh đó, việc xây dựng các đối tượng đồ họa băng kỹ thuật này sẽ không mang tính linh hoạt khi diễn tả một đồ họa trực quan trong ứng dụng SCADA.
Tu phân tích trên và để khắc phục các nhược điểm của kỹ thuật cũ, các đối tượng đồ họa trong công cụ này đều được vẽ bằng véc-tơ vì vậy nó cho chất lượng cao và dễ hiệu chỉnh dé khi kéo dan hoặc di chuyển không bị bễ đối tượng như các công cu SCADA trước đây Bên cạnh đó, việc vẽ đồ họa băng véc-tơ cho phép ta linh hoạt khi điều khiến các thành phần bên trong đối tượng đồ họa cho phép diễn tả một đối tượng đồ họa trực quan hơn.
MyBackCollf1 Gray W MyFont Arial 30px
MyForeCol J Black ằ MyLocatio) 38, 91 MyName Openbt ằ MySize 171, 65 —!
The text associated with the control.
Hình 3.11 Cửa số Property Toolbox
Cửa số này (Hình 3.11) cho phép hién thị thông tin của đối tượng đồ họa khi ta tiến hành double click đối tượng đồ họa ở trên của số Form bên phải Từ cửa số này cho phép ta quan sát giá tri thuộc tính hiện tại cũng như cho phép ta đặt giá tri mới cho các thuộc tính của đối tượng đồ họa.
Bên trong của số này phan “Attribute Address” sẽ là địa chỉ dé chỉ đến thuộc tính của một đối tượng ứng dụng mà đối tượng đồ họa muốn liên kết đến Ở đây, định dạng cho địa chỉ thuộc tính này sẽ là “Me.” “Me” là từ khóa để chỉ bản thân đối tượng ứng dụng mà đối tượng đồ họa đang xây dựng liên kết đến.
Một đối tượng đồ họa hay dùng từ khóa “Me” là đối tượng label Với việc sử dụng từ khóa “Me”, đối tượng label có thé hiển thị tên của từng đối tượng ứng dụng mà đối tượng đô hoa đang liên kết.
Ví dụ: ta có ba motor là motorl, motor2, motor3 Ta chỉ cần 1 đối tượng đồ họa mẫu(symbol) cho tất cả các motor trên Ở đây, bên trong đối tượng đồ họa này ta có thể dùng label dé hiển thị tên của đối tượng ứng dung thông qua cú pháp “Motor #Me”.
MyLocatio MyName Openbt MySize 171,65 MyText
Text The text associated with the control.
Faceplate Symbol | applic: 4 | > | symbolConsumerWater1 symbolBendmgTank1 symboPump1 symbolvalvel symbolTankWater1
Của số này (Hình 3.12) cho phép hiền thị các đối tượng symbol mà người thiết kế đã xây dựng Đối tượng này được sử dụng ở runtime bởi việc liên kết nó với một đối tượng ứng dụng (application object) Bên cạnh đó, tại runtime đối tượng này còn được liên kết với đối tượng faceplate cho phép hién thi faceplate khi ta double click vào đối tượng nay trên Graphic Form. Đối tượng này cũng cho phép hién thị và hiệu chỉnh các thuộc tính của nó thông qua việc double đối tượng này tại thời điểm thiết kế Trong quá trình thiết lập, ta có thể gán một đối tượng faceplate vào đối tượng symbol thông qua việc lựa chọn faceplate trong cửa số hiển thị các tùy chọn khi ta click phải lên của số của đối tượng symbol. s* Cửa sô Faceplate
Cửa số này (Hình 3.13) cho phép hiển thị các Faceplate mà người thiết kế đã tạo Các faceplate này là các Form chứa các đói tượng đồ họa cơ bản trên và được sử dụng tại thời điểm runtime cho phép người vận hành double click dé xem thông tin chi tiết của đối tượng ứng dụng trên Graphic Form.
% Cửa số Aplication Object symbol (ÄppleadonửBj | p ô| ' |
Hình 3.14 Cửa số Aplication Object
Cửa số này (Hình 3.14) cho phép ta hiển thị các instance của đối tượng ứng dụng trong dự án Đề từ đây ta có thể tạo nhanh ứng dụng băng cách kéo đối tượng này vào Graphic Form mà không can phải vẽ lại từng đối tượng.
% Cửa số Display page Cửa số này cho phép chứa các đối tượng đô họa cơ bản và đối tượng Symbol trong quá trình thiết kế đồ họa cho ứng dung SCADA.
Toàn bô các công cụ đồ họa này hoạt động trên thao tác kéo thả các đối tượng thành phan vào Form thiết kế Bên cạnh đó, nó còn cung cấp các lựa chọn xóa đối tượng, kéo dan đối tượng, di chuyền đối tượng và vẽ đối tượng bằng vec-to.
3.1.3 Thiết kế công cụ thiết kế và thiết lập các đối tượng của thành phân hạt nhân (kernel) SCADA
3.1.3.1 Thiết kế công cu tao Template của các đối tượng thành phan hạt nhân (kernel) SCADA
Lưu đồ Hình 3.15 mô tả giải thuật tao template của đối tượng hạt nhân (kernel) SCADA bao gôm các đối tượng như là đối tượng ứng dụng application object, đối tượng device (Modbus TCP object, OPC client object và Profinet object) Từ cửa số Toolbox Template, ta click chuột phải lên đôi tượng can tao template và chon “Add template” sau đó nhập tên template mà ta muốn tạo Sau đó, chương trình sẽ ghi nhớ tên mới nhập và lặp đệ quy các node trong treeview list để xác định loại đối tượng mà ta muốn tạo Từ mỗi loại đối tượng mà ta tạo một đối tượng template tương ứng với loại đó. Ở đây, ta dùng giải thuật lặp đệ quy để kiểm tra loại đối tượng template Bằng cách từ node hiện tại ma ta chọn trên treeview, ta đọc thuộc tính Parrent (tức là node cha của nó) và kiểm tra loại đối tượng cha này có phải là đối tượng Null hay không? Vi node gốc (Root Node) sẽ không có đối tượng cha Lặp đệ quy sẽ thoát khi điều kiện Null thỏa mãn.