Giáo trình Hệ thống sản xuất tự động hóa với PLCs - Phần 13: Dữ liệu và các số

13. DỮ LIỆU VÀ CÁC SỐ  
Chủ đề:  
Các hệ cơ số cơ bản: nhị phân, bát phân, thập phân, thập lục phân  
Các phép tính nhị phân: phần bù 2s, cộng, trừ và các phép toán Bun  
Các giá trị mã hóa: BCD và ASCII  
Dò lỗi: chẵn lẻ, mã xám và kiểm tra tổng  
Mục tiêu:  
Làm quen với các hệ số nhị phân, bát phân và thập lục phân  
Có khả năng chuyển đổi giữa các hệ cơ số khác nhau  
Để hiểu các số âm phần bù 2s  
Có khả năng chuyển đổi các giá trị ASCII và BCD  
Hiểu được các kỹ thuật dò lỗi cơ bản  
13.1 GIỚI THIỆU  
Các số cơ số 10 (decimal) đã phát triển một cách tự nhiên bởi vì các nhà phát  
triển nguyên thủy (có lẽ) đã có mười ngón tay, hay 10 chữ số (digits). Nào xem xét  
các hệ logic mà các hệ này chỉ có các dây điện mà chúng chỉ có thể là bật hay tắt. Khi  
đếm với một dây các chữ số chỉ là 0 và 1, cho ta một hệ cơ số 2. Các hệ số cho các  
máy tính thường dựa trên các số cơ số 2, nhưng các cơ số 4, 8, 16 và 32 cũng được  
dùng một cách thường xuyên. Một danh sách của các hệ số được cho trong hình  
13.1. Một ví dụ về đếm trong các hệ số khác nhau này được chỉ ra trong hình 13.2.  
Cơ số  
Tên  
Đơn vị dữ liệu  
2
8
10  
16  
Nhị phân  
Bát phân  
Thập phân  
Bit  
Nibble – nửa byte  
Chữ số  
Thập lục phân Byte  
Figure 13.1 Numbering Systems – Các hệ số  
thập phân  
nhị phân  
bát phân  
Thập lục phân  
0
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
0
1
10  
11  
0
1
2
3
4
5
6
7
10  
11  
12  
13  
14  
15  
0
1
2
3
4
5
6
7
8
9
a
b
c
100  
101  
110  
111  
1000  
1001  
1010  
1011  
1100  
1101  
d
14  
15  
16  
17  
18  
19  
20  
1110  
1111  
16  
17  
20  
21  
22  
23  
24  
e
f
10000  
10001  
10010  
10011  
10100  
10  
11  
12  
13  
14  
Ghi chú: Như với mọi hệ số các chữ số có nghĩa lớn nhất là ở bên trái, các chữ số  
có nghĩa ít nhất là ở bên phải.  
Figure 13.2 Numbers in Decimal, Binary, Octal and Hexadecimal  
Các số trong các hệ thập phân, nhị phân, bát phân và thập lục phân  
Kết quả của việc thay đổi cơ số của một số không thay đổi giá trị thực sự của nó,  
chỉ thay đổi cách viết của nó. Các luật cơ bản của toán học vẫn áp dụng, nhưng nhiều  
người mới sẽ cảm thấy mất phương hướng. Chương này sẽ bao gồm các chủ đề cơ  
bản mà các chủ đề này được cần đến để sử dụng cho nhiều câu lệnh lập trình phức  
tạp hơn nói đến sau trong cuốn sách này. Những điều này sẽ bao gồm các hệ số cơ  
bản, chuyển đổi giữa các cơ số khác nhau, và một vài chủ đề hướng dữ liệu.  
13.2 CÁC GIÁ TRỊ SỐ  
13.2.1 Hệ nhị phân  
Các số nhị phân là hệ số cơ bản nhất trong mọi máy tính. Một số nhị phân đơn  
lẻ (một bit) tương ứng với trạng thái của một mạch điện đơn lẻ. Nếu điện thế trên  
mạch này là đúng giá trị của bit này là 1. Nếu điện thế là tắt giá trị bit này là 0. Nếu  
hai hay nhiều mạch được dùng thì mỗi mạch mới thêm một chữ số cụ thể khác. Mỗi  
số nhị phân sẽ có một giá trị số tương ứng. Hình 13.3 chỉ ra chuyển đổi một số nhị  
phân sang số thập phân tương ứng như thế nào. Xem xét các chữ số, bắt đầu ở bên  
phải. Chữ số có nghĩa bé nhất là 1, và nó ở vị trí thứ 0. Để chuyển nó sang hệ thập  
phân tương ứng cơ số (2) được tăng lên tới vị trí của chữ số này, và được nhân với  
chữ số ấy. Trong trường hợp này chữ số có nghĩa thấp nhất là một chuyển đổi tầm  
thường. Xem xét chữ số có nghĩa lớn nhất, với một giá trị của 1 trong vị trí thứ sáu.  
Nó được chuyển đổi bởi cơ số tới mũ 6 và nhân với giá trị chữ số là 1. Phương pháp  
này cũng có thể được dùng cho chuyển đổi hệ số khác sang hệ thập phân.  
Figure 13.3 Conversion of a Binary Number to a Decimal Number  
Chuyển đổi một số nhị phân sang số thập phân  
Các số thập phân có thể được chuyển sang các số nhị phân bằng cách sử dụng  
phép chia, như trong hình 13.4. Kỹ thuật này bắt đầu bằng việc chia số thập phân cho  
cơ số của số mới. Số sau dấu chấm cho ta chữ số có nghĩa nhỏ nhất của số mới khi nó  
được nhân với cơ số này. Toàn bộ các phần của số này giờ lại được chia tiếp. Quá  
trình này lặp lại cho đến khi toàn bộ số là không (0). Phương pháp này sẽ cũng làm  
việc cho việc chuyển đổi tới các cơ số khác.  
* Cách này cũng làm việc với các cơ số khác, số chia và các số nhân phải được  
thay đổi tới các cơ số mới.  
Figure 13.4 Conversion from Decimal to Binary  
Chuyển đổi từ thập phân tới nhị phân  
Hầu hết các máy tính kỹ thuật cao sẽ chuyển đổi giữa các cơ số. Nhưng, là quan  
trọng để hiểu việc chuyển đổi giữa các cơ số. Và, khi đã dùng một cách đủ thường  
xuyên các chuyển đổi có thể được làm xong trong đầu bạn.  
Các số nhị phân đến từ ba dạng cơ bản – một bit, một byte và một từ (word).  
Một bit là một số nhị phân cơ bản, một byte là tám chữ số nhị phân, và một từ là 16  
chữ số. Các từ và các byte được chỉ ra trong hình 13.5. Nhớ rằng trong cả hai số chữ  
số có nghĩa thấp nhất là bên phải của các số này. Còn, trong một từ có hai byte, và  
byte bên phải là byte có nghĩa thấp nhất.  
Figure 13.5 Bytes and Words – Các byte và các từ  
Các số nhị phân cũng có thể đại diện cho các phân số, như trong hình 13.6. Việc  
chuyển đổi tới và từ nhị phân là giống hệt với các kỹ thuật trước, trừ ra các giá trị  
phía bên phải của dấu chấm những cái tương đương là các phân số.  
nhị phân: 101.011  
1(22) = 4 0(21) = 0; 1(20) =1; 0(2-1) = 0; 1(2-2) = ¼; 1(23) = 1/8  
=4+0+1+0+1/4+1/8=5,375 thập phân  
Figure 13.6 A Binary Decimal Number – Một phân số thập phân trong dạng nhị phân  
13.2.1.1 – Các phép toán Bun  
Trong chương tiếp theo bạn sẽ học rằng tất cả các khối đầu vào và các khối đầu  
ra có thể được dùng như một số nhị phân đơn lẻ (điển hình là một từ). Mỗi bit cho số  
này sẽ tương ứng với một đầu ra hay một đầu vào như trong hình 13.7.  
Có ba động cơ M1, M2, và M3 được đại diện bởi ba bit trong một số nhị phân.  
Khi bất cứ bit nào là bật động cơ tương ứng là bật.  
100 = Động cơ 1 là cái duy nhất bật  
111 = Tất cả ba động cơ là bật  
nói chung có 2n hay 23 tổ hợp có thể có mà các động cơ là bật  
Figure 13.7 Motor Outputs Represented with a Binary Number  
Các đầu ra động cơ được đại diện bởi một số nhị phân  
Ta có thể sau đó tính toán các đầu vào hay các đầu ra bằng cách dùng các phép  
toán Bun. Đại số Bun đã được thảo luận từ trước cho các biến với các giá trị đơn,  
nhưng nó như nhau khi tính toán nhiều bit. Các phép toán thông dụng mà các phép  
toán này dùng nhiều bit trong các số được chỉ trong hình 13.8. Các phép toán này so  
sánh chỉ một bit tại một thời điểm trong số đó, trừ ra các chỉ dẫn dịch chuyển  
(instruction – câu lệnh) mà các chỉ dẫn này chuyển mọi bit sang bên trái hoặc sang  
bên phải một vị trí.  
Tên  
AND  
OR  
Ví dụ  
Kết quả  
0010  
1010  
0010 * 1010  
0010 + 1010  
NOT  
EOR  
1101  
0010  
0010 eor 1010  
1000  
NAND  
shift left  
shift right 111000  
etc.  
0010 ∗ 1010  
111000  
1101  
110001  
011100  
các kết quả khác là có thể  
các kết quả khác là có thể  
Figure 13.8 Boolean Operations on Binary Numbers  
Các phép toán Bun trong hệ nhị phân  
13.2.1.2 - Toán học nhị phân  
Các số âm là một vấn đề riêng với các số nhị phân. Kết quả là có ba hệ số thông  
thường được sử dụng như trong hình 13.9. Các số nhị phân không dấu là thông  
thường, nhưng chúng chỉ có thể được dùng cho các giá trị dương. Cả hai các số có  
dấu và các số phần bù 2s đều cho phép các giá trị dương và các giá trị âm, nhưng các  
giá trị dương tối đa được giảm xuống một nửa. Các số phần bù 2s là rất phổ biến bởi  
vì phần cứng và phần mềm để cộng và trừ là đơn giản hơn và nhanh hơn. Tất cả ba  
loại số này sẽ được thấy trong các PLC.  
Loại số  
Mô tả  
Khoảng cho byte  
0 tới 255  
unsigned  
Các số nhị phân chỉ có thể có các giá trị  
dương  
signed  
Bit cao nhất có nghĩa (MSB) của số nhị  
phân này được dùng để chỉ ra dương/âm  
Các số âm được biểu diễn bởi số nhị  
phân đó và sau đó thêm lên 1 đơn vị  
Figure 13.9 Binary (Integer) Number Types  
-127 tới 127  
phần bù 2s  
-128 tới 127  
Các loại số nhị phân (số nguyên)  
Các ví dụ về các số nhị phân có dấu được chỉ trong hình 13.10. Các số này sử  
dụng bit có nghĩa lớn nhất để chỉ thị khi một số là âm.  
thập phân  
byte nhị phân  
00000010  
2
1
00000001  
0
00000000  
10000000  
10000001  
10000010  
Ghi chú: có hai số không  
-0  
-1  
-2  
Figure 13.10 Signed Binary Numbers – Các số nhị phân có dấu  
Một ví dụ của các số phần bù 2s được chỉ ra trong hình 13.11. Cơ bản là, nếu số  
đó là dương, nó sẽ là một số nhị phân bình thường. Nếu số này là âm, ta bắt đầu từ  
số dương, làm bù nó (lộn ngược tất cả các bit), sau đó thêm 1. Về cơ bản khi các số  
này là âm, thì bit có nghĩa lớn nhất được thiết đặt. Để chuyển từ một số âm phần bù  
2s, trừ đi 1, sau đó đảo ngược số này.  
thập phân byte nhị phân  
PHƯƠNG PHÁP TẠO RA MỘT SỐ ÂM  
1. Viết số nhị phân cho số dương này  
Cho -30 ta viết 30 = 00011110  
2. Đảo ngược (compliment) số này  
00011110 trở thành 11100001  
3. Thêm 1  
2
1
00000010  
00000001  
00000000  
11111111  
11111110  
0
-1  
-2  
11100001 + 00000001 = 11100010  
Figure 13.11 2s Compliment Numbers – Các số phần bù 2s  
Sử dụng phần bù 2s cho các số âm loại trừ các số không thừa thãi của các số nhị  
phân có dấu, và làm cho phần cứng và phần mềm dễ dàng thực thi hơn. Kết quả là  
hầu hết các phép tính số nguyên trong một PLC sẽ làm cộng hay trừ bằng cách sử  
dụng các số phần bù 2s. Khi cộng các số phần bù 2s, ta không cần dùng chú ý đặc biệt  
nào cho các giá trị âm. Và, nếu ta muốn trừ một số cho một số khác, ta thêm phần bù  
2s (twos) cho giá trị được trừ, và sau đó đưa vào nó cho giá trị khác kia.  
Hình 13.12 chỉ ra phép cộng các số bằng cách sử dụng các số phần bù 2s. Ba  
phép toán này kết quả là các giá trị không, dương và âm. Nhớ rằng trong cả ba phép  
toán số đỉnh là dương, trong khi số đáy là âm (đây là dễ để thấy bởi vì MSB của các  
số đó được thiết đặt). Cả ba phép cộng là dùng các byte, đây là quan trọng cho xem  
xét các kết quả của các tính toán này. Trong các tính toán bên tay trái và các tính  
toán bên tay phải kết quả của các phép cộng trong một bit thứ 9 – khi làm việc với số  
8 bit ta gọi bit này là mang (carry) C. Nếu tính toán này đã bắt đầu với một giá trị  
dương và một giá trị âm, và đã kết thúc với một bit mang, không có vấn đề gì cả, và  
bit mang phải được bỏ qua. Nếu làm việc tính toán này trên một máy tính bạn sẽ  
thấy bit mang, nhưng khi dùng một PLC bạn phải nhìn quanh để tìm ra nó.  
Ghi chú: Bình thường bit mang (carry bit) này được bỏ qua trong suốt quá trình  
hoạt động, nhưng một vài logic bổ sung là cần thiết để chắc chắn rằng số này không  
bị tràn và không bị chuyển ra ngoài phạm vi của các số này. Ở đây byte phần bù 2s có  
thể có các giá trị từ -128 tới 127.  
Figure 13.12 Adding 2s Compliment Numbers  
Cộng các số phần bù 2s  
Các số nguyên có các khoảng giá trị bị giới hạn, ví dụ một từ 16 bit có khoảng từ  
32 768 tới 32 767. Trong vài trường hợp các tính toán sẽ cho các kết quả bên ngoài  
khoảng này, và bit tràn ô nhớ O sẽ được thiết đặt. (Ghi chú: một điều kiện tràn ô nhớ  
là một lỗi lớn, và PLC sẽ có lẽ dừng lại khi điều này xảy đến). Đối với một phép tính  
cộng bit tràn ô nhớ sẽ được thiết đặt khi dấu của cả hai số là giống nhau, nhưng dấu  
của kết quả là ngược lại. Khi các dấu của các số này là ngược lại một tràn bộ nhớ  
không thể xuất hiện. Điều này có thể được thấy trong hình 13.13 ở đó các số hai  
trong ba tính toán là bên ngoài khoảng cho phép. Khi điều này xảy ra kết quả đi từ  
dương tới âm, hay một cách khác.  
Ghi chú: Nếu một bit tràn bộ nhớ được thiết đặt nó chỉ thị rằng một tính toán là  
bên ngoài và khoảng chấp nhận được. Khi lỗi này xuất hiện PLC này sẽ dừng hoạt  
động. Đừng bỏ qua các giới hạn của các số.  
Figure 13.13 Carry and Overflow Bits – Các bit mang và bit tràn bộ nhớ  
Các bit này cũng áp dụng cho các phép toán nhân và chia. Thêm nữa PLC này sẽ  
cũng có các bit để chỉ thị khi kết quả của một phép toán là 0 Z và số âm N.  
13.2.2 Các hệ số cơ bản khác  
Các cơ số khác được chuyển đổi một cách bình thường tới và từ nhị phân cho  
lưu trữ và các phép tính toán học. Các số hệ thập lục là phổ biến cho hiển thị các giá  
trị nhị phân bởi chúng hoàn toàn nhỏ gọn cho các số nhị phân. (Ghi chú: các số nhị  
phân lớn với một dãy dài của các số 1 và 0 là kế tiếp nhau là không thể đọc được).  
Các số bát phân cũng là phổ biến cho các đầu vào và các đầu ra bởi vì chúng làm việc  
trong bội 8; các đầu vào và các đầu ra là trong bội tám.  
Một ví dụ của chuyển đổi tới, và từ, hệ thập lục được chỉ ra trong hình 13.14 và  
13.15. Nhớ rằng cả hai trong các chuyển đổi này là giống với các phương pháp được  
sử dụng cho các số nhị phân, và các kỹ thuật giống nhau này cũng mở rộng cho các số  
bát phân.  
Figure 13.14 Conversion of a Hexadecimal Number to a Decimal Number  
Chuyển một số thập lục sang một số thập phân  
Figure 13.15 Conversion from Decimal to Hexadecimal  
Chuyển từ hệ thập phân sang thập lục  
13.2.3 Hệ thập phân dưới dạng nhị phân (BCD)  
Các số BCD dùng bốn bit nhị phân (một nửa byte – a nibble) cho mỗi chữ số.  
(Ghi chú: đây không phải là một hệ số cơ bản, nhưng nó chỉ đại diện cho các chữ số  
thập phân). Điều này có nghĩa rằng một byte có thể giữ hai chữ số từ 00 đến 99,  
ngược lại trong nhị phân nó có thể giữ từ 0 đến 255. Một bit đơn lẻ phải được gán  
cho các số âm. Phương pháp này là rất phổ biến khi các số là đầu ra hay đầu vào cho  
máy tính. Một ví dụ của một số BCD được chỉ ra trong hình 13.16. Trong ví dụ này có  
bốn chữ số, vì thế 16 bit là được yêu cầu. Nhớ rằng chữ số có nghĩa lớn nhất và các  
bit cả hai đều là bên tay trái. Số BCD này là dạng nhị phân tương ứng cho mỗi chữ số.  
Ghi chú: ví dụ này chỉ ra bốn chữ số trong hai  
byte. Các giá trị thập lục sẽ cũng là 1263.  
Figure 13.16 A BCD Encoded Number – Một số mã hóa thành BCD  
Hầu hết các PLC lưu giữ các số BCD trong các từ (word), cho phép các giá trị giữa  
0000 và 9999. Chúng cũng cung cấp các hàm để chuyển đổi qua lại BCD. Cũng có thể  
được để tính toán với các số BCD, nhưng điều này không thường xuyên, và khi cần  
thiết hầu hết các PLC có các hàm để làm các tính toán này. Nhưng, khi làm các tính  
toán này bạn hầu như phải tránh BCD và sử dụng toán học số nguyên thay vì (BCD).  
Cố gắng chắc rằng khi các số của bạn là các giá trị BCD và chuyển chúng sang số  
nguyên hay giá trị nhị phân trước khi làm bất cứ tính toán nào.  
13.3 ĐẶC TẢ DỮ LIỆU  
13.3.1 BẢNG MÃ ASCII (American Standard Code for Information Interchange)  
Khi làm việc với các giá trị không phải là số hay dữ liệu ta có thể dùng các ký tự  
chữ trơn và các xâu. Mỗi ký tự được gán cho một định danh duy nhất và ta có thể  
dùng những cái này để lưu giữ và diễn giải dữ liệu. Bảng ASCII là hệ mã hóa ký tự rất  
phổ biến được chỉ ra trong hình 13.17 và hình 13.18. Bảng này bao gồm các ký tự chữ  
viết cơ bản, cũng như một vài ký tự đặc biệt, và một vài mã điều khiển. Mỗi cái được  
cho một số duy nhất. Xem xét chữ A, nó được nhận ra một cách dễ dàng bởi hầu hết  
các máy tính trên thế giới khi chúng thấy số 65.  
Figure 13.17 ASCII Character Table – Bảng ký tự ASCII  
Figure 13.18 ASCII Character Table – Bảng ký tự ASCII  
Bảng này có các mã từ 0 đến 127, nhưng có nhiều bảng mở rộng hơn mà các  
bảng này bao gồm các ký hiệu đồ họa đặc biệt, các ký tự quốc tế, v.v... Là tốt nhất để  
dùng các mã cơ bản này, khi chúng được hỗ trợ một cách rộng rãi, và phải đủ đáp  
ứng cho mọi công việc của điều khiển.  
Một ví dụ của một xâu các ký tự được mã hóa trong ASCII được chỉ ra trong hình  
13.19.  
Figure 13.19 A String of Characters Encoded in ASCII  
Một xâu ký tự mã hóa trong ASCII  
Khi các ký tự này được tổ chức trong một xâu để được truyền và mã LF và/hoặc  
CR thường đặt tại cuối để chỉ ra chỗ kết thúc của một dòng. Khi lưu trữ trong một  
máy tính một giá trị ASCII của số không được dùng để đánh dấu kết thúc xâu.  
13.3.2 Chẵn lẻ  
Các lỗi thường xảy ra khi dữ liệu được truyền hay được lưu trữ. Điều này rất  
quan trọng khi truyền dữ liệu trong các nhà máy ồn ào, qua các dây điện thoại, v.v...  
Các bit chẵn lẻ có thể được thêm vào dữ liệu như là một kiểm tra đơn giản của dữ  
liệu được truyền để phát hiện lỗi. Nếu dữ liệu này bao gồm lỗi nó có thể được truyền  
lại, hay bị bỏ qua.  
Một bit chẵn lẻ là một bit thứ 9 bình thường được thêm vào một byte 8 bit. Khi  
dữ liệu được mã hóa số lượng của các bit với giá trị đúng được đếm. Bit chẵn lẻ này  
sau đó được thiết đặt để chỉ thị rằng nếu có một số lẻ hay chẵn các bit với giá trị  
đúng. Khi byte này được giải mã bit chẵn lẻ được kiểm tra để chắc rằng có một số  
chẵn hay lẻ của các bit dữ liệu với giá trị đúng. Nếu bit chẵn lẻ này không được thỏa  
mãn, thì byte này được quyết định là có lỗi. Có hai loại của chẵn lẻ, chẵn hay lẻ. Cả  
hai đều dựa trên một số lẻ hay chẵn của các bit dữ liệu có giá trị đúng. Bit chẵn lẻ lẻ  
là đúng nếu có một số lẻ của các bit trên trong một số nhị phân nào đó. Nói cách  
khác bit chẵn lẻ chẵn được thiết đặt khi có một số chẵn của các bit có giá trị đúng.  
Điều này được minh họa trong hình 13.20.  
Các bit dữ liệu  
10101110  
Bit chẵn lẻ  
Chẵn lẻ lẻ  
1
0
10111000  
Chẵn lẻ chẵn  
00101010  
10111101  
0
1
Figure 13.20 Parity Bits on a Byte – Bit chẵn lẻ trong một byte  
Các bit chẵn lẻ là phù hợp với các byte đơn lẻ một cách bình thường, nhưng  
không tin cậy cho dữ liệu với một số lượng nào đó của các bit.  
Ghi chú: Các hệ điều khiển thực hiện các công việc quan trọng mà các công việc  
này có thể là nguy hiểm trong các hoàn cảnh nào đó. Nếu một lỗi xuất hiện có thể có  
những hậu quả nghiêm trọng. Kết quả là các phương pháp phát hiện lỗi là rất quan  
trọng cho hệ điều khiển. Khi lỗi xảy ra hệ này phải hoặc là đủ mạnh để vãn hồi từ lỗi  
này hoặc hệ này phải chuyển sang chế độ an toàn. Nếu bạn bỏ qua các ý tưởng thiết  
kế này cuối cùng bạn sẽ gây ra một tai nạn.  
13.3.3 Kiểm tra tổng  
Các bit chẵn lẻ là phù hợp với một số bit nhỏ của dữ liệu, nhưng các kiểm tra  
tổng là tốt hơn cho các truyền dữ liệu lớn hơn. Đây đơn giản chỉ là một tổng đại số  
của tất cả dữ liệu được truyền. Trước khi dữ liệu được truyền các giá trị số của tất cả  
các byte được cộng vào. Tổng này sau đó được truyền cùng với dữ liệu ấy. Khi tiếp  
nhận xong các giá trị dữ liệu này được cộng lại một lần nữa, và tổng này được so  
sánh với kiểm tra tổng. Nếu chúng là phù hợp dữ liệu được chấp nhận là tốt. Một ví  
dụ của phương pháp này được chỉ trong hình 13.21.  
DATA  
124  
43  
255  
9
27  
47  
CHECKSUM  
505  
Figure 13.21 A Checksum – Một kiểm tra tổng  
Các kiểm tra tổng rất thông dụng trong truyền dữ liệu, nhưng cũng có một số  
thứ bị che khuất đối với người dùng trung bình. Nếu bạn có dự định truyền dữ liệu  
tới hay từ một PLC bạn sẽ cần xem xét các giá trị chẵn lẻ và kiểm tra tổng để xác  
minh dữ liệu này. Các lỗi nhỏ trong dữ liệu có thể có các hậu quả lớn trong nhận dữ  
liệu. Xem xét một nhiệt độ lò được truyền như một số nguyên nhị phân (1023d =  
0000 0100 0000 0000b). Nếu một bit đơn đã được thay đổi, và không được phát hiện  
thì nhiệt độ có thể trở thành (0000 0110 0000 0000b = 1535d). Việc thay đổi nhỏ này  
sẽ thay đổi quá trình (làm việc) đó một cách đáng kể.  
13.3.4 Mã xám  
Các bit chẵn lẻ và các kiểm tra tổng cho kiểm tra dữ liệu mà các dữ liệu này có  
thể có bất cứ giá trị nào. Mã xám được sử dụng cho kiểm tra dữ liệu mà dữ liệu này  
phải theo sau một thứ tự nhị phân nào đó. Đây là cái thông dụng cho các thiết bị như  
là các bộ mã hóa góc. Ý tưởng là khi số nhị phân được đếm lên hay đếm xuống, chỉ có  
một bit thay đổi trong một thời điểm. Vì vậy làm cho dễ hơn để phát hiện các thay  
đổi bit bị lỗi. Một ví dụ của một trình tự mã xám được chỉ trong hình 13.22. Nhớ rằng  
chỉ một bit thay đổi từ một số tới số tiếp theo. Nếu hơn một bit đơn lẻ thay đổi giữa  
các số, thì một lỗi có thể được phát hiện.  
THÊM: Khi mức tín hiệu trong một dây điện nào đó tăng lên hay giảm đi, nó bao  
gồm cả một xung từ mà xung này kích thích một tín hiệu trong một vài đường dây  
gần đó khác. Hiện tượng này được gọi là xen nhiễu (cross-talk). Tín hiệu này thường  
là quá nhỏ để gây chú ý, nhưng một vài thay đổi đồng thời, được phối hợp với tạp  
âm có thể gây ra những giá trị sai.  
thập phân  
mã xám  
0000  
0
1
2
3
4
0001  
0011  
0010  
0110  
5
6
7
8
9
10  
11  
12  
13  
14  
15  
0111  
0101  
0100  
1100  
1101  
1111  
1110  
1010  
1011  
1001  
1000  
Figure 13.22 Gray Code for a Nibble – Mã xám cho một nửa byte  
13.4 TÓM TẮT  
Các số nhị phân, bát phân, thập phân và thập lục phân đã được thảo luận  
Các phần bù 2s cho phép biểu diễn các số nhị phân âm  
Các số BCD mã hóa các chữ số trong các nửa byte (nibbles)  
Các giá trị ASCII là các tương ứng số cho các ký tự chữ và số thông thường  
Mã xám, các bit chẵn lẻ và các kiểm tra tổng có thể được dùng cho dò lỗi  
13.5 BÀI TẬP THỰC HÀNH  
1. Tại sao các số nhị phân, bát phân và thập lục phân được dùng cho các ứng dụng  
máy tính?  
2. Một từ là 3 nửa byte có đúng không?  
3. Mục đích cụ thể của mã xám và chẵn lẻ là gì?  
4. Chuyển các số sau sang các số nhị phân và từ các số nhị phân sang các số đó:  
a) từ cơ số 10: 54,321 b) từ cơ số 2: 110000101101  
5. Chuyển số BCD sau thành một số thập phân:  
0110 0010 0111 1001  
6. Chuyển số nhị phân sau sang một số BCD:  
0100 1011  
7. Chuyển số nhị phân sau sang giá trị thập lục:  
0100 1011  
8. Chuyển số nhị phân sau sang một số bát phân:  
0100 1011  
9. Chuyển giá trị thập phân sau sang một byte nhị phân, và sau đó xác định bit chẵn  
lẻ lẻ:  
97  
10. Chuyển các số sau từ nhị phân sang thập phân, thập lục, BCD và bát phân:  
a) 101101 b) 11011011  
11. Chuyển các số sau từ thập phân sang nhị phân, thập lục, BCD và bát phân:  
a)1 b)17 c)20456 d) -10  
12. Chuyển các số sau từ thập lục sang nhị phân, thập phân, BCD và bát phân:  
a) 1 b) 17 c) ABC d) –A  
13. Chuyển các số sau từ BCD sang nhị phân, thập phân, thập lục và bát phân:  
a) 1001 b) 1001 0011 c) 0011 0110 0001 d)0000 0101 0111 0100  
14. Chuyển các số sau từ bát phân sang nhị phân, thập phân, thập lục và BCD:  
a) 7 b) 17 c) 777 d) 32634  
c)10000000001  
d)0010110110101  
15. a) Biểu diễn giá trị thập phân một cách tráo đổi nhau (thumb wheel input), 3532,  
như một giá trị BCD và một giá trị thập lục (không dùng máy tính nào):  
i) BCD  
ii) Thập lục phân  
b) Giá trị tương ứng trong thập phân của giá trị BCD sau là gì?  
1001111010011011  
16. Cộng/trừ/nhân/chia các số sau:  
a) nhị phân 101101101 + 01010101111011  
c) bát phân 123 + 777  
b) thập lục 101 + ABC  
d) nhị phân 110110111 - 0101111  
f) bát phân 777 - 123  
e) thập lục ABC – 123  
g) nhị phân 0101111 – 110110111  
i) bát phân 123 – 777  
h) thập lục 123-ABC  
j) các bytes phần bù 2s 10111011 + 00000011  
k) các bytes phần bù 2s 00111011 + 00000011  
l) nhị phân 101101101 * 10101  
m) bát phân 123 * 777  
n) bát phân 777 / 123  
p) thập lục ABC / 123  
o) nhị phân 101101101 / 10101  
17. Làm các phép toán sau với các byte 8 bit, và chỉ ra điều kiện của tràn ô nhớ và các  
bit mang (carry bits)  
a) 10111011 + 00000011  
c) 11011011 + 11011111  
e) 01101011 + 01111011  
b) 00111011 + 00000011  
d) 110110111 - 01011111  
f) 10110110 – 11101110  
18 . Xem xét ba số BCD được liệt kê dưới đây:  
1001 0110 0101 0001  
0010 0100 0011 1000  
0100 0011 0101 0001  
a) Chuyển các số này sang các giá trị thập phân của chúng  
b) Chuyển các giá trị thập phân này sang nhị phân  
c) Tính toán một kiểm tra tổng cho tất cả ba số nhị phân này  
d) Bit chẵn của các từ nhị phân trong b) là gì?  
19. Bit thứ hai được thiết đặt trong giá trị thập lục F49 là gì?  
20. Giải thích nơi mã xám xuất hiện khi tạo các bản đồ Karnaugh.  
21. Chuyển số thập phân 1000 sang số nhị phân, và sau đó là thập lục.  
13.6 GIẢI PHÁP CHO BÀI TẬP THỰC HÀNH  
1. Các số của cơ số 2, 4, 8 và 16 hiển thị một cách tự nhiên hơn với các số được lưu  
trong máy tính  
2. không, nó là bốn nửa byte  
3. Cả hai là các sơ đồ mã hóa được thiết kế để tăng khả năng miễn dịch với tiếng ồn.  
Một bit chẵn lẻ có thể được dùng để kiểm tra cho một bit được thay đổi trong một  
byte. Mã xám có thể được dùng để kiểm tra cho một lỗi giá trị trong một dòng của  
các giá trị liên tục.  
4. a) 1101 0100 0011 0001, b) 3117  
5. 6279  
6. 0111 0101  
7. 4B  
8. 113  
9. 1100001 bit chẵn lẻ lẻ là 1  
10.  
Nhị phân  
BCD  
101101  
11011011  
10000000001  
0010110110101  
0100 0101 0010 0001 1001 0001 0000 0010 0101 0001 0100 0110 0001  
thập phân 45  
219  
DB  
333  
1025  
401  
2001  
1461  
5B5  
2665  
thập lục  
bát phân  
11.  
2D  
55  
thập phân  
BCD  
1
0001  
17  
0001 0111 0010 0000 0100 0101 0110 -0001 0000  
20456  
-10  
1
1
1
nhị phân  
thập lục  
bát phân  
12.  
10001  
11  
21  
0100 1111 1110 1000  
4FE8  
47750  
1111 1111 1111 0110  
FFF6  
177766  
thập lục  
BCD  
nhị phân  
thập phân  
bát phân  
13.  
1
0001  
17 ABC  
0010 0011 0010 0111 0100 1000  
-A  
-0001 0000  
1111 1111 1111 0110  
-10  
1
1
1
10111  
23  
27  
0000 1010 1011 1100  
2748  
5274  
177766  
BCD  
1001 1001 0011 0011 0110 0001  
0000 0101 0111 0100  
1001  
9
nhị phân  
thập phân  
thập lục  
bát phân  
14.  
101 1101 1 0110 1001  
10 0011 1110  
0574  
23E  
93  
361  
169  
551  
9
5D  
135  
11  
1076  
7
bát phân  
nhị phân  
thập phân  
thập lục  
BCD  
17  
777  
32634  
111  
7
1111  
15  
F
1 1111 1111  
511  
1FF  
0011 0101 1001 1100  
13724  
359C  
7
0111  
0001 0101 0101 0001 0001  
0001 0011 0111 0010 0100  
15.  
Nguyên bản: “a) 3532 = 0011 0101 0011 0010 = DCC, b0 the number is not a valid  
BCD”  
Tạm dịch: a) 3532 = 0011 0101 0011 0010 = DCC, b) số này không là một số BCD hợp  
lệ  
16.  
a) 0001 0110 1110 1000  
c) 1122  
b) BBD  
d) 0000 0001 1000 1000  
f) 654  
e) 999  
g) 1111 1110 0111 1000  
i) -654  
h) -999  
j) 0000 0001 0111 1010  
l) 0001 1101 1111 0001  
n) 6  
k) 0000 0000 0011 1110  
m) 122655  
o) 0000 0000 0001 0001  
17.  
p) 9  
a) 10111011 + 00000011=1011 1110  
b) 00111011 + 00000011=0011 1110  
c) 11011011 + 11011111=1011 1010+C+O  
d) 110110111 - 01011111=0101 1000+C+O  
e) 01101011 + 01111011=1110 0110  
f) 10110110 - 11101110=1100 1000  
18. a) 9651, 2438, 4351, b) 0010 0101 1011 0011, 0000 1001 1000 0110, 0001 0000  
1111 1111, c) 16440, d) 1, 0, 0  
19. Giá trị nhị phân là 1111 0100 1001, vì thế bit thứ hai là 0.  
20. Khi lựa chọn trình tự các thay đổi bit cho các bản đồ Karnaugh, chỉ một bit được  
thay đổi trong một thời điểm. Đây là cùng một phương pháp được dùng cho các trình  
tự số mã xám. Bằng cách dùng mã này các bit trong bản đồ ấy được nhóm lại một  
cách tự nhiên.  
21.  
100010 = 11111010002 = 3e816  
13.7 GIAO BÀI TẬP  
1. Tại sao các số thập lục là có ích khi làm việc với các PLC?  
pdf 17 trang baolam 28741 Free
Bạn đang xem tài liệu "Giáo trình Hệ thống sản xuất tự động hóa với PLCs - Phần 13: Dữ liệu và các số", để 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:

  • pdfgiao_trinh_he_thong_san_xuat_tu_dong_hoa_voi_plcs_phan_13_du.pdf