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 1Tậ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 2Nhã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 4Nh©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 5Nhã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 6Chú ý:
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 7Nhó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 8Nhã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 9Nhó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 10Ví 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 11Nhó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 12Khi 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 16Thao 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 17Chú ý:
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 18INDX: §Þ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 19Mộ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 201 §á 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 231 §á 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 25L0.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