Giới thiệu về lệnh SET_BF : Set bit field
Giới thiệu về lệnh RESET_BF : Reset bit field
-
- Có thể hiểu đơn giản với lệnh SET_BF là SET lên nhiều tín hiệu liên tiếp cùng 1 thời điểm.
Mô tả lệnh cụ thể như sau:
-
- Sử dụng lệnh SET_BF để đặt một số bit bắt đầu từ một địa chỉ nhất định.
- Xác định số bit được đặt bằng giá trị của <Operand2>.
- Địa chỉ của bit đầu tiên được đặt được xác định bởi <Operand1>.
- Nếu giá trị <Operand2> lớn hơn độ dài dữ liệu đoạn thanh ghi ở <Operand1> thì lệnh không được thực thi và thông báo lỗi “Phạm vi vi phạm đối với chỉ mục <Operand1>” được hiển thị. Các bit vẫn được thiết lập cho đến khi chúng được đặt lại một cách rõ ràng bởi một lệnh khác.
- Lệnh chỉ được thực hiện nếu kết quả của hoạt động logic (RLO) ở đầu vào của cuộn dây là “1”, chỉ cần 1 tín hiệu sườn lên. Nếu RLO ở đầu vào của cuộn dây là “0”, lệnh chưa được thực hiện.
Thông số | Kiểu dữ liệu | Vùng nhớ |
<Operand2> | UINT | Hằng số |
<Operand1> | BOOL | I, Q, M, DB, IDB, ARRAY[..] của dữ kiểu BOOL |
Chú ý:
Với các cấu trúc thuộc kiểu dữ liệu STRUCT hoặc ARRAY, số lượng bit chứa trong cấu trúc biểu thị số lượng bit tối đa có thể được đặt lại:
-
- Ví dụ: nếu bạn chỉ định giá trị “20” tại <Operand2> và cấu trúc chỉ chứa 10 bit, thì chỉ 10 bit này được đặt.
- Ví dụ: nếu bạn chỉ định giá trị “5” tại <Operand2> và cấu trúc chứa 10 bit, thì chính xác 5 bit được đặt.
Ví dụ:

Mô tả lệnh SET BF:
-
- Nếu toán hạng “TagIn_1” và “TagIn_2” có trạng thái tín hiệu là “1”, thì 5 bit được đặt bắt đầu đặt lên bằng 1 từ địa chỉ của toán hạng “MyDB”.MyBoolArray [4].
Nghĩa là :
-
- “MyDB”.MyBoolArray [2] = 0
- “MyDB”.MyBoolArray [3] = 0
- “MyDB”.MyBoolArray [4] = 1
- “MyDB”.MyBoolArray [5] = 1
- “MyDB”.MyBoolArray [6] = 1
- “MyDB”.MyBoolArray [7] = 1
- “MyDB”.MyBoolArray [8] = 1
- “MyDB”.MyBoolArray [9] = 0
- “MyDB”.MyBoolArray [10] = 0