CHƯƠNG I
GIỚI THIỆU BỘ PLC CỦA SIMATIC S7-200
I.Tổng quát về PLC
1. Giới thiệu PLC
PLC viết tắt của Programmable Logic Controller , là thiết bò điều khiển lập trình
được (khả trình) cho phép thực hiện linh hoạt các thuật toán điều khiển logic thông qua
một ngôn ngữ lập trình. Người sử dụng có thể lập trình để thực hiện một loạt trình tự các
sự kiện. Các sự kiện này được kích hoạt bởi tác nhân kích thích (ngõ vào) tác động vào
PLC hoặc qua các hoạt động có trễ như thời gian đònh thì hay các sự kiện được đếm. Một
khi sự kiện được kích hoạt thật sự, nó bật ON hay OFF thiết bò điều khiển bên ngoài được
gọi là thiết bò vật lý. Một bộ điều khiển lập trình sẽ liên tục “lặp” trong chương trình do
“người sử dụng lập ra” chờ tín hiệu ở ngõ vào và xuất tín hiệu ở ngõ ra tại các thời điểm
đã lập trình.
Để khắc phục những nhược điểm của bộ điều khiển dùng dây nối ( bộ điều khiển bằng
Relay) người ta đã chế tạo ra bộ PLC nhằm thỏa mãn các yêu cầu sau :
-Lập trình dể dàng , ngôn ngữ lập trình dể học .
-Gọn nhẹ, dể dàng bảo quản , sửa chữa.
-Dung lượng bộ nhớ lớn để có thể chứa được những chương trình phức tạp .
-Hoàn toàn tin cậy trog môi trường công nghiệp .
-Giao tiếp được với các thiết bò thông minh khác như : máy tính , nối mạng , các
môi Modul mở rộng.
-Giá cả cá thể cạnh tranh được.
Các thiết kế đầu tiên là nhằm thay thế cho các phần cứng Relay dây nối và các Logic
thời gian .Tuy nhiên ,bên cạnh đó việc đòi hỏi tăng cường dung lượng nhớ và tính dể
dàng cho PLC mà vẫn bảo đảm tốc độ xử lý cũng như giá cả … Chính điều này đã gây ra
sự quan tâm sâu sắc đến việc sử dụng PLC trong công nghiệp . Các tập lệnh nhanh chóng
đi từ các lệnh logic đơn giản đến các lệnh đếm , đònh thời , thanh ghi dòch … sau đó là các
chức năng làm toán trên các máy lớùn … Sự phát triển các máy tính dẫn đến các bộ PLC
có dung lượng lớn , số lượng I / O nhiều hơn.
Trong PLC, phần cứng CPU và chương trình là đơn vò cơ bản cho quá trình điều khiển
hoặc xử lý hệ thống. Chức năng mà bộ điều khiển cần thực hiện sẽ được xác đònh bởi
song song :
Address Bus : Bus đòa chỉ dùng để truyền đòa chỉ đến các Modul khác nhau.
Data Bus : Bus dùng để truyền dữ liệu.
Control Bus : Bus điều khiển dùng để truyền các tín hiệu đònh thì và điểu khiển
đồng bộ các hoạt động trong PLC .
Trong PLC các số liệu được trao đổi giữa bộ vi xử lý và các modul vào ra thông qua
Data Bus. Address Bus và Data Bus gồm 8 đường, ở cùng thời điểm cho phép truyền 8
bit của 1 byte một cách đồng thời hay song song.
Nếu môït modul đầu vào nhận được đòa chỉ của nó trên Address Bus , nó sẽ chuyển
tất cả trạnh thái đầu vào của nó vào Data Bus. Nếu một đòa chỉ byte của 8 đầu ra xuất
hiện trên Address Bus, modul đầu ra tương ứng sẽ nhận được dữ liệu từ Data bus. Control
Bus sẽ chuyển các tín hiệu điều khiển vào theo dõi chu trình hoạt động của PLC .
Các đòa chỉ và số liệu được chuyển lên các Bus tương ứng trong một thời gian hạn
chế.
Hêï thống Bus sẽ làm nhiệm vụ trao đổi thông tin giữa CPU, bộ nhớ và I/O . Bên
cạch đó, CPU được cung cấp một xung Clock có tần số từ 1÷8 MHZ. Xung này quyết đònh
tốc độ hoạt động của PLC và cung cấp các yếu tố về đònh thời, đồng hồ của hệ thống.
Bộ nhớ
PLC thường yêu cầu bộ nhớ trong các trường hợp :
-Làm bộ đònh thời cho các kênh trạng thái I/O.
-Làm bộ đệm trạng thái các chức năng trong PLC như đònh thời, đếm, ghi các
Relay.
Mỗi lệnh của chương trình có một vò trí riêng trong bộ nhớ, tất cả mọi vò trí trong bộ
nhớ đều được đánh số, những số này chính là đòa chỉ trong bộ nhớ .
Đòa chỉ của từng ô nhớ sẽ được trỏ đến bởi một bộ đếm đòa chỉ ở bên trong bộ vi xử lý.
Bộ vi xử lý sẽ giá trò trong bộ đếm này lên một trước khi xử lý lệnh tiếp theo . Với một
đòa chỉ mới , nội dung của ô nhớ tương ứng sẽ xuất hiện ở đấu ra, quá trình này được gọi
là quá trình đọc .
2
nhập xuất trở nên dể dàng và đơn giản .
Bộ xử lý đọc và xác đònh các trạng thái đầu vào (ON,OFF) để thực hiện việc đóng hay
ngắt mạch ở đầu ra .
3. Các hoạt động xử lý bên trong PLC
Xử lý chương trình
Khi một chương trình đã được nạp vào bộ nhớ của PLC , các lệnh sẽ được trong một
vùng đòa chỉ riêng lẻ trong bộ nhớ .
PLC có bộ đếm đòa chỉ ở bên trong vi xử lý, vì vậy chương trình ở bên trong bộ nhớ sẽ
được bộ vi xử lý thực hiện một cách tuần tự từng lệnh một, từ đầu cho đến cuối chương
trình . Mỗi lần thực hiện chương trình từ đầu đến cuối được gọi là một chu kỳ thực hiện.
Thời gian thực hiện một chu kỳ tùy thuộc vào tốc độ xử lý của PLC và độ lớn của chương
trình. Một chu lỳ thực hiện bao gồm ba giai đoạn nối tiếp nhau :
Đầu tiên, bộ xử lý đọc trạng thái của tất cả đầu vào. Phần chương trình phục vụ công việc
này có sẵn trong PLC và được gọi là hệ điều hành .
3
Tiếp theo, bộ xử lý sẽ đọc và xử lý tuần tự lệnh một trong chương trình. Trong ghi đọc và
xử lý các lệnh, bộ vi xử lý sẽ đọc tín hiệu các đầu vào, thực hiện các phép toán logic và
kết quả sau đó sẽ xác đònh trạng thái của các đầu ra.
Cuối cùng, bộ vi xử lý sẽ gán các trạng thái mới cho các đầu ra tại các modul đầu ra.
Xử lý xuất nhập
Gồm hai phương pháp khác nhau dùng cho việc xử lý I / O trong PLC :
Cập nhật liên tục
Điều nay đòi hỏi CPU quét các lệnh ngỏ vào (mà chúng xuất hiện trong chương
trình ), khoảng thời gian Delay được xây dựng bên trong để chắc chắn rằng chỉ có những
tín hiệu hợp lý mới được đọc vào trong bộ nhớ vi xử lý. Các lệnh ngỏ ra được lấùy trực
tiếp tới các thiết bò. Theo hoạt động logic của chương trình , khi lệnh OUT được thực
hiện thì các ngỏ ra cài lại vào đơn vò I / O, vì thế nên chúng vẫn giữ được trạng thái cho
tới khi lần cập nhật kế tiếp.
Chục ảnh quá trình xuất nhập
I0.1
I0.2
I0.3
I0.4
I0.5
I0.6
I0.7
SF
RUN
STOP
SIEMENS
SIMATIC
S7 - 200
Các cổng vào
Cổng truyền thông
Các cổng ra
Q1.0
Q1.1
2.048 từ đơn (4 Kbyte) thuộc miền nhớ đọc / ghi non-volatile để lưu chương trình (vùng
nhớ có giao diện với EEPROM).
2.048 từ đơn (4 Kbyte) thuộc kiểu đọc ghi để lưu dữ liệu, trong đó 512 từ đầu thuộc miền
non-volatile.
Tổng số ngõ vào / ra cực đại là 64 ngõ vào và 64 ngõ ra.
128 Timer chia làm 3 loại theo độ phân giải khác nhau: 4 Timer 1ms, 16 Timer 10ms và
108 Timer 100ms.
128 bộ đếm chia làm 2 loại: chỉ đếm tiến và vừa đếm tiến vừa đếm lùi.
688 bít nhớ đặc biệt dùng để thông báo trạng thái và đặt chế độ làm việc.
Các chế độ xử lý ngắt gồm: ngắt truyền thông, ngắt theo sườn lên hoặc xuống, ngắt thời
gian, ngắt của bộ đếm tốc độ cao và ngắt truyền xung.
3 bộ đếm tốc độ cao với nhòp 2Khz và 7 Khz.
chuyển đổi RS232 / RS485.5
Chân Giải thíchCấu trúc bộ nhớ
Bộ nhớ S7-200 được chia thành 4 vùng với 1 tụ có nhiệm vụ duy trì dữ liệu trong một
khoảng thời gian nhất đònh khi mất nguồn. Bộ nhớ S7-200 có tính năng động cao, đọc, ghi
được trong toàn vùng, loại trừ các bit nhớ đặc biệt SM (Special memory) chỉ có thể truy
nhập để đọc
EEPROM MIỀN NHỚ NGOÀI
Chương trình Chương
trình
Chương trình
Tham số Tham số Tham số
Dữ liệu Dữ liệu Dữ liệu
Vùng đối tượng
Vùng chương trình
Là nguồn nhờ được sử dụng để lưu giữ các lệnh chương trình. Vùng này thuộc kiểu
non-volatile đọc / ghi được.
Vùng tham số
Là miền lưu giữ các tham số như: từ khóa, đòa chỉ trạm, … cũng giống như vùng
chương trình, thuộc kiểu non-volatile đọc / ghi được.
Vùng dữ liệu
Là miền nhớ động được sử dụng để cất giữ các dữ liệu của chương trình. Nó có thể
được truy cập theo từng bít, từng byte, từng từ đơn (W-Word) hoặc theo từ kép (DW_
Double Word), vùng dữ liệu được chia thành những miền nhớ nhỏ với các công dụng
khác nhau. Chúng được ký hiệu bằng chữ cái đầu theo từ tiếng Anh, đặc trưng cho công
24 VDC
Truyền và nhận dữ liệu
Không sử dụng
Đất
5 VDC (điện trở trong 100Ω)
24 VDC (120 mA tối đa)
Truyền và nhận dữ liệu
Không sử dụng
Bao gồm các thanh ghi Timer, bộ đếm tốc độ cao, bộ đệm vào ra, thanh ghi AC. Vùng
này không thuộc kiểu Non-Volatile nhưng đọc / ghi được .
Mở rộng cổng vào ra
CPU 214 cho phép mở rộng nhiều nhất 7 Modul. Các modul mở rộng tương tự và có
thể mở rộng cổng vào của PLC bằng cách ghép nối thêm vào nó các modul mở rộng về
phía bên phải của CPU, làm thành một móc xích . Đòa chỉ của các vò trí của các modul
được xác đònh cùng kiểu . Ví dụ như một modul cổng ra không thể gán đòa chỉ của một
modul cổng vào, cũng như một modul tương tự không thể có đòa chỉ như một modul số và
ngược lại .
Các modul mở rộng số hay tương tự đều chiếm chổ trong bộ đệm, tương tự với số đầu
vào/ra của modul .
Sau đây là đòa chỉ của một số modul mở rộng trên CPU214
CPU214
Modul 0
4vào/4a
Modul 1
8 vào
Modul 2
3vào/1a
Analog
Modu3
8 ra
I3.5
I3.6
I3.7
AIW 0
AIW 2
AIW 4
AQW 0
Q3.0
Q3.1
Q3.2
Q3.3
Q3.4
Q3.5
Q3.6
Q3.7
AIW8
AIW12
AQW 4
Cấu trúc chương trình của S7-200
Có thể được lập trình cho PLC S7-200 bằng cách sử dụng một trong các phần mềm :
Step 7 – Micro / Dos
Step 7 – Micro / Win
Những phần mềm này đều có thể cài đặt được trên các máy lập trình họ
PG 7xx và các máy tính cá nhân.
7
Các chương trình cho S7-200 phải có cấu trúc bao gồm chương trình chính (main
program) và sau đó đến các chương trình con và các chương trình xử lý ngắt.
Chương trình chính được kết thúc bằng lệnh kết thúc chương trình (MEND).
Chương trình con là một bộ phận của chương trình, các chương trình phải được viết sau
SBRn Chương trình thứ n+1
RET
INT 0 Chương trình xử lý ngắt thứ
nhất
RET I
INT n Chương trình xử lý ngắt thứ n+1
RET I
Thực hiện trong vòng quét
Thực hiện khi chương trình chính gọi
Thực hiện khi có tín hiệu báo ngắt
Như vậy tại thời điểm thực hiện lệnh vào / ra thông thường lệnh không làm việc trực tiếp
cổng vào ra mà chỉ thông qua bộ đệm ảo của cổng trong vùng nhớ tham số. Việc truyền
thông giữa bộ đệm ảo với ngoại vi trong các giai đoạn (1) và (4) do CPU quản lý. Khi gặp
lệnh vào / ra ngay lập tức hệ thống sẽ cho dừng mọi công việc khác, ngay cả chương
trình xử lý ngắt để thực hiện lệnh này trực tiếp với cổng vào và ra.
Nếu sử dụng các chế độ ngắt chương trình tương ứng với từng tín hiệu ngắt được soạn
thảo và cài đặt như một bộ phận của chương trình. Chương trình xử lý ngắt chỉ được thực
hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt và có thể xảy ra ở bất cứ điểm nào
trong vòng quét.
6. Các toán hạng lập trình cơ bản
Có 6 phần tử lập trình cơ bản, mỗi phần tử có công dụng riêng. Để dễ dàng xác đònh
thì mỗi phần tử được gán cho mộ ký tự:
I : Dùng để chỉ ngõ vào vật lý nối trực tiếp vào PLC.
Q : Dùng để chỉ ngõ ra vật lý nối trực tiếp từ PLC.
T : Dùng để xác đònh phần tử đònh thời có trong PLC.
C : Dùng để xác đònh phần tử đếm có trong PLC.
M và S : Dùng như các cờ hoạt động như bên trong PLC.
Tất cả các phần tử (toán hạng) trên có hai trạng thái ON hoặc OFF (1 hoặc 0).
Cuộn dây có thể được dùng để điều khiển trực tiếp ngõ ra từ PLC (như phần tử Q) hoặc
có thể điều khiển bộ đònh thì, bộ đếm hoặc cờ (như phần tử M, S). Mỗi cuộc dây được
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ộ 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 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 pha, đường nguồn bên
phải là dây trung hòa và cũng là đường trở về nguồn cung cấp (thường không được thể
hiện khi dùng chương trình tiện dụng STEPT MICRO / DOS hoặc STEPT – MICRO/WIN.
Dòng điện chạy từ trái qua tiếp điểm đến đóng các cuộn dây hoặc các hộp trở về bên
phải nguồn.
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.
Các toán hạng và giới hạn cho phép của CPU 214
Phương pháp truy nhập Giới hạn cho phép của các toán hạng
Truy nhập bit (đòa chỉ byte, chỉ
số bit)
V (0.0 ÷ 4095.7)
I (0.0 ÷ 7.7)
Q (0.0 ÷7.7)
M (0.0 ÷31.7)
SM (0.0 ÷85.7)
T (0 ÷127)
C (0 ÷127)
Truy nhập bit VB (0 ÷4.095)
IB (0 ÷7)
MB (0 ÷31).
SMB (0 ÷85)
AC (0 ÷3)
Hằng số
c1 c0
c2 c1
c3 c2
c4 c3
c5 c4
c6 c5
c7 c6
c8 c7
Hình a: Trạng thái của ngăn xếp trước và sau khi thực hiện lệnh LD
Trước LDN Sau
c0 ∼m
c1 c0
c2 c1
c3 c2
c4 c3
c5 c4
c6 c5
c7 c6
c8 c7
Bò đẩy ra khỏi ngăn xếp
Hình b: Trạng thái của ngăn xếp trước và sau khi thực hiện lệnh LDN.
Các dạng khác nhau của lệnh LD, LDN cho LAD như sau:
LAD Mô tả Toán hạng
LD n Tiếp điểm thường mở sẽ
được đóng nếu n = 1.
n: I, Q, M, SM, T, C, V
(bit)
11
Nội dung của ngăn xếp không bò thay đổi.
Mô tả lệnh bằng LAD như sau:
LAD Mô tả Toán hạng
n
( )
Cuộn dây đầu ra ở trạng
thái kích thích khi có dòng
điều khiển đi qua.
n: I, Q, M, SM, T, C, V
(bít)
n
( ) ( )
Cuộn dây đầu ra được
kích thích tức thời khi có
dòng điều khiển đi qua.
n: Q
(bít)
Mô tả bằng lệnh STL như sau:
STL Mô tả Toán hạng
12
= n
Lệnh = sao chép giá trò của
đỉnh ngăn xếp tới tiếp điểm
n được chỉ dẫn trong lệnh.
n: I, Q, M, SM, T, C,
V
(bít)
= I n
Lệnh = I (immediate) sao
S BIT: Q
N(byte): IB, QB, MB,
SMB, VB,AC, Hằng số,
*VD, *AC
Ngắt tức thời một mảng gồm
n các tiếp điểm kể từ đòa chỉ
S BIT
STL Mô tả Toán hạng
S S BIT n Ghi giá trò logic vào một
mảng gồm n bít kể từ đòa chỉ
S BIT
S BIT: I, Q, M, SM, T,
C, V
(bit)
13
S BIT n
( S )
S BIT n
( R )
S BIT n
( RI )
S BIT n
( SI )
n: IB, QB, MB, SMB,
VB
(byte) AC, Hằng số,
n và giá trò bít đầu tiên trong ngằn
xếp. Kết quả được ghi lại bít đầu
trong ngăn xếp.
n: I, Q, M, SM, T, C, V
(bit)
AN n
ON n
Lệnh thực hiện toán tử ^ (A) và V
(O) giữa giá trò logic nghòch đảo
của tiếp điểm n và giá trò bít đầu
tiên trong ngằn xếp. Kết quả được
ghi lại bít đầu trong ngăn xếp.
AI n
OI n
Lệnh thực hiện tức thời toán tử ^
(A) và V (O) giữa giá trò logic của
tiếp điểm n và giá trò bít đầu tiên
trong ngằn xếp. Kết quả được ghi
lại bít đầu trong ngăn xếp.
n: 1
(bit)
ANI n
ONI n
Lệnh thực hiện tức thời toán tử ^
(A) và V (O) giữa giá trò logic
nghòch đảo của tiếp điểm n và giá
trò bít đầu tiên trong ngằn xếp. Kết
quả được ghi lại bít đầu trong ngăn
xếp.
sau được chuyển cho bít trước.
Không có
AND (A)
OR (O)
Lệnh A và O phối hợp giá trò logic của một tiếp điểm n với giá trò bít đầu tiên của
ngăn xếp. Kết quả phép tính được đặt lại vào bít đầu tiên trong ngăn xếp. Giá trò của các
bít còn lại trong ngăn xếp không bò thay đổi.
Luật tính toán của các phép tính logic And và Or như sau:
x y x ^ y
(And)
x v y
(Or)
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Tác động của lệnh AND và OR vào ngăn xếp như sau
Trước A Sau m= c0 ^ c1
c0 m
15
c1 C1
c2 C2
c3 C3
c4 C4
c5 C5
c6 C6
c7 C7
c8 C8
c1 c2
16
c2 c3
c3 c4
c4 c5
c5 c6
c6 c7
c7 c8
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 bít đầu tiên của ngăn xếp. Lệnh
LPS sao chép nội dung của bít đầu tiên và bít thứ hai trong ngăn xếp, nội dung ngăn xếp
sau đó bò đẩy xuống một bít. Lệnh LRD lấy giá trò của bít thứ hai ghi vào bít đầu tiên của
ngăn xếp, nội dung ngăn xếp đó được kéo lên một bít. Lệnh LPP kéo ngăn xếp lên một
bít.
Sơ đồ minh họa thay đổi ngăn xếp của các lệnh LPS, LRD và LPP
Trước LPS Sau Trước LRD Sau Trước LPP Sau
C0 c0 c0 c1 c0 c1
c1 c0 c1 c1 c1 c2
c2 c1 c2 c2 c2 c3
c3 c2 c3 c3 c3 c4
c4 c3 c4 c4 c4 c5
c5 c4 c5 c5 c5 c6
c6 c5 c6 c6 c6 c7
c7 c6 c7 c7 c7 c8
c8 c7 c8 c8 c8
ORW, ORD
IW, QW
(word) W, CA,
AIW, *VD, *AC
ORW IN1 IN2
Lệnh thực hiện phép logic OR
giữa các bít tương ứng của hai
từ IN1 và IN2. Kết quả được
ghi lại vào IN2
XORW IN1 IN2
Lệnh thực hiện phép logic XOR
giữa các bít tương ứng của hai
từ IN1 và IN2 . Kết quả được
ghi lại vào IN2
ANDD IN1 IN2
Lệnh thực hiện phép logic
AND giữa các bít tương ứng
của hai từ kép IN1 và IN2. Kết
quả được ghi lại vào IN2
IN1: VD, ID, QD,
MD, SMQ.
(Dword) AC, HC,
*CD,*AC
Hằng số.
IN2: VD, ID, QD,
MD, SMD
(Dword)AC, *VD,
*AC
ORD IN1 IN2
Lệnh thực hiện phép logic OR
giữa các bít tương ứng của hai
(word) SMW, AC,
AIW, *VD, *AC,
Hằng số.
OUT: VW, T, C, IW,
QW, MW,
(word) SMW, AC,
*VD, *AC
Lệnh thực hiện phép
tính logic OR giữa các
bít tương ứng của hai từ
IN1 và IN2. Kết quả
được ghi vào từ OUT.
Lệnh thực hiện phép
tính logic XOR giữa các
bít tương ứng của hai từ
IN1 và IN2. Kết quả
được ghi vào từ OUT.
Lệnh thực hiện phép
tính logic AND giữa
các bít của hai từ kép
IN1 và IN2. Kết quả
được ghi vào từ OUT.
IN1: VD, ID, QD,
MD, SMW
(Dword) AC, AIW,
Hằng số, VD, AC
IN2: VD, ID, QD,
MD, SMW
(Dword) AC, AIW,
Hằng số, *VD, *AC
OUT
WXOR
W
EN
IN1
IN2
OUT
WXOR
DW
EN
IN1
IN2
OUT
WOR
DW
EN
IN1
IN2
OUT
WAND
DW
EN
IN1
IN2
OUT
Tiếp điểm đảo trạng thái của dòng
cung cấp. Nếu dòng cung cấp có tiếp
điểm đảo thì nó bò ngắt mạch, nếu
không có tiếp điểm đảo thì nó thông
mạch.
EDGE UP (EU)
EDGE DOWN (ED)
Lệnh NOT, EU và ED thực hiện các thuật toán đặc biệt trên bít đầu tiên của ngăn xếp.
Lệnh NOT đảo giá trò của bít đầu tiên trong ngăn xếp. Lệnh EU khi phát hiện thấy sườn
lên từ 0 đến 1 trong bít đầu tiên của ngăn xếp thì đặt giá trò 1 vào bít đầu tiên của ngăn
xếp trong khoảng thời gian bằng một vòng quét.
Tác động của lệnh vào ngăn xếp như sau:
Trước NOT Sau Trước EU Sau Trước ED Sau
c0 ∼c0 1 c1 C0 1
c1 c1 c1 c1 C1 c1
c2 c2 c2 c2 C2 c2
c3 c3 c3 c3 C3 c3
c4 c4 c4 c4 C4 c4
c5 c5 c5 c5 C5 c5
20
NOT
P
N
c6 c6 c6 c6 C6 c6
c7 c7 c7 c7 C7 c7
c8 c8 c8 c8 C8 c8
Các lệnh so sánh
Khi lập trình, nếu có 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 cho byte, từ hay từ kép của S7-200.
LAD sử dụng lệnh so sánh để so sánh các giá trò của byte, từ và từ kép (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ừ hoặc từ kép với nhau thì phải để ý đến dấu của toán hạng, ngược lại khi so
n1, n2(từ kép):VD,
ID, QD, MD, SMD,
AC, HC, Hằng số,
*VD, *AC
21
n1
n2
= =
B
n1
n2
= = I
n1
n2
= =
D
= = B
n1
n2
= =
R
= = B
n1
n2
> =
B
n1
n2
> = I
(nếu sai) nên có thề sử dụng kết hợp cùng với các lệnh gogic LA, 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 (>), có thể tạo ra được nhờ dùng kết hợp lệnh NOT với các
lệnh đã có (=, >=, <=). Ví dụ sau mô tả việc thực hiện pháp so sánh không bằng nhau (<
>) giữa nội dung của từ V>W100 và hằng số 50 bằng cách sử dụng kết hợp phép so sánh
bằng nhau LDW = và lệnh đảo NOT.
LDB =, LDW =
LDD =, LDR =
* Lệnh kiểm tra tính bằng nhau của nội dung 2 byte, từ, từ kép, hoặc số thực. Trong
trường hợp phép so sánh cho kết quả đúng, bít đầu tiên trong ngăn xếp sẽ có giá trò logic
bằng 1.
LDB < = , LDW < =
LDD < = , LDR < =
* Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có nhỏ hơn hoặc bằng
nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không. Trong trường hợp phép so
sánh cho kết quả đúng, bít đầu tiên trong ngăn xếp có giá trò logic bằng 1.
LDB > =, LDW > =
LDD > =, LDR > =
* Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có lớn hơn hoặc bằng
nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không. Trong trường hợp phép so
sánh cho kết quả đúng, bít đầu tiên trong ngăn xếp có giá trò logic bằng 1.
AB =, AW =
AD =, AR =
* Lệnh kiểm tra tính bằng nhau của nội dung 2 byte, từ, từ kép, hoặc số thực. Trong
trường hợp phép so sánh cho kết quả đúng, sẽ thực hiện phép tính logic And giữa bít đầu
tiên trong ngăn xếp với giá trò logic.
AB < =, AW < =
AD < =, AR < =
Lệnh so sánh nội dung của byte, từ, từ kép hoặc số thực thứ nhất có nhỏ hơn hoặc bằng
nội dung của byte, từ, từ kép hoặc số thực thứ hai hay không. Trong trường hợp phép so
2
n
1 ,
n
2
(byte):VB, IB,
QB, MB, SMB, AC,
hằng số, *VD , *AC
LDB > = n
1
n
2
Lệnh thực hiện phép tính
22
= = B
AB > = n
1
n
2
OB > = n
1
n
2
logic Load , And hoặc Or
giữa giá trò logic 1 với nội
dung đỉnh ngăn xếp khi nội
dung 2 byte n
1
và
n
2
thỏa
mãn n
1
< = n
2
LDW = n
1
n
2
AW = n
1
n
2
OW = n
1
n
2
Lệnh thực hiện phép tính
logic Load , And hoặc Or
giữa giá trò logic 1 với nội
dung đỉnh ngăn xếp khi nội
dung 2 từ n
1
và
n
2
thỏa
dung đỉnh ngăn xếp khi nội
dung 2 từ n
1
và
n
2
thỏa
mãn
-
n
1
> = n
2
LDW < = n
1
n
2
AW < = n
1
n
2
OW < = n
1
n
2
Lệnh thực hiện phép tính
logic Load , And hoặc Or
giữa giá trò logic 1 với nội
dung đỉnh ngăn xếp khi nội
dung 2 từ kép n
1
và
n
2
thỏa
mãn n
1
= n
2
n
1 ,
n
2
(từ kép) :VD, ID,
QD, MD, SMD, AC,
HC , hằng số, *VD ,
*AC
LDD > = n
1
n
2
AD > = n
1
n
2
OD > = n
23
OD < = n
1
n
2
dung 2 từ kép n
1
và
n
2
thỏa
mãn n
1
< = n
2
LDR = n
1
n
2
AR = n
1
n
2
OR = n
1
n
2
Lệnh thực hiện phép tính
n
2
Lệnh thực hiện phép tính
logic Load , And hoặc Or
giữa giá trò logic 1 với nội
dung đỉnh ngăn xếp nếu hai
số thực n
1
và n
2
(4 byte )
thỏa mãn n
1
> = n
2
LDR < = n
1
n
2
AR < = n
1
n
2
OR < = n
1
n
2
Lệnh thực hiện phép tính
logic Load , And hoặc Or
giữa giá trò logic 1 với nội
đến chính nó) về nguyên tắc không bò cấm song phải để ý đế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 1. Bởi vậy trong chương trình con các lệnh có điều kiện được thực hiện như
24
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 giá trò logic mới là 1, các bít khác của ngăn xếp nhận giá trò logic 0 và
điều khiển được chuyển đế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 vò trí khác trong chương trình. Cú pháp của 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).
Lệnh nhảy, lệnh gọi chương trình con, lệnh khai báo nhãn và lệnh thoát khỏi chương trình
con được biểu diễn trong LAD và trong STL như sau:
LAD STL Mô tả Toán hạngJMP Kn
Lệnh nhảy thực hiện
việc chuyển điều khiển
( CALL )
n
( CRET )