MC&TT Co., Ltd

Part 17. Phần mềm SCADA Cimon Ultimate Access - ODBC (Open DataBase Connectivity)

Chia sẻ:

Part 17. Phần mềm SCADA Cimon Ultimate Access - ODBC (Open DataBase Connectivity)

ODBC (Open DataBase Connectivity) là một chuẩn phương pháp truy cập vào cơ sở dữ liệu. Bằng cách kết nối CIMON-SCADA với các cơ sở dữ liệu chung như Access, Oracle, người dùng có thể đăng ký dữ liệu vào các cơ sở dữ liệu chung hoặc lấy dữ liệu từ hệ thống cơ sở dữ liệu. Ngoài ra, sử dụng truy vấn SQL chuẩn cho phép người dùng quản lý cơ sở dữ liệu bằng cách cập nhật, đăng ký, xóa dữ liệu.

1 Window Composition

Double-click [ODBC] or select [Tools] – [ODBC] to bring up the [ODBC] window.

Ở phía bên trái của cửa sổ, DSN (Data Source Name) của hệ thống cơ sở dữ liệu được kết nối với CIMON-SCADA và các truy vấn của nó được hiển thị dưới dạng cây. Ở phía bên phải của cửa sổ, các truy vấn của DSN đã chọn được liệt kê.

2 Menu

(1) New DBMS

You can configure the DSN of the new DBMS, which will be connected to CIMONSCADA system. You can bring up the [DBMS Configuration] system by selecting [Edit] – [New DBMS]

Item Description
DB Name Nhập ODBC DSN. Tên phải giống với tên DSN đã đăng ký tại “Control Panel\System and Security\Administrative
Tools\ODBC Data Sources”.
User ID Nhập User ID để kết nối cơ sở dữ liệu được gán cho ‘DB Name’. User ID phải có thẩm quyền để xử lý các truy vấn. Nếu bạn không cần User ID, bạn có thể để trống trường này.
Password Nếu bạn đã chỉ định một ID người dùng, hãy nhập mật khẩu cho ID đó. Nếu bạn chưa chỉ định một ID người dùng hoặc không cần sử dụng mật khẩu, hãy để trống trường này.
Description Nhập mô tả về cơ sở dữ liệu đang cấu hình

(2) New Query

Sau khi đăng ký DBMS mới, hãy nhấn biểu tượng để mở cửa sổ [Query Configuration]. Bạn có thể cấu hình các truy vấn của DBMS trong cửa sổ này.

Item Description
Query Name Enter the name of the Query.
Description Enter the short description of the Query.
Query Type Select the Query type between ‘SELECT Statement’ and ‘Others’.
SELECT
Statement
Kiểu truy vấn này thường được sử dụng để đọc nhiều bản ghi.
Others Kiểu truy vấn này thường được sử dụng để đọc một bản ghi đơn lẻ hoặc cập nhật, đăng ký, xóa bản ghi.
Create SQL Hiển thị cửa sổ cấu hình của loại Truy vấn đã chọn.
Query Operation Regular Interval Tự động thực hiện Truy vấn theo khoảng thời gian đều đặn. Khoảng thời gian có thể được chỉ định từ 0 đến 100 giây. Nếu bạn chọn tùy chọn ‘Running Base’, truy vấn sẽ được thực hiện tại thời điểm thực hiện CIMON-SCADA.
On Time Thực hiện truy vấn tại thời điểm đã chỉ định.
Event Thực hiện Truy vấn theo điều kiện được chỉ định. Bạn có thể
sử dụng biểu thức điều kiện để thực hiện Truy vấn.
Execute By Command Thực hiện Truy vấn bằng hàm được sử dụng trong Script hoặc
biểu thức lệnh.

(3) Query Type

[SELECT Statement]

Bạn có thể cấu hình Câu lệnh SELECT khi bạn đã chọn ‘Câu lệnh SELECT’ trong cửa sổ [Cấu hình truy vấn]. Bạn có thể cấu hình Câu lệnh SELECT trong 4 phần

Khi bạn liên kết một thẻ, kiểu dữ liệu trong DBMS và CIMON-SCADA phải giống hệt nhau. Ngoài ra, hãy lưu ý đến dung lượng dữ liệu khi bạn sử dụng trường chuỗi.

Ví dụ) Nếu kiểu dữ liệu trong DBMS là ‘SMALLINT’, ‘SMALLINT’ phải được chọn trong ODBC.

No Duplicate Data Chọn checkbox để tránh dữ liệu trùng lặp trong kết quả truy vấn.
New Field

Xác định trường bản ghi được tạo ra bởi việc thực hiện truy vấn. Bạn có thể liên kết trường bản ghi và thẻ CIMON-SCADA.

  Field Name Nhập tên trường được xác định trong bảng cơ sở dữ liệu.
  Tag Name Gán thẻ để liên kết với trường. Giá trị của thẻ có thể được ghi vào cơ sở dữ liệu hoặc giá trị từ cơ sở dữ liệu có thể được ghi vào thẻ. Nói chung, các thẻ ảo được gán.
  Browse Hiển thị danh sách các thẻ trong CIMON-SCADA. Bạn có thể chọn một thẻ để gán giá trị cho trường ‘Tag Name’.
  Data Type

Chọn kiểu dữ liệu của trường được chỉ định. Kiểu dữ liệu được chọn phải giống hệt với kiểu dữ liệu được chỉ định trong DBMS.

DBMS CIMON-SCADA
Text CHAR, VARCHAR, LONGVARCHAR
Number DECIMAL, SMALLINT, REAL, INTEGER,
FLOAT, DOUBLE, NUMERIC, BIT, TINYINT,
BIGINT
Time DATE, TIME, TIMESTAMP
  Description Nhập mô tả ngắn gọn về trường.
Edit  Bạn có thể chọn trường đã cấu hình trong danh sách và chỉnh sửa trường.
Delete Xóa trường đã chọn
˄/˅ Di chuyển trường đã chọn lên trên hoặc xuống dưới.
FROM Gán tên bảng nơi các trường được gán thuộc về. Tên bảng phải giống hệt với tên được sử dụng trong cơ sở dữ liệu thực tế.
WHERE Gán câu lệnh SQL để tìm dữ liệu mong muốn. Bạn có thể sử dụng SQL chuẩn.
ORDER BY Gán tiêu chí căn chỉnh bản ghi

[Others]

You can configure the other statement when you have selected the ‘Others’ in the [Query Configuration] window

Khi bạn viết một câu lệnh SQL, bạn phải sử dụng dấu ngoặc kép cho giá trị thẻ tương ứng với trường chuỗi trong DBMS.

Ví dụ) Khi có các thẻ số [1], [2] và thẻ chuỗi [3] trong bản ghi có tên là ‘DataTable’, hãy viết câu lệnh như được hiển thị bên dưới.
INSERT INTO DataTable
VALUES ([1], [2], ‘[3]’)

Binding Gán thẻ tương ứng với các câu lệnh SQL. Khi bạn chỉnh sửa câu lệnh SQL, hãy gán vùng giá trị là “[n]”(n: Số nguyên thập phân). Vùng này sẽ được thay thế bằng giá trị thẻ tương ứng
New Tag

Chỉ định một thẻ để liên kết với câu lệnh SQL

Tag Name Nhập tên thẻ. Giá trị thẻ được gán sẽ thay thế vùng [n] của câu lệnh SQL.
Browse Hiển thị danh sách các thẻ trong CIMON-SCADA. Bạn có thể chọn một thẻ để gán giá trị cho trường ‘Tag Name’.
Data Type

Chọn kiểu dữ liệu của trường được chỉ định. Kiểu dữ liệu được chọn phải giống hệt với kiểu dữ liệu được chỉ định trong DBMS.

DBMS CIMON-SCADA
Text CHAR, VARCHAR, LONGVARCHAR
Number DECIMAL, SMALLINT, REAL, INTEGER,
FLOAT, DOUBLE, NUMERIC, BIT, TINYINT, BIGINT
Time DATE, TIME, TIMESTAMP
  Description Nhập mô tả ngắn gọn về trường.
Edit  Bạn có thể chọn trường đã cấu hình trong danh sách và chỉnh sửa trường.
Delete Xóa trường đã chọn
˄/˅ Di chuyển trường đã chọn lên trên hoặc xuống dưới.
SQL Viết một SQL chuẩn. Bạn có thể gán vùng giá trị là [n]. [n] sẽ được thay thế bằng giá trị thẻ của số tương ứng.

(4) Edit
Press icon to edit the selected DBMS or queries in the corresponding configuration window.

(5) Delete
Press icon to delete the selected DBMS or queries

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 ODBC.

Command Description
Subroutine CSqlOpen Let the database manager execute the query and receive the result.
Subroutine CsqlClose Closes the query in the database and ends the operation.
Subroutine CSqlDelete Deletes the currently displayed record from the database manager.
Subroutine CSqlFirst Transfers the topmost record data to the tag.
Subroutine CSqlGetRecord Reads the data according to the assigned record number.
Function CSqlGetRecordNo Returns the number of active records in the database manager.
Subroutine CSqlInsert Inserts a new record to the database manager.
Subroutine CSqlLast Reads the last record data from the database
Subroutine CSqlNext Reads the next record data.
Subroutine CSqlPrev Reads the previous record data.
Subroutine CSqlReconnect Reconnects to the DBMS in case of the disconnection.
Subroutine CsqlRequery Executes the query again and reads the record data again.
Subroutine CSqlRun Let the database manager execute the query.
Subroutine CSqlUpdate Updates the record data from database manager with the current tag value.
Subroutine RawSqlRun Executes the command in SQL statement to database.
Function CSqlGetError You can find the error with the return value of the function.

3.1 Functions for ODBC

CSqlOpen Để trình quản lý cơ sở dữ liệu thực hiện truy vấn và nhận kết quả
Subroutine Command CSqlOpen (“Query Name”)
  Script CSqlOpen “Query Name”
Description ‘‘Query Name’ phải được đăng ký là câu lệnh SELECT trong cửa sổ cấu hình ODBC. Chương trình con này phải được gọi trước khi thực hiện bất kỳ hàm nào khác liên quan đến bản ghi và con trỏ. Khi hoạt động kết thúc, hàm CSqlClose phải được sử dụng để kết thúc hoạt động. Các hàm liên quan đến con trỏ bao gồm đọc, xóa, sửa đổi và chạy lại các bản ghi.
Example Thực hiện truy vấn có tên ‘RetrieveAll’ và nhận kết quả.
CSqlOpen (“RetrieveAll”)

 

CSqlClose Đóng truy vấn trong cơ sở dữ liệu và kết thúc hoạt động
Subroutine Command CSqlClose (“Query Name”)
  Script CSqlClose “Query Name”
Description Kết thúc truy vấn khi các thao tác với CSqlOpen và các hàm liên quan đến con trỏ đã hoàn tất.
‘‘Query Name’ phải được đăng ký dưới dạng câu lệnh SELECT trong cửa sổ cấu hình ODBC.
Example Ends the query named ‘RetrieveAll’.
CSqlClose(“RetrieveAll”)

 

CSqlDelete Xóa bản ghi hiện đang hiển thị khỏi trình quản lý cơ sở dữ liệu
Subroutine Command CSqlDelete (“Query Name”)
  Script CSqlDelete “Query Name”
Description Xóa bản ghi đã chọn khỏi DBMS. ‘Query Name’ phải được đăng ký là câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Deletes the currently displayed record from the query named ‘RetrieveAll’.
CSqlDelete(“RetrieveAll”)

 

CSqlFirst Chuyển dữ liệu bản ghi trên cùng sang thẻ
Subroutine Command CSqlFirst (“Query Name”)
  Script CSqlFirst “Query Name”
Description Di chuyển con trỏ hiện tại đến bản ghi trên cùng. Dữ liệu bản ghi được chỉ định sẽ thay thế giá trị thẻ tương ứng.
‘Query Name’ phải được đăng ký dưới dạng câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Retrieves the topmost record data of query named ‘RetrieveAll’ to the corresponding tag.
CSqlFirst(“RetrieveAll”)

 

CSqlGetRecord Đọc dữ liệu theo số bản ghi được chỉ định
Subroutine Command CSqlGetRecord(“Query Name”, Record Number)
  Script CSqlGetRecord“Query Name”, Record Number
Description Đọc dữ liệu của Record Number được chỉ định từ ‘Query Name’ đến thẻ được kết nối.
‘Record Number’ bắt đầu từ 1. Nếu bạn chỉ định ‘Record Number’ là –n, nó biểu thị dữ liệu thứ n từ bản ghi cuối cùng.
Example Reads the first record data of the query named ‘RetrieveAll’ to the bound tag.
CSqlGetRecord(“RetrieveAll”, 1)

 

CSqlGetRecordNo Trả về số lượng bản ghi đang hoạt động trong trình quản lý cơ sở dữ liệu
Function Operation CSqlGetRecordNo (“Query Name”)
  Script n = CSqlGetRecordNo (“Query Name”)
Description Trả về số lượng bản ghi từ ‘Query Name’.
Example Returns the number of record from the query named ‘RetrieveAll’.
CSqlGetRecordNo (“RetrieveAll”) = n

 

CSqlInsert Chèn một bản ghi mới vào trình quản lý cơ sở dữ liệu
Subroutine Command CSqlInsert (“Query Name”)
  Script CSqlInsert “Query Name”
Description Gán các giá trị thẻ làm giá trị trường tại thời điểm thực hiện chương trình con.
Sau đó tạo một bản ghi mới và thêm vào DBMS. ‘Query Name’ phải được đăng ký làm câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Inserts a new record to the query named ‘RetrieveAll’.
CSqlInsert (“RetrieveAll”)

 

CSqlLast Đọc dữ liệu bản ghi cuối cùng từ cơ sở dữ liệu
Subroutine Command CSqlLast
(“Query Name”)
  Script CSqlLast “Query Name”
Description Di chuyển con trỏ hiện tại đến bản ghi cuối cùng và giá trị trường được chỉ định được di chuyển đến thẻ được kết nối.
‘Query Name’ phải được đăng ký dưới dạng câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Reads the last record data from the database and saves it to the connected tag.
CSqlLast (“RetrieveAll”)

 

CSqlNext Đọc dữ liệu bản ghi tiếp theo
Subroutine Command CSqlNext
(“Query Name”)
  Script CSqlNext “Query Name”
Description Di chuyển con trỏ hiện tại đến bản ghi tiếp theo và giá trị trường được chỉ định được di chuyển đến thẻ được kết nối.
‘Query Name’ phải được đăng ký dưới dạng câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Reads the next record data from the database and saves it to the connected tag.
CSqlNext (“RetrieveAll”)

 

CSqlPrev Đọc dữ liệu bản ghi trước đó
Subroutine Command CSqlPrev (“Query Name”)
  Script CSqlPrev “Query Name”
Description Di chuyển con trỏ hiện tại đến bản ghi trước đó và giá trị trường được chỉ định được di chuyển đến thẻ được kết nối.
‘Query Name’ phải được đăng ký dưới dạng câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Reads the previous record data from the database and saves it to the connected tag.
CSqlPrev (“RetrieveAll”)

 

CSqlReconnect Kết nối lại với DBMS trong trường hợp bị ngắt kết nối
Subroutine Command CSqlReconnect (“DBMS Name”)
  Script CSqlReconnect “DBMS Name”
Description Kết nối lại với DBMS. Để sử dụng DBMS khi kết nối bị ngắt do lý do bất ngờ, bạn phải sử dụng chương trình con này.
DBMS có tên là ‘DBMS Name’ phải được đăng ký trong cấu hình CIMON ODBC.
Example Reconnects to the DBMS named ‘SampleDB’.
CSqlReconnect (“SampleDB”)

 

CSqlRequery Thực hiện lại truy vấn và đọc lại dữ liệu bản ghi
Subroutine Command CSqlRequery (“Query Name”)
  Script CSqlRequery “Query Name”
Description Thực thi câu lệnh SELECT của truy vấn được chỉ định và đọc lại dữ liệu bản ghi.
‘Query Name’ phải được đăng ký là câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Executes the query named ‘RetrieveAll’ again and reads the record data again.
CSqlRequery (“RetrieveAll”)

 

CSqlRun Để trình quản lý cơ sở dữ liệu thực hiện truy vấn
Subroutine Command CSqlRun (“Query Name”)
Script CSqlRun “Query Name”  
Description Thực thi truy vấn đã được đăng ký trong CIMON-SCADA ODBC
Example Executes the query named ‘RetrieveAll’.
CSqlRun (“RetrieveAll”)

 

CSqlUpdate Cập nhật dữ liệu bản ghi từ trình quản lý cơ sở dữ liệu với giá trị thẻ hiện tại.
Subroutine Command CSqlUpdate
(“Query Name”)
Script CSqlUpdate “Query Name”  
Description Cập nhật dữ liệu bản ghi từ trình quản lý cơ sở dữ liệu với giá trị thẻ được chỉ định bởi con trỏ.
‘Query Name’ phải được đăng ký dưới dạng câu lệnh SELECT trong cửa sổ cấu hình ODBC. Ngoài ra, hàm CSqlOpen phải được thực thi trước.
Example Updates the record data from database manager with the tag value indicated by the cursor.
CSqlUpdate (“RetrieveAll”)

 

RawSqlRun Thực thi lệnh trong câu lệnh SQL tới cơ sở dữ liệu
Subroutine Command RawSqlRun(“DBMS Name”, “SQL Statement”)
  Script RawSqlRun “DBMS Name”, “SQL Statement”
Description Thực thi lệnh trong câu lệnh SQL tới cơ sở dữ liệu. Bạn có thể sử dụng dấu ngoặc kép (“ “) để sử dụng SQL làm tham số thứ hai
Example Execute the SQL in ‘SampleDB’ , which changes the ‘Data1’ field value of the record number 4, into 66.
RawSqlRun("SampleDB", "UPDATE DataTable SET Data1 = 66 WHERE Number = 4")

3.2 ODBC Function for Error

CSqlGetError Bạn có thể tìm thấy lỗi thông qua giá trị trả về của hàm
Function Operation CsqlGetError
(“Query Name”)
  Script n = CsqlGetError “Query Name”
Description Hàm này kiểm tra trạng thái hoạt động của các hàm ODBC mới nhất như SCqlInsert và CSqlOpen. Nếu hàm hoạt động bình thường, hàm này trả về 0. Các giá trị trả về khác chỉ ra lỗi.
Example Checks the operation state of the latest function which is executed on the query named ‘RetrieveAll’.
X = CSqlGetError(“RetrieveAll”)

 

Return Value Description
-2 Invalid configuration, bind or statement.
-1 The function did not operate properly.
0 The function operated properly.
1 Undefined query. The query is not registered in the ODBC manager.
2 An error occurred in the memory.
100 The query is not in format of SELECT statement.
101 CSqlOpen subroutine is not executed.
102 Exceeded the record index.
103 Cannot close the record due to other references. The function is executed while the database is opened.
1001 The name of the data source does not exist and the base driver is not assigned. Data source name and the base driver are not assigned in Windows.
1002 Failed to read data since the data does not exist beyond the cursor on the data source.
1003 Failed to find the assigned field from the record. Or, the query requested by the SELECT or Other statements are invalid.
1004 The data type of the record and tag data are not equal.
1005 Failed to update or delete the record. CsqlUpdate or CsqlDelete function is used for the data which have been already changed. The error occurs when the function is executed again when the changes are not updated.
1006 Duplicated values are entered in the index, basic key or relation, but the requested changes are not applied. The error occurs when the data is duplicated in the same field.
1007 There is no record in the database.
1008 Tried data loading after the deletion of the record data.
1012 ODBC driver does not support Dynaset
Bạn đang xem: Part 17. Phần mềm SCADA Cimon Ultimate Access - ODBC (Open DataBase Connectivity)
Bài trước Bài sau
Đăng nhập
Đăng ký
Hotline: 0904251826
x