1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

thiết bị lập trình , chương 10

26 234 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết bị lập trình, chương 10
Năm xuất bản 2007
Định dạng
Số trang 26
Dung lượng 293,78 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tập lệnh liên quan đến Byte, word, Double word 1/ Xử lý toán học, tăng giảm thanh ghi 2/ Tập lệnh lôgíc với Byte, Word, Double Word 3/ Tập lệnh dịch chuyển nội dung thanh ghi, ô nhớ 4/ T

Trang 1

Tập lệnh liên quan đến Byte,

word, Double word

1/ Xử lý toán học, tăng giảm thanh ghi

2/ Tập lệnh lôgíc với Byte, Word, Double Word

3/ Tập lệnh dịch chuyển nội dung thanh ghi, ô nhớ

4/ Tập lệnh xoay và lật thanh ghi

5/ Tập lệnh so sánh nội dung thanh ghi, ô nhớ

6/ Tập lệnh chuyển đổi kiểu dữ liệu

Trang 2

Nhãm lÖnh to¸n häc:

ADD_I: LÖnh céng sè nguyªn 16 bÝt ADD_DI: LÖnh céng sè nguyªn 32 bÝt ADD_R: LÖnh céng sè thùc

Thao t¸c: IN1 + IN2 → OUT

SUB_I: LÖnh trõ sè nguyªn 16 bÝt SUB_DI: LÖnh trõ sè nguyªn 32 bÝt SUB_R: LÖnh trõ sè thùc

Thao t¸c: IN1 - IN2 → OUT

MUL_I: LÖnh nh©n sè nguyªn 16 bÝt MUL_DI: LÖnh nh©n sè nguyªn 32 bÝt MUL_R: LÖnh nh©n sè thùc

Thao t¸c: IN1 * IN2 → OUT

DIV_I: LÖnh chia sè nguyªn 16 bÝt

DIV_DI: LÖnh chia sè nguyªn 32 bÝt

DIV_R: LÖnh chia sè thùc

Thao t¸c: IN1 / IN2 → OUT

Thao t¸c (+): IN1 + OUT → OUTThao t¸c (-): OUT - IN1 → OUTThao t¸c (*): IN1 * OUT → OUTThao t¸c (/): OUT / IN1 → OUT

Trang 3

*R AC1, VD100/R VD10, VD200

PhÐp céng:

PhÐp nh©n:

PhÐp chia:

Trang 4

Nh©n, chia cã sè dư:

MUL: LÖnh nh©n DIV: LÖnh chia

Thao t¸c: IN1 * IN2 → OUTThao t¸c: IN1 / IN2 → OUT

Thao t¸c: IN1 * OUT → OUTThao t¸c: OUT / IN1 → OUT

Chó ý: KÕt qu¶ phÐp nh©n lµ sè nguyªn 32 bÝt

§èi víi phÐp chia sè nguyªn, phÇn dư ®ưîc lưu l¹i

PhÐp nh©n:

Trang 5

Nhãm lÖnh l−îng gi¸c, khai c¨n, e mò:

SIN(IN) = OUTCOS(IN) = OUTTAN(IN) = OUTLN(IN) = OUTEXP(IN) = OUTSQRT(IN) = OUT

§Ó thùc hiÖn hµm xy:EXP(Y*LN(X))

Nhãm lÖnh t¨ng vµ gi¶m néi dung « nhí:

T¨ng: IN + 1 = OUT

Gi¶m: IN - 1 = OUT

T¨ng: OUT + 1 = OUTGi¶m: OUT - 1 = OUT

Trang 6

Chú ý:

Lệnh tăng (INC_B) và giảm (DEC_B) là

loại lệnh không dấu.

Lệnh tăng (INC_W) và giảm (DEC_W) là

loại lệnh có dấu (bít dấu có ảnh hưởng đến

kết quả) 16#7FFF > 16#8000.

Lệnh tăng (INC_D) và giảm (DEC_D) là

loại lệnh có dấu (bít dấu có ảnh hưởng đến

kết quả) 16#7FFFFFFF > 16#80000000.

SM1.2: cờ âm (đối với W và D)

Tập lệnh với byte, word, double word

‹Nhóm lệnh đảo nội dung thanh ghi, tác động

lên 1 cờ nhớ:

SM1.0: Cờ không

‹Nhóm lệnh AND, OR, XOR:

SM1.0: Cờ không

Trang 7

Nhóm lệnh đảo nội dung thanh ghi:

INV_B: Đảo nội dung 1 byte INV_W: Đảo nội dung 1 word INV_DW: Đảo nội dung 1

double word

Thao tác: ~IN = OUT

Lệnh nghịch đảo trên từngbít của đối số:

IN: 00110101OUT: 11001010

Thao tác: ~OUT = OUT

Nhóm lệnh AND, OR, XOR:

Thao tác:

WAND: IN1 IN2 = OUT

WOR: IN1 IN2 = OUT

WXOR: IN1 IN2 = OUT

&

=

Trang 8

Nhãm lÖnh dÞch chuyÓn thanh ghi, « nhí

‹Nhãm lÖnh dÞch chuyÓn

‹Nhãm lÖnh dÞch chuyÓn khèi

Trang 9

Nhóm lệnh dịch chuyển:

Thao tác: IN → OUT

„ Lệnh sao chép nội dung vùng nhớ IN sang vị trí vùngnhớ mới OUT

„ Nội dung của IN không

bị thay đổi sau lệnh dịchchuyển

Nhóm lệnh dịch chuyển khối:

Thao tác: IN → OUT

„ N: Số l−ợng dữ liệu cầnsao chép, N = 1- 255

„ Lệnh sao chép mộtmảng dữ liệu, kể từ địa chỉ

đặt trong IN

Trang 10

Ví dụ:

Kết quả thao tác:

Nhóm lệnh xoay và lật thanh ghi

‹Nhóm lệnh lật phải, lật trái, xoay phải, xoay

trái

Lệnh tác động lên 2 cờ nhớ

SM1.0: Cờ khôngSM1.1: Cờ tràn

‹Lệnh lật các bit thanh ghi

Trang 11

Nhóm lệnh lật phải, lật trái, xoay phải, xoay trái:

SHR_B: Lật phải 1 byte SRB: Lật phải 1 byte

SHL_B: Lật trái 1 byte SLB: Lật trái 1 byte

ROR_B: Xoay phải 1 byte RRB: Xoay phải 1 byte

ROL_B: Xoay trái 1 byte RLB: Xoay trái 1 byte

Thao tác:

Với lệnh lật: Thay đổi nội dung thanh ghi hoặc ô nhớ

bằng cách dịch chuyển từng bít sang phải, hoặc sang trái

theo số lần đặt trước N

Với lệnh xoay:Thay đổi nội dung thanh ghi bằng cách

dịch bít theo vòng kín sang phải, hoặc sang trái, theo số

lần đặt trước N

Chú ý:

Với lệnh lật: Số lần lật tối đa của lệnh bằng kích thước

toán hạng

Ví dụ: N > 8, lệnh làm việc với byte, số lần lật tối đa là 8

N>16, lệnh làm việc với word, số lần lật tối đa là 16

N>32, lệnh làm việc với DW, số lần lật tối đa là 32

Sau khi lật, nội dung thanh ghi có giá trị 0, thì cờ không

được set lên 1

Trang 12

Khi lật trái thì giá trị

MSB được ghi vào

cờ tràn, giá trị 0 đượcghi vào LSB

Với lệnh xoay: Khi số lần đặt N lớn hơn kích thước đối

số (toán hạng) thì PLC sẽ thực hiện khấu trừ, sao cho số

lần xoay nằm trong khoảng:

0 đến 7 đối với byte

0 đến 15 đối với word

0 đến 32 đối với double word

Trang 13

được gửi vào cờtràn trước khi quay lại đầu MSB

Khi xoay trái thì

giá trị MSB bị đẩykhỏi thanh ghi và

được gửi vào cờtràn trước khi quay lại đầu LSB

Lệnh lật các bít thanh ghi:

Thao tác: Thay đổi nội

dung thanh ghi bằngcách chuyển 1 bít bên ngoài vào thanh ghi vàmột bít trong thanh ghi

được lấy ra và ghi vào

cờ tràn SM1.1

Trang 14

„ Số lần lật tối đa N = 64 (bít)

„ DATA: Xác định địa chỉ của bít cần ghi (nội dung của bít

này sẽ đ−ợc chuyển vào thanh ghi)

„ S_Bit: Xác định địa chỉ bít ban đầu của thanh ghi (MSB.b)

Trang 16

Thao tác đối với LAD:

Thao tác đối với STL:

Mỗi khi thoả mãn lệnh thì đỉnh ngăn xếp có giá trị lôgíc

bằng 1

Trang 17

Chú ý:

So sánh byte là lệnh không dấu

So sánh số nguyên, double word, real là lệnh có dấu

Lệnh chuyển kiểu dữ liệu

Có thể chuyển từ:

Byte → Integer; Integer → Byte; Integer → DInteger

Integer → String; DInteger → Integer; DInteger → Real

DInteger → String; Real → String; Integer → ASCII;

DInteger → ASCII; Real → ASCII; String → Integer;

String → DInteger; String → Real; BCD → Integer;

Integer → BCD; Chuyển đổi mã bẩy đoạn

Lệnh nhẩy

Khi lệnh JMP đượcthực hiện, chươngtrình sẽ chuyển

điều khiển đến vị tríkhai báo label (LBL) số thứ tự N

Hai lệnh JMP và LBL phải được đặt trongcùng một kiểuchương trình

Trang 18

INDX: §Þa chØ lưu gi¸ trÞ ban ®Çu cña vßng lÆp (§Þa chØ

kiÓu Word

INIT: Gi¸ trÞ ban ®Çu cña vßng lÆp

FINAL: Gi¸ trÞ cuèi cña vßng lÆp

„ Mçi lÇn thùc hiÖn vßng For-Next, gi¸ trÞ INDX ®ưîc t¨ng

lªn 1, khi INDX b»ng víi FINAL th× vßng For kÕt thóc

„ NÕu INIT > FINAL, th× vßng For kh«ng thùc hiÖn

Trang 19

Một số ví dụ ứng dụng

1/ Điều khiển đèn đường không nháy đèn về đêm

2/ Điều khiển đèn đường có nháy đèn về đêm

3/ Điều khiển nhiệt độ kho lạnh

Điều khiển đèn đường không nháy đèn về đêm

‹Lập chương trình điều khiển đèn ngã tư theo sơ

đồ như sau:

Đỏ AXanh AVàng A

Đỏ BXanh BVàng B

Trang 20

1 §á A, Xanh B

L = Δt1L

2 Q0.1 Q0.6

L = 6sL

3 Q0.0

t1/1/12sI0.0

YiI0.1

t2/1/18s

Trang 22

Điều khiển đèn đường có nháy đèn về đêm

‹Lập chương trình điều khiển đèn ngã tư theo

sơ đồ như sau:

Đỏ AXanh AVàng A

Đỏ BXanh BVàng B

ON: ban ngày, OFF: ban đêm

Trang 23

1 §á A, Xanh B

L = Δt1L

4 Vµng A §á B

L = Δt4L

6 ~Vµng A ~Vµng B

L = Δt6L

M*~CD

~CDCD

2 Q0.1 Q0.6

L = 6sL

3 Q0.0 Q0.5

L = 12sL

4 L Q0.2 Q0.5

t5/5/3s

I0.0*I0.2

YiI0.1

6 ~Q0.2 ~Q0.6

L = 3sL

Trang 25

L0.0 Erase_bit Bool IN-OUT

Điều khiển nhiệt độ kho lạnh

‹Trong kho sử dụng hai máy nén (2 máy lạnh),

máy A và máy B Yêu cầu điều khiển như sau:

)Khi nhiệt độ kho lạnh trên 00C thì chạy cả hai

máy A và B

)Khi nhiệt độ kho lạnh nằm trong khoảng -50C

đến 00C thì chỉ cho một máy làm việc

)Khi nhiệt độ kho lạnh dưới -50C thì cắt điện cả

hai máy

)Nhiệt độ tăng đến 00C lại đóng điện cả hai

máy

‹Điều khiển theo hai trường hợp:

)Trường hợp 1: Máy A làm việc liên tục, máy B

dự phòng

)Trường hợp 2: Hai máy được đóng cắt luân

phiên trong khoảng nhiệt độ -50C đến 00C

Trang 26

„ Chu tr×nh nhiÖt tr−êng hîp 1

„ Chu tr×nh nhiÖt tr−êng hîp 2 (§ãng c¾t lu©n

phiªn hai m¸y A vµ B)

T cao

T thÊp

Ngày đăng: 07/11/2013, 13:15

TỪ KHÓA LIÊN QUAN