-
Thành viên cấp 2
-
-
Thành viên cấp 2
-
-
Thành viên cấp 2
-
-
Thành viên cấp 2
-
-
Thành viên cấp 2
-
-
Thành viên cấp 2
-
-
Thành viên cấp 2
Lần lượt làm tương tụ với các nút còn lại.
Đó là cách thiết lập các Object cơ bản, còn lại các thành phần như các “Text”, các hình vuông trang trí thêm các bạn có thể sử dụng các công cụ sẵn có của chương trình Studio để tạo như hình ở trên.
Bước tiếp theo là viết code cho nút nhấn Script để thực hiện các chức năng.
5. Viết Script
5.1 Insert Button Script
Click x2 vào nút nhấn Insert chọn Edit như hình sau:
<Hình 24>
Xuất hiện hộp thoại cho phép soạn thảo Script, nhấn Help để lấy câu lệnh hỗ trợ.
<Hình 25>
Do phiên bản này file Help chưa có tiếng Anh(nhưng sẽ có trong thời gian ngắn nữa) nên đành “Mò” theo câu lệnh!! Nếu cần câu lệnh nào thì cần nhập từ khóa là sẽ có ví dụ như DbCommand, database, Edit Box, Combo box …chúng ta sẽ tìm được chức năng mong muốn!
<Hình 26>
<Hình 27>
@EditBoxGetText("id", txtID); //Lấy nội dung của Edit Box có classname "id" gán cho biến "txtID", biến //"txtID" kiểu dữ liêu string
@EditBoxGetText("col1", txtCol1); //Lấy nội dung của Edit Box có classname "col1" gán cho biến //"txtID", biến "txtCol1" kiểu dữ liêu string
@EditBoxGetText("col2", txtCol2); //Lấy nội dung của Edit Box có classname "col2" gán cho biến //"txtID", biến "txtCol2" kiểu dữ liêu string
@EditBoxGetText("col3", txtCol3); //Lấy nội dung của Edit Box có classname "col3" gán cho biến //"txtID", biến "txtCol3" kiểu dữ liêu string
@sprintf(query,"INSERT INTO Bang_1 (ID,Column1,Column2,Column3) VALUES('%s', '%s', '%s','%s')",txtID, txtCol1,txtCol2,txtCol3);
@DbCommand("SQL_connect", query);
@EditBoxSetText("id",""); //Xóa nội dung của Edit Box
@EditBoxSetText("col1",""); //Xóa nội dung của Edit Box
@EditBoxSetText("col2",""); //Xóa nội dung của Edit Box
@EditBoxSetText("col3",""); //Xóa nội dung của Edit Box
Đoạn code ở hình trên thực hiện lấy các kí tự trong các EditBox gán cho các biến, sau đó sử dụng câu lệnh của SQL để chèn các kí tự này vào bảng database, sau khi gán xong thì xóa nội dụng của các EditBox. Sauk hi nhập xong các lệnh nhấn nút Complie để kiểm tra cú pháp.
Sauk hi soạn thảo xong Script nhấn nút “Ok” để lưu kết quả và chạy thử chương trình. Giao diện của chương trình
-
-
Thành viên cấp 2
<Hình 28>
Nhập các dữ liệu vào EditBox sau đó nhấn nút Insert, mở bảng dữ liệu của SQL Server để kiểm tra
<Hình 29>
Như vậy nút “Insert” dùng để nhập dữ liệu đã hoàn thành!
5.2 Script cho nút nhấn Delete
Thao tác tương tự như nút “Inser” sau đó soạn thảo Script như hình sau
<Hình 30>
@EditBoxGetText("id", txtID); //Lấy nội dung của Edit Box có classname "id" gán cho //biến "txtID", biến "txtID" kiểu dữ liêu string
@sprintf(query,"DELETE FROM Bang_1 WHERE ID = '%s'",txtID);
@DbCommand("SQL_connect", query);
@EditBoxSetText("id", "");
Mô tả:
Đoạn Script ở trên thực hiện xóa ở Bang_1 nơi mà có giá trị được chọn ở cột ID. Điều này có nghĩa là khi chúng ta nhập vào cột ID có dữ liệu giống như ở cột ID đã chọn thì tất cả dữ liệu ở hàng giá trị ID đã chọn sẽ bị xóa.
5.3 Nút nhấn Update
Click x2 vào Object của nút nhấn “Update” và mở cửa sổ soạn thảo đoạn Script như hình sau:
<Hình 31>
Đoạn Code:
@EditBoxGetText("ID_UD", txtID_UD); //Lấy nội dung của Edit Box có classname //"ID_UD" gán cho biến "txtID_UD", biến "txtID_UD" kiểu dữ liêu string
@EditBoxGetText("col_Ud", txtCol_Ud); //Lấy nội dung của Edit Box có classname //"col_Ud" gán cho biến "txtCol_Ud", biến "txtCol_Ud" kiểu dữ liêu string
@EditBoxGetText("data", txtdata_Ud); //Lấy nội dung của Edit Box có classname "data" //gán cho biến "txtdata_Ud", biến "txtdata_Ud" kiểu dữ liêu string
@sprintf(query,"UPDATE Bang_1 SET Column%s='%s' WHERE ID=%s",txtCol_Ud,txtdata_Ud,txtID_UD);
@DbCommand("SQL_connect", query);
@EditBoxSetText("ID_UD", ""); //Xóa nội dung của Edit Box
@EditBoxSetText("col_Ud",""); //Xóa nội dung của Edit Box
@EditBoxSetText("data",""); //Xóa nội dung của Edit Box
//-------Hiển thị các giá trị mới Update-----------//
@sprintf(buf_query,"SELECT * FROM Bang_1 WHERE ID=%s",txtID_UD);
connection_id = @DbDsOpen("SQL_connect",buf_query);
//Lấy data từ bảng database
txtid = @DbDsGetRowData(connection_id, "ID", 0);
data1 = @DbDsGetRowData(connection_id, "Column1", 0);
data2 = @DbDsGetRowData(connection_id, "Column2", 0);
data3 = @DbDsGetRowData(connection_id, "Column3", 0);
//Hiển thị trên Edit Box
@EditBoxSetText("id",txtid);
@EditBoxSetText("col1",data1); //gán data1 cho nội dung của Edit Box có //ClassName là "col1"
@EditBoxSetText("col2",data2); //gán data2 cho nội dung của Edit Box có //ClassName là "col2"
@EditBoxSetText("col3",data3); //gán data3 cho nội dung của Edit Box có //ClassName là "col3"
@DbDsClose(connection_id);
Chú ý nhớ khai báo biến đã sử dụng trong Script
-
-
Thành viên cấp 2
5.4 Nút Get Data
Ứng dụng của nút này là có thể sử dụng để lấy 1 dữ liệu cụ thể để ghi thông số cài đặt cho các thiết bị. Trong Project này dữ liệu là kiểu kí tự được lấy từ Database sau đó hiển thị lên màn hình. Tuy nhiên nếu bạn muốn lấy dữ liệu dạng số (int, float…) thì có thể dùng hàm chuyển đổi từ dạng kí tự sang dạng số mà bạn muốn sử dụng hoặc các bạn có thể tạo trên SQL Server dữ liệu là kiểu số thì bạn có thể lấy trục tiếp các dữ liệu số đó để xuất xuống thiết bị (PLC, bộ điều khiển…)
Viết đoạn code như hình sau:
<Hình 32>
Đoạn code ở trong hình:
@EditBoxGetText("ID_UD", txtID_UD); //Lấy nội dung của Edit Box có classname //"ID_UD" gán cho biến "txtID_UD", biến "txtID_UD" kiểu dữ liêu string
@EditBoxGetText("col_Ud", txtCol_Ud); //Lấy nội dung của Edit Box có classname //"col_Ud" gán cho biến "txtCol_Ud", biến "txtCol_Ud" kiểu dữ liêu string
@sprintf(buf_query,"SELECT * FROM Bang_1 WHERE ID=%s",txtID_UD);
connection_id = @DbDsOpen("SQL_connect",buf_query);
//Lấy data từ bảng database
@sprintf(columnview,"Column%s",txtCol_Ud);
txtdata = @DbDsGetRowData(connection_id, columnview, 0);
//Hiển thị trên Edit Box
@EditBoxSetText("data",txtdata);
@DbDsClose(connection_id);
Phần 2
1. Ứng dụng lưu dữ liệu tự động
Giả sử các bạn muốn lưu giá trị nhiệt độ từ các bộ điều khiển một cách tự động sau 1 khoảng thời gian chương trình sẽ tự động lưu vào Database. Trong Demo này toii sẽ làm thêm phần tự động lưu thông số của 3 Tag nội (giả lập giá trị nhiệt độ đưa vào máy tính). Hoạt động như sau:
Khi nhấn nút “ON” trên màn hình giám sát các thông số về nhiệt độ sẽ lưu vào bảng dữ liệu với thời gian là lúc giá trị được ghi. Khi nhấn OFF chương trình sẽ không lưu giá trị.
1.1 Tạo Tag
Trước tiên ta tạo ra 3 Tag Analog Input kiểu Memory có tên là “Temperature1”, “Temperature2”, “Temperature3”, và 1 Tag DI kiểu Memory như hình sau:
<Hình 33>
Thiết lập các thuộc tính của 3 Tag AI như sau:
<Hình 34>
Thiết lập tương tự cho 2 tag còn lại. Với Tag DI thì chỉ cần tạo là kiểu Tag Memory là được. Sau đó nhấn Ok để thoát ra.
1.2 Tạo giao diện
Ttiếp theo tạo thêm trên màn hình các thành phần như hình sau:
<Hình 35>
-
-
Thành viên cấp 2
-
Tag của Chủ đề này
Quyền viết bài
- Bạn Không thể gửi Chủ đề mới
- Bạn Không thể Gửi trả lời
- Bạn Không thể Gửi file đính kèm
- Bạn Không thể Sửa bài viết của mình
-
Nội quy - Quy định
Back to Top
Múi giờ GMT +7. Bây giờ là 03:18 PM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu