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

chuong 3 NGÔN NGỮ lập TRÌNH của s7 200

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 (147 KB, 25 trang )

Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

CHƯƠNG III

NGÔN NGỮ LẬP TRÌNH CỦA S7-200
1. Phương pháp lập trình
S7 – 200 biểu diễn một mạch logic cứng bằng một dãy các lệnh lập trình.
Chương trình bao gồm một dãy các lệnh. S7 – 200 thực hiện chương trình bắt
đầu từ lệnh lập trình đầu tiên và kết thúc ở lệnh cuối trong một vòng. Một vòng
như vậy được gọi là vòng quét.
Một vòng (scan cycle) quét được bắt đầu bằng việc đọc trạng thái của đầu
vào, và sau đó thực hiện chương trình. Scan cycle kết thúc bằng việc thay đổi
trạng thái đầu ra. Trước khi bắt đầu một vòng quét tiếp theo S7 – 200 thực thi
các nhiệm vụ bên trong và nhiệm vụ truyền thông. Chu trình thực hiện chương
trình là chu trình lặp.
Cách lập trình cho S7 – 200 nói riêng và cho các PLC của Siemens nói chung
dựa trên hai phương pháp lập trình cơ bản: Phương pháp hình thang (Ladder
Logic viết tắt là LAD) và phương pháp liệt kê lệnh (Statement List viết tắt là
STL).
Nếu chương trình được viết theo kiểu LAD, thiết bị lập trình sẽ tự tạo ra một
chương trình theo kiểu STL tương ứng. Nhưng ngược lại không phải mọi
chương trình được viết theo kiểu STL cũng có thể chuyển được sang LAD.
Định nghĩa về LAD: LAD là một ngôn ngữ lập trình bằng đồ họa. Những thành
phần cơ bản dừng trong LAD tương ứng với các thành phần của bảng điều
khiển bằng rơle. Trong chương trình LAD các phần tử cơ bản dùng để biểu
diễn lệnh logic như sau:
-

Tiếp điểm: là biểu tượng (symbol) mô tả các tiếp điểm của rơle. Các tiếp


điểm đó có thể là thường mở┤├ hoặc thường đóng ┤/├.

-

Cuộn dây (coil): là biểu tượng ─( )─ mô tả các rơle được mắc theo chiều
dòng điện cung cấp cho rơle.

SVTH: Lê Ngọc Thương

16


Đồ Án Tốt Nghiệp

-

GVHD:Tống Thanh Nhân

Hộp (box): là biểu tượng mô tả các hàm khác nhau nó làm việc khi có dòng
điện chạy đến hộp. Những dạng hàm thường được biểu diễn bằng hộp là các
bộ định thời gian (Timer), bộ đếm (Counter) và các hàm toán học. Cuộn dây
và các hộp phải được mắc đúng chiều dòng điện.

-

Mạng LAD: là đường nối các phần tử thành một mạch hoàn thiện, đi từ
đường nguồn bên trái sang đường nguồn bên phải. Đường nguồn bên trái là
dây nóng, đường nguồn bên phải là dây trung hòa hay là đường trở về
nguồn cung cấp (đường nguồn bên phải thường không được thể hiện khi
dùng chương trình tiện dụng STEP7-Micro/DOS hoặc STEP7-Micro/WIN).

Dòng điện chạy từ bên trái qua các tiếp điểm đến các cuộn dây hoặc các hộp
trở về bên phải nguồn.

Định nghĩa về STL: phương pháp liệt kê lệnh (STL) là phương pháp thể hiện
chương trình dưới dạng tập hợp các câu lệnh. Mỗi câu lệnh trong chương
trình, kể cả những lệnh hình thức, biểu diễn một chức năng của PLC.
Định nghĩa về ngăn xếp logic (logic stack):
S0

Stack 0 – bit đầu tiên hay bit trên cùng của ngăn xếp

S1

Stack 1 – Bit thứ hai của ngăn xếp

S2

Stack 2 – Bit thứ ba của ngăn xếp

S3

Stack 3 – Bit thứ tư của ngăn xếp

S4

Stack 4 – Bit thứ năm của ngăn xếp

S5

Stack 5 – Bit thứ sáu của ngăn xếp


S6

Stack 6 – Bit thứ bảy của ngăn xếp

S7

Stack 7 – Bit thứ tám của ngăn xếp

S8

Stack 8 – Bit thứ chín của ngăn xếp

Để tạo ra một chương trình dạng STL, người lập trình cần phải hiểu rõ
phương thức sử dụng 9 bit của ngăn xếp logic của S7 – 200. Ngăn xếp logic là
một khối gồm 9 bit chồng lên nhau. Tất cả các thuật toán liên quan đến ngăn xếp
đều chỉ làm việc với bit đầu tiên hoặc với bit đầu tiên và bit thứ hai của ngăn
xếp. Giá trị logic mới đều có thể được gửi (hoặc được nối thêm) vào ngăn xếp.
Khi phối hợp hai bit đầu tiên của ngăn xếp, thì ngăn xếp sẽ được kéo lên một bit.
Ví dụ về Ladder Logic và Statement List:
SVTH: Lê Ngọc Thương

17


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

LAD


STL
I0.0

LD I0.0

Q1.0

──┤├───( )

=

Q1.0

Hệ lệnh của S7 – 200: được chia làm ba nhóm
-

Các lệnh mà khi thực hiện thì làm việc độc lập không phụ thuộc vào
giá trị logic của ngăn xếp.

-

Các lệnh chỉ thực hiện khi bit đầu tiên của ngăn xếp có giá trị logic
bằng 1.

Các nhãn lệnh đánh dấu trong vị trí tập lệnh.
2. Các toán hạn giới hạn cho phép của CPU 212 và CPU 214
Phương pháp truy nhập

Giới hạn cho phép của toán hạng của CPU

214
V

(0.0 đến 4095.7)

Truy nhập theo bit

I

(0.0 đến 7.7)

(địa chỉ byte, chỉ số bit)

Q

(0.0 đến 7.7)

M

(0.0 đến 31.7)

SM

(0.0 đến 85.7)

T

(0 đến 7.7)

C


(0.0 đến 7.7)

VB

(0 đến 4095)

IB

(0 đến 7)

MB

(0 đến 31)

SMB

(0 đến 85)

AC

(0 đến 3)

Truy nhập theo byte

Hằng số

SVTH: Lê Ngọc Thương

18



Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

VW

(0 đến 4094)

Truy nhập theo từ đơn (word)

T

(0 đến 127)

(địa chỉ byte cao)

C

(0 đến 127)

IW

(0 đến 6)

QW

(0 đến 6)


MW

(0 đến 30)

SMW

(0 đến 84)

AC

(0 đến 3)

AIW

(0 đến 30)

AQW

(0 đến 30)

Hằng số
VD

(0 đến 4092)

Thuy nhập theo từ kép

ID

(0 đến 4)


(địa chỉ byte cao)

QD

(0 đến 4)

MD

(0 đến 28)

SMD

(0 đến 82)

AC

(0 đến 3)

HC

(0 đến 2)

Hằng số
3. Một số lệnh cơ bản
a. Lệnh vào/ra:
ª LOAD (LD): Lệnh LD nạp giá trị logic của một tiếp điểm vào trong bit
đầu tiên của ngăn xếp, các giá trị còn lại trong ngăn xếp bị đẩy lùi xuống
một bit.


SVTH: Lê Ngọc Thương

19


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

ª LOAD NOT (LDN): Lệnh LD nạp giá trị logic của một tiếp điểm vào
trong bit đầu tiên của ngăn xếp, các giá trị còn lại trong ngăn xếp bị đẩy
lùi xuống một bit.

Trước
C0
C1
C2
C3
C4
C5
C6
C7
C8

LD

Sau
m
C0
C1

C2
C3
C4
C5
C6
C7

Trước
C0
C1
C2
C3
C4
C5
C6
C7
C8

LDN

Sau
~m
C0
C1
C2
C3
C4
C5
C6
C7


Bị đẩy ra khỏi

Bị đẩy ra khỏi

ngăn xếp

ngăn xếp

Các dạng khác nhau của lệnh LD, LDN cho LAD như sau:
LAD

Mô tả

Tốn hạng

N ┤├

Tiếp điểm thường mở sẽ đĩng nếu n=1

n:

N ┤\├

Tiếp điểm thường đĩng sẽ mở khi n=1

N ┤I├

Tiếp điểm thường mở sẽ đĩng tức thời khi n=1


N ┤\I├

Tiếp điểm thường đĩng sẽ mở tức thời khi n=1

I, Q, M,

SM, (bit) T, C

n:1

Các dạng khác nhau của lệnh LD, LDN cho STL như sau:
LAD
LD

Mô tả
n

Lệnh nạp giá trị logic của điểm n vào bit đầu n: I, Q, M, SM,
tiên trong ngăn xếp.

LDN

n

Toán hạng
(bit) T, C

Lệnh nạp giá trị logic nghịch đảo của điểm n
vào bit đầu tiên trong ngăn xếp.


LDI

n

Lệnh nạp tức thời giá trị logic của điểm n vào n:1
bit đầu tiên trong ngăn xếp.

SVTH: Lê Ngọc Thương

20


Đồ Án Tốt Nghiệp

LDNI

n

GVHD:Tống Thanh Nhân

Lệnh nạp tức thời giá trị logic nghịch đảo của
điểm n vào bit đầu tiên trong ngăn xếp.
OUTPUT (=): lệnh sao chép nội dung của bit đầu tiên trong ngăn xếp



vào bit được chỉ định trong lệnh. Nội dung ngăn xếp không bị thay đổi.
Mô tả lệnh OUTPUT bằng LAD như sau:
LAD


Mô tả

n

Cuộn dây đầu ra ở trạng thái kích thích khi n:I,Q,M,SM,T,C
có dòng điều khiển đi qua

─( )
n
─( I )

Toán hạng

(bit)

Cuộn dây đầu ra được kích thích tức thời n: Q (bit)
khi có dòng điều khiển đi qua

a. Các lệnh ghi/xóa giá trị cho tiếp điểm:
ª SET (S)
ª RESET (R): Lệnh dùng để đóng và ngắt các điểm gián đoạn đã được thiết
kế. Trong LAD, logic điều khiển dòng điện đóng hay ngắt các
cuộn dây đầu ra. Khi dòng điều khiển đến các cuộn dây thì các
cuôn dây đóng hoặc mở các tiếp điểm. Trong STL, lệnh truyền
trạng thái bit đầu tiên của ngăn xếp đến các điểm thiết kế. Nếu
bit này có giá trị bằng 1, các lệnh S hoặc R sẽ đóng ngắt tiếp
điểm hoặc một dãy các tiếp điểm (giới hạn từ 1 đến 255). Nội
dung của ngăn xếp không bị thay đổi bởi các lệnh này.
Mô tả lệnh S (Set) và R (Reset) bằng LAD:
LAD


Mô tả
S bit n

──( S )

Toán hạng

Đóng một mảng gồm n các tiếp điểm kể S-bit: I, Q, M,SM,T,
từ địa chỉ S-bit

C,V (bit)

Ngắt một mảng gồm n các tiếp điểm kể n (byte): IB, QB,
S bit n
──( R )

từ S-bit. Nếu S-bit lại chỉ vào Timer hoặc MB, SMB, VB,AC,
Counter thì lệnh sẽ xoá bit đầu ra của hằng số, *VD, *AC
Timer/Counter đó.

SVTH: Lê Ngọc Thương

21


Đồ Án Tốt Nghiệp

S bit n


GVHD:Tống Thanh Nhân

Đóng tức thời một mảng gồm n các tiếp S-bit: Q (bit)
điểm kể từ địa chỉ S-bit

──( SI )
S bit n

Ngắt tức thời một mảng gồm n các tiếp SMB, VB,AC, hằng
điểm kể từ địa chỉ S-bit

──( RI )

n(byte):IB,QB, MB,
số, *VD, *AC

Mô tả lệnh S (Set) và R (Reset) bằng STL:
STL
S

Mô tả
S-bit n

Ghi giá trị logic vào một mảng gồm n bit S-bit: I, Q, M,SM,T,
kể từ địa chỉ S-bit

R

S-bit n


Toán hạng
C,V (bit)

Xóa một mảng gồm n bit kể từ địa chỉ Sbit. Nếu S-bit lại chỉ vào Timer hoặc
Counter thì lệnh sẽ xoá bit đầu ra của
Timer/Counter đó.

SI

S-bit n

Ghi tức thời giá trị logic vào một mảng S-bit: Q (bit)
gồm n bit kể từ địa chỉ S-bit

RI

S-bit n

n (byte):IB,QB,MB,

Xóa tức thời một mảng gồm n bit kể từ SMB, VB,AC, hằng
địa chỉ S-bit.

số, *VD, *AC

b. 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 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 hay các tiếp điểm
thường mở. Trong STL có thể sử dụng 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.
SVTH: Lê Ngọc Thương

22


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

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 cho các phép tính của đại số Boolean cho các bit trong
ngăn xếp, được gọi là 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 xoá các mệnh đề logic. LAD
không có bộ đếm dành cho 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.

Lệnh

Mô tả

Toán hạng

ALD

Lệnh tổ hợp giá trị của bit đầu tiên và thứ hai của ngăn xếp Không có
bằng phép tính logic AND. Kết quả ghi lại vào bit đầu tiên.
Giá trị còn lại của ngăn xếp được kéo lên một bit.


OLD

Lệnh tổ hợp giá trị của bit đầu tiên và thứ hai của ngăn xếp Không có
bằng phép tính logic OR. Kết quả ghi lại vào bit đầu tiên. Giá
trị còn lại của ngăn xếp được kéo lên một bit.

LPS

Lệnh Logic Push (LPS) sao chụp giá trị của bit đầu tiên vào Không có
bit thứ hai trong ngăn xếp. Giá trị còn lại bị đẩy xuống một
bit. Bit cuối cùng bị đẩy ra khỏi ngăn xếp.

LRD

Lệnh sao chép giá trị của bit thứ hai vào bit đầu tiên trong Không có
ngăn xếp.Các giá trị còn lại của ngăn xếp giữ nguyên vị trí

LPP

Lệnh kéo ngăn xếp lên một bit. Giá trị của bit sau được Không có
chuyển cho bit trước.

ª AND (A) Lệnh A và O phối hợp giá trị logic của một tiếp điểm n với
ª OR (O) giá trị bit đầu tiên của ngăn xếp. Kết quả phép tính được đặt lại
vào bit đầu tiên trong ngăn xếp. Giá trị của các bit còn lại
trong ngăn xếp không bị thay đổi.
Tác động của các phép tính A (And) và O (Or)

SVTH: Lê Ngọc Thương


23


Đồ Án Tốt Nghiệp

Trước

(And)

C0
C1
C2
C3
C4
C5
C6
C7
C8

GVHD:Tống Thanh Nhân

Sau

Trước

(And)

Sau


C0
C1
C2
C3
C4
C5
C6
C7
C8

m
C1
C2
C3
C4
C5
C6
C7
C8

m
C1
C2
C3
C4
C5
C6
C7
C8


ª AND LOAD (ALD)
ª OR LOAD (OR) : Lệnh ALD và OLD thực hiện phép tính logic And và
Or giữa hai bit đầu tiên của ngăn xếp. Kết quả của logic
này sẽ được ghi lại vào bit đầ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 bit.
Tác động của lệnh ALD và OLD VÀO ngăn xếp như sau:
Trước

(And)

C0
C1
C2
C3
C4
C5
C6
C7
C8

Trước

Sau
m
C2
C3
C4
C5
C6
C7

C8

C0
C1
C2
C3
C4
C5
C6
C7
C8

(And)

Sau
m
C1
C2
C3
C4
C5
C6
C7
C8

ª 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 bit đầu tiên của ngăn xếp. Lệnh LPS sao chép
nội dung bit đầu tiên vào bit thứ hai trong ngăn xếp,

nội dung ngăn xếp sau đó bị đẩy xuống một bit.
Lệnh LRD lấy giá trị bit thứ hai ghi vào bit đầu tiên
SVTH: Lê Ngọc Thương

24


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

của ngăn xếp, nội dung ngăn xếp sau đó được kéo
lên một bit. Lệnh LPP kéo ngăn xếp lên một bit.
c.

Các lệnh tiếp điểm đặc biệt

┤ NOT ├

┤P├ ┤N├

Có thể dùng các lệnh tiếp điểm đặc biệt để phát hiện sự chuyển tiếp trạng
thái của xung (sườn xung) và đảo lại trạng thái của dòng cung cấp (giá trị đỉnh
của ngăn xếp). LAD sử dụng các tiếp điểm đặc biệt này để tác động vào dòng
cung cấp. Các tiếp điểm đặc biệt không có toán hạng riêng của chính chúng vì
thế phải đặt chúng phía trước cuộn dây hoặc hộp đầu ra. Tiếp điểm chuyển tiếp
dương/âm (các lệnh sườn trước và sườn sau) có nhu cầu về bộ nhớ bởi vậy đối
với CPU 214 có thể sử dụng nhiều nhất là 256 lệnh.
d. Các lệnh so sánh
Khi lập trình, nếu các quyết định về điều khiển được thực hiện dựa trên kết

quả của việc so sánh thì có thể sử dụng lệnh so sánh theo byte, Word hay Dword
của S7 – 200.
LAD sử dụng lệnh so sánh để so sánh các giá trị của byte, word hay Dword
(giá trị thực hoặc nguyên). Những lệnh so sánh thường là: so sánh nhỏ hơn hoặc
bằng (<=); so sánh bằng (==) và so sánh lớn hơn hoặc bằng (>=).
Khi so sánh giá trị của byte thí không cần phải để ý đến dấu của toán hạng,
ngược lại khi so sánh các từ hay từ kép với nhau thì phải để ý đến dấu của toán
hạng là bit cao nhất trong từ hoặc từ kép. Ví dụ 7FFF > 8000 và 7FFFFFFF >
80000000.
LAD

SVTH: Lê Ngọc Thương

Mô tả

Toán hạng

25


Đồ Án Tốt Nghiệp

n1

n2

─┤==B├─
n1

n2


─┤==I├─
n1

n2

GVHD:Tống Thanh Nhân

Tiếp điểm đóng khi n1=n2

n1, n2(byte): VB, IB,

B = byte

QB, MB, SMB, AC,

I = Integer = Word

Const, *VD, *AC

D = Double Integer
R = Real

─┤==D├─
n1

n2

─┤==R├─
n1


n2

─┤>=B├─
n1

n2

─┤>=I├─
n1

n2

Tiếp điểm đóng khi n1≥ n2
B = byte
I = Integer = Word

n1, n2(word): VW, T,
C, QW, MW, SMW,
AC, AIW, hằng số,
*VD, *AC

D = Double Integer
R = Real

─┤>=D├─
n1

n2


─┤>=R├─
n1

n2

─┤<=B├─
n1

n2

─┤<=I├─
n1

n2

Tiếp điểm đóng khi n1≤ n2
B = byte
I = Integer = Word

n1, n2(Dword): VD,
ID, QD, MD, SMD,
AC, HC, hằng số,
*VD, *AC

D = Double Integer
R = Real

─┤<=D├─
n1


n2

─┤<=R├─

SVTH: Lê Ngọc Thương

26


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Trong STL những lệnh so sánh thực hiện phép so sánh byte, từ hay từ kép.
Căn cứ vào kiểu so sánh (<=, ==, >=), kết quả của phép so sánh có giá trị bằng 0
(nếu đúng) hoặc bằng 1 (nếu sai) nên nó có thể sử dụng kết hợp cùng các lệnh
LD, A, O. Để tạo ra được các phép so sánh mà S7 – 200 không có lệnh so sánh
tương ứng như: so sánh không bằng nhau (<>), so sánh nhỏ hơn (<) hoặc so
sánh lớn hơn (>), có thể tạo ra được nhờ kết hợp lệnh NOT với các lệnh đã có
(==, >=, <=)

e.

Lệnh nhảy và lệnh gọi chương trình con
Các lệnh của chương trình, nếu không có những lệnh điều khiển riêng, sẽ

được thực hiện theo thứ tự từ trên xuống dưới trong một vòng quét. Lệnh điều
khiển chương trình cho phép thay đổi thứ tự thực hiện lệnh. Chúng cho phép
chuyển thứ tự thực hiện, đáng lẽ ra là lệnh tiếp theo, tới một lệnh bất cứ nào
khác của chương trình, trong đó nơi điều khiển chuyển đến được đánh dấu trước

bằng một nhãn chỉ đích. Thuộc nhóm lệnh điều khiển chương trình gồm: lệnh
nhảy, lệnh gọi chương trình con. Nhãn chỉ đích, hay gọi đơn giản là nhãn, phải
được đánh dấu trước khi thực hiện nhảy hay lệnh gọi chương trình con.
Việc đặt nhãn cho lệnh nhảy phải nằm trong chương trình. Nhãn của
chương trình con, hoặc của chương trình xử lý ngắt được khai báo ở đầu chương
trình. Không thể dùng lệnh nhảy JMP để chuyển điều khiển từ chương trình
chính vào một vào một nhãn bất kỳ trong chương trình con hoặc trong chương
trình xử lý ngắt. Tương tự như vậy cũng không thể từ một chương trình con hay
chương trình xử lý ngắt nhảy vào bất cứ một nhãn nào nằm ngoài các chương
trình đó.
Lệnh gọi chương trình con là lệnh chuyển điều khiển đến chương trình
con. Khi chương trình con thực hiện các phép tính của mình thì việc điều khiển
lại được chuyển trở về lệnh tiếp theo trong chương trình chính ngay sau lệnh gọi
chương trình con. Từ một chương trình con có thể gọi được một chương trình
con khác trong nó, có thể gọi như vậy nhiều nhất là 8 lần trong S7 – 200. Đệ qui
SVTH: Lê Ngọc Thương

27


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

(trong một chương trình con có lệnh gọi đến chính nó) về nguyên tắc không bị
cấm song phải chú ý đến giới hạn trên.
Nếu lệnh nhảy hay lệnh gọi chương trình con được thực hiện thì đỉnh
ngăn xếp luôn có giá trị logic bằng 1. Bởi vậy trong chương trình con các lệnh
có điều khiển được thực hiện như các lệnh không điều kiện. Sau các lệnh LBL
(đặt nhãn) và SBR, lệnh LD trong STL sẽ bị vô hiệu hóa.

Khi một chương trình con được gọi, toàn bộ nội dung của ngăn xếp sẽ
được cất đi, đỉnh của ngăn xếp nhận một giá trị mới là 1, các bit khác còn lại của
ngăn xếp nhận giá trị logic 0 và chương trình được chuyển tiếp đến chương trình
con đã được gọi. Khi thực hiện xong chương trình con và trước khi điều khiển
được chuyển trở lại chương trình đã gọi nó, nội dung ngăn xếp đã được cất giữ
trước đó sẽ được chuyển trở lại ngăn xếp.
Nội dung của thanh ghi AC không được cất giữ khi gọi chương trình con,
nhưng khi một chương trình xử lý ngắt được gọi, nội dung của thanh ghi AC sẽ
được cất giữ trước khi thực hiện chương trình xử lý ngắt và nạp lại khi chương
trình xử lý ngắt đã được thực hiện xong. Bởi vậy chương trình xử lý ngắt có thể
tự do sử dụng bốn thanh ghi AC của S7 – 200.
ª JMP, CALL
ª LBL, SBR : Lệnh nhảy JMP và lệnh gọi chương trình con SBR cho phép
chuyển điều khiển từ vị trí này đến một vị trí khác trong chương trình. Cú pháp
lệnh nhảy và lệnh gọi chương trình con trong LAD và STL đều có toán hạng là
nhãn chỉ đích (nơi nhảy đến, nơi chứa chương trình con)
LAD

STL

Mô tả

n
─( JMP)

Toán hạng

Lệnh nhảy thực hiện việc n:
JMP


Kn

chuyển điều khiển đến nhãn n
trong một chương trình.
Lệnh khai báo nhãn n trong

LBL: n

JMP

SVTH: Lê Ngọc Thương

Kn

một chương trình.

CPU 212: 0÷63
CPU 214: 0÷255

28


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

n

Lệnh gọi chương trình con, n:


─( CALL)

CALL Kn

thực hiện phép chuyển điều
khiển đến chương trình con có
nhãn n.

SBR:n

SBR

Kn

CPU 212: 0÷15

Lệnh gán nhãn cho một CPU 214: 0÷255
chương trình con.
Lệnh trở về chương trình đã

CRET

gọi chương trình con có điều
kiện (bit đầu của ngăn xếp có

─( CRET)

giá trị logic bằng 1)

Không có


Lệnh trở về chương trình đã
─( RET)

RET

gọi chương trình con không
điều kiện.

f.

Các lệnh can thiệp vào thời gian vòng quét MEND, END, STOP,
NOP, WDR

Các lệnh này được dùng để kết thúc chương trình đang thực hiện, và kéo dài
một khoảng thời gian của một vòng quét.
Trong LAD và STL chương trình phải được kết thúc bằng lệnh kết thúc
không điều kiện MEND. Có thể sử dụng lệnh kết thúc có điều kiện END trước
lệnh kết thúc không điều kiện.
Lệnh STOP kết thúc chương trình, nó chuyển điều khiển chương trình đến
chế độ STOP. Nếu như gặp lệnh STOP trong chương trình chính, hoặc trong
chương trình con thì chương trình đang được thực hiện sẽ kết thúc ngay lập tức.
Lệnh rỗng NOP không có tác dụng gì trong việc thực hiện chương trình. Cần
lưu ý lệnh NOP phải được đặt bên trong chương trình chính, chương trình con
hoặc trong chương trình xử lý ngắt.
Lệnh WDR sẽ khởi động lại đồng hồ quan sát (watchdog timer), và chương
trình tiếp tục được thực hiện trong vòng quét ở chế độ quan sát nên cẩn thận khi
sử dụng lệnh WDR.
SVTH: Lê Ngọc Thương


29


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Việc chuyển công tắc cứng của S7 – 200 vào vị trí STOP hoặc thực hiện lệnh
STOP trong chương trình sẽ là nguyên nhân đặt điều khiển vào chế độ dừng
trong khoảng thời gian 1,4s …

g. Các lệnh điều khiển Timer
Timer là bộ tạo thời gian giữa tín hiệu ra nên trong điều khiển vẫn thường
được gọi là khâu trễ. Nếu ký hiệu tín hiệu (logic) vào là x(t) và thời gian trễ tạo
ra bằng Timer là  thì tín hiệu đầu ra của Timer đó sẽ là x(t – )
S7 – 200 có 64 bộ Timer (với CPU 212) hoặc 128 Timer (với CPU 214)
được chia làm hai loại khác nhau là:
-

Timer tạo thời gian trễ không có nhớ (On-Delay Timer), ký hiệu là
TON.

-

Timer tạo thời gian trễ có nhớ (Retentive On-Delay Timer), ký hiệu là
TONR.
Hai kiểu Timer của S7 – 200 (TON và TONR) phân biệt với nhau ở phản

ứng của nó đối với trạng thái đầu vào.
Cả hai Timer kiểu TON và TONR cùng bắt đầu tạo thời gian trễ tín hiệu kể

từ thời điểm có sườn lên ở tín hiệu đầu vào, tức là khi tín hiệu đầu vào chuyển
trạng thái logic từ 0 lên 1, được gọi là thời gian Timer được kích, và không tính
khoảng thời gian khi đầu vào có giá trị logic 0 vào thời gian trễ tín hiệu đặt
trước.
Khi đầu vào có giá trị logic bằng 0, TON tự động reset còn TONR thì không
tự động reset. Timer TON được dùng để tạo thời gian trễ trong một khoảng thời
gian (miền liên thông), còn với TONR thời gian trễ sẽ được tạo ra trong nhiều
khoảng thời gian khác nhau.
Timer TON và TONR bao gồm 3 loại với ba độ phân giải khác nhau, độ
phân giải 1ms, 10ms và 100ms. Thời gian trễ  được tạo ra chính là tích của độ

SVTH: Lê Ngọc Thương

30


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

phân giải của bộ Timer được chọn và giá trị đặt trước cho Timer. Ví dụ Timer có
độ phân giải 10ms và giá trị đặt trước là 50 thì thời gian trễ sẽ là  = 500ms.
Timer của S7 – 200 có những tính chất cơ bản sau:
-

Các bộ Timer được điều khiển bởi một cổng vào và giá trị đếm tức thời.
Giá trị đếm tức thời của Timer được nhớ trong thanh ghi 2 byte (gọi là Tword) của Timer, xác định khoảng thời gian trễ kể từ khi Timer được kích.
Giá trị đặt trước của các bộ Timer được ký hiệu trong LAD và STL là PT.
Giá trị đếm tức thời của thanh ghi T-word thường xuyên được so sánh với
giá trị đặt trước của Timer.


-

Mỗi bộ Timer, ngoài thanh ghi 2 byte T-word lưu giá trị đếm tức thời, còn
có một bit ký hiệu là T-bit, chỉ thị trạng thái logic đầu ra. Giá trị logic của
bit này phụ thuộc vào kết quả so sánh giữa giá trị đếm tức thời với giá trị
đặt trước.

-

Trong khoảng thời gian tín hiệu x(t) có giá trị logic 1, giá trị đếm tức thời
trong T-word luôn được cập nhật và thay đổi tăng dần cho đến khi nó đạt
giá trị cực đại. Khi giá trị đếm tức thời lớn hơn hay bằng giá trị đặt trước,
T-bit có giá trị logic 1.

Độ phân giải các loại Timer của S7 – 200, CPU 214
Lệnh

TON

TONR

Độ phân giải

Giá trị cực đại

CPU 214

1 ms


32,767 s

T32 và T96

10 ms

327,67 s

T33 ÷ T36, T97 ÷ T100

100 ms

3276,7 s

T32 ÷ T96, T101 ÷ T127

1 ms

32,767 s

T0 và T64

10 ms

327,67 s

T1 ÷ T4, T65 ÷ T68

100 ms


3276,7 s

T5 ÷ T31, T69 ÷ T95

SVTH: Lê Ngọc Thương

31


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Cú pháp khai báo sử dụng Timer như sau:
AD

Mô tả

Toán hạng

Khai báo Timer số hiệu xx kiểu TON để tạo Txx (word)
TON—Txx
— IN
— PT

thời gian trễ tính từ khi đầu vào IN được CPU214:32÷63
kích. Nếu như giá trị đếm tức thời lớn hơn
96÷127
hoặc bằng giá trị đặt trước PT thì T-bit có giá
VW, T,

trị logic bằng 1. có thể reset Timer kiểu TON PT:
bằng lệnh R hoặc bằng giá trị logic 0 tại đầu (word) C, IW,
QW,MW,SMW,
vào IN.
AC,AIW,hằngsố

TONR—Txx
— IN
— PT

Khai báo Timer số hiệu xx kiểu TONR để tạo Txx (word)
thời gian trễ tính từ khi đầu vào IN được CPU214: 0 ÷31
kích. Nếu như giá trị đếm tức thời lớn hơn
64 ÷95
hoặc bằng giá trị đặt trước PT thì T-bit có giá
VW, T,
trị logic bằng 1. Chỉ có thể reset Timer kiểu PT:
TON bằng lệnh R cho T-bit.

(word)

C, IW,

QW,MW,SMW,
AC,AIW,hằngsố

Khi sử dụng Timer kiểu TONR, giá trị đếm tức thời được lưu lại và không bị
thay đổi trong khoảng thời gian khi tín hiệu đầu vào có logic 0. Giá trị của T-bit
không được nhớ mà hoàn toàn phụ thuộc vào kết quả so sánh giữa giá trị đếm
tức thời và giá trị đặt trước.


SVTH: Lê Ngọc Thương

32


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Khi reset một bộ Timer, T-word và T-bit của nó đồng thời được xóa và có giá
trị bằng 0, như vậy giá trị đếm tức thời được đặt về 0 và tin hiệu đầu ra cũng có
trạng thái logic bằng 0.

h.

Các lệnh điều khiển Counter

Counter là bộ đếm thực hiện chức năng đếm sườn xung trong S7 – 200. Các
bộ đếm của S7 – 200 được chia làm hai loại: bộ đếm tiến (CTU) và bộ đếm
tiến/lùi (CTUD).
Bộ đếm tiến CTU đếm số sườn lên của tín hiệu logic đầu vào, tức là đếm số
lần thay đổi trạng thái logic từ 0 lên 1 của tín hiệu. Số xung đếm được, được ghi
vào thanh ghi 2 byte của bộ đếm, gọi là thanh ghi C-word.
Nội dung của thanh ghi C-word, gọi là giá trị đếm tức thời của bộ đếm, luôn
được so sánh với giá trị đặt trước của bộ đếm, được ký hiệu là PV. Khi giá trị
đếm tức thời bằng hoặc lớn hơn giá trị đặt trước này thì bộ đếm báo ra ngoài
bằng cách đặt giá trị logic 1 vào một bit đặc biệt của nó, gọi là C-bit. Trường
hợp giá trị đếm tức thời nhỏ hơn giá trị đặt trước C-bit có giá trị logic là 0.
Khác với các bộ Timer, các bộ đếm CTU và CTUD đều có chân nối với tín

hiệu điều khiển xóa để thực hiện việc đặt lại chế độ khởi phát ban đầu (reset)
cho bộ đếm, được ký hiệu bằng chữ cái R trong LAD, hay được qui định là trạng
thái logic của bit đầu tiên của ngăn xếp trong STL. Bộ đếm được reset khi tín
hiệu xoá này có mức logic là 1 hoặc khi lệnh R (reset) được thực hiện với C-bit.
Khi bộ đếm được reset, cả C-word và C-bit đều nhận giá trị 0.
Bộ đếm tiến/lùi CTUD đếm tiến khi găp sườn lên của xung vào cổng đếm
tiến, ký hiệu là CU hoặc bit thứ 3 của ngăn xếp trong STL, và đếm lùi khi gặp
sườn lên của xung vào cổng đếm lùi, ký hiệu là CD trong LAD hoặc bit thứ 2
của ngăn xếp trong STL.

SVTH: Lê Ngọc Thương

33


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Bộ đếm tiến CTU có miền giá trị đếm tức thời từ 0 đến 32.767. Bộ đếm
tiến/lùi CTUD có miền giá trị đếm tức thời từ –32.768 đến 32.767.

LAD

Mô tả

CTU – Cxx

Toán hạng


Khai báo bộ đếm tiến theo sườn lên của Cxx : (word)
CU. Khi giá trị đếm tức thời C-word Cxx CPU 214: 0 ÷47
lớn hơn hoặc bằng giá trị đặt trước PV, C80 ÷127
bit (Cxx) có giá trị logic bằng 1. Bộ đếm
được reset khi đầu vào R có giá trị logic PV :(word): VW,

—CU
—PV

bằng 1. Bộ đếm ngừng đếm khi C-word T,C,IW,QW,MW,
SMW, AC, AIW,
Cxx đạt được giá trị cực đại.

—R

hằngsố,*VD,*AC
Khai báo bộ đếm tiến/lùi, đếm tiến theo Cxx : (word)
CTUD – Cxx
—CU
—PV
—CD
—R

sườn lên của CU, đếm lùi theo sườn lên CPU 214: 48 ÷79
của CD. Khi giá trị đếm tức thời C-word
Cxx lớn hơn hoặc bằng giá trị đặt trước
PV, C-bit (Cxx) có giá trị logic bằng 1. Bộ PV :(word): VW,
đếm ngừng đếm tiến khi C-word Cxx đạt T,C,IW,QW,MW,
được giá trị cực đại 32.767 và ngừng đếm SMW, AC, AIW,
lùi khi C-word Cxx đạt được giá trị cực hằngsố,*VD,*AC

đại –32.768. CTUD reset khi đầu vào R có
giá trị logic bằng 1.

i. Các lệnh di chuyển nội dung ô nhớ
Các lệnh di chuyển thực hiện việc di chuyển hoặc sao chép số liệu từ vùng
này sang vùng khác trong bộ nhớ.

SVTH: Lê Ngọc Thương

34


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Trong LAD và STL lệnh dịch chuyển thực hiện việc di chuyển hay sao
chép nội dung một byte, một từ đơn, hoặc một từ kép từ vùng này sang vùng
khác trong bộ nhớ.
Lệnh trao đổi nội dung vủa hai byte trong một từ đơn thực hiện việc
chuyển nội dung của byte thấp sang byte cao và ngược lại chuyển nội dung của
byte cao sang byte thấp của từ đó.

ª MOV_B (LAD) Lệnh sao chép nội dung của byte IN sang byte OUT
ª MOVB (STL)
ª MOV_W (LAD) Lệnh sao chép nội dung của từ đơn IN sang OUT
ª MOVW (STL)
ª MOV_DW (LAD) Lệnh sao chép nội dung của từ kép IN sang OUT
ª MOVD (STL)
ª MOV_R (LAD) Lệnh sao chép một số thực từ IN (4byte) sang

ª MOVR (STL)

OUT (4byte)

Cú pháp lệnh dịch chuyển như sau:
LAD

STL

Toán hạng

MOV_B

IN :

VB, IB, QB, MB, SMB, AC,

(byte)

hằng số, *VD, *AC

OUT:

VB, IB, QB, MB, SMB, AC,

— IN OUT—

(byte)

*VD, *AC


MOV_W

IN :

— EN

MOVB

IN OUT

(từ đơn)
— EN

MOVW IN OUT

— IN OUT—

SVTH: Lê Ngọc Thương

OUT:
(từ đơn)

VB, IB, QB, MB, SMB, AC,
hằng số, *VD, *AC
VB, IB, QB, MB, SMB, AC,
*VD, *AC
35



Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

MOV_DW

IN :

VB, IB, QB, MB, SMB, AC,

(từ kép)
— EN

MOVD IN OUT

hằng số, *VD, *AC

OUT:

— IN OUT—

(từ kép)

MOV_R

IN :

VB, IB, QB, MB, SMB, AC,
*VD, *AC


VB, IB, QB, MB, SMB, AC,

(từ kép)
— EN

MOVR IN OUT

— IN OUT—

OUT:
(từ kép)

hằng số, *VD, *AC
VB, IB, QB, MB, SMB, AC,
*VD, *AC

j. Sử dụng bộ đếm tốc độ cao:
Bộ đếm tốc độ cao được sử dụng để theo dõi và điều khiển các quá trình có
tốc độ cao mà PLC không thể khống chế được do bị hạn chế về thời gian của
vòng quét.
Trong CPU 214 có ba bộ đếm tốc độ cao được đánh số lần lượt là: HSC0,
HSC1 và HSC2. Nguyên tắc hoạt động của bộ đếm tốc độ cao cũng tương tự
như các bộ đếm thông thường khác, tức là đếm theo sườn lên của tín hiệu đầu
vào. Số đếm được sẽ được hệ thống ghi nhớ vào một ô nhớ đặc biệt kiểu từ kép
và được gọi là giá trị đếm tức thời ký hiệu là CV. Khi giá trị đếm tức thời bằng
giá trị đặt trước thì bộ đếm phát ra một tín hiệu báo ngắt. Giá trị đặt trước là một
số nguyên 32 bit được lưu trong một ô nhớ kiểu từ kép, ký hiệu là PV.
Chọn chế độ làm việc cho Bộ đếm tốc độ cao bằng lệnh HDFE và chỉ có thể
kích bộ đếm sau khi đã khai báo chế độ làm việc bằng lệnh HSC.
Nguyên lý làm việc của các bộ đếm tốc độ cao:


SVTH: Lê Ngọc Thương

36


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

o HSC0: Tần số đếm cực đại cho phép của HSC0 là 2 KHz. Bộ đếm HSC0 sử
dụng một cổng vào là I0.0 và chỉ có một chế độ làm việc duy nhất là đếm
tiến hoặc lùi số các sườn lên của tín hiệu đầu vào tại ngõ vào I0.0
HSC0 sử dụng từ kép SMD38 để lưu giá trị đếm tức thời CV, giá trị đặt trước
PV được ghi vào từ kép SMD42 (cả hai giá trị PV và CV là những số nguyên 32
bit có dấu).
Chiều đếm tiến/lùi của HSC0 được qui định bởi trạng thái của bit SM37.3
như sau: SM37.3 = 0 đếm lùi theo sườn lên của I0.0
= 1 đếm tiến theo sườn lên của I0.0
Các bước khai báo sử dụng HSC0 (nên thực hiện tại vòng quét đầu tiên):
-

Nạp giá trị điều khiển phù hợp cho SMB37.

-

Xác định chế độ làm việc cho bộ đếm bằng lệnh HDEF (do HSC0 có một
chế độ làm việc nên lệnh xác định sẽ là: HDEF K0 K0)

-


Nạp giá trị tức thời ban đầu và giá trị đặt trước vào SMD38 và SMD42.

-

Khai báo sử dụng chế độ ngắt vào ra và kích tín hiệu báo ngắt HSC0
bằng lệnh ATCH.

-

Kích bộ đếm bằng lệnh HSC K0

o HSC1: tần số đếm cực đại tại ngõ vào là 7KHz
HSC1 là một bộ đếm linh hoạt, sử dụng bốn đầu vào I0.6, I0.7, I1.0 và I1.1 với
12 chế độ làm việc khác nhau. HSC1 sử dụng từ kép SMD48 để lưu giá trị đếm
tức thời CV, giá trị đặt trước PV được ghi vào từ kép SMD52 (cả hai giá trị PV
và CV là những số nguyên 32 bit có dấu).
Khác với HSC0, HSC1 có ba khả năng đếm:
-

Đếm tiến hoặc lùi theo sườn lên của I0.6 (chế độ 0, 1, 2, 3, 4, 5)

-

Đếm tiến theo sườn lên của I0.6 và lùi theo sườn lên của I0.7 (chế độ 6,
7, 8)

-

Đếm tiến hoặc lùi số lần lệch giá trị logic giữa hai cổng I0.6 và I0.7, tức

là số làn phép tính logic XOR của I0.6 và I0.7 có kết quả là 1 (chế độ 6,
7, 8)

SVTH: Lê Ngọc Thương

37


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

Chiều đếm (tiến hay lùi) trong chế độ 0, 1, 2 được quy định bởi bit SM47.3
như sau:

SM47.3 = 0 đếm lùi theo sườn lên của I0.6
= 1 đếm tiến theo sườn lên của I0.6

và trong chế độ 3, 4, 5 bởi đầu vào I0.7 như sau:
I0.7 = 0 đếm lùi theo sườn lên của I0.6
= 1 đếm tiến theo sườn lên của I0.6
HSC1 có hai tần số đếm. Trong các chế độ 0÷8 tần số đếm bằng tần số thay
đổi trạng thái tín hiệu đầu vào là 7KHz, riêng trong chế độ 9, 10, 11 tùy theo sự
khai báo sử dụng mà tần số đếm có thể bằng hoặc có thể gấp 4 lần tần số biến
thiên trạng thái kết quả phép tính XOR giữa I0.6 và I0.7. Do đó trong chế độ 9,
10, 11 tần số đếm cực đại cho phép của HSC1 sẽ là 28KHz.
Cấu trúc byte SMB47 được gọi là byte điều khiển của HSC1 như sau
SM47.0
SM47.1
SM47.2

SM47.3
SM47.4
SM47.5
SM47.6
SM47.7

Kiểu reset cho tín hiệu xoá tại I0.0 (chế độ 1,2,4,5,7,8,10,11)
Kiểu kích cho tín hiệu khởi động tại I1.1 (chế độ 2,5,8,11)
Tần số đếm của HSC1 (chế độ 9,10,11)
Chiều đếm: 0 - đếm lùi, 1 - đếm tiến
Cho phép đổi chiều đếm: 0-không cho phép, 1-cho phép
Cho phép sửa đổi giá trị đặt trước: 0-không cho phép, 1-cho phép
Cho phép sửa đổi giá trị tức thời: 0-không cho phép, 1-cho phép
1-cho phép kích HSC1, 0-cho phép huỷ HSC1

Các bước khai báo sử dụng HSC1 (nên thực hiện tại vòng quét đầu
tiên):
-

Nạp giá trị điều khiển phù hợp cho SMB47 (ví dụ 16#F8=248)

-

Xác định chế độ làm việc cho bộ đếm bằng lệnh HDEF.

-

Nạp giá trị tức thời ban đầu vào SMD48 và giá trị đặt trước vào SMD52.

-


Khai báo sử dụng chế độ ngắt vào/ra và kích tín hiệu báo ngắt HSC0 bằng
lệnh ATCH.

-

Kích bộ đếm bằng lệnh HSC.
Khi sử dụng HSC1 cùng với chế độ ngắt vào/ra, các tín hiệu báo ngắt sau

đây sẽ được phát:
-

Báo ngắt khi CV=PV nếu tín hiệu báo ngắt kiểu 13 được khai báo.

SVTH: Lê Ngọc Thương

38


Đồ Án Tốt Nghiệp

-

GVHD:Tống Thanh Nhân

Báo ngắt khi có tín hiệu báo thay đổi chiều đếm từ I0.7, nếu tín hiệu báo
ngắt kiểu 14 được khai báo.

-


Báo ngắt khi HSC1 bị reset bởi I1.0, nếu tín hiệu báo ngắt kiểu 15 được
khai báo.

o HSC2: HSC2 có nguyên lý làm việc giống như HSC1. HSC1 và HSC2 làm
việc độc lập, không ảnh hưởng nhau. Các ngõ vào I0.6, I0.7, I1.0, I1.1 của
HSC1 được thay thế bằng I1.2, I1.3, I1.4 và I1.5 trong HSC2.
Cấu trúc byte SMB57 được gọi là byte điều khiển của HSC2, như sau:
SM57.0
SM57.1
SM57.2
SM57.3
SM57.4
SM57.5
SM57.6
SM57.7

Kiểu reset cho tín hiệu xóa tại I1.4 (chế độ 1,2,4,5,7,8,10,11)
Kiểu kích cho tín hiệu khởi động tại I1.5 (chế độ 2,5,8,11)
Tần số đếm của HSC2 (chế độ 9,10, và 11)
Chiều đếm: 0 - đếm lùi, 1 - đếm tiến.
Cho phép đổi chiều đếm: 0 - không cho phép, 1 – cho phép
Cho phép sửa đổi giá trị đặt trước: 0 -không cho phép, 1–cho phép
Cho phép sửa đổi giá trị đếm tức thời:0 -không cho phép, 1-cho phép
1 – cho phép kích HSC2, 0 – cho phép hủy HSC2

HSC2 có ba khả năng đếm giống như HSC1 và tần số đếm trong các chế độ
cũng giống như HSC1.
 Thủ tục khai báo sử dụng bộ đếm tốc độ cao:
Khai báo sử dụng các bộ đếm HSC0, HSC1 và HSC2 nên được thực hiện tại
vòng quét đầu tiên, khi mà bit SM0.1 có giá trị logic là 1. Thủ tục khai báo tốt

nhất là một chương trình con và chương trình con đó được gọi bằng lệnh CALL
trong vòng quét đầu.
Các công việc của chương trình con khai báo sử dụng Bộ đếm tốc độ cao bao
gồm:


Nạp giá trị về kiểu hoạt động phù hợp cho byte điều khiển. Ví dụ như

khi khai báo kiểu hoạt động cho HSC1 với:
 Tín hiệu xóa ngoài tích cực khi có logic là 1 thì phải ghi 0 vào
SM47.0
 Tín hiệu kích (start) ngoài tích cực khi có logic là 1 thì ghi 0 vào
SM47.1
 Tần số đếm bằng tần số của tín hiệu vào thì ghi 0 vào SM47.2

SVTH: Lê Ngọc Thương

39


Đồ Án Tốt Nghiệp

GVHD:Tống Thanh Nhân

 Đếm tiến theo sườn lên của tín hiệu vào thì ghi 1 vào SM47.3
 Cho phép đổi chiều đếm thì ghi 1 vào SM47.4
 Cho phép thay đổi giá trị dặt trước thì ghi 1 vào SM47.5
 Cho phép thay đổi giá trị đếm tức thời thì ghi 1 vào SM47.6
 Cho phép kích HSC1 thì ghi 1 vào SM47.7



Xác định chế độ là việc cho bộ đếm bằng lệnh HDEF. Ví dụ như

muốn xác định chế độ làm việc số 3 cho HSC1 thì thực hiện lệnh sau trong STL:
HDEF


K1

K3

Nạp giá trị đếm tức thời ban đầu và giá trị đặt trước. Ví dụ nạp giá trị

đếm tức thời ban đầu là 0 và giá trị đặt trước là 3 cho HSC1 thì thực hiện lệnh
sau trong STL:



MOVD

K0

SMD48

giá trị đếm tức thời ban đầu là0.

MOVD

K3


SMD52

giá trị đặt trước là 3.

Khai báo sử dụng chế độ ngắt vào/ra và kích tín hiệu báo ngắt. Ví dụ

như sử dụng HSC1 làm tín hiệu báo ngắt vào/ra mã hiệu 13 (khi CV=PV) và mã
hiệu 14 (khi đổi chiều đếm) với các chương trình xử lý ngắt tương ứng có nhãn
là 0 và 1 thì thực hiện các lệnh sau trong STL:



ATCH

K0

K13

ATCH

K1

K14

Kích bộ đếm với kiểu làm việc đã ghi trong byte điều khiển bằng lệnh

HSC. Ví dụ như kích bộ đếm HSC1 theo SMB47 bằng cách thực hiện lệnh sau
trong STL:

SVTH: Lê Ngọc Thương


HSC K1

40


×