Các lệnh tiếp điểm đại số Boolean cho phép tạo lập
được các mạch logic (không có nhớ). Trong LAD các lệnh
này được biểu diễn thông qua cấu trúc mạch, mắc nối tiếp
hay song song các tiếp điểm thường đóng và các tiếp điểm
thường mở. STL có thể sử dụng các lệnh A (And) và O (Or)
cho các hàm hở hoặc các lệnh AN (And Not), ON (Or Not)
cho các hàm kín.
15 trang |
Chia sẻ: maiphuongtt | Lượt xem: 2858 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Các lệnh logic đại số (BOOLEAN), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 8:
Các lệnh logic đại số
(BOOLEAN)
Các lệnh tiếp điểm đại số Boolean cho phép tạo lập
được các mạch logic (không có nhớ). Trong LAD các lệnh
này được biểu diễn thông qua cấu trúc mạch, mắc nối tiếp
hay song song các tiếp điểm thường đóng và các tiếp điểm
thường mở. STL có thể sử dụng các lệnh A (And) và O (Or)
cho các hàm hở hoặc các lệnh AN (And Not), ON (Or Not)
cho các hàm kín.
Giá trị của ngăn xếp thay đổi phụ thuộc vào từng lệnh.
L
ệnh
Mô tả Toán
hạng
O
n
A
n
Lệnh thực hiện
toán tử ^ (A) và V (O)
giữa giá trị logic của
tiếp điểm n và giá trị bít
đầu tiên trong ngằn xếp.
Kết quả được ghi lại bít
đầu trong ngăn xếp.
n: I, Q,
M, SM, T, C,
V
(bit)
A
N n
O
N n
Lệnh thực hiện
toán tử ^ (A) và V (O)
giữa giá trị logic nghịch
đảo của tiếp điểm n và
giá trị bít đầu tiên trong
ngằn xếp. Kết quả được
ghi lại bít đầu trong
ngăn xếp.
A
I n
O
I n
Lệnh thực hiện tức
thời toán tử ^ (A) và V
(O) giữa giá trị logic của
tiếp điểm n và giá trị bít
đầu tiên trong ngằn xếp.
Kết quả được ghi lại bít
đầu trong ngăn xếp.
A
NI n
O
NI n
Lệnh thực hiện tức
thời toán tử ^ (A) và V
(O) giữa giá trị logic
nghịch đảo của tiếp
điểm n và giá trị bít đầu
tiên trong ngằn xếp. Kết
quả được ghi lại bít đầu
trong ngăn xếp.
n: 1
(bit)
Ngoài những lệnh làm việc trực tiếp với tiếp điểm,
S7-200 còn có 5 lệnh đặc biệt biểu diễn các phép tính của
đại số Boolean cho các bit trong ngăn xếp, được gọi là các
lệnh stack logic. Đó là các lệnh ALD (And load), OLD (Or
load), LPS (Logic push), LRD (Logic read) và LPP (Logic
pop). Lệnh stack logic được dùng để tổ hợp, sao chụp hoặc
xóa các mệnh đề logic. LAD không có bộ đếm dành cho
lệnh stack logic. STL sử dụng các lệnh stack logic để thực
hiện phương trình tổng thể có nhiều biểu thức con.
Bảng sao tóm tắt cú pháp gọi các lệnh stack logic trong
STL.
L
ệnh
Mô tả T
oán
hạng
A
LD
Lệnh tổ hợp giá trị của bít
đầu tiên và thứ hai của ngăn xếp
bằng phép tính logic. Kết quả ghi
lại vào bít đầu tiên. Giá trị còn lại
của ngăn xếp được kéo lên một
bít.
K
hông
có
O
LD
Lệnh tổ hợp giá trị của bít
đầu tiên và thứ hai của ngăn xếp
bằng phép tính logic V. Kết quả
ghi lại vào bít đầu . Giá trị còn lại
của ngăn xếp được kéo lên một
bít.
K
hông
có
L
PS
Lệnh logic Push (LPS) sao
chụp giá trị của bít đầu tiên vào
bít thứ hai trong ngăn xếp. Giá trị
còn lại bị đẩy xuống một bít. Bít
cuối cùng bị đẩy ra khỏi ngăn
xếp.
K
hông
có
L Lệnh sao chép giá trị của bít K
RD thứ hai vào bít đầu tiên trong
ngăn xếp. Các giá trị còn lại của
ngăn xếp giữ nguyên vị trí.
hông
có
L
PP
Lệnh kéo ngăn xếp lên một
bít. Giá trị của bít sau được
chuyển cho bít trước.
K
hông
có
AND (A)
OR (O)
Lệnh A và O phối hợp giá trị logic của một tiếp
điểm n với giá trị bít đầu tiên của ngăn xếp. Kết quả phép
tính được đặt lại vào bít đầu tiên trong ngăn xếp. Giá trị của
các bít còn lại trong ngăn xếp không bị thay đổi.
Luật tính toán của các phép tính logic And và Or
như sau:
x y x
^
y
(
A
n
d
)
x
v
y
(
O
r
)
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Tác động của lệnh AND và OR vào ngăn xếp như sau
Trước A Sau m= c0
^ c1
c
0
m
c
1
C
1
c
2
C
2
c
3
C
3
c
4
C
4
c
5
C
5
c
6
C
6
c
7
C
7
c
8
C
8
Trước O Sau m= c0
v c1
c
0
m
c
1
C
1
c
2
C
2
c
3
C
3
c
4
C
4
c
5
C
5
c
6
C
6
c
7
C
7
c
8
C
8
AND LOAD (ALD)
OR LOAD (OLD):
Lệnh ALD và lệnh OLD thực hiện phép tính logic
And và Or giữa hai bít đầu tiên của ngăn xếp. Kết quả của
phép logic này sẽ được ghi lại vào bít đầu trong ngăn xếp.
Nội dung còn lại của ngăn xếp được kéo lên một bít.
Tác động của lệnh ALD và OLD vào ngăn xếp như
sau:
Trước ALD Sau m= c0^ c1
c
0
m
c
1
c
2
c
2
c
3
c
3
c
4
c
4
c
5
c
5
c
6
c
6
c
7
c
7
c
8
c
8
Trước OLD Sau m= c0 v c1
c
0
m
c
1
c
2
c
2
c
3
c
3
c
4
c
4
c
5
c
5
c
6
c
6
c
7
c
7
c
8
c
8
LOGIC PUSH (LPS)
LOGIC READ (LRD)
LOGIC POP (LPP)
Lệnh LPS, LRD và LPP là những lệnh thay đổi nội
dung bít đầu tiên của ngăn xếp. Lệnh LPS sao chép nội
dung của bít đầu tiên và bít thứ hai trong ngăn xếp, nội
dung ngăn xếp sau đó bị đẩy xuống một bít. Lệnh LRD lấy
giá trị của bít thứ hai ghi vào bít đầu tiên của ngăn xếp, nội
dung ngăn xếp đó được kéo lên một bít. Lệnh LPP kéo
ngăn xếp lên một bít.
Sơ đồ minh họa thay đổi ngăn xếp của các lệnh LPS,
LRD và LPP
Trước LPS Sau Trước LRD Sau
Trước LPP Sau
C
0
c
0
c
0
c
1
c
0
c
1
c
1
c
0
c
1
c
1
c
1
c
2
c
2
c
1
c
2
c
2
c
2
c
3
c
3
c
2
c
3
c
3
c
3
c
4
c
4
c
3
c
4
c
4
c
4
c
5
c
5
c
4
c
5
c
5
c
5
c
6
c
6
c
5
c
6
c
6
c
6
c
7
c
7
c
6
c
7
c
7
c
7
c
8
c
8
c
7
c
8
c
8
c
8
ORW, ORD
ANDW, ANDD
XORW, XORD
Lệnh thực hiện các thuật toán logic And, Or và
Exclusive Or của đại số Boolean trên 2 bite hoặc 4 byte
(mảng nhiều bít hoặc ít điểm).
Ngoài các lệnh logic làm với tiếp điểm, S7-200 cung
cấp thêm những lệnh logic có khả năng thực hiện các thuật
toán logic trên một mảng nhiều tiếp điểm (hay nhiều bít)
như trên 2 byte hoặc 4 byte. Luật tính toán của chúng như
sau:
x
y
X
^ y
(An
d)
x
v
y
(O
r)
x
X
O
R
y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
Cách biểu diễn các lệnh logic này trong LAD và STL
được tóm tắt trong bảng sau. Chúng sử dụng bít nhớ đặc
biệt SM 1.0 để thông báo về trạng thái kết quả phép tính
được thực hiện (kết quả bằng 0).
Biểu diễn trong STL
STL Mô tả Toán
hạng
AND
W IN1
IN2
Lệnh thực hiện
phép logic AND giữa
các bít tương ứng của
hai từ IN1 và IN2.
Kết quả được ghi lại
vào IN2
ORW
IN1 IN2
Lệnh thực hiện
phép logic OR giữa
các bít tương ứng của
hai từ IN1 và IN2.
Kết quả được ghi lại
vào IN2
IN1:
VW, T, C,
IW, QW.
(word
) SMW,
AC, AIW,
*VD
*AC,
Hằng số.
IN2:
XOR
W IN1
IN2
Lệnh thực hiện
phép logic XOR giữa
các bít tương ứng của
hai từ IN1 và IN2 .
Kết quả được ghi lại
vào IN2
VW, T, C,
IW, QW
(word
) W, CA,
AIW,
*VD, *AC
ANDD
IN1 IN2
Lệnh thực hiện
phép logic AND giữa
các bít tương ứng của
hai từ kép IN1 và
IN2. Kết quả được
ghi lại vào IN2
ORD
IN1 IN2
Lệnh thực hiện
phép logic OR giữa
các bít tương ứng của
hai từ kép IN1 và
IN2. Kết quả được
ghi lại vào IN2
XORD
IN1 IN2
Lệnh thực hiện
phép logic XOR giữa
các bít tương ứng của
hai từ kép IN1 và
IN2. Kết quả được
ghi lại vào IN2
IN1:
VD, ID,
QD, MD,
SMQ.
(Dwo
rd) AC,
HC,
*CD,*AC
Hằng số.
IN2:
VD, ID,
QD, MD,
SMD
(Dwo
rd)AC,
*VD, *AC
Biểu diễn trong LAD
LAD Mô tả Toán
hạng
Lệnh thực
hiện phép tính
logic AND
theo từng bít
của hai từ IN1
và IN2. Kết
quả được ghi
vào từ OUT.
Lệnh thực
hiện phép tính
logic OR giữa
các bít tương
ứng của hai từ
IN1 và IN2.
Kết quả được
ghi vào từ
OUT.
IN1:
VW, T, C,
IW, QW
(word)
SMW, AC,
AIW, VD
*AC,
Hằng số.
IN2:
VW, T, C,
IW, QW,
(word)
SMW, AC,
AIW, *VD,
*AC, Hằng
số.
OUT:
WAND W
EN
IN1
IN2 OUT
WOR W
EN
IN1
IN2 OUT
Lệnh thực
hiện phép tính
logic XOR
giữa các bít
tương ứng của
hai từ IN1 và
IN2. Kết quả
được ghi vào
từ OUT.
VW, T, C,
IW, QW,
MW,
(word)
SMW, AC,
*VD, *AC
Lệnh thực
hiện phép tính
logic AND
giữa các bít
của hai từ kép
IN1 và IN2.
Kết quả được
ghi vào từ
OUT.
Lệnh thực
hiện phép tính
logic OR giữa
các bít của hai
từ kép IN1 và
IN2. Kết quả
được ghi vào
từ OUT.
IN1:
VD, ID, QD,
MD, SMW
(Dword
) AC, AIW,
Hằng số,
VD, AC
IN2:
VD, ID, QD,
MD, SMW
(Dword
) AC, AIW,
Hằng số,
*VD, *AC
OUT:
VD, ID, QD,
WOR W
EN
IN1
IN2 OUT
WXOR W
EN
IN1
IN2 OUT
WOR DW
EN
IN1
IN2 OUT
WAND DW
EN
IN1
IN2 OUT
Lệnh thực
hiện phép tính
logic XOR
giữa các bít
của hai từ kép
IN1 và IN2.
Kết quả được
ghi vào từ
OUT.
MD, SMD,
(Dword
) AC, *VD,
*AC
WXOR DW
EN
IN1
IN2 OUT
OR DW
I
I