- Truy cập đối tượng trong trình soạn thảo đồ họa - ScreenItems
Cú pháp:
dim doi_tuong
set doi_tuong = Screenitems(["Tên đối tượng đồ họa"])
Lưu ý: Tên đối tượng đồ họa chính là tên của các thành phần như nút bấm, hình tròn, hình chữ nhật, đường thẳng, vùng IO, văn bản tĩnh... trong trình soạn thảo đồ họa. Tên này có thể được viết trực tiếp hoặc sử dụng chuỗi thay thế.
Ví dụ: Trong một màn hình có 10 hình tròn với tên lần lượt là "Hinh1", "Hinh2"... "Hinh10". Nếu tạo từng đối tượng riêng lẻ sẽ rất mất thời gian, lúc này có thể áp dụng phương pháp lọc theo nhu cầu thực tế, ví dụ thông qua vòng lặp để chỉnh sửa bán kính cho tất cả các hình, thiết lập bán kính chung là 15.
dim chi_so, doi_tuong_hinh
for chi_so = 1 to 10
set doi_tuong_hinh = ScreenItems("Hinh" & Cstr(chi_so))
doi_tuong_hinh.Radius = 15
next
set doi_tuong_hinh = nothing
- Sử dụng Screens
Screens chủ yếu dùng để thao tác với cửa sổ màn hình. Qua Screens, có thể thực hiện thao tác với các đối tượng trong cửa sổ màn hình khác đường dẫn từ màn hình hiện tại.
Ví dụ: Trong một màn hình, sau khi nhấn nút, muốn hiển thị cửa sổ có tên "THOAT" trong màn hình Khởi động, có thể sử dụng đoạn mã sau:
Dim nhom_doi_tuong
Set nhom_doi_tuong = HMIRunTime.Screens("Khoidong").ScreenItems("THOAT")
nhom_doi_tuong.Visible = true
Chi tiết xem thêm tại blog: Cách thao tác với các điều khiển đa tầng lồng ghép khác đường dẫn bằng VBS trong WinCC
- Vô hiệu hóa hệ thống WinCC
Lệnh này khá đơn giản, có thể kết hợp với hộp thoại xác nhận để yêu cầu người dùng xác nhận lại việc vô hiệu hóa hệ thống hoặc hủy kích hoạt.
Cú pháp: Sử dụng trực tiếp hmiruntime.stop
dim ket_qua_xac_nhan
ket_qua_xac_nhan = MsgBox("Nhấn 'Đồng ý' để tiếp tục, nhấn 'Hủy' để thoát", vbOKCancel, "Thông báo")
If ket_qua_xac_nhan = vbOK Then
hmiruntime.stop
End If
- Thao tác với biến
Cú pháp: hmiruntime.tags([Tên biến]), tên biến có thể được viết trực tiếp hoặc sử dụng chuỗi để thực hiện thao tác động.
'Ghi giá trị biến đơn giản trực tiếp
HMIRuntime.Tags("Bien1").Write 8
'Sử dụng đối tượng để ghi giá trị biến
Dim doi_tuong_bien
Set doi_tuong_bien = HMIRuntime.Tags("Bien1")
doi_tuong_bien.Write 9
'Sử dụng tham chiếu để làm việc với đối tượng biến trước khi ghi. Có thể đọc giá trị biến, tính toán, rồi ghi lại:
Dim doi_tuong_bien_tam
Set doi_tuong_bien_tam = HMIRuntime.Tags("Bien1")
doi_tuong_bien_tam.Read
doi_tuong_bien_tam.Value = doi_tuong_bien_tam.Value + 2
doi_tuong_bien_tam.Write
'Đọc đơn giản
HMIRuntime.Trace "Giá trị: " & HMIRuntime.Tags("Bien1").Read & vbCrLf
'Sử dụng tham chiếu để làm việc với đối tượng biến. Có thể đọc giá trị biến, tính toán, rồi ghi lại:
Dim doi_tuong_bien_doc
Set doi_tuong_bien_doc = HMIRuntime.Tags("Bien1")
doi_tuong_bien_doc.Read
doi_tuong_bien_doc.Value = doi_tuong_bien_doc.Value + 1
doi_tuong_bien_doc.Write
'Đọc trực tiếp
Dim doi_tuong_bien_truc_tiep, gia_tri_bien
Set doi_tuong_bien_truc_tiep = HMIRuntime.Tags("Bien1")
gia_tri_bien = doi_tuong_bien_truc_tiep.Read(1)
HMIRuntime.Trace "Giá trị: " & gia_tri_bien & vbCrLf
- Ghi thuộc tính đối tượng
Có thể sử dụng Screenitems ở mục 1 để ghi các thuộc tính của đối tượng một cách động:
'Cách ghi đơn giản nhất, thay đổi màu nền của đối tượng
ScreenItems("Hcn1").BackColor = RGB(255,128,0)
'Sử dụng tham chiếu để thiết lập thuộc tính
Dim doi_tuong_hcn
Set doi_tuong_hcn = ScreenItems("Hcn1")
doi_tuong_hcn.BackColor = RGB(255,128,0)
'Thiết lập thuộc tính thông qua cửa sổ màn hình
'Ví dụ sau đây thay đổi màu của hình chữ nhật trong cửa sổ phụ. Script tương ứng được thực thi trong màn hình cơ sở "ManhinhChuan" nơi chứa cửa sổ "CuaSo1". Cửa sổ này hiển thị màn hình có chứa đối tượng hình chữ nhật tên là "Hcn1".
Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim doi_tuong_hcn_phu
Set doi_tuong_hcn_phu = ScreenItems("CuaSo1").Screen.ScreenItems("Hcn1")
doi_tuong_hcn_phu.BackColor = RGB(255,128,0)
End Sub
'Sử dụng tham chiếu màn hình cơ sở
'Có thể tham chiếu đến màn hình chứa đối tượng cần sửa đổi thông qua HMIRuntime.Screens. Đường dẫn của màn hình tương đối với màn hình cơ sở được xác định bởi đoạn mã truy cập sau:
'[<TênMànHìnhCoSo>.]<TenCuaSo>[:<TenManHinh>]... .<TenCuaSo>[:<TenManHinh>]
'Trong ví dụ sau, tạo tham chiếu đến đối tượng "CuaSo2" trong màn hình "Hcn1" và thiết lập màu nền thành đỏ.
'Trong trường hợp này, màn hình "CuaSo2" nằm trong "CuaSo1". "CuaSo1" được hiển thị trong màn hình cơ sở "ManhinhChuan".
Dim doi_tuong_hcn_co_so
Set doi_tuong_hcn_co_so = HMIRuntime.Screens("ManhinhChuan.CuaSo1:Hinh1.CuaSo1:Hinh2").ScreenItems("Hcn1")
doi_tuong_hcn_co_so.BackColor = RGB(255,128,0)
- Động hóa điều khiển
Có thể thực hiện thao tác động với các điều khiển như xu hướng, cảnh báo... Nội dung này khá phong phú nên sẽ được giới thiệu chi tiết ở các phần tiếp theo.