Tự động hóa IoT
Nhà cung cấp thiết bị truyền thông, viễn thông, tự động hóa IoT chuyên nghiệp, liên hệ: Tel/Zalo +84 904 251 826

Thiết kế, sử dụng đồ họa trong Xpanel Designer ( Bài 3)

Lượt xem: 613

1. Database

1.1 Setting

Vào Tools chọn Database hoặc kích vào biểu tượng trên thanh công cụ hoặc trong cửa sổ làm việc của dự án.

Database Editor

Menu
New Tag 1. Chọn [Edit] –   [New Tag] khi cửa sổ trình chỉnh sửa Database được kích hoạt.

2. Nhấp vào biểu tượng  trong cửa sổ soạn thảo ‘Cơ sở dữ liệu.

3. Nhấn ‘Insert ’.

4. Nhấp đúp vào vùng trống của danh sách thẻ.

5. Nhấp chuột phải vào danh sách thẻ và chọn [New Tag] trên menu phụ.

6. Nhấn [Next Tag] trong cửa sổ ‘Edit  Tag’.

Edit Tag 1. Nhấp đúp vào thẻ để chỉnh sửa trên danh sách thẻ.

2. Chọn thẻ để chỉnh sửa và nhấp vào [Edit] –   [Edit Tag].

3. Chọn thẻ để chỉnh sửa và nhấp vào biểu tượng  trong cửa sổ ‘Database’.

4. Nhấp chuột phải vào thẻ để chỉnh sửa và chọn [Edit Tag] trên menu phụ.

Delete Tag 1. Chọn thẻ cần xóa và nhấn ‘Xóa’.

2. Chọn thẻ cần xóa và nhấp vào [Edit] –   [Delete] or [Cut].

3. Nhấp chuột phải vào thẻ để xóa và chọn [Delete] or [Cut] trên menu phụ.

Copy Tag 1. Chọn thẻ để sao chép vào danh sách thẻ.

2. Cắt hoặc sao chép thẻ bằng các phương pháp hiển thị bên dưới.

– Chọn [Edit] –   [Cut] or [Copy]

– Nhấn phím Ctrl + X hoặc Ctrl + C.

– Kéo và thả thẻ.

– Nhấp chuột phải vào thẻ và chọn [Cut] or [Copy] trên menu phụ..

3. Di chuyển đến đích và chọn [Edit] –   [Paste] or Ctrl +  V.

Drag

&

Drop

Với hành động Kéo và Thả, bạn có thể sao chép hoặc di chuyển thẻ đã chọn sang vị trí khác.

1. Khi bạn kéo và thả thẻ trong cùng một danh sách thẻ, thẻ đã chọn sẽ di chuyển.

2. Khi bạn kéo và thả thẻ nhóm, nó được sao chép với các thẻ đi kèm.

3. Khi bạn kéo và thả thẻ vào cây thẻ, thẻ được sao chép vào thẻ nhóm tương ứng.

4. Khi bạn kéo và thả thẻ nhóm vào cây thẻ, thẻ nhóm được sao chép theo thẻ nhóm tương ứng.

Group Tag

Nếu bạn đã tạo một số lượng lớn thẻ trong một cửa sổ, điều đó có thể gây ra sự không hiệu quả cho việc chỉnh sửa và quản lý thẻ.Thẻ nhóm cho phép bạn phân loại tất cả các thẻ thành định nghĩa người dùng và các thẻ phụ được tổ chức thành các cấu trúc cây.

Digital Tag

Thẻ kỹ thuật số là một trong những thẻ quản lý hệ thống.Thẻ kỹ thuật số được sử dụng để thể hiện trạng thái BẬT / TẮT hoặc các giá trị được chia thành Đúng hoặc Sai.

  • General
Menu
Tag Type Chọn loại thẻ giữa thẻ ảo và thực.
Real  Tag Liên kết đến thiết bị bên ngoài được kết nối với CIMON Xpanel. Giá trị thay đổi theo trạng thái của thiết bị.
Virtual Tag Thẻ ảo được sử dụng khi người dùng yêu cầu kiểm tra thay đổi giá trị nội bộ.
I /O  Device Nhập hoặc chọn thiết bị bên ngoài nơi thẻ kỹ thuật số được tạo. Bạn có thể kiểm tra tên của thiết bị bên ngoài tại [Tools] –   [I/O Device]. Trường này chỉ được bật khi ’Thẻ Real’ được chọn.
I/O Address Nhập địa chỉ theo phân công địa chỉ bên ngoài. Bạn phải nhập địa chỉ trong phương thức đánh địa chỉ trên thiết bị. Trường này chỉ được bật khi ’Thẻ Real’ được chọn.
Save  last   status

when closing

Khi bạn chọn tùy chọn này, trạng thái cuối cùng của thẻ được lưu trữ khi đóng dự án. Khi bạn thực hiện lại dự án, các giá trị thẻ sẽ được duy trì
  • Advanced

Initial Value: Gán giá trị thẻ ban đầu khi dự án được thực thi.

Analog Tag

Thẻ analog là một trong những thẻ quản lý hệ thống. Thẻ analog được sử dụng để biểu thị các giá trị được đo bằng các thiết bị bên ngoài, chẳng hạn như nhiệt độ và giá trị áp suất.

  • General
Menu
Tag Type Chọn loại thẻ giữa thẻ ảo và thực.
Real  Tag Liên kết đến thiết bị bên ngoài được kết nối với CIMON Xpanel. Giá trị thay đổi theo trạng thái của thiết bị.
Virtual Tag Thẻ ảo được sử dụng khi người dùng yêu cầu kiểm tra thay đổi giá trị nội bộ.
I /O  Device Nhập hoặc chọn thiết bị bên ngoài nơi thẻ kỹ thuật số được tạo. Bạn có thể kiểm tra tên của thiết bị bên ngoài tại [Tools] –   [I/O Device]. Trường này chỉ được bật khi ’Thẻ Real’ được chọn.
I/O Address Nhập địa chỉ theo phân công địa chỉ bên ngoài. Bạn phải nhập địa chỉ trong phương thức đánh địa chỉ trên thiết bị. Trường này chỉ được bật khi ’Thẻ Real’ được chọn.
Save  last   status

when closing

Khi bạn chọn tùy chọn này, trạng thái cuối cùng của thẻ được lưu trữ khi đóng dự án. Khi bạn thực hiện lại dự án, các giá trị thẻ sẽ được duy trì
  • Advanced

Menu
Initial Value Gán giá trị thẻ ban đầu khi dự án được thực thi
Data Type Chọn kiểu dữ liệu của giá trị thẻ. Tùy chọn này là để chuyển đổi dữ liệu chính xác từ PLC sang CIMON – SCADA.
Clipping Khi giá trị tương tự vượt quá phạm vi, một cảnh báo sẽ xuất hiện và giá trị sẽ không được nhận ra.
Scale Bạn có thể chuyển đổi dữ liệu của thiết bị thành giá trị trang thông qua phương pháp Scale/ Offset hoặc Max/ Min.
Scale/Offset Result  = (Tag Value x Scale) + Offset
Min./ Max. Nhập giá trị tối thiểu / tối đa của dữ liệu thô và so sánh nó với

giá trị tối thiểu / tối đa của Eng. data. Tỷ lệ sẽ là kết quả.

Ví dụ: Điều kiện: Giá trị tối thiểu / tối đa của dữ liệu thô là 0/4000 và giá trị tối thiểu / tối đa của eng. dữ liệu là 0/100. Nếu dữ liệu thực tế là 2000, giá trị hiển thị trở thành 50.

String Tag

Thẻ này lưu trữ giá trị chuỗi

  • General
Menu
Tag Type Chọn loại thẻ giữa thẻ ảo và thực.
Real  Tag Liên kết đến thiết bị bên ngoài được kết nối với CIMON Xpanel. Giá trị thay đổi theo trạng thái của thiết bị.
Virtual Tag Thẻ ảo được sử dụng khi người dùng yêu cầu kiểm tra thay đổi giá trị nội bộ.
I /O  Device Nhập hoặc chọn thiết bị bên ngoài nơi thẻ kỹ thuật số được tạo. Bạn có thể kiểm tra tên của thiết bị bên ngoài tại [Tools] –   [I/O Device]. Trường này chỉ được bật khi ’Thẻ Real’ được chọn.
I/O Address Nhập địa chỉ theo phân công địa chỉ bên ngoài. Bạn phải nhập địa chỉ trong phương thức đánh địa chỉ trên thiết bị. Trường này chỉ được bật khi ’Thẻ Real’ được chọn.
Save  last   status

when closing

Khi bạn chọn tùy chọn này, trạng thái cuối cùng của thẻ được lưu trữ khi đóng dự án. Khi bạn thực hiện lại dự án, các giá trị thẻ sẽ được duy trì
  • Advanced

Length of String: Chỉ định độ dài tối đa của chuỗi để ghi trên thẻ. Nếu thẻ là thẻ ảo, bạn có thể gán từ 1 đến 22.

Initial Value: Gán giá trị ban đầu của thẻ trong thời gian chạy CimonX.

2. I /O  Device

Để có được dữ liệu từ các thiết bị cục bộ, Xpanel cần phải đăng ký các thiết bị cục bộ cho dự án.Chức năng thiết bị I / O của nhà cung cấp cho phép Xpanel giao tiếp với các thiết bị cục bộ và quản lý dữ liệu với cơ sở dữ liệu của cơ sở dữ liệu. Xpanel hỗ trợ khoảng 90 trình điều khiển giao tiếp, được phân loại theo giao tiếp nối tiếp (RS232 / 422/485) và giao tiếp Ethernet (UDP / TCP).

2.1 Setting

  1. I/O Device Configuration

Chọn Tools –> I/O Devices để hiển thị cửa sổ sau.

Menu
Edit Hiển thị cửa sổ cấu hình của thiết bị I / O đã chọn
New Device Thêm một thiết bị I / O mới. Nhấn nút này để hiển thị cửa sổ lựa chọn thiết bị I / O.
Delete Xóa thiết bị I / O đã chọn.

(1)   I/O   Device Selection

Nhấn [New Device] để hiển thị cửa sổ [I/O Device Selection].

  • I /O Device Name

Chỉ định tên của thiết bị I / O. Khi bạn nhập tên thiết bị và nhấn OK, bạn sẽ không thể chỉnh sửa tên thiết bị.

Bạn không thể nhập vào tên thiết bị với các nhân vật đặc biệt như “!”, “@”, “~”…  Tuy nhiên, bạn có thể sử dụng “_” cho tên thiết bị.

  • I /O Device Type

Chọn loại thiết bị đích.Chọn nối tiếp hoặc Ethernet.

b. Ethernet Communication Configuration

Khi bạn chỉ định tên thiết bị và chọn thiết bị giao tiếp Ethernet, một cửa sổ sẽ xuất hiện như hình bên dưới.

(1) Communication port

Menu
Device Type Chọn giao thức mục tiêu cho thiết bị đích.
IP  Address Nhập địa chỉ IP của thiết bị cục bộ. Trường này chỉ được bật khi thiết bị cục bộ là CM-NP/ iNP.
Protocol Chọn giao thức Ethernet để sử dụng. Bạn có thể chọn UDP/ IP hoặc TCP/ IP
Network  ID Nhập ID mạng nếu được yêu cầu bởi giao thức thiết bị
Node ID Nhập ID nút nếu giao thức thiết bị yêu cầu
Tim e Out Tim e Out là một tính năng để thiết lập tiêu chuẩn giao tiếp thất bại và thành công. Nếu khung yêu cầu không được nhận trong thời gian được chỉ định, khung sẽ được xử lý là lỗi giao tiếp. Tùy chọn này không được áp dụng nếu giao thức là TCP / IP.
Retry No. Chỉ định số lần thử lại giao tiếp sau khi lỗi giao tiếp
Initialize the Tx

Frame When

Timeout Occurs

Chọn tùy chọn này để khởi tạo các khung Tx được đăng ký trong khoảng thời gian chờ
Dynamic IP Chọn tùy chọn này nếu bạn sử dụng IP động.

(2) Station

Chỉ định các mục cấu hình của thiết bị đích.

Menu
Edit Sẽ hiển thị cửa sổ cấu hình của trạm đã chọn.
Delete Xóa các trạm đã chọn.
Add Station Định cấu hình các mục truyền thông trên thiết bị đích
Station Name Chỉ định tên trạm. Bạn không thể nhập các ký tự đặc biệt.
Station Type Chọn loại trạm. Các loại trạm khác nhau được cung cấp theo loại thiết bị bạn đã chọn trong tab [Communication Port].
Network  ID Nhập ID mạng nếu giao thức yêu cầu
Node ID Nhập ID nút nếu giao thức thiết bị yêu cầu
Unit ID Nhập đơn vị ID nếu giao thức yêu cầu.
IP  Address Nhập địa chỉ IP của thiết bị đích.
Socket Port No. Nhập số cổng Socket của thiết bị đích
16Bit Data

Swap

Hoán đổi byte trên và dưới của dữ liệu word (16 bit) trong quá trình giao tiếp.
32Bit Data

Swap

Hoán đổi word trên và dưới của dữ liệu double- word (32 bit) trong quá trình giao tiếp.
String Data

Swap

Được hỗ trợ bởi một số trình điều khiển truyền thông. Hoán đổi byte của chuỗi dữ liệu.
Comm. Error

Message Pop

Up

Chọn tùy chọn này để bật lên thông báo lỗi giao tiếp.

Fast Mode

 

Chọn tùy chọn này để sử dụng chế độ nhanh. Tùy chọn này được kích hoạt theo loại trạm.
Fixed  XPANEL

Socket Port

Chọn tùy chọn này để sửa số cổng Socket của Xpanel.
Xpanel  Socket

Port No.

Chỉ định số cổng Socket của Xpanel

c. Serial Communication Configuration

(1) Communication Port

Menu
Device Type Chọn giao thức của thiết bị đích
Comm. Port Chọn cổng COM sẽ được sử dụng tại thiết bị cục bộ (Xpanel). Mỗi cổng COM có thể hỗ trợ phương thức giao tiếp khác nhau theo mô hình. Bạn có thể chỉ định số cổng COM tối đa COM255.
Baud Rate Chỉ định tốc độ baud. Bạn có thể chọn tốc độ từ 300 đến 115.200 bps. Tốc độ phải giống hệt với cấu hình của thiết bị đích
Parity Xác định việc sử dụng bit chẵn lẻ. Bạn có thể chọn không, chẵn hoặc lẻ
Data Bits Chỉ định kích thước của các bit dữ liệu. Tùy chọn này phải tương đương với cấu hình của thiết bị đích. 5 ~ 7 bit cung cấp tốc độ giao tiếp nhanh hơn nhưng tạo ra lỗi nếu dữ liệu chứa các ký tự tiếng Hàn.

Nếu các ký tự tiếng Hàn được bao gồm trong khung, chọn tùy chọn 8- bit

Stop Bits Chọn dữ liệu bit để xác định độ dài dữ liệu bằng 1 – đơn vị byrte. Bạn có thể chọn tùy chọn 1 hoặc 2 bit. Tùy chọn này phải giống hệt với cài đặt của thiết bị đích
RTS/CTS Chọn tùy chọn này để kiểm soát luồng dữ liệu. RTS là tín hiệu của thiết bị có thể nhận dữ liệu. CTS là tín hiệu của thiết bị có thể gửi dữ liệu. Chọn một tùy chọn theo thiết bị đích.
Comm. Type Chọn loại giao tiếp theo thiết bị đích. Bạn có thể chọn RS232, RS422 và RS485.
Retry No. Chỉ định số lần thử lại truyền thông sau khi lỗi giao tiếp.
Time Out Nếu khung yêu cầu không được nhận trong thời gian được chỉ định, khung sẽ được xử lý là lỗi giao tiếp.
Local ID Nhập ID cục bộ nếu được yêu cầu bởi giao thức thiết bị.
Network Opt. Chỉ định tùy chọn mạng nếu được yêu cầu bởi giao thức thiết bị.
Using Dial Up

Modem

Chọn tùy chọn này nếu bạn đang sử dụng modem
Telephone No. Nhập số của modem.
Init Command Nhập lệnh khởi tạo nếu cần thiết.
Dial Retry No. Chỉ định số lần thử lại liên lạc sau khi quay số thất bại.
Dial Time Out Nếu khung yêu cầu không được nhận trong thời gian được chỉ định, khung sẽ được xử lý là lỗi giao tiếp.
Using Transmission

Delay

Chỉ định thời gian để trì hoãn việc truyền dữ liệu từ Xpanel.
Initialize the Tx Frame When Timeout Occurs Chọn tùy chọn này để khởi tạo các khung Tx được đăng ký trong khoảng thời gian chờ.

Sau đây là các loại giao tiếp được hỗ trợ bởi mỗi cổng COM của các mô hình Xpanel.

(2) Station

Nhập cấu hình của thiết bị đích

Menu
Edit Sẽ hiển thị cửa sổ cấu hình của trạm đã chọn.
Delete Xóa các trạm đã chọn.
Add Station Định cấu hình các mục truyền thông trên thiết bị đích
Station Name Chỉ định tên trạm. Bạn không thể nhập các ký tự đặc biệt.
Station Type Chọn loại trạm. Các loại trạm khác nhau được cung cấp theo loại thiết bị bạn đã chọn trong tab [Communication Port].
Network  ID Nhập ID mạng nếu giao thức yêu cầu
Station No. Nhập số trạm của thiết bị đích.
16Bit Data

Swap

Hoán đổi byte trên và dưới của dữ liệu word (16 bit) trong quá trình giao tiếp.
32Bit Data

Swap

Hoán đổi word trên và dưới của dữ liệu double- word (32 bit) trong quá trình giao tiếp.
String Data

Swap

Được hỗ trợ bởi một số trình điều khiển truyền thông. Hoán đổi byte của chuỗi dữ liệu.
Using

CheckSum

Giao tiếp với tổng kiểm tra của giao thức.
Comm. Error

Message Pop

Up

Chọn tùy chọn này để bật lên thông báo lỗi giao tiếp.

3. Script

Script của Xpanel sử dụng ngôn ngữ lập trình rất giống với ngôn ngữ lập trình C. Trong script, người dùng có thể sử dụng biến, gọi các chương trình khác. Ngoài ra, Xpanel Designer cung cấp các từ khóa để kiểm soát luồng như Switch-Case, For, While, If – Else, Goto. Mỗi chương trình được thực hiện trong môi trường đa luồng. Ngoài ra, tất cả các chương trình được chỉ định với mức độ ưu tiên của riêng họ, từ cấp 1 đến 10.

Script không phân biệt chữ hoa chữ thường.

Tất cả các thẻ được đăng ký trong cơ sở dữ liệu Xpanel, có thể được sử dụng làm biến trong tập lệnh.

Hai loại biến được hỗ trợ:  kiểu Real và kiểu String. Các loại biến được quyết định tự động trong thời gian thực hiện chương trình.

3.1 Settings

Chọn Tools –>  Script  hoặc nhấn nút  để hiển thị trình chỉnh sửa tập lệnh như hiển thị bên dưới.

 

 

 

 

 

 

 

 

Item Description
Script Name Gán tên Script. Trong trường hợp cửa sổ Edit Script, trường này bị tắt.
Running Type Chọn kiểu hoạt động của Script. Khi bạn chọn ‘Start Up’, Script sẽ chỉ được thực hiện một lần khi khởi động của dự án. Khi bạn chọn ‘Manual’, Script sẽ chỉ được thực hiện một lần khi nó được gọi bằng các lệnh. Khi bạn chọn ‘Period’, Script sẽ thực hiện theo định kỳ.
Running Period Chỉ định khoảng thời gian thực hiện tập lệnh. Tùy chọn này chỉ được kích hoạt khi tùy chọn ‘Period’ được chọn. Bạn có thể chỉ định khoảng thời gian từ 1 đến 65535 giây.
Priority Chỉ định mức độ ưu tiên của Script. Ưu tiên thấp nhất là cấp 1 và ưu tiên cao nhất là cấp 10.

3.2 Cấu trúc chương trình

Script được chia thành hai phần: phần khai báo và chương trình. Phần khai báo dành cho khai báo các biến nội bộ và tham số đầu vào. Phần chương trình bao gồm tất cả các câu lệnh chương trình trừ phần khai báo.

Chú thích có thể được nhập vào bất cứ nơi nào trong chương trình. Các chuỗi bắt đầu bằng ‘//’, cho đến cuối dòng được coi là nhận xét.

Khai báo

Item Description
Khai báo biến Tuyên bố các biến nội bộ trong định dạng của VAR variable_name [, variable_name] ;

Giá trị ban đầu của các biến khai báo là 0. Để khai báo một vài biến, sử dụng dấu phẩy “, ” giữa các biến. Bạn có thể sử dụng một số từ khóa VAR trước khi phần chương trình bắt đầu. Tên biến không thể được trùng với tên thẻ (Group, kỹ thuật số, Analog, String). Tên trùng lặp có thể gây ra lỗi biên dịch hoặc hoạt động sai.

Khai báo tham số đầu vào Khai báo các tham số đầu vào theo định dạng của PARAM 1st parameter [, 2nd parameter …]

Tham số đầu vào được yêu cầu khi một chương trình được gọi bởi chương trình khác hoặc một lệnh. Thứ tự khai báo phải giống hệt với thứ tự của các tham số đầu vào. Tham số sẽ được khởi tạo với các giá trị được chỉ định bởi người gọi.

Để khai báo nhiều hơn một tham số, hãy sử dụng dấu phẩy “,” giữa các tham số. Bạn có thể sử dụng một số từ khóa PARAM trước khi phần chương trình bắt đầu.

Ví dụ Tên chương trình: MyPgm

VAR a, b;

VAR c;

PARAM p1, p2;

PARAM p3;

Chương trình MyPgm có thể được gọi bởi người gọi bên ngoài như hình dưới đây.

MyPgm (1,2,3);

Trong tham số p1, p2, p3, các giá trị được gán (1, 2, 3) sẽ được lưu trữ.

Các biến a, b, c, sẽ được khởi tạo là 0

Chương trình

Trong phần chương trình, tất cả các câu lệnh chương trình ngoại trừ khai báo (biến và tham số) có thể được sử dụng. Ví dụ về câu lệnh cơ bản nhất là gọi hàm, tính toán và lưu trữ kết quả.

Sau đây là một ví dụ chương trình với các tuyên bố cơ bản.

Tag_a = Tag_a + 1;

Tag_b = MyPgm (Tag_a, 2, 3);

Mỗi câu lệnh phải được đánh dấu bằng “; ” ở cuối. Mỗi hàm trả về một kết quả duy nhất cho người gọi. Chương trình được đề cập ở trên trả về kết quả cho Tag_b.

Hằng số

Khi bạn sử dụng các hằng số trong chương trình, bạn có thể sử dụng các ký hiệu như dưới đây

Item Description
Hằng số bát phân Chỉ sử dụng từ 0 đến 7. Hằng số bát phân phải bắt đầu bằng 0. (Ví dụ: 01277)
Hằng số thập phân Ký hiệu chung được sử dụng. (Ví dụ: 153, 3.14, 2.45E-12)
Hằng số thập lục phân Bắt đầu với ‘0x’, sử dụng bảng chữ cái hoặc con số trong phạm vi của ‘0’ – ‘F’. (Ví dụ: 0xFFFF)
Chuỗi Nhập chuỗi giữa hai dấu ngoặc kép ( “ ”). (Ví dụ: “String Variable1 ”)

Bạn cũng có thể sử dụng các hằng số được xác định trước như dưới đây.

Tên hằng số Giá trị Sử dụng
_PI_ 3.141592… (giá trị của số  π)
_LOCAL_ 0 Local Flash Memory
_SDMEM_ 1 SD/MMC Memory
_USBMEM_ 2 USB Memory
_COM232_ 0 Uses COM1 port as RS232C mode.
_COM422_ 1 Uses COM1 port as RS422 mode.
_COM485_ 2 Uses COM1 port as RS485 mode.
_COMAUX_ 3 Uses COM2 port as RS232C mode.
_BPS300_ 300 bps
_BPS600_ 600bps
_BPS1200_ 1200bps
_BPS2400_ 2400bps
_BPS4800_ 4800bps
_BPS9600_ 9600bps
_BPS19200_ 19200bps
_BPS38400_ 38400bps
_BPS56000_ 56000bps
_BPS57600_ 57600bps
_BPS115200_ 115200bps
_BPS128000_ 128000bps
_BPS256000_ 256000bps
_PARITY_NONE_ NO PARITY BIT
_PARITY_EVEN_ EVEN PARITY
_PARITY_ODD_ ODD PARITY
_PARITY_MARK_ MARK PARITY
_PARITY_SPACE_ SPACE PARITY
_STOPBIT_ONE_ 1 STOP BIT
_STOPBIT_TWO_ 2 STOP BITS
_STOPBIT_ONE5_ 1.5 STOP BIT

3.3 Toán tử

Có ba loại toán tử có thể được sử dụng trong các chương trình; Toán tử tính toán, Toán tử logic / so sánh và các toán tử khác.

(1) Toán tử tính toán

Trong bảng dưới đây, kết quả tính toán dựa trên giả định của biến A là 3 (0000 0000 0000 0011) và biến B là 4 (0000 0000 0000 0100).

Tính toán phần dư và tất cả các tính toán đảo bít sẽ được thực hiện với dữ liệu số nguyên 32 bit.

Toán tử Hàm Ví dụ Mô tả
~ Đảo bit ~A Mỗi bit của A (0000 0000 0000 0011b) được đảo ngược. Kết quả là 1111 1111 1111 1100b.
+ Phép cộng A+B Cộng A với B, kết quả là 7
Phép trừ A –B Lấy A trừ B. Kết quả là -1.
* Phép nhân A*B Nhân A với B. Kết quả là 12.
/ Phép chia A / B Lấy A chia B. Kết quả là 0.75.
% Phép chia lấy dư A % B Cho biết phần dư từ phép chia A với B. Kết quả là 3.
& Bitwise AND A & B Phép tính AND logic A và B. Kết quả là 0
| Bitwise OR A | B Phép tính OR logic A và B. Kết quả là 0111b (=7 ).
^ Bitwise XOR A ^ B Phép XOR logic của A và B. Kết quả là 0111b(=7 )
<< Bitwise Shift
Left
A << B Dịch chuyển các bit của A sang trái B số . Phần ngoài cùng bên phải được điền 0. Kết quả là 0011 0000b (= 48).
>> Bitwise Shift
Right
A >> B Dịch chuyển các bit của A sang trái B số . Phần ngoài cùng bên trái được điền 0. Kết quả là 0.

(2 ) Toán tử logic / so sánh

Trong bảng hiển thị dưới đây, kết quả là một tính toán dựa trên giả định của biến A là 1 (True) và biến B là 0 (False). Trong Xpanel, các giá trị khác 0 đều xử lý như True. Chỉ 0 được công nhận là False.

Khi kết quả tính toán là đúng, kết quả luôn là 1.

Toán tử Hàm Ví dụ Mô tả
&& Logical AND A && B Nếu A và B đúng, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
|| Logical OR A || B Nếu A và B sai, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
< Less than A < B Nếu A nhỏ hơn B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
> Greater than A > B Nếu A lớn hơn B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
<= or =< Less than or
equal to
A <= B Nếu A nhỏ hơn hoặc bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
>= or => Greater than
or equal to
A >= B Nếu A lớn hơn hoặc bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
== Equal to A == B Nếu A bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
!= Is not equal to A != B Nếu A không bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.

(3 ) Toán tử khác

Toán tử Hàm Ví dụ Mô tả
= Store A = B Lưu trữ các giá trị B đến A và sử dụng nó như là một kết quả.

Toán tử Store (=) có thể được sử dụng liên tiếp.

A = B = C;

Trong trường hợp này, giá trị của A và B sẽ được đặt là C. Nói cách khác, giá trị ở phía bên phải của toán tử sẽ được coi là giá trị kết quả của phép toán “= ”. Ví dụ được đề cập ở trên sẽ được xử lý nội bộ trong chương trình như dưới đây.

B ← C

A ← B

3.4 Lệnh và điều kiện

Trong một số trường hợp nhất định, có thể cần phải sử dụng tập lệnh đơn giản trong cấu hình đối tượng. Ví dụ: bạn có thể nhập điều kiện và lệnh cho đối tượng cảm ứng như hình bên dưới. Các biểu thức điều kiện và lệnh tuân theo định dạng của lập trình tập lệnh.

(1) Condition Expression

Toán tử Hàm Ví dụ Mô tả
&& Logical AND A && B Nếu A và B đúng, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
|| Logical OR A || B Nếu A và B sai, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
< Less than A < B Nếu A nhỏ hơn B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
> Greater than A > B Nếu A lớn hơn B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
<= or =< Less than or
equal to
A <= B Nếu A nhỏ hơn hoặc bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
>= or => Greater than
or equal to
A >= B Nếu A lớn hơn hoặc bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
== Equal to A == B Nếu A bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.
!= Is not equal to A != B Nếu A không bằng B, kết quả là 1. Trong các trường hợp khác, kết quả là 0.

Sau đây là một ví dụ về biểu thức điều kiện.

Example Description
(Tag_A != 1) &&
(Tab_B == 10)
Nếu giá trị của Tag_A không phải là 1 và giá trị của TAG_B là 10, trả về kết quả 1. Trong trường hợp khác, trả về 0.
Sin(Tag_A) == 1 Nếu hàm sin của Tag_A là 1, trả về kết quả 1. Trong các trường hợp khác, trả về 0.
Tag_A < 100 Nếu Tag_A nhỏ hơn 100, trả về kết quả 1. Trong các trường hợp khác, trả về 0.
(Tag_A + Tag_B) <
(Tag_A + Tag_C)
Nếu tổng của Tag_A và Tag_B nhỏ hơn tổng của Tag_A và Tag_C, trả về kết quả 1. Trong các trường hợp khác, trả về 0.

(2) Biểu thức lệnh

Trong Xpanel, nhiều biểu thức lệnh có thể được sử dụng. Nói cách khác, biểu thức lệnh là một chương trình tập lệnh đặc biệt. Bạn cũng có thể sử dụng các hàm trong tập lệnh cho biểu thức lệnh.

Mức độ ưu tiên của biểu thức lệnh khác với các tập lệnh. Nếu điều kiện hoạt động của biểu thức lệnh được thỏa mãn, lệnh sẽ được ưu tiên cao nhất. Nó chỉ ra rằng các hoạt động khác của đối tượng không được xử lý cho đến khi hoạt động lệnh hiện tại kết thúc. Đặc biệt là hàm được gọi bởi biểu thức lệnh có mức độ ưu tiên giống như lệnh. Ví dụ: khi bạn sử dụng hàm RunScript trong biểu thức lệnh, tập lệnh được gọi sẽ hoạt động song song. Lệnh không đợi cho đến khi kịch bản kết thúc. Thay vào đó, biểu thức lệnh tiếp theo sẽ được thực thi.

Sau đây là một ví dụ về biểu thức lệnh.

Example Description
Tag_A = 100;
PageOpen(“NewPage”);
Đặt giá trị của Tag_A đến 100 và mở trang có tên “NewPage”.
Tag_B = Tab_B + 1 Tăng giá trị của Tag_B lên 1.
Tag_A = 100;
Tag_B = 1;
RunScript MyLoop();
MakeCsv(“LogModel”,1);
Đặt giá trị của Tag_A và Tag_B thành 100 và 1, sau đó thực thi tập lệnh có tên MyLoop (). Sau khi tập lệnh được thực thi, mô hình ghi dữ liệu có tên là LogModel sẽ được lưu trong bộ nhớ SD dưới dạng CSV

3.5 Các câu lệnh

(1) IF-ELSE

Câu lệnh có thể được sử dụng trong stack như IF-ELSE IF-ELSE IF. Không có giới hạn trong ngăn xếp câu lệnh.

If (A == 1)
{
// A program when A is 1
}
Else
{
// A program when A is not 1
}

(2) WHILE/DO-WHILE

WHILE / DO-WHILE là một lệnh cho quá trình lặp. Các câu lệnh bên dưới từ khóa WHILE sẽ được lặp lại trong khi điều kiện tiếp theo WHILE là True.

A = 0;
While (A<10)
{
// Write the program which will be repeated
// while the WHILE keyword’s condition is True.
// This example will be repeated 10 times.
A = A +1;
}

Các câu lệnh cấp dưới có thể không bao giờ được thực thi theo điều kiện trong câu lệnh WHILE. Nếu bạn sử dụng các câu lệnh DO-WHILE, ít nhất bạn có thể thực hiện câu lệnh 1 lần. Sau đó hệ thống sẽ kiểm tra điều kiện.

Do {
// Write the loop statement when the condition is True.
// The loop statement will be executed once at least.
} While (A<10); // mark the end of the statement with ‘ ; ’.

(3) FOR

Cấu trúc lệnh For ( khởi tạo; biểu thức điều kiện; xử lý vòng lặp)

For (A=0; A<10; A=A+1)
{
// Write the loop statement.
}

(4) SWITCH-CASE

Switch (A)
{
Case 1:
// Write the program when A is 1.
Break;
Case 5:
Case 7:
// Write the program when A is 5 or 7.
Break;
Default:
// Write the default program. This section can be omitted.
Break;
}

(5) GOTO

VAR A;
A = 0;
@ComeHere // Assign an index.
If (A < 10)
{
A = A + 1
Goto ComeHere; // Move to the assigned index.
}

(6) CONTINUE Keyword

Continue keyword được sử dụng trong câu lệnh lặp. Khi hệ thống đáp ứng Continue keyword, luồng sẽ di chuyển đến phần đầu tiên của vòng lặp hiện tại. Từ khóa này thường được sử dụng trong các câu lệnh WHILE, DO-WHILE, FOR. Đặc biệt, khi có nhiều câu lệnh ra quyết định (IF-ELSE) trong vòng lặp, từ khóa rất hữu ích.

Các ví dụ sau có hoạt động giống hệt nhau.

While (A<10)
{
A = A +1;
If (A < 5)
{
// Process when A is less than 5
}
Else
{
// Process when A is greater than or equal to 5
}
}
While (A<10)
{
A = A +1;
If (A < 5)
{
// Process when A is less than 5
Continue;
}
// Process when A is greater than or equal to 5
}

(7) Return Keyword

Mỗi chương trình trả về một giá trị kết quả cho người gọi. Từ khóa RETURN được sử dụng để chỉ định giá trị trả về và kết thúc chương trình.

Ví dụ sau xử lý ba tham số đầu vào và trả về tổng của chúng cho người gọi.

Tên của chương trình được hiển thị dưới đây là MyPgm

PARAM p1, p2, p3;
Return p1+p2+p3;

Chương trình MyPgm sẽ được gọi trong chương trình khác như dưới đây. Khi đó biến ‘RtnValue’ sẽ nhận được giá trị 6.

RtnValue = MyPgm(1, 2, 3);

(8) RUNSCRIPT Keyword

Khi bạn gọi một chương trình bên ngoài, người gọi sẽ ở chế độ chờ cho đến khi chương trình được gọi (chương trình bên ngoài) kết thúc hoạt động.

Tuy nhiên, nếu bạn sử dụng từ khóa RunScript để gọi một chương trình bên ngoài, người gọi sẽ không đợi kết thúc chương trình được gọi. Do đó, cả người gọi và chương trình được gọi sẽ được thực thi.

If (A == 0)
RunScript NewThread(); // Thực hiện một chương trình bên ngoài (NewThread)
A = A + 1; // Tiếp tục phần còn lại của chương trình ngay lập tức

3.6 Internal Functions

Trong Xpanel Script, có ba loại hàm có thể được sử dụng; Hàm lượng giác, Hàm toán học khác và Hàm đặc biệt.

Hàm lượng giác trả về giá trị như Sine, Cosine, Tangent của các tham số số thực được gán.

Các hàm toán học khác trả về giá trị như Nhật ký, Giá trị tuyệt đối, Giá trị bình phương của các tham số số thực được gán.

Các chức năng đặc biệt kiểm soát các tính năng của dự án Xpanel hoặc chính dự án. Có các hàm được gọi là ‘Chương trình con trong thể loại này.

Bình luận