Tóm tắt nội dung
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 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 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
- 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.