Tải bản đầy đủ (.doc) (35 trang)

Phần mềm STEP7

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (237.67 KB, 35 trang )

Ch¬ng 4: PhÇn mÒm STEP7
Ch¬ng 4
PhÇn mÒm STEP7
2.1 Chức năng của phần mềm STEP 7
- Khai báo cấu hình cứng cho một trạm PLC thuộc họ Simatic S7 – 300/400
- Xây dựng cấu hình mạng gồm nhiều trạm PLC S7 – 300/400 cũng như thủ tục
truyền thống giữa chúng .
- Soạn thảo và cài đặt chưong trình điều khiển cho một hoặc nhiều trạm.
- Quan sát việc thực hiện trưong trình điều khiển trong một trạm PLC và gỡ rối
chưong trình .
Ngoài ra Step 7 còn có cả một thư viện đầy đủ với các hàm chuẩn hưu ích , phần
trợ giúp online rất mạnh có khả năng trả lời mọi câu hỏi của người sử dụng về cách
sử dụng Step 7 , về cú pháp lệnh trong lập trình về xây dựng cấu hình cứng của một
trạm , của một mạng gồm nhiều trạm PLC …
2.2 Các bước thực hiện để viết một chương trình điều khiển.
Khai báo phần cứng .
Bước 1 : vào Simatic manager / file / new (và một Project mới )
hoặc vào file / open (Với trường hợp một Project có sẵn ).
Bước 2 : Vào Insert / Station / Simatic 300 – Hardware.
Bước 3 : Kích đúp vào Hardware – Simatic 300 (1 ).
+Rack – Rail
+Chọn nguồn – PS thích hợp
+Chọn CPU
+Chọn SM : DI ; DO ; DI/DO ; AI ; AO ; AI/ AO .
Trường hợp không muốn khai báo cấu hình cứng mà đi ngay vào chương trình
ứng dụng , ta chọn : Insert / Program / S7 Program.
2.3 Hệ lệnh của phần mềm step7
Ngôn ngữ “liệt kê lệnh” , ký hiệu là STL ( Statement list ) . Đây là dạng ngôn ngữ
lập trình thông thường của máy tính . Một chương trình được ghép bởi nhiều câu lệnh
theo một thuật toán nhất định , mỗt lệnh chiếm một hàng và đều có cấu trúc chung
“PLC S7-300 có ngôn ngữ lập trình cơ bản sau:


- tên lệnh” + “toán hạng”.
25
25
Ch¬ng 4: PhÇn mÒm STEP7
- Ngôn ngữ “hình thang” , ký hiệu là LAD (Ladder logic) . đây là dạng ngôn
ngữ đồ hoạ thích hợp với những người quen thiết kế mạch điều khiển logic.
- Ngôn ngữ “hình khối” , ký hiệu là FBD ( Funtion Block Diagram) . Đây cũng
là kiểu ngôn ngữ đồ hoạ dành cho người có thói quen thiết kế mạch điều khiển
số .
+ Ladder Diagram LAD
+ Statement List STL
A I 0.0
A I 0.1
O
A I 0.2
A I 0.3
= Q 4.1
+ Function Block Diagram
I0.0
I0.1
I0.2
I0.3
26
26
>=1
&
&
= Q4.1
Ch¬ng 4: PhÇn mÒm STEP7
Hình 8 : Các kiểu ngôn ngữ lập trình trong STEP7

Một chương trình viết trên LAD hoặc FBD có thể chuyển sang sạng STL nhưng
ngược lại thì không . Trong STL có nhiều lệnh không có trong LAD hay FBD . Phần
sau sẽ giới thiệu các lệnh cơ bản của ngôn ngữ STL.
2.3.1 Nhóm lệnh Lôgic tiếp điểm
Toán hạng kiểu BOOL độ dài là một bit và có hai trạng thái là 0 và 1 .
Khi thực hiện lệnh , CPU sẽ ghi nhận lại trạng thái của phép tính trung gian cũng
như kết quả của một thanh ghi đặc biệt 16 bits , được gọi là thanh ghi trạng thái
( status word) . Mặc dù thanh ghi trạng thái này có độ dài 16 bits nhưng chỉ sử dụng 9
bits với cấu trúc như sau :
BR CC1 CC0 OV OS OR STA RLO FC
FC (fist check) : FC=0 khi dãy lệnh logic tiếp điểm vừa được kết thúc
RLO ( refult of logic operation) : kết quả tức thời của phép tính logic vừa được
thực hiện
STA ( status bit) : bít trạng thái này luôn có giá trị logic của tiếp điểm được chỉ
định trong lệnh.
OR : Ghi lại giá trị của phép tính logic ^ cuối cùng được thực hiện để phụ giúp
cho việc sử dụng phép tính ^ sau đó .
OS : (Stored overfow bit) : ghi lại giá trị bits bị tràn ra ngoài mảng ô nhớ .
OV ( overflow bit) : bit báo kết quả phép tính bị tràn ra ngoài mảng ô nhớ.
CC0 và CC1 ( Condition code ) : hai bits báo trạng thái của kết quả phép tính
với số nguyên , số thực , phép dịch chuyển hoặc phép tính logic trong ACCU .
BR ( Binary result bit) : Bit trạng thái
TT Lệnh thực hiện
Cú Pháp Toàn hạng (TH)
1
Lệnh bán giá trị logic của RLO
tới ô nhớ có địa chỉ được chỉ thị
trong toán hạng .
= <TH> Là địa chỉ bit I, Q , M , L
, D

27
27
Ch¬ng 4: PhÇn mÒm STEP7
2
Nếu FC =0 : Gán giá trị logic
của toán hạng vào RLO , sau đó
dựng FC=1 : RLO = <RLO> ^
<TH>
A <TH> Là dữ liệu kiểu blood
hoặc địa chỉ bit
I,Q,M,L , D, T, C
3
Nếu FC =0 : lệnh sẽ gán giá trị
logic nghịch đảo toán hạng vào
RLO .
Nếu FC = 1 : Lệnh sẽ thực hiện
phép tính ^ giữa RLO với giá
trị nghịch đảo của toán hạng và
ghi lại kết quả vào RLO.
AN
<TH>
Là dữ liệu kiểu blood
hoặc địa chỉ bit
I,Q,M,L , D, T, C
4
Nếu FC= 0 : lệnh sẽ gán giá
logic của toán hạng vào RLO.
Nếu FC =1 : lệnh sẽ thực hiện
phép tính v giữa RLO với toán
hạng và ghi lại kết quả vào

RLO.
N <TH> Là dữ liệu kiểu blood
hoặc địa chỉ bit
I,Q,M,L , D, T, C
5
Nếu FC =0 : lệnh sẽ gán giá trị
logic nghịch đảo toán hạng vào
RLO .
Nếu FC =1 : lệnh sẽ thực hiện
phép tính v giữa RLO với toán
hạng và ghi lại kết quả vào
RLO.
ON
<TH>
Là dữ liệu kiểu blood
hoặc địa chỉ bit
I,Q,M,L , D, T, C
6 Nếu FC =0 : lệnh sẽ gán giá trị
logic của biểu thức trong dấu
ngoặc sau nó vào RLO.
Nếu FC = 1 : Lệnh sẽ thực hiện
A( Không có hạng toán
28
28
Ch¬ng 4: PhÇn mÒm STEP7
phép tính ^ giữa RLO với giá trị
logic của biểu thức trong dấu
ngoặc sau nó và ghi lại kết quả
vào RLO
7

Nếu FC =0 : lệnh sẽ gán giá trị
logic của biểu thức trong dấu
ngoặc sau nó vào RLO.
Nếu FC=1 : Lệnh sẽ thực hiện
phép tính ^ giữa RLO với giá trị
nghịch đảo logic của biểu thức
sau dấu ngoặc và ghi lại kết quả
vào RLO.
AN( Không có toán hạng
8
Nếu FC =0 : lệnh sẽ gán giá trị
logic của biểu thức trong dấu
ngoặc sau nó vào RLO.
Nếu FC = 1 : Lệnh sẽ thực hiện
phép tính v giữa RLO với giá trị
logic của biểu thức trong dấu
ngoặc sau nó và ghi lại kết quả
vào RLO
O( Không có toán hạng
9
Nếu FC= 0 : lệnh sẽ gán giá trị
logic nghịch đảo của biểu thức
sau nó vào RLO
Nếu FC = 1 : Lệnh sẽ thực hiện
phép tính v giữa RLO với giá trị
nghịch đảo của biểu thức trong
dấu ngoặc sau nó và ghi lại kết
quả vào RLO
ON( Không có toán hạng
29

29
Ch¬ng 4: PhÇn mÒm STEP7
10
Nếu FC= 0 : lệnh sẽ gán giá
logic của toán hạng vào RLO.
Nếu FC=1 : Lệnh sẽ kiểm tra
xem nội dung của RLO và giá
trị logic của toán hạng có khác
nhau không . Trong trường hợp
khác nhau thì ghi 1 vào RLO ,
ngược lại thì ghi 0 .
X <TH> Là dữ liệu kiểu blood
hoặc địa chỉ bit
I,Q,M,L , D, T, C
11
Nếu FC =0 : : lệnh sẽ gán giá trị
nghịch đảo toán hạng vào
RLO .
Nếu FC=1 : Lệnh sẽ kiểm tra
xem nội dung của RLO và giá
trị logic của toán hạng có giống
nhau không . Trong trường hợp
giống nhau thì ghi 1 vào RLO ,
ngược lại thì ghi 0 .
XN <
TH>
Là dữ liệu kiểu blood
hoặc địa chỉ bit
I,Q,M,L , D, T, C
12

Nếu FC =0 : lệnh sẽ gán giá trị
logic của biểu thức trong dấu
ngoặc sau nó vào RLO.
Nếu FC =1 : lệnh sẽ đảo nội
dung của RLO khi biểu thức
dấu ngoặc sau nó có giá trị 1 .
X( Không có toán hạng
13
Nếu FC= 0 : lệnh sẽ gán giá trị
logic nghịch đảo của biểu thức
trong dấu ngoặc sau nó vào
RLO
Nếu FC =1 : lệnh sẽ đảo nội
dung của RLO khi biểu thức
dấu ngoặc sau nó có giá trị 0 .
XN( Không có toán hạng
14
Lệnh có tác dụng ghi 1 vào
RLO
SET Không có toán hạng
30
30
Ch¬ng 4: PhÇn mÒm STEP7
15
Lệnh có tác dụng ghi 0 vào
RLO
CLR Không có toán hạng
16
Lệnh có tác dụng đảo nội dung
của RLO

NOT Không có toán hạng
17
Nếu RLO =1 : Lệnh sẽ ghi giá
trị 1 vào ô nhớ có địa chỉ cho
trong toán hạng.
S<TH> Là địa chỉ bit I, Q , M , L
, D
.
18
Nếu RLO =1 : Lệnh sẽ ghi giá
trị 0vào ô nhớ có địa chỉ cho
trong toán hạng.
R<TH> Là địa chỉ bit I, Q , M , L
, D
.
19
Nếu RLO chuyển trạng thái từ 0
đến 1 thì giá trị logic 1 được
duy trì trong toán hạng trong
thời gian một vòng quét . Sau
này thì FC=0.
FP<TH> Là địa chỉ bit I, Q , M , L
, D
.
20
Nếu RLO chuyển trạng thái từ 1
xuống 0 thì giá trị logic 1 được
duy trì trong toán hạng trong
thời gian là một vòng quét . Sau
lệnh này FC=0.

FN<TH> Là địa chỉ bit I, Q , M , L
, D
.
21
Lệnh chuyển nội dung của RLO
vào bit trạng thái BR
SAVE Không có toán hạng.
2.3.2 Lệnh đọc , ghi và đảo vị trí bytes trong hai thanh ghi ACCU1 và
ACCU2.
TT Lệnh Cú Pháp Toán hạng (TH)
1 Lệnh chuyển dữ liệu hoặc nội
dung của ô nhớ có địa chỉ là
L <TH> Là dữ liệu (số hoặc
nhị phân ) hoặc địa
31
31
Ch¬ng 4: PhÇn mÒm STEP7
toán hạng vào thanh ghi
ACCU1 và chuyển nội dung cũ
của ACCU1 vào ACCU2
chỉ.
2
Lệnh chuyển nội dung của
ACCU1 vào ô nhớ có địa chỉ là
toán hạng . Lệnh không thay
đổi nội dung của ACCU2.
T <TH>
Phải luôn là biến .
3
Lệnh chuyển đổi nội dung của

thanh ghi trạng thái vào từ thấp
của ACCU1 . Lệnh không làm
thay đổi thanh ghi trạng thái .
L STW
STW
4
Lệnh chuyển 9 bitscuar từ thấp
của ACCU1 . Nội dung của
ACCU2 và thanh ghi trạng thái
không bị thay đổi.
T STW
STW
5
Chuyển nội dung của ACCU2
vào ACCU1 . Nội dung của
ACCU2 và thanh ghi trạng thái
không bị thay đổi .
POP
Không có toán
hạng.
6
Chuyển nội dung của ACCU1
vào ACCU2 . Nội dung của
ACCU1 và thanh ghi trạng thái
không bị thay đổi .
PUSH
Không có toán
hạng .
7
Nội dung của ACCU1 được ghi

vào ACCU2 và ngược lại nội
dung của ACCU2 được ghi vào
ACCU1 . Lệnh không làm nội
dung của thanh ghi trạng thái
thay đổi.
TAK
Không có toán
hạng.
8
Lệnh có tác dụng làm thay đổi
hai byte của từ thấp trong thanh
ghi ACCU1 . Lệnh không làm
thay đổi thanh ghi trạng thái.
CAW
Không có toán
hạng.
9 Lệnh có tác dụng đảo nội dung CAD Không có toán
32
32
Ch¬ng 4: PhÇn mÒm STEP7
của tất cả 4 byte trong thanh
ghi ACCU1 , Lệnh không làm
thay đổi thanh ghi trạng thái .
hạng.
10
Lệnh có tác dụng đảo nội dung
tất cả các bits trong từ thấp của
thanh ghi ACCU1 . Nội dung
của từ cao trong thanh ghi
ACUU1 và của ACCU2 , thanh

ghi trạng thái không bị thay đổi
INVI
Không có toán
hạng.
11
Lệnh có tác dụng đổi nội dung
tất cả các bits trong ACCU1
.Nội dung của ACCU2 và của
thanh ghi trạng thái không bị
thay đổi .
INVD
Không có toán hạng
2.3.3 Các lệnh lôgic thực hiện trên thanh ghi ACCU
TT
Lệnh thực hiện phép tính
Cú pháp
Toán
hạng
(TH)
1
- Nếu không có toán hạng , lệnh thực hiện
phép tính ^ giữa các bits thuộc từ thấp của
hai thanh ghi ACCU1, ACCU2 . Kết quả
được ghi lại vào từ thấp của ACCU1 . Nội
dung của từ cao trong ACCU1 , ACCU2
không bị thay đổi .
- Nếu có toán hạng thì phải là một dữ liệu
hằng có kích thước 16 bits . Khi có lệnh
thực hiện phép tính ^ giữa dữ liệu với từ
thấp của ACCU1 . Nội dung của từ cao

trong ACCU1 và ACCU2 không bị thay
đổi .
AW
{<dữ
liệu
hằng>}
Có thể
có hoặc
không.
2 - Nếu không có toán hạng , lệnh thực hiện
phép tính ^ giữa các bits của hai thanh ghi
AD{<dữ
liệu hằng
Có thể
có hoặc
33
33
Ch¬ng 4: PhÇn mÒm STEP7
ACCU1 và ACCU2 . kết quả được ghi lại
vào ACCU1. Nội dung của ACCU2 không
bị thay đổi.
- Nếu có toán hạng thì toán hạng phải là một
dữ liệu hằng có kích thước 32 bits . Khi đó
lệnh thực phép tính ^ giữa dữ liệu với thanh
ghi ACCU1 . Kết quả được ghi lại vào
thanh ghi ACCU1 . Nội dung của thang ghi
ACCU2 không bị thay đổi .
>} không.
3
- Nếu không có toán hạng , lệnh thực hiện

phép tính v giữa các bits thuộc từ thấp của
hai thanh ghi ACCU1, ACCU2 . Kết quả
được ghi lại vào từ thấp của ACCU1 . Nội
dung của từ cao trong ACCU1 ,ACCU2
không bị thay đổi .
- Nếu có toán hạng thì toán hạng phải là một
dữ liệu hằng có kích thước 16 bits . khi đó
lệnh thực hiện phép tính v giữa toán hạng
và từ thấp của ACCU1 . Kết quả được ghi
lại vào ACCU1. Nội dung của từ cao trong
ACCU1, ACCU2 không bị thay đổi .
OW
{<dữ
liệu hằng
>}
Có thể
có hoặc
không.
4 - Nếu không có toán hạng , lệnh thực hiện
phép tính v giữa tất cả 32 bits của hai thanh
ghi ACCU1, ACCU2 . Kết quả được ghi lại
vào ACCU1 . Nội dung của ACCU2 không
bị thay đổi .
- Nếu có toán hạng thì toán hạng phải là một
dữ liệu hằng có kích thước 32 bits . Khi đó
lệnh thực hiện phép tính v giữa 32 bits của
thanh ghi ACCU1 với toán hạng . Kết quả
được ghi lại vào ACCU1 .Nội dung của
OD
{<dữ

liệu hằng
>}
Có thể
có hoặc
không.
34
34
Ch¬ng 4: PhÇn mÒm STEP7
ACCU2 không bị thay đổi .
5
- Nếu không có toán hạng , lệnh thực hiện
phép tính exclusive or giữa các bits của hai
từ thấp của hai thanh ghi ACCU1 , ACCU2
, tức là nếu hai bit không cùng giá trị thì kết
quả sẽ là 1 . Toàn bộ 16 bit kết quả được
ghi lại vào từ thấp trong ACCU1 . Nội
dung của từ cao trong ACCU1, ACCU2
không bị thay đổi .
- Nếu có toán hạng thì toán hạng phải là một
dữ liệu có kích thước 32 bits. Khi đó lệnh
thực hiện phép tính exclusive or giữa các
bits của từ thấp trong thanh ghi ACCU1 và
dữ liệu cho trong toán hạng , tức là nếu hai
bit không cùng giá trị thì kết quả sẽ là 1 .
Toàn bộ 16 bit kết quả được ghi lại vào từ
thấp trong ACCU1 . Nội dung của từ cao
trong ACCU1 , ACCU2 không bị thay đổi .
XOW{<
dữ liệu
hằng >}

Có thể
có hoặc
không.
6 - Nếu không có toán hạng , lệnh thực hiện
phép tính exclusive or giữa các bits của hai
thanh ghi ACCU1 và ACCU2 . tức là nếu
hai bits không cung giá trị thì bits kết quả
sẽ có giá trị là 1 . toàn bộ 32 bits kết qủa
được ghi lại vào ACCU1 , nội dung của
ACCU2 không bị thay đổi .
- Nếu có toán hạng thì toán hạng phải là một
dữ liệu hằng có kích thước 32 bits , khi đó
lệnh sẽ thực hiện phép tính exclusive or
giữa các bits ACCU1 và toán hạng , tức là
nếu hai bit không cùng giá trị thì bits kết
XOD
{<dữ
liệu hằng
>}
35
35
Ch¬ng 4: PhÇn mÒm STEP7
quả sẽ có giá trị là 1 .toàn bộ 32 bits kết
qủa được ghi lại vào ACCU1 . Nội dung
của ACCU2 không bị thay đổi .
2.3.4 Nhóm lệnh tăng giảm nội dung thanh ghi ACCU
STT
Lệnh Cú
pháp
Toán

hạng
1
Lệnh thực hiện phép cộng giữa byte thấp của từ thấp
trong ACCU1 với toán hạng . Kết qủa được ghi lại
vào byte thấp của từ thấp của ACCU1 . Nội dung
byte cao của từ thấp , của từ cao trong ACCU1 và
của ACCU2 không bị thay đổi . Lệnh không làm
thay dổi thanh ghi trạng thái .
INC
<TH>
Là số
nguyên
8 bits
2
Lệnh thực hiện phép trừ byte thấp của từ thấp trong
ACCU1 cho toán hạng . Kết quả được ghi lại vào
byte thấp của từ thấp của ACCU1 . Nội dung byte
cao của từ thấp , của từ cao trong ACCU1 và của
ACCU2 không bị thay đổi . Lệnh không sửa đổi nội
dung thanh ghi trạng thái
DEC
<TH>
Là số
nguyên
8 bits
2.3.5 Nhóm lệnh dịch chuyển nội dung thanh ghi ACCU
TT
Lệnh
Cú pháp
Toán

hạng
1

Nếu có toán hạng thì toán hạng là số nguyên không
dấu trong khoảng 0÷32. khi đó lệnh thực hiện phép
tính xoay tròn các bits của ACCU1 theo chiều trái .
RLD
{<TH>}
Có hoặc
không có
toán
hạng.
2 Lệnh thực hiện phép tính xoay ACCU1 theo
chiều trái 1 bit . bit cuối bị đẩy ra khỏi ACCU1
được ghi vào ACCU1 . Nội dung của ACCU1
RLDA Không
có toán
hạng.
36
36
Ch¬ng 4: PhÇn mÒm STEP7
được chuyển
vào bit 0.
3
- Nếu có toán hạng thì toán hạng là số
nguyên trong khoảng 0÷32 . khi đó lệnh
thực hiện phép tính xoay tròn các bit của
ACCU1 theo chiều phải.
- Nếu không có toán hạng , lệnh thực hiện
phép tính xoay tròn các bits của ACCU1

theo chiều phải
RRD
{<TH>}
Có hoặc
không có
toán
hạng
4
Lệnh thực hiện phép tính xoay ACCU1 theo chiểu
phải 1 bit .
RRDA Khônh
có toán
hạng.
5
Dịch trái các bits của từ thấp của ACCU1 SLW
{<TH>}
Có hoặc
không có
toán
hạng
6
Dịch trái các bits của ACC1 SLD
{<TH>}
Có thể
có hoặc
không có
toán
hạng.
7
Dịch phải các bits của từ thấp của ACCU1 . SRW

{<TH>}
Có hoặc
không có
toán
hạng
8
Dịch trái các bit của ACCU1 SRD
{<TH>}
Có hoặc
không có
toán
hạng
9
Dịch phải số nguyên 16 bit trong ACCU1 SSI
{<TH>}
Có hoặc
không có
toán
37
37
Ch¬ng 4: PhÇn mÒm STEP7
hạng
10
Dịch phải số nguyên 32 bit trong ACCU1 của
toán hạng
SSD
{<TH>}
Có hoặc
không có
toán

hạng
2.3.6 Nhóm lệnh so sánh số nguyên 16 bits
STT Lệnh so sánh

pháp
Toán hạng
1
Lệnh thực hiện phép so sánh hai số nguyên 16
bits nằm trong hai từ thấp trong hai thanh ghi
ACCU1 và ACCU2 nếu số nguyên trong từ thấp
của ACCU1 có nội dung giống như số nguyên
trong từ thấp của ACCU2 thì bits trạng thái RLO
=1 , ngược lại RLO=0.
==I không có
toán
hạng .
2
Lệnh thực hiện phép so sánh hai số nguyên
16bits nằm trong hai từ thấp trong hai thanh ghi
ACCU1, ACCU2 . Nếu số nguyên trong từ thấp
của ACCU1 có nội dung khác với số nguyên
trong từ thấp của ACCU2 thì bits trạng thái
RLO=1, ngược lại bằng 0
<>I không có
toán
hạng .
3
Lệnh thực hiện phép so sánh hai số nguyên
16bits nằm trong hai từ thấp trong hai thanh ghi
ACCU1, ACCU2.Nếu số nguyên chứa trong từ

thấp ACCU2 lớn hơn số nguyên trong từ thấp của
ACCU1 thì RLO =1 ngược lại RLO = 0.
>I không có
toán
hạng .
4 Lệnh thực hiện phép so sánh hai số nguyên
16bits nằm trong hai từ thấp trong hai thanh ghi
ACCU1, ACCU2.Nếu số nguyên chứa trong từ
thấp ACCU2 nhỏ hơn số nguyên trong từ thấp
<I không có
toán
hạng .
38
38
Ch¬ng 4: PhÇn mÒm STEP7
của ACCU1 thì RLO =1 ngược lại RLO = 0.
5
Lệnh thực hiện phép so sánh hai số nguyên
16bits nằm trong hai từ thấp trong hai thanh ghi
ACCU1, ACCU2.Nếu số nguyên chứa trong từ
thấp ACCU2 lớn hơn hoặc bằng số nguyên trong
từ thấp của ACCU1 thì RLO =1 ngược lại RLO =
0.
>=I không có
toán
hạng .
6
Lệnh thực hiện phép so sánh hai số nguyên
16bits nằm trong hai từ thấp trong hai thanh ghi
ACCU1, ACCU2.Nếu số nguyên chứa trong từ

thấp ACCU2 nhỏ hơn hoặc bằng số nguyên trong
từ thấp của ACCU1 thì RLO =1 ngược lại RLO =
0.
<=I không có
toán
hạng .
2.3.7 Nhóm lệnh so sánh hai số nguyên 32 bits
STT Lệnh so sánh Cú pháp
Toán hạng
1
Lệnh thực hiện hai số nguyên 32 bits trong hai
thanh ghi ACCU1 và ACCU2 . Nếu chúng bằng
nhau thì RLO =1 , ngược lại RLO = 0.
==D Không có
toán hạng
2
Lệnh thực hiện hai số nguyên 32 bits trong hai
thanh ghi ACCU1 và ACCU2.Nếu số nguyên
trong ACCU2 không bắng số nguyên trong
ACCU1 thì RLO = 1 ngược lại RLO = 0.
<>D Không có
toán hạng
3
Lệnh thực hiện hai số nguyên 32 bits trong hai
thanh ghi ACCU1 và ACCU2. Nếu số nguyên
trong ACCU2 lớn hơn số nguyên trong ACCU1
thì RLO = 1 ngược lại RLO = 0.
>D Không có
toán hạng
4 Lệnh thực hiện hai số nguyên 32 bits trong hai <D Không có

39
39
Ch¬ng 4: PhÇn mÒm STEP7
thanh ghi ACCU1 và ACCU2. Nếu số nguyên
trong ACCU2 nhỏ hơn số nguyên trong ACCU1
thì RLO = 1 ngược lại RLO = 0.
toán hạng
5
Lệnh thực hiện hai số nguyên 32 bits trong hai
thanh ghi ACCU1 và ACCU2. . Nếu số nguyên
trong ACCU2 lớn hơn hoặc bằng số nguyên
trong ACCU1 thì RLO = 1 ngược lại RLO = 0.
>=D Không có
toán hạng
6
Lệnh thực hiện hai số nguyên 32 bits trong hai
thanh ghi ACCU1 và ACCU2. Nếu số nguyên
trong ACCU2 nhỏ hơn hoặc bằng số nguyên
trong ACCU1 thì RLO = 1 ngược lại RLO = 0.
<=D Không có
toán hạng
2.3.8 Nhóm lệnh so sánh hai số thực 32 bits
STT Lệnh so sánh

pháp
Toán hạng
1
Lệnh thực hiện so sánh hai số thực 32 bits trong
hai thanh ghi ACCU1 và ACCU2 . Nếu số thực
trong ACCU1 bằng số thực trong ACCU2 thì bits

trạng thái RLO =1 ngược lại RLO = 0.
==R Không có
toán hạng.
2
Lệnh thực hiện so sánh hai số thực 32 bits trong
hai thanh ghi ACCU1 và ACCU2. Nếu số thực
trong ACCU2 không bằng số thực trong ACCU1
thì bits trạng thái RLO =1 ngược lại RLO = 0.
<>R Không có
toán hạng.
3
Lệnh thực hiện so sánh hai số thực 32 bits trong
hai thanh ghi ACCU1 và ACCU2. Nếu số thực
trong ACCU2 lớn hơn số thực trong ACCU1 thì
bits trạng thái RLO =1 ngược lại RLO = 0.
>R Không có
toán hạng.
4 Lệnh thực hiện so sánh hai số thực 32 bits trong <R Không có
40
40
Chơng 4: Phần mềm STEP7
hai thanh ghi ACCU1 v ACCU2. Nu s thc
trong ACCU2 nh hn s thc trong ACCU1 thỡ
bits trng thỏi RLO =1 ngc li RLO = 0.
toỏn hng.
5
Lnh thc hin so sỏnh hai s thc 32 bits trong
hai thanh ghi ACCU1 v ACCU2. . Nu s thc
trong ACCU2 ln hn hoc bng s thc trong
ACCU1 thỡ bits trng thỏi RLO =1 ngc li

RLO = 0.
>=R Khụng cú
toỏn hng.
6
Lnh thc hin so sỏnh hai s thc 32 bits trong
hai thanh ghi ACCU1 v ACCU2. . N u s thc
trong ACCU2 nh hn hoc bng s thc trong
ACCU1 thỡ bits trng thỏi RLO =1 ngc li
RLO = 0.
<=R Khụng cú
toỏn hng.
2.3.9 Các lệnh toán học
A. Nhóm lệnh làm việc với số nguyên 16 bits
STT Lệnh Cú pháp Toán hạng
1
Lệnh thực hiện phép cộng hai số nguyên
nằm trong từ thấp của ACCU1 và ACCU2.
Kết quả đợc ghi lại vào từ thấp của
ACCU1. Nội dung của thanh ghi ACCU2
không bị thay đổi. Nếu kết quả nằm trong
khoảng -32768 32767, OV = 0, ngợc lại
OV = OS = 1
+I Không có
toán hạng
2
Lệnh thực hiện phép trừ hai số nguyên 16
bits nằm trong từ thấp của ACCU2 cho số
nguyên trong từ thấp của ACCU. Kết quả
đợc ghi lại vào từ thấp của ACCU1. Nội
dung của thanh ghi ACCU2 không bị thay

đổi. Nếu kết quả nằm trong khoảng -32768
32767, OV = 0, ngợc lại OV = OS = 1
-I Không có
toán hạng
3 Lệnh thực hiện phép nhân hai số nguyên
16 bits trong từ thấp của ACCU1, ACCU2.
Kết quả là một số nguyên 32 bits sẽ đợc
*I Không có
toán hạng
41
41
Chơng 4: Phần mềm STEP7
ghi lại vào ACCU1. Nội dung của thanh
ghi ACCU2 không bị thay đổi. Nếu kết
quả nằm trong khoảng -32768 32767,
OV = 0, ngợc lại OV = OS = 1
4
Lệnh thực hiện phép chia hai số nguyên 16
bits trong từ thấp của ACCU2 cho số
nguyên 16 bits trong từ thấp của ACCU.
Kết quả là một số nguyên 16 bits sẽ đợc
ghi lại vào từ thấp của ACCU1.
/I Không có
toán hạng
B. Nhóm lệnh làm việc với số nguyên 32 bits
STT Lệnh Cú pháp Toán hạng
1
Lệnh thực hiện phép cộng hai số nguyên
32 bits nằm trong ACCU1 và ACCU2. Kết
quả đợc ghi lại vào ACCU1.

+D Không có
toán hạng
2
Lệnh thực hiện phép trừ hai số nguyên 32
bits nằm trong ACCU2 cho số nguyên 32
bits trong ACCU1. Kết quả đợc ghi lại vào
ACCU1.
-D Không có
toán hạng
3
Lệnh thực hiện phép nhân hai số nguyên
32 bits nằm trong ACCU1 và ACCU. Kết
quả là môtk số nguyên 32 bits sẽ đợc ghi
lại vào ACCU1.
*D Không có
toán hạng
4
Lệnh thực hiện phép chia số nguyên 32
bits trong ACCU2 cho số nguyên 32 bits
trong ACCU. Kết quả là một số nguyên
32bits sẽ đợc ghi lại vào ACCU1.
/D Không có
toán hạng
5
Lệnh xác định phần d của phép chia số
nguyên 32 bits trong ACCU2 cho số
nguyên 32 bits trong ACCU. Kết quả là
một số nguyên 32 bits sẽ đợc ghi lại vào
ACCU1.
MOD Không có

toán hạng
C. Nhóm lệnh làm việc với số thực
TT Lệnh Cú pháp Toán hạng
1
Lệnh thực hiện phép cộng hai số thực dấu
phẩy động nằm trong ACCU1 và ACCU2.
Kết quả đợc ghi lại vào ACCU1
+R Không có
toán hạng
2
Lệnh thực hiện phép trừ số thực trong
ACCU2 cho số thực trong ACCU1. Kết
quả đợc ghi lại vào ACCU1
-R Không có
toán hạng
3 Lệnh thực hiện phép nhân hai số thực *R Không có
42
42
Chơng 4: Phần mềm STEP7
trong ACCU1 và ACCU2 Kết quả đợc
ghi lại vào ACCU1
toán hạng
4
Lệnh thực hiện phép chia số thực trong
ACCU2 cho số thực trong ACCU1 Kết
quả đợc ghi lại vào ACCU1
/R Không có
toán hạng
5
Lệnh xác định giá trị tuyệt đối của số thực

trong ACCU1. Kết quả sẽ đợc ghi lại vào
ACCU1. Đặc biệt, lệnh này không làm
thay đổi nội dung của các bits trạng thái
ABS Không có
toán hạng
6
Lệnh tính sin của số thực trong ACCU1.
Kết quả đợc ghi lại vào ACCU1
SIN Không có
toán hạng
7
Lệnh tính Cos của số thực trong ACCU1.
Kết quả đợc ghi lại vào ACCU1
COS Không có
toán hạng
8
Lệnh tính tg của số thực trong ACCU1.
Kết quả đợc ghi lại vào ACCU1
TAN Không có
toán hạng
9
Lệnh tính arcsin của số thực trong
ACCU1, số thực này phải nằm trong
khoảng -1- 1. Kết quả là một số thực trong
khoảng và đợc ghi lại vào ACCU1
ASIN Không có
toán hạng
10
Lệnh tính arccos của số thực trong
ACCU1, số thực này phải nằm trong

khoảng -1- 1. Kết quả là 1 số thực trong
khoảng 0- và đợc ghi lại vào ACCU1. Nội
dung của thanh ghi ACCU2 không bị thay
đổi.
ACOS Không có
toán hạng
11
Lệnh tính arctg của số thực trong ACCU1.
Kết quả là một số thực trong khoảng P và
đợc ghi lại vào ACCU1. Nội dung của
thanh ghi ACCU2 không bị thay đổi.
ATAN Không có
toán hạng
12
Lệnh tính giá trị bình phơng của số thực
trong ACCU1. Kết quả là một số thực
không âm và đợc ghi lại vào ACCU1. Nội
dung của ACCU2 không bị thay đổi
SQR Không có
toán hạng
13
Lệnh tính giá trị bình phơng của số thực
trong ACCU1, số thực này phải là một số
thực không âm. Kết quả là một số thực
không âm và đợc ghi lại vào ACCU1
SQRT Không có
toán hạng
14
Lệnh có tác dụng đổi dấu số thực dấu phẩy
động 32 bits trong ACCU1. Kết quả lại đ-

ợc cất trong ACCU1.
NERG Không có
toán hạng
2.3.10 Lệnh logic tiếp điểm trên thanh ghi trạng thái
A. Lệnh AND trên thanh ghi trạng thái
43
43
Chơng 4: Phần mềm STEP7
STT Lệnh Cú pháp
1 Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc ghi
lại vào RLO.
A < 0
2 Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc ghi
lại vào RLO.
A > 0
3 Lệnh tính RLO ^ [(CCO ^ CC1)v(CCO^CC1)].
Kết quả đợc ghi lại vào RLO.
A <> 0
4
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc ghi
lại vào RLO
A = = 0
5
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc ghi
lại vào RLO
A > = 0
6
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc ghi
lại vào RLO
A < = 0

B. Lệnh OR trên thanh ghi trạng thái
STT Lệnh Cú pháp
1
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc
ghi lại vào RLO.
O < 0
2
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc
ghi lại vào RLO.
O > 0
3
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc
ghi lại vào RLO.
O <> 0
4
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc
ghi lại vào RLO
O = = 0
5
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc
ghi lại vào RLO
O > = 0
6
Lệnh tính RLO ^ CCO ^ CC1. Kết quả đợc
ghi lại vào RLO
O < = 0
2.3.11 Lệnh đổi kiểu dữ liệu
A. Chuyển đổi số BCD thành số nguyên và ngợc lại
STT Lệnh chuyển đổi Cú pháp Toán hạng
1

Lệnh thực hiện việc chuyển đổi một số
BCD có ba chữ số nằm trong 12 bits đầu
của ACCU1 thành số nguyên 16 bits. Kết
quả đợc cất lại vào 16 bits cuối của
ACCU1.
BTI
Không có
toán hạng
2
Lệnh thực hiện việc chuyển đổi một số
BCD có 7 chữ số nằm trong 28 bits đầu
của ACCU1 thành số nguyên 32bits. Kết
quả đợc cất lại vào 16 bits cuối của
BTD
Không có
toán hạng
44
44
Chơng 4: Phần mềm STEP7
ACCU1.
3
Lệnh thực hiện việc chuyển đổi số nguyên
16 bits nằm trong từ thấp của ACCU1
thanh số BCD có 3 chữ số nằm. Kết quả đ-
ợc cất lại vào từ thấp của ACCU1.
ITB
Không có
toán hạng
4
Lệnh thực hiện việc chuyển đổi số nguyên

32 bits trong ACCU1 thanh số BCD có 7
chữ số nằm. Kết quả đợc cất lại vào
ACCU1.
DTB
Không có
toán hạng
C. Chuyển đổi số nguyên 16 bits thành số nguyên 32 bits
STT Lệnh chuyển đổi Cú pháp Toán hạng
1
Lệnh thực hiện việc chuyển đổi một số
nguyên 16 bits trong từ thấp của ACCU1
thành số nguyên 32 bits. Kết quả đợc cất
lại vào ACCU1.
ITD
Không có
toán hạng
D. Chuyển đổi số nguyên 32 bits thành số thực
STT Lệnh chuyển đổi Cú pháp Toán hạng
1
Lệnh thực hiện việc chuyển đổi số thực
dấu phẩy động trong ACCU1 thành số
nguyên 32 bits có giá trị gần nhất so với
số thực đã cho. Nếu số thực đã cho nằm
giữa hai số nguyên thì CPU sẽ lấy số
chẵn. Kết quả đợc cất vào ACCU1.
RND
Không có
toán hạng
2
Lệnh thực hiện việc chuyển đổi số thực

dấu phẩy động trong ACCU1 thành số
nguyên 32 bits có giá trị nhỏ nhất nhng
không nhỏ hơn số thực đã cho. Kết quả đ-
ợc cất vào ACCU1.
RND+
Không có
toán hạng
3
Lệnh thực hiện việc chuyển đổi số thực
dấu phẩy động trong ACCU1 thành số
nguyên 32 bits có giá trị lớn nhất nhng
không lớn hơn số thực đã cho. Kết quả đ-
ợc cất vào ACCU1.
RND-
Không có
toán hạng
4
Lệnh thực hiện việc lấy phần nguyên của
số thực dấu phẩy động trong. Kết quả đợc
cất vào ACCU1. Nội dung của ACCU2
không bị thay đổi.
TRUNC
Không có
toán hạng
2.3.12 Các lệnh điều khiển chơng trình
A. Nhóm lệnh kết thúc chơng trình
45
45
Chơng 4: Phần mềm STEP7
STT Lệnh chuyển đổi Cú pháp Toán hạng

1
Lệnh thực hiện việc kết thúc chơng trình
trong khối một cách vô điều kiện
BEU
Không có
toán hạng
2
Lệnh thực hiện việc kết thúc chơng trình
trong khối nếu nh RLO = 1.
BEC
Không có
toán hạng
B. Nhóm lệnh rẽ nhánh theo bit trạng thái
STT Lệnh rẽ nhánh Cú pháp
1 Khi BR=1 JBI <nhãn>
2 Khi BR=0 JNBI <nhãn>
3 Khi RLO = 1 JC <nhãn>
4 Khi RLO = 0 JCN <nhãn>
5 Khi CC1 = 0 và CCO = 1 JM <nhãn>
6 Khi CC1 = 1 và CCO = 0 JP <nhãn>
7 Khi CC1 = CCO = 0 JZ <nhãn>
8 Khi CC1 khác CCO JN <nhãn>
9
Khi CC1 = CCO = 0 hoặc CC1 = 0 và CCO
= 1
JMZ <nhãn>
10
Khi CC1 = CCO = 0 hoặc CC1 = 1 và CCO
= 0
JPZ <nhãn>

11 Vô điều kiện JU <nhãn>
Nhãn là một dãy số với nhiều nhất 4 ký tự hoặc số và phải đợc bắt đầu bằng
một ký tự. Khoảng cách bớc nhảy tính theo ô nhớ chứa phơng trình, phải ít hơn 32767
từ. Nơi nhảy đến có thể nằm trớc hoặc sau lệnh nhảy.
46
46
Chơng 4: Phần mềm STEP7
D. Lệnh xoay vòng (LOOP)
STT Lệnh Cú pháp
1
Khi gặp lệnh này thì CPU của S7-300 sẽ tự
giảm nội dung của từ thấp trong ACCU1 đi
một đơn vị và kiểm tra xem kết quả có băng
0 hay không. Nếu khác 0, CPU sẽ thực hiện
bớc nhảy đến đoạn chơng trình đợc đánh
dấu bởi nhãn. Ngợc lại thì CPU thực hiện
lệnh kế tiếp.
LOOP
<nhãn>

E. Lệnh rẽ nhánh theo danh mục(JUMP LITS)
STT Cú pháp
1
Lệnh thực hiện một loạt sự rẽ nhánh tuỳ
theo nội dung của ACCU1. Số các nhánh rẽ
nhiều nhất là 255.
JL
<nhãn>
2.4 Bộ thời gian(Timer)
2.4.1 Nguyên tắc hoạt động

Timer là bộ tạo thời gian trễ o mong muốn giữa tín hiệu logic đầu vào u(t) và tín
hiệu logic đầu ra y(t). S7-300 có 5 loại Timer khác nhau, chúng cùng bắt đầu tạo thời
gian trễ tín hiệu kể từ thời điểm có tín hiệu sờn lên của tín hiệu đầu vào, tức là khi tín
hiệu đầu vào u(t) chuyển trạng thái logic từ 0 lên 1, đợc gọi là thời điểm Timer đợc
kích. Ngoài ra nó còn có thể đợc kích bằng sờn lên của tín hiệu tự động (enable) nếu
nh tại thời điểm có sờn lên của tín hiệu enable, tín hiệu đầu vào u(t) có gia trị logic 1.
2.4.2 Khai báo sử dụng
Việc khai báo sử dụng dụng một Timer bao gồm các bớc sau:
- Khai báo tín hiệu sử dụng enable nếu muốn sử dụng tín hiệu chủ động kích
- Khai báo tín hiệu đầu vào u(t)
- Khai báo thời gian trễ mong muốn
- Khai báo Timer đợc sử dụng(SD,SS,SP,SE,SF)
- Khai báo tín tín hiệu xoá Timer nếu muốn sử dụng chế độ reset chủ động.
STT Khai báo Cú pháp Toán hạng
1
Tín hiệu
enable
A <địa chỉ>
FR <tên Timer>
Địa chỉ bit xác định tín hiệu sẽ
đợc dùng làm tín hiệu chủ động
kích cho Timer cho toán hạng thứ
hai
2
Tín hiệu
đầu vào
L <hằng số> Xác định tín hiệu đầu vào u(t) cho
Timer
3 Thời gian L <hằng số> Xác định thời gian trễ đặt trớc
47

47
Chơng 4: Phần mềm STEP7
trễ mong
muốn
4
Loại
Timer
SD <tên Timer>
SS <tên Timer>
SP <tên Timer>
SE <tên Timer>
SF <tên Timer>
Tên Timer đợc sử dụng
5
Tín hiệu
xoá (reset)
A <địa chỉ>
R <tên Timer>
Xác định tín hiệu sẽ đợc sử dụng
làm tín hiệu chủ động hoá cho
Timer có tên trong toán hạng thứ
hai

2.4.3 Đọc nội dung thanh ghi T-Word(CV)
STT Đọc Cú pháp Toán hạng
1
Số đếm
tức thời
L <tên Timer> Là tên Timer mà thanh ghi T-Word
cua nó sẽ đợc đọc vào ACCU1

2
Thời gian
trễ tức thời
LC <tên Timer> Là tên Timer mà thanh ghi T-Word
của nó sẽ đọc vào vào ACCU1
2.5 Bộ đếm (Counter)
2.5.1 Nguyên tắc hoạt động
Counter là bộ đếm thực hiện chức năng đếm sờn xung của các tín hiệu đầu vào.
Những bộ đếm cua S7-300 đều có thể đồng thời đếm tiến theo sờn lên của một tín
hiệu đầu vào thứ nhất, đợc kí hiệu là CU (counter up) và đếm lùi theo sờn lên của tín
hiệu vào thứ hai, kí hiệu là CD(counter down). Số sờn xung đếm đợc ghi vào thanh
ghi C-Word, bộ đếm báo trạng thái của C-Word ra ngoài qua chân C- bit. Giá trị đặt
trớc PV (preset value) của bộ đếm đợc chuyển vào C-Word tại thời điểm xuất hiện sờn
lên của tín hiệu đặt (set-S). Bộ đếm có thể đợc xoá chủ động bằng tín hiệu xoá(reset).
2.5.2. Khai báo sử dụng
STT
Khai báo
tín hiệu
Cú pháp Toán hạng
1
Kích đếm
(enable)
A <Địa chỉ bit>
FR <Têncounter>
Địa chỉ bit xác định tín hiệu
dùng làm tín hiệu cho bộ đếm cho
trong tên Counter
2 Đợc đếm A <Địa chỉ bit> Sờn lên của tín hiệu Địa chỉ bit
48
48

Chơng 4: Phần mềm STEP7
tiến theo
sờn lên
CU <TênCounter> đợc bộ đếm trong tên Counter
đếm tiến
3
Đợc đếm
lùi theo s-
ờn lên
A <Địa chỉ bit>
CD <Tên Counter>
Sờn lên của tín hiệu Địa chỉ bit
đợc bộ đếm trong tên Counter
đếm lùi
4
Đặt (set)
giá trị đặt
trớc (PV)
A <Địa chỉ bit>
L C#<hằng số>
S <Tên Counter>
Sờn lên của tín hiệu Địa chỉ bit
cho phép chuyển PV vào C-Word
của bộ đếm cho trong toán hạng
thứ nhất
2.5.3 Đọc nội dung của thanh ghi C-Word
Đọc Cú pháp Toán hạng
1
Số đếm
tức thời

dạng
binary
L <Tên Counter> Là tên bộ đếm mà C-Word của nó
đợc đọc vào ACCU1
2
Số đếm
tức thời
dạng BCD
LC <Tên Counter> Là tên bộ đếm mà C-Word của nó
đợc đọc vào ACCU1
2.6.Phơng pháp lập trình
2.6.1 Lập trình tuyến tính(linear progamming)
Kỹ thuật lập trình tuyến tính là phơng pháp lập trình mà toàn bộ chơng trình
ứng dụng sẽ chỉ nằm trong một khối OB1. Kỹ thuật này có u điểm là gọn,rất phù hợp
với những bài toán điều khiển đơn giản, ít nhiệm vụ.
49
49
Chuyển OB1 từ Load
Memory vào Work
Memory và cấp phát
Local block cho nó
Xoá OB1 và giảI
phóng Local
block trong Work
Memory
Hệ
điều
hành
Thực hiện
OB1 trong

Work
Memory
System
memory
Share DB
Instance DB

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×