Giáo trình Kỹ thuật điều khiển Lập trình PLC Simatic S7-200 (Phần 1)

Quá trình chuyển đổi một mục tiêu điều khiển thành một chương trình theo ngôn ngữ LAD, FBD hay STL yêu cầu phải thông qua một cấu trúc. Đại số BOOL là một trong các công cụ cần thiết để phân tích và thiết kế những hệ thống này

pdf 153 trang thom 05/01/2024 1780
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kỹ thuật điều khiển Lập trình PLC Simatic S7-200 (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Kỹ thuật điều khiển Lập trình PLC Simatic S7-200 (Phần 1)

Giáo trình Kỹ thuật điều khiển Lập trình PLC Simatic S7-200 (Phần 1)
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 125 
8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
8.1 Giới thiệu 
Quá trình chuyển đổi một mục tiêu điều khiển thành một chương trình 
theo ngôn ngữ LAD, FBD hay STL yêu cầu phải thông qua một cấu trúc. Đại 
số BOOL là một trong các công cụ cần thiết để phân tích và thiết kế những hệ 
thống này. 
8.2 Đại số BOOL 
Đại số BOOL được phát triển vào năm 1800 bởi một nhà toán học người 
Ai-len tên là James Bool. Nó cực kỳ hữu ích trong thiết kế các mạch số. Nó 
vẫn được sử dụng nhiều bởi các kỹ sư điện và tin học. Phương pháp thực 
hiện là mô hình hệ thống logic bằng các công thức riêng lẻ. Công thức có thể 
là sự kết hợp của các AND/OR đơn giản thành các dạng mới. Với cùng 
phương pháp này, người thiết kế mạch có thể ứng dụng cho lập trình ở LAD. 
Hình 8.1: Các phép toán đại số bool với bảng sự thật và cổng logic 
AND 
BAX ×= 
A B X 
0 
0 
1 
1 
0 
1 
0 
1 
0 
0 
0 
1 
OR 
BAX += 
A B X 
0 
0 
1 
1 
0 
1 
0 
1 
0 
1 
1 
1 
NOT 
AX = 
A X 
0 
1 
1 
0 
NAND 
BAX ×= 
A B X 
0 
0 
1 
1 
0 
1 
0 
1 
0 
0 
0 
1 
 NOR 
BAX += 
A B X 
0 
0 
1 
1 
0 
1 
0 
1 
1 
0 
0 
0 
XOR 
BAX Å= 
A B X 
0 
0 
1 
1 
0 
1 
0 
1 
0 
1 
1 
0 
XNOR 
BAX Å= 
A B X 
0 
0 
1 
1 
0 
1 
0 
1 
1 
0 
0 
1 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu Chí Đức 
126 
Công thức Boolean bao gồm nhiều biến và các hoạt động giống như các 
công thức đại số thông thường. Ba phép toán cơ bản là AND, OR và NOT, 
hoặc tổ hợp của các phép toán cơ bản là NAND, NOR, XOR, XNOR. Các 
phép toán với bảng sự thật được cho ở hình 4.1. Mỗi phép toán được trình 
bày bởi một công thức đơn giản với hai biến được sử dụng là A và B để tính 
giá trị X. Bảng sự thật là một phương pháp đơn giản để mô tả tất cả các tổ 
hợp có thể có là cho ngõ ra ở trạng thái “ON” hoặc “OFF” (“1” hoặc “0”). 
Chú ý: Cổng XOR thường được chuyển thành các cổng tương đương như 
sau: 
BABABAX ×+×=Å= 
· Các định lý của đại số Bool 
Tiên đề: 1. 0AA =+ 
 2. A1A =× 
 3. 0AA =× 
 4. 1AA =+ 
 5. 01 = 
Định lý: 1. AAA =+ 
2. AAA =× 
3. A + 1 = 1 
4. 00A =× 
5. ABAA =×+ 
6. A)BA(A =+× 
7. AA = 
8. BAB)(A ×=+ 
9. BAB)(A +=× 
10. )CB(AC)BA( ++=++ 
11. )CB(AC)BA( ××=×× 
12. BABAA +=×+ 
13. BA)BA(A ×=+× 
14. ABBA +=+ 
15. ABBA ×=× 
16. )CA()BA()CB(A +×+=×+ 
17. )CA()BA()CB(A ×+×=+× 
 Định l ý DeMorgan’s 
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 127 
18. BACA)CA()BA( ×+×=+×+ 
19. CBCA)CBCA( ×+×=×+× 
20. )CB()CA()CB()CA( +×+=+×+ 
Ví dụ: Cho biểu thức .( .( ) . )A B C D E C F C= + + + 
Biểu thức đại số A được đơn giản theo các bước như sau: 
 ))(( CFCEDCBA ×+++××= 
(5) 
(4) (1)
(3) )1(
(2) )(
(1) )(
CBA
CBA
FEDCBA
CFCCECDBA
CFCCCECDBA
×=
××=
+++××=
×++×+××=
×+×+×+××=
Chú ý: Khi đơn giản các biểu thức đại số Bool, phép tóan OR có ưu tiên 
thấp nên chúng được thực hiện trước. Phép toán NOT có ưu tiên cao nhất, 
nên chúng được đơn giản sau. Cách thức thực hiện có thể minh họa cho việc 
đơn giản một biểu thức đại số như sau: 
BACBAX
BAAACBAX
BACACABAX
CABACABAX
CBACBAX
CBACBAX
CBACBAX
CBACBAX
×++×=
×++×+×=
×+×+×+×=
×+×+×+×=
+×++×=
+×+××=
+×+×+=
+×+×+=
)(
)(
)()(
)()()(
)()()(
)()(
8.3 Thiết kế Logic 
Các ý tưởng thiết kế có thể được chuyển đổi trực tiếp từ các biểu thức 
đại số Bool, hoặc bằng các phương pháp khác (ở các chương sau). Các biểu 
thức đại số Bool có thể được đơn giản hoặc sắp xếp lại và sau đó chuyển 
sang sơ đồ LAD hoặc FBD hay ở ngôn ngữ STL. 
Nếu chúng ta mô tả một qui trình điều khiển bằng lời, thì chúng ta 
thường có thể chuyển trực tiêp nó thành biểu thức đại số Bool như ở hình 8.2 
Các phép toán có ưu tiên cao 
được đặt trong ngoặc 
Ứng dụng định lý DeMorgan’s 
Bỏ ngoặc 
Chọn các số hạng có cùng thừa 
số, ở đây chỉ có NOT C 
Đặt thừa số chung 
 Ứng dụng định lý để đơn giản 
Ứng dụng tiếp định lý DeMorgan’s 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu Chí Đức 
128 
và hình 8.3. Trong ví dụ, việc mô tả quá trình được đưa ra trước. Trong các 
ứng dụng thực tế, điều này có được nhờ vào các bộ phận cơ của hệ thống. 
Trong nhiều trường hợp hệ thống chưa có, việc thực hiện sẽ là một bài tóan 
cho người thiết kế. Bước kế tiếp là xác định bộ điều khiển nên làm việc như 
thế nào. Trong trường hợp này, các câu lệnh được viết ra trước tiên, và sau 
đó chuyển đổi thành biểu thức đại số Bool. Biểu thức đại số Bool có thể được 
chuyển đổi theo dạng mong muốn. Công thức đầu tiên chứa một XOR, nó 
không thể biểu diễn dược ở dạng LAD, như vậy nên chuyển nó thành dạng 
các cổng tương đương sử dụng AND, OR và NOT. 
Ví dụ 8.1: Điều khiển nhiệt độ lò nhiệt 
Mô tả quá trình: 
Một lò nhiệt có hai cửa có thể cấp nhiệt cho thỏi kim loại đúc ở mỗi cửa. 
Bộ phát nhiệt cung cấp đủ nhiệt cho hai thỏi kim loại đúc. Nhưng nếu chỉ có 
một thỏi kim lọai đúc thì nhiệt độ cung cấp trở nên quá nóng, để giảm nhiệt độ 
thì một quạt giải nhiệt cho lò sẽ được bật. 
Mô tả điều khiển: 
Nếu nhiệt độ quá cao và chỉ có một thỏi kim loại đúc ở một cửa thì bật quạt. 
Giải 
Bảng xác định input/output: 
Ký hiệu Địa chỉ Chú thích 
B1 I0.0 Cảm biến báo có thỏi kim loại đúc ở cửa 1 
B2 I0.1 Cảm biến báo có thỏi kim loại đúc ở cửa 2 
T I0.2 Cảm biến báo quá nhiệt 
F Q0.0 Quạt giải nhiệt 
Biểu thức đại số Bool: 
)BB(TF 21 Å×= (1) 
)BBB1B(TF 212 ×+××= (2) 
TBBTBBF 2121 ××+××= (3) 
Chương trình biểu diễn ở ngôn ngữ LAD, FBD và STL (đối với biểu thức 2): 
LAD STL 
LD B1 
AN B2 
LDN B1 
A B2 
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 129 
FBD 
OLD 
A T 
= F 
Hình 8.2: Biểu thức đại số Bool được thiết kế theo ngôn ngữ của PLC S7-200 
Chương trình biểu diễn ở ngôn ngữ LAD, FBD và STL (đối với biểu thức 3): 
LAD STL 
FBD 
LD B1 
AN B2 
A T 
LDN B1 
A B2 
A T 
OLD 
= F 
Hình 8.3: Biểu thức đại số Bool được thiết kế theo ngôn ngữ của PLC S7-200 
Ví dụ 8.2: Hãy chuyển sơ đồ logic sau đây (hình 8.4) thành chương trình 
trong PLC ở ngôn ngữ LAD, FBD và STL: 
Giải: 
Nếu cứ giữ nguyên sơ đồ logic thì việc chuyển đổi chương trình ở LAD 
sẽ gặp nhiều khó khăn vì trong PLC không thể biểu diễn được cổng NAND và 
NOR. Vì vậy để đơn giản hơn, ta sử dụng phương pháp biến đổi sơ đồ thành 
biểu thức đại số Bool và sau đó đơn giản biểu thức này. 
Hình 8.4: Sơ đồ logic 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu Chí Đức 
130 
Sơ đồ trên được biểu diễn ở dạng biểu thức đại số Bool và sau đó được 
đơn giản. 
( ) )( CABB +××÷
ø
öç
è
æ +××= CBAX 
)()( CABBCBAX ×××+++= 
CABX
CABCABCABX
CABBCABCCABBCABAX
××=
××++××+××=
×××+×××+×××+×××=
0 
Từ biểu thức đã đơn giản ta được sơ đồ logic sau và biểu diễn ở LAD, 
FBD, STL (hình 8.5). 
LAD STL 
FBD 
LD B 
AN A 
A C 
= X 
Hình 8.5: Sơ đồ logic và chương trình trong PLC 
Tóm lại, ta sẽ thu được các biểu thức đại số Bool từ việc mô tả yêu cầu 
công nghệ hoặc một sơ đồ mạch hoặc một sơ đồ LAD. Các biểu thức có thể 
được đơn giản bằng cách sử dụng các định lý của đại số Bool. Và sau đó từ 
biểu thức này ta có thể chuyển thành ngôn ngữ LAD, FBD hay STL trong 
PLC. Khi đơn giản các biểu thức đại số Bool ta cần chú ý một số quy tắc cơ 
bản sau: 
· Loại bỏ các cổng NOT không cần thiết. Thông thường có thể thực hiện 
bằng cách thay thế các cổng NAND và NOR bằng một biểu thức đơn giản 
hơn sử dụng định lý DeMorgan. 
· Lọai bỏ các công thức phức tạp như XOR. 
 Các qui tắc này có thể được mô tả như ví dụ sau: 
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 131 
Ví dụ 8.3: Cho biểu thức điều khiển: 
 CF)CED(C(BA ×+++××= 
Biểu thức trên có thể được biểu diễn ở dạng sơ đồ mạch logic như sau: 
Biểu diễn ở LAD: 
Hình 8.6: Minh họa các qui tắc đơn giản khi chuyển đổi biểu thức đại số Bool 
sang LAD 
8.3.1 Các kỹ thuật đại số Bool 
Có một vài kỹ thuật chung được sử dụng khi đơn giản công thức. Các kỹ 
thuật này được biểu diễn ở hình 8.7. 
CAACA +=+ Chứng minh: ACA + 
CA
CA
AACA
+Û
+Û
++Û
))((
))((
1 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu Chí Đức 
132 
AAAB =+ Chứng minh: AAB + 
 1AAB +Û 
A
A
BA
Û
Û
+Û
)(
)(
1
1
CBACBA =++ Chứng minh: CBA ++ 
CBA
CBA
CBA
CBA
Û
Û
+Û
++Û
)(
)(
)(
Hình 8.7: Các kỹ thuật đại số Bool 
8.4 Các dạng logic chung 
Khi biết một tập các dạng logic đơn giản sẽ cung cấp cho người thiết kế 
giải quyết các chiến lược điều khiển. Các dạng sau được cung cấp để sử 
dụng trực tiếp hoặc ý tưởng khi thiết kế. 
8.4.1 Dạng cổng phức 
Tổng cộng có 16 loại cổng logic khác nhau có 2 ngõ vào. Dạng đơn giản 
nhất là AND và OR, các cổng khác là các cổng phức. Ba cổng phức thông 
dụng được thảo luận trước đây là NAND, NOR và XOR. Các cổng này có thể 
được biểu diễn thành dạng đơn giản hơn chỉ với các cổng AND và OR tương 
ứng ở sơ đồ LAD trong PLC biểu diễn ở hình 8.8. 
 NAND NOR XOR 
BAX
BAX
+=
×=
BAX
BAX
×=
+=
BABAX
BAX
×+×=
Å=
Hình 8.8: Chuyển đổi các chức năng logic phức 
8.4.2 Multiplexers 
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 133 
Multiplexers là sự đa hợp các thiết bị được kết nối với một thiết bị đơn. 
Nó rất thông dụng trong các hệ thống điện thoại. Một chuyển mạch điện thoại 
được sử dụng để xác định điện thoại nào sẽ được kết nối. 
Hình 8.9 là một bộ multiplexer. Ngõ ra X sẽ được kết nối với một trong 4 
ngõ vào D1, D2, D3 hoặc D4 tùy thuộc vào giá trị của các ngõ A1 và A2. 
Hình 8.9: Một Multiplexer 
Dạng multiplexer được biểu diễn ở LAD có thể trình diễn ở hình 8.10. 
Hình 8.10: Một Multiplexer biểu diễn ở Ladder Logic 
8.5 Một số ví dụ thiết kế đơn giản với đại số bool 
Các trường hợp sau đây minh họa các vấn đề logic tổ hợp khác nhau và 
các giải pháp có thể thực hiện. Hãy đọc kỹ mô tả trước khi xem lời giải. 
8.5.1 Các chức năng logic cơ bản 
Yêu cầu 1: Viết một chương trình sao cho ngõ ra D ở mức logic “1” khi công 
tắc A và B đóng lại hoặc khi công tắc C được đóng. 
Giải quyết: C)BA(D +×= 
D1 
D2 multiplexer 
 X 
D3 
D4 
 A1 A2 
A1 A2 X 
0 
0 
1 
1 
0 
1 
0 
1 
D1 
D2 
D3 
D4 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu Chí Đức 
134 
Hình 8.11: Chương trình được viết ở LAD 
Yêu cầu 2: Viết một chương trình sao cho ngõ ra D ở mức logic “1” khi 
nút ấn A được ấn, hoặc chỉ B hoặc chỉ C được ấn. 
 Giải quyết: )CB(AD Å+= 
Hình 8.12: Chương trình được viết ở LAD 
8.5.2 Hệ thống an toàn xe hơi 
Yêu cầu: Viết chương trình ở LAD cho một hệ thống an toàn cửa xe 
hơi/dây an toàn chỗ ngồi. Khi cửa mở, hoặc dây an toàn chưa được thắt thì 
việc khoá khởi động không thể thực hiện được. Nếu tất cả được thực hiện thì 
khóa có thể khởi động được động cơ. 
Giải quyết: 
Hình 8.13: Chương trình hệ thống an toàn xe viết ở LAD 
8.5.3 Quay phải/trái động cơ 
Yêu cầu: thiết kế một bộ điều khiển động cơ có một nút nhấn quay phải 
và một nút nhấn quay trái. Các ngõ ra quay phải và trái sẽ chỉ ở “1” khi một 
trong các nút nhấn được ấn. Khi cả hai nút nhấn được ấn thì động cơ không 
làm việc. 
Giải quyết: 
BRBFR
BRBFF
×=
×= 
Ở đây: 
F = Động cơ quay phải 
R = Động cơ quay trái 
BF = Nút nhấn quay phải 
BR = Nút nhấn quay trái 
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 135 
Hình 8.14: Chương trình quay phải, trái viết ở LAD 
8.5.4 Cảnh báo trộm 
Cảnh báo trộm cho một ngôi nhà như sau: khi có sự xâm nhập của kẻ 
trộm thì cảnh báo và đèn báo được kích hoạt. Cảnh báo này được kích hoạt 
nếu kẻ xâm nhập bị phát hiện bằng cảm biến gắn ở cửa sổ và một bộ phát 
hiện chuyển động. Cảm biến ở cửa sổ là loại thường đóng, khi cửa sổ vỡ do 
kẻ trộm xâm nhập thì cảm biến bị ngắt. Cảm biến nhận biết chuyển động 
được thiết kế để khi một người được phát hiện thì ngõ ra sẽ ở mức “1”. Ngoài 
ra còn có một công tắc để kích hoạt/không kích hoạt cảnh báo. Hoạt động cơ 
bản của hệ thống cảnh báo, các ngõ vào và ra của bộ điều khiển được cho ở 
bảng sau: 
Ký hiệu Địa chỉ Chú thích 
A Q0.0 Đèn và cảnh báo, ON=”1” 
W I0.0 Cảm biến cửa sổ/cửa chính, thường đóng 
M I0.1 Cảm biến chuyển động, thường hở 
S I0.2 Công tắc kích hoạt cảnh báo, ON=”1” 
 Hoạt động cơ bản của cảnh báo có thể được mô tả theo qui tắc: 
1. Nếu cảnh báo là “ON”, kiểm tra cảm biến. 
2. Nếu cảm biến cửa sổ/cửa chính bị ngắt, bật âm thanh cảnh báo và 
đèn báo sáng. 
Bước kế tiếp là xác định công thức điều khiển. Trong trường hợp này có 
3 ngõ vào khác nhau và 1 ngõ ra, bảng sự thật được trình bày ở hình 8.15. 
Input Output 
S M W A 
0 
0 
0 
0 
1 
1 
1 
1 
0 
0 
1 
1 
0 
0 
1 
1 
0 
1 
0 
1 
0 
1 
0 
1 
0 
0 
0 
0 
1 
0 
1 
1 
Hình 8.15: Bảng sự thật cảnh báo trộm 
Không có kẻ trộm, tắt cảnh báo 
Cảnh báo tắt 
Có kẻ trộm, Bật cảnh báo 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu Chí Đức 
136 
Biểu thức Boolean và đơn giản được cho ở hình 8.17 được viết từ bảng 
sự thật hình 8.16. 
)()()(
))()((
)(
)()()(
MWSMSWSA
WMWMWMWMSA
WMWMWMSA
WMSWMSWMSA
+×=×+×=
×+×+×+××=
×+×+××=
××+××+××=
Hình 8.16: Biểu thức Bool và được thực hiện với LAD 
 Công thức và mạch cho ở hình trên cũng có thể được đơn giản như hình 8.17. 
Hình 8.17: Sơ đồ mạch theo biểu thức Bool đơn giản và được thực hiện với LAD 
8.6 Biểu đồ Karnaugh 
8.6.1 Giới thiệu 
Bảng Karnaugh cho phép chúng ta chuyển đổi một bảng sự thật thành 
biểu thức Boolean đơn giản mà không sử dụng đại số Bool. Trong mục 8.5.4 
của chương này có một ví dụ về cảnh báo trộm. Hình 8.18 là bảng sự thật 
của nó với một ngõ vào báo yên tĩnh được thêm vào. 
Đã cho: A, W, M, S như trước đây, tức là: 
Ký hiệu Địa chỉ Chú thích 
A Q0.0 Đèn và cảnh báo, ON=”1” 
W I0.0 Cảm biến cửa sổ/cửa chính, thường đóng 
Châu Chí Đức 8 Thiết kế theo logic Bool & biểu đồ Karnaugh 
 137 
M I0.1 Cảm biến chuyển động, thường hở 
S I0.2 Công tắc kích hoạt cảnh báo, ON=”1” 
Và: 
Q = Báo yên tĩnh (0 = yên tĩnh) 
Bước 1: Vẽ bảng sự thật 
Bảng sự thật của mạch cảnh báo trộm nhưhình 8.18. Thay vì chuyển đổi 
trực tiếp bảng này thành biểu thức, thì ta đặt vào một bảng được chỉ ở hình 
8.19. Dòng và cột được chọn từ các biến ngõ vào. 
Việc quyết định các biến nào sử dụng cho các dòng hoặc các cột có thể 
tùy ý và các bảng sẽ trông khác nhau nhưng vẫn sẽ cho một kết quả giống 
nhau. Đối với các biến ở cả hai dòng và cột thì được sắp xếp theo thứ tự chỉ 
giá trị của bit sử dụng NOT. Trình tự không phải là nhị phân, nhưng được tổ 
chức để chỉ có một bit thay đổi tại một thời điểm. Như vậy trình tự của bit là 
00, 01, 11, 10. Bước này rất quan trọng. Kế tiếp là đưa các giá trị là “1” trong 
bảng sự thật vào bảng Karnaugh. Giá trị “0” cũng có thể được đưa vào nhưng 
không cần thiết. 
S M W Q A 
0 
0 
0 
0 
0 
0 
0 
0 
1 
1 
1 
1 
1 
1 
1 
1 
0 
0 
0 
0 
1 
1 
1 
1 
0 
0 
0 
0 
1 
1 
1 
1 
0 
0 
1 
1 
0 
0 
1 
1 
0 
0 
1 
1 
0 
0 
1 
1 
0 
1 
0 
1 
0 
1 
0 
1 
0 
1 
0 
1 
0 
1 
0 
1 
0 
0 
0 
0 
0 
0 
0 
0 
0 
1 
0 
0 
0 
1 
0 
1 
Hình 8.18: Bảng sự thật mạch cảnh báo trộm 
Trong ví dụ, ba giá trị “1” từ bảng sự thật được đưa vào trong bảng. 
Bước 2: Chia các biến vào. 
Ở đây chọn SQ và MW 
Bước 3: Vẽ bảng Karnaugh dựa vào các biến vào 
 8 Thiết kế theo logic Bool & biểu đồ Karnaugh Châu  ...  trí mong muốn. Nhập điều kiện cho ngõ 
vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến 
của phép toán tương ứng vào các ngõ IN1 và IN2. Nhập biến chứa kết quả ở 
ngõ OUT. 
Để lấy lệnh cộng hoặc trừ số thực (real) ở màn hình soạn thảo LAD, ta 
nhấp chuột vào dấu (+) ở biểu tượng trong cây lệnh. 
Sau đó trỏ chuột vào một trong các lệnh cần lấy là: (cộng số real), 
( trừ số real), giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập 
điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ 
SM0.0. Nhập các biến của phép toán tương ứng vào các ngõ IN1 và IN2. 
Nhập biến chứa kết quả ở ngõ OUT. 
14.4.2. Nhân và chia 
Các phép tóan nhân và chia có thể thực hiện được đối với các số Integer 
(16 bit), Double integer (32 bit) và số thực (32 bit). Tùy thuộc vào phép tóan là 
nhân hoặc chia dạng số nào mà kết quả thu được sẽ ở dạng số đó. 
ADD_x SUB_x 
14 Các phép toán cơ bản trong điều khiển số Châu Chí Đức 
268 
Khi có lỗi do tràn hoặc giá trị không hợp lệ thì bit SM1.1 được set lên 
mức logic „1“. Nếu kết quả là zero thì SM1.0 =”1”, kết quả âm thì SM1.2 =”1”, 
và SM1.3 =”1” nếu chia cho 0. 
Cú pháp lệnh biểu diễn cho phép toán nhân và chia như sau: 
Phép toán nhân Phép toán chia Chú thích 
Biểu diễn ở LAD: 
Thực hiện: 
IN1 * IN2 = OUT 
Biểu diễn ở LAD: 
Thực hiện: 
IN1 / IN2 = OUT 
* x: có thể là I (Integer), 
DI (Double integer), 
R(Real). 
* EN = “1”: cho phép 
nhân hoặc chia. 
* ENO = “0”: khi có lỗi. 
* IN1, IN2, OUT: các 
ngõ vào ra dạng số có 
cùng kiểu dữ liệu với x. 
Biểu diễn ở STL: 
*I IN1, OUT 
*D IN1, OUT 
*R IN1, OUT 
Thực hiện: 
IN1 * OUT = OUT 
Biểu diễn ở STL: 
/I IN1, OUT 
/D IN1, OUT 
/R IN1, OUT 
Thực hiện: 
OUT / IN1 = OUT 
Để lấy lệnh nhân hoặc chia số nguyên ở màn hình soạn thảo LAD, ta 
nhấp chuột vào dấu (+) ở biểu tượng trong cây lệnh. Sau đó 
trỏ chuột vào một trong các lệnh cần lấy là: (nhân số Integer), 
( nhân số DInt), ( chia số Integer), hoặc ( chia 
số DInt), giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho 
ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các 
biến của phép toán tương ứng vào các ngõ IN1 và IN2. Nhập biến chứa kết 
quả ở ngõ OUT. 
Để lấy lệnh nhân hoặc chia số thực (real) ở màn hình soạn thảo LAD, 
ta nhấp chuột vào dấu (+) ở biểu tượng trong cây lệnh. 
Sau đó trỏ chuột vào một trong các lệnh cần lấy là: (nhân số real), 
 ( chia số real), giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập 
điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ 
SM0.0. Nhập các biến của phép toán tương ứng vào các ngõ IN1 và IN2. 
Nhập biến chứa kết quả ở ngõ OUT. 
14.4.3. Ví dụ phép toán số học 
Ví dụ 14.3: Đếm sản phẩm 
Sản phẩm trên một băng tải được nhận biết bởi cảm biến S1. Tổng số 
lượng sản phẩm đếm được chứa trong MD20. Cứ 10 sản phẩm sẽ được đóng 
thành một thùng và số lượng thùng được chứa trong MD24. Số lượng sản 
phẩm có thể bị xóa bằng nút nhấn S2. 
MUL_x DIV_x 
Châu Chí Đức 14 Các phép toán cơ bản trong điều khiển số 
 269 
Giải 
Bảng ký hiệu 
Ký hiệu Địa chỉ Chú thích 
S1 I0.0 Cảm biến nhận biết sản phẩm 
S2 I0.1 Nút nhấn xóa số lượng sản phẩm 
So_SP MD20 Giá trị sản phẩm đếm được 
So_Thung MD24 Số lượng thùng 
Chương trình: 
LAD STL 
Network 1 Xoa so luong san pham 
LDW< LD I0.1 
EU 
MOVD 0, MD20 
Network 2 Dem so luong san pham 
LD I0.0 
EU 
+D 1, MD20 
Network 3 So luong thung 
 LD SM0.0 
MOVD MD20, MD24 
/D 10, MD24 
14.5 Tăng và giảm thanh ghi 
 Tăng và giảm là một hình thức khác của quá trình đếm. Lệnh tăng 
hoặc giảm cộng 1 với ngõ vào hoặc lấy ngõ vào trừ 1 và kết quả được đưa ra 
ngõ ra. 
 Lệnh tăng hoặc giảm thực hiện được với byte, word và double word. 
Biểu diễn tổng quát ở LAD: 
với xxx_y có thể là: 
· INC_B (tăng byte), INC_W (tăng word), 
INC_DW (tăng double word). 
· DEC_B (giảm byte), DEC_W (giảm word), 
DEC_DW (giảm double word). 
Ý nghĩa: 
xxx_y 
14 Các phép toán cơ bản trong điều khiển số Châu Chí Đức 
270 
* Tăng: IN + 1 = OUT 
* Giảm: IN -1 = OUT 
Biểu diễn ở STL: 
 Lệnh tăng: Lệnh giảm: 
Byte: 
Word: 
Double 
word: 
INCB OUT 
INCW OUT 
INCD OUT 
DECB OUT 
DECW OUT 
DECD OUT 
Ý 
nghĩa: 
OUT + 1 = OUT OUT -1 = OUT 
Để lấy lệnh tăng hoặc giảm thanh ghi ở màn hình soạn thảo LAD, ta 
nhấp chuột vào dấu (+) ở biểu tượng trong cây lệnh. Sau đó 
trỏ chuột vào một trong các lệnh cần lấy là: 
: tăng byte : giảm byte 
: tăng word : giảm word 
: tăng double word : giảm double word 
giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào 
EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần 
tăng hoặc giảm ngõ IN. Nhập biến chứa kết quả ở ngõ OUT. (thông thường 
ngõ vào và ra có chung một biến). 
Ví dụ 14.4: Hãy viết một chương trình con cho khâu tăng giảm tốc độ động cơ 
trên màn hình điều khiển TP170micro để khi ấn phím (+) thì tốc độ động cơ 
tăng dần lên, còn khi ấn phím (-) thì tốc độ động cơ giảm dần xuống. 
Giải 
 Nhằm giúp cho bạn đọc dễ hiểu, cứ mỗi lần ấn một phím (+) hoặc 
phím (-) thì tốc độ động cơ tăng hoặc giảm đi một vòng quay. Ở đây có thể có 
nhiều phương pháp nhưng chỉ giới hạn kiến thức cơ bản trong quyển sách, 
còn các kiến thức nâng cao xin bạn đọc tập 2. 
Châu Chí Đức 14 Các phép toán cơ bản trong điều khiển số 
 271 
Bảng ký hiệu 
Ký hiệu Địa chỉ Chú thích 
Phim + M0.0 Tăng tốc động cơ 
Phim - M0.1 Giảm tốc động cơ 
TD_Dongco MW20 Biến tốc độ động cơ 
Chương trình: 
LAD STL 
Network 1 Tang toc dong co 
LD M0.0 
EU 
INCW MW20 
Network 2 Giam toc dong co 
LD M0.1 
EU 
DECW MW20 
14.6. Các phép tóan logic số 
14.6.1 Các logic số trong S7-200 
Phép toán logic số sẽ thực hiện theo từng bit của hai tóan hạng số 
tương ứng hay một tóan hạng số với một hằng số. Các phép logic số có thể 
liệt kê ở bảng sau: 
Phép 
toán: 
INV AND OR XOR 
Ví dụ: IN: ....1001 
OUT: 0110 
IN1: ....1010 
IN2: ....1100 
OUT:...1000 
IN1:....1010 
IN2: ....1100 
OUT:...1110 
IN1:....1010 
IN2: ....1100 
OUT:...0110 
Biểu diễn: 
Các lệnh logic số là: 
* Lệnh đảo byte (INVB), đảo word (INVW), đảo double word (INVD) sẽ đảo 
các bit ở ngõ vào IN và kết quả được đưa ra ngõ OUT. 
AND OR XOR INV 
14 Các phép toán cơ bản trong điều khiển số Châu Chí Đức 
272 
* Lệnh AND Byte (ANDB), AND Word (ANDW), và AND Double Word (ANDD) 
thực hiện AND các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả 
được đưa ra OUT. 
* Lệnh OR Byte (ORB), OR Word (ORW), và OR Double Word (ORD) thực 
hiện OR các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được 
đưa ra OUT. 
* Lệnh XOR Byte (XORB), XOR Word (XORW), và XOR Double Word (XORD) 
thực hiện XOR các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả 
được đưa ra OUT. 
Để lấy các phép toán logic số ở màn hình soạn thảo LAD, ta nhấp chuột 
vào dấu (+) ở biểu tượng trong cây lệnh. Sau đó trỏ 
chuột vào một trong các lệnh cần lấy là: 
: đảo byte : OR byte 
 : đảo word : OR word 
: đảo dword : OR double word 
: AND byte : XOR byte 
: AND word : XOR word 
: AND double word : XOR double word 
giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào 
EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần 
tăng hoặc giảm ngõ IN. Nhập biến chứa kết quả ở ngõ OUT. (thông thường 
ngõ vào và ra có chung một biến). 
14.6.2. Ứng dụng 
14.6.2.1 Che vị trí các bit 
Một ứng dụng của phép tóan AND số là che vị trí bit. Để làm ẩn đi những 
vị trí bit không cần thiết hoặc không muốn xuất hiện thì ta sử dụng mặt nạ, ở 
những vị trí bit cần thiết ta cho giá trị “1“ và làm ẩn những bit không cần thiết 
bằng cách cho bit tương ứng giá trị „0“. Ví dụ ta cần lấy 4 bit cuối cùng của 
VW100 thì ta sẽ OR VW100 với mặt nạ sau: 0000 0000 0000 1111 và kết quả 
được chứa vào VW200. 
Chương trình: 
LAD STL 
Châu Chí Đức 14 Các phép toán cơ bản trong điều khiển số 
 273 
14.6.2.2 Chèn thêm bit 
Một ứng dụng của phép tóan OR số là chèn bit. Muốn cho bit nào trong 
thanh ghi lên mức “1” thì ta sẽ OR ở bit tương ứng với giá trị 1. Ví dụ ta muốn 
4 bit cuối của VW100 có giá trị „1“ thì ta sẽ OR nó với giá trị sau: 0000 0000 
0000 1111. 
Chương trình: 
LAD STL 
14.7 Chức năng dịch/quay thanh ghi 
14.7.1 Chức năng dịch chuyển thanh ghi 
Với chức năng dịch chuyển thanh ghi, các bit của biến sẽ được dịch về 
bên phải hay bên trái theo một giá trị xác định. Tùy theo việc dịch chuyển 
thanh ghi là 1 Byte, 1 word hay 1 double word mà giá trị dịch có thể tối đa là 8, 
16 hay 32. 
Nếu có thực hiện phép toán dịch (khác 0) thì nội dung của bit sau cùng 
thoát ra khỏi thanh ghi được chứa trong ô nhớ SM1.1. Còn nếu sau khi thực 
hiện phép dịch mà kết quả thu được của các thanh ghi là 0 thì ô nhớ SM1.0 
được hệ điều hành đặt giá trị là 1. 
Trong PLC họ S7-200, ngoài ngôn ngữ được biểu diễn theo chuẩn IEC 
1131-3, còn có ngôn ngữ được biểu diễn theo chuẩn của hãng sản xuất 
(Siemens). Các lệnh dịch chuyển thanh ghi được cho như sau: 
14.7.1.1 Dịch trái 
Ở phép toán dịch trái, cho phép dịch byte, word và double word. 
Cú pháp chung biểu diễn ỏ LAD là: 
Với: 
* x: Có thể là B (Byte), W (Word), DW (Double word). 
* IN: Thanh ghi cần dịch trái có thể Byte, Word hoặc 
Double word. 
* OUT: Nơi lưu trữ giá trị sau khi dịch trái. có thể Byte, 
Word hoặc Double word. 
* N: Số lượng bit cần dịch trái. Tùy theo dịch byte, 
word hay double word mà N có giá trị max là 8, 
16, 32. 
SHL_x 
14 Các phép toán cơ bản trong điều khiển số Châu Chí Đức 
274 
* EN, ENO: Xem mục 14.2.1 
Cú pháp chung biểu diễn ỏ STL là: 
* Dịch trái byte: SLB OUT, N 
* Dịch trái word: SLW OUT, N 
* Dịch trái double word: SLD OUT, N 
Chú ý: Ở STL, thì kết quả sau phép dịch trái sẽ được chứa vào chính thanh 
ghi cần dịch. 
Ví dụ: Khi bit M10.0 từ “0”à “1” thì yêu cầu dịch trái byte VB10 đi 3 vị trí, kết 
quả chứa vào VB10. 
LAD STL 
VB10 trước khi dịch: 
 VB10 sau khi dịch 3 vị trí: 
14.7.1.2 Dịch phải 
Ở phép toán dịch phải, cho phép dịch byte, word và double word. 
Cú pháp chung biểu diễn ỏ LAD là: 
Với: 
* x: Có thể là B (Byte), W (Word), DW (Double word). 
* IN: Thanh ghi cần dịch phải có thể Byte, Word hoặc 
Double word. 
* OUT: Nơi lưu trữ giá trị sau khi dịch phải. có thể 
Byte, Word hoặc Double word. 
* N: Số lượng bit cần dịch phải. Tùy theo dịch byte, 
word hay double word mà N có giá trị max là 8, 
16, 32. 
* EN, ENO: Xem mục 14.2.1 
Cú pháp chung biểu diễn ỏ STL là: 
1 0 1 0 1 0 0 1
0 1 0 0 1 0 0 01
 SM1.1 Chiều dịch 
SHR_x 
Châu Chí Đức 14 Các phép toán cơ bản trong điều khiển số 
 275 
* Dịch phải byte: SRB OUT, N 
* Dịch phải word: SRW OUT, N 
* Dịch phải double word: SRD OUT, N 
Chú ý: Ở STL, thì kết quả sau phép dịch phải sẽ được chứa vào chính thanh 
ghi cần dịch. 
Để lấy các phép toán dịch thanh ghi ở màn hình soạn thảo LAD, ta nhấp 
chuột vào dấu (+) ở biểu tượng trong cây lệnh. Sau đó trỏ 
chuột vào một trong các lệnh cần lấy là: 
: dịch trái byte : dịch phải byte 
: dịch trái word : dịch phải word 
: dịch trái double word : dịch phải double word 
giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào 
EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần 
dịch ở ngõ IN. Số bit cần dịch ở ngõ N. Nhập biến chứa kết quả ở ngõ OUT. 
(thông thường ngõ vào và ra có chung một biến). 
Ví dụ: Khi bit M10.0 từ “1”à “0” thì yêu cầu dịch trái byte VB10 đi 3 vị trí, kết 
quả chứa vào VB10. 
LAD STL 
VB10 trước khi dịch: 
 VB10 sau khi dịch 3 vị trí 
14.7.2 Chức năng quay thanh ghi 
Với chức năng quay thanh ghi, các bit của biến (byte, word, double 
word) sẽ được đẩy vòng tròn sang phải hay sang trái theo một giá trị xác định. 
Tại mỗi một lần quay, giá trị logic của bit bị đẩy ra khỏi đầu này cũng là giá trị 
logic được đưa vào đầu kia của biến. 
Lệnh quay sẽ không thực hiện được nếu như số đếm lần quay có giá 
trị bằng 0 hay là bằng bội số của 8 đối với quay byte, 16 đối với word hay 32 
đối với double word. 
1 0 1 0 1 0 0 1
0 0 0 1 0 1 0 1 0
Chiều dịch 
SM1.1 
14 Các phép toán cơ bản trong điều khiển số Châu Chí Đức 
276 
Đối với các giá trị khác của số đếm lần quay lớn hơn 8 (đối với byte), 
lớn hơn 16 (đối với word) hoặc 32 (đối với double word), thì lệnh sẽ thực hiện 
với số đếm lần quay mới bằng phần dư của số lần quay cũ chia cho 8, 16 
hoặc chia cho 32. 
Nếu có thực hiện phép toán quay (khác 0) thì nội dung của bit sau 
cùng thoát ra khỏi thanh ghi được chứa vào ô nhớ SM1.1. Còn nếu sau khi 
thực hiện phép quay mà kết quả thu được của các thanh ghi là 0 thì ô nhớ 
SM1.0 được hệ điều hành đặt giá trị là 1. 
Trong PLC họ S7-200, ngoài ngôn ngữ được biểu diễn theo chuẩn 
IEC 1131-3, còn có ngôn ngữ được biểu diễn theo chuẩn của hãng sản xuất 
(Siemens). Các lệnh quay thanh ghi được cho như sau: 
14.7.2.1 Quay trái 
Ở phép toán quay trái, cho phép quay byte, word và double word. 
Cú pháp chung biểu diễn ỏ LAD là: 
Với: 
* x: Có thể là B (Byte), W (Word), DW (Double word). 
* IN: Thanh ghi cần quay trái có thể Byte, Word hoặc 
Double word. 
* OUT: Nơi lưu trữ giá trị sau khi quay trái. có thể 
Byte, Word hoặc Double word. 
* N: Số lượng bit cần quay trái. 
* EN, ENO: Xem mục 14.2.1 
Cú pháp chung biểu diễn ỏ STL là: 
* Quay trái byte: RLB OUT, N 
* Quay trái word: RLW OUT, N 
* Quay trái double word: RLD OUT, N 
Chú ý: Ở STL, thì kết quả sau phép quay trái sẽ được chứa vào chính thanh 
ghi cần quay. 
Để lấy các phép toán quay thanh ghi ở màn hình soạn thảo LAD, ta 
nhấp chuột vào dấu (+) ở biểu tượng trong cây lệnh. Sau đó 
trỏ chuột vào một trong các lệnh cần lấy là: 
: Quay trái byte : Quay phải byte 
: Quay trái word : Quay phải word 
: Quay trái double word : Quay phải double word 
ROL_x 
Châu Chí Đức 14 Các phép toán cơ bản trong điều khiển số 
 277 
giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào 
EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần 
quay ở ngõ IN. Số bit cần quay ở ngõ N. Nhập biến chứa kết quả ở ngõ OUT. 
(thông thường ngõ vào và ra có chung một biến). 
Ví dụ: Khi bit M10.0 từ “0”à “1” thì yêu cầu quay trái byte VD10 đi 4 vị trí, kết 
quả chứa vào VD10. 
LAD STL 
14.7.2.2 Quay phải 
Tương tự như ở phép toán quay trái, ở phép toán quay phải cho phép 
quay byte, word và double word. 
Cú pháp chung biểu diễn ỏ LAD là: 
Với: 
* x: Có thể là B (Byte), W (Word), DW (Double word). 
* IN: Thanh ghi cần quay phải có thể Byte, Word hoặc 
Double word. 
* OUT: Nơi lưu trữ giá trị sau khi quay phải. có thể 
Byte, Word hoặc Double word. 
* N: Số lượng bit cần quay phải. 
* EN, ENO: Xem mục 14.2.1 
Cú pháp chung biểu diễn ỏ STL là: 
* Quay phải byte: RLB OUT, N 
* Quay phải word: RLW OUT, N 
* Quay phải double word: RLD OUT, N 
Chú ý: Ở STL, thì kết quả sau phép quay phải sẽ được chứa vào chính 
thanh ghi cần quay. 
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Xoay 4 vị trí
sang trái
1SM1.1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 11 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
1 0 1 10 0 0 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
VD10 sau khi quay trái
VD10 trước khi quay trái
ROR_x 

File đính kèm:

  • pdfgiao_trinh_ky_thuat_dieu_khien_lap_trinh_plc_simatic_s7_200.pdf