Giáo trình Hệ thống sản xuất tự động hóa với PLCs - Phần 6: Thiết kế logic bun
6. THIẾT KẾ LOGIC BUN
Chủ đề:
Đại số Bun
Chuyển đổi giữa đại số Bun và các mạch logic và logic bậc thang
Các ví dụ về logic
Mục tiêu:
Có khả năng đơn giản hóa các thiết kế với đại số Bun và bản đồ Karnaugh
6.1 GIỚI THIỆU
Quá trình chuyển đổi các đối tượng điều khiển vào trong một chương trình logic
bậc thang đòi hỏi cách nghĩ có cấu trúc. Đại số Bun cung cấp các công cụ cần thiết để
phân tích và thiết kế những hệ thống như vậy.
6.2 BOOLEAN ALGEBRA
Đại số Bun được phát triển trong thế kỷ 19 bởi James Bool, một nhà toán học
người Ai len. Nó được xem như là rất hữu ích cho việc thiết kế các mạch số, và nó
vẫn được dùng rất nhiều bởi các kỹ sư điện và các nhà khoa học máy tính. Các kỹ
thuật này có thể mô hình hóa một hệ logic với chỉ một phương trình đơn. Phương
trình này có thể sau đó được đơn giản hóa và/hoặc chuyển đổi thành các dạng mới.
Các kỹ thuật tương tự như vậy đã phát triển cho các nhà thiết kế mạch thích ứng rất
tốt cho lập trình logic bậc thang.
Các phương trình Bun bao gồm các biến và các phép toán và nhìn rất giống với
các phương trình đại số thông thường. Có ba toán tử cơ bản là AND (và), OR (hoặc)
và NOT (không – phủ định); các toán tử phức tạp hơn bao gồm EOR, NAND, NOR. Các
bảng chân lý nhỏ cho các hàm này được chỉ ra trong hình 6.1. Mỗi toán tử được chỉ
ra trong một phương trình đơn giản với hai biến A và B đang được sử dụng để tính
toán ra một giá trị cho X. Các bảng chân lý là một phương pháp đơn giản (nhưng
rườm rà) để chỉ ra tất cả các kết hợp có thể có mà sẽ chỉnh một đầu ra là bật hay tắt.
Ghi chú: Bằng cách chuyển một trạng thái false (sai) cũng được gọi là off (tắt)
hay 0 (zero – số không). Một trạng thái true (đúng) cũng được gọi là on (bật) hay 1
(số 1).
Ghi chú: Các ký hiệu được dùng trong các phương trình này, như là + cho OR là
không phải là chuẩn quốc tế và một vài tác giả sẽ dùng các ký hiệu khác.
Ghi chú: Hàm EOR là có sẵn trong dạng mạch, nhưng nó thường được chuyển
tới dạng tương tự như sau hơn:
ꢀ = ꢁ ⊕ ꢂ = ꢁ. ꢂ + ꢁ. ꢂ
Figure 6.1 Boolean Operations with Truth Tables and Gates
Các phép tính Bun với các bảng chân lý và các cổng (mạch)
Trong một phương trình Bun các toán tử sẽ được đặt trong một dạng phức tạp
hơn như hình 6. 2. Biến của những phương trình này chỉ có thể có một giá trị 0 cho
sai, hay 1 cho đúng. Kết quả của phương trình này tuân theo các luật tương tự như
đại số thông thường. Các thành phần của phương trình trong ngoặc đơn được thực
hiện đầu tiên. Các phép toán được thực hiện theo thứ tự NOT, AND, OR. Trong ví dụ
này hàm NOT cho biến C được làm đầu tiên, nhưng hàm NOT trên tập đầu tiên trong
ngoặc đơn phải đợi tới khi một giá trị đơn là có sẵn. Khi có một sự lựa chọn các phép
toán AND được thực hiện trước các phép toán OR. Đối với tập của các giá trị biến đã
cho kết quả của tính toán là sai (false).
đã cho ꢀ = (ꢁ + ꢂ. ꢃ) + ꢁ. (ꢂ + ꢃ)
giả sử: A=1, B=0, C=1
ꢀ = (1 + 0.1) + 1. (0 + 1)
(
)
(
)
ꢀ = 1 + 0 + 1. 0 + 0
( )
( )
ꢀ = 1 + 1. 0
ꢀ = 0 + 0
ꢀ = 0
Figure 6.2 A Boolean Equation – Một phương trình Bun
Các phương trình này có thể được thực hiện bằng cách dùng các tiên đề cơ bản
của Bun được chỉ ra trong hình 6.3. Một vài tiên đề (kết hợp, phân phối, giao hoán)
làm việc như đại số thông thường, nhưng những tiên đề khác có những khác biệt tế
nhị mà không thể bỏ qua được.
Tính lũy đẳng: ꢁ + ꢁ + ꢁ ; ꢁ. ꢁ = ꢁ
(
)
(
)
Tính kết hợp: ꢁ + ꢂ + ꢃ = ꢁ + (ꢂ + ꢃ); ꢁ. ꢂ . ꢃ = ꢁ. (ꢂ. ꢃ)
Tính giao hoán: ꢁ + ꢂ = ꢂ + ꢁ; ꢁ. ꢂ = ꢂ. ꢁ
(
)
(
) (
)
(
)
(
)
(
)
Tính phân phối: ꢁ + ꢂ. ꢃ = ꢁ + ꢂ . ꢁ + ꢃ ; ꢁ. ꢂ + ꢃ = ꢁ. ꢂ + ꢁ. ꢃ
Tính đồng nhất: ꢁ + 0 = ꢁ; ꢁ + 1 = 1; ꢁ. 0 = 0; ꢁ. 1 = ꢁ
Phần bù: ꢁ + ꢁ = 1; ꢄꢁꢅ = ꢁ; ꢁ. ꢁ = 0; 1 = 0
(
)
(
)
DeMorgan’s: ꢁ + ꢂ = ꢁ. ꢂ; ꢁ. ꢂ = ꢁ + ꢂ
Luật đối tính: trao đổi các toán tử AND và OR, cũng như các tập phổ dụng
(universal), và tập rỗng. Phương trình kết quả là tương đương với
phương trình ban đầu.
Figure 6.3 The Basic Axioms of Boolean Algebra
Các tiên đề cơ bản của đại số Bun
Một ví dụ của việc thực thi phương trình như hình 6.4. Tiên đề phân phối được
áp dụng để có được phương trình (1). Tiên đề lũy đẳng được dùng để có được
phương trình (2). Phương trình (3) thu được bằng cách dùng tiên đề phân phối để di
chuyển C ra ngoài các ngoặc đơn, nhưng tiên đề đồng nhất được dùng để giải quyết
với biến C đơn độc. Tiên đề đồng nhất sau đó được dùng để đơn giản hóa thành
phần của các ngoặc đơn để có được phương trình (4). Cuối cùng tiên đề đồng nhất
được dùng để nhận kết quả, phương trình đã được rút gọn. Nhớ rằng dùng đại số
Bun đã chỉ ra rằng 3 trong số các biến là hoàn toàn không cần thiết.
ꢄ
ꢅ
ꢁ = ꢂ. (ꢃ. ꢆ + ꢇ + ꢃ + ꢈ. ꢃ)
ꢁ = ꢂ. (ꢆ. ꢃ + ꢇ. ꢃ + ꢃ. ꢃ) + ꢈ. ꢃ)
ꢁ = ꢂ. (ꢆ. ꢃ + ꢇ. ꢃ + ꢃ + ꢈ. ꢃ)
ꢁ = ꢂ. ꢃ. (ꢆ + ꢇ + 1 + ꢈ)
(1)
(2)
(3)
(4)
(5)
( )
ꢁ = ꢂ. ꢃ. 1
ꢁ = ꢂ. ꢃ
Figure 6.4 Simplification of a Boolean Equation
Dạng đơn giản của một phương trình Bun
Ghi chú: Khi đơn giản hóa đại số Bun, Các toán tử OR có mức ưu tiên thấp, vì
vậy chúng nên được tính toán trước tiên. Các toán tử NOT có độ ưu tiên cao nhất, vì
vậy chúng phải được đơn giản hóa cuối cùng. Xem xét ví dụ từ trước:
Các toán tử độ ưu tiên cao hơn được đặt trong các ngoặc đơn
ꢀ = (ꢁ + ꢂ + ꢃ) + ꢁ. (ꢂ + ꢃ)
Luật DeMorgan được thực thi
(
)
ꢀ = (ꢁ) + ꢂ. ꢃ + ꢁ. (ꢂ + ꢃ)
Luật DeMorgan được thực thi một lần nữa
Phương trình được mở rộng
( )
ꢀ = ꢁ . (ꢂ. ꢃ) + ꢁ. (ꢂ + ꢃ)
ꢄ
ꢅ
ꢀ = ꢁ. ꢂ + ꢃ + ꢁ. (ꢂ + ꢃ)
Các thành phần giống nhau được tập trung lại, ở đây chỉ là NOT
C
ꢀ = ꢁ. ꢂ + ꢁ. ꢃ + ꢁ. ꢂ + ꢁ. ꢃ
ꢄ
ꢅ
ꢀ = ꢁ. ꢂ + ꢁ. ꢃ + ꢁ. ꢃ + ꢁ. ꢂ
Các thành phần dư thừa được loại trừ
ꢄ
ꢅ
ꢀ = ꢁ. ꢂ + ꢃ ꢁ + ꢁ + ꢁ. ꢂ
Một tiên đề Bun được áp dụng để đơn giản hóa thêm phương
trình
ꢀ = ꢁ. ꢂ + ꢃ + ꢁ. ꢂ
6.3 THIẾT KẾ LOGIC
Các ý tưởng thiết kế có thể được chuyển sang các phương trình Bun một cách
trực tiếp, hay với các kỹ thuật được thảo luận sau. Dạng phương trình Bun có thể sau
đó được đơn giản hay sắp xếp lại, và sau đó được chuyển đổi sang logic bậc thang,
hay một mạch nào đó.
Thêm: Dạng logic của một mạch dấu có thể được phân tích bằng cách dùng một
phương trình Bun như được chỉ ra ở dưới. Nhắc lại rằng START là NO và STOP là NC.
ON’=(START + ON).STOP
ON
0
STOP
0
START ON’
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
Nút stop được ấn, không kích hoạt
Nút stop được ấn, không kích hoạt
Không kích hoạt
Nút start được ấn, trở nên kích hoạt
Nút stop được ấn, không kích hoạt
Nút stop được ấn, không kích hoạt
Kích hoạt, nút start không bao giờ được ấn nữa
Trở nên kích hoạt và nút start được ấn
0
0
0
1
1
1
1
0
1
1
0
0
1
1
Nếu ta có thể mô tả một bộ điều khiển làm việc như thế nào bằng từ ngữ, ta
thường có thể chuyển đổi chúng một cách trực tiếp tới một phương trình Bun, như
hình 6.5. Trong ví dụ này một mô tả quá trình được đưa ra đầu tiên. Trong các ứng
dụng thực sự điều này có thể làm được bằng cách nói chuyện với người thiết kế
thành phần cơ học của hệ thống đó. Trong nhiều trường hợp hệ thống này không tồn
tại, làm điều đó là một công việc đầy thách thức. Bước tiếp theo là xác định bộ điều
khiển làm việc như thế nào. Trong trường hợp này nó ban đầu được viết ra trong
một câu, và sau đó được chuyển thành một biểu thức Bun. Biểu thức này có thể sau
đó được chuyển thành một hình thức mong muốn nào đó. Phương trình đầu tiên
bao gồm một EOR, EOR là không có sẵn trong logic bậc thang, vậy dòng tiếp theo
chuyển nó thành một biểu thức tương đương (2) bằng cách sử dụng các phép toán
AND, OR và NOT. Logic bậc thang này đã khai triển cho phương trình thứ hai. Trong
phép chuyển đổi này các số hạng là các loạt phép toán AND. Các số hạng là các phép
toán OR là trong các nhánh song song, và các phép toán là NOT sử dụng các công tắc
thường đóng. Phương trình cuối (3) được mở rộng một cách đầy đủ và logic bậc
thang cho nó được chỉ ra trong hình 6.6. Cái này minh họa chức năng điều khiển logic
giống nhau có thể đạt được với khác biệt, là tương tự, ở đây là logic bậc thang.
Mô tả quá trình:
Một lò nướng có hai ngăn có thể làm nóng một thỏi trong mỗi ngăn. Khi
chức năng nóng là bật nó cấp đủ nhiệt cho cả hai thỏi. Nhưng, nếu chỉ một thỏi
có mặt lò có thể sẽ quá nóng, vậy một quạt được dùng để làm mát lò khi nó quá
nhiệt độ cài đặt.
Mô tả điều khiển:
Nếu nhiệt độ là quá nóng và có một thỏi trong chỉ một ngăn thì bật quạt
lên.
Xác định các đầu vào và các đầu ra:
B1=ngăn 1 thỏi có mặt
B2=ngăn 2 thỏi có mặt
F= quạt
T=cảm biến nhiệt độ quá nóng
Phương trình Bun:
ꢈ = ꢉ. (ꢂꢊ ⊕ ꢂꢋ)
(2)
ꢈ = ꢉ. (ꢂꢊ. ꢂꢋ + ꢂꢊ. ꢂꢋ)
(3)
ꢈ = ꢂꢊ. ꢂꢋ. ꢉ + ꢂꢊ. ꢂꢋ. ꢉ
Logic bậc thang cho phương trình:
Ghi chú của người gõ: Kết quả của logic có điều kiện là một bước đơn trong bậc
thang
Cảnh báo: trong tiếng Anh nói và viết OR và EOR thường là không xác định một
cách rõ ràng. Cân nhắc chỉ dẫn giao thông ”Đi tới phố chính sau đó rẽ trái hay rẽ
phải”. Điều này có nghĩa rằng bạn có thể lái xe theo một trong hai hướng, hoặc người
đó không chắc chắn đường nào để đi? Xem xét phát biểu “Các xe hơi là đỏ hay
xanh”. Điều này có nghĩa rằng các xe hơi này có thể là một trong hai màu đỏ hay
xanh, hay mọi xe là màu đỏ, hay mọi xe là màu xanh? Một cách chữ nghĩa tốt là mô
tả tình huống này là “một hay cái khác, nhưng không cả hai”.
Figure 6.5 Boolean Algebra Based Design of Ladder Logic
Thiết kế dựa trên đại số Bun cho logic bậc thang
Logic bậc thang cho phương trình (3):
Figure 6.6 Alternate Ladder Logic – Một logic bậc thang khác
Đại số Bun thường được dùng trong thiết kế các mạch kỹ thuật số. Xem xét ví
dụ trong hình 6.7. Trong trường hợp này ta được giới thiệu một mạch được xây
dựng gồm có các biến tần, nand, nor and, và các mạch. Hình này có thể được chuyển
đổi sang một phương trình Bun bằng cách bắt đầu tại bên trái và làm việc sang bên
phải. Các mạch ở bên trái được thực hiện trước, vì vậy chúng được đặt bên trong các
ngoặc đơn để biểu thị độ ưu tiên. Các biến tần được biểu thị bằng cách đặt một toán
tử NOT vào một biến trong phương trình. Mạch này không thể chuyển đổi một cách
trực tiếp sang logic bậc thang vì không có sự tương đương với các mạch NAND và
mạch NOR. Sau khi mạch này được chuyển sang một phương trình Bun nó được đơn
giản hóa và được chuyển đổi ngược lại vào trong một sơ đồ mạch và logic bậc thang
(đơn giản hơn nhiều).
Mạch này được chuyển đổi tới một phương trình Bun và được đơn giản hóa.
Các số hạng lồng nhau nhiều nhất trong phương trình là ở bên trái của hình.
ꢀ = ꢌꢍꢁ. ꢂ. ꢃꢎ + ꢂꢏ . ꢂ. (ꢁ + ꢃ)
ꢀ = ꢄꢁ + ꢂ + ꢃ + ꢂꢅ. ꢂ. (ꢁ + ꢃ)
ꢀ = ꢁ. ꢂ. ꢁ. ꢃ + ꢂ. ꢂ. ꢁ. ꢃ + ꢃ. ꢂ. ꢁ. ꢃ + ꢂ. ꢂ. ꢁ. ꢃ
ꢀ = ꢂ. ꢁ. ꢃ + ꢂ. ꢁ. ꢃ + 0 + ꢂ. ꢁ. ꢃ
ꢀ = ꢂ. ꢁ. ꢃ
Phương trình đơn giản hóa này được chuyển ngược lại về một mạch và logic
bậc thang tương ứng.
Figure 6.7 Reverse Engineering of a Digital Circuit
Kỹ thuật đảo ngược mạch kỹ thuật số
Để tóm tắt, ta sẽ có được các phương trình Bun từ một mô tả chữ nghĩa hay
mạch đang tồn tại hay sơ đồ bậc thang. Phương trình này có thể tính toán được bằng
cách dùng các tiên đề của đại số Bun. Sau khi đơn giản hóa phương trình này có thể
được chuyển trở lại thành logic bậc thang hay một sơ đồ mạch. Logic bậc thang (và
các mạch) có thể vận hành như nhau cho dù chúng ở các dạng khác nhau. Khi đơn
giản hóa các phương trình Bun, mà các phương trình này được thực thi trong logic
bậc thang, có một vài luật cơ bản:
1. Loại trừ các phép NOT mà chúng dùng cho nhiều hơn một biến. Điều này
thông thường bao gồm các thay thế cho các hàm NAND và NOR với những
hàm đơn giản hơn bằng cách dùng định lý DeMorgan.
2. Loại trừ các hàm phức như các EOR với hàm tương đương của chúng.
Những nguyên tắc này được tăng cường với một thiết kế khác bắt đầu trong
hình 6.8. Giả sử rằng phương trình Bun đó mô tả bộ điều khiển này là được biết
trước. Phương trình này có thể được chuyển đổi sang cả hai một là sơ đồ mạch và
hai là logic bậc thang. Sơ đồ mạch này bao gồm khoảng hai đô la Mỹ giá trị cho các
mạch tích hợp. Nếu thiết kế này được sản xuất hàng loạt cái giá cuối cùng cho toàn
bộ bộ điều khiển sẽ có thể dưới 50$. Nguyên mẫu của bộ điều khiển này sẽ có giá
hàng nghìn đô la. Nếu được thực thi trong logic bậc thang giá của mỗi bộ điều khiển
sẽ xấp xỉ 500$. Vì vậy một số lượng lớn của mạch dựa trên các bộ điều khiển cần để
sản xuất ra trước khi sự kiện hỏng hóc xảy ra. Số lượng này thường trong khoảng
hàng trăm đơn vị. Có vài lợi thế đặc biệt cho một PLC trên mạch kỹ thuật số cho nhà
máy và một vài ứng dụng khác.
PLC này sẽ được vững chắc hơn
Chương trình có thể được thay đổi một cách dễ dàng
Kỹ năng cần đến để duy trì thiết bị là ít hơn
Cho phương trình điều khiển sau:
ꢁ = ꢂ. ꢍꢃ. ꢄꢆ + ꢇ + ꢃꢅꢎ + ꢈ. ꢃ
Mạch được cho bên dưới, và logic bậc thang tương ứng được chỉ ra
Các mạch có thể được mua cho khoảng
0,25$ cho mỗi mạch khi mua số lượng lớn.
Các đầu vào và các đầu ra thường là 5V
Một PLC không đắt có giá tối thiểu vài
trăm đô la
Cân nhắc giá cả hài hòa
Figure 6.8 A Boolean Equation and Derived Circuit and Ladder Logic
Một phương trình Bun và mạch tương ứng và logic bậc thang tương ứng
Phương trình ban đầu là chưa tối giản. Có thể đơn giản phương trình này sang
dạng trong hình 6.8.Nếu bạn là một người học trực quan bạn có lẽ muốn nhận thấy
rằng một vài sự đơn giản là hiển nhiên với logic bậc thang – xem xét nhãn C trên cả
hai nhánh của logic bậc thang trong hình 6.9.
ꢁ = ꢂ. ꢃ. ꢄꢆ + ꢇ + ꢈꢅ
Figure 6.9 The Simplified Form of the Example – Dạng đơn giản hóa của ví dụ
Phương trình này cũng có thể thực hiện tới các dạng khác mà chúng nhiều
thành phần hơn nhưng kém hiệu quả hơn như trong hình 6.10. Phương trình này
được chỉ ra trong dạng tách rời thông thường – nói cho đơn giản hơn đây là các số
hạng được AND và được OR cùng nhau. Đây cũng là một ví dụ của một dạng tiêu
chuẩn – đơn giản hơn điều này có nghĩa một dạng chuẩn. Dạng này là quan trọng
hơn cho logic kỹ thuật số, nhưng nó có thể làm một vài vấn đề lập trình PLC dễ dàng
hơn. Ví dụ, khi một phương trình được đơn giản hóa, nó có lẽ không trông giống ý
định thiết kế ban đầu, và vì vậy trở nên khó khăn hơn để làm lại mà không bắt đầu từ
đầu.
ꢁ = ꢄꢂ. ꢃ. ꢆꢅ + ꢄꢂ. ꢃ. ꢇꢅ + (ꢂ. ꢃ. ꢈ)
Figure 6.10 A Canonical Logic Form – Một dạng logic tiêu chuẩn
6.3.1 Các kỹ thuật đại số Bun
Có nhiều kỹ thuật đại số Bun thông dụng mà được dùng khi đơn giản hóa các
phương trình. Nhận dạng những dạng phương trình này là quan trọng để đơn giản
hóa đại số Bun dễ dàng. Chúng được chia thành các khoản mục, với các bằng chứng
trong hình 6.11.
chứng tỏ:
ꢁ + ꢃꢁ = ꢁ + ꢃ
ꢁ + ꢃꢁ
(
(
)
ꢁ + ꢃ (ꢁ + ꢁ)
)
ꢁ + ꢃ (1)
ꢁ + ꢃ
ꢁꢂ + ꢁ = ꢁ
chứng tỏ:
chứng tỏ:
ꢁꢂ + ꢁ
ꢁꢂ + ꢁ1
ꢁ(ꢂ + 1)
ꢁ(1)
ꢁ
ꢁ + ꢂ + ꢃ = ꢁ ꢂ ꢃ
ꢁ + ꢂ + ꢃ
(
)
ꢁ + ꢂ + ꢃ
(ꢁ + ꢂ) ꢃ
ꢄ
ꢅ
ꢁ ꢂ ꢃ
ꢁ ꢂ ꢃ
Figure 6.11 Common Boolean Algebra Techniques
Các kỹ thuật đại số Bun thông thường
6.4 CÁC DẠNG LOGIC THÔNG DỤNG
Hiểu biết về một tập hợp đơn giản của các dạng logic sẽ hỗ trợ một nhà thiết kế
khi phân loại các vấn đề điều khiển. Các dạng sau được đưa ra để sử dụng một cách
trực tiếp, hay đưa ra những ý tưởng khi thiết kế.
6.4.1 Các dạng mạch phức tạp
Tổng số có 16 loại khác nhau có thể có của các mạch logic hai đầu vào (2-input).
Dạng tối giản là AND và OR, các mạch khác ta sẽ nói tới khi phức tạp để phân biệt. Ba
mạch phức tạp thông thường mà đã được thảo luận trước là NAND, NOR và EOR. Tất
cả các dạng này có thể giảm xuống các dạng đơn giản hơn chỉ với các phép toán AND
and OR mà phù hợp với logic bậc thang như hình 6.12.
NAND
NOR
EOR
ꢀ = ꢁ ⊕ ꢂ
ꢀ = ꢁ. ꢂ
ꢀ = ꢁ + ꢂ
ꢀ = ꢁ + ꢂ
ꢀ = ꢁ. ꢂ
ꢀ = ꢁ. ꢂ + ꢁ. ꢂ
Figure 6.12 Conversion of Complex Logic Functions
Chuyển đổi các hàm logic phức tạp
6.4.2 Bộ chuyển mạch nhiều kênh
Các bộ chuyển mạch nhiều kênh cho phép nhiều thiết bị được kết nối tới một
thiết bị đơn lẻ. Chúng có rất nhiều trong các hệ điện thoại. Một chuyển mạch điện
thoại được dùng để xác định điện thoại nào sẽ được kết nối tới một số lượng đường
dây có giới hạn tới các chuyển mạch điện thoại khác. Điều này cho phép các cuộc
điện thoại được thiết lập tới một ai đó ở xa mà không dùng tới dây dành riêng tới
điện thoại khác. Trong các bảng chuyển mạch điện thoại trước đây, những người
trực tổng đài điện thoại kết nối một cách vật lý các dây bằng cách cắm chúng vào
nhau. Trong các chuyển mạch điện thoại được máy tính hóa hiện đại công việc được
thực hiện giống nhau, nhưng tới các tín hiệu giọng nói kỹ thuật số.
Trong hình 6.13 một bộ chuyển mạch nhiều kênh được chỉ ra rằng nó sẽ làm
cho một trong bốn bit các đầu vào D1, D2, D3 hay D4 thành đầu ra X, phụ thuộc vào
các giá trị của các bit địa chỉ, A1 và A2.
Figure 6.13 A Multiplexer – Một bộ chuyển mạch nhiều kênh
Logic bậc thang tạo thành bộ chuyển mạch nhiều kênh này có thể được thấy
trong hình 6.14.
Figure 6.14 A Multiplexer in Ladder Logic
Một bộ chuyển mạch nhiều kênh trong logic bậc thang
6.5 NHỮNG VÍ DỤ THIẾT KẾ ĐƠN GIẢN
Các ví dụ sau được đưa ra để minh họa các vấn đề logic tổ hợp khác nhau, và
các giải pháp có thể. Khuyến cáo rằng bạn cố làm thỏa mãn mô tả trước khi nhìn vào
giải pháp (đáp số, lời giải).
6.5.1 Các hàm logic cơ bản
Bài toán: Phát triển một chương trình mà sẽ làm cho đầu ra D đi tới true khi
chuyển mạch A và chuyển mạch B là đóng hay khi chuyển mạch C là đóng.
Lời giải: D=(A.B) + C
Figure 6.15 Sample Solution for Logic Case Study A
Lời giải mẫu cho nghiên cứu trường hợp logic A
Bài toán: Phát triển một chương trình mà sẽ làm cho đầu vào D là on (bật) khi
nút nhấn A là on, hoặc một trong B hay C là on.
Lời giải: D= A + (B ⨁ C)
Figure 6.16 Sample Solution for Logic Case Study B
Giải pháp mẫu cho nghiên cứu trường hợp logic B
6.5.2 Hệ thống an toàn xe hơi
Bài toán: Phát triển logic bậc thang cho một hệ an toàn cửa/dây đeo xe hơi. Khi
cửa xe là mở, và dây an toàn chưa được cột, dòng điện cho đánh lửa phải không
được cấp. Nếu mọi thứ là an toàn thì chìa khóa sẽ khởi động máy.
Lời giải:
Figure 6.17 Solution to Car Safety System Case
Giải pháp cho trường hợp hệ an toàn xe hơi
6.5.3 Motor Forward/Reverse Động cơ tiến/lùi
Bài toán: Thiết kế một bộ điều khiển động cơ mà có một nút tiến và một nút lùi.
Các đầu ra tiến và các đầu ra lùi động cơ này sẽ chỉ là on (bật) khi một trong các nút
là được ấn.
Khi cả hai nút này là được nhấn thì động cơ sẽ không làm việc.
Lời giải: ꢈ = ꢂꢈ. ꢂꢐ
ꢐ = ꢂꢈ. ꢂꢐ, trong đó: F=động cơ tiến
R=động cơ lùi
BF=nút tiến
BR=nút lùi
Figure 6.18 Motor Forward, Reverse Case Study
Nghiên cứu trường hợp động cơ tiến lùi
6.5.4 Một chuông báo trộm
Xem xét thiết kế của một chuông báo trộm cho một ngôi nhà. Khi được kích
hoạt một chuông và các đèn sẽ được kích hoạt để cảnh báo khách không mời bỏ đi.
Chuông này được kích hoạt nếu một kẻ xâm nhập trái phép được phát hiện bởi cảm
biến cửa sổ và một máy dò chuyển động. Cảm biến cửa sổ này là một vòng lặp của
dây có hiệu quả mà dây này là một lá kim loại mỏng bao quanh cửa sổ này. Nếu cửa
sổ bị phá, lá kim loại làm hỏng dây điện. Nó làm việc như một chuyển mạch thường
đóng. Cảm biến chuyển động này được thiết kế để khi một người được phát hiện thì
đầu ra sẽ (duy trì việc) chạy. Như với bất cứ chuông nào một chuyển mạch kích
hoạt/khử kích hoạt cũng là cần thiết. Hoạt động cơ bản của một hệ chuông báo, và
các đầu vào và các đầu ra của bộ điều khiển được mục lục hóa trong hình 6.19.
Các đầu vào và các đầu ra được lựa chọn như sau:
A = Các chuyển mạch đèn và chuyển mạch chuông (1=on (bật))
W = Cảm biến cửa sổ/cửa ra vào (1=OK)
M = Cảm biến chuyển động (0=OK)
S = Chuyển mạch kích hoạt chuông (1=on)
Hoạt động cơ bản của chuông này có thể được mô tả với các quy tắc:
1. Nếu chuông là bật, kiểm tra các cảm biến.
2. Nếu cảm biến cửa sổ/cửa ra vào bị hỏng (tắt đi), phát tiếng chuông và
bật các đèn.
Ghi chú: Như một kỹ sư, trách nhiệm của bạn là xác định những mục này trước
khi bắt đầu công việc. Nếu bạn không làm điều này đầu tiên bạn được đảm bảo rằng
sinh ra một thiết kế tồi. Rất quan trọng để phát triển một danh sách tốt về các đầu
vào và các đầu ra, và cho chúng các tên đơn giản để chúng là dễ dàng để tham khảo
đến chúng. Hầu hết các công ty sẽ sử dụng các giản đồ đánh số cho dây trong sơ đồ
của họ.
Figure 6.19 Controller Requirements List for Alarm
Danh sách các yêu cầu bộ điều khiển cho chuông
Bước tiếp theo để xác định phương trình điều khiển. Trong trường hợp này điều
khiển gồm 3 đầu vào khác nhau, và một đầu ra đơn lẻ, vì thế một bảng chân lý là một
cách tiếp cận có lý để chính thức hóa hệ thống. Một phương trình Bun có thể được
viết sau đó bằng cách dùng bảng chân lý trong hình 6.20. Trong tám kết hợp có thể
có của các đầu vào chuông, chỉ có ba là dẫn tới điều kiện báo động.
Figure 6.20 Truth Table for the Alarm – Bảng chân lý cho chuông báo
Phương trình Bun trong hình 6.21 được viết bằng cách kiểm tra bảng chân lý
trong hình 6.20. Có ba trường hợp có thể có chuông báo mà chúng có thể được đại
diện bởi các điều kiện của tất cả ba đầu vào. Ví dụ lấy dòng cuối cùng trong bảng
chân lý ở đó khi cả ba đầu vào là bật chuông phải là một. Điều này dẫn tới số hạng
cuối cùng trong phương trình. Hai số hạng khác được phát triển trong cùng một cách.
Sau khi phương trình được viết ra, nó được đơn giản hóa.
ꢁ = ꢄꢑ. ꢒ. ꢓꢅ + ꢄꢑ. ꢒ. ꢓꢅ + (ꢑ. ꢒ. ꢓ)
∴ꢁ = ꢑ. (ꢒ. ꢓ + ꢒ. ꢓ + ꢒ. ꢓ)
∴ꢁ = ꢑ. (ꢄꢒ. ꢓ + ꢒ. ꢓꢅ + (ꢒ. ꢓ + ꢒ. ꢓ))
(
)
∴ꢁ = ꢄꢑ. ꢓꢅ + ꢑ. ꢒ = ꢑ. (ꢓ + ꢒ)
Figure 6.21 A Boolean Equation and Impl ementation for the Alarm
Một phương trình Bun và sự làm việc cho chuông báo
Phương trình và mạch ở hình trên có thể cũng được đơn giản hóa thêm, như
hình 6.22
Figure 6.22 The Simplest Circuit and Ladder Diagram
Mạch tối giản hóa và sơ đồ bậc thang
Thêm: Chuông này có thể cũng được thực thi trong các ngôn ngữ lập trình.
w = 1; s = 2; m = 3; a = 4
input m; input w; input s
output a
loop:
if (in2 = 1) and (in1 = 0 or in3 = 1) then on
low a; goto loop ‘alarm off
on:
high a; goto loop ‘alarm on
Figure 6.23 Alarm Implementation Using A High Level Programming Language
Sự thực thi chuông báo sử dụng một ngôn ngữ lập trình bậc cao
6.6 TÓM TẮT
Các giá trị đúng sai có thể được đại diện bởi các phương trình Bun.
Các phương trình Bun có thể được chuyển tới (và từ) logic bậc thang hay các
mạch kỹ thuật số.
Các phương trình Bun có thể được đơn giản hóa.
Các bộ điều khiển khác nhau có thể làm việc theo cùng một cách.
Các dạng logic thông dụng tồn tại và có thể dùng để hiểu các giá trị đúng sai.
Các bảng chân lý có thể đại diện cho mọi trạng thái có thể của một hệ nào đó.
6.7 BÀI TẬP THỰC HÀNH
1. Mạch logic bậc thang trong hình sau là cho một mạch AND hay cho một mạch OR?
2. Vẽ một sơ đồ bậc thang mà sẽ làm cho đầu ra D đi tới true khi chuyển mạch A và
chuyển mạch B là đóng hoặc khi chuyển mạch C là đóng.
3. Vẽ một sơ đồ bậc thang mà làm cho đầu ra D là on (bật) khi nút nhấn A là on, hoặc
một trong B hoặc C là on.
4. Thiết kế logic bậc thang cho một xe hơi mà xe này xem xét các biến sau để điều
khiển động cơ M. Cũng thêm một đầu ra thứ hai mà đầu ra này sử dụng bất cứ đầu
ra nào không được sử dụng để điều khiển động cơ.
- Các cửa là được mở/được đóng (D)
- Các chìa trong ổ đánh lửa (D)
- Động cơ chạy (M)
- Động cơ ngừng (P) (nguyên văn: transmission in park (P))
- Đánh lửa khởi động (I)
5. a) Giải thích tại sao một nút stop phải là thường đóng và một nút start phải là
thường mở.
b) Xem xét một trường hợp ở đó một đầu vào một PLC là một nút stop thường đóng.
Công tắc được dùng trong logic bậc thang là thường mở, như ở hình dưới. Tại sao cả
hai điều này là không như nhau? (ví dụ. NC hay NO).
6. Tạo một chương trình logic bậc thang đơn giản mà sẽ bật các đầu ra với các mẫu
nhị phân khi các nút tương ứng được nhấn.
7. Chuyển các phương trình Bun sau thành logic bậc thang tối giản có thể được:
ꢀ = ꢁ. (ꢁ + ꢁ. ꢂ)
8. Đơn giản hóa các phương trình Bun sau:
a) ꢁ(ꢂ + ꢁꢂ) ; b) ꢁ(ꢂ + ꢁꢂ)
c) ꢁ(ꢂ + ꢁꢂ); d) ꢁ(ꢂ + ꢁꢂ)
9. Đơn giản hóa các phương trình Bun sau:
a) (ꢁ + ꢂ). (ꢁ + ꢂ)
b) ꢁꢂꢃꢆ + ꢁꢂꢃꢆ + ꢁꢂꢃꢆ + ꢁꢂꢃꢆ
10. Đơn giản hóa biểu thức Bun dưới đây:
ꢌꢄꢁ. ꢂꢅ + (ꢂ + ꢁ)ꢏ . ꢃ + (ꢂ. ꢃ + ꢂ + ꢃ)
11. Cho biểu thức Bun sau a) vẽ một mạch kỹ thuật số và b) một sơ đồ bậc thang
(không làm đơn giản hóa), c) đơn giản biểu thức này
ꢀ = ꢁ. ꢂ. ꢃ + (ꢃ + ꢂ)
12. Đơn giản phương trình Bun sau và viết logic bậc thang tương ứng:
ꢔ = (ꢁꢂꢃꢆ + ꢁꢂꢃ ꢆ + ꢁ ꢂꢃꢆ) + ꢆ
13. Cho phương trình Bun sau:
ꢀ = ꢁ + ꢂꢄꢁ + ꢃꢂ + ꢆꢁꢃꢅ + ꢁꢂꢃꢆ
a) Viết ra logic bậc thang cho phương trình chưa đơn giản hóa.
b) Đơn giản phương trình đó
c) Viết ra logic bậc thang cho phương trình được đơn giản hóa.
14. a) Viết một phương trình Bun cho bảng chân lý sau. (Mẹo: làm bằng cách viết một
biểu thức cho mỗi dòng với một đầu ra true, và sau đó thực hiện phép toán OR
chúng với nhau).
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Result
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
b) Viết các kết quả trong mục a) bằng một phương trình Bun
c) Đơn giản hóa phương trình ở mục b)
15. Đơn giản phương trình Bun sau, và tạo logic bậc thang tối giản.
ꢔ = ꢃ(ꢁ + (ꢁ + ꢌꢂ ꢃ(ꢁ + ꢂꢃ)ꢏ))
16. Đơn giản phương trình Bun sau với đại số Bun và viết logic bậc thang tương ứng:
ꢀ = ꢄꢁ + ꢂ. ꢁꢅ + (ꢃ + ꢆ + ꢇꢃ)
17. Chuyển logic bậc thang sau thành một phương trình Bun. Sau đó đơn giản hóa
nó, và chuyển nó ngược lại thành logic bậc thang đơn giản hơn:
18. a) Phát triển biểu thức Bun cho mạch bên dưới
b) Đơn giản hóa biểu thức Bun này.
c) Vẽ một mạch đơn giản hơn cho phương trình ở mục b)
19. Cho một hệ mà nó được mô tả với phương trình sau:
ꢀ = ꢁ + ꢄꢂ. ꢄꢁ + ꢃꢅ + ꢃꢅ + ꢁ. ꢂ. (ꢆ + ꢇ)
a) Đơn giản hóa phương trình này bằng cách dùng đại số Bun.
b) Thực thi phương trình đã cho ban đầu và sau đó đơn giản hóa nó với một mạch kỹ
thuật số
c) Thực thi phương trình đã cho ban đầu và sau đó đơn giản hóa (rút gọn) nó bằng
logic bậc thang.
20. Rút gọn phương trình sau cà thực thi các phương trình ban đầu và phương trình
được rút gọn với các mạch (cổng) và logic bậc thang.
ꢁ + ꢄꢂ + ꢃ + ꢆꢅ. ꢄꢂ + ꢃꢅ + ꢁ. ꢂ. (ꢃ + ꢆ)
6.8 LỜI GIẢI CHO BÀI TẬP THỰC HÀNH
1. AND
2.
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ thống sản xuất tự động hóa với PLCs - Phần 6: Thiết kế logic bun", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_he_thong_san_xuat_tu_dong_hoa_voi_plcs_phan_6_thi.pdf

