MC&TT Co., Ltd

Part 17. Phần mềm SCADA Cimon Ultimate Access - Hệ quản trị cơ sở dữ liệu (DBMS)

Chia sẻ:

Part 17. Phần mềm SCADA Cimon Ultimate Access - Hệ quản trị cơ sở dữ liệu (DBMS)

1. User LOG DB

CIMON-SCADA cung cấp một cơ sở dữ liệu đơn giản cho phép người dùng tìm kiếm các giá trị thẻ mà không cần sử dụng DB chung. Dữ liệu được tìm kiếm được sắp xếp dưới dạng bảng. Kết quả của User LOG DB có thể được lưu dưới dạng tệp csv, pdf và excel. Người dùng cũng có thể đặt mật khẩu cho tệp DB, chẳng hạn như Excel, để tăng cường bảo mật.

  • Bạn không thể chỉnh sửa thủ công dữ liệu của User LOG DB.
  • Bạn không thể sử dụng User LOG DB qua mạng. Tính năng này chỉ dành cho PC cục bộ

1.1 Features

  • Bạn có thể tìm kiếm hoặc chèn dữ liệu đơn giản mà không cần sử dụng các DB phổ biến như Microsoft SQL và Oracle Database.
  • Dữ liệu được tìm kiếm có thể được hiển thị trong một bảng.
  • Dữ liệu được tìm kiếm có thể được lưu dưới dạng tệp csv, pdf và excel.
  • Bạn có thể đặt mật khẩu cho tệp đã lưu, chẳng hạn như Excel, để tăng cường bảo mật.

1.2 Settings

To bring up the configuration window of the User LOG DB, select [Tools] – [User LOG DB] or press icon

(1) Settings

Item Description
Database Name Enter the name of the User LOG DB model. You cannot leave the field blank. The name cannot duplicate. The maximum length of the name is 60 characters.
Save Path Assign the path of the log data file to be saved.
The file name format is ‘ProjectName.ldd’.
Save Days Assign the number of days to save the data. You can assign from 1 to
9999 days.
Add Adds a new DB model.
Registry Saves the changed DB model.
Del Deletes the selected DB model.
Item Add Adds a new item to the DB model.
Item Del Deletes the selected item from the DB model.
Item Edit Changes the settings of the selected item of the DB model.

(2) Configuring the Record Item

When you press [Item Add] or [Item Edit] button, the dialog box will appear as shown below.

Name Enter the name of the item.
Data Type Select the data type of the item. You can select digital, analog, and string.
Data Size This field is enabled when you select the data type as String. You can assign the size from 0 to 128.
Tag You can assign a tag according to the data type you have assigned. You can assign digital, analog and string tag.
You may manually enter the tag name or press button to browse the tag.

1.3 Related Features

Trong phần này, bạn có thể tìm thấy các hàm và chương trình con thường được sử dụng cho User LOG DB. Vui lòng tham khảo bảng bên dưới để biết các hàm/chương trình con áp dụng.

Command Description
Functions for data searching Function DbInsert Chèn dữ liệu vào mô hình User LOG DB.
Subroutine DbSetFindTimeStr Đặt thời gian tìm kiếm cho mô hình User LOG DB
Function DbSetFindFilter Đặt điều kiện tìm kiếm cho mô hình User LOG DB
Function DbFindRun Tìm kiếm dữ liệu từ CSDL Nhật ký người dùng.
Function DbFindCount Trả về số bản ghi được tìm thấy bởi hàm DbFindRun.
Function DbFindFirstItem Tìm mục đầu tiên của User LOG DB được liệt kê trên List Control.
Function DbFindLastItem Tìm mục cuối cùng của User LOG DB được liệt kê trên List Control.
Function DbFindNextItem Di chuyển tiêu điểm của List Control tới mục tiếp theo.
Function DbFindPrevItem Di chuyển tiêu điểm của List Control tới mục trước đó
Function DbFindItemData Đọc dữ liệu từ mục được chọn trên List Control.
List control Subroutine wcGridCommand Các lệnh cho List Control như xuất dữ liệu và xóa
Subroutine wcGridSetData Đặt dữ liệu vào cột và hàng được chỉ định trong List Control.
Subroutine wcGridGetData Ghi dữ liệu từ cột và hàng được chỉ định vào List Control.
Subroutine wcLoadData Tải tệp ‘CSV’ vào đối tượng List Control.
Subroutine wcSaveData Lưu nội dung của List Control dưới dạng định dạng tệp ‘csv’, ‘pdf’, ‘xlsx’.
Calendar Control Function wcGetData Trả về nội dung của Calendar Control
Error Codes Bạn có thể tìm thấy lỗi với giá trị trả về của hàm

1.3.1 Functions for Data Searching

DbInsert Chèn dữ liệu vào mô hình User LOG DB.
Function Operation DbInsert(“UserLOGDB Name”)
Script n = DbInsert(“UserLOGDB Name”)
Description Hàm này đọc giá trị thẻ được đăng ký vào User LOG DB và lưu nó dưới dạng dữ liệu của DB có dữ liệu thời gian. Nếu hàm không lưu được dữ liệu, giá trị ngoại trừ 0 sẽ được trả về.
Example Saves data to the User LOG DB named “LOGDB”.
n = DbInsert(“LOGDB”)

 

DbSetFindTimeStr Sets search time to the User LOG DB model.
Subroutine Command DbSetFindTimeStr (“UserLOGDB Name, “StartTime String”,
“EndTime String”)
Script DbSetFindTimeStr “UserLOGDB Name”, “StartTime String”,
“EndTime String”
Description Đặt thời gian tìm kiếm cho mô hình User LOG DB. Chuỗi StartTime phải là giá trị thời gian trước chuỗi EndTime.
Example Sets search time from 2017 – 10 – 11 14:00:00 to 2017 – 10 – 11 15:26:35 at the User LOG DB named LOGDB.
DbSetFindTimeStr “LOGDB”, “20171011140000”, “20171011152635

 

DbSetFindFilter Đặt điều kiện tìm kiếm cho mô hình User LOG DB
Function Operation DbSetFindFilter(“UserLOGDB Name”, “Condition”)
  Script n = DbSetFindFilter(“UserLOGDB Name”, “Condition”)
Description Đặt điều kiện tìm kiếm cho mô hình User LOG DB. Nếu không có lỗi trong điều kiện, hàm trả về 0. Nếu giá trị trả về không phải là 0, hãy thay đổi điều kiện.
Example Tìm mục có nhiệt độ cao hơn 30 độ C trong số các mục có số sê-ri B104 trong CSDL người dùng có tên là LOGDB.
n = DbSetFindFilter (“LOGDB”, “[Serial] = $B104 AND[Temp] >= 30”)

 

DbFindRun Tìm kiếm dữ liệu từ User LOG DB.
Function Operation DbFindRun(“UserLOGDB Name”)
  Script n = DbFindRun(“UserLOGDB Name”)
Description Tìm kiếm dữ liệu từ User LOG DB với các điều kiện được đặt bởi các hàm DbSetFindTimeStr và DbSetFindFilter. Nếu dữ liệu được tìm kiếm đúng cách, hàm trả về 0.
Example Searches data from the User LOG DB named LOGDB.
n = DbFindRun(“LOGDB”)

 

DbFindCount Trả về số lượng bản ghi được tìm thấy bởi hàm DbFindRun.
Function Operation DbFindCount(“UserLOGDB Name”)
  Script n = DbFindCount(“UserLOGDB Name”)
Description Để thực hiện hàm này, hàm DbFindRun phải được thực hiện trước. Hàm này trả về số bản ghi từ dữ liệu được tìm kiếm.
Example Returns the number of searched data from the User LOG DB named LOGDB.
n = DbFindCount(“LOGDB”)

 

DbFindFirstItem Finds the first item of User LOG DB listed on the List Control.
Function Operation DbFindFirstItem(“UserLOGDB Name”)
  Script n = DbFindFirstItem(“UserLOGDB Name”)
Description

Hàm này tìm mục đầu tiên của User LOG DB được liệt kê trên List Control. Tiêu điểm di chuyển đến mục đầu tiên.

Example Moves to the first item of the User LOG DB named LOGDB listed on the List Control.
n = DbFindFirstItem(“LOGDB”)

 

DbFindLastItem Finds the last item of User LOG DB listed on the List Control.
Function Operation DbFindLastItem(“UserLOGDB Name”)
  Script n = DbFindLastItem(“UserLOGDB Name”)
Description

The function finds the last item of User LOG DB listed on the List Control. The focus moves to the last item.

Example Moves to the last item of the User LOG DB named LOGDB listed on the List Control.
n = DbFindLastItem(“LOGDB”)

 

DbFindNextItem Moves the focus of the List Control to the next item.
Function Operation DbFindNextItem(“UserLOGDB Name”)
  Script n = DbFindNextItem(“UserLOGDB Name”)
Description

This function moves the focus of the List Control to the next item.

Example Moves to the next item of the User LOG DB named LOGDB listed on the List Control.
n = DbFindNextItem(“LOGDB”)

 

DbFindPrevItem Moves the focus of the List Control to the previous item.
Function Operation DbFindPrevItem(“UserLOGDB Name”)
  Script n = DbFindPrevItem(“UserLOGDB Name”)
Description

This function moves the focus of the List Control to the previoust item.

Example Moves to the previous item of the User LOG DB named LOGDB listed on the List Control.
n = DbFindPrevItem(“LOGDB”)

 

DbFindItemData Đọc dữ liệu từ mục được chọn trên List Control.
Function Operation DbFindItemData(“UserLOGDB Name”, “Item Name”)
  Script strVal$ = DbFindItemData(“UserLOGDB Name”, “Item Name”)
Description Đọc dữ liệu từ mục đã chọn trên List Control. Khi hàm hoạt động chính xác, nó trả về giá trị của Item Name.
Example Reads the [Product] value of the current focus from the User LOG DB named LOGDB.
strVal$ = DbFindItemData (“LOGDB”, “Product”)

1.3.2 Functions for List Control

wcGridSetData Đặt dữ liệu vào cột và hàng được chỉ định trong List Control.
Subroutine Command WcGridSetData(“Object Name”, Column, Row, “Value”)
  Script WcGridSetData “Object Name”, Column, Row, “Value”
Description Sets the data to the specified column and row in the List Control.
Example Sets “LOG DB” to the cell at 4th row and 2nd column in the List Control named “LOGDBLIST”.
wcGridSetData“LOGDBLIST”, 2, 4, “LOGDB

 

wcGridGetData Brings the data from the specified column and row in the List Control.
Function Operation wcGridGetData (“Object Name”, Column, Row)
  Script n= wcGridGetData (“Object Name”, Column, Row)
Description Đưa dữ liệu từ cột và hàng được chỉ định vào List Control.
Example Brings data from the cell at 4th row and 2nd column in the List Control named “LOGDBLIST”.
n= wcGridGetData(“LOGDBLIST”, 2, 4)

 

wcSaveData Saves the contents of List Control as ‘csv’, ‘pdf’, ‘xlsx’ file format.
Subroutine Command wcSaveData (“Object Name”, “File Path”)
  Script wcSaveData “Object Name”, “File Path”
Description Lưu nội dung của List Control dưới dạng tệp ‘csv’, ‘pdf’, ‘xlsx’.
Nếu bạn lưu tệp có cùng tên trong cùng Đường dẫn tệp, tệp sẽ không bị ghi đè.
Example Saves the contents of List Control “LOGDBLIST” as:
- “a.csv” in C drive
wcSaveData “LOGDBLIST”, “C:\a.csv”
- “a.pdf” in C drive (requires pdf format file beforehand).
wcSaveData “LOGDBLIST”, “C:\a.pdf”
- “a.xlsx” in C drive (requires xlsx format file beforehand).
wcSaveData “LOGDBLIST”, “C:\a.xlsx”

 

wcLoadData Loads the ‘CSV’ file to the List Control object.
Subroutine Command wcLoadData (“Object Name”, “CSVFile Path”)
  Script wcLoadData “Object Name”, “CSV File Path”
Description Loads the ‘CSV’ file to the List Control object.
Example Loads the content of file “a.csv” in C drive to the List Control named “LOGDBLIST”.
wcLoadData “LOGDBLIST”, “C:\a.csv”

 

wcGridCommand Các lệnh điều khiển danh sách như xuất và xóa dữ liệu.
Subroutine Subroutine wcGridCommand (“Object Name”, Command, 0, n)
  Script wcGridCommand “Object Name”, Command, 0, n
Description

Theo Command, các lệnh chương trình con đến List Control có tên là “Object Name” chẳng hạn như dữ liệu đầu ra và xóa.
Chỉ nhập giá trị vào n khi Command là 101. Trong các trường hợp khác, nhập 0 vào n

Command Description
100 Xóa tất cả dữ liệu khỏi List Control.
101 Xóa tất cả dữ liệu khỏi hàng thứ n của List Control.
102 Hiển thị kết quả tìm kiếm của User LOG DB vào List Control theo thứ tự giảm dần.
103 Dừng đầu ra dữ liệu hiện tại của List Control.
104 Hiển thị kết quả tìm kiếm của User LOG DB vào List Control theo thứ tự tăng dần
Example E.g.1) Deletes all data from the List Control named “LOGDBLIST”.
wcGridCommand “LOGDBLIST”, 100, 0, 0”
E.g.2) Deletes data from the 3rd row of List Control named “LOGDBLIST”.
wcGridCommand “LOGDBLIST”, 101, 0, 3”
E.g.3) Outputs the search result to the List Control named “LOGDBLIST”.
Descending: wcGridCommand “LOGDBLIST”, 102, 0, 0“
Ascending: wcGridCommand “LOGDBLIST”, 104, 0, 0“
E.g.4) Stops the current data output of the List Control named “LOGDBLIST”.
wcGridCommand “LOGDBLIST”, 103, 0, 0”

1.3.3 Functions for Calendar Control

wcGetData Returns the content of the Calendar Control.
Function Operation wcGetData(“Object Name”,Item)
  Script n=wcGetData(“Object Name”,Item)
Description

Trả về nội dung của Calendar Control có tên là “Object Name”, theo giá trị được gán cho Item. Khi kiểu hiển thị của đối tượng là ‘Date’, bạn có thể gán 0, 1 và 2 cho Item. Khi kiểu hiển thị của đối tượng là ‘Time’, bạn có thể gán 3, 4 và 5 cho Item.

Item Return Value
0 Returns ‘Year’ data assigned to the object.
1 Returns ‘Month’ data assigned to the object.
2 Returns ‘Day’ data assigned to the object.
3 Returns ‘Hour’ data assigned to the object. The value is displayed in 24H notation.
4 Returns ‘Minute’ data assigned to the object.
5 Returns ‘Second’ data assigned to the object.
Example E.g.1) Returns the ‘Year’ data from the Calendar Control named as “Calendar”.
wcGetData(“Calendar”,0)=n
E.g.2) Returns the ‘Second’ data from the Calendar Control named as “Calendar”.
wcGetData(“Calendar”,5)=n

1.3.4 Error Codes

Khi hàm không hoạt động bình thường, bạn có thể kiểm tra lý do bằng giá trị trả về. Các mã lỗi này chỉ được sử dụng cho các hàm như ‘DbSetFindFilter’, ‘DbInsert’ và ‘DbFindRun’. Nếu giá trị kết quả là 0, điều đó cho biết hàm hoạt động bình thường. Lỗi xảy ra khi cú pháp của biểu thức điều kiện sai hoặc hàm không hoạt động

Error Code Description
0 The function has operated properly
1 There is no User LOG DB model corresponding to the parameter.
2 The system is busy. Could not process the function
3 The assigned User LOG DB model has stopped
4 There is a syntax error or no item in the conditional expression
5 The parameter of the conditional expression is too large
6 There is an error in the conditional expression
7 There is only a part of the bracket in the conditional expression. (There is ‘[‘ symbol but no ‘]’ symbol)
8 The inequation of the conditional expression is incorrect
9 When a tag is used in the conditional expression, the type of the tag and item is not identical

1.4 Detailed Features

1.4.1 Search Filter

Bạn có thể tìm dữ liệu mong muốn từ User LOG DB bằng bộ lọc

Để có kết quả mong muốn, hãy sử dụng hàm n = DbSetFindFilter(“UserLOGDB Name”, “Condition”).

Nếu không có lỗi trong biểu thức điều kiện và cấu hình bộ lọc đã hoàn tất, hàm sẽ trả về 0. Nếu có lỗi, hàm sẽ trả về giá trị khác 0.

Các quy tắc cho biểu thức điều kiện được liệt kê dưới đây:

  • Các mục được cấu hình trong User LOG DB là phần tử chính của biểu thức điều kiện. Các mục được sử dụng dưới dạng [Item Name]

Ví dụ:) Nếu bạn muốn tìm kiếm dữ liệu có điều kiện trên PRODUCT, hãy nhập [PRODUCT].

  • Khi bạn viết biểu thức điều kiện, chỉ có thể sử dụng một mục. Nhập một mục trong một cặp dấu ngoặc như [PRODUCT], [SERIAL].
  • Để tạo nhiều điều kiện, hãy kết nối các điều kiện bằng AND hoặc OR.

Ví dụ) Nếu bạn muốn tìm một sản phẩm có tên là “A” và số sê-ri là “A101”, hãy nhập [PRODUCT] = $A AND [SERIAL] = $A101 làm điều kiện.

  • Bạn không thể sử dụng phép toán ngoặc.

Ví dụ) Khi bạn nhập biểu thức điều kiện như
DbSetFindFilter("UserLOGDB", "(SERIAL) = $B04"), lỗi sẽ xảy ra

  • Nếu một chuỗi là toán hạng, bạn phải thêm “$” vào trước chuỗi

Ví dụ) Nếu bạn muốn tìm một thẻ chuỗi, hãy nhập điều kiện như [PRODUCT] = $A.

  • Khi bạn tạo một biểu thức điều kiện bằng cách sử dụng giá trị thẻ, bạn phải nhập tên đầy đủ của thẻ

Ví dụ) Khi bạn so sánh giá trị thẻ của LOGDB.TEMP1 và LOGDB.TEMP2, hãy nhập biểu thức điều kiện như LOGDB.TEMP1 < [TEMP] < LOGDB.TEMP2

Ví dụ về tập lệnh sử dụng hàm DbSetFindFilter trong tập lệnh ‘Find’

Khi bạn thực thi tập lệnh, kết quả sẽ như bên dưới. Bạn sẽ thấy rằng chỉ những mục có số sê-ri “B104” được hiển thị trên List Control

1.4.2 Direct Control on Data Searching

Bạn có thể tìm kiếm dữ liệu theo cách thủ công từ User LOG DB và kiểm soát các kết quả được liệt kê trên List Control.

Để kiểm soát dữ liệu được tìm kiếm, hãy sử dụng các hàm như DbFindCount, DbFindFirstItem, DbFindNextItem và DbFindItemData.

  • n = DbFindCount(“UserLOGDB Name”) là để lấy số bản ghi được tìm thấy bởi hàm DbFindRun.
  • n = DbFindFirstItem(“UserLOGDB Name”) là để chỉ ra mục đầu tiên trong danh sách.
  • n = DbFindNextItem(“UserLOGDB Name”) là để di chuyển đến mục tiếp theo từ mục hiện đang được chọn.
  • findData = DbFindItemData(“UserLOGDB Name”, “Item Name”) là để lấy dữ liệu từ mục đã chọn

Thêm một tập lệnh như “FindDirect” để lưu dữ liệu “Áp suất”, “Nhiệt độ”, “Tên sản phẩm” và “Số sê-ri” vào một thẻ mới, tìm kiếm qua danh sách dữ liệu đã tìm kiếm.

f) Sử dụng hàm DbFindCount để đọc số dữ liệu được tìm kiếm bởi hàm DbFindRun.
g) Sử dụng hàm DbFindFirstItem để di chuyển đến mục đầu tiên của danh sách. Sau đó, tìm kiếm qua mô hình User LOG DB được chỉ định nhiều bằng số bản ghi.
h) Sử dụng DbFindItemData để thu thập dữ liệu của ‘TIME’, ‘PRODUCT’, ‘SERIAL’, ‘TEMPERATURE’ và ‘PRESSURE’, sau đó đặt giá trị cho các thẻ bằng hàm SetTagVal.
i) Sử dụng hàm DbFindNextItem để di chuyển đến mục tiếp theo và lặp lại bước h) và i) cho đến khi vòng lặp kết thúc.

Kết quả thực thi tập lệnh như sau. Các giá trị Nhiệt độ, Áp suất, Tên sản phẩm và Số sê-ri được nhập vào thẻ ảo.

Bạn có thể tìm kiếm trong danh sách theo hướng ngược lại bằng cách sử dụng các hàm DbFindLastItem và DbFindPrevItem như được hiển thị bên dưới

1.4.3 Controlling List Control

Bạn có thể xuất dữ liệu được tạo thủ công hoặc dữ liệu được đọc từ tệp csv trên List Control. Đoạn mã sau là ví dụ về dữ liệu người dùng được xuất.

Kết quả thực thi như sau

Đoạn mã sau đây là để đọc dữ liệu từ tệp csv và xuất dữ liệu ra List Control

Bạn đang xem: Part 17. Phần mềm SCADA Cimon Ultimate Access - Hệ quản trị cơ sở dữ liệu (DBMS)
Bài trước Bài sau
Đăng nhập
Đăng ký
Hotline: 0904251826
x