Hướng dẫn S7-1200_Bài 7: Tập lệnh lập trình – Phép toán

 

 

5.1.5    Phép toán.

Các lệnh cộng, trừ, nhân và chia

Ta sử dụng một lệnh hộp phép toán để lập trình các vận hành phép toán cơ bản:

  • ADD    : phép cộng   (IN1+IN2         =OUT)
  • SUB    : phép trừ      (IN1-IN2          =OUT)
  • MUL    : phép nhân  (INI * IN2         – OUT)
  • DIV      : phép chia    (IN1/IN2           =OUT)

Một hoạt động chia số nguyên sẽ cắt bỏ phần phân số của thương số để tạo ra một tín hiệu ra số nguyên. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lưu ý:

Các thông số lệnh phép toán cơ bản INI, IN2 và OUT phải có kiểu dữ liệu giống nhau.

Khi được cho phép (EN =1), lệnh phép toán thực hiện hoạt động được định rõ trên các giá trị ngõ vào (INI và IN2) và lưu trữ kết quả trong địa chỉ nhớ được xác định bởi thông số ngõ ra (OUT). Sau một sự hoàn tất thành công phép toán, lệnh sẽ đặt ENO = 1.

Lệnh MOD

Ta sử dụng lệnh MOD (modulo) cho phép toán INI modulo IN2. Phép toán INI MOD IN2 = INI – (IN1/IN2) = thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đom thả xuống.

Lưu ý:

Các thông số INI, IN2 và OUT phải có kiểu dữ liệu giống nhau.

Lệnh NRG

Ta sử dụng lệnh NEG (phép đảo) để đảo ngược dấu số học của giá trị tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đon thả xuống.

Các thông số IN và OUT phải có kiểu dữ liệu giống nhau.

Các lệnh tăng và giảm

Ta sử dụng các lệnh INC và DEC để:

  • Tăng giá trị một số nguyên có dấu hoặc không dấu. INC: giá trị thông số IN/OUT + 1 = giá trị thông số IN/OUT.
  • Giảm giá trị một số nguyên có dấu hoặc không dấu. DEC: giá trị thông số IN/OƯT – 1 = giá trị thông số IN/OƯT.

– Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trinh đơn thả xuống.

Lệnh giá trị tuyệt đối

Ta sử dụng lệnh ABS để nhận được giá trị tuyệt đối của một số nguyên có dấu hoặc một số thực tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lưu ý:

Các thông số IN và OUT phải có kiểu dữ liệu giống nhau.

Lệnh MIN và MAX

Ta sử dụng lệnh MIN lminimum: cực tiểu) và MAX (maximum: cực đại) như sau:

  • Lệnh MIN so sánh giá trị của hai thông số INI và IN2 và gán giá trị cực tiểu (nhỏ hơn) cho thông số OUT.
  • Lệnh MAX so sánh giá trị của hai thông số INI và IN2 và gán giá trị cực đại (lớn hơn) cho thông số OUT.

– Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lưu ý:

Các thông số IN và OUT phải có kiểu giá trị giống nhau.

Lệnh giới hạn

Ta sử dụng lệnh LIMIT để kiểm tra xem giá trị của thông số IN có nằm bên trong phạm vi giá trị xác định bởi các thông số MIN và MAX hay không. Giá trị OUT được giữ lại tại giá trị MIN hay MAX, nếu giá trị IN nằm ngoài phạm vi này.

  • Nếu giá trị thông số IN nằm trong phạm vi xác định, giá trị IN được lưu trữ trong thông số OUT.
  • Nếu giá trị thông số IN nằm ngoài phạm vi xác định, giá trị OUT sẽ là giá trị của thông số MIN (nếu IN nhỏ hơn MIN) hoặc sẽ là giá trị của thông số MAX (nếu IN lớn hơn MAX).

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lưu ý:

Các thông số MIN, IN, MAX và OUT phải có kiểu giá trị giống nhau.

Các lệnh toán học dấu phẩy động

Ta sử dụng các lệnh dấu phẩy động để lập trình việc vận hành toán học sử dụng kiểu dữ liệu Real hay LReal:

  • SQR : bình phương (IN2 = OUT)
  • SQRT : căn bậc hai (-JĨN = OUT)
  • LN : logarite tự nhiên (LN(IN) = OUT)
  • EXP : lũy thừa tự nhiên (em = OUT) với cơ số e = 2,71828182845904523536
  • SIN : hàm sin (sin(IN radian) = OUT)
  • cos : hàm cos (cos(IN radian) = OUT)
  • TAN : hàm tan (tan(IN radian) = OUT)
  • ASIN : sin ngược (arcsin (IN) = OUT)
  • ACOS: cos ngược (arccos (IN) = OUT)
  • ATAN: tan ngược (arctan (IN) = OUT)
  • FRAC: phân số (phần phân số của số có dấu phẩy động IN = OUT)
  • EXPT : lũy thừa tổng quát (INI™2 = OUT)

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Các thông số EXPT là INI và OUT luôn luôn là Real. Ta có thể lựa chọn kiểu dữ liệu cho thông số số mũ IN2.

5.1.6   Di chuyển

Các lệnh di chuyển và di chuyển khối

Ta sử dụng các lệnh di chuyển để sao chép các phần tử dữ liệu đến một địa chỉ nhớ mới và chuyển đổi từ một kiểu dữ liệu này sang kiểu khác. Dữ liệu nguồn không bị thay đổi trong quá trình di chuyển.

  • MOVE: sao chép một phần tử dữ liệu được lưu trữ tại một địa chỉ xác định đến một địa chỉ mới.
  • MOVE BLK: di chuyển có thể ngắt mà sao chép một khối các phần tử dữ liệu đến một địa chỉ mới.
  • UMOVE_BLK: di chuyển không ngắt được mà sao chép một khối các phần tử dữ liệu đến một địa chỉ mới.

Lưu ý:

Các quy tắc đối với hoạt động sao chép dữ liệu:

Để sao chép kiểu dữ liệu Bool, sử dụng SET_BF, RESET_BF, R, s hoặc cuộn

  • Dây ngõ ra (LAD).
  • Để sao chép một kiểu dữ liệu cơ bản đơn lẻ, sử dụng MO VE.
  • Để sao chép một mảng kiểu dữ liệu cơ bản, sử dụng MOVE BLK hay UMOVEBLK.
  • Để sao chép một cấu trúc, sử dụng MO VE.
  • Để sao chép một chuỗi, sử dụng S CONV.
  • Đổ sao chép một ký tụ đơn lẻ trong một chuỗi, sử dụng MO VE
  • Lệnh MOVE BLK và UMOVE BLK không thể được dùng để sao chép các mảng hay cấu trúc đến các vùng nhớ I, Q hay M.
  • Các sự kiện ngắt được xếp hàng nhưng không được xử lý cho đến khi thực thi UMOVE BLK hoàn tất. Sử dụng lệnh MOVE BLK khi hoạt động di chuyển phải được hoàn tất và dữ liệu đích nhất quán, trước sự thực thi của một chương trình con OB ngắt.

Lệnh MOVE sao chép một phần tử dữ liệu đơn lẻ từ một địa chỉ nguồn được xác định bởi thông số IN đến địa chỉ đích được xác định bởi thông số OUT.

Lệnh MOVE BLK và UMOVE BLK có một thông số thêm vào là COUNT. Thông số COUNT chỉ ra có bao nhiêu phần tử dữ liệu được sao chép, số lượng các byte trong mỗi phần tử được sao chép phụ thuộc vào kiểu dữ liệu được gán cho tên gắn nhãn của thông số IN và OUT trong bảng gắn nhãn PLC.

Các lệnh MOVE BLK và UMOVE BLK khác nhau ở cách thức mà các ngắt được thực hiện:

Các sự kiện ngắt được xếp hàng và được xử lý trong suốt việc thực thi MOVE BLK. Sử dụng lệnh MOVE BLK khi dữ liệu tại địa chỉ di chuyển đích không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không bắt buộc phải là nhất quán. Nếu một hoạt động MOVE BLK bị ngắt, phần tử dữ liệu sau cùng được di chuyển sẽ hoàn tất và nhất quán tại địa chỉ đích. Hoạt động MOVE BLK được khôi phục lại sau khi thực thi OB ngắt hoàn tất.

Lệnh MOVE sao chép một phần tử dữ liệu đơn lẻ từ một địa chỉ nguồn được xác định bởi thông số IN đến địa chỉ đích được xác định bởi thông số OUT.

Lệnh MOVE BLK và UMOVE BLK có một thông số thêm vào là COUNT. Thông số COUNT chỉ ra có bao nhiêu phần tử dữ liệu được sao chép, số lượng các byte trong mỗi phần tử được sao chép phụ thuộc vào kiểu dữ liệu được gán cho tên gắn nhãn của thông số IN và OUT trong bảng gắn nhãn PLC.

Các lệnh MOVE BLK và UMOVE BLK khác nhau ở cách thức mà các ngắt được thực hiện:

Các sự kiện ngắt được xếp hàng và được xử lý trong suốt việc thực thi MOVE BLK. Sử dụng lệnh MOVE BLK khi dữ liệu tại địa chỉ di chuyển đích không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không bắt buộc phải là nhất quán. Nếu một hoạt động MOVE BLK bị ngắt, phần tử dữ liệu sau cùng được di chuyển sẽ hoàn tất và nhất quán tại địa chỉ đích. Hoạt động MOVE BLK được khôi phục lại sau khi thực thi OB ngắt hoàn tất.

Các lệnh lấp đầy

Ta sử dụng các lệnh FILL_BLK và UFILL_BLK như:

  • FILL_BLK: lệnh lấp đầy có thể ngắt sẽ lấp đầy một phạm vi địa chỉ bằng các bản sao của một phần tử dữ liệu xác định.
  • UFILL_BLK: lệnh lấp đầy không ngắt được sẽ lấp đầy một phạm vi địa chỉ bằng các bản sao của một phần tử dữ liệu xác định.

Lưu ý:

Các quy tắc đối với việc thực thi lắp đầy:

  • Để lấp đầy với kiểu dữ liệu Bool, sử dụng SET_BF, RESET, R, s, hay cuộn dây ngõ ra (LAD).
  • Để lấp đầy với kiểu dữ liệu cơ bản đơn lẻ, sử dụng MOVE.
  • Để lấp đầy với một mảng kiểu dữ liệu cơ bản, sử dụng FILL_BLK hay UFILL_BLK.
  • Để lấp đầy một ký tự đơn lẻ ừong một chuỗi, sử dụng MOVE.

Các lệnh FILL_BLK và UFILL_BLK không thể được sử dụng để lấp đầy các mảng trong các vùng nhớ I, Q, hay M.

Các lệnh FI11_BLK và UFILL_BLK sao chép phần tử dữ liệu nguồn IN đến đích tại đó địa chỉ ban đầu được xác định bởi thông số OUT. Tiến trình sao chép lặp lại và một khối các địa chỉ kế cận nhau được lấp đầy cho đến khi số lượng các bản sao bằng với thông số COUNT.

Các lệnh FILL_BLK và UFILL_BLK khác nhau ở cách thức mà các ngắt được thực hiện:

  • Các sự kiện ngắt được xếp hàng và được xử lý trong suốt việc thực thi FILL_BLK. Sử dụng lệnh FILL_BLK khi dữ liệu tại địa chỉ đích di chuyển thì không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không buộc phải nhất quán.
  • Các sự kiện ngắt được xếp hàng nhưng không được xử lý cho đến khi thực thi UFILL_BLK hoàn tất. Sử dụng lệnh UFILL_BLK khi hoạt động di chuyển phải được hoàn tất và dữ liệu đích nhất quán, trước sự thực thi của một chương trình con OB ngắt.

5.1.6.1   Lệnh tráo đổi.

Ta sử dụng lệnh SWAP để đảo ngược trật tự byte cho các phần tử dữ liệu 2 byte và 4 byte. Không có sự thay đổi nào được thực hiện đến trật tự bit trong phạm vi mỗi byte.

ENO luôn luôn nhận giá trị “TRUE” theo sự thực thi của lệnh SWAP.

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đom thả xuống.

5.1.7    Chuyển đổi.

Lệnh chuyển đổi

Ta sử dụng lệnh CONVERT để chuyển đổi một phần tử dữ liệu từ một kiểu dữ liệu này sang một kiểu dữ liệu khác. Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu IN và OUT từ danh sách thả xuống.

Sau khi ta lựa chọn kiểu dữ liệu để chuyển đổi, một danh sách những sự chuyển đổi có khả năng sẽ được cho thấy trong danh sách thả xuống chuyển đổi đến. Những sự chuyển đổi từ/đến BCD16 bị hạn chế đối với kiểu dữ liệu Int. Những sự chuyển đổi từ/đến BCD32 bị hạn chế đối với kiểu dữ liệu Dlnt.

Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu từ trình đơn thả xuống.

Các lệnh làm tròn và cắt bỏ

Lệnh ROUND chuyển đổi một số thực thành một số nguyên. Phần phân số của số thực được làm tròn đến giá trị số nguyên gần nhất (IEEE – làm tròn đến gần nhất). Nếu số thực nằm chính xác ở giữa vùng giữa 2 số nguyên thì số thực này được làm tròn đến số nguyên chẵn. Ví dụ: ROUND(10,5) = 10 và ROUND(ll,5)= 12.

Lệnh TRUNC chuyển đổi một số thực thành một số nguyên. Phần phân số của số thực được cắt bỏ thành 0 (IEEE – làm tròn thành 0).

Các lệnh CEIL và FLOOR

Lệnh CEIL chuyển đổi một số thực thảnh số nguyên nhỏ nhất lớn hơn hay bằng số thực đó (IEEE – làm tròn đến dương vô cùng).

Lệnh FLOOR chuyển đổi một số thực thành số nguyên lớn nhất nhỏ hơn hay bằng số thực đó (IEEE – làm tròn đến âm vô cùng).

5.1.7.1    Các lệnh định tỷ lệ và chuẩn hóa.

Các lệnh định tỷ lệ và chuẩn hóa

Lệnh SCALEX định tỷ lệ của thông số số thực được chuẩn hóa VALUE, với (0,0 <= VALUE <= 1,0) thành kiểu dữ liệu và phạm vi giá trị được xác định bởi các thông số MIN và MAX: OUT = VALUE (MAX – MIN) + MIN

Đối với lệnh SCALE X, các thông số MIN, MAX và OUT phải là kiểu dữ liệu giống nhau.

Lệnh NORM X làm chuẩn hóa thông số VALUE bên trong phạm vi giá trị được xác định bởi các thông số MIN và MAX: OUT = (VALUE – MIN) / (MAX – MIN) với (0,0 <= OUT <= 1,0)

Đối với lệnh NORM X, các thông số MIN, VALUE và MAX phải là kiểu dữ liệu giống nhau.

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lưu ý:

Thông số VALUE trong lệnh SCALE  X nên được hạn chế trong khoảng (0,0<=VALUE<=1,0)

Nếu thông số VALUE nhỏ hơn 0,0 hay lớn hơn 1,0 thì:

  • Hoạt động chia tỷ lệ tuyến tính có thể sinh ra các giá trị OUT nhỏ hơn giá trị thông số MIN, hay nằm trên giá trị thông số MAX đối với các giá trị OUT nằm vừa trong phạm vi kiểu dữ liệu OUT. Sự thực thi SCALEX đặt ENO = TRƯE trong các trường hợp này.
  • Có khả năng tạo ra các số được định tỷ lệ mà không nằm trong phạm vi của kiểu dữ liệu OUT. Trong những trường họp này, giá trị thông số OUT được đặt đến một giá trị trung gian, bằng với phần có trọng số nhỏ nhất của số thực được tỷ lệ ưu tiên cho sự chuyển đổi cuối cùng sang kiểu dữ liệu OUT. Sự thực thi SCALE X đặt ENO = FALSE trong trường hợp này.

Thông số VALUE trong NORM X nên được hạn chế trong khoảng (MIN <= VALUE <= MAX)

Nếu thông số VALUE nhỏ hơn MIN hay lớn hơn MAX, sự hoạt động chia tỷ lệ tuyến tính có thể tạo ra các giá trị OUT được chuẩn hóa nhỏ hơn 0 hay lớn hơn 1. Trong trường họp này sự thực thi NORM X đặt ENO = TRUE.


5.1.8     Điều khiển chương trình.

Các lệnh nhảy và ghi nhãn

Ta sử dụng các lệnh điều khiển chương trình cho các điều khiển điều kiện trong chuỗi thực thi:

Lệnh JMP: nếu có dòng tín hiệu đến một cuộn dây JMP (LAD), hay nếu tín hiệu vào hộp JMP (FBD) là đúng thì sau đó sự thực thi chương trình tiếp tục với lệnh đầu tiên theo nhãn được chỉ định.

Lệnh JMPN: nếu không có dòng tín hiệu đi đến một cuộn dây JMP (LAD), hay nếu tín hiệu vào hộp JMP (FBD) là sai thì sau đó sự thực thi chương trình tiếp tục với lệnh đầu tiên theo nhấn được chỉ định.

Lệnh Label: nhãn nơi đến cho lệnh nhảy JMP hay JMPN.

Ta tạo ra các tên nhãn bằng cách gõ trực tiếp trong lệnh LABEL. Các tên nhãn sẵn có cho trường tên nhãn JMP và JMPN có thể được chọn bằng cách sử dụng biểu tượng trợ giúp thông số. Ta còn có thể gõ một tên nhãn trực tiếp bên trong lệnh JMP hay JMPN.

Lệnh điều khiển thực thi trả về giá trị (RET)

Lệnh tùy chọn RET được sử dụng để kết thúc sự thực thi của khối hiện thời. Nếu và chỉ nếu có dòng tín hiệu đi đến cuộn dây RET (LAD) hay nếu tín hiệu vào của hộp RET là đúng (FBD) thì sau đó sự thực thi chương trình của khối hiện thời sẽ kết thúc tại điểm đó và các lệnh nằm sau lệnh RET sẽ không được thực thi. Nếu khối hiện thời là một OB, thông số “Retum Value” được bỏ qua. Nếu khối hiện thời là một FC hay FB, giá trị thông số “Retum Value” được đi qua trở về đến đoạn chương trình đang gọi nhu giá trị ENO của hộp được gọi.

Ta không được yêu cầu sử dụng lệnh RET là câu lệnh cuối cùng trong một khối vì điều này được thực hiện một cách tự động cho ta. Ta có thể có nhiều lệnh RET bên trong một khối đơn lẻ.

Các bước mẫu để sử dụng lệnh RET bên trong một khối mã FC:

  1. Tạo một đề án mới và thêm một FC.
  2. Chỉnh sửa FC:
  • Thêm vào các lệnh từ cây lệnh.
  • Thêm vào lệnh RET, bao gồm một trong các đối tượng sau đây cho thông số “Retum Value”: TRUE, FALSE hay một vị trí bộ nhớ mà định rõ giá trị trả lại được yêu cầu.
  • Thêm vào các lệnh khác.
  1. Gọi FC từ MAIN[OBl]

Ngõ vào EN trên hộp FC ừong khối mã MAIN phải là đúng để bắt đầu sự thực thi của FC.

Giá trị được xác định bởi lệnh RET trong FC sẽ hiện diện trên ngõ ra ENO của hộp FC trong khối mã MAIN, theo sau sự thực thi của FC mà dòng tín hiệu đến lệnh RET của nó là đúng.

5.1.9     Các phép toán logic.

Các lệnh AND, OR và XOR

Lệnh AND: cho các kiểu dữ liệu Byte, Word và DWord Lệnh OR: cho các kiểu dữ liệu Byte, Word và DWord Lệnh XOR: cho các kiểu dữ liệu Byte, Word và DWord.

Ta nhấp vào phía duới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.

Việc lựa chọn kiểu dữ liệu đặt các thông số INI, IN2 và OUT về kiểu dữ liệu giống nhau. Các giá trị bit tuơng ứng của INI và IN2 được kết nối để tạo ra một kết quả logic nhị phân tại thông số OUT. ENO luôn luôn là TRUE theo sự thực thi của các lệnh này.

Lệnh lấy bù

Ta sử dụng lệnh INV để nhận được phần bù 1 nhị phân của thông số IN. Phần bù 1 được thực hiện bằng cách đảo ngược giá trị bỉt của thông số IN (thay đổi mỗi giá trị 0 thành 1 và mỗi giá trị 1 thành 0). ENO luôn luôn là TRUE theo sự thực thi của lệnh này.

Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đon thả xuống.

Các lệnh mã hóa và giải mã

Lệnh ENCO mã hóa một mẫu bỉt thảnh một số nhị phân.

Lệnh DECO giải mã một số nhị phần thành một mẫu bit.

Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đom thả xuống.

Lệnh ENCO mã hóa một mẫu bỉt thảnh một số nhị phân.

Lệnh DECO giải mã một số nhị phần thành một mẫu bit.

Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đom thả xuống.

Lệnh ENCO chuyển đổi thông số IN thành một số nhị phân tưomg ứng với vị trí bỉt của bỉt đặt có trọng số nhỏ nhất trong thông số IN và trả kết quả đến thông số OUT. Nếu thông số IN là 0000 0001 hay 0000 0000 thì sau đó giá trị 0 được trả về đến OUT. Nếu thông số IN là 0000 0000 thì ENO được đặt là FALSE.

Lệnh DECO giải mã một số nhị phân từ thông số IN, bằng cách đặt vị trí bit tưomg ứng trong thông số OUT lên giá trị 1 (tất cả các bit khác được đặt về 0). ENO luôn luôn là TRUE theo sự thực thi của lệnh DECO.

Sự lựa chọn kiểu dữ liệu cho thông số OUT của DECO gồm Byte, Word hay DWord làm giới hạn phạm vi hữu dụng của thông số IN. Neu giá trị của thông số IN vượt quá phạm vi hữu dụng này, một phép toán modulo được thực hiện để tách ra các bỉt có trọng số nhỏ nhất được liệt kê dưới đây:

Phạm vi thông số IN của lệnh DECO:

  •  IN 3 bit (các giá trị từ 0 đến 7) được sử dụng để đặt vị trí 1 bit trong một OUT kiểu Byte.
  • IN 4 bit (các giá trị từ 0 đến 15) được sử dụng để đặt vị trí 1 bỉt trong một OUT kiểu Word.
  • IN 5 bit (các giá trị từ 0 đến 31) được sử dụng để đặt vị trí 1 bỉt trong một OUT kiểu DWord.

Các lệnh lựa chọn và chọn kênh

Lệnh SEL gán một trong hai giá trị ngõ vào đến thông số OUT, phụ thuộc vào giá trị thông số G.

Lệnh MUX gán một trong nhiều giá trị các ngõ vào đến thông số OUT, phụ thuộc vào giá trị thông số K. Nếu giá trị thông số K vượt quá phạm vi họp lệ, giá trị thông số ELSE sẽ được gán đến thông số OUT.

Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.

Các biến số ngõ vào và biến số ngõ ra phải có kiểu dữ liệu giống nhau.

  • Lệnh SEL luôn luôn lựa chọn giữa 2 giá trị IN.
  • Lệnh MUX có hai thông số IN khi được đặt lần đầu tiên trong trình soạn thảo chương trình, nhưng nó có thể được mở rộng để thêm vào nhiều thông số IN.

Sử dụng các phương pháp sau đây để thêm vào hay loại ra các thông số ngõ vào cho lệnh MUX:

  • Để thêm vào một ngõ vào, nhấp chuột phải lên một nhánh cụt ngõ vào đối với một trong các thông số IN đang tồn tại và chọn lệnh “Insert input”.
  • Đe loại ra một ngõ vào, nhấp chuột phải lên một nhánh cụt ngõ vào đối với một trong các thông số IN đang tồn tại (khi có nhiều hơn hai ngõ vào so với nguyên bản) và chọn lệnh “Delete”.

Các mã điều kiện: ENO luôn luôn là TRUE theo sự thực thi của lệnh SEL.

5.1.10    Dịch chuyển và xoay.

Lệnh dịch chuyển

Ta sử dụng các lệnh dịch chuyển để dịch chuyển mẫu bit của thông số IN. Kết quả được gánđến thông số OUT. Thông số N xác định số lượng của các vị trí bỉt được dịch chuyển.

  • SHR: dịch chuyển mẫu bỉt sang phải
  • SHL: dịch chuyển mẫu bit sang trái

Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ danh sách thả xuống.

Với N = 0, không có dịch chuyển xuất hiện và giá trị IN được gán đến OUT.

  • Các số 0 được dịch chuyển vào trong các vị trí bit được xóa rỗng bởi phép dịch chuyển.
  • Nếu số lượng các vị trí để dịch chuyển (N) vượt quá số lượng các bit trong giá trị gốc (8 đối với Byte, 16 đối vói Word và 32 đối với DWord), tất cả các giá trị bit ban đầu sau đó sẽ được dịch chuyển ra ngoài và được thay thế bằng những số 0 (tức là số 0 được gán đến OUT).
  • ENO luôn luôn là TRUE đối với các phép dịch chuyển.

Với N = 0, không có dịch chuyển xuất hiện và giá trị IN được gán đến OUT.

  • Các số 0 được dịch chuyển vào trong các vị trí bit được xóa rỗng bởi phép dịch chuyển.
  • Nếu số lượng các vị trí để dịch chuyển (N) vượt quá số lượng các bit trong giá trị gốc (8 đối với Byte, 16 đối vói Word và 32 đối với DWord), tất cả các giá trị bit ban đầu sau đó sẽ được dịch chuyển ra ngoài và được thay thế bằng những số 0 (tức là số 0 được gán đến OUT).
  • ENO luôn luôn là TRUE đối với các phép dịch chuyển.

Lệnh xoay

Ta sử dụng các lệnh xoay để xoay mẫu bỉt của thông số IN. Kết quả được gán đến thông số OUT. Thông số N xác định số lượng của các vị trí bỉt được xoay.

  • ROR: xoay mẫu bỉt sang phải
  • ROL: xoay mẫu bit sang trái

Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đon thả xuống

Với N = 0, không có phép xoay này xuất hiện và giá trị IN được gán đến OUT.

  • Dữ liệu bit được xoay ra ngoài một bên của giá trị gốc sẽ được xoay vào trong phía bên kia của giá trị gốc đó, vì vậy không có các giá trị bit nào bị mất đi.
  • Nếu số lượng của các vị trí bit để xoay (N) vượt quá số lượng của các bit trong giá trị gốc (8 đối vói Byte, 16 đối vói Word và 32 đối với DWord), phép xoay sau đó vẫn được thực hiện.
ENO luôn luôn là TRUE theo sự thực thi của các lệnh xoay.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Giỏ Hàng Item Removed. Undo
  • No products in the cart.