LỆNH SET_BF : Set Bit Field

set_bf

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ụ:

Lệnh SET BF

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