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  
tiên c
ủ
a b
ả
ng t
ứ
c là TL
 
N
ế
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 đủ
pdf 45 trang myanh 23880 Free
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:

  • pdfgiao_trinh_dieu_khien_logic_chuong_3_ngon_ngu_lap_trinh_va_u.pdf