78
1 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG THÁI NGUYÊN KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG Bài giảng: ĐIỀU KHIỂN LOGIC (Tài liệu lưu hành nội bộ) Thái Nguyên, năm 2012

Bai giang dieu khien logic

Embed Size (px)

Citation preview

Page 1: Bai giang dieu khien logic

1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG THÁI NGUYÊN

KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG

Bài giảng:

ĐIỀU KHIỂN LOGIC

(Tài liệu lưu hành nội bộ)

Thái Nguyên, năm 2012

Page 2: Bai giang dieu khien logic

2

MỤC LỤC

MỤC LỤC ..........................................................................................................................1

Chương 1 ............................................................................................................................5

CƠ SỞ LÝ THUYẾT ĐIỀU KHIỂN LOGIC...................................................................5

1.1. Khái niệm về logic hai trạng thái..............................................................................5

1.2. Các hàm và các tính chất cơ bản của đại số logic.......................................................5

1.2.1. Hàm logic cơ bản................................................................................................5

1.2.2. Các tính chất và một số hệ thức cơ bản của đại số logic......................................7

1.3. Các phương pháp biểu diễn hàm logic.......................................................................8

1.3.1. Phương pháp biểu diễn thành bảng .....................................................................8

1.3.2. Phương pháp hình học ........................................................................................9

1.3.3. Phương pháp biểu thức đại số (phương pháp giải tích)........................................9

1.3.4.Phương pháp biểu diễn hàm logic bằng bảng Karnaugh..................................... 10

1.4. Các phương pháp tối thiểu hóa hàm logic................................................................ 10

1.4.1.Phương pháp tối thiểu hoá hàm logic bằng biến đổi đại số................................. 10

1.4.2. Phương pháp tối thiểu hoá hàm logic theo thuật toán........................................ 11

2.1. Khái niệm và mô hình toán học hệ điều khiển logic tổ hợp...................................... 15

2.2. Cách phân tích hệ điều khiển logic tổ hợp và ứng dụng........................................... 15

2.3. Phương pháp tổng hợp mạch logic tổ hợp................................................................ 17

2.4. Khái niệm chung hệ điều khiển logic mạch trình tự ................................................. 21

2.4.1. Giới thiệu và một số định nghĩa........................................................................ 21

2.4.2. Một số phần tử nhớ trong logic trình tự ............................................................ 21

2.5.1. Phương pháp bảng chuyển trạng thái ................................................................ 22

2.5.2. Phương pháp đồ hình trạng thái ........................................................................ 23

2.5.3. Phương pháp lưu đồ.......................................................................................... 24

2.6.Tổng hợp mạch trình tự ............................................................................................ 26

2.6.1. Tổng hợp theo phương pháp bảng trạng thái..................................................... 26

2.6.2.Tổng hợp theo phương pháp đồ hình Mealy hoặc Moore................................... 29

2.7. Ví dụ về mạch trình tự............................................................................................. 29

Chương 3 .......................................................................................................................... 30

HỆ ĐIỀU KHIỂN LOGIC KHẢ TRÌNH PLC ............................................................. 30

Page 3: Bai giang dieu khien logic

3

3.1. Khái niệm chung ................................................................................................. 30

3.2.Cấu tạo của PLC................................................................................................... 30

3.3. Sơ đồ cấu trúc PLC.............................................................................................. 31

3.4. Nguyên lý làm việc.............................................................................................. 32

3.5. Ưu nhược điểm.................................................................................................... 33

3.6. Ứng dụng: .......................................................................................................... 33

3.7. Trình tự thiết kế hệ điều khiển logic ứng dụng PLC............................................. 33

4.1. Sơ đồ cấu trúc của PLC........................................................................................... 35

4.1.1. Cấu hình cứng .................................................................................................. 35

4.1.2. Mô tả các đèn báo và công tắc ......................................................................... 36

4.1.3. Cấu trúc bộ nhớ ............................................................................................... 37

4.1.4. Mở rộng cổng vào ra (Module mở rộng)........................................................... 38

4.1.5. Thực hiện chương trình .................................................................................... 39

4.1.6. Cấu trúc chương trình ....................................................................................... 40

4.2 Ngôn ngữ lập trình của S7-200................................................................................ 41

4.2.1. Giới thiệu chung............................................................................................... 41

4.2.2.Bảng tóm tắt một số lệnh cơ bản của S7-200 ..................................................... 42

4.2.3. Cú pháp hệ lệnh của S7-200 ............................................................................. 45

4.3. Một số ví dụ ứng dụng S7-200............................................................................ 56

Chương 5 .......................................................................................................................... 62

THIẾT BỊ ĐIỀU KHIỂN LOGIC KHẢ TRÌNH S7-300 ............................................... 62

5.1. Giới thiệu chung..................................................................................................... 62

5.2. Các modul của PLC S7-300 .................................................................................... 62

5.2.1. Modul CPU ...................................................................................................... 63

5.2.2. Module mở rộng............................................................................................... 63

5.3. Kiểu dữ liệu và phân chia bộ nhớ ............................................................................ 64

5.3.1- Kiểu dữ liệu: .................................................................................................... 64

5.3.2. Cấu trúc bộ nhớ của CPU ................................................................................. 64

5.4. Vòng quét chương trình.......................................................................................... 65

5.5. Những khối OB đặc biệt......................................................................................... 65

5.6. Ngôn ngữ lập trình của S7-300................................................................................ 67

5.6.1. Cấu trúc lệnh và trạng thái kết quả.................................................................... 67

Page 4: Bai giang dieu khien logic

4

5.6.2. Các lệnh cơ bản ............................................................................................... 67

5.6.3.Các lệnh điều khiển chương trình ...................................................................... 68

5.6.4 Bộ thời gian (Timer).......................................................................................... 71

5.6.5. Bộ đếm (Counter) ............................................................................................. 75

5.6.6- Kỹ thuật sử dụng con trỏ ..................................................................................78

Page 5: Bai giang dieu khien logic

5

Chương 1 CƠ SỞ LÝ THUYẾT ĐIỀU KHIỂN LOGIC

1.1. Khái niệm về logic hai trạng thái Trong cuộc sống hàng ngày, nhiều sự vật hiện tượng thường biểu hiện ở hai mặt đối lập thông qua hai trạng thái đối lập rõ rệt. Ví dụ như khi nói về giá cả và chất lượng hàng hoá ta thường có khái niệm đắt và rẻ hay tốt và xấu…

Trong kỹ thuật điện và điều khiển, ta thường có khái niệm về hai trạng thái: đóng và cắt, kín hay hở, làm việc hay không làm việc, có điện hay mất điện,… Trong toán học, để lượng hoá hai trạng thái đối lập của sự vật hay hiện tượng người ta dùng hai giá trị: 0 và 1.Ta gọi đó là các giá trị 0 và 1 logic.

Các nhà bác học đã xây dựng cơ sở toán học để tính toán các hàm và biến chỉ lấy với hai giá trị 0 và 1 này, hàm và biến đó được gọi là hàm và biến logic, cơ sở toán học để tính toán các hàm và biến đó gọi là đại số logic. Đại số logic còn có tên là đại số Boole vì lấy theo tên nhà toán học Boole, người có công trong việc xây dựng nên công cụ đại số logic.

1.2. Các hàm và các tính chất cơ bản của đại số logic 1.2.1. Hàm logic cơ bản Một hàm y = f(x1, x2,… , xn) với các biến x1, x2,… ,xn chỉ nhận hai giá trị: 0 hoặc 1 và hàm y cũng chỉ nhận hai giá trị: 0 hoặc 1, thì x1, x2, …, xn được gọi là các biến logic và y là hàm logic.

1.2.1.1. Hàm logic một biến: y = f(x)

Vì biến x sẽ nhận một trong hai giá trị 0 hoặc 1, nên hàm y có 4 khả năng hay thường gọi là 4 hàm y0, y1, y2, y3

Bảng 1.1 Hàm logic một biến y = f(x)

Bảng chân lý Ký hiệu sơ đồ Ghi chú Tờn hàm

x 0 1 Thuật toán logic

Mạch rơle Khối điện tử

Hàm không

y0 0 0 y0 = 0; y0 = x x Hàm luôn

bằng không

Hàm đảo y1 1 0 y1 = x

Hàm lặp y2 0 1 y2 = x

Hàm đơn vị

y3 1 1 y3 = x+ x

Hàm luôn bằng 1

x y1

x y2 x y2

y1 x

y3 x

x

Page 6: Bai giang dieu khien logic

6

1.2.1.2.Hàm logic hai biến y = f(x1, x2)

Với hai biến logic x1, x2 mà mỗi biến có thể nhận giá trị 0 hoặc 1 ta có 16 tổ hợp logic tạo thành 16 hàm được biểu diễn ở bảng 1.2

Bảng 1.2: Hàm logic hai biến y = f(x1, x2)

Bảng chân lý Ký hiệu sơ đồ

x1 1 1 0 0 Tên hàm

x2 1 0 1 0

Thuật toán logic Mạch rơle Khối điện tử

Ghi chú

Hàm không

y0 0 0 0 0 y0=x1 x 1+x2 x 2 Hàm luôn có giá trị bằng 0

Hàm Piec

y1 0 0 0 1 y1 = 1x . 2x

y1 = 21 xx +

Hàm cấm x1

y2 0 0 1 0 y2 = 1x x2

Hàm đảo x1

y3 0 0 1 1 y3 = 1x

Chỉ phụ thuộc vào x1

Hàm cấm x2

y4 0 1 0 0 y4 = x1 2x

Hàm đảo x2

y5 0 1 0 1 y0 = x 2 Chỉ phụ thuộc

vào x2

Hàm hoặc loại

trừ

y6

0

1

1

0

y6= x1 2x + 1x x2

Cộng module

Hàm Cheffer

y7 0 1 1 1 y7= 1x + x 2= = 1 2x x

Hàm Và y8 1 0 0 0 y8 = x1.x2

Hàm cùng dấu

y9 1 0 0 1 y9=x1x2+ 1x 2x

x y1

x

x y2

x

y1 x x

y2 x x

y3x1

y4x x x y4

x

x1 y3

y5x2 x2 y5

y6x x

x xx1

x2

y6

y7x

xx1

x2

y7

y8x xx y8

x

y9x x

x xx1

x2

y9

Page 7: Bai giang dieu khien logic

7

Hàm lặp theo x2

y10 1 0 1 0 y10 = x2 Chỉ phụ thuộc

x2

Hàm kéo theo x2

y11

1

0

1

1

y11 = 1x +x2

Hàm lặp theo x1

y12 1 0 1 0 y12 = x1 Chỉ phụ thuộc

x1

Hàm kéo theo x1

y13 1 1 0 1 y13 = x1+ 2x

Hàm hoặc y14 1 1 1 0 y14 = x1+x2

Hàm đơn vị y15 1 1 1 1

Hàm luôn

bằng 1

Ta có nhận xét: Các hàm đối xứng qua trục nằm giữa y7 và y8, nghĩa là y0= 15y , y1 = 14y ,…

1.2.1.3. Hàm logic n biến y = f(x1, x2, …, xn)

Với hàm logic n biến, mỗi biến nhận một trong hai giá trị 0 hoặc 1 nên ta có 2n tổ hợp biến, mỗi tổ hợp biến lại nhận hai giá trị 0 hoặc 1, do vậy số hàm logic là n22 . Với số biến bằng n = 1 ta có 4 khả năng tạo hàm, n = 2 có 16 còn với n = 3 sẽ có 256 khả năng tạo hàm, như vậy khi số biến nhiều thì số hàm có khả năng tạo thành rất lớn. Tuy nhiên tất cả các khả năng này đều được biểu hiện qua các khả năng tổng logic, tích logic và nghịch đảo logic của các biến. Trong tất cả các hàm được tạo thành, ta đặc biệt chú ý đến loại hàm tổng chuẩn và hàm tích chuẩn. Hàm tổng chuẩn là hàm chứa tổng các tích mà mỗi tích có đủ tất cả các biến của hàm. Hàm tích chuẩn là hàm chứa tích các tổng mà mỗi tổng đều có đủ tất cả các biến của hàm.

1.2.2. Các tính chất và một số hệ thức cơ bản của đại số logic 1.2.2.1. Định luật giao hoán đối với cộng và nhân logic

a b b a+ = + a.b b.a=

1.2.2.2. Định luật kết hợp đối với cộng và nhân logic

a ( b c) (a b) c+ + + = + +

a.(.b.c) (a.b).c=

y10 x2 x2 y10

x1

x2

y11

y12 x1 x1 y12

x y13

xx1

x2

y1

y14 x

xx1

x2

y14

y15

x x

x x

x1

x1

x2

x2

y15

y11 x

x

Page 8: Bai giang dieu khien logic

8

1.2.2.3. Định luật phân phối: a(b c) ab ac+ = +

1.2.2.4. Định luật nghịch đảo (De - Morgan) a b a.b+ = a.b a b= +

1.2.2.5. Định luật phủ định hai lần: a a=

1.2.2.6. Qui tắc tính đối với các hằng số 0 và 1 a.1 a a.0 = 0= a 0 a a+1=1+ =

1.2.2.7. Qui tắc tính đối với biến và phủ định của nó a.a 0 a+a = 1=

1.2.2.8. Luật đồng nhất a a a a.a = a+ =

1.3. Các phương pháp biểu diễn hàm logic 1.3.1. Phương pháp biểu diễn thành bảng Với phương pháp này, các giá trị của hàm logic phụ thuộc vào các biến được biểu diễn thành một bảng. Nếu hàm có n biến thì bảng có n+1 cột (n cột cho biến và một cột cho hàm) và 2n hàng tương ứng với 2n tổ hợp của biến. Bảng này thường gọi là bảng chân lý.

Ví dụ: Cho một hàm 3 biến với giá trị hàm đã cho được biểu diễn thành bảng như sau:

Bảng 1.3

Giá trị thập phân (nhị phân) của tổ hợp biến

x1 x2 x3 y

0 (000) 0 0 0 1

1 (001) 0 0 1 0

2 (010) 0 1 0 “x”

3 (011) 0 1 1 “x”

4 (100) 1 0 0 0

5 (101) 1 0 1 1

6 (110) 1 1 0 “x”

7 (111) 1 1 1 1

Ghi chú: Dấu “x” là tổ hợp biến mà giá trị hàm không xác định (có thể là 0 hoặc 1)

Ưu điểm của phương pháp này là dễ nhìn, ít nhầm lẫn. Nhược điểm là cồng kềnh, đặc biệt là khi số biến lớn.

Page 9: Bai giang dieu khien logic

9

1.3.2. Phương pháp hình học Trong phương pháp biểu diễn này, miền xác định của hàm được biểu diễn trong không gian n chiều. Mỗi tổ hợp biến được biểu diễn bằng một điểm trong không gian đó. Hàm n biến tương ứng với không gian n chiều có 2n điểm trong không gian đó, ứng với mỗi điểm sẽ có một giá trị của hàm. Hai điểm nằm trên cùng một trục chỉ khác nhau bởi sự thay đổi giá trị của một biến. Hình 1.1 là cách biểu diễn hàm logic 1, 2 và 3 biến.

Nhược điểm của phương pháp này là khi số biến lớn sẽ rất phức tạp.

1.3.3. Phương pháp biểu thức đại số (phương pháp giải tích) Người ta đã chứng minh được rằng, một hàm logic n biến bất kỳ bao giờ cũng có thể

biểu diễn thành các hàm tổng chuẩn đầy đủ và tích chuẩn đầy đủ.

* Cách viết hàm dưới dạng tổng chuẩn đầy đủ:

- Chỉ quan tâm đến tổ hợp biến mà hàm có giá trị bằng 1. Số lần hàm bằng 1 sẽ chính là số tích của các tổ hợp biến, mỗi tích được gọi là một mintec, ký hiệu là mi.

- Trong mỗi tích, các biến có giá trị bằng 1 được giữ nguyên, còn các biến có giá trị bằng 0 thì được lấy giá trị nghịch đảo.

- Hàm tổng chuẩn đầy đủ là tổng các tích đó.

* Cách viết hàm dưới dạng tích chuẩn đầy đủ:

- Chỉ quan tâm đến tổ hợp biến mà hàm có giá trị bằng 0. Số lần hàm bằng 0 sẽ chính là số tổng của các tổ hợp biến, mỗi tổng được gọi là một Maxtec, ký hiệu là Mi.

- Trong mỗi tổng, các biến có giá trị bằng 0 được giữ nguyên, còn các biến có giá trị bằng 1 thì được lấy giá trị nghịch đảo.

- Hàm tích chuẩn đầy đủ là tích các tổng đó.

Hình1.1. Biểu diễn hình học hàm logic a - Hàm 1 biến; b - Hàm 2 biến; c - Hàm 3 biến

0 1 x

10 11

x1 00

01

x2

x2

010 110

x1

000 100

101

011

001

111

x3

a

b c

Page 10: Bai giang dieu khien logic

10

1.3.4.Phương pháp biểu diễn hàm logic bằng bảng Karnaugh Nguyên tắc xây dựng bảng Karnaugh là:

- Để biểu diễn một hàm logic n biến, cần thành lập một bảng có 2n ô; mỗi ô tương ứng với một tổ hợp biến. Đánh số thứ tự các ô trong bảng tương ứng với giá trị của tổ hợp biến.

- Các ô cạnh nhau hoặc đối xứng nhau chỉ cho phép khác nhau về giá trị của một biến.

- Trong các ô ghi giá trị của hàm tương ứng với giá trị của tổ hợp biến đó.

Ví dụ: Hình 1.2 là bảng Karnaugh của hàm 2 biến

1.4. Các phương pháp tối thiểu hóa hàm logic 1.4.1.Phương pháp tối thiểu hoá hàm logic bằng biến đổi đại số Việc rút gọn hàm thường dựa vào các luật và các hệ thức cơ bản của đại số logic

Ví dụ: Tối thiểu hoá hàm sau:

y a.b a.b a.b (a.b a.b) (a.b a.b) b(a a) a(b b) a b= + + = + + + = + + + = +

Do tính trực quan của phương pháp nên nhiều khi kết quả đưa ra vẫn không biết rõ là đã tối thiểu hay chưa, như vậy đây không phải là phương pháp chặt chẽ để cho phép tự động hoá quá trình tối thiểu hoá hàm logic.

Hình 1.2. Bảng Karnaugh cho hàm 2 biến; Ví dụ: y=Σ1,2 và N=3

21 xx

x1 x2 0 1

1

0

x1 2x

1x x2

x1x2

0 1

2 3

x1

x2 0 1

1

0

“x”

0 1

2 3

0 1

1

Hình 1.3. Bảng Karnaugh cho hàm 3 biến; Ví dụ: y =Σ1,3,5 với N=2,4,7

321 xxx

x1

x2 x3

00 01

1

0

x1 32 xx

1x 2x x3

321 xxx

0 1

4 5

10 3

7

2

6

1x x2x3

11

321 xxx

x1x2x3 x1x2 3x

x1

1

0

“x”

0 1

4 5

0 1

1

3 2

7 6

00 01 10 11

“x”

“x”

1

0

x2x3

Page 11: Bai giang dieu khien logic

11

1.4.2. Phương pháp tối thiểu hoá hàm logic theo thuật toán Thường dùng nhất là các phương pháp: bảng Karnaugh và Quine Mc. Cluskey

1.4.2.1.Tối thiểu hoá hàm logic bằng phương pháp Quine Mc. Cluskey

a. Một số khái niệm và định nghĩa

+ Đỉnh: Đỉnh là một tích chứa đầy đủ các biến của hàm xuất phát, nếu hàm có n biến thì đỉnh là tích của n biến.

Đỉnh 1 là đỉnh mà hàm có giá trị bằng 1;

Đỉnh 0 là đỉnh mà hàm có giá trị bằng 0;

Đỉnh không xác định là đỉnh mà tại đó hàm có thể lấy một trong hai giá trị bằng 0 hoặc 1.

+ Tích cực tiểu: Tích cực tiểu là tích có số biến là cực tiểu để hàm có giá trị bằng 1 hoặc có giá trị không xác định.

+ Tích quan trọng: Tích quan trọng là tích cực tiểu mà giá trị hàm chỉ duy nhất bằng 1 ở tích này.

b. Tối thiểu hoá hàm logic bằng phương pháp Quine Mc. Cluskey

Các bước tiến hành:

Quá trình tối thiểu hoá hàm logic bằng phương pháp Quine Mc. Cluskey được tiến hành theo các bước như trên hình 1.2.

Ví dụ : Cho hàm y = f(x1, x2, x3, x4) với các đỉnh bằng 1 là L = 2, 3, 7, 12, 14, 15; và các đỉnh hàm không xác định là N = 6, 13 (bảng 1.4). Hãy tối thiểu hoá hàm bằng phương pháp Quine Mc. Cluskey

Cách làm:

Bước 1: Tìm các tích cực tiểu

Các công việc tiến hành như sau:

+) Lập bảng biểu diễn các giá trị hàm bằng 1 và các giá trị không xác định ứng với mã nhị phân của các biến (bảng 1.4a).

+) Sắp xếp các tổ hợp biến theo mã nhị phân theo thứ tự số các chữ số 1 tăng dần từ 0, 1, 2, 3, …. Như vậy ở đây ta có 4 tổ hợp: tổ hợp 1 (gồm các số chứa 1 chữ số 1), tổ hợp 2 (gồm các số chứa 2 chữ số 1), tổ hợp 3 (gồm các số chứa 3 chữ số 1), tổ hợp 4 (gồm các số chứa 4 chữ số 1) (bảng 1.4b).

Cho hàm với tập L và N

1. Tìm các tích cực tiểu

2. Tìm các liên kết phải tối thiểu các đỉnh

3. Viết ra hàm cực tiểu

Kết thúc

Bắt đầu

Hình 1.4. Các bước tối thiểu hoá hàm logic theo phương

pháp Quine

Page 12: Bai giang dieu khien logic

12

+) So sánh mỗi tổ hợp thứ i với một tổ hợp thứ i+1, nếu hai tổ hợp chỉ khác nhau ở một cột thì kết hợp hai tổ hợp đó thành một tổ hợp mới, đồng thời thay cột số khác nhau của 2 tổ hợp cũ bằng một gạch ngang (-) vào hai tổ hợp cũ (bảng 1.4 c)

+) Tiếp tục công việc: Từ bảng 1.4c ta chọn ra các tổ hợp chỉ khác nhau 1 chữ số 1 và có cùng gạch ngang (-) trong một cột, nghĩa là có cùng biến vừa được giản ước ở bảng 1.4c, như vậy ta có bảng 1.4d.

Các tổ hợp tìm được ở bảng 1.4d là tổ hợp cuối cùng, không còn khả năng kết hợp nữa, đây chính là các tích cực tiểu của hàm f đã cho và được viết:

0 - 1 - (phủ các đỉnh 2, 3, 6, 7) : 1x x3

- 1 1 - (phủ các đỉnh 6, 7, 14, 15) : x2x3

1 1 - - (phủ các đỉnh 12, 13, 14, 15): x1x2

Bảng 1.4

Bảng a Bảng b Bảng c Bảng d

Số thập phân

Số nhị phân

(x1x2x3x4)

Số chữ số 1

Số thập phân

Số nhị phân

(x1x2x3x4)

Liên kết

Số nhị phân

(x1x2x3x4)

Liên kết

Số nhị phân

(x1x2x3x4)

2

0010

1

2

0010

2,3

001-

2,3,6,7 2,6,3,7

0-1-

3

0011

3

0011

2,6

0-10

6,7,14,15 6,14,7,15

-11-

6 0110 6 0110 3,7 0-11

12 1100

2

12 1100 6,7 011-

12,13,14,15 12,14,13,15

11--

7 0111 7 0111 6,14 -110

13 1101 13 1101 12,13 110-

14 1110

3

14 1110 12,14 11-0

15 1111 15 1111 7,15 -111

13,15 11-1

4

14,15 111-

Page 13: Bai giang dieu khien logic

13

Bước 2: Tìm các tích quan trọng

Việc tìm các tích quan trọng cũng được tiến hành theo trình tự nhiều bước nhỏ. Giả thiết có i bước nhỏ, với i = 0, 1, 2, 3, …, k

Gọi Li là tập các đỉnh 1 đang xét ở bước thứ i, lúc này không quan tâm đến các đỉnh có giá trị không xác định nữa.

Zi là tập các tích cực tiểu ở bước nhỏ thứ i.

Ei là tập các tích quan trọng ở bước nhỏ thứ i.

Trình tự công việc được tiến hành như sau:

+) Với i = 0

L0 = L = (2, 3, 7, 12, 14, 15)

Z0 = Z = ( 1x x3, x2x3, x1x2)

Xác định các tích quan trọng E0 từ các tập L0 và Z0 như sau:

Lập một bảng trong đó mỗi hàng ứng với một tích cực tiểu thuộc Z0, mỗi cột ứng với một đỉnh thuộc L0. Đánh dấu “x” vào các ô trong bảng ứng với tích cực tiểu bằng 1.

Xét từng cột, cột nào chỉ có một dấu “x” thì tích cực tiểu ứng với nó là tích quan trọng như ở bảng 1.7.

Bảng 1.5.

L0 Z0

2 3 7 12 14 15

1x x3 (x) (x) x

x2x3 x x x

x1x2 (x) x x

+) Với i = 1

L1: Tìm L1 từ L0 bằng cách loại khỏi L0 các đỉnh 1 của E0.

Z1: Tìm Z1 từ Z0 bằng cách loại khỏi Z0 các tích trong E0 và các tích đã nằm trong hàng đã được chọn từ E0 (đó là các tích không cần thiết).

Lập bảng tương tự như trên, từ bảng đó cũng bằng cách tương tự trên sẽ tìm được tích quan trọng E1.

Công việc được tiếp tục cho đến khi hết các tích cực tiểu

Li+1 = Li - Ei

Page 14: Bai giang dieu khien logic

14

Zi+1 = Zi - Ei

Lập bảng Li+1 và Zi+1 để tìm Ei+1. Lặp lại công việc cho đến khi Lk = 0.

Trong ví dụ trên thì L1 = 0, do vậy ta có hàm đã được tối thiểu hoá là:

f = 1x x3 + x1x2

1.4.2.2. Phương pháp dùng bảng Karnaugh

Phương pháp này được tiến hành theo các bước sau:

Bước 1: Biểu diễn hàm đã cho thành bảng Karnaugh.

Bước 2: Xác định các tích cực tiểu hoặc tổng cực tiểu.

Bước 3: Tìm các liên kết phủ tối thiểu các ô “1” (nếu biểu diễn tối thiểu theo hàm tổng) hoặc các ô “0” (nếu biểu diễn theo hàm tích), sau đó viết hàm kết quả theo tổng hoặc tích.

Ví dụ 1: Hãy tối thiểu hàm logic sau đây theo hàm tổng:

y = f(x1, x2, x3, x4) = Σ 1, 5, 6, 7, 11, 13; và N = 12, 15;

Giải:

Bước 1: Lập bảng Karnaugh. Vì hàm có 4 biến nên ta có thể lập bảng Karnaugh thành 4 hàng và 4 cột như hình 1.6.

x3x4

x1x2

00 01 11 10

00

0 1 1

3 2

01

4 5 1

7 1

6 1

11

12 x

13 1

15 x

14

10

8 9 11 1

10

Hình 1.5. Bảng Karnaugh của hàm y = f(x1, x2, x3, x4) Quan sát bảng Karnaugh và chỉ xét các liên kết tối thiểu phủ hết các ô có kết quả hàm bằng 1 (lúc này không xét các ô có ký hiệu “x”), như vậy ta được kết quả tối thiểu của hàm là:

1 3 14 2 4 1 3 4 2 3y A C D E x x x x x x x x x x x= + + + = + + +

D

E

B

A

C

Page 15: Bai giang dieu khien logic

15

Chương 2

HỆ ĐIỀU KHIỂN TỔ HỢP VÀ LOGIC TRÌNH TỰ

2.1. Khái niệm và mô hình toán học hệ điều khiển logic tổ hợp Mạch logic tổ hợp là mạch mà trạng thái đầu ra của mạch chỉ phụ thuộc vào tổ hợp các trạng thái đầu vào chứ không phụ thuộc vào trình tự tác động của các đầu vào. Theo quan điểm điều khiển thì mạch tổ hợp là mạch hở, hệ không có phản hồi, nghĩa là trạng thái đóng mở của các phần tử trong mạch hoàn toàn không bị ảnh hưởng của trạng thái tín hiệu đầu ra.

Về mặt toán học, giả thiết một mạch tổ hợp có n đầu vào với các xi (i = 1-n) và m đầu ra với các yj (j = 1-m), ta ký hiệu:

X = { x1, x2, …, xn } là tập các tín hiệu vào.

Y = { y1, y2, …, ym} là tập các tín hiệu ra.

thì mạch tổ hợp được biểu diễn bởi m phương trình đại số Boole như sau:

yj = fj(x1, x2, …, xn) với j = 1-m.

Có thể biểu diễn mô hình toán học của mạch tổ hợp theo sơ đồ khối hình 2.1

2.2. Cách phân tích hệ điều khiển logic tổ hợp và ứng dụng Bài toán phân tích có nhiệm vụ là từ mạch tổ hợp đã có, mô tả hoạt động của mạch, viết các hàm logic của các đầu ra theo các biến đầu vào và nếu cần có thể xét tới việc tối thiểu hoá mạch.

Giả thiết có mạch logic tổ hợp như hình 2.2, ta tiến hành phân tích mạch này.

Việc phân tích mạch được tiến hành theo các bước sau:

-Thống kê số biến vào và ra, trên cơ sở đó lập bảng mô tả trạng thái của hệ thống.

Y1

a

c

b

c

b

a

Y2

Y1 b

c

a

c

a

b

Y2

Hình 2.2. Mạch tổ hợp có 3 biến vào và 2 đầu ra a. Ký hiệu theo mạch rơ le; b. Ký hiệu theo mạch số

a b

MẠCH

TỔ HỢP

x1

Hình 2.1: Mô hình toán học của mạch tổ hợp

x2

xn

y1 y2

yn

Page 16: Bai giang dieu khien logic

16

Mạch ở hình 2.2 có 3 biến vào là a, b, c và 2 đầu ra là Y1, Y2, bảng trạng thái của hệ được biểu diễn như sau (bảng 2.1).

Bảng 2.1

a b c Y1 Y2

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 0 1

1 0 0 0 0

1 0 1 1 0

1 1 0 1 1

1 1 1 1 1

- Viết các hàm logic mô tả quan hệ giữa tín hiệu ra theo tín hiệu vào. Sử dụng các phép toán logic cơ bản ta có thể viết được các quan hệ này. Với ví dụ hình 2.2, hoặc mô tả bởi bảng 2.1, ta có: Y1 = (b + c).a Y2 = (a + c).b

- Xét khả năng tối giản mạch: Giả thiết để thực hiện mạch điện như hình 2.2, ta có cấu trúc như hình 2.3a hoặc hình 2.3b

Với cấu trúc như ở hình 2.3a ta có:

Y1 = P.Q, Y2 = P.R

Với cấu trúc như ở hình 2.3b ta có:

Y1 = U + V.W, Y2 = V + U.W

Với cấu trúc như ở hình 2.3a, mỗi khối P, Q, R đều là tổ hợp của 3 biến a, b, c, ta có bảng Karnaugh của P, Q, R và Y1, Y2 như hình 2.4. ở đây, các giá trị của Y1 và Y2 được chép lại từ kết quả của bảng 2.1.

Các giá trị của P, Q, R có thể chia thành hai nhóm: một nhóm giá trị bắt buộc và một nhóm có thể nhận giá trị tuỳ ý. Vì rằng mạch P sẽ nối tiếp với mạch Q, nên để đạt được giá trị đầu ra Y1 = 1 thì P, Q bắt buộc phải bằng 1 với tất cả các tổ hợp a, b, c; ngược lại khi Y1 = 0 thì chỉ cần P hoặc Q bằng 0 là đủ. Khi tổ hợp abc = 100 ứng với Y1 = 0, ta có thể chọn P = 0, còn Q có thể bằng 0 hoặc 1. Với các ô trong bảng Karnaugh để có giá trị Y2 = 1 và Y1 = 0 với điều kiện P = 1 thì bắt buộc Q phải bằng 0. Từ đó suy ra: có 4 trong 8 ô của bảng Karnaugh của giá trị Q có giá trị bắt buộc và có 4 ô có giá trị tuỳ ý.

Hình 2.3

P

Q

R

Y

Y

U

W

Y

V Y

(a) (b)

Page 17: Bai giang dieu khien logic

17

Với tổ hợp abc = 001, chọn P = 1 thì cũng cùng ô đó Q và R phải bằng 0. Từ lập luận này ta điền được các giá trị trong bảng Karnaugh hình 2.4. Với cách tối thiểu hàm bằng bảng Karnaugh như đã giới thiệu ở phần trước, ta được: P = ab + c, Q = a, R = b.

Với các biểu thức P, Q, R vừa tìm được, ta vẽ được sơ đồ mạch tối giản như hình 2.5, sơ đồ hình 2.2 ta bớt được một đầu vào. Trong thực tế, với mạch rơ le thì việc giảm một đầu vào (một tiếp điểm) rất có ý nghĩa, còn với mạch số thì điều này hiệu quả không đáng kể.

Việc phân tích theo cấu trúc hình 2.3b cũng xảy ra tương tự.

2.3. Phương pháp tổng hợp mạch logic tổ hợp Việc tổng hợp mạch tổ hợp thực chất là thiết kế mạch tổ hợp. Nhiệm vụ chính ở đây là thiết kế được mạch tổ hợp thoả mãn yêu cầu kỹ thuật nhưng mạch phải tối giản. Bài toán tổng hợp là bài toán phức tạp, vì ngoài các yêu cầu về chức năng logic, việc tổng hợp mạch còn phụ thuộc vào việc sử dụng các phần tử, chẳng hạn như phần tử là loại rơ le-công tắc tơ, là các phần tử bán dẫn hay vi mạch chuẩn, … Với mỗi loại phần tử thì ngoài nguyên lý chung về mạch logic còn đòi hỏi phải bổ sung những nguyên tắc riêng lúc tổng hợp hệ thống.

Nguyên tắc chung khi tổng hợp mạch logic tổ hợp là:

Hình 2.5

Y1

c

a b

b

a

Y2

c ab

0

1

00 0 1 01 0 1 11 1 1 10 0 1

c ab

0

1

00 ∅ 0 01 ∅ 0 11 1 1 10 ∅ 1

c ab

0

1

00 0 0 01 0 0 11 1 1 10 0 1

c ab

0

1

00 ∅ 0 01 ∅ 1 11 1 1 10 ∅ 0

c ab

0

1

00 0 0 01 0 1 11 1 1 10 0 0

P

Q

R

=

=

Y1

Y2

Hình 2.4.

Page 18: Bai giang dieu khien logic

18

+ Từ các yêu cầu công nghệ ta đưa ra được các hàm logic thoả mãn các yêu cầu đã cho.

+ Thực hiện tổi thiểu hoá các hàm logic đã thiết lập được, tìm ra các hàm tối giản.

+ Thực hiện mạch logic tổ hợp bằng việc sử dụng các rơle, công tắc tơ (tổng hợp mạch rơ le), hoặc bằng các phần tử logic AND, OR, NAND, NOR đã chuẩn hoá đầu vào và đầu ra.

Ví dụ 1: Hãy thiết kế mạch logic tổ hợp khi cho hàm logic 4 biến (4 đầu vào):

Y = f(a,b,c,d) = Σ2,4,5,7,8,13; và N = 0,1,6,9,10,15.

Giải:

1/ Tối thiểu hoá hàm đã cho, ở đây ta sử dụng phương pháp Quine Mc.Cluskey. Tiến trình thực hiện được mô tả theo bảng 2.2.

Bảng 2.2

Số nhị phân Số thập phân

a b c d

Liên kết lần1

Liên kết lần 2 Kết quả

0

0 0 0 0 0,1 0,2 0,4 0,8

1 2 4 8

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

0, 1, 4, 5 0, 1, 8, 9 0, 2, 4, 6

0, 2, 8, 10

A B C D

0 - 0 - - 0 0 - 0 - - 0 - 0 - 0

5 6 9 10

0 0 1 1

1 1 0 0

0 1 0 1

1 0 1 0

1,5 1,9 2,6

2,10 4,5 4,6 8,9

8,10

4, 5, 6, 7

1, 5, 9, 13

E

F

0 1 - -

- - 0 1

7

13

0

1

1

1

1

0

1

1

5,7 5,13 6,7

9,13

5, 7, 13, 15 G - 1 - 1

15 1 1 1 1 7,15 13,15

Page 19: Bai giang dieu khien logic

19

2/ Tìm các tích cực tiểu và tích quan trọng: Dựa vào bảng 2.2 ta tìm được 7 tích cực tiểu:

A = c.a ; B = c.b ; C = d.a ; D = d.b ; E = b.a ; F = d.c ; G = b.d.

Từ các tích cực tiểu ta lập bảng 2.3 để tìm các tích quan trọng

Bảng 2.3. Bảng các tích cực tiểu

2 4 5 7 8 13

A x x

B x

C x x

D x x

E x x x

F x x

G x x x

Với trường hợp này ta thấy, không có tích nào là tích quan trọng, ta có thể chọn một số tích sao cho chúng vừa bao đủ các đỉnh 1 (có đỉnh xuất hiện ở một số tổ hợp). Ở đây có thể chọn G, B và C, hoặc là G, D và A, hoặc là G, D và C, hoặc là G, D và E, hoặc là D, E và F.Tất cả các khả nang này đều dùng 6 tín hiệu vào, vì rằng mỗi thành phần đều có 2 tín hiệu (lấy từ 4 đầu vào a, b, c, d). giả sử ta chọn tổ hợp G, B và C thì hàm Y sẽ là:

Y = b.d + cb. + da. (a)

Sơ đồ mạch rơ le ứng với trường hợp chọn G, C và B như hình 2.6a.

Để có thể đạt được hàm đơn giản ta có thể xét với tập bù của tập L, tức là:

=Y f (a,b,c,d) = L (3,11,12,14) + N(0,1,6,9,10,15)

(ở đây ta thực hiện tìm hàm tối giản của Y , bằng phương pháp tương tự như lúc tìm Y, nhưng các đỉnh 1 bây giờ được chọn là tập đỉnh 0 của hàm Y đã cho).

Cũng áp dụng phương pháp Quine Mc.Cluskey. Kết quả được hàm tối giản:

d.b.ad.bY +=

Sử dụng các luật của đại số logic ta tìm được Y:

Y Y b.d a.b.d (b d).(a b d)= = + = + + + (b)

Với hàm tối giản này ta có 5 tín hiệu vào, sơ đồ mạch rơ le được biểu diễn như hình 2.6b.

Page 20: Bai giang dieu khien logic

20

Sơ đồ các phần tử logic cho 2 trường hợp (a) và (b) được cho trên hình 2.7.

Ví dụ 2: (hình 2.8)

Một tủ bảo mật tài liệu, có 4 chìa khoá với 4 người giữ: trưởng phòng (a), phó trưởng phòng (b) và 2 nhân viên (c & d). Cách mở như sau: a chỉ có thể mở khi có mặt b hoặc c. Còn b, c và d chỉ có thể mở khi có ít nhất 2 người khác. Tìm phương trình logic của khoá (đầu ra F) theo các chìa khoá (abcd).

abcddabcdcabdcabcdbadcbabcdaF ++++++=

Với: cbacdbadcba =+ ; cabdcabdcab =+ ; abcabcddabc =+ , ta có:

cab)bdaa(ccabacbcdaabccabcbabcdaF ++=++=+++=

bcd)bc(abcd)cc(acabbcdacF ++=++=++=

bcd)bc(aF ++=

Hình 2.6

Y c

b d

b

a d

Y b

b a

d

d

(a) (b)

Hình 2.7

c

b

d

Y

a (a)

Y

b d

a (b)

dcab dcab

dabc

cdba dcba

bcda

Đầu vào Các tổ

hợp a b c d F

0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 0 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 1 8 1 0 0 0 0 9 1 0 0 1 0

10 1 0 1 0 1 11 1 0 1 1 1 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 1

abcd

Hình 2.8

Page 21: Bai giang dieu khien logic

21

2.4. Khái niệm chung hệ điều khiển logic mạch trình tự 2.4.1. Giới thiệu và một số định nghĩa Mạch trình tự hay mạch dãy (sequential circuits) là mạch mà trong đó trạng thái của đầu ra (tín hiệu ra) không những phụ thuộc tín hiệu vào mà còn phụ thuộc cả vào trình tự tác động của tín hiệu vào, nghĩa là có nhớ các trạng thái. Như vậy, về mặt thiết bị thì ở mạch trình tự không chỉ có các phần tử đóng mở mà còn có cả các phần tử nhớ.

Sơ đồ cấu trúc cơ bản của mạch trình tự như hình 3.1. Điểm đặc biệt ở đây là mạch có “phản hồi” thể hiện qua các biến nội bộ (Y1, Y2 và y1, y2).

Hoạt động của mạch trình tự được thể hiện ở sự thay đổi của biến nội bộ Y. Trong quá trình làm việc, do sự thay đổi củ các tín hiệu vào X (x1, x2,…) sẽ đẫn đến thay đổi các tín hiệu ra Z (Z1, Z2, …) và cả tín hiệu nội bộ Y(Y1, Y2,…). Sự thay đổi của Y(Y1, Y2,…) sẽ dẫn đến sự thay đổi biến y (y1, y2, …) sau thời gian (τ1, τ2,…). Sự thay của các biến y (y1, y2,…) lại có thể dẫn đến sự thay đổi của các tín hiệu ra Z, kể cả Y, rồi sự thay đổi của

Y lại dẫn đến sự thay đổi của y,… Quá trình nếu cứ diễn ra liên tục như vậy sẽ làm cho mất ổn định, nghĩa là mạch không làm việc được. Yêu cầu đặt ra là phải làm cho hệ ổn định, nghĩa là khi mạch trình tự có sự thay đổi của tín hiệu vào sẽ chuyển từ một trạng thái ổn định này đến một trạng thái ổn định khác và trải qua một số giai đoạn trung gian không ổn định. Khái niệm ổn định và không ổn định này không chỉ liên quan đến toàn mạch mà còn liên quan đến từng phần tử.

Với mạch ở hình 2.9 thì:

- Mạch sẽ ổn định khi: Y1 = y1 và Y2 =y2;

- Mạch không ổn định khi: Y1 = 1y và Y2 = 2y

2.4.2. Một số phần tử nhớ trong logic trình tự Như đã nói ở trên, tính đặc thù của mạch trình tự là có phần tử nhớ.

2.4.2.1. Rơ le thời gian 2.4.2.2. Các mạch lật a. Mạch lật RS

b. Mạch lật D

2.5. Các phương pháp mô tả mạch logic trình tự

τ1

τ2

x1

x2

y1

Z1

Z2

Y1

Y2

MẠCH TỔ HỢP

Hình 2.9. Cấu trúc cơ bản của mạch trình tự

Page 22: Bai giang dieu khien logic

22

Hình 2.11

Tín hiệu vào Tín hiệu ra Trạng thái α β γ Y1 Y2

S1(tốc độ thấp) S2 S3 0 0 S2(đảo chiều quay) S1 1 0 S3(ngừng máy) 0 0

S1

S2

S3

2.5.1. Phương pháp bảng chuyển trạng thái Phương pháp này mô tả quá trình chuyển đổi trạng thái dưới hình thức bảng, trong bảng hình 2.10 bao gồm:

⊕ Các cột của bảng ghi các biến vào và biến ra:

Các tín hiệu vào là các tín hiệu điều khiển (α, β, γ, …), có thể là tín hiệu điều khiển của người vận hành, tín hiệu của thiết bị chương trình hoặc các tín hiệu phát ra từ các thiết bị công nghệ.

Các tín hiệu ra (Y1, Y2, …) là tín hiệu kết quả của quá trình điều khiển và ghi ở cột đầu ra.

⊕ Các hàng của bảng ghi các trạng thái trong của mạch (S1, S2, S3, …) (hình 2.11). Số hàng của bảng chỉ rõ số trạng thái trong cần có của hệ.

⊕ Các ô giao nhau của cột biến vào và các hàng trạng thái sẽ ghi trạng thái của mạch. Nếu trạng thái mạch trùng với tên hàng thì đó là trạng thái “ổn định”, nếu trạng thái mạch không trùng với tên hàng thì đó là trạng thái “không ổn định”.

⊕ Các ô giao nhau của cột tín hiệu ra và các hàng trạng thái sẽ ghi giá trị tín hiệu ra tương ứng.

Ở bảng trên hình 3.3: α, β, γ là tín hiệu vào, Y1, Y2 là tín hiệu ra. Hệ có 3 trạng thái: S1 (làm việc ở tốc độ thấp), S2 (đảo chiều quay), S3 (ngừng máy).

Mỗi trạng thái của hệ có thể diễn đạt bằng ngôn ngữ và kèm theo một con số để gọi tên trạng thái đó. Ví dụ ta xét trạng thái S1, lúc này máy hoạt động ở tốc độ thấp. Nếu lúc này cho biến α tác động thì máy vẫn làm việc ở trạng thái S1 (trạng thái S1 là trạng thái ổn định), nếu cho biến β tác động thì máy sẽ chuyển sang trạng thái S2 (nhưng trạng thái S2 ghi ở hàng S1 là không ổn định - trạng thái trung gian, mạch đang chuẩn bị chuyển đến trạng thái ổn định khác), nếu cho biến γ tác động thì máy sẽ chuyển sang trạng thái S3 (trạng thái S3 không ổn định). Các biến đầu ra Y1, Y2 lúc này đều bằng không. Tương tự như vậy ta sẽ lý giải kết quả ở các hàng 2 và 3.

Khi bảng trạng thaí chỉ có 1 tín hiệu ra thì có thể không dùng cột tín hiệu ra, các giá trị tín hiệu ra được ghi luôn vào các ô trạng thái chuyển (hình 2.12).

Điều quan trọng ở đây là ghi được đầy đủ và đúng các trạng thái ở trong các ô của bảng. Có hai cách thực hiện công việc này:

Tín hiệu vào Tín hiệu ra Trạng thái α β γ … Y1 Y2

S1 S2 S3

Hình 2.10

Page 23: Bai giang dieu khien logic

23

- Cách 1: Trước hết dựa vào dữ liệu bài toán, các hiểu biết về quá trình công nghệ, từ đó ghi các trạng thái ổn định hiển nhiên có. Tiếp theo ghi các trạng thái chuyển rõ ràng (các trạng thái này có số ghi trạng thái khác với thứ tự các hàng - các trạng thái xuất phát), nếu trạng thái nào không biết chắc chắn thì để trống, sẽ bổ sung sau.

- Cách 2: Phân tích xem xét từng ô để điền trạng thái. Việc làm này là logic, chặt chẽ và rõ ràng, tuy nhiên nhiều khi phân tích không thể quá chi ly để dẫn đến khả năng phân biệt giữa các ô có trạng thái gần nhau, do vậy rất khó điền đầy đủ các ô.

2.5.2. Phương pháp đồ hình trạng thái Đồ hình trạng thái là hình vẽ mô tả các trạng thái chuyển của một mạch logic trình tự, đồ hình gồm các đỉnh và các cung định hướng trên đó ghi các tín hiệu vào/ra và kết quả. Phương pháp này thường chỉ dùng cho hàm một đầu ra. Ta sẽ xét hai loại: đồ hình Mealy và đồ hình Moore.

2.5.2.1.Đồ hình Mealy

Đồ hình Mealy (hình 3.5) gồm các đỉnh biểu diễn các trạng thái trong của mạch và các cung định hướng, trên các cung ghi biến tác động và kết quả hàm khi chịu sự tác động của biến đó. Đồ hình Mealy chính là chuyển bảng trạng thái thành dạng đồ hoạ.

2.5.2.2. Đồ hình Moore

Trong đồ hình Moore, các đỉnh là các trạng thái và giá trị trạng thái, còn các cung định hướng sẽ ghi biến tác động.

1 2

3 4

5

(α+β+γ)

β/0 γ/0

β/0

γ/0

α/

β/0

α/

α/

β/0

(α+γ)/1 γ/0

Hình 2.13. Đồ hình Mealy ứng với bảng trạng thái hình 3.4

Biến vào Trạng thái α β γ

S1 S2/1 S4/0 S3/0 S2 S4/1 S2/0 S4/1 S3 S1/1 S1/1 S1/1 S4 S3/1 S4/0 S2/0 S5 S5/0 S3/0 S4/0

Hình 2.12

Page 24: Bai giang dieu khien logic

24

Từ bảng trạng thái (hình 2.12), ta có thể lập đồ hình Moore theo các bước như sau:

Bước 1: Từ các ô ứng với cặp trạng thái và kết quả ở hình 2.12, ta gán một trạng thái tương đương Q cho đồ hình Moore. Chẳng hạn ta gán S2/0 = Q1, S3/0 = Q2, S4/0 = Q3, S5/0 = Q4, S1/1 = Q5, S2/1 = Q6, S3/1 = Q7, S4/1 = Q8.

Bước 2: Thành lập bảng chuyển đổi trạng thái cho đồ hình Moore.

Với bảng trạng thái hình 2.12 và cách gán như bước 1, ta lập được bảng chuyển trạng thái cho đồ hình Moore (hình 2.14).

Bước 3: Dựa vào bảng trạng thái (hình 2.14), vẽ được đồ hình Moore (hình 2.15).

Tất nhiên nếu có bảng trạng thái của đồ hình Moore, ta cũng dễ dàng thiết lập được bảng trạng thái cho đồ hình Mealy bằng cách ghi thêm vào các ô chuyển trạng thái của bảng Moore các kết quả đầu ra tương ứng và bỏ cột ra, sau đó tìm cách tối giản bảng trạng thái sẽ nhận được bảng trạng thái cho đồ hình Mealy.

Ta thấy đồ hình Moore có số trạng thái nhiều hơn đồ hình Mealy, nhưng hàm ra của đồ hình Moore đơn giản hơn của đồ hình Mealy.

2.5.3. Phương pháp lưu đồ Đồ hình thuật toán là cách mô tả hệ thống một cách suy luận trực quan. Các khối chính của lưu đồ và các khối được mô tả ở hình 2.16.

Trạng thái α β γ Ra

Q1(S2/0) Q8 Q1 Q8 0 Q2(S3/0) Q5 Q5 Q5 0 Q3(S4/0) Q7 Q3 Q1 0 Q4(S5/0) Q4 Q2 Q3 0 Q5(S1/1) Q6 Q3 Q2 1 Q6(S2/1) Q8 Q1 Q8 1 Q7(S3/1) Q5 Q5 Q5 1 Q8(S4/1) Q7 Q3 Q1 1

Hình 2.14. Bảng trạng thái Moore ứng với bảng hình 3.4

Q1/0

α+β+γ β

α

γ

Hình 2.15. Đồ hình Moore

Q2/0 Q3/0 Q4/0

Q5/1 Q6/1 Q7/1 Q8/1

β β α

α β

α

α+γ α+β+γ

β

α+γ

γ

γ

γ

Khối bắt đầu- đặt giá trị ban đầu

Khối bắt đầu Khối thực hiện

Khối thực hiện công việc

Hình 2.16: Ký hiệu các khối lưu đồ

Khối kết thúc

Khối kết thúc công việc

Điều kiện

Khối kiểm tra điều kiện và ra quyết định

Page 25: Bai giang dieu khien logic

25

Từ lưu đồ thuật toán ta dễ dàng chuyển thành đồ hình trạng thái Mealy hoặc Moore và từ đó ta có thể thiết kế được mạch trình tự.

Ví dụ, cho đồ hình trạng thái hình 2.17a, hãy chuyển thành đồ hình trạng thái Moore và viết phương trình mạch của hệ.

Việc chuyển từ lưu đồ thành đồ hình Moore được thực hiện qua các bước sau:

Bước 1: Kết hợp khối bắt đầu và khối kết thúc thành một trạng thái, nếu như khi trạng thái kết thúc quay về trạng thái đầu.

Bước 2: Mỗi khối thực hiện đều là một trạng thái.

Bước 3: Xây dựng đồ hình trạng thái Moore với các đỉnh là các trạng thái, còn cung là các biến gây ra chuyển trạng thái.

Hình 2.17. Ví dụ chuyển từ lưu đồ hình Moore

(d)

111

100

011

110

000 010

Z2

Q1

Q1

Q2

Q1 Q1Q2

Q1Q2Q3

Q2Q3

Q1

a

Q3

6

Z2 Z1

Z3

Z2

Z3

a.b

a.b

1 c.d

a

a

a

(b) c+d

5

3

2 1

1

1

4

Bắt đầu

0

Z1

a 1

(a)

b

Z2

0 1

Z2

0 c

1

Z3

a 1

0

d 0

Z2

1

Kết thúc

Q3 Q1Q2

(c)

00 01 11 10

0 1 2 3 4

1 6 5

Page 26: Bai giang dieu khien logic

26

Bước 4: Xây dựng đồ hình nhị phân với các đỉnh là các số nhị phân hệ 2 và cung là các biến mã hoá trạng thái.

Bước 5: Viết phương trình mạch.

Với 5 bước như trên ta có thể phân tích quá trình thực hiện chuyển từ lưu đồ đã cho ở hình 3.14a thành đồ hình Moore như ở hình 2.17b.

Trạng thái 1:Là kết hợp trạng thái “ban đầu và kết thúc” lúc này có điều kiện đầu ra là a.

Trạng thái 2: ứng với công việc Z1, theo lưu đồ để chuyển 1 → 2 cần ab Trạng thái 3: ứng với công việc Z2, theo lưu đồ để chuyển 2 → 3 là liên tục. Trạng thái 4: ứng với công việc Z2, theo nhánh lưu đồ b=1, để chuyển 1→4 cần ab. Trạng thái 5: ứng với công việc Z3, theo lưu đồ để chuyển 3 → 5 cần a+ d . Trạng thái 6: ứng với công việc Z3, theo nhánh lưu đồ a = 0, để chuyển 5→6 cần a

Ngoài một số trạng thái có các cung quay về đỉnh 1, tất cả đề được thể hiện trên hình 2.17b.

Chọn biến đầu vào: Vì có 6 trạng thái cần 3 biến đầu vào Q1, Q2,Q3 tổ hợp các biến Q1Q2Q3 để xác định các trạng thái như hình 2.17c.

Gán giá trị nhị phân cho đồ hình Moore. Theo luật chung, giưa hai trạng thái kề nhau chỉ được thay đổi một biến, còn việc thay đổi trạng thái vượt cấp các trạng thái đều phải thay đổi của tổ hợp nhiều biến (hình 2.17d).

Viết phương trình mạch. Dựa vào hình 2.17b và 2.17d. ta sẽ viết được hàm của các biến Q1, Q2,Q3 và các tín hiệu ra Z1, Z2,Z3 mỗi tín hiệu vào và tín hiệu ra đều là tổ hợp của tất cả trạng thái và các biến kích thích trong lưu đồ hình 2.17a.

Q1 = ab� + � + c d� +4+� Q2 = a b� + c d� +a�+� Q3 = (c+ d )� +a�+� Z1 =�; Z2= � +�; Z3=�+�. 2.6.Tổng hợp mạch trình tự Bài toán tổng hợp mạch trình tự là bài toán khó, hơn nữa từ một yêu cầu đề ra lại có nhiều cách giải quyết khác nhau. Do vậy, vấn đề chung ở đây là phải dựa vào một chỉ tiêu tối ưu nào đó, đồng thời để tìm được lời giải tối ưu thì ngoài các suy luận toán học logic người thiết kế còn phải tận dụng các kinh nghiệm thực tế rất đa dạng và phong phú. Trong phần này ta chỉ nêu một số bước thực hiện chung và một số ví dụ minh hoạ.

2.6.1. Tổng hợp theo phương pháp bảng trạng thái Trình tự chung của các bước như sau:

Page 27: Bai giang dieu khien logic

27

1. Thành lập bảng chuyển trạng thái. Thực chất là việc diễn đạt các yêu cầu kỹ thuật thành ký hiệu kiểu bảng.

2. Thành lập bảng kích thích và bảng đầu ra.

3. Tìm hàm logic tối giản và chọn mạch.

Ta xét ví dụ: Hãy thiết kế một mạch đèn tín hiệu (đèn L) để báo hiệu trạng thái làm việc không bình thường của một hệ gồm hai chuyển động với yêu cầu sau: Nếu mạch khởi động đúng theo trình tự chuyển động 1 trước, chuyển động 2 sau và dừng theo đúng trình tự chuyển động 2 trước, chuyển động 1 sau thì đèn L không sáng (làm việc bình thường). Nếu mạch khởi động hoặc dừng sai trình tự trên thì đèn L sẽ sáng (báo làm việc không bình thường).

Cách làm:

Bước 1: Thành lập bảng chuyển trạng thái.

Ta mã hoá trạng thái như sau:

X1- tín hiệu báo trạng thái của chuyển động 1.

X2- tín hiệu báo trạng thái của chuyển động 2.

Y - tín hiệu ra (tín hiệu kết quả của x1, x2).

Bảng chuyển trạng thái đầy đủ như hình 2.18. Trong bảng này các cột là các tổ hợp biến của tín hiệu vào x1, x2, cột cuối cùng là Y, có 7 hàng hiển thị 7 trạng thái của hệ (S1 ÷S7).

Để thiết lập được bảng trạng thái (hình 2.18) ta tuần tự xét từng tổ hợp biến với tín hiệu ra, cụ thể là:

Trạng thái S1 (dòng 1): Ở tổ hợp biến vào x1x2 = 00, hệ thống chưa làm việc, tín hiệu ra Y = 0, đó là trạng thái ổn định.

Trạng thái S2 (dòng 2): Lúc này x1x2 = 10, hệ thống làm việc với chuyển động 1 khởi động trước - đúng yêu cầu, trạng thái ổn định và Y = 0.

Trạng thái S3 (dòng 3): Từ trạng thái 2, chuyển sang x1x2 = 11 - đúng trình tự, đó là trạng thái ổn định và Y = 0.

Trạng thái S4 (dòng 4): Từ trạng thái 3, chuyển sang x1x2 = 01 - sai trình tự, đó là trạng thái ổn định và Y = 1.

Trạng thái S5 (dòng 5): Từ trạng thái 4, chuyển sang x1x2 = 00 - sai trình tự, đó là trạng thái ổn định và Y = 1.

x1x2 Trạng thái

00

01

11

10

Y

S1 � 4 - 2 0 S2 1 - 3 � 0 S3 - 4 � 2 0

S4 5 � 6 - 1 S5 � 4 - 7 1 S6 - 4 � 7 1 S7 5 - 6 � 1

Hình 2.18

Page 28: Bai giang dieu khien logic

28

Trạng thái S6 (dòng 6): Từ trạng thái 5, hệ làm việc sai, chuyển sang tác động đồng thời x1x2 = 11 - sai trình tự, là trạng thái ổn định và Y = 1.

Trạng thái S7 (dòng 7): Từ trạng thái 6, hệ đang ở trạng thái sai, chuyển sang tác động để x1x2 = 10 - vẫn ở trạng thái sai, là trạng thái ổn định và Y = 1.

Bằng lý giải tương tự ta tìm ra các trạng thái không ổn định và điền đầy các trạng thái vào bảng (hình 2.18).

Từ bảng trạng thái (hình 2.18) ta thấy hệ thống tồn tại các trạng thái khác nhau trong cùng một cột có kết quả đầu ra ngược nhau, khi có cùng một tổ hợp biến vào (trạng thái 1, 5 với x1x2 = 00, trạng thái 3, 6 với x1x2 = 11, trạng thái 2, 7 với x1x2 = 10). Để phân lập các trạng thái mâu thuẫn đó, hệ thống phải sử dụng các biến nội bộ, đó chính là ý nghĩa của mạch logic trình tự.

Trước khi chọn các biến phụ, ta tìm các rút gọn các hàng của bảng (hình 3.10). Nguyên tắc rút gọn là 2 hàng tương đương nhau thì rút gọn thành một hàng. Hai hàng được coi là tương đươg nhau khi có số trạng thái và kết quả đầu ra như nhau, hoặc có thể suy ra được nhau. Và như vậy từ bảng trạng thái hình 2.18 ta có thể rút gọn lại thành bảng trạng thái hình 2.19.

Bước 2: Thành lập bảng kích thích và bảng tín hiệu ra.

Với bảng chuyển trạng thái (hình 2.19), chỉ có 2 hàng, để phân biệt 2 hàng chỉ cần một biến nội bộ. Ta chọn biến nội bộ đó là y.

Với 3 biến x1, x2 và y, ta lập bảng trạng thái dạng bảng Karnaugh như ở hình 2.20, từ bảng trên hình 2.20 ta lập bảng kích thích (hình 2.21).

Bảng tín hiệu ra lúc này quá đơn giản,không cần phải lập nữa, ta chọn luôn: L = y

Bước 3: Viết phương trình hàm ra và vẽ sơ đồ.

Từ bảng hình 2.19 ta có: Y = 1x x2 + y

Từ 2 phương trình trên ta thiết kế được sơ đồ mạch rơ le như hình 2.22.

x1x2

Trạng thái

00

01

11

10

Y

S1, S2, S3 � 4 � � 0 S4, S5, S6, S7 � � � � 1

Hình 2.19

Hình 2.20

x1x2 y

00

01

11

10

0 0 0 0

1 0 0 0 0

Hình 2.21

x1x2 y

00

01

11

10

0 0 1 0 0

1 1 1 1 1

Y

Y L

X1 X2

Hình 2.22

Page 29: Bai giang dieu khien logic

29

2.6.2.Tổng hợp theo phương pháp đồ hình Mealy hoặc Moore Việc tổng hợp các mạch trình tự bằng đồ hình Mealy hoặc Moore được tiến hành theo các bước như sau:

o Bước 1: Vẽ đồ hình trạng thái

o Bước 2: Xác định số lượng phần tử nhớ (bộ thời gian, mạch lật). Mã hoá các trạng thái trong.

o Bước 3: Xác định hàm kích thích các mạch lật và hàm tín hiệu ra.

2.7. Ví dụ về mạch trình tự Ví dụ 1: Giả thiết có mạch trình tự được biểu diễn như sơ đồ hình 2.23a

Để mô tả hoạt động của mạch, ở đây ta sử dụng biểu đồ đóng mở (hình 2.23b). Trên biểu đồ, chiều ngang biểu thị thời gian, chiều đứng thể hiện tất cả các đại lượng vào ra của mạch, nét đậm biểu hiện tín hiệu có giá trị 1, còn nét mảnh biểu hiện tín hiệu có giá trị 0. Từ biểu đồ ta thấy rằng, trạng thái Z = 1 chỉ đạt được khi theo trình tự x1=1, tiếp theo x2=1. Nếu cho x2=1 trước, sau đó cho x1=1 thì cả Y và Z đều không thể bằng 1. Ở đây tồn tại 3 tổ hợp ổn định lâu dài của Y và Z, đó là:

Y.Z = 00, 10, 11.

Để mô tả hoạt động của mạch người ta có thể dùng các phương pháp khác như bảng chuyển trạng thái, đồ hình trạng thái,…

a

Y

Z

x1 x2

x2

y

y

x1

x2

Y

Z

1 2 1 2 3 2 1 4 5 2 1

1 2 3 4 5 6 7 8 9 10 b

Hình 2.23. Sơ đồ mạch trình tự và biểu đồ đóng mở

Page 30: Bai giang dieu khien logic

30

Chương 3 HỆ ĐIỀU KHIỂN LOGIC KHẢ TRÌNH PLC

3.1. Khái niệm chung PLC viết tắt của Programmable Logic Controller là thiết bị điều khiển logic lập trình

được (khả trình) cho phép thực hiện linh hoạt các thuật toán điều khiển logic thông qua một ngôn ngữ lập trình

PLC được cấu thành từ hai phần chính:

+ Phần cứng: Được cấu tạo nên bởi vi xử lý, ROM, RAM

+ Phần mềm: Thực chất là một ngôn ngữ dịch để tạo ra ngôn ngữ lập trình gần con người nhất và tối giản nhất, nó có nhiệm vụ chỉ ra các thiết bị được sử dụng với địa chỉ cụ thể và chức năng với thông số cụ thể cũng như cách nối các thiết bị với nhau. Phần mềm này cho phép ta lập được chương trình điều khiển theo công nghệ có thể thực hiện trên máy tính PC hoặc trên máy lập trình PG sau đó chuyển chương trình vào bộ nhớ RAM.

3.2.Cấu tạo của PLC Với PLC là một hệ vi xử lý có chức năng chuyên dụng hơn, chủ yếu giải quyết việc

điều khiển logic nhưng để tận dụng khả năng của vi xử lý còn có thêm một số chức năng như: thực hiện các phép tính số học, thực hiện các phép so sánh và tạo nên các hàm trong điều khiển quá trình và cũng có thể sử dụng tín hiệu vào dạng logic, dạng số mã nhị phân hoặc dạng tương tự. Muốn vậy trong PLC có các khối cơ bản sau:

3.2.1. Khối điều hành: Chương trình điều hành

Khối này dưới chương trình điều hành hệ thống và phân chia các bộ nhớ với các địa chỉ cố định đặt trước tạo nên các vùng nhớ cụ thể như: vùng nhớ chương trình điều khiển, vùng nhớ biến trung gian, vùng nhớ cho tín hiệu vào và tín hiệu ra cũng như các chương trình giám sát kiểm tra hệ thống. Khối này thường sử dụng bộ nhớ ROM.

3.2.2. Khối chương trình:

Khối này lưu giữ toàn bộ chương trình điều khiển của PLC và khối này được thực hiện bằng bộ nhớ RAM, chương trình được ghi vào hoàn toàn chủ động do người sử dụng, tương ứng với công nghệ. Trong quá trình thực hiện trong PLC thì chương trình này được gọi ra lần lượt từ câu lệnh đầu tiên đến cuối cùng, khi đó nó chỉ dẫn cho vi xử lý thực hiện các phép thao tác toán học để lấy tín hiệu vào và gửi tín hiệu ra.

3.2.3. Khối ảnh vào ra:

Đây cũng là một phần bộ nhớ RAM nó được khối điều hành địa chỉ hoá và giao nhiệm vụ chỉ làm việc với các đầu vào và đầu ra của PLC, nó làm việc theo nguyên tắc: Khi có lệnh ghi tín hiệu vào thì khối bảng ảnh vào sẽ ghi giá trị tức thời của các cửa lúc đó và kết

Page 31: Bai giang dieu khien logic

31

quả xử lý ở đầu ra không được đưa thẳng ra đầu ra mà được ghi kết quả lại ở bảng ảnh ra và chờ tới khi được lệnh chuyển tới đầu ra thì tín hiệu này mới được đưa ra ngoài.

3.2.4. Cửa (cổng) truyền thông:

Cửa này dùng để truyền thông tin giữa PLC với các thiết bị bên ngoài như: máy lập trình, máy tính cá nhân hoặc để nối mạng trong hệ PLC thông tin được truyền theo kiểu nối tiếp và quá trình truyền được chuẩn hoá qua cáp ghép nối RS232, RS485.

3.2.5. Khối số học:

Trong PLC ngoài việc xử lý các phép tính logic còn có thêm khả năng xử lý các phép tính số học hoặc so sánh tín hiệu tương tự biến đổi từ đó tạo nên được các hàm dùng trong điều khiển quá trình chẳng hạn như PID. Muốn vậy trong PLC có 2 thanh ghi tích luỹ ký hiệu ACCU1, ACCU2. Đây là hai thanh ghi mỗi thanh 16 bit chia làm 2 byte: byte cao và byte thấp. Quá trình thực hiện các phép tính số học hoặc so sánh được thực hiện trên hai thanh ghi này theo nguyên tắc dữ liệu đầu tiên sẽ được chuyển vào ACCU1 khi đó dữ liệu cũ trên ACCU1 được đẩy sang ACCU2 và thực hiện các phép tính (+), (-), (x), (:) hoặc so sánh được thực hiện qua câu lệnh, kết quả phép tính được ghi lại trên ACCU1

3.2.6. Khối vi xử lý:

Làm nhiệm vụ đọc chương trình trong khối chương trình và chương trình chỉ dẫn làm gì thì vi xử lý sẽ điều chỉnh các khối khác làm theo chức năng. Chẳng hạn: Lúc nào thì ghi dữ liệu vào và xử lý dữ liệu này theo thuật toán nào và khi nào thì chuyển ra ngoài...

3.2.7. BUS:

Trong PLC những thông tin cần ghép nối như giữa khối điều khiển trung tâm CPU, cơ sở với các khối bên ngoài mở rộng hoặc giữa PLC với bộ nhớ cứng EPROM cũng như giữa vi xử lý với các bộ nhớ ROM, RAM được thực hiện bằng các dây nối, đó là cơ cấu các hệ thống bus. Người ta phân biệt hệ thống bus thành 3 nhóm chức năng:

+ Bus số hiệu: Tín hiệu truyền trên đó theo 2 chiều

+ Bus địa chỉ: Tín hiệu chỉ truyền theo 1 chiều từ CPU tới (hoặc từ thiết bị điều khiển trực tiếp - DMAC), bộ nhớ hoặc cửa vào ra.

+ Bus các tín hiệu điều khiển: Gồm một số là tín hiệu gửi từ CPU ra còn một số lại là tín hiệu gửi từ ngoài vào CPU.

3.3. Sơ đồ cấu trúc PLC Phần cơ bản của PLC là hệ vi xử lý với một bộ xử lý trung tâm (CPU), cùng với các bộ nhớ, các thiết bị ghép nối vào ra, biên dịch chương trình điều khiển. Bên ngoài PLC có một bộ các đầu vào (input) và một bộ các đầu ra (output) để ghép nối với các thiết bị điều khiển, nhận các thông tin điều khiển và cho ra các lệnh điều khiển hệ thống. Các tín hiệu vào, ra của PLC ngoài dạng tín hiệu lôgic (tín hiệu số - digital) thì trong các PLC hiện nay thường

Page 32: Bai giang dieu khien logic

32

có cả tín hiệu vào và ra dạng tương tự (analog). Các tín hiệu vào dạng digital của PLC có thể tín hiệu từ các nút ấn điều khiển; tín hiệu từ các công tắc hành trình, cực hạn; tín hiệu từ các thiết bị báo động, v.v... Các tín hiệu tương tự đưa đến đầu vào PLC có thể là các tín hiệu về các tham số công nghệ, v.v... Tín hiệu ra của PLC thường được dùng để khống chế các rơ le và cũng có thể là một tín hiệu tương tự để điều khiển một hệ thống liên tục nào đó.

Sơ đồ cấu trúc một PLC có dạng như hình 3.1

3.4. Nguyên lý làm việc PLC làm việc theo nguyên tắc các chu kỳ lặp tự động, mỗi chu kỳ lặp được gọi là một vòng quét. Mỗi vòng quét có một lần nhận dữ liệu vào và đưa kết quả ra bên ngoài, khi hết vòng quét thứ nhất thì tự động chuyển sang vòng quét thứ hai và cứ tiếp tục như vậy.

Trong một vòng quét thực hiện 4 bước:

+ Bước 1: Nhận dữ liệu đầu vào ghi lại bảng ảnh vào.

+ Bước 2: Đọc chương trình điều khiển trên cơ sở dữ liệu vào đã có (cố định) xử lý theo chương trình được kết quả ghi lại bảng ảnh ra.

+ Bước 3: Thực hiện truyền thông trong PLC hoặc các PLC với nhau cũng như thông tin qua lại với máy tính, từ đó kiểm nghiệm lại kết quả.

+ Bước 4: Gửi kết quả từ bảng ảnh ra đến thiết bị chấp hành bên ngoài.

Như vậy để thực hiện một chu kỳ quét mất một khoảng thời gian, thời gian này càng nhỏ càng tốt, nhưng phụ thuộc vào tốc độ xử lý của mỗi loại vi xử lý nằm trong PLC và thời gian được đặt cố định do nhà chế tạo. Vì vậy chương trình điều khiển nên lập sao cho càng ngắn càng tốt.

PLC

(Vi xử lý - Chương trình logic - Các hàm chức năng)

Đầu vào (Input)

Đầu ra (Output

Nút điều khiển (PB)

Chuyển mạch

Tín hiệu báo động

Tham số công nghệ

Đèn tín hiệu

Rơle, Công tắc tơ Van

Hình 3.1

Page 33: Bai giang dieu khien logic

33

3.5. Ưu nhược điểm 3.5.1. Ưu điểm:

+ Với một hệ điều khiển được tạo lập bởi PLC có ưu điểm nổi bật là hoàn toàn chủ động kết hợp với phần cứng và chương trình phần mềm để tạo nên một hệ điều khiển với công nghệ bất kỳ mà không cần phải thay đổi phần cứng vì tất cả các thiết bị được sử dụng trong hệ đều thông qua chương trình phần mềm và chúng được ghép nối với nhau cũng qua phần mềm, chính vì vậy làm cho quá trình cải tiến thay đổi hoàn chỉnh và sửa chữa rất đơn giản, chỉ cần thay đổi phần mềm tức là sẽ tạo nên được hệ điều khiển là tối ưu mà các hệ điều khiển logic trước không có được.

+ Với hệ điều khiển dùng PLC vừa có thể tiến hành hiệu chỉnh sửa chữa nhưng hệ thống vẫn làm việc tức là vẫn đảm bảo dây chuyền công nghệ không bị dừng, vì vậy nó cho phép hiệu chỉnh dể đạt được chất lượng hiệu chỉnh là tối ưu.

3.5.2. Nhược điểm: + Do hệ điều khiển dùng PLC rất thuận lợi trong việc hiệu chỉnh thay đổi thông số

cũng như thay đổi hàm điều chỉnh do đó người sử dụng phải am hiểu và khi thay đổi chương trình không đúng thì dễ làm rối loạn dây chuyền vì vậy gây khó khăn cho người quản lý.

+ Do công suất đầu ra của PLC nhỏ, thường cửa ra có I ≤ 500 mA vì vậy để phối ghép với thiết bị bên ngoài có công suất lớn thường phải sử dụng các thiết bị biến đổi trung gian như các rơ le hoặc công tắc tơ.

+ Do điện áp sử dụng trên PLC thấp vì vậy để đảm bảo an toàn phải có biện pháp cách ly với điện áp lưới.

+ Để thực hiện lập được chương trình điều khiển bắt buộc phải có máy tính hoặc máy lập trình đi kèm với các cáp chuẩn hoá.

3.6. Ứng dụng: Với PLC có các địa chỉ ứng dụng như sau:

+ Với các dây chuyền sản xuất tự động như công nghệ chế biến và bao bì thực phẩm, công nghệ cán kéo thép, công nghệ sản xuất xi măng và các dây chuyền sản xuất tự động khác. Trong các hệ này thường dùng các PLC có trữ lượng điều khiển lớn.

+ Trên thiết bị của máy tự động ta dùng PLC để thực hiện tự động khống chế theo công nghệ và quyết định các chế độ làm việc một cách có hiệu quả nếu công nghệ có mạch tự động khống chế phức tạp như phay, bào giường... và các hệ điều khiển tự động quá trình khởi động động cơ công suất lớn.

3.7. Trình tự thiết kế hệ điều khiển logic ứng dụng PLC Để tạo nên một hệ điều khiển logic dùng PLC ta phải qua các bước:

Page 34: Bai giang dieu khien logic

34

+ Xuất phát từ yêu cầu công nghệ ta phải tính toán thiết kế ra hàm điều khiển logic.

+ Xuất phát từ công nghệ và hàm logíc đã có ta phải xác định được các sensor để tạo nên các biến đầu vào.

+ Từ các sensor đã chọn ta tiến hành chuẩn hoá tin hiệu nếu cần (tín hiệu sensor chưa phù hợp với tín hiệu cửa vào PLC)

+ Tiến hành lập trình và chọn loại PLC để đáp ứng cho hệ. Sau khi đổ chương trình vào PLC ta phải tiến hành chạy thử bằng cách tạo tín hiệu giả.

+ Khi có chương trình điều khiển thì chúng ta sẽ nối các sensor và các đối tượng vào PLC, tiến hành chạy thử trên thiết bị thực, trong quá trình chạy thử ta sẽ hiệu chỉnh tinh các thông số công nghệ.

+ Ghi chương trình đã được hiệu chỉnh vào EPROM (với loại PLC có cửa cắm EPROM để lưu chương trình)

Các hệ thống điều khiển logic có thể được phân theo sơ đồ sau (hình 3.2):

HTĐKLG

Mạch cứng Bộ nhớ , lập trình

Mạch nối cứng (Rơle , nam

châm điện-TB điện từ)

Bảng nối cắm (Các mạch điện tử-bán dẫn AND

OR ,...)

Bộ nhớ thay đổi được

TB lập trình được

PLC (Vi xử lý)

Hình 3.2

Page 35: Bai giang dieu khien logic

35

Chương 4 LẬP TRÌNH CHO PLC S7 - 200

4.1. Sơ đồ cấu trúc của PLC 4.1.1. Cấu hình cứng S7-200 là thiết bị điều khiển logic khả trình của hãng Siemens (CHLB Đức), có cấu trúc theo kiểu module và có các modulee mở rộng. Các module này được sử dụng cho nhiều những ứng dụng lập trình khác nhau. S7-200 được cấu tạo theo các module trong đó module chính là module chứa CPU có địa chỉ cửa vào ra, còn các module mở rộng có thể là tương tự hoặc số và địa chỉ hoàn toàn phụ thuộc vào kiểu module và vị trí của module trong hệ vì vậy không ghi địa chỉ.

Thành phần cơ bản của S7 - 200 là khối vi xử lý CPU 212 hoặc CPU 214. Về hình thức bên ngoài, sự khác nhau của hai loại CPU này nhận biết được nhờ số đầu vào/ra nguồn cung cấp.

- CPU 212 có 8 cổng vào, 6 cổng ra và có khả năng được mở rộng thêm bằng 2 module mở rộng.

- CPU 214 có 14 cổng vào và 10 cổng ra và có khả năng được mở rộng thêm bằng 7 module mở rộng.

S7-200 có nhiều loại module mở rộng khác nhau.

CPU 212 bao gồm

+ 512 từ đơn tức là 1KB để lưu chương trình thuộc miền bộ nhớ đọc/ghi được và không bị mất dữ liệu nhờ có giao diện với EPROM.

+ Có 8 cổng vào logic và 6 cổng ra logic.

+ Có thể ghép nối thêm 2 module để mở rộng số cổng vào/ra, bao gồm cả module tương từ (analog).

+ Tổng số cổng logic vào/ra cực đại là 64 cổng vào và 64 cổng ra.

+ Có 64 bộ tạo thời gian trễ

+ Có 64 bộ đếm, chia làm hai loại: loại bộ đếm chỉ đếm tiến và loại vừa đếm tiến vừa đếm lùi.

+ 368 bít nhớ đặc biệt, sử dụng làm các bít trạng thái hoặc các bít đặt chế độ làm việc.

+ Có các chế độ ngắt và xử lý tín hiệu ngắt khác nhau bao gồm ngắt truyền thông, ngắt theo sườn lên hoặc sườn xuống, ngắt theo thời gian và ngắt báo hiệu của bộ đếm tốc độ cao (2 KHz).

Page 36: Bai giang dieu khien logic

36

+ Bộ nhớ không bị mất dữ liệu trong khoảng thời gian 50h khi PLC bị mất nguồn nuôi.

CPU 214 bao gồm

+ 2048 từ đơn (4KB) để lưu chương trình thuộc miền bộ nhớ đọc/ghi được và không bị mất dữ liệu nhờ có giao diện với EEPROM.

+ Có 14 cổng vào và 10 cổng ra logic

+ Có 7 module để mở rộng thêm cổng vào/ra bao gồm cả module analog.

+ Tổng số cổng vào ra cực đại là 64 cổng vào và 64 cổng ra.

+ Có 128 bộ tạo thời gian trễ.

+ Có 128 bộ đếm chia làm hai loại chỉ đếm tiến và vừa đếm tiến vừa đếm lùi.

+ Có 688 bít nhớ đặc biệt dùng để thông báo trạng thái và đặt chế độ làm việc.

+ Các chế độ ngắt và xử lý ngắt gồm ngắt truyền thông, ngắt theo sườn lên hoặc xuống, ngắt theo thời gian, ngắt của bộ đếm tốc độ cao và ngắt truyền xung.

+ Có 3 bộ đếm tốc độ cao với nhịp 2 KHz và 7 KHz.

+ Có 2 bộ phát xung nhanh cho dãy xung kiểu PTO hoặc kiểu PWM

+ Có 2 bộ điều chỉnh tương tự

+Toàn bộ vùng nhớ không bị mất giữ liệu trong khoảng thời gian 190h khi PLC bị mất nguồn nuôi.

4.1.2. Mô tả các đèn báo và công tắc - Trên S7-200 đèn báo có các loại:

+ Đèn đỏ (SF): đèn này sáng khi PLC có hỏng hóc.

+ Đèn xanh (RUN): Đèn này chỉ định PLC đang ở chế độ làm việc và thực hiện chương trình được nạp trong máy.

+ Đèn vàng (STOP) Đèn này chỉ định rằng PLC đang ở chế độ dừng. Dừng chương trình đang thực hiện lại (Có thể do người vận hành cho nghỉ hoặc trong chương trình gặp lệnh STOP hoặc trong PLC có hỏng hóc).

+ Đèn xanh I x.x: đèn xanh ở cổng vào chỉ định trạng thái tức thời của cổng Ix.x (x.x = 0.0 ÷ 1.5). Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logíc của cổng.

+ Đèn xanh Qy.y: đèn này báo hiệu trạng thái tức thời của cổng Qy.y (y.y = 0.0 ÷ 1.1), đèn này báo hiệu trạng thái của tín hiệu theo giá trị logíc cổng.

- Công tắc chọn chế độ làm việc cho PLC:

Page 37: Bai giang dieu khien logic

37

Công tắc chọn chế độ làm việc nằm phía trên, bên cạnh các cổng ra của S7 - 200 có 3 vị trí cho phép chọn các chế độ làm việc khác nhau cho PLC

+ RUN: Cho phép PLC thực hiện chương trình trong bộ nhớ. PLC S7 - 200 sẽ rời khỏi chế độ RUN và chuyển sang chế độ STOP nếu trong máy có sự cố hoặc trong chương trình gặp lệnh STOP, thậm chí ngay cả khi công tắc ở chế độ RUN. Do đó nên quan sát trạng thái thực tại của PLC theo đèn báo.

+ STOP: Cưỡng bức PLC dừng công việc thực hiện chương trình đang chạy và chuyển sang chế độ STP. ở chế độ STOP PLC cho phép hiệu chỉnh lại chương trình hoặc nạp mọt chương trình mới.

+ TERM: Cho phép máy lập trình tự quyết định một trong chế độ làm việc cho PLC hoặc ở RUN hoặc ở STOP

- Chỉnh định tương tự :Núm điều chỉnh tương tự được lắp đặt dưới nắp đậy bên cạnh các cổng vào ra. Thiết bị chỉnh định có thể quay 2700.

4.1.3. Cấu trúc bộ nhớ - Phân chia bộ nhớ : Bộ nhớ của S7 - 200 được chia thành 4 vùng với 1 tụ có nhiệm

vụ duy trì dữ liệu trong một khoảng thời gian nhất định khi mất nguồn. Bộ nhớ của S7 - 200 có tính năng động cao, đọc và ghi đuợc trong toàn vùng loại trừ các phần bít nhớ đặc biệt được ký hiệu bởi SM (special memory) chỉ có thể truy nhập để đọc.

+ Vùng chương trình: Là miền bộ nhớ được sử dụng để lưu giữ các lệnh chương trình điều khiển có thể được chuyển vào từ máy lập trình, máy tính hoặc EPROM và trong quá trình làm việc sẽ tiến hành đọc chương trình ở đây để điều khiển.

+ Vùng tham số: Là miền lưu giữ các tham số như: từ khoá, địa chỉ trạm... các thông tin này có thể được cài đặt do nhà chế tạo hoặc do người sử dụng khi muốn mã khoá chương trình.

+ Vùng dữ liệu: Vùng này được sử dụng để cất các dữ liệu của chương trình bao gồm: các kết quả của các phép tính, hằng số được định nghĩa trong chương trình, bộ đệm truyền thông... Vùng dữ liệu là một miền nhớ động, nó có thể truy nhập theo từng bít, từng byte, từng từ đơn, từ kép và được sử dụng làm miền lưu trữ dữ liệu cho các thuật toán, các hàm truyền thông, lập bảng, các hàm dịch chuyển, xoay vòng thanh ghi, con trỏ địa chỉ..

Vùng dữ liệu lại được chia ra thành những miền nhớ nhỏ với các cộng dụng khác nhau. Chúng được ký hiệu bằng các chữ cái đầu của tiếng Anh đặc trưng riêng cho công dụng của chúng như sau L:

V (Variable memory): Vùng nhớ trung gian.

I (Input image register): Vùng nhớ đầu vào.

O (Output image register): Vùng nhớ đầu ra.

Page 38: Bai giang dieu khien logic

38

M (Internal memory bits): Vùng nhớ lưu giữ.

SM (Special memory): Vùng nhớ đặc biệt.

Để truy nhập được vào vùng này ta phải ghi dịa chỉ theo nguyên tắc:

+ Truy nhập theo bít: (Tên miền) + (địa chỉ byte)+(.)+ chỉ số bít.

Ví dụ: V150.4: chỉ bít 4 của byte 150 thuộc miền V

+ Truy nhập theo byte: (Tên miền) + (B) + (địa chỉ của byte trong miền)

Ví dụ: VB150 chỉ byte 150 thuộc miền V

+ Truy nhập theo từ: (Tên miền) + (W)+(địa chỉ byte cao của từ trong miền)

Ví dụ: VW150: chỉ từ đơn gồm hai byte 150 và 151 thuộc miền V, trong đó byte 150 có vai trò là byte cao trong từ.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

VW150 VB150 (byte cao) VB151(byte thấp)

+ Truy nhập theo từ kép: (Tên miền) + (D) + (địa chỉ byte cao của từ trong miền) VD: VD150: chỉ từ kép gồm 4 byte 150, 151, 152, 153 thuộc miền V, trong đó byte 150 có vai trò là byte cao và byte 153 là byte thấp trong từ kép.

+ Vùng đối tượng: Là vùng nhớ được ký hiệu và sử dụng riêng cho các bộ đếm, các rơ le thời gian, các bộ đệm của tín hiệu vào ra tương tự và một số thanh ghi. Tương ứng với các ký hiệu ta có các vùng với các chức năng như sau:

. C+ n Vùng nhớ dành riêng cho các bộ đếm có địa chỉ n. VD: C0, C63..

. AIW + chỉ số byte cao: Vùng nhớ dành cho các bộ đệm cổng vào liên tục

. AQW + chỉ số byte thấp: Vùng nhớ dành cho các bộ đệm cổng ra liên tục.

. T + n: Vùng nhớ dành riêng cho các rơ le thời gian có chỉ số là n.

. AC + chỉ số thanh ghi: Các thanh ghi dành riêng cho vùng này (AC0 - AC3)

. HSC + chỉ số thanh ghi: Thanh ghi dành riêng cho các bộ đếm tốc độ cao (HSC0 - HSC2)

4.1.4. Mở rộng cổng vào ra (Module mở rộng) Để mở rộng khả năng điều khiển ta phải mở rộng cổng vào ra của PLC bằng cách

ghép nối thêm vào nó các module mở rộng về phía bên phải của CPU làm thành một móc xích. Địa chỉ của các vị trí của module được xác định bằng kiểu vào/ra và vị trí của module trong móc xích, bao gồm các module có cùng kiểu. Ví dụ như một module cổng ra không thể gán địa chỉ của một module cổng vào, cũng như một module tương tự không thể có địa chỉ như một module số và ngược lại.

Page 39: Bai giang dieu khien logic

39

CPU 212 có thể mở rộng thêm 2 module và CPU 214 có thể mở rộng 4 module

VD: Cách đặt địa chỉ cho các module mở rộng trên CPU 214

CPU 214 Module

4 vào /4 ra

Module

8 vào

Module

3 vào analog/1ra analog

Module 8 ra

I0.0

I0.1

I0.2

I0.3

I0.4

I0.5

I0.6

I0.7

I1.0

I1.1

I1.2

I1.3

I1.4

I1.5

Q0.0

Q0.1

Q0.2

Q0.3

Q0.4

Q0.5

Q0.6

Q0.7

Q1.0

Q1.1

I2.0

I2.1

I2.2

I2.3

Q2.0

Q2.1

Q2.2

Q2.3

I3.0

I3.1

I3.2

I3.3

I3.4

I3.5

I3.6

I3.7

AIW0

AIW2

AIW4

AQW0

Q3.0

Q3.1

Q3.2

Q3.3

Q3.4

Q3.5

Q3.6

Q3.7

4.1.5. Thực hiện chương trình Với S7 - 200 việc thực hiện chương trình cũng tương tự như các PLC khác đó là chương trình được thực hiện theo chu trình lặp, mỗi vòng lặp được gọi là một vòng quét và làm việc theo cách lặp tự động vì vậy để thực hiện chương trình thời gian đọc và xử lý phải nhỏ hơn thời gian của vòng quét và một vòng quét được chia làm 4 giai đoạn:

+ Giai đoạn 1: Nhận thông tin từ các cửa vào và nhớ tại bảng ảnh vào.

+ Giai đoạn 2: Đọc lệnh trong chương trình điều khiển và lấy thông tin có sẵn ở bảng ảnh vào, xử lý theo câu lệnh và chuyển kết quả ra bảng ảnh ra. Trong quá trình này câu lệnh được đọc lần lượt từ cấu lệnh đầu tiên đến câu lệnh cuối cùng và khi gặp lệnh kết thúc (MEND) từ động quay lại và đọc lại từ đầu

+ Giai đoạn 3: Truyền thông và tự kiểm tra lỗi.

+ Giai đoạn 4: Chuyển kết quả đã có ở bảng ảnh ra ra ngoài đại lượng điều khiển bên ngoài.

Page 40: Bai giang dieu khien logic

40

4.1.6. Cấu trúc chương trình Trong quá trình lập trình điều khiển với các chương trình đơn giản ta tiến hành lập trình từ đầu ddến cuối chỉ có một chương trình, nhưng với các hệ thống phức tạp nếu lập trình như trên rất phức tạp. Để đơn giản ta tiến hành lập trình cho từng mảng công nghệ và công trình của cả dây chuyền sẽ được liên kết bởi rất nhiều mảng với nhau, đó gọi là lập trình có cấu trúc.

Chương trình điều khiển của các mảng nếu không phụ thuộc điều khiển chỉ phụ thuộc vào chương trình gọi là chương trình con còn nếu các mảng vừa phụ thuộc vào chương trình vừa phụ thuộc vào quá trình điều khiển được gọi là chương trình ngắt.

Các chương trình cho S7 - 200 phải có cấu trúc bao gồm chương trình chính và sau đó đến các chương trình con và các chương trình ngắt được chỉ ra sau đây:

+ Chương trình chính phải được lập truớc và kết thúc bằng lệnh MEND

+ Sau chương trình chính viết các chươngtrình con và kết thúc chương trình con phải có lệnh RET. Khi gặp lệnh RET thì vi xử lý quay về chương trình chính và các chương trình con phải được ký hiệu và có địa chỉ SBR.

+ Chương trình ngắt được viết sau chương trình con khi có lệnh ngắt trong chương trình chính (điều khiển ngắt) thì chương trình sẽ vào chương trình ngắt khi làm việc xong chương trình ngắt gặp lệnh RETI thì nó tự động quay về chương trình chính tại điểm ngắt và mỗi chương trình ngắt đều phải có lệnh (INT + địa chỉ)

Main Program

MEND

Thực hiện trong một vòng quét

SBR 0 Chương trình con thứ nhất

RET

SBR n Chương trình con thứ n + 1

RET

Page 41: Bai giang dieu khien logic

41

INT 0 Chương trình xử lý ngắt thứ nhất

RETI

Thực hiện khi có tín hiệu báo ngắt

INT n Chương trình xử lý ngắt thứ n + 1

RETI

4.2 Ngôn ngữ lập trình của S7-200 4.2.1. Giới thiệu chung

Phương pháp liệt kê lệnh (Statement List viết tắt là STL) và phương pháp sơ đồ các khối chức năng (FBD). Nếu chương trình lập theo FBD thì thiết bị lập trình có thể chuyển sang dạng LAD hoặc STL tương ứng. Ngược lại không phải mọi chương trình viết ở dạng STL hoặc LAD cũng có thể chuyển sang dạng FBD. Nếu chương trình lập theo LAD thì thiết bị lập trình có thể chuyển sang dạng STL tương ứng, nhưng không phải mọi chương trình viết ở dạng STL cũng có thể chuyển sang dạng LAD. Trong phần này chúng ta nghiên cứu hai phương pháp lập trình là LAD và STL, chúng đều có sẵn trong ngôn ngữ lập trình STEP7-Micro/DOS và STEP7-Micro/WIN, còn lập trình kiểu FBD chỉ có trong STEP7-Micro/WIN. Để dễ dàng làm quen với với các thành phần cơ bản của LAD và STL ta cần nắm các định nghĩa cơ bản sau đây:

Định nghĩa về LAD: LAD là một ngôn ngữ lập trình bằng đồ hoạ. Những thành phần cơ bản dùng trong LAD tương ứng với các thành phần của bảng điều khiển bằng rơle. Trong chương trình LAD các phần tử cơ bản dùng để biểu diễn các lệnh logic như sau:

- Tiếp điểm: là biểu tượng (symbol) mô tả các tiếp điểm của rơle. Các tiếp điểm đó có thể là thường mở (–| |–) hoặc thường đóng (–|/|–).

- Cuộn dây (coil): là biểu tượng (–( )–) mô tả cuộn dây rơle

- Hộp (box): là biểu tượng mô tả các hàm khác nhau, nó làm việc khi có dòng điện chạy đến hộp. Những dạng hàm thường được biểu diễn bằng hộp là các bộ thời gian (Timer), các bộ đếm (Counter) và các hàm toán học. Cuộn dây và hộp phải được mắc đúng chiều dòng điện.

- Mạng LAD: là đường nối các phần tử thành một mạch hoàn thiện, đi từ đường nguồn bên trái sang đường nguồn bên phải. Đường nguồn bên trái là dây nóng, đường nguồn bên phải là dây trung hoà (neutral) hay là đường trở về nguồn cung cấp (Đường nguồn bên phải thường không được thể hiện khi dùng chương trình tiện dụng STEP7-

Page 42: Bai giang dieu khien logic

42

Micro/DOS hoặc STEP7-Micro/WIN). Dòng điện chạy từ trái qua các tiếp điểm đóng đến các cuộn dây hoặc các hộp trở về bên phải nguồn.

Định nghĩa về STL: Phương pháp liệt kê lệnh (STL) là phương pháp thể hiện chương trình dưới dạng tập hợp các câu lệnh. Mỗi câu lệnh trong chương trình, kể cả những lệnh hình thức biểu diễn một chức năng của PLC.

Định nghĩa về ngăn xếp logic (logic stack):

Để tạo ra một chương trình dạng STL, người lập trình cần phải hiểu rõ phương thức sử dụng 9 bit ngăn xếp logic của S7-200. Ngăn xếp logic là một khối gồm 9 bit chồng lên nhau. Tất cả các thuật toán liên quan đến ngăn xếp đều chỉ làm việc với bit đầu tiên hoặc với bit đầu và bit thứ hai của ngăn xếp. Giá trị logic mới đều có thể được gửi (hoặc được nối thêm) vào ngăn xếp. Khi phối hợp hai bit đầu tiên của ngăn xếp, thì ngăn xếp sẽ được kéo lên một bit. Ngăn xếp và tên của từng bit trong ngăn xếp được biểu diễn trên hình 4.1.

Ví dụ về ladder logic và statement list:

Hình 4.4 mô tả việc thực hiện lệnh LD (viết tắt từ Load trong tiếng Anh) đưa giá trị logic của tiếp điểm I0.0 vào trong ngăn xếp theo cách biểu diễn của LAD và STL:

LAD STL

4.2.2.Bảng tóm tắt một số lệnh cơ bản của S7-200 Hệ lệnh của S7-200 được chia làm 3 nhóm:

- Các lệnh mà khi thực hiện thì làm việc độc lập không phụ thuộc vào giá trị logic của ngăn xếp.

Hình 4.1

S0 S1 S2 S3 S4 S5 S6 S7 S8

Stack 0-bit đầu tiên hay bit trên cùng của ngăn xếp Stack 1-bit thứ hai của ngăn xếp Stack 2-bit thứ ba của ngăn xếp Stack 3-bit thứ tư của ngăn xếp Stack 4-bit thứ năm của ngăn xếp Stack 5-bit thứ sáu của ngăn xếp Stack 6-bit thứ bảy của ngăn xếp Stack 7-bit thứ tám của ngăn xếp Stack 8-bit thứ chín của ngăn xếp

I0.0 Q1.0 LD I0.0 = Q1.0

Hình 4.2

Page 43: Bai giang dieu khien logic

43

- Các lệnh chỉ thực hiện được khi bit đầu tiên của ngăn xếp có giá trị logic bằng 1.

- Các nhãn lệnh đánh dấu vị trí trong tập lệnh.

Trong các bảng lệnh còn mô tả sự thay đổi tương ứng của nội dung ngăn xếp khi lệnh được thực hiện.

Cả hai phương pháp LAD và STL đều sử dụng ký hiệu I để chỉ việc thực hiện tức thời (immediately), tức là giá trị được chỉ dẫn trong lệnh vừa được chuyển vào thanh ghi ảo vừa đồng thời được chuyển đến tiếp điểm chỉ dẫn trong lệnh ngay khi lệnh được thực hiện chứ không phải chờ tới giai đoạn trao đổi với ngoại vi của vòng quét. Điều đó khác với lệnh không tức thời là giá trị được chỉ định trong lệnh chỉ được chuyển vào thanh ghi ảo khi thực hiện lệnh.

Bảng 4.1. Một số lệnh của S7-200 thuộc nhóm lệnh thực hiện vô điều kiện

Tên lệnh Mô tả

= n Giá trị của bit đầu tiên ngăn xếp được sao chép sang điểm n chỉ dẫn trong lệnh.

= I n Giá trị của bit đầu tiên ngăn xếp được sao chép trực tiếp sang điểm n chỉ dẫn trong lệnh ngay khi lệnh được thực hiện.

A n Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bit đầu tiên của ngăn xếp.

ALD Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của bit thứ hai ngăn xếp. Kết quả được ghi lại vào bit đầu tiên ngăn xếp. Các giá trị còn lại trong ngăn xếp được kéo lên một bit.

AN n Thực hiện toán tử và (AND) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic nghịch đảo của điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bit đầu tiên của ngăn xếp.

CTU Cxx,PV

Khởi động bộ đếm tiến theo sườn lên của tín hiệu vào. Bộ đếm được đặt lại trạng thái ban đầu (reset) nếu đầu vào R của bộ đếm được kích (có mức logic 1).

CTUD Cxx,PV

Khởi động bộ đếm tiến theo sườn lên của tín hiệu đầu vào thứ nhất và đếm lùi theo sườn lên của tín hiệu đầu vào thứ hai. Bộ đếm được reset lại nếu đầu vào R của bộ đếm được kích (có mức logic 1).

LD n Nạp giá trị logic của điểm n chỉ dẫn trong lệnh vào bit đầu tiên của ngăn xếp. Các giá trị trong ngăn xếp được đẩy xuống một bit.

Page 44: Bai giang dieu khien logic

44

LDN n Nạp giá trị logic nghịch đảo của điểm n chỉ dẫn trong lệnh vào bit đầu tiên của ngăn xếp. Các giá trị trong ngăn xếp được đẩy xuống một bit.

LDW<=n1, n2 Bit đầu tiên trong ngăn xếp nhận giá trị logic 1 nếu nội dung hai từ n1 và n2 thoả mãn n1 ≤n2.

LDW = n1, n2 Bit đầu tiên trong ngăn xếp nhận giá trị logic 1 nếu nội dung hai từ n1 và n2 thoả mãn n1 = n2.

LDW>=n1, n2 Bit đầu tiên trong ngăn xếp nhận giá trị logic 1 nếu nội dung hai từ n1 và n2 thoả mãn n1 ≥ n2.

LPP Kéo nội dung ngăn xếp lên một bit. Giá trị mới của bit trên là giá trị cũ của bit dưới, độ sâu ngăn xếp giảm đi một bit (giá trị của bit đầu tiên bị đẩy ra khỏi ngăn xếp - xoá).

LRD Sao chép giá trị của bit thứ hai vào bit đầu tiên của ngăn xếp. Các giá trị còn lại từ bit thứ hai trở đi được giữ nguyên vị trí.

MEND Kết thúc phần chương trình chính trong một vòng quét.

NOT Đảo giá trị logic của bit đầu tiên ngăn xếp.

O n Thực hiện toán tử hoặc (OR) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bit đầu tiên của ngăn xếp.

OI n Thực hiện tức thời toán tử hoặc (OR) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bit đầu tiên của ngăn xếp.

OLD Thực hiện toán tử hoặc (OR) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic của bit thứ hai ngăn xếp. Kết quả được ghi lại vào bit đầu tiên của ngăn xếp. Các giá trị còn lại trong ngăn xếp được kéo lên một bit.

ON n Thực hiện toán tử hoặc (OR) giữa giá trị logic của bit đầu tiên ngăn xếp với giá trị logic nghịch đảo của điểm n chỉ dẫn trong lệnh. Kết quả được ghi lại vào bit đầu tiên của ngăn xếp.

RET Lệnh thoát khỏi chương trình con và trả điều khiển về chương trình chính đã gọi nó.

RETI Lệnh thoát khỏi chương trình xử lý ngắt (interrupt) và trả điều khiển về chương trình chính.

Page 45: Bai giang dieu khien logic

45

4.2.3. Cú pháp hệ lệnh của S7-200 Mặc dù S7-200 có một khối lượng lớn các lệnh để thực hiện các thuật toán của đại số Boolean song chỉ có một vài các kiểu lệnh khác nhau

4.2.3.1- Lệnh vào/ra * Load (LD) và Load Not (LDN)

Lệnh LD nạp giá trị logic của một tiếp điểm vào bit đầu tiên của ngăn xếp (hình 4.3), các giá trị cũ còn lại trong ngăn xếp bị đẩy lùi xuống một bit.

Lệnh LDN nạp giá trị logic nghịch đảo của một tiếp điểm vào trong bit đầu tiên của ngăn xếp (hình 4.4), các giá trị cũ còn lại trong ngăn xếp bị đẩy lùi xuống một bit.

Các dạng khác nhau của lệnh LD, LDN cho LAD

LAD Mô tả Toán hạng

Tiếp điểm thường mở sẽ được đóng nếu n = 1

n: I, Q, M, SM, T, C, V (bit)

Tiếp điểm thường đóng sẽ được mở nếu n = 1

Các dạng khác nhau của lệnh LD, LDN cho STL

Lệnh Mô tả Toán hạng

LD n

Tiếp điểm thường mở sẽ được đóng nếu n = 1

n: I, Q, M, SM, T, C, V (bit)

LDN n

Tiếp điểm thường đóng sẽ được mở nếu n = 1

Hình 4.3. Trạng thái ngăn xếp trước và sau khi thực hiện lệnh LD

c0 c1 c2 c3 c4 c5 c6 c7 c8

m c0 c1 c2 c3 c4 c5 c6 c7

bị đẩy ra khỏi ngăn xếp Hình 4.4. Trạng thái ngăn xếp trước và

sau khi thực hiện lệnh LDN

c0 c1 c2 c3 c4 c5 c6 c7 c8

∼m c0 c1 c2 c3 c4 c5 c6 c7 bị đẩy ra khỏi ngăn xếp

n

n

Page 46: Bai giang dieu khien logic

46

* OUTPUT (=) : Lệnh sao chép nội dung của bit đầu tiên trong ngăn xếp vào bit (điểm) được chỉ dẫn trong lệnh. Nội dung của ngăn xếp không bị thay đổi.

Mô tả lệnh “=” bằng LAD như sau:

LAD Mô tả Toán hạng

Cuộn dây đầu ra ở trạng thái kích thích, có dòng điều khiển đi qua nếu n = 1

n: I, Q, M, SM, T, C, V (bit)

Mô tả lệnh “=” bằng STL như sau:

Lệnh Mô tả Toán hạng

= n

Cuộn dây đầu ra ở trạng thái kích thích, có dòng điều khiển đi qua nếu n = 1

n: I, Q, M, SM, T, C, V (bit)

4.3.3.2. Lệnh ghi / xoá giá trị cho tiếp điểm SET (S) / RESET (R)

Đây là các lệnh dùng để đóng các điểm (tiếp điểm) đã được thiết kế. Trong LAD, logic điều khiển dòng điện đóng hoặc ngắt các cuộn dây đầu ra. Khi dòng điều khiển đến các cuộn dây thì các cuộn dây đóng hoặc mở các tiếp điểm (hoặc một dãy các tiếp điểm).

Trong STL, thì đây là lệnh truyền trạng thái bit đầu tiên của ngăn xếp đến các điểm thiết kế. Nếu bit này bằng 1, các lệnh S và R sẽ đóng ngắt một tiếp điểm hoặc một dãy tiếp điểm (giới hạn từ 1-255). Nội dung của ngăn xếp không bị thay đổi.

Mô tả lệnh S và R bằng LAD như sau:

LAD Mô tả Toán hạng

S _BIT n S

Đóng một mảng gồm n các tiếp điểm kể từ S_BIT

S_BIT: I, Q, M, SM, T, C, V (bit)

S_BIT n

Ngắt một mảng gồm n các tiếp điểm kể từ S_BIT. Nếu S_BIT lại chỉ vào Timer hoặc Counter thì lệnh sẽ xoá bit đầu ra của Timer/Counter đó.

n: IB, QB, MB, SMB, VB (byte)

Mô tả lệnh S và R bằng STL như sau:

Lệnh Mô tả Toán hạng

S S_BIT, n Đặt giá trị logic 1 cho một mảng gồm n bit kể từ địa chỉ S_BIT.

S_BIT: I, Q, M, SM, T, C, V (bit)

R

Page 47: Bai giang dieu khien logic

47

R S_BIT, n

Xoá một mảng gồm n bit kể từ địa chỉ S_BIT. Nếu S_BIT lại chỉ vào Timer hoặc Counter thì lệnh sẽ xoá bit đầu ra của Timer/Counter đó.

n: IB, QB, MB, SMB, VB (byte)

Ví dụ: Mô tả việc thực hiện lệnh S và R trong LAD và STL:

LAD STL

LD

=

S

R

R

I0.0 Q2.0

Q2.1,

Q2.2,

Q1.0,

1

1

3

4.23.3- Các lệnh logic đại số Boolean Các lệnh tiếp điểm đại số Boolean cho phép tạo lập được các mạch logic (không có nhớ). Trong LAD các lệnh này được biểu diễn thông qua cấu trúc mạch (mắc nối tiếp hay song song các tiếp điểm thường đóng và thường mở) Trong STL các lệnh được viết tắt như sau A (AND), O (OR), AN (AND NOT), ON (OR NOT). Giá trị ngăn xếp thay đổi phụ thuộc vào từng lệnh.

Lệnh Mô tả Toán hạng

A n O n

Lệnh thực hiện toán tử ∧ (AND) và ∨ (OR) giữa giá trị logic của tiếp điểm n và giá trị bit đầu tiên của ngăn xếp. Kết quả lại được ghi vào bit đầu tiên của ngăn xếp

n: I, Q, M, (bit) SM, T, C, V

AN n ON n

Lệnh thực hiện toán tử ∧ (AND) và ∨ (OR) giữa giá trị logic nghịch đảo của tiếp điểm n và giá trị bit đầu tiên của ngăn xếp. Kết quả lại được ghi vào bit đầu tiên của ngăn xếp

Ngoài những lệnh làm việc trực tiếp với tiếp điểm, S7-200 còn có 5 lệnh đặc biệt biểu diễn các phép tính đại số Boolean cho các bit trong ngăn xếp, được gọi là các lệnh stack logic. Đó là các lệnh ALD (And load), OLD (Or load), LPS (Logic push), LRD (Logic read), LPP (Logic pop). Lệnh stack logic được dùng để tổ hợp, sao chụp hoặc xoá các mệnh đề logic. Bảng sau tóm tắt các lệnh stack logic trong STL:

I0.0 Q2.0

Q2.1 S

Q2.2 R

Q1.0 R

1

1

3

Page 48: Bai giang dieu khien logic

48

Lệnh Mô tả Toán hạng

ALD

Lệnh tổ hợp giá tri logic của bit đầu tiên và bit thứ hai của ngăn xếp bằng phép tính ∧ (AND). Kết quả được ghi lại vào bít đầu tiên của ngăn xếp, giá trị còn lại của ngăn xếp được kéo lên một bit.

Không có

OLD

Lệnh tổ hợp giá tri logic của bit đầu tiên và bit thứ hai của ngăn xếp bằng phép tính ∨ (OR). Kết quả được ghi lại vào bít đầu tiên của ngăn xếp, giá trị còn lại của ngăn xếp được kéo lên một bit.

Không có

LPS

Lệnh Logic Push thực hiện sao chụp giá trị logic của bit đầu tiên ngăn xếp vào bit thứ hai. Giá trị còn lại trong ngăn xếp bị đẩy xuống 1 bit. Bit cuối cùng bị đẩy ra khỏi ngăn xếp.

Không có

LRD

Lệnh thực hiện sao chụp giá trị logic của bit thứ hai ngăn xếp vào bit đầu tiên. Giá trị còn lại trong ngăn xếp được giữ nguyên vị trí.

Không có

LPP

Lệnh kéo ngăn xếp lên 1 bit. Giá trị của bit sau được chuyển cho bit trước. Giá trị cũ của bit đầu tiên bị đẩy ra ngoài.

Không có

A và O: Tác động của lệnh A và O vào ngăn xếp:

Mô tả lệnh A và O ở dạng LAD và STL: Hình 4.5. Trạng thái ngăn xếp trước và sau khi thực hiện lệnh A và O

c0

c1

c2

c3

c4

c5

c6

c7

c8

m

c1

c2

c3

c4

c5

c6

c7

c8

Lệnh A Trước Sau

c0

c1

c2

c3

c4

c5

c6

c7

c8

m

c1

c2

c3

c4

c5

c6

c7

c8

Lệnh O Trước Sau

m = c0 ∧ n m = c0 ∨ n

Page 49: Bai giang dieu khien logic

49

LAD STL

LD A =

I0.1 I0.2 Q1.0

LD O =

I1.1 I1.2 Q1.1

ALD và OLD: Tác động của lệnh ALD và OLD vào ngăn xếp:

Ví dụ: Mô tả lệnh OLD ở dạng LAD và STL:

LAD STL

LD LD A OLD =

I0.1 I0.2 I0.3 Q1.4

I0.1 Q1.I0.2

Hình 4.6. Trạng thái ngăn xếp trước và sau khi thực hiện lệnh ALD và OLD

c0 c1 c2 c3 c4 c5 c6 c7 c8

m c2 c3 c4 c5 c6 c7 c8

Lệnh ALD Trước

c0 c1 c2 c3 c4 c5 c6 c7 c8

m c2 c3 c4 c5 c6 c7 c8

Lệnh OLD Trước

m = c0 ∧ c1 m = c0 ∨ c1

I0.1 Q1.4

I0.2 I0.3

Hình 4.7. Trạng thái ngăn xếp trước và sau khi thực hiện các lệnh ở bảng trên

c0 c1 c2 c3 c4 c5 c6 c7 c8

Ngăn xếp m = I0.1

c0 c1 c2 c3 c4 c5 c6 c7

LD I0.1 I0.2 I0.1 c0 c1 c2 c3 c4 c5 c6

LD I0.2 I0.2∧I0.3

I0.1 c0 c1 c2 c3 c4 c5 c6

A I0.3 m∨I0.1

c0 c1 c2 c3 c4 c5 c6

OLD m1=

I1.1 Q1.

I1.2

Page 50: Bai giang dieu khien logic

50

LPS, LRD, LPP

Các lệnh này thực hiện sao chép, thay đổi nội dung bit đầu tiên hoặc bit thứ hai của ngăn xếp và được mô tả như sau:

Ví dụ: Các lệnh Logic stack ở dạng LAD và STL:

LAD STL

LD LD LD A OLD ALD =

I0.0 I0.1 I0.2 I0.3 Q1.0

Hình 4.8. Trạng thái ngăn xếp trước và sau khi thực hiện lệnh các lệnh LPS, LRD, LPP

c0 c1 c2 c3 c4 c5 c6 c7 c8

c0 c0 c1 c2 c3 c4 c5 c6 c7

Lệnh LPS Trước Sau

c0 c1 c2 c3 c4 c5 c6 c7 c8

c1 c1 c2 c3 c4 c5 c6 c7 c8

Lệnh LRD Trước Sau

c0 c1 c2 c3 c4 c5 c6 c7 c8

c1 c2 c3 c4 c5 c6 c7 c8

Lệnh LPP Trước Sau

I0.1 Q1.0

I0.2 I0.3

I0.0

Page 51: Bai giang dieu khien logic

51

LD LPS LD O ALD = LRD LD O ALD = LPP LD ON ALD =

I0.0 I0.1 Q2.0 Q2.0 I0.2 Q2.3 Q2.3 I0.3 I0.4 Q2.4

4.2.3.4. Các lệnh so sánh và di chuyển nội dung ô nhớ:

STL Mô tả Toán hạng

LDW>= AW>= OW>=

n1 n1 n1

n2 n2 n2

Lệnh thực hiện phép tính logic Load, And hoặc Or giữa giá trị 1 với nội dung của đỉnh ngăn xếp khi nội dung 2 từ n1, n2 thoả mãn n1 ≥ n2.

n1, n2 (từ): VW, T, C, IW, QW, MW, SMW..

MOVW IN OUT Lệnh sao chép nội dung từ đơn IN sang từ đơn OUT.

IN, OUT (từ đơn): VW, T, C, IW, QW

4.2.3.5. Các lệnh làm việc với Timer: Timer là bộ tạo thời gian trễ giữa tín hiệu vào và tín hiệu ra nên trong điều khiển thường được gọi là khâu trễ. Nếu ký hiệu tín hiệu (logic) vào là x(t) và thời gian trễ là τ thì tín hiệu đầu ra của Timer là x(t-τ). Trong S7-200 có hai loại Timer khác nhau:

- Timer tạo thời gian trễ không có nhớ (On-Delay Timer), ký hiệu là TON.

- Timer tạo thời gian trễ có nhớ (Retentive On-Delay Timer), ký hiệu là TONR.

Hai Timer này phân biệt nhau bởi phản ứng của chúng đối với tín hiệu vào. Cả hai loại đều bắt đầu tạo thời gian trễ từ thời điểm có sườn lên của tín hiệu vào. Nhưng TON sẽ tự Reset khi đầu vào có mức logic 0, còn TONR thì không tự Reset khi mất tín hiệu vào. TON

I0.1 Q2.

Q2.0

I0.0

I0.2 Q2.

Q2.3

I0.3 Q2.

I0.4

Page 52: Bai giang dieu khien logic

52

được dùng để tạo thời gian trễ trong một khoảng thời gian, còn với TONR thời gian trễ được tạo ra trong nhiều khoảng khác nhau. Trong phần này ta chỉ nghiên cứu loại Timer TON.

Lệnh Độ phân giải Giá trị cực đại CPU 212 CPU 214

1 ms 32,767 s T32 T32, T96

10 ms 327,67 s T33 ÷ T36 T33 ÷ T36, T97 ÷ T100

TON

100 ms 3276,7 s T37 ÷ T63 T37 ÷ T63, T101 ÷ T127

1 ms 32,767 s T0 T0, T64

10 ms 327,67 s T1 ÷ T4 T1 ÷ T4, T65 ÷ T68

TONR

100 ms 3276,7 s T5 ÷ T31 T5 ÷ T31, T69 ÷ T95

Cú pháp khai báo Timer trong LAD và STL như sau:

LAD STL Mô tả Toán hạng

TON Txx, +n

Khai báo Timer số hiệu xx kiểu TON để tạo thời gian trễ tính từ khi đầu vào IN được kích (có mức 1). Nếu như giá trị đếm tức thời lớn hơn hoặc bằng giá trị đặt trước PT thì T-bit có giá trị logic bằng 1. Có thể Reset Timer kiểu TON bằng lệnh R hoặc bằng giá trị logic 0 ở đầu vào IN.

Txx(word): CPU 212: 32÷63 CPU 214: 32÷63 và 96÷127 PT(word): VW,T,C,IW,... n = 1÷32767 (số nguyên)

Thời gian trễ T = PT × độ phân giải, ví dụ với T33 có độ phân giải là 10 ms và PT=100 thì thời gian trễ T = 10 × 100 = 1000 ms = 1 s.

Sau đây là một ví dụ về sử dụng Timer kiểu TON:

LAD STL

Network 1 LD TON Network 2 LD =

I0.0 T33, T33 Q0.0

+100

IN PT

TON Txx

T33 Q0.0

I0.0 IN PT

TON T33

+100

Page 53: Bai giang dieu khien logic

53

Giản đồ thời gian tương ứng:

4.2.3.6. Các lệnh làm việc với Counter: Counter là bộ đếm thực hiện chức năng đếm sườn lên của xung. S7-200 có hai loại bộ đếm: bộ đếm tiến (CTU) và bộ đếm tiến/lùi (CTUD).

Bộ đếm tiến đếm số sườn lên của xung vào, tức là đếm số lần thay đổi trạng thái logic từ 0 lên 1 của tín hiệu. Số sườn xung đếm được, được ghi vào thanh ghi 2 byte của bộ đếm, gọi là thanh ghi C-word.

Nội dung của C-word, được gọi là giá trị tức thời của bộ đếm, luôn được so sánh với giá trị đặt trước của bộ đếm ký hiệu là PV. Khi giá trị đếm tức thời bằng hoặc lớn hơn giá trị đặt trước thì bộ đếm báo ra ngoài bằng cách đặt giá trị logic 1 vào bit đặc biệt của nó, được gọi là C-bit. Trường hợp giá trị đếm còn nhỏ hơn giá trị đặt trước thì C-bit có giá trị logic 0.

Khác với các Timer, các Counter đều có chân nối với tín hiệu điều khiển xoá để thực hiện đặt lại chế độ khởi phát ban đầu (reset) cho bộ đếm, được ký hiệu bằng chữ cái R trong LAD, hay được qui định là trạng thái bit đầu tiên của ngăn xếp trong STL. Bộ đếm được reset khi tín hiệu xoá này có mức 1 hoặc khi lệnh R (reset) được thực hiện với C-bit. Khi bộ đếm reset thì cả C-word và C-bit đều nhận giá trị 0.

Bộ đếm tiến/lùi CTUD thực hiện đếm tiến khi gặp sườn lên của xung vào cổng đếm tiến, ký hiệu là CU trong LAD hoặc bit thứ 3 ngăn xếp trong STL, và đếm lùi khi gặp sườn lên của xung vào cổng đếm lùi, ký hiệu là CD trong LAD hoặc bit thứ 2 ngăn xếp trong STL.Việc xoá bộ đếm CTUD cũng có hai cách tương tự như bộ đếm CTU.

Cú pháp khai báo Counter trong LAD và STL như sau:

Reset do mất tín hiệu vào

I0.0

T33 (word)

T33 (bit) và Q0.0

T T

Hình 4.9

PT = 100

Page 54: Bai giang dieu khien logic

54

LAD STL Mô tả Toán hạng

CTU Cxx, +n

Khai báo bộ đếm tiến theo sườn lên của tín hiệu vào cổng CU số hiệu xx kiểu CTU. Khi giá trị đếm tức thời C-word của Cxx lớn hơn hoặc bằng giá trị đặt trước PV, C-bit (Cxx) có giá trị logic bằng 1. Bộ đếm được reset khi đầu vào R có giá trị logic 1. Bộ đếm ngừng đếm khi C-word Cxx đạt giá trị cực đại 32767

Cxx( word ): CPU 212 : 0÷47 CPU 214 : 0÷47 và 80÷127 PV( word ): VW,T,C,IW,... n = 1÷32767 (số nguyên)

CTUD Cxx, +n

Khai báo bộ đếm tiến/lùi, đếm tiến theo sườn lên của tín hiệu đến CU và đếm lùi theo sườn lên của tín hiệu đến CD. Khi giá trị tức thời C-word của Cxx lớn hơn hoặc bằng giá trị đặt trước PV, C-bit (Cxx) có giá trị logic bằng 1. Bộ đếm được reset khi đầu vào R có giá trị logic 1. Bộ đếm ngừng đếm tiến khi C-word Cxx đạt giá trị cực đại 32767 và ngừng đếm lùi khi C-word Cxx đạt giá trị cực tiểu là -32767.

Cxx( word ): CPU 212: 48÷63 CPU 214: 48÷79 PV( word ): VW,T,C,IW,... n = 1÷32767 (số nguyên)

Ký hiệu Cxx của bộ đếm đồng thời cũng là địa chỉ hình thức của C-word và của C-bit. Mặc dù cùng địa chỉ hình thức, song C-word và C-bit vẫn được phân biệt với nhau nhờ kiểu lệnh sử dụng làm việc với kiểu từ hay kiểu tiếp điểm (bit). Ví dụ:

LD C48 // Lệnh làm việc với C-bit của bộ đếm C48.

LDW>= C48 // Lệnh làm việc với C-word của bộ đếm C48.

Sau đây là một ví dụ về việc sử dụng Counter loại CTUD trong LAD và trong STL:

CU CD R PV

CTUD Cxx

CU R PV

CTU

Cxx

Page 55: Bai giang dieu khien logic

55

LAD STL

Network 1 LD LD LD CTUD Network 2 LD =

I0.3 I0.2 I0.1 C48, C48 Q1.0

+4

Giản đồ thời gian tương ứng:

CU = I0.3

CD = I0.2

R = I0.1

C48 (word)

C48 (bit)

1 2 3 4 3 4 0 1

Hình 4.10

C48 Q1.0

I0.3

I0.2

I0.1

+4

CU CD R

PV

CTUD C48

Page 56: Bai giang dieu khien logic

56

4.3. Một số ví dụ ứng dụng S7-200 4.3.1- Chương trình điều khiển đèn đường

Qui định các tiếp điểmđiều khiển đèn trục chính:

- Xanh: Q0.0 với thời gian 10 s

- Vàng: Q0.1 với thời gian 1 s

- Đỏ: Q0.2 với thời gian 7 s

Qui định các tiếp điểmđiều khiển đèn trục phụ:

- Xanh: Q0.5 với thời gian 7 s

- Vàng: Q0.6 với thời gian 1 s

- Đỏ: Q0.7 với thời gian 10 s

Yêu cầu của bài toán là khống chế tự động hệ thống đèn ở một ngã tư với trục chính và phụ: Đèn xanh trục chính và đèn đỏ trục phụ cùng sáng trong 10 s, tiếp sau đèn vàng cả hai trục đường cùng sáng trong 1 s, tiếp nữa đèn đỏ trục chính và đèn xanh trục phụ cùng sáng trong 7 s và tiếp sau đèn vàng cả hai trục đường lại cùng sáng trong 1 s - kết thúc 1 chu kỳ và hệ thống tự động hoạt động lặp lại. Để lập chương trình khống chế chúng ta có nhiều cách khác nhau. Sau đây chúng ta sẽ tiến hành lập trình theo một cách:

Sử dụng 3 Timer kiểu TON là T37, T38, T39,T40 đều có độ phân giải 100 ms để khống chế thời gian, chương trình dạng STL như sau:

NETWORK1 NETWORK6

LDN I0.1 LD M0.0

LD I0.0 A T38

O M0.0 TON T39 , +70

ALD

= M0.0 NETWORK7

LD M0.0

NETWORK2 A T38

LD M0.0 AN T39

AN T40 AN Q0.0

TON T37 , +100 AN Q0.1

= Q0.2

Hình 4-11

Page 57: Bai giang dieu khien logic

57

NETWORK3 = Q0.5

LD M0.0

AN T37 NETWORK8

AN Q0.1 LD M0.0

AN Q0.2 A T39

= Q0.0 TON T40 , +10

= Q0.7

NETWORK4

LD M0.0

A T37

TON T38 , +10

NETWORK5

LD M0.0

LD T37

AN T38

LD T39

AN T40

OLD

ALD

AN Q0.0

AN Q0.2

= Q0.1

= Q0.6

Page 58: Bai giang dieu khien logic

58

Chương trình viết trong LAD

I0.1 I0.0

M0.0

M0.0

M0.0 Q0.0 T37 Q0.1 Q0.2

Q0.7

IN PT

TON T38

+10

M0.0 T37

IN PT

TON T37

+100

M0.0 T40

IN PT

TON T39

+70

M0.0 T38

M0.0 Q0.2 T39 Q0.0 Q0.1

Q0.5

T38

IN PT

TON T40

+10

M0.0 T39

M0.0 Q0.1 T38 Q0.0 Q0.2

Q0.6

T37

T40 T39

Hình 4.12. Sơ đồ LAD của bài toán đèn đường

Page 59: Bai giang dieu khien logic

59

4.3.2. Chương trình điều khiển máy trộn sơn Hình 4.13 là sơ đồ một bình trộn để tạo các màu sơn khác nhau. Trong sơ đồ cho thấy có hai đường ống để đưa hai loại sơ màu khác nhau làm cơ sở cho việc tạo màu sơn mong muốn.

Để khống chế các quá trình ta sử dụng hai cảm biến để báo mức trong bình: Cảm biến mức cao (I0.4) và cảm biến mức thấp (I0.5). Thiết bị trộn được điều khiển bởi động cơ trộn (Q0.2). Hai bơm dùng để bơm hai loại sơn màu khác nhau vào bình trộn (Q0.0) và (Q0.1). Điều khiển mở van (Q0.4). Bơm dùng để tháo sản phẩm ra khỏi bình (Q0.5).

Quá trình làm việc của thiết bị có thể mô tả: Khi ấn nút khởi động (I0.0) thì hệ thống bắt đầu làm việc với công việc đầu tiên là bơm hai loại sơn vào bình. Khi đã sơn có trong bình thì I0.5 có mức 0, nhưng chưa đầy bình thì I0.4 đang có mức 0. Khi lượng sơn đủ (đạt mức cao) thì I0.4 có mức 1, cho tín hiệu khởi động động cơ trộn (Q0.2) và bộ Timer T37 dùng để khống chế thời gian trộn. Khi đạt đến thời gian chỉnh định của T37 thì động cơ trộn sẽ được cắt điện và đóng điện mở van (Q0.4) và bơm tháo sản phẩm ra (Q0.5). Khi toàn bộ sơn thành phẩm được lấy hết khỏi bình thì I0.5 có mức 1, cho tín hiệu khởi động bộ đếm tiến C30 và reset bộ timer T37 và hệ thống lại tiếp tục lặp lại quá trình (chu kỳ mới). Khi đạt số chu kỳ làm việc cần thiết (đặt trước bằng C30) thì hệ thống tự động dừng. Trong quá trình làm việc có thể dừng hệ thống nếu cần nhờ nút ấn dừng I0.1. Để xóa giá trị bộ đếm ta sử dụng nút ấn với địa chỉ là I0.7.

Báo mức cao I0.4

Bơm Q0.0 Bơm Q0.1

Máy trộn Q0.2

Bơm Q0.5

Van Q0.4

Báo mức thấp I0.5

Hình 4.13

Page 60: Bai giang dieu khien logic

60

Chương trình viết trong STL như sau:

NETWORK 1 NETWORK 5

LDN I0.1 LD M0.0

LD I0.0 A I0.0

O M0.0 AN T37

ALD = Q0.2

= M0.0

NETWORK 2 NETWORK 6

LD M0.0 LD M0.0

AN I0.4 A T37

AN C30 AN I0.5

AN T37 = Q0.4

= Q0.0 = Q0.5

= Q0.1

NETWORK 7

NETWORK 3 LD M0.0

LD M0.0 A T37

A I0.4 LD I0.7

S M0.1, 1 CTU C30, +10

NETWORK 4 NETWORK 8

LD M0.0 LD T37

A M0.1 A I0.5

TON T37, +100 R M0.1, 1

Page 61: Bai giang dieu khien logic

61

Chương trình viết ở dạng LAD như sau :

IN

PT

TON T37

+100

I0.1 I0.0

M0.0

M0.0

M0.0 Q0.0

CU

R PV

CTU C30

M0.0 I0.4

I0.4 C30 T37

Q0.1

M0.1 S

1 M0.0 M0.1

M0.0 Q0.2 I0.4 T37

M0.0 Q0.4 T37 I0.5

Q0.5

M0.0 T37

I0.7

T37 I0.5 M0.1 R

1

+10

Hình 4.14. Sơ đồ LAD của bài toán trộn sơn

Page 62: Bai giang dieu khien logic

62

Chương 5 THIẾT BỊ ĐIỀU KHIỂN LOGIC KHẢ TRÌNH S7-300

5.1. Giới thiệu chung Thiết bị điều khiển logic khả trình (Programmable Logic Control), viết tắt thành

PLC, là loại thiết bị cho phép thực hiện linh hoạt các thuật toán điều khiển số thông qua một ngôn ngữ lập trình, thay cho việc phải thể hiện thuật toán đó bằng mạch số. Như vậy, với một số chương trình điều khiển trong thiết bị, PLC trở thành một bộ điều khiển số nhỏ gọn, dễ thay đổi thuật toán và đặc biệt dễ trao đổi thông tin với môi trường xung quanh (với các PLC khác hoặc với máy tính). Toàn bộ chương trình điều khiển được lưu nhớ trong bộ nhớ của PLC dưới dạng các khối chương trình (khối OB, FC hoặc FB) và được thực hiện lặp theo chu kỳ của vòng quét (scan).

Để có thể thực hiện được một chương trình điều khiển, tất nhiên PLC phải có tính năng như một máy tính, nghĩa là phải có một bộ vi xử lý (CPU), một hệ điều hành, bộ nhớ để lưu chương trình điều khiển, dữ liệu và tất nhiên là phải có các cổng vào/ra để giao tiếp được với các đối tượng điều khiển và để trao đổi thông tin với môi trường xung quanh [13]. Bên cạnh đó, nhằm phục vụ bài toán điều khiển số, PLC còn cần phải có thêm các khối chức năng đặc biệt khác như bộ đếm (Counter), bộ thời gian (Timer),… và những khối hàm chuyên dụng (hình 5.1).

5.2. Các modul của PLC S7-300 Thông thường, để tăng tính năng mềm dẻo trong ứng dụng thực tế mà ở đó phần lớn

các đối tượng điều khiển có số tín hiệu đầu vào, đầu ra cũng như chủng loại tín hiệu vào/ra khác nhau mà các bộ điều khiển PLC được thiết kế không bị cứng hóa về cấu hình. Chúng được chia nhỏ thành các module được sử dụng nhiều hay ít tùy theo từng bài toán, song tối thiểu bao giờ cũng phải có một module chính là module CPU. Các module còn lại là những module nhận/truyền tín hiệu với đối tượng điều khiển, các module chức năng chuyên dụng như PID, điều khiển động cơ… chúng được gọi chung là các module mở rộng. Tất cả các module được gá trên những thanh ray.

Bộ nhớ chương trình

Khối VXL trung tâm

+ Hệ điều hành

Timer

Bộ đệm vào/ra

Bit cờ

Bộ đếm

Cổng vào/ra onboard

Cổng ngắt và đếm tốc độ cao

Quản lý ghép nối

Bus của PLC

Hình 5.1. Nguyên lý chung về cấu trúc của một bộ điều khiển logic khả trình (PLC)

Page 63: Bai giang dieu khien logic

63

5.2.1. Modul CPU Tương tự như S7-200. Tuy nhiên trong họ PLC S7-300 có nhiều loại module khác

nhau và chúng thường được đặt tên theo bộ vi xử lý có trong nó như module CPU312, module CPU314, module CPU315.

5.2.2. Module mở rộng Các module mở rộng được chia thành 5 loại chính:

PS (Power Supply): module nguồn nuôi: có 3 loại 2A, 5A, 10A.

SM (Signal module): module mở rộng cổng tín hiệu vào/ra bao gồm:

DI (Digital Input): module mở rộng các cổng vào số. Số các cổng vào số mở rộng có thể là 8, 16 hoặc 32 tùy thuộc vào từng loại module.

DO (Digital Output): module mở rộng các cổng ra số. Số các cổng ra số mở rộng có thể là 8, 16 hoặc 32 tùy thuộc ra từng loại module.

DI/DO (Digital Input/Digital Output): module mở rộng các cổng vào/ra số. Số các cổng vào/ra số mở rộng có thể là 8 vào/8 ra, 16 vào/16 ra tùy thuộc ra từng loại module.

AI (Analog Input): module mở rộng các cổng vào tương tự. AO (Analog Output): module mở rộng các cổng ra tương tự. Về bản chất chúng chính là những bộ chuyển đổi tương tự số 12 bit (AD). Tức là mỗi tín hiệu tương tự được chuyển thành 1 tín hiệu số (nguyên) có độ dài 12 bit. Số các cổng ra tương tự có thể là 2, 4 tùy từng loại module.

AI/AO: module mở rộng các cổng vào/ra tương tự. Số các cổng vào/ra tương tự có thể là 4 vào/2 ra hoặc 4 vào/4 ra tùy từng loại module.

IM (Interface module): module ghép nối. Đây là loại module chuyên dụng có nhiệm vụ nối từng nhóm các module mở rộng lại với nhau thành một khối và được quản lý chung bởi 1 module CPU..

FM (Function module): module có chức năng điều khiển riêng. Như module điều khiển động cơ bước, module điều khiển động cơ servo, module PID, module điều khiển vòng kín…

CP (Communication module): module phục vụ truyền thông trong mạng giữa các PLC với nhau hoặc giữa PLC với máy tính.

Page 64: Bai giang dieu khien logic

64

5.3. Kiểu dữ liệu và phân chia bộ nhớ 5.3.1- Kiểu dữ liệu:

Một chương trình ứng dụng trong S7-300 có thể sử dụng các kiểu dữ liệu sau:

BOOL: với dung lượng một bit có giá trị 0 hoặc 1. Đây là kiểu dữ liệu cho biến hai trị.

Byte: thường được dùng để biểu diễn một số nguyên dương trong khoảng từ 0÷255 hoặc là mã ASCII của một ký tự.

Word: gồm 2 byte để biểu diễn một số nguyên dương từ 0 ÷ 65535.

INT: cũng có dung lượng là 2 byte dùng để biểu diễn 1 số nguyên trong khoảng -32768 ÷32767.

DINT: gồm 4 byte, dùng để biểu diễn số nguyên từ -2147483648 ÷ 2147483647

REAL: gồm 4 byte, dùng để biểu diễn một số thực dấu phảy động.

S5T (hay S5TIME): khoảng thời gian, được tính theo giờ/phút/giây/mili giây.

DATE: biểu diễn giá trị thời gian tính theo năm/tháng/ngày

CHAR: biểu diễn một hoặc nhiều ký tự (nhiều nhất là 4 ký tự)

5.3.2. Cấu trúc bộ nhớ của CPU Bộ nhớ của S7-300 được chia thành 3 vùng chính:

Vùng chương trình ứng dụng

Vùng nhớ chương trình được chia thành 3 miền:

OB (Organisation block): miền chứa chương trình tổ chức.

FC (Function): miền chứa chương trình con được tổ chức thành hàm có biến hình thức để trao đổi dữ liệu với chương trình đã gọi nó.

FB (Function block): miền chứa chương trình con, được tổ chức thành hàm và có khả năng trao đổi dữ liệu với bất cứ một khối chương trình nào khác

Vùng chứa tham số của hệ điều hành và chương trình ứng dụng: được chia thành 7 miền khác nhau:

I (Process image input): miền bộ đệm các dữ liệu của cổng vào số.

Q (Process image output): miền bộ đệm các dữ liệu của cổng ra số.

M: miền các biến cờ.

T: miền nhớ phục vụ các bộ thời gian.

Page 65: Bai giang dieu khien logic

65

C: miền nhớ phục vụ bộ đếm.

PI: miền địa chỉ cổng vào của các module tương tự.

PQ: miền địa chỉ cổng ra của các module tương tự.

Vùng chứa các khối dữ liệu: được chia thành 2 loại:

DB (Data block): miền chứa các dữ liệu được tổ chức thành khối. Kích thước cũng như số lượng khối do người sử dụng quy định phù hợp với từng bài toán điều khiển.

L (Local data block): miền dữ liệu địa phương, được các khối chương trình OB, FC, FB tổ chức và sử dụng cho các biến nháp tức thời và trao đổi dữ liệu của biến hình thức với những khối chương trình đã gọi nó.

5.4. Vòng quét chương trình Tương tự như PLC S7-200.

Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ như khối OB40, OB80,…, chương trình của các khối đó sẽ được thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt cùng chủng loại. Các khối chương trình này có thể được thực hiện tại mọi điểm trong vòng quét chứ không bị gò ép là phải ở trong giai đoạn thực hiện chương trình. Chẳng hạn nếu một tín hiệu báo ngắt xuất hiện khi PLC đang ở giai đoạn truyền thông và kiểm tra nội bộ, PLC sẽ tạm dừng công việc truyền thông, kiểm tra, để thực hiện khối chương trình tương ứng với tín hiệu báo ngắt đó. Với hình thức xử lý tín hiệu ngắt như vậy, thời gian vòng quét sẽ càng lớn khi càng có nhiều tín hiệu ngắt xuất hiện trong vòng quét. Do đó, để nâng cao tính thời gian cho chương trình điều khiển, tuyệt đối không nên viết chương trình xử lý ngắt quá dài hoặc quá lạm dụng việc sử dụng chế độ ngắt trong chương trình điều khiển.

5.5. Những khối OB đặc biệt Trong khi khối OB1 được thực hiện đều đặn ở từng vòng quét trong giai đoạn thực

hiện chương trình (giai đoạn 2) thì các khối OB khác chỉ thực hiện khi xuất hiện tín hiệu báo ngắt tương ứng, nói cách khác chương trình viết cho các khối OB này chính là chương trình xử lý tín hiệu ngắt (event). Chúng bao gồm:

1. OB10 (Time of Day Interrupt): chương trình trong khối OB10 sẽ được thực hiện khi giá trị của đồng hồ thời gian thực nằm trong một khoảng thời gian đã được quy định. OB10 có thể được gọi một lần, nhiều lần cách đều nhau từng phút, từng giờ, từng ngày,… Việc quy định khoảng thời gian hay số lần gọi OB10 được thực hiện nhờ chương trình hệ thống SFC28 hoặc trong bảng tham số của module CPU nhờ phần mềm STEP 7.

Page 66: Bai giang dieu khien logic

66

2. OB20 (Time Delay Interrupt): chương trình trong khối OB20 sẽ được thực hiện sau một khoảng thời gian trễ đặt trước kể từ khi gọi chương trình hệ thống SFC32 để đặt thời gian trễ.

3. OB35 (Cyclic Interrupt): chương trình trong OB35 sẽ được thực hiện cách đều nhau một khoảng thời gian cố định. Mặc định, khoảng thời gian này sẽ là 100ms, song ta có thể thay đổi nó trong bảng tham số của module CPU nhờ phần mềm STEP 7.

4. OB40 (Hardware Interrupt): chương trình trong OB40 sẽ được xuất hiện một tín hiệu báo ngắt từ ngoại vi đưa vào module CPU thông qua các cổng vào/ra số onboard đặc biệt, hoặc thông qua các module SM, CP, FM.

5. OB80 (Cyle Time Fault): chương trình trong khối OB80 sẽ được thực hiện khi thời gian quét (scan time) vượt quá khoảng thời gian cực đại đã quy định hoặc khi có một tín hiệu ngắt gọi một khối OB nào đó mà khối này chưa kết thúc ở lần gọi trước. Mặc định, scan time cực đại là 150ms, nhưng có thể thay đổi nó thông qua bảng tham số của module CPU nhờ phần mềm STEP7.

6. OB81 (Power Supply Fault): module CPU sẽ gọi chương trình trong khối OB81 khi phát hiện thấy có lỗi về nguồn nuôi.

7. OB82 (Diagnostic Interrupt): chương trình trong OB82 được gọi khi CPU phát hiện có sự cố từ các module vào/ra mở rộng. Các module mở rộng này phải là những module có khả năng tự kiểm tra mình (diagnostic cabilities).

8. OB85 (Not Load Fault): CPU sẽ gọi khối OB85 khi phát hiện thấy chương trình ứng dụng có sử dụng chế độ ngắt nhưng chương trình xử lý tín hiệu ngắt lại không có trong khối OB tương ứng.

9. OB87 (Communication Fault): khối OB87 sẽ được gọi khi CPU phát hiện thấy lỗi trong truyền thông, ví dụ như không có tín hiệu trả lời từ đối tác.

10. OB100 (Start Up Information): khối OB100 sẽ được thực hiện một lần khi CPU chuyển trạng thái từ STOP (dừng) sang RUN (chạy).

11. OB101 (chỉ có với S7-400): khối OB101 sẽ được thực hiện một lần khi công tắc nguồn của CPU chuyển trạng thái từ OFF sang ON.

12. OB121 (Synchronous error): khối OB121 sẽ được thực hiện khi CPU phát hiện thấy lỗi logic trong chương trình như đổi sai kiểu dữ liệu hoặc lỗi truy cập khối DB, FC, FB không có trong bộ nhớ của CPU.

13. OB122 (Synchronous error): khối OB122 sẽ được thực hiện khi CPU phát hiện thấy lỗi truy cập module trong chương trình.

Page 67: Bai giang dieu khien logic

67

5.6. Ngôn ngữ lập trình của S7-300 Các loại PLC nói chung thường có nhiều ngôn ngữ lập trình nhằm phục vụ các đối

tượng sử dụng khác nhau. PLC S7-300 có ba ngôn ngữ lập trình cơ bản. Đó là:

- Ngôn ngữ “liệt kê lệnh”, ký hiệu là STL (Statement list). Đây là dạng ngôn ngữ lập trình thông thường của máy tính. Một chương trình được ghép bởi nhiều câu lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một hàng và đều có cấu trúc chung “tên lệnh” + “toán hạng”.

- Ngôn ngữ “hình thang”, ký hiệu là LAD (Ladder logic). Đây là dạng ngôn ngữ đồ họa thích hợp với những người quen thiết kế mạch điều khiển logic.

- Ngôn ngữ “hình khối”, ký hiệu là FBD (Function block diagram). Đây cũng là ngôn ngữ đồ họa dành cho người có thói quen thiết kế mạch điều khiển số.

5.6.1. Cấu trúc lệnh và trạng thái kết quả Địa chỉ ô nhớ trong S7-300 gồm hai phần: phần chữ và phần số.

Ví dụ: PIW304 hoặc M300.4

- Phần chữ chỉ vị trí và kích thước của ô nhớ.

Chú ý: Một chương trình viết trên STL (tùy thuộc vào từng người lập trình) có thể gồm nhiều Network. Mỗi một Network chứa một đoạn chương trình phục vụ một công đoạn cụ thể. Ở mỗi đầu Network, thanh ghi trạng thái nhận giá trị 0. Chỉ sau lệnh đầu tiên của Network, các bit trạng thái mới thay đổi theo kết quả phép tính.

5.6.2. Các lệnh cơ bản 5.6.2.1. Lệnh gán

Cú pháp = <Toán hạng>

5.6.2.2. Lệnh thực hiện phép tính ∧

Cú pháp A <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C.

5.6.2.3. Lệnh thực hiện phép tính ∧ với giá trị nghịch đảo

Cú pháp AN <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C.

5.6.2.4. Lệnh thực hiện phép tính ∨

Cú pháp O <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C.

5.6.2..5. Lệnh thực hiện phép tính ∨ với giá trị nghịch đảo

Page 68: Bai giang dieu khien logic

68

Cú pháp ON <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C.

5.6.2.6. Lệnh thực hiện phép tính ∧ với giá trị một biểu thức

Cú pháp A(

5.6.2.7. Lệnh thực hiện phép tính ∧ với giá trị nghịch đảo của một biểu thức

Cú pháp AN(

Lệnh không có toán hạng.

5.6.2.8. Lệnh thực hiện phép tính ∨ với giá trị một biểu thức

Cú pháp O(

Lệnh không có toán hạng.

5.6.2.9. Lệnh thực hiện phép tính ∨ với giá trị nghịch đảo của một biểu thức

Cú pháp ON(

Lệnh không có toán hạng.

5.6.2.10. Lệnh đảo giá trị của RLO

Cú pháp NOT

Lệnh không có toán hạng và có tác dụng đảo nội dung của RLO

5.6.2.11. Lệnh gán có điều kiện giá trị logic 1 vào ô nhớ

Cú pháp S <toán hạng>

Toán hạng là địa chỉ bit I, Q, M, L, D.

5.6.2.12. Lệnh gán có điều kiện giá trị logic 0 vào ô nhớ

Cú pháp R <toán hạng>

Toán hạng là địa chỉ bit I, Q, M, L, D.

5.6.3.Các lệnh điều khiển chương trình 5.6.3.1. Nhóm lệnh kết thúc chương trình

S7-300 có hai lệnh kết thúc chương trình là BEC và BEU.

1) Lệnh kết thúc vô điều kiện

Cú pháp BEU

Lệnh không có toán hạng và thực hiện việc kết thúc chương trình trong khối một cách vô điều kiện.

Page 69: Bai giang dieu khien logic

69

2) Lệnh kết thúc có điều kiện

Cú pháp BEC

Lệnh không có toán hạng và thực hiện việc kết thúc chương trình trong khối nếu như RLO có giá trị 1.

5.5.3.2- Nhóm lệnh rẽ nhánh theo bit trạng thái Lệnh rẽ nhánh theo bit trạng thái là loại lệnh thực hiện bước nhảy nhằm bỏ qua một

đoạn chương trình để tới đoạn chương trình khác được đánh dấu bằng “nhãn” nếu điều kiện kiểm tra trong thanh ghi trạng thái được thỏa mãn. Nơi lệnh nhảy tới phải thuộc cùng một khối chương trình với lệnh. Không thể nhảy tới khối chương trình này sang một khối chương trình khác, ví dụ không thể nhảy từ FC1 sang FC10.

1) Rẽ nhánh khi BR = 1

Cú pháp JBI <nhãn >

2) Rẽ nhánh khi BR = 0

Cú pháp JNBI <nhãn >

Lệnh thay đổi thanh ghi trạng thái giống như lệnh JBI:

3) Rẽ nhánh khi RLO = 1

Cú pháp JC <nhãn >

4) Rẽ nhánh khi RLO = 0

Cú pháp JCN <nhãn >

Lệnh thay đổi thanh ghi trạng thái giống như lệnh JC:

5) Rẽ nhánh khi CC1 = 0 và CC0 = 1

Cú pháp JM <nhãn >

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái. Nó được sử dụng để rẽ nhánh nếu như phép tính trước đó có kết quả âm.

6) Rẽ nhánh khi CC1 = 1 và CC0 = 0

Cú pháp JP <nhãn >

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái. Nó được sử dụng để rẽ nhánh nếu như phép tính trước đó có kết quả dương.

7) Rẽ nhánh khi CC1 = CC0 = 0

Cú pháp JZ <nhãn >

Page 70: Bai giang dieu khien logic

70

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái. Nó được sử dụng để rẽ nhánh nếu như phép tính trước đó có kết quả bằng 0.

8) Rẽ nhánh khi CC1 ≠ CC0

Cú pháp JN <nhãn >

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái. Nó được sử dụng để rẽ nhánh nếu như phép tính trước đó có kết quả khác 0.

9) Rẽ nhánh khi CC1 = CC0 = 0 hoặc CC1 = 0 và CC0 =1

Cú pháp JMZ <nhãn >

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái. Nó được sử dụng để rẽ nhánh nếu như phép tính trước đó có kết quả là một số không dương (âm hoặc bằng 0).

10) Rẽ nhánh khi CC1 = CC0 = 0 hoặc CC1 = 1 và CC0 =0

Cú pháp JMZ <nhãn >

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái. Nó được sử dụng để rẽ nhánh nếu như phép tính trước đó có kết quả là một số không âm (dương hoặc bằng 0).

11) Rẽ nhánh vô điều kiện

Cú pháp JU <nhãn >

Lệnh nhảy này không làm thay đổi nội dung thanh ghi trạng thái và được thực hiện vô điều kiện, không phụ thuộc bất cứ một bit trạng thái nào.

5.6.3.3. Lệnh xoay vòng (LOOP) Cú pháp LOOP <nhãn >

Khi gặp lệnh LOOP, CPU của S7-300 sẽ tự giảm nội dung của từ thấp trong thanh ghi ACCU1 đi một đơn vị và kiểm tra xem kết quả có bằng 0 hay không. Nếu kết quả khác 0, CPU sẽ thực hiện bước nhảy đến đoạn chương trình được đánh dấu bởi “nhãn”. Ngược lại thì CPU thực hiện lệnh kế tiếp.

Lệnh này không làm thay đổi nội dung thanh ghi trạng thái.

5.6.3.4- Lệnh rẽ nhánh theo danh mục (JUMP LIST) Cú pháp JL <nhãn >

Lệnh thực hiện một loạt sự rẽ nhánh tùy theo nội dung của ACCU1. Danh mục các nhánh rẽ phải được xếp ngay sau lệnh JL dưới dạng lệnh nhảy vô điều kiện và với thứ tự từ thấp đến cao theo nội dung của ACCU1.

Số các nhánh rẽ nhiều nhất có thể là 255. Toán hạng <nhãn> trong lệnh chỉ phần kết thúc bảng danh mục các nhánh rẽ.

Page 71: Bai giang dieu khien logic

71

Lệnh rẽ nhánh theo danh mục không làm thay đổi nội dung thanh ghi trạng thái và có tác dụng giống như lệnh do case của Access hay dBASE.

5.6.4 Bộ thời gian (Timer) 5.6.4.1. Nguyên tắc làm việc

Bộ thời gian (Timer), là bộ tạo thời gian trễ τ mong muốn giữa tín hiệu logic đầu vào u(t) và tín hiệu logic đầu ra y(t).

S7-300 có 5 loại Timer khác nhau. Tất cả 5 loại Timer này cùng bắt đầu tạo thời gian trễ tín hiệu kể từ thời điểm có sườn lên ở tín hiệu đầu vào, tức là khi tín hiệu đầu vào u(t) chuyển trạng thái logic từ 0 lên 1, được gọi là thời điểm Timer được kích.

Thời gian trễ τ: mong muốn được khai báo với Timer bằng một giá trị 16 bits (hình 2.8) bao gồm hai thành phần:

- Độ phân giải với đơn vị là ms. Timer của S7-300 có 4 loại độ phân giải khác nhau là 10ms, 100ms và 10s.

- Một số nguyên (BCD) trong khoảng 0÷999 được gọi là PV (Preset value-giá trị đặt trước).

Như vậy thời gian trễ τ mong muốn sẽ chính là tích τ = Độ phân giải × PV

Ngay tại thời điểm kích Timer, giá trị PV được chuyển vào thanh ghi 16 bits của Timer T-Word (gọi là thanh ghi CV, viết tắt của Current value-giá trị tức thời). Timer sẽ ghi nhớ khoảng thời gian trôi qua kể từ khi được kích bằng cách giảm dần một cách tương ứng nội dung thanh ghi CV. Nếu nội dung thanh ghi CV trở về bằng 0 thì Timer đã đạt được nội dung mong muốn τ và điều này sẽ được báo ra ngoài bằng cách đổi trạng thái tín hiệu đầu ra y(t). Việc thông báo ra ngoài bằng cách đổi trạng thái tín hiệu đầu ra y(t) như thế nào còn phụ thuộc vào loại Timer nào được sử dụng.

Bên cạnh sườn lên của tín hiệu đầu vào u(t). Timer còn có thể được kích bằng sườn lên của tín hiệu kích chủ động có tên là tín hiệu enable nếu như tại thời điểm có sườn lên của tín hiệu enable, tín hiệu đầu vào u(t) có giá trị logic 1.

Từng loại Timer được đánh số từ 0 đến (tùy thuộc từng loại CPU) 255. Một Timer được đặt tên là Tx, trong đó x là số Timer (0≤ x ≤255). Ký hiệu Tx cũng đồng thời là địa chỉ

Timer

CV

u(t)

PV

y(t)

T-bit

Hình 5.1. Mô tả nguyên lý làm việc của Timer

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Không sử dụng

Độ phân giải 0 0 10ms 0 1 100ms 1 0 1s 1 1 10s

Giá trị PV dưới dạng mã BCD: 0 ≤ PV ≤ 999

Hình 5.2. Cấu hình giá trị thời gian trễ đặt trước cần khai báo với timer

Page 72: Bai giang dieu khien logic

72

hình thức của thanh ghi CV (T-Word) và của đầu ra (T-bit) của Timer đó. Tuy chúng có cùng địa chỉ hình thức, song T-Word và T-bit vẫn được phân biệt với nhau nhờ kiểu lệnh sử dụng với toán hạng Tx. Khi dùng lệnh làm việc với từ, Tx được hiểu là địa chỉ của T-Word, ngược lại khi sử dụng lệnh làm việc với tiếp điểm, Tx được hiểu là địa chỉ của T-bit.

Một Timer đang trong chế độ làm việc (sau khi được kích) có thể được đưa lại về trạng thái chờ khởi động ban đầu, tức là chờ sườn lên tiếp theo của tín hiệu đầu vào. Công việc này gọi là reset Timer đó. Tín hiệu reset Timer được gọi là tín hiệu xóa và khi tín hiệu xóa có giá trị bằng 1 Timer sẽ không làm việc. Tại thời điểm xuất hiện sườn lên của tín hiệu xóa, T-Word và T-bit của nó đồng thời được xóa về 0, tức là thanh ghi đếm tức thời CV được đặt về 0 và tín hiệu đầu ra cũng có trạng thái logic bằng 0.

5.6.4.2. Khai báo sử dụng Việc khai báo sử dụng một Timer gồm các bước :

Khai báo tín hiệu enable nếu muốn sử dụng tín hiệu chủ động kích.

Khai báo tín hiệu đầu vào u(t).

Khai báo thời gian trễ mong muốn.

Khai báo loại Timer được sử dụng (SD, SS, SP, SE, SF).

Khai báo tín hiệu xóa Timer nếu muốn sử dụng chế độ reset chủ động.

Trong tất cả 5 bước trên, các bước 2, 3, 4 là bắt buộc.

(1) Khai báo tín hiệu enable (chủ động kích)

Cú pháp A <Địa chỉ bit>

FR <Tên Timer>

Toán hạng thứ nhất “Địa chỉ bit” xác định tín hiệu sẽ được sử dụng làm tín hiệu chủ động kích cho Timer có tên cho trong toán hạng thứ 2.

(2) Khai báo tín hiệu đầu vào

Cú pháp A <Địa chỉ bit>

“Địa chỉ bit” trong toán hạng xác định tín hiệu đầu vào u(t) cho Timer.

(3) Khai báo thời gian trễ mong muốn

Cú pháp L <hằng số>

“Hằng số” trong toán hạng xác định tín hiệu giá trị thời gian trễ τ đặt trước cho Timer. Hằng số này có hai dạng.

o S5T#giờH_phútM_miligiâyMS. Đây là dạng dữ liệu thời gian thực.

Page 73: Bai giang dieu khien logic

73

o Dạng một số nguyên 16 bits.

(4) Khai báo loại Timer

S7-300 có 5 loại Timer được khai báo bằng các lệnh

- SD: Trễ theo sườn lên không có nhớ.

- SS: Trễ theo sườn lên có nhớ.

- SP: Tạo xung không có nhớ.

- SE: Tạo xung có nhớ.

- SF : Trễ theo sườn xuống.

a) Trễ theo sườn lên không có nhớ (On delay Timer)

Cú pháp A <Tên Timer>

Thời gian giữ trễ được bắt đầu khi có sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời của tín hiệu vào bằng 1), tức là ngay ở thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word (CV). Trong khoảng thời gian T-bit có giá trị 0. Khi hết thời gian trễ T-bit có giá trị bằng 1. Như vậy, T-bit có giá trị 1 khi T-Word=0.

Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện sườn lên của tín hiệu đầu vào và sườn lên của T-bit.

Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0.

b) Trễ theo sườn lên có nhớ

Cú pháp A <Tên Timer>

Thời gian trễ được bắt đầu tính từ khi xuất hiện sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word (CV). Khi hết thời gian trễ, tức là khi T-Word=0, T-bit có giá trị bằng 1.

Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện sườn lên của tín hiệu đầu vào và sườn lên của T-bit.

Với bộ Timer có nhớ, thời gian trễ vẫn được tính cho dù lúc đó tín hiệu đầu vào đã về 0.

c) Timer tạo xung không có nhớ (Pulse Timer)

Cú pháp SP <Tên Timer>

Thời gian trễ được bắt đầu tính từ khi xuất hiện sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm

Page 74: Bai giang dieu khien logic

74

đó giá trị PV được chuyển vào thanh ghi T-Word (CV). Trong khoảng thời gian trễ, tức là khi T-Word≠0, T-bit có giá trị bằng 1. Ngoài khoảng thời gian trễ T-bit có giá trị bằng 0.

Nếu chưa hết thời gian trễ mà tín hiệu đầu vào về 0 thì T-bit và T-Word cũng về giá trị 0.

d) Timer tạo xung có nhớ (Extended Pule Timer)

Cú pháp SE <Tên Timer>

Thời gian giữ được bắt đầu từ khi xuất hiện sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word (CV).

Trong khoảng thời gian trễ, tức là khi T-Word≠0, T-bit có giá trị bằng 1. Ngoài khoảng thời gian trễ T-bit có giá trị bằng 0.

Nếu chưa hết thời gian trễ mà tín hiệu đầu vào về 0 thì thời gian trễ vẫn được tính tiếp tục, tức là T-bit và T-Word không về 0 theo tín hiệu đầu vào.

e) Timer trễ theo sườn xuống (Off Delay Timer)

Cú pháp SF <Tên Timer>

Thời gian trễ được tính bắt đầu từ khi có sườn xuống của tín hiệu đầu vào, tức là ở thời điểm xuất hiện sườn xuống của tín hiệu đầu vào, giá trị PV được chuyển vào thanh ghi T-Word (CV).

Trong khoảng thời gian giữa sườn lên của tín hiệu vào hoặc T-Word≠0, T-bit có giá trị bằng 1. Ngoài ra khoảng đó T-bit có giá trị bằng 0.

(5) Khai báo tín hiệu xóa (reset)

Cú pháp A <Địa chỉ bit>

R <Tên Timer>

Toán hạng thứ nhất “địa chỉ bit” xác định tín hiệu sẽ được sử dụng làm tín hiệu chủ động xóa cho Timer có tên trong toán hạng thứ hai.

Khi tín hiệu xóa=1, T-Word (thanh ghi CV) và T-bit cùng đồng thời được đưa về 0. Nếu tín hiệu xóa về 0, Timer sẽ chờ được kích lại.

5.6.4.3. Đọc nội dung thanh ghi T-Word (CV) Nội dung thanh ghi T-Word là CV có thể được đọc vào ACCU1 theo 2 cách:

1) Đọc số đếm tức thời (không có độ phân giải)

Cú pháp L <Tên Timer>

Toán hạng là tên Timer mà thanh ghi T-Word của nó sẽ được đọc vào ACCU1.

Page 75: Bai giang dieu khien logic

75

Giá trị đọc được là một số nguyên dương xác định số đếm tức thời (không có thứ nguyên), tức là chỉ là tỷ số giữa khoảng thời gian kể từ khi Timer được kích, và độ phân giải.

2) Đọc thời gian trễ tức thời

Toán hạng tên Timer mà thanh ghi T-Word của nó sẽ được đọc vào ACCU1. Giá trị đọc được gồm hai phần: một số BCD xác định số đếm tức thời (không có thứ nguyên) và độ phân giải.

Tổng kết

Hình dưới tổng kết lại các loại Timer của S7-300 cho tiện việc tra cứu sử dụng, trong đó τ là thời gian trễ đặt trước.

5.6.5. Bộ đếm (Counter) 5.6.5.1. Nguyên tắc làm việc

Counter là bộ đếm thực hiện chức năng đếm sườn xung của các tín hiệu đầu vào. S7-300 có tối đa 256 Counter (phụ thuộc CPU), ký hiệu bởi Cx, trong đó x là số nguyên trong khoảng 0÷255. Những bộ đếm của S7-300 đều có thể đồng thời đếm tiến theo sườn lên của một tín hiệu vào thứ nhất, được ký hiệu là CU (count up) và đếm lùi theo sườn lên của tín hiệu vào thứ hai ký hiệu là CD (count down).

Thông thường bộ đếm chỉ đếm các sườn lên của tín hiệu CU và CD, song cũng có thể được mở rộng để đếm cả mức tín hiệu của chúng bằng cách sử dụng thêm tín hiệu enable (kích đếm). Nếu có tín hiệu enable, bộ đếm sẽ đếm tiến khi xuất hiện sườn lên của tín hiệu enable đồng thời tại điểm đó CU có mức tín hiệu là 1. Tương tự bộ đếm sẽ đếm lùi khi có sườn lên của tín hiệu enable và tại thời điểm đó CD có mức tín hiệu là 1.

Số sườn xung đếm được, được ghi vào thanh ghi 2 byte của bộ đếm, goi là thanh ghi C-Word. Nội dung của T-Word được gọi là giá trị đếm tức thời của bộ đếm và ký hiệu bằng CV (Current Value). Bộ đếm báo trạng thái của C-Word ra ngoài qua chân C-bit của nó. Nếu CV≠0, C-bit có giá trị 1. Ngược lại khi CV=0, C-bit nhận giá trị logic 0. CV luôn là một giá trị không âm. Bộ đếm sẽ không đếm lùi khi CV=0.

τ

τ τ

τ

τ τ

τ τ

Tín hiệu vào

SP: Tạo xung không nhớ

SE: Tạo xung có nhớ

SD: Trễ theo sườn lên không nhớ

SS: Trễ theo sườn lên có nhớ

SS: Trễ theo sườn xuống

Page 76: Bai giang dieu khien logic

76

Khác với Timer, giá trị đặt trước PV (preset value) của bộ đếm chỉ được chuyển vào C-Word tại thời điểm xuất hiện sườn lên của tín hiệu đặt (set-S)

Bộ đếm có thể được xóa chủ động bằng tín hiệu xóa (reset). Khi bộ đếm được xóa, cả C-Word và C-bit đều nhận giá trị 0.

5.6.5.2. Khai báo sử dụng Việc khai báo sử dụng một counter bao gồm các bước:

- Khai báo tín hiệu enable nếu muốn sử dụng tín hiệu chủ động kích đếm.

- Khai báo tín hiệu đầu vào CU được đếm tiến.

- Khai báo tín hiệu đầu vào CD được đếm lùi.

- Khai báo tín hiệu đặt (set) và giá trị đặt trước (PV).

- Khai báo tín hiệu xóa (reset).

Trong đó ít nhất phải có một trong hai bước 2 hoặc 3 được thực hiện.

(1). Khai báo tín hiệu kích đếm (enable).

Cú pháp A <Địa chỉ bit>

FR <Tên Counter>

Toán hạng thứ nhất “địa chỉ bit” xác định tín hiệu sẽ được sử dụng làm tín hiệu kích đếm cho bộ đếm có tên cho trong toán hạng thứ hai. Tên của bộ đếm có dạng Cx với 0≤x≤255

(2). Khai báo tín hiệu được đếm tiến theo sườn lên.

Cú pháp A <Địa chỉ bit>

CU <Tên Counter>

Toán hạng thứ nhất “địa chỉ bit” xác định tín hiệu mà sườn lên của nó được bộ đếm với tên cho trong toán hạng thứ hai đếm tiến.. Tên của bộ đếm có dạng Cx với 0≤x≤255. Mỗi khi xuất hiện một sườn lên của tín hiệu, bộ đếm sẽ tăng nội dung thanh ghi C-Word (CV) lên 1 đơn vị. Lệnh CU tác động vào thanh ghi trạng thái giống như lệnh FR.

(3). Khai báo tín hiệu được đếm lùi theo sườn lên.

Cú pháp A <Địa chỉ bit>

CD <Tên Counter>

Toán hạng thứ nhất “địa chỉ bit” xác định tín hiệu mà sườn lên của nó được bộ đếm với tên cho trong toán hạng thứ hai đếm tiến. Tên của bộ đếm có dạng Cx với 0≤x≤255.

Page 77: Bai giang dieu khien logic

77

Mỗi khi xuất hiện sườn lên của tín hiệu, bộ đếm sẽ giảm nội dung thanh ghi C-Word (CV) đi bớt 1 đơn vị nếu CV>0. Trong trường hợp CV đã bằng 0 thì nội dung C-Word không bị thay đổi. Lệnh CD tác động vào thanh ghi trạng thái giống như lệnh FR.

(4). Khai báo tín hiệu đặt (set) giá trị đặt trước (PV)

Cú pháp A <Địa chỉ bit>

L C#<hằng số>

S <Tên Counter>

Toán hạng thứ nhất “địa chỉ bit” xác định tín hiệu mà mỗi khi xuất hiện sườn lên của nó, hằng số PV cho trong lệnh thứ hai dưới dạng BCD sẽ được chuyển vào thanh ghi C-Word của bộ đếm có tên trong toán hạng của lệnh thứ 3.

Tên của bộ đếm có dạng Cx với 0≤x≤255.

(5). Khai báo tín hiệu xóa (reset)

Cú pháp A <Địa chỉ bit>

R <Tên Counter>

Toán hạng thứ nhất “địa chỉ bit” xác định tín hiệu mà mỗi khi xuất hiện sườn lên của nó, thanh ghi C-Word của bộ đếm có tên trong toán hạng của lệnh thứ 2 sẽ được xóa về 0.

Tên của bộ đếm có dạng Cx với 0≤x≤255.

(6). Đọc nội dung thanh ghi C-Word

Nội dung của thanh ghi C-Word là CV, cũng giống như ở Timer, có thể được đọc vào ACCU1 theo 2 cách:

a) Đọc số đếm tức thời dạng binary

Cú pháp L <Tên Counter>

Toán hạng là tên bộ đếm mà thanh ghi C-Word của nó sẽ được đọc vào ACCU1. Giá trị đọc được là một số nguyên dương xác định số đếm tức thời.

Tên của bộ đếm có dạng Cx với 0≤x≤255.

b) Đọc số đếm tức thời dạng BCD

Cú pháp LC <Tên Counter>

Toán hạng là tên bộ đếm mà thanh ghi C-Word của nó sẽ được đọc vào ACCU1. Giá trị đọc được là số BCD.

Tên của bộ đếm có dạng Cx với 0≤x≤255.

Page 78: Bai giang dieu khien logic

78

5.6.6- Kỹ thuật sử dụng con trỏ Con trỏ (Pointer) là một công cụ mạnh, rất được ưa dùng trong các chương chình điều

khiển. Việc sử dụng con trỏ được hiểu là sự truy nhập gián tiếp tới một ô nhớ trong bộ nhớ. Ta hãy xét lệnh đọc nội dung ô nhớ MW0 vào ACCU1 làm ví dụ:

LC MW0 //Đọc giá trị của ô nhớ MW0 vào thanh ghi ACCU1

Lệnh này là lệnh truy nhập trực tiếp ô nhớ MW0 vì địa chỉ của ô nhớ đó là MW0 đã được cho trực tiếp trong lệnh dưới dạng toán hạng. Như vậy, có thể hình dung ra lệnh đọc nội dung ô nhớ MW0 mà địa chỉ ô nhớ đó không cho trực tiếp trong lệnh sẽ là lệnh truy nhập gián tiếp.

Trong lệnh truy nhập gián tiếp, địa chỉ ô nhớ được truy cập sẽ là nội dung của một ô nhớ khác mà ta gọi là con trỏ. Ví dụ việc truy nhập trực tiếp ô nhớ MW0 ở trên tương đương với lệnh truy nhập gián tiếp nhờ con trỏ MD10 như sau:

L 0

T MD10

L MW[10] //Đọc giá trị của ô nhớ có địa chỉ cho trong MD10

Như phần đầu chương đã mô tả, địa chỉ một ô nhớ trong S7-300 gồm 2 phần : phần chữ và phần số. Ví dụ:

Trong đó phần chữ chỉ vị trí trong vùng, kích thước của ô nhớ và phần số chỉ địa chỉ của byte hoặc bit trong vùng nhớ đã xác định. Tương ứng với cách biểu diễn địa chỉ như vậy mà con trỏ cũng có 2 dạng:

- Chỉ chứa phần số. Đây là kiểu con trỏ địa phương xác định vị trí ô nhớ trong vùng.

- Chứa cả phần số và chữ. Đây là con trỏ toàn cục xác định vị trí ô nhớ trong bộ nhớ.

5.6.6.1 Sử dụng MW hoặc từ kép MD làm con trỏ Ta có thể sử dụng một ô nhớ thuộc vùng nhớ M có kích thước là từ (MW) hoặc từ kép

(MD) để làm con trỏ. Trong những trường hợp như vậy, con trỏ MW hoặc MD chỉ có thể là con trỏ địa phương (chỉ chứa phần số của địa chỉ).

Do phần số của địa chỉ có hai dạng thể hiện ( Địa chỉ byte, ví dụ: 20, 22, 100, ….

Hay địa chỉ bit, ví dụ: 20.0, 22.2, 100.5, … ) nên con trỏ đại phương MW, MD cũng có hai hình thái.

- Con trỏ địa phương chỉ bị trí byte trong vùng và con trỏ địa phương chỉ vị trí bit trong vùng.

MW100

Phần chữ Phần số Hoặc

I20.4

Phần chữ Phần số