PLC S7 200_Bài 14: Các phép toán cơ bản trong điều khiển số

Các phép toán cơ bản trong điều khiển số

Các hệ thống điều khiển logic trong thực tế xử lý với các dữ liệu nhị phân. Đặc điểm của các máy tính điều khiển hiện nay là xử lý dữ liệu, chất lượng điều khiển, v.v… ngày càng tăng với bộ xử lý dữ liệu số sử dụng PLC.

Các biến quá trình số có thể được tìm thấy trong tất cả lĩnh vực của điều vòng hở như trong các thiết bị được kết nối cho hoạt động quá trình và giám sát hoặc trong điều khiển của các thiết bị trường. Mục đích của giám sát quá trình là cung cấp thông tin về máy móc hoặc hệ thống hoạt động nhanh chóng, ngắn gọn và rõ ràng theo từng phút, cũng như sự đúng lúc để can thiệp, điều khiển và tác động đến quá trình.

Trong hầu hết các điều khiển đơn giản trước đây, các thiết bị vào ra như màn hiển thị 7-đoạn và các nút nhấn xoay số được sử dụng để hiển thị và nhập giá trị số. Ngày nay các thiết bị thao tác và giám sát „thông minh“ thường được kết nối với PLC.

Ngày nay các thiết bị xử lý, thu thập dữ liệu và điều khiển quá trình được cung cấp trực tiếp với các biến số thông qua hệ thống bus trường. Việc kết nối các thiết bị trường, như biến tần hay hệ thống cân, sử dụng các module vào ra analog càng ngày càng không được sử dụng nữa.

Tuỳ thuộc vào kiểu thiết bị được kết nối, nhiều dạng số khác nhau để mã hóa dữ liệu được sử dụng để truyền dữ liệu giữa thiết bị và PLC, cũng như để lưu trữ và xử lý dữ liệu trong PLC.

14.1   Các dạng số trong PLC

14.1.1    Kiểu dữ liệu Integer (INT)

Giá trị kiểu dữ liệu Integer hoàn toàn là giá trị số không có dấu chấm thập phân. S7-200 lưu trữ giá trị dữ liệu kiểu Integer có dấu ở mã 16 bit. Phạm vi của số integer là -32768 đến +32767.

STEP 7 sử dụng dạng hiển thị Decimal (không phải BCD) để xác định  các hằng số của kiểu dữ liệu Integer. Nó cũng được mô tả ở dạng có dấu và không dấu. Theo nguyên lý thì có thể sử dụng các giá trị integer hằng số biểu diễn ở dạng Binary và Hexadecimal, nhưng vì không rõ ràng, nên chúng không còn phù hợp nữa. Vì lý do này, cú pháp của STEP7 chỉ cung cấp giá trị của integer biểu diễn ở decimal.

Ví dụBiểu diễn số +662 và -662

Trong hệ thống máy tính số, tất cả các giá trị được lưu trữ ở dạng mã binary. Chỉ các số 0 và 1 được sử dụng trong hệ thống số nhị phân. Cơ số 2 của hệ thống số này là kết quả từ số của các số có giá trị. Giá trị của mỗi vị trí của số nhị phân là kết quả của lũy thừa của cơ số 2. Nó được biểu diễn ở dạng 2#…. .

Giá trị số âm là sự biểu diễn các số nhị phân ở dạng bù hai. Trong dạng biểu diễn này, bit có trọng số lớn nhất (most significant bit) (bit số 15 cho kiểu dữ liệu Integer) có giá trị – 215. Vì giá trị này lớn hơn tổng của tất cả các giá trị còn lại, nên bit này được làm bit thông tin dấu. Nếu bit = 0, thì giá trị dương; nếu bit = 1, thì giá trị là âm. Việc chuyển đổi giữa các số nhị phân thành số decimal được thực hiện bằng cách cộng các giá trị của các vị trí có bit = 1. (xem ví dụ).

Trong hệ thống máy tính số, tất cả các giá trị được lưu trữ ở dạng mã binary. Chỉ các số 0 và 1 được sử dụng trong hệ thống số nhị phân. Cơ số 2 của hệ thống số này là kết quả từ số của các số có giá trị. Giá trị của mỗi vị trí của số nhị phân là kết quả của lũy thừa của cơ số 2. Nó được biểu diễn ở dạng 2#…. .

Hệ thống số hexadecimal cung cấp 16 chữ số khác nhau (0 đến 9 và A đến F). Đây là hệ thống số theo cơ số 16. Do đó, giá trị mỗi vị trí của số hexadecimal có kết quả từ lũy thừa của cơ số 16.

Các số Hexadecimal được xác định với dạng 16#. Các chữ số A đến F biểu diễn theo giá trị số decimal 10 đến 15. Giá trị 15 là giá trị cuối cùng có thể được mã hóa nhị phân của 4 bit không dấu. 4 bit nhị phân tạo thành một số của số hexadecimal.

Hằng số trong dạng số Hexadecimal không được sử dụng cho các giá trị số integer.

14.1.2    Kiểu dữ liệu Double Integer (DINT)

S7-200 lưu giá trị kiểu dữ liệu Double Integer với mã 32 bit có dấu. Phạm vi giá trị kiểu double Integer từ -2147483648 đến +2147483647.

S7-200 sử dụng số decimal (không phải BCD) để xác định một hằng số kiểu dữ liệu Double Integer.

Ví dụ: Biểu diễn số +540809 và – 540809

14.1.3    Kiểu dữ liệu số thực (REAL)

Các kiểu dữ liệu INT và DINT được mô tả trước được sử dụng để lưu toàn bộ các giá trị số có dấu. Do đó, chỉ có các phép toán được cung cấp các giá trị số nguyên mới có thể thực hiện được.

Trong trường hợp các biến là analog như điện áp, dòng điện, và nhiệt độ thì các giá trị thực trở nên cần thiết. Để trình diễn các giá trị thập phân, các số nhị phân phải được định nghĩa là giá trị của nó nhỏ hơn 1 (lũy thừa của cơ số 2 với số mũ âm).

Để biểu diễn số thực S7-200 sử dụng double word (32 bit).Trong mã nhị phân của số thực, một phần của các chữ số nhị phân sử dụng cho phần thập phân, phần còn lại là để biểu diễn số mũ và dấu của số thực.

Phạm vi biểu diễn của số thực từ -1.175495•10-38 đến 3.402823•10+38

Khi sử dụng các giá trị của số thực, ta không cần phải xác định định dạng của nó. Khi nhập vào một hằng số là số thực thì ta bắt buộc phải nhập có thành phần thập phân cho dù phần thập là số 0, ví dụ 20.0.

Số thực được sử dụng để „xử lý giá trị analog„. Ưu điểm lớn của số thực là các phép toán được sử dụng với nó. Các phép toán này bao gồm: cộng, trừ, nhân, chia cũng như các lệnh sin, cos, exp, ln, v.v…, được sử dụng chính trong các thuật giải điều khiển vòng kín (closed-loop control algorithms).

Dạng tổng quát của số Real = (dấu) • (1.f) • (2e-127) với f: phần thập phân.

Ví dụ: Biểu diễn số 0.75

14.1.4    Kiểu dữ liệu số BCD (Binary Coded Decimal)

Trước đây, để liệt kê và mô tả các số nguyên được thực hiện đơn giản với các nút nhấn số dạng xoay vòng và bộ chỉ thị số. Các nút nhấn số và hiển thị số này được kết nối với các module vào và ra số của PLC.

Mỗi chữ số của số decimal được mã hóa ở bốn bit. Vì chữ số cao nhất của decimmal là 9 nên bốn bit được sử dụng và có mã nhị phân tương ứng cho các chữ số decimal như sau:

Để các số âm cũng có thể được xác định bằng nút nhấn số xoay vòng  mã BCD, thì S7-200 mã hóa dấu trong bit có trọng số cao nhất (most significant bit). Bit dấu = 0 để chỉ số dương. Bit dấu = 1 chỉ thị số âm. S7-200 chấp nhận các số BCD mã 16-bit (dấu + 3 digits) và mã 32-bit (dấu + 7 digits). Phạm vi biểu diễn của số BCD 16 bit từ – 999 đến + 999, phạm vi biểu diễn của số BCD 32 bit từ -9999999 đến + 9999999.

Không có định dạng dữ liệu cho việc xác định các giá trị theo mã BCD trong S7-200. Tuy nhiên ta có thể xác định số decimal với mã BCD được cho ở số HEX. Mã nhị phân của số HEX và số decimal mã BCD thì giống nhau.

Ví dụ: Biểu diễn số 662 ở BCD 16 bit và BCD 32 bit

14.2    Chức năng sao chép

    Với chức năng sao chép, nội dung của một vùng này sẽ được sao chép đến một vùng khác trong bộ nhớ. Việc trao đổi hay sao chép nội dung có thể thực hiện với một byte, một word, một double word hay một giá trị số hoặc  một mảng lớn dữ liệu từ vùng này sang vùng khác trong bộ nhớ.

  14.2.1   Các lệnh sao chép, trao đổi nội dung

Để sao chép các dữ liệu kiểu byte, word, double word kể cả số thực (real) từ nơi này đến nơi khác ta sử dụng lệnh Move.

Trong một số trường hợp cần tráo đổi nội dung của một byte (byte thấp và byte cao) trong một word ta sử dụng lệnh Swap.

Cú pháp của các lệnh ở STL như sau:

  • Lệnh MOVB IN,OUT: Lệnh Move Byte (MOVB) thực hiện sao chép nội

dung của byte IN sang byte OUT.

  • Lệnh MOVW IN,OUT: Lệnh Move Word (MOVW) thực hiện sao chép nội

dung của word IN sang word OUT

  • Lệnh MOVD IN,OUT: Lệnh Move Double Word (MOVD) thực hiện sao

chép nội dung của double word IN sang double word OUT.

  • Lệnh MOVR IN,OUT: Lệnh Move Real (MOVR) thực hiện sao chép nội

dung của một số thực IN sang số thực OUT.

  • Lệnh SWAP IN:            Lệnh Swap Byte (Swap) thực hiện tráo đổi nội

dung của byte thấp và byte cao trong word IN.

Cú pháp của các lệnh MOVE ở LAD và FBD có cấu trúc chung như sau:

  • OUT: Vị trí của nơi cần sao chép đến, có thể là byte, word, double word hoặc real tùy theo là B, W, D hay R.
  • EN:         Là ngõ vào bit. Cho phép thực hiện lệnh được viết ở LAD hoặc FBD. Trường hợp không cần thiết có điều kiện ở ngõ vào EN thì phải sử dụng SM0.0.
  • ENO: Ngõ ra bit. Cho phép kết nối song song hoặc nối tiếp với các hộp khác. Nếu phép toán xử lý không có lỗi thì EN=ENO.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0, Byte có nội dung cần sao chép đặt ở ngõ IN và byte chứa đựng thông tin sao chép chứa ở OUT.

Ví dụ: Copy ô nhớ số thực ở VD50 vào ô nhớ số thực VD60 khi M1.0 tích cực. Chương trình được viết như sau:

nhớ SM0.0, word cần tráo đổi nội dung giữa byte thấp và byte cao đặt ở ngõ IN.

Ví dụ: Ô nhớ VW40 có giá trị được biểu diễn ở số Hex là CAFE. Giá trị này sẽ được đảo lại thành FECA khi ngõ vào I2.0 được kích họat. Chương trình  được viết như sau:

14.2.2    Các lệnh sao chép một mảng lớn dữ liệu

Để sao chép một mảng lớn dữ liệu từ nơi này đến nơi khác ta sử dụng lệnh Block Move. Lệnh sao chép một mảng lớn cho phép thực hiện với Byte, Word và Double Word.

Cú pháp của các lệnh ở STL như sau:

  • Lệnh BMB IN,OUT,N: Lệnh Block Move Byte (BMB) sao chép nội dung của

một mảng Byte. Số lượng byte được sao chép xác định bởi N có kiểu byte. Do đó có thể sao chép tối đa là 255 byte. Byte đầu tiên của mảng được xác định ở ngõ IN (kiểu byte). Nơi đến được xác định với byte đầu tiên của mảng ở ngõ OUT.

  • Lệnh BMW IN,OUT,N: Tương tự như lệnh BMB, lệnh Block Move Word

(BMW) sao chép nội dung của một mảng word. Số lượng word được sao chép xác định bởi N có kiểu byte. Do đó có thể sao chép tối đa là 255 word. Word đầu tiên của mảng được xác định ở ngõ IN (kiểu word). Nơi đến được xác định với word đầu tiên của mảng ở ngõ OUT.

  • Lệnh BMD IN,OUT,N: Tương tự như lệnh BMB, lệnh Block Move Double

Word (BMD) sao chép nội dung của một mảng Double Word. Số lượng Double word được sao chép xác định bởi N có kiểu byte. Do đó có thể sao chép tối đa là 255 Double word. Double Word đầu tiên của mảng được xác định ở ngõ IN (kiểu Double word). Nơi đến được xác định với Double word đầu tiên của mảng ở ngõ OUT.

Cú pháp của các lệnh ở LAD và FBD có cấu trúc tổng quát như sau:

14.3    Phép toán so sánh

Với chức năng so sánh, giá trị của hai toán hạng của cùng kiểu dữ liệu sẽ được so sánh vớ i nhau. Kết quả của so sánh là một giá trị logic, nếu đúng theo chức năng so sánh thì kết quả logic là “1”, còn nếu sai kết quả logic là “0”. Tùy thuộc vào loại CPU của họ S7-200 mà có thể có ít hoặc nhiều chức năng so sánh.

Các chức năng so sánh đối CPU 22x có thể là:

Khi so sánh giá trị Byte (B) thì không cần phải để ý đến dấu của toán hạng, ngược lại khi so sánh là các số Int (I), Dint (D), Real (R) thì phải chú ý đến dấu của tóan hạng.  Cú pháp tổng quát cho phép tóan so sánh ở LAD là:

Vớ i:

X: là phép so sánh. Nó có thể là:

+ So sánh byte: >B, >=B, ==B, <>B, <B, <=B

+ So sánh số Int: >I, >=I, ==I, <>I, <I, <=I

+ So sánh số Dint: >D, >=D, ==D, <>D, <D, <=D

+ So sánh số Real: >R, >=R, ==R, <>R, <R, <=R

+ n1: Giá trị cần được so sánh (giá trị chưa biết).

+ n2: Giá trị so sánh (giá trị đã biết).

Đối với ngôn ngữ LAD và FBD, khi kết quả so sánh là đúng, thì lệnh so sánh sẽ đặt tiếp điểm (LAD) hoặc ngõ ra (FBD) ở trạng thái “ON”.

Đối với ngôn ngữ STL, khi kết quả so sánh là đúng thì lệnh so sánh Load, AND, hoặc OR giá trị 1 với giá trị ở đỉnh của ngăn xếp.

Để lấy các lệnh so sánh ở màn hình soạn thảo LAD, ta nhấp chuột vào dấu (+) ở biểu tượng  trong cây lệnh. Sau đó trỏ chuột vào một trong các lệnh cần lấy, giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập giá trị chưa biết theo lệnh cần so sánh (byte, word, double word) vào vị trí các dấu chấm hỏi nằm trên lệnh. Nhập giá trị đã biết (thường là các con số) hoặc giá trị được chứa trong các ô nhớ byte, word, double word vào vị trí các dấu chấm hỏi nằm dưới lệnh.

Ví dụ 14.2: Giới hạn giá trị.

Viết một chương trình thực hiện nhiệm vụ sau: Nếu giá trị ở MW20 nằm trong phạm vi (50;500) thì sẽ cho phép xuất giá trị ra ở ngõ ra MW22. Nếu giá trị ở MW20 lớn hơn giá trị 500 thì ngõ ra số MW22 là giá trị 500 và đèn báo giá trị max sáng. Nếu giá trị ở MW20 nhỏ hơn giá trị 50 thì ngõ ra số MW22 là giá trị 50 và đèn báo giá trị min sáng. Chú ý các ngõ vào ra số là Int. Giải:

14.4    Phép toán số học

Ở nhiều nhiệm vụ đếm như đếm sản phẩm, đếm số vòng quay, đếm xung .v.v… thì kết quả đếm phải được giám sát. Bên cạnh các phép tóan so sánh đã biết cần phải có thêm các phép toán số học như cộng, trừ, nhân, chia. Còn các phép toán khác như sin, cos, tan, PID …. sẽ được khảo sát ở tập 2 của bộ sách kỹ thuật điều khiển lập trình PLC SIMATIC S7-200.

14.4.1. Cộng và trừ

Các phép tóan cộng và trừ có thể thực hiện được đối với các số Integer (16 bit), Double integer (32 bit) và số thực (32 bit). Tùy thuộc vào phép tóan là cộng hoặc trừ dạng số nào mà kết quả thu được sẽ ở dạng số đó.

Khi có lỗ i do tràn hoặc giá trị không hợp lệ thì bit SM1.1 được set lên mức logic „1“.    Cú pháp lệnh biểu diễn cho phép toán cộng và trừ như sau:

14.4.2.     Nhân và chia

Các phép tóan nhân và chia có thể thực hiện được đối với các số Integer (16 bit), Double integer (32 bit) và số thực (32 bit). Tùy thuộc vào phép tóan là nhân hoặc chia dạng số nào mà kết quả thu được sẽ ở dạng số đó.

Khi có lỗ i do tràn hoặc giá trị không hợp lệ thì bit SM1.1 được set lên mức logic „1“. Nếu kết quả là zero thì SM1.0 =”1”, kết quả âm thì SM1.2 =”1”, và SM1.3 =”1” nếu chia cho 0.  Cú pháp lệnh biểu diễn cho phép toán nhân và chia như sau:

14.4.3. Ví dụ phép toán số học

Ví dụ 14.3: Đếm sản phẩm

Sản phẩm trên một băng tải được nhận biết bở i cảm biến S1. Tổng số lượng sản phẩm đếm được chứa trong MD20. Cứ 10 sản phẩm sẽ được đóng thành mộ t thùng và số lượng thùng được chứa trong MD24. Số lượng sản phẩm có thể bị xóa bằng nút nhấn S2.

14.5    Tăng và giảm thanh ghi

Tăng và giảm là mộ t hình thức khác của quá trình đếm. Lệnh tăng hoặc giảm cộng 1 với ngõ vào hoặc lấy ngõ vào trừ 1 và kết quả được đưa ra ngõ ra.  L ệ nh tăng hoặc giảm thực hiện được với byte, word và double word.

Biểu diễn tổng quát ở LAD: với xxx_y có thể là:

• INC_B (tăng byte), INC_W (tăng word), INC_DW (tăng double word).

• DEC_B (giảm byte), DEC_W (giảm word), DEC_DW (giảm double word).

Ý nghĩa:  

Tăng: IN + 1 = OUT

* Giảm: IN -1 = OUT

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần tăng hoặc giảm ngõ IN.  Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

Ví dụ 14.4: Hãy viết một chương trình con cho khâu tăng giảm tốc độ động cơ trên màn hình điều khiển TP170micro để khi ấn phím (+) thì tốc độ động cơ tăng dần lên, còn khi ấn phím (-) thì tốc độ động cơ giảm dần xuống.

Nhằm giúp cho bạn đọc dễ hiểu, cứ mỗ i lần ấn mộ t phím (+) hoặc phím (-) thì tốc độ động cơ tăng hoặc giảm đi một vòng quay. Ở đây có thể có nhiều phương pháp nhưng chỉ giới hạn kiến thức cơ bản trong quyển sách, còn các kiến thức nâng cao xin bạn đọc tập 2.

14.6. Các phép tóan logic số

14.6.1 Các logic số trong S7-200

Phép toán logic số sẽ thực hiện theo từng bit của hai tóan hạng số tương ứng hay một tóan hạng số với một hằng số. Các phép logic số có thể liệt kê ở bảng sau:

Các lệnh logic số là:

* Lệnh đảo byte (INVB), đảo word (INVW), đảo double word (INVD) sẽ đảo các bit ở ngõ vào IN và kết quả được đưa ra ngõ OUT.

  • Lệnh AND Byte (ANDB), AND Word (ANDW), và AND Double Word (ANDD) thực hiện AND các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được đưa ra OUT.
  • Lệnh OR Byte (ORB), OR Word (ORW), và OR Double Word (ORD) thực hiện OR các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được đưa ra OUT.
  • Lệnh XOR Byte (XORB), XOR Word (XORW), và XOR Double Word (XORD) thực hiện XOR các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được đưa ra OUT.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần tăng hoặc giảm ngõ IN. Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

14.6.2.      Ứng dụng
14.6.2.1    Che vị trí các bit

Một ứng dụng của phép tóan AND số là che vị trí bit. Để làm ẩn đi những vị trí bit không cần thiết hoặc không muốn xuất hiện thì ta sử dụng mặt nạ, ở những vị trí bit cần thiết ta cho giá trị “1“ và làm ẩn những bit không cần thiết bằng cách cho bit tương ứng giá trị „0“. Ví dụ ta cần lấy 4 bit cuối cùng của VW100 thì ta sẽ OR VW100 với mặt nạ sau: 0000 0000 0000 1111 và kết quả được chứa vào VW200.

Chương trình:

14.6.2.2 Chèn thêm bit

Một ứng dụng của phép tóan OR số là chèn bit. Muốn cho bit nào trong thanh ghi lên mức “1” thì ta sẽ OR ở bit tương ứng với giá trị 1. Ví dụ ta muốn 4 bit cuối của VW100 có giá trị „1“ thì ta sẽ OR nó với giá trị sau: 0000 0000 0000 1111.

Chương trình:

14.7     Chức năng dịch/quay thanh ghi

14.7.1   Chức năng dịch chuyển thanh ghi

Với chức năng dịch chuyển thanh ghi, các bit của biến sẽ được dịch về bên phải hay bên trái theo một giá trị xác định. Tùy theo việc dịch chuyển thanh ghi là 1 Byte, 1 word hay 1 double word mà giá trị dịch có thể tối đa là 8, 16 hay 32.

Nếu có thực hiện phép toán dịch (khác 0) thì nội dung của bit sau cùng thoát ra khỏi thanh ghi được chứa trong ô nhớ SM1.1. Còn nếu sau khi thực hiện phép dịch mà kết quả thu được của các thanh ghi là 0 thì ô nhớ SM1.0 được hệ điều hành đặt giá trị là 1.

Trong PLC họ S7-200, ngoài ngôn ngữ được biểu diễn theo chuẩn IEC 1131-3, còn có ngôn ngữ được biểu diễn theo chuẩn của hãng sản xuất (Siemens). Các lệnh dịch chuyển thanh ghi được cho như sau:

  • Ở phép toán dịch trái, cho phép dịch byte, word và double word. Cú pháp chung biểu diễn ỏ LAD là:

* EN, ENO: Xem mục 14.2.1

Cú pháp chung biểu diễn ỏ STL là:

  • Dịch trái byte:             SLB OUT, N
  • Dịch trái word:             SLW OUT, N
  • Dịch trái double word: SLD OUT, N

Chú ý: Ở STL, thì kết quả sau phép dịch trái sẽ được chứa vào chính thanh ghi cần dịch.

Ví dụ: Khi bit M10.0 từ “0”‡ “1” thì yêu cầu dịch trái byte VB10 đi 3 vị trí, kết quả chứa vào VB10.

  • Ở phép toán dịch phải, cho phép dịch byte, word và double word.
  • Cú pháp chung biểu diễn ỏ LAD là:

*   N: Số lượng bit cần dịch phải.

                                                   Tùy theo dịch byte, word hay double word mà N có giá trị max là 8, 16, 32.

                                          *  EN, ENO: Xem mục 14.2.1

Cú pháp chung biểu diễn ỏ STL là:

  • Dịch phải byte:                                SRB   OUT, N
  • Dịch phải word:                                SRW  OUT, N
  • Dịch phải double word:                    SRD OUT, N

Chú ý: Ở STL, thì kết quả sau phép dịch phải sẽ được chứa vào chính thanh ghi cần dịch.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần dịch ở ngõ IN. Số bit cần dịch ở ngõ N. Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

14.7.2    Chức năng quay thanh ghi

Với chức năng quay thanh ghi, các bit của biến (byte, word, double word) sẽ được đẩy vòng tròn sang phải hay sang trái theo một giá trị xác định. Tại mỗi một lần quay, giá trị logic của bit bị đẩy ra khỏi đầu này cũng là giá trị logic được đưa vào đầu kia của biến.

Lệnh quay sẽ không thực hiện được nếu như số đếm lần quay có giá trị bằng 0 hay là bằng bội số của 8 đối với quay byte, 16 đối với word hay 32 đối với double word.

Đối với các giá trị khác của số đếm lần quay lớn hơn 8 (đối với byte), lớn hơn 16 (đối với word) hoặc 32 (đối với double word), thì lệnh sẽ thực hiện với số đếm lần quay mới bằng phần dư của số lần quay cũ chia cho 8, 16 hoặc chia cho 32.

Nếu có thực hiện phép toán quay (khác 0) thì nội dung của bit sau cùng thoát ra khỏi thanh ghi được chứa vào ô nhớ SM1.1. Còn nếu sau khi thực hiện phép quay mà kết quả thu được của các thanh ghi là 0 thì ô nhớ SM1.0 được hệ điều hành đặt giá trị là 1.

Trong PLC họ S7-200, ngoài ngôn ngữ được biểu diễn theo chuẩn IEC 1131-3, còn có ngôn ngữ được biểu diễn theo chuẩn của hãng sản xuất (Siemens). Các lệnh quay thanh ghi được cho như sau:

  • Ở phép toán quay trái, cho phép quay byte, word và double word. Cú pháp chung biểu diễn ỏ LAD là:

Với: 

  • x: Có thể là B (Byte), W (Word), DW (Double word).
  • IN: Thanh ghi cần quay trái có thể Byte, Word hoặc Double word.
  • OUT: Nơi lưu trữ giá trị sau khi quay trái. có thể Byte, Word hoặc Double word.
  • N: Số lượng bit cần quay trái.
  • EN, ENO: Xem mục 14.2.1

Cú pháp chung biểu diễn ỏ STL là:

  • Quay trái byte:                        RLB   OUT, N
  • Quay trái word:                        RLW  OUT, N
  • Quay trái double word:            RLD OUT, N

Chú ý: Ở STL, thì kết quả sau phép quay trái sẽ được chứa vào chính thanh ghi cần quay.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần quay ở ngõ IN. Số bit cần quay ở ngõ N. Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

14.7.2.2    Quay phải

Tương tự như ở phép toán quay trái, ở phép toán quay phải cho phép quay byte, word và double word.

Cú pháp chung biểu diễn ỏ LAD là:

Với:    

  • x: Có thể là B (Byte), W (Word), DW (Double word).
  • IN: Thanh ghi cần quay phải có thể Byte, Word hoặc Double word.
  • OUT: Nơi lưu trữ giá trị sau khi quay phải. có thể Byte, Word hoặc Double word.
  • N: Số lượng bit cần quay phải.
  • EN, ENO: Xem mục 14.2.1 Cú pháp chung biểu diễn ỏ STL là:
  • Quay phải byte:                       RLB   OUT, N
  • Quay phải word:                      RLW  OUT, N
  • Quay phải double word:           RLD OUT, N

Chú ý: Ở STL, thì kết quả sau phép quay phải sẽ được chứa vào chính thanh ghi cần quay.

Trả lời

Email của bạn sẽ không được hiển thị công khai.

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