Giáo trình Điều khiển logic - Chương 3: Ngôn ngữ lập trình và ứng dụng (Tiếp)
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Kiểu dữ
6. SIMATIC Numerical Function Instructions:
Mô tả
Toán hạng
liệu
(Data
STL
LAD
(Description)
(Operands)
Types)
Square Root
Lệnh thực hiện phép
IN: ID, QD, MD,
lấy căn bậc hai của số VD, SMD, SD, LD,
thực 32 bit. Kết quả
cũng là số 32 bit được
ghi vào từ kép OUT.
HC,AC, Constant,
∗VD, ∗AC, ∗LD
OUT: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, ∗VD, ∗AC,
∗LD
SQRT
EN
SQRT IN, OUT
Real
IN OUT
Natural Logarithm (logarit tự nhiên)
Lệnh Natural
IN: ID, QD, MD,
Logarithm thực hiện
phép logirit tự nhiên
của số thực 32 bit, Kết
quả được lưu vào từ
kép OUT.
VD, SMD, SD, LD,
HC,AC, Constant,
∗VD, ∗AC, ∗LD
OUT: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, ∗VD, ∗AC,
∗LD
SQRT
EN
LN IN, OUT
Real
Real
IN OUT
Lệnh này cũng được
sử dụng để thực hiện
phép logarit cơ số 10
từ phép lấy logarit tự
nhiên.
Natural Exponential (phép lấy tự nhiên)
IN: ID, QD, MD,
EPX
EN
VD, SMD, SD, LD,
HC,AC, Constant,
∗VD, ∗AC, ∗LD
OUT: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, ∗VD, ∗AC,
∗LD
IN OUT
EPX IN, OUT
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
82
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Sine, Cosine and Tangent
Lệnh Sine, Cosine và
Tangent định giá trị
hàm lượng giác của
góc IN (số thực 32
bit). Kết quả được lưu
vào doubleword OUT.
Với điều kiện: IN tính
bằng radian, nếu là độ
thì phải thực hiện
SIN
EN
SIN IN, OUT
IN OUT
IN: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, Constant,
∗VD, ∗AC, ∗LD
OUT: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, ∗VD, ∗AC,
∗LD
COS
EN
Real
COS IN, OUT
TAN IN, OUT
IN OUT
phép chuyển từ độ
sang radian bằng cách
thực hiện lệnh
TAN
EN
MUL_R để nhân giá
trị IN Với 1.745329E-
2 (π/180)
IN OUT
Lệnh thực hiện tính
toán vòng lặp, với số
thứ tự là LOOP
TBL:
BYTE
VB
(0<=LOOP<=7) và
bảng tham chiếu của
quá trình là TBL.
! Trước khi thực hiện
quá trình tính toán
vòng lặp PID này cần
phải thực hiện một số
thủ tục quy định trước
khi quá trình tính toán
diễn ra như: việc khai
báo tham số của hàm,
địa chỉ của mảng dữ
liệu, lấy mẫu tín hiệu
vào analog đầu vào,
thực hiện quá trình
tính toán, chuẩn hoá,
hiệu chỉnh... Phần này
sẽ được trình bày cụ
thể ở chương sau.
PID
EN
PID TBL, LOOP
TBL OUT
LOOP
LOOP:
Constant (0 ÷7)
BYTE
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
83
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
7. SIMATIC Move Instructions:
Mô tả
Toán hạng
Kiểu dữ liệu
STL
LAD
Description
Operands
Data Types
Move Byte, Move Word, Move Double Word and Move Real
Lệnh thực hiện
việc chuyển dữ
liệu từ byte IN vào
byte OUT khi có
sườn lên của tín
hiệu vào.
IN: IB, QB, MB, VB,
SMB, SB, LB, AC,
Constant, ∗VD,
MOV_B
EN
MOVB IN, OUT
Byte
∗AC,∗ LD
IN OUT
OUT:IB, QB, MB,
VB, SMB, SB, LB,
AC, ∗VD, ∗AC,∗ LD
IN: IW, QW, VW,
LW, SW, AIW, T, C,
AC, Constant, ∗VD,
∗AC, ∗LD
OUT: IW, QW, MW,
SMW, VW, LW, SW,
AIW, T, C, AC, ∗VD,
∗AC, ∗LD
Lệnh thực hiện
việc chuyển dữ
liệu từ Word IN
vào Word OUT
khi có sườn lên
của tín hiệu vào.
MOV_W
EN
MOVW IN,OUT
Word, INT
IN OUT
Lệnh thực hiện
việc chuyển dữ
IN: ID, QD, MD,
VD, SMD, SD, LD,
liệu từ kép IN vào HC,AC, &VB, &IB,
từ kép OUT khi có &QB, &SB, &MB,
MOV_DW
EN
sườn lên của tín
hiệu vào.
&T, &C, Constant,
∗VD, ∗AC, ∗LD
OUT: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, ∗VD, ∗AC,
∗LD
DoubleWord,
DINT
MOVD IN, OUT
MOVR IN, OUT
IN OUT
Lệnh thực hiện
việc chuyển dữ
liệu là số thực từ
từ kép IN vào từ
kép OUT khi có
sườn lên của tín
hiệu vào.
IN: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, Constant,
∗VD, ∗AC, ∗LD
OUT: ID, QD, MD,
VD, SMD, SD, LD,
HC,AC, ∗VD, ∗AC,
∗LD
MOV_R
EN
Real
IN OUT
Block Move Byte, Block Move Word, Block Move Double Word and Block Move Real
Lệnh thực hiện
việc chuyển N
IN, OUT: IB, QB,
MB, VB, SMB, SB,
LB, ∗VD, ∗AC, ∗LD.
BMB IN, OUT,
N
Byte
BLKMOV_B
EN
byte dữ liệu tính từ
IN
N
OUT
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
84
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
N: IB, QB, MB, VB,
byte IN vào vùng
địa chỉ tính từ byte SMB, SB, LB, AC,
OUT khi có sườn
lên của tín hiệu
vào.
Constant, ∗VD, ∗AC,
Byte
∗LD
1 <= N <= 255
IN: IW, QW, VW,
LW, SW, SMW, AIW,
T, C, AC, ∗VD, ∗AC,
∗LD
Lệnh thực hiện
việc chuyển N từ
đơn dữ liệu tính từ
từ đơn IN vào
Word
OUT: IW, QW, VW,
LW, SW, SMW, AQW,
T, C, AC, ∗VD, ∗AC,
∗LD
vùng địa chỉ tính
từ từ đơn OUT khi
có sườn lên của tín
hiệu vào.
BLKMOV_W
EN
BMW IN, OUT,
N
IN
N
OUT
N: IB, QB, MB, VB,
SMB, SB, LB, AC,
Constant, ∗VD, ∗AC,
∗LD
Byte
DWord
Byte
1 <= N <= 255
Lệnh thực hiện
việc chuyển N từ
kép dữ liệu tính từ
từ kép IN vào
IN, OUT: ID, QD,
MD, VD, SMD, SD,
LD, ∗VD, ∗AC, ∗LD.
BLKMOV_D
EN
BMD IN, OUT,
N
N: IB, QB, MB, VB,
SMB, SB, LB, AC,
Constant, ∗VD, ∗AC,
∗LD
vùng địa chỉ tính
từ từ kép OUT khi
có sườn lên của tín
hiệu vào.
IN
N
OUT
1 <= N <= 255
Swap Byte
Lệnh đảo dữ liệu
của 2 byte trong từ
đơn IN.
SWAP
IN: IW, QW, VW,
LW, SW, SMW, AIW,
T, C, AC.
EN ENO
SWAP IN
Word
IN
Move Byte Immedieate Read/ Write
Lệnh đọc tức thời
giá trị ở byte đầu
vào ở cổng vật lý
IN: IB
MOV_BIR
EN
OUT: IB, QB, MB,
BIR IN, OUT
BIW IN, OUT
Byte
Byte
IN OUT
IN và ghi trực tiếp VB, SMB, SB, LB,
vào byte OUT.
AC, ∗VD, ∗AC, ∗LD
IN: IB, QB, MB, VB,
Lệnh đọc tức thời
MOV_BIW
EN
giá trị ở byte IN và SMB, SB, LB, AC,
ghi trực tiếp ra đầu
ra ở cổng vật lý
byte OUT.
Constant, ∗VD, ∗AC,
∗LD
IN OUT
OUT: QB
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
85
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Hình 3.31: Ví dụ minh hoạ về cách sử dụng lệnh khối hàm
Hình 3.32: Ví dụ minh hoạ về cách sử dụng lệnh khối hàm
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
86
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
8. SIMATIC Table Instructions:
Các lệnh làm việc với bảng dữ liệu gọi tắc là lệnh bảng, cho phép nhập dữ liệu vào
một bảng, sắp xếp số lượng theo thứ tự đã được nhập vào hoặc theo thứ tự ngược lại.
Bảng được định nghĩa là một mảng từ đơn xếp liền nhau từ địa chỉ thấp nhất tính
từ đầu bảng đến địa chỉ cao nhất tính đến cuối bảng. Hai từ đơn đầu tiên của bảng dùng
để quản lý bảng. Dữ liệu được ghi vào trong bảng bắt đầu từ từ đơn thứ 3 trong bảng, mỗi
dữ liệu chiếm một từ đơn, một bảng chỉ chứa tối đa 100 dữ liệu. Có nghĩa là bảng lớn
nhất có 204 byte.
Hai từ đơn đầu bảng có ý nghĩa như sau:
Hình 3.33: Mô tả bảng dữ liệu
+ Từ đầu ký hiệu bằng TL, chứa kích thước của bảng không kể hai từ đơn quản lý.
+ Từ đơn thứ hai ký hiệu bằng EC, để quản lý số các dữ liệu hiện có trong bảng.
Bit SM1.4 được dùng để báo trạng thái đầy bảng.
Các lệnh làm việc với bảng gồm có các lệnh:
+ Nhập thêm dữ liệu vào bảng: ATT - Add to Table (AT_T_TBL).
+ Lấy dữ liệu ra khỏi bảng theo thứ tự vào trước ra trước: First - In - First - Out
(FIFO).
+ Lấy dữ liệu ra khỏi bảng theo thứ tự vào sau ra trước: Last - In - First - Out
(LIFO).
Tip: Lệnh bảng được thực hiện liên tục (một từ trong một vòng quét) khi đầu vào vẫn còn
được kích. Bởi vậy trước khi gọi lệnh làm việc với bảng nên thực hiện lệnh phát hiện
sườn lên (EU) cho tín hiệu đầu vào.
Kiểu
Mô tả
Toán hạng
dữ liệu
Data
STL
LAD
Description
Operands
Types
Add to Table
Lệnh ghi thêm vào bảng một
dữ liệu kiểu từ đơn, được xác
định bằng nội dung của toán
hạng DATA trong lệnh. Bảng
được chỉ định trong lệnh bằng
toán hạng TBL xác định từ đầu
DATA:
IW, QW, VW,
LW, SW, MW,
SMW, AIW, T, C,
AC, Constant,
∗VD, ∗AC, ∗LD
AD_T_TBL
ATT DATA,
TABLE
EN
ENO
INT
87
DATA
TBL
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
tiên của bảng, tức là TL. Nếu
bảng đã đầy tức là EC=TL, Bit
SM1.4=1.
TBL:
Dữ liệu mới được đưa vào sẽ
nằm trong từ chưa dùng đầu
tiên, tức là ngay sau dữ liệu
được nhập trước đó. Khi lệnh
thực hiên xong thì nội dung của
từ EC tăng thêm 1 đơn vị.
IW, QW, VW,
LW, SW, MW,
SMW, T, C, ∗VD,
∗AC, ∗LD
Word
Hình 3.34: Ví dụ về cách thực hiện lệnh ATT
Sử dụng lệnh tìm kiếm để tìm dữ liệu theo mẫu cho trước trong một bảng. Mẫu dữ
liệu định trước là nội dung của toán hạng PTN của lệnh. Tham số CMD là luật tìm kiếm,
có 4 luật tìm kiếm: =, <>, <, >.
Bảng được chỉ định trong lệnh tìm kiếm được chỉ định bằng nội dung của toán
hạng TBL chỉ ô nhớ nằm ngay trước vùng chứa dữ liệu của bảng (ô này chính là ô từ đơn
EC).
Bảng quy định cho lệnh tìm kiếm bao gồm bộ đếm EC tức thời có kiểu từ đơn ghi
số các dữ liệu có trong bảng và vùng dữ liệu của bảng. Số lượng lớn nhất các dữ liệu của
bảng có thể có của bảng là 100.
Mỗi dữ liệu trong bảng có kích thước bằng từ đơn. Dữ liệu trong bảng được đánh số từ
0÷n với n có giá trị cực đại bằng 99. Số các dữ liệu có trong bảng là nội dung của từ đơn
EC, không bắt buộc lệnh tìm kiếm phải bắt đầu từ đầu bảng. Lệnh có thể bắt đầu công
việc tìm kiếm tại một điểm bất kỳ trong vùng dữ liệu. Toán hạng INDX xác định điểm
xuất phát của công việc tìm kiếm bằng việc chỉ ra chỉ số (0÷99) của dữ liệu đầu tiên trong
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
88
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
vùng định tìm kiếm. Như vậy muốn tìm từ đầu bảng INDX phải có giá trị bằng 0. Nội
dung của INDX là số nguyên trong khoảng từ 0 đến EC.
Nếu sử dụng lệnh tìm kiếm với bảng được tạo bởi các lệnh ATT, FIFO, LIFO thì ô
nhớ EC là ô nhớ đầu bảng phải được chỉ định trong lệnh tại toán hạng TBL. Khi sử dụng
lệnh ATT, FIFO, LIFO đòi hỏi phải thông báo từ số các đầu vào cực đại cho lệnh (ô nhớ
TL) còn khi sử dụng lệnh tìm kiếm TBL_FIND thì không cần. Toán hạng SRC của lệnh
tìm kiếm là tên của ô nhớ EC (2 byte).
Cú pháp của lệnh tìm kiếm trong LAD và STL khác nhau. Trong khi cả 4 luật tìm
kiếm CMD trong LAD, thì trong STL tương ứng với mỗi luật tìm kiếm có 1 lệnh tìm
kiếm riêng. Như vậy trong LAD chỉ có 1 hộp cho 4 lệnh tìm kiếm thì trong STL là:
FND=, FND<>, FND<, FND>.
Nội dung của toán hạng trong LAD được quy định như sau:
a) CMD = 1, tìm theo luật = (bằng nhau.).
b) CMD = 2, tìm theo luật <> (khác nhau).
c) CMD = 3, tìm theo luật < (nhỏ hơn).
d) CMD = 4, tìm theo luật > (lớn hơn).
Kiểu dữ
Mô tả
Toán hạng
liệu
Data
STL
LAD
Description
Operands
Types
Table Fine
FND= TBL,
Thực hiện việc tìm kiếm TBL: IW, QW,
VW, LW, SW,
MW, SMW, AIW,
T, C, ∗VD, ∗AC,
∗LD
PTN: IW, QW,
VW, LW, SW,
MW, SMW, AIW,
T, C, AC,
Constant, ∗VD,
∗AC, ∗LD
INDX: LW, SW,
MW, SMW, AIW,
T, C, ∗VD, ∗AC,
∗LD
PARNT, INDX
trong bảng xác định bởi
TBL , bắt đầu từ vị trí
dữ liệu INDX ô nhớ chứ
dữ liệu PARNT. Luật
tìm kiếm được quy định
bởi CMD có giá trị từ 1
đến 4 tương ứng =, <>,
<, >.
Word
INT
FND<> TBL,
PARNT, INDX
AD_T_TBL
EN
ENO
TBL
PTN
INDX
CMD
Khi tìm thấy , INDX sẽ
chỉ vào ô dữ liệu đầu
tiên tìm được trong bảng
và lệnh đựơc kết thúc.
Do đó để tìm kiếm dữ
liệu tiếp theo, INDX
phải được tăng giá trị l
và gọi lại lệnh này. Nếu
như không tìm thấy
INDX có giá trị đúng
bằng giá trị của bộ đếm
EC.
FND< TBL,
Word
Byte
PARNT, INDX
CMD: Constant
FND> TBL,
PARNT, INDX
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
89
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Bảng 3.5: Sự khác nhau giữa bảng dữ liệu định nghĩa bằng lệnh ATT, FIFO, LIFO và
lệnh FIN
Hình 3.35: Ví dụ về cách sử dụng lệnh tìm kiếm FND
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
90
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Kiểu dữ
Mô tả
Toán hạng
liệu
STL
LAD
(Description)
(Operands)
(Data
Types)
Fisrt - In - Fisrf - Out
Lệnh lấy dữ liệu đầu
tiên của bảng ra khỏi
bảng. Nếu bảng đã trống
có nghĩa là dữ liệu trong
đó được lấy ra hết, hay
EC=0, bit SM1.4=1. Dữ
liệu lấy ra được ghi vào
DATA (kiểu từ). Các dữ
liệu còn lại được dồn lên
vị trí trên để lấp chỗ
TBL: IW, QW,
VW, LW, SW,
MW, T, C, ∗VD,
∗AC, ∗LD
INT
FIFO
FIFO TABLE,
DATA
EN
ENO
TBL
DATA
DATA: IW, QW,
VW, LW, SW,
MW, SMW, AIW,
T, C, AQW, ∗VD,
∗AC, ∗LD
Word
trống vừa mới bị lấy đi.
Khi lệnh thực hiện xong
nội dung của EC giảm
đi một đơn vị.
Hình 3.36: Ví dụ về cách sử dụng lệnh FIFO
.
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
91
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Kiểu dữ
Mô tả
Toán hạng
liệu
Data
STL
LAD
Description
Operands
Types
Last - In - Fisrf - Out
Lệnh lấy dữ liệu cuối
cùng của bảng ra khỏi
bảng tức là dữ liệu được
nhập sau cùng. Nếu
TBL: IW, QW,
VW, LW, SW,
MW, T, C, ∗VD,
∗AC, ∗LD
INT
bảng đã trống có nghĩa
là dữ liệu trong đó được
lấy ra hết, hay EC=0, bit
SM1.4=1. Dữ liệu lấy ra
đượ ghi vào DATA
LIFO
EN
ENO
LIFO TABLE,
DATA
TBL
DATA
(kiểu từ). Các dữ liệu
còn lại được dồn lên vị
trí trên để lấp chỗ trống
vừa mới bị lấy đi. Khi
lệnh thực hiện xong nội
dung của EC giảm đi
một đơn vị.
DATA: IW, QW,
VW, LW, SW,
MW, SMW, AIW,
T, C, AQW, ∗VD,
∗AC, ∗LD
Word
Hình 3.37: Ví dụ về cách sử dụng lệnh LIFO
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
92
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Kiểu dữ
Mô tả
Toán hạng
liệu
STL
LAD
Description
Operands
Data Types
Memory Fill
IN: IW, QW, VW,
LW, SW, MW, SMW,
AIW, T, C, AC,
Word
Lệnh điền giá trị
Constant, ∗VD, ∗AC,
∗LD
chứa trong Word IN
vào mảng bắt đầu từ
địa chỉ Word OUT.
N là số từ đơn của
mảng, 1<=N<=255
FILL
EN ENO
N: IB, QB, MB, VB,
FILL IN, OUT,
N
IN OUT
N
SMB, SB, LB, AC,
Byte
Constant, ∗VD, ∗AC,
∗LD
OUT: IW, QW, VW,
LW, SW, MW, SMW,
AIW, T, C, ∗VD, ∗AC,
∗LD
Word
Hình 3.38: Ví dụ về cách sử dụng lệnh FILL
9. SIMATIC Logical Operation Instructions:
Mô tả
Kiểu dữ
liệu
Toán hạng
STL
LAD
Description
Operands
Data
Types
And Byte, Or Byte, Exclusive Or Byte
IN1, IN2:
Byte
Lệnh thực hiện AND giữa các IB, QB, MB,
WAND_B
bit tương ứng của hai Byte
IN1 và IN2, kết quả ghi vào
Byte OUT.
VB, SMB,
SB, LB, AC,
Constant,
∗VD, ∗AC,
∗LD
EN ENO
ANDB IN1,
OUT
IN1 OUT
IN2
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
93
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Lệnh thực hiện OR giữa các
OUT:
Byte
bit tương ứng của hai Byte
IN1 và IN2, kết quả ghi vào
Byte OUT.
IB, QB, MB,
VB, SMB,
SB, LB, AC,
∗VD, ∗AC,
∗LD
WOR_B
EN ENO
ORB IN1, OUT
IN1 OUT
IN2
Lệnh thực hiện XOR giữa các
bit tương ứng của hai Byte
IN1 và IN2, kết quả ghi vào
Byte OUT.
WXOR_B
EN ENO
XORB IN1,
OUT
IN1 OUT
IN2
And Word, Or Word, Exclusive Or Word
Lệnh thực hiện AND giữa các IN1, IN2:
WAND_W
bit tương ứng của hai Word
IN1 và IN2, kết quả ghi vào
Word OUT.
IW, QW, VW,
LW, SW, MW,
SMW, AIW, T,
C, AC,
EN ENO
ANDW IN1,
OUT
IN1 OUT
IN2
Constant, ∗VD,
∗AC, ∗LD
Lệnh thực hiện OR giữa các
bit tương ứng của hai Word
IN1 và IN2, kết quả ghi vào
Word OUT.
WOR_W
EN ENO
ORW IN1, OUT
Word
IN1 OUT
IN2
Lệnh thực hiện XOR giữa các OUT:
WXOR_W
bit tương ứng của hai Word
IN1 và IN2, kết quả ghi vào
Word OUT.
IW, QW, VW,
EN ENO
XORW IN1,
OUT
LW, SW, MW,
SMW, T, C,
AC, ∗VD,
IN1 OUT
IN2
∗AC, ∗LD
And DWord, Or DWord, Exclusive Or DWord
Lệnh thực hiện AND giữa các IN1, IN2:
Double
Word
WAND_DW
bit tương ứng của hai từ kép
IN1 và IN2, kết quả ghi vào từ
kép OUT.
ID, QD, VD,
LD, SD, MD,
SMD, HD, AC,
Constant, ∗VD,
∗AC, ∗LD
EN ENO
ANDD IN1,
OUT
IN1 OUT
IN2
Lệnh thực hiện OR giữa các
bit tương ứng của hai từ kép
IN1 và IN2, kết quả ghi vào từ
kép OUT.
WOR_DW
EN ENO
ORD 1, OUT
IN1 OUT
IN2
XORD IN1,
OUT
Lệnh thực hiện XOR giữa các OUT:
bit tương ứng của hai từ kép
IN1 và IN2, kết quả ghi vào từ
kép OUT.
ID, QD, VD,
WXOR_DW
EN ENO
LD, MD, SMD,
AC, ∗VD,
∗AC, ∗LD
IN1 OUT
IN2
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
94
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Hình 3.39: Ví dụ về cách sử dụng lệnh AND, OR, XOR
Kiểu dữ
liệu
Mô tả
Toán hạng
STL
LAD
Description
Operands
Data
Types
Invert Byte, Invert Word, Invert DWord
Lệnh đảo từng bit của
IN:IB, QB, MB,
byte đầu vào IN, kết qủa VB, SMB, SB, LB,
đưa ra đầu ra OUT.
Thường thì đầu vào và
ra cùng địa chỉ.
AC, Constant,
INV_B
EN ENO
∗VD, ∗AC, ∗LD
OUT:IB, QB, MB,
VB, SMB, SB, LB,
AC, Constant,
INVB OUT
Byte
IN1 OUT
∗VD, ∗AC, ∗LD
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
95
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Lệnh đảo từng bit của từ IN: IW, QW, VW,
LW, SW, MW,
đơn đầu vào IN, kết qủa
SMW, AC, AIW , T,
C, Constant, ∗VD,
∗AC, ∗LD
đưa ra đầu ra OUT.
Thường thì đầu vào và
ra cùng địa chỉ.
INV_W
EN ENO
INVW OUT
INVD OUT
Word
IN1 OUT
OUT: IW, QW,
VW, LW, SW, MW,
SMW, AC, T, C,
∗VD, ∗AC, ∗LD
Lệnh đảo từng bit của từ IN: ID, QD, VD,
LD, SD, MD, SMD,
HD, AC, Constant,
∗VD, ∗AC, ∗LD
kép đầu vào IN, kết qủa
đưa ra đầu ra OUT.
Thường thì đầu vào và
ra cùng địa chỉ.
INV_DW
EN ENO
DWord
IN1 OUT
OUT: ID, QD, VD,
LD, SD, MD, SMD,
AC, ∗VD, ∗AC, ∗LD
Hình 3.40: Ví dụ về cách sử dụng lệnh INVB, INVW, INVD
10. SIMATIC Stack Logic Instructions:
Các lệnh tiếp điểm trong đại số Boolean cho phép tạo lập được các mạch logic
(không có nhớ). Trong LAD các mạch này biểu diễn thông qua cấu trúc mạch, mắc nối
tiếp hay song song các mạch 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 tiếp điểm mắc nối tiếp và song song là
thường hở hoặc các lệnh AN (And Not) và ON (Or Not) cho các tiếp điểm mắc nối tiếp
và song song là thường đóng. Giá trị của các bit trong ngăn xếp thay đổi tuỳ thuộc vào
từng lệnh. Trong phần này chúng ta sẽ đi sâu hơn về sự làm việc của các bit trong ngăn
xếp, việc hiểu và nắm bắt về ngăn xếp là điều rất cần thiết trong vấn đề lập trình dùng
ngôn ngữ STL.
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. Trong LAD không dùng những lệnh này. STL sử dụng các lệnh này để
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
96
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
thực hiện những phép toán của phương trình có nhiều biểu thức con. Sau đây là bảng tóm
tắt cú pháp và hướng dẫn cách sử dụng lệnh.
Kiểu dữ
Mô tả
Toán hạng
liệu
Data
STL
LAD
Description
Operands
Types
And Load
Lệnh tổ hợp giá trị đầu tiên và giá trị của bit
thứ hai trong ngăn xếp bằng phép tính ∧.
Kết quả được ghi lại vào bit đầu tiên của
ngăn xếp. Giá trị còn lại được kéo lên 1 bit.
Or LoaD
ALD
none
none
none
Lệnh tổ hợp giá trị đầu tiên và giá trị của bit
thứ hai trong ngăn xếp bằng phép tính ∨.
Kết quả được ghi lại vào bit đầu tiên của
ngăn xếp. Giá trị còn lại được kéo lên 1 bit.
Logic PuSh
OLD
LPS
none
none
none
none
none
none
Sao chép giá trị của bit đầu tiên vào bit thứ
hai trong ngăn xếp. Gía trị còn lại bị đẩy
xuống 1 bit. Bit cuối cùng bị đẩy ra ngoài.
Logic ReaD
Lệnh sao chép giá trị của bit thứ hai vào bit
đầu tiên của ngăn xếp, các giá trị còn lại
của ngăn xếp vẫn giữ nguyên.
LRD
LPP
none
none
none
none
none
none
Logic PoP
Lệnh kéo ngăn xếp lên 1 bit theo nguyên
tắc bit sao đè lên bit trước.
LoaD Stack
Lệnh sao chép giá trị của bit thứ n (ngăn
xếp có 9 bit thì bit thứ nhì được tính là
1...đến bit cuối cùng là 8) của ngăn xếp lên
bit đầu tiên. Các giá trị còn lại của ngăn xếp
bị đẩy lùi xuống 1 bit, bit cuối cùng bị đẩy
ra khỏi ngăn xếp.
LDS n
none
Byte
n: 1÷8
Hình 3.41: Mô tả hoạt động của lệnh LDS
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
97
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
Hình 3.42: Mô tả hoạt động của lệnh ALD và OLD
Hình 3.43: Mô tả hoạt động của lệnh LPS, LRD, LPP
Hình 3.44: Ví dụ về cách sử dụng lệnh ALD, OLD, LPP, LPS, LRD
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
98
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
11. SIMATIC Conversion Instructions:
Các hàm đổi kiểu dữ liệu cho phép thực hiện việc đổi kiểu dữ liệu từ kiểu này sang kiểu
khác. Sau đây là các lệnh biến đổi kiểu dữ liệu trong STL và LAD:
Kiểu dữ
Mô tả
Toán hạng
liệu
Data
STL
LAD
Description
Operands
Types
BCD to Integer and Integer to BCD
Lệnh chuyển đổi một số
IN: IW, QW, VW,
nhị_thập phân IN sang số LW, MW, SMW,
BCD_I
BCDI OUT
nguyên và lưu kết quả
vào OUT.
AIW ,AC, T, C,
Constant, ∗VD, ∗AC,
∗LD, SW.
EN ENO
Word
Word
IN OUT
Giới hạn của IN:
0÷9999.
OUT: IW, QW, VW,
LW, MW, SMW, AC,
T, C, ∗VD, ∗AC,
∗LD, SW.
Lệnh chuyển đổi một số
nguyên IN sang số
IN: IW, QW, VW,
LW, MW, SMW,
I_BCD
IBCD OUT
DTR IN, OUT
ROUND IN,
nhị_thập phân và lưu kết AIW ,AC, T, C,
EN ENO
quả vào OUT.
Giới hạn của IN:
0÷9999.
Constant, ∗VD, ∗AC,
∗LD.
IN OUT
OUT: IW, QW, VW,
LW, MW, SMW, AC,
T, C, ∗VD, ∗AC,
∗LD.
Double Integer to Real
Lệnh chuyển đổi số
IN: ID, QD, VD, LD,
nguyên 32 bit IN sang số MD, SMD, AC, HD,
DI_R
EN ENO
thực (32 bit) và lưu kết
quả vào OUT.
Constant, ∗VD, ∗AC,
∗LD, SD.
DWord
Real
IN OUT
OUT:ID, QD, VD,
LD, MD, SMD, AC,
HD, ∗VD, ∗AC, ∗LD,
SD.
Round
Lệnh chuyển đổi số thực IN: ID, QD, VD, LD,
IN thành số nguyên
MD, SMD, AC,
Constant, ∗VD, ∗AC,
∗LD, SD.
double Integer (làm tròn
số) và kết qủa lưu vào
RONUD
EN ENO
IN OUT
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
99
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
OUT:ID, QD, VD,
OUT
OUT.
Nếu phần lẻ >= 0.5 thì
được làm tròn về phía lớn
hơn 1 đơn vị.
LD, MD, SMD, AC,
HD, ∗VD, ∗AC, ∗LD,
SD.
DINT
Truncate
IN: ID, QD, VD, LD,
MD, SMD, AC,
Constant, ∗VD, ∗AC,
∗LD, SD.
OUT:ID, QD, VD,
LD, MD, SMD, AC,
HD, ∗VD, ∗AC, ∗LD,
SD.
Real
TRUNC
Hàm chuyển đổi số thực
32 bit có dấu sang số
nguyên 32 bit có dấu.
EN ENO
TRUNC IN,
OUT
IN OUT
DINT
Double Integer to Integer and Integer to Double Integer
IN: IW, QW, VW,
LW, MW,SW, SMW,
I_DI
AIW ,AC, T, C,
INT
EN ENO
Lệnh chuyển đổi số
Constant, ∗VD, ∗AC,
ITD IN, OUT
DTI IN, OUT
nguyên 16 bit sang số
IN OUT
∗LD.
nguyên 32 bit.
OUT: ID, QD,VD,
LD, MD,SD, SMD,
AC, ∗VD, ∗AC, ∗LD.
IN: ID, QD,VD, LD,
MD,SD, SMD,
DINT
DINT
AC,Constant, ∗VD,
DI_I
Lệnh chuyển đổi số
EN ENO
∗AC, ∗LD.
nguyên 32 bit sang số
OUT: IW, QW, VW,
IN OUT
nguyên 16 bit.
LW, MW,SW, SMW,
INT
AC, T, C, ∗VD, ∗AC,
∗LD.
Integer to Real, Byte to Integer and Integer to Byte
Không có lệnh chuyển
đổi trực tiếp này. Ta có
thể thực hiện được bằng
cách dùng lệnh ITD
(Integer to
Real)
(chuyển số nguyên 16 bit
none
none
none
thành số nguyên 32 bit)
sau đó dùng tiếp lệnh
DTR (chuyển số nguyên
32 bit sang số thực ).
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
100
Chương 3: Ngôn ngữ lập trình và ứng dụng
Bộ môn Tự Động Đo Lường – Khoa Điện
IN: IB, QB, MB,
SMB, VB, SB, LB,
Byte
INT
Lệnh chuyển đổi giá trị
AC, Constant, ∗VD,
∗AC, ∗LD.
của Byte IN thành giá trị
Integer 16 bit và lưu vào
OUT.
OUT: IW, QW, VW,
LW, MW,SW, SMW,
AC, T, C, ∗VD, ∗AC,
∗LD.
BTI IN, OUT
IBT IN, OUT
IN: IW, QW, VW,
LW, MW,SW, SMW,
AC, T, C, AIW,
Lệnh chuyển đổi giá trị
trong Word IN thành giá
Byte và lưu giá trị này
vào OUT.
INT
Constant, ∗VD, ∗AC,
∗LD.
I_B
EN ENO
OUT: IB, QB, MB,
SMB, VB, SB, LB,
AC, ∗VD, ∗AC, ∗LD.
IN OUT
Byte
Biên soạn: Lâm Tăng Đức - Nguyễn Kim Ánh
101
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Điều khiển logic - Chương 3: Ngôn ngữ lập trình và ứng dụng (Tiếp)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_dieu_khien_logic_chuong_3_ngon_ngu_lap_trinh_va_u.pdf

