Thiết kế theo logic Bool & biểu đồ Karnaugh
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.
Bạn đang xem 20 trang mẫu của tài liệu "Thiết kế theo logic Bool & biểu đồ Karnaugh", để 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: Thiết kế theo logic Bool & biểu đồ Karnaugh
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 ... ở 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:
- thiet_ke_theo_logic_bool_bieu_do_karnaugh.pdf