64
Chương I. GIỚI THIỆU TỔNG QUÁT VỀ PLC S7_200 1. Khái niệm về PLC PLC (Programmable Logic Control) là thiết bị điểu khiển logic lập trình được hay gọi là khả trình. 2. Các loại PLC Có rất nhiều loại PLC như: PLC Siemens, Omron, Mitsubishi,… Trong PLC siemens có 3 loại chính: Trong PLC S7_200 có các loại sau: 212, 214, 221, 222, 224, 226,… 3. Cấu trúc của PLC S7_200 PLC S7_200 có 3 bộ phận chính: 1

Tài liệu PCL tổng hợp

Embed Size (px)

DESCRIPTION

PLC

Citation preview

Page 1: Tài liệu PCL tổng hợp

Chương I.GIỚI THIỆU TỔNG QUÁT VỀ PLC S7_200

1. Khái niệm về PLCPLC (Programmable Logic Control) là thiết bị điểu khiển logic lập trình được

hay gọi là khả trình.

2. Các loại PLCCó rất nhiều loại PLC như: PLC Siemens, Omron, Mitsubishi,…Trong PLC siemens có 3 loại chính:

Trong PLC S7_200 có các loại sau: 212, 214, 221, 222, 224, 226,…

3. Cấu trúc của PLC S7_200PLC S7_200 có 3 bộ phận chính:

1

Page 2: Tài liệu PCL tổng hợp

4. Hình dáng của PLC S7_200PLC S7_200 bao gồm những thành phần sau đây:

5. Số ngõ vào raTùy vào từng loại PLC mà có số ngõ vào ra khác nhau:

PLC Nguồn cấp cho PLC Ngõ vào Ngõ ra Module mở rộng221 DC/DC/DC221 AC/DC/Relay

20.4 – 28.8 VDC85 – 264 VAC47 – 63 Hz

6 DC6 DC

4 DC4 Relay None

222 DC/DC/DC222 AC/DC/Relay

20.4 – 28.8 VDC85 – 264 VAC47 – 63 Hz

8 DC8 DC

6 DC6 Relay 2

224 DC/DC/DC224 AC/DC/Relay

20.4 – 28.8 VDC85 – 264 VAC47 – 63 Hz

14 DC14 DC

10 DC10 Relay 7

226 DC/DC/DC226 AC/DC/Relay

20.4 – 28.8 VDC85 – 264 VAC47 – 63 Hz

24 DC24 DC

16 DC15 Relay 7

6. Cấu trúc bộ nhớ của PLCBộ nhớ của S7_200 được chia làm 4 vùng chính:

Vùng chương trình: là miền bộ nhớ được sử dụng để lưu các lệnh chương trình.

Vùng tham số: là miền lưu trữ các tham số như: từ khóa, địa chỉ trạm,… Vùng dữ liệu: được sử dụng để cất giữ các dữ liệu của chương trình bao

gồm các kết quả 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 đối tượng: Timer, counter, bộ đếm tốc độ cao và các cổng vào/ra được đặt trong vùng nhớ này.

2

Page 3: Tài liệu PCL tổng hợp

7. Vòng quét chương trìnhCPU thực hiện 1 vòng quét như sau:

8. Đèn báo hiệu

Đèn SF (đèn đỏ): báo hiệu hệ thống bị lỗi. Đèn Run (đèn xanh): PLC đang hoạt động và thực hiện chương trình

được nạp vào CPU. Đèn STOP (đèn vàng): PLC đang ở chế độ dừng. Chương trình

không được thực hiện. Đèn tín hiệu ngõ vào (đèn xanh): đèn báo hiệu trạng thái ngõ vào ở

mức cao (mức 1). Đèn tín hiệu ngõ ra (đèn xanh): đèn báo hiệu trạng thái ngõ ra ở mức

cao (mức 1).

3

Page 4: Tài liệu PCL tổng hợp

9. Chọn chế độ hoạt động cho PLC

RUN: cho phép PLC thực hiện chương trình trong bộ nhớ. PLC sẽ chuyển từ RUN sang STOP khi chương trình gặp sự cố.

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

TERM: cho phép thiết bị lập trình tự quyết định chế độ làm việc của PLC ở RUN hay STOP.

10. Cổng truyền thôngPLC sử dụng cổng truyền thông nối tiếp RS485 để phục vụ cho việc ghép nối

với các thiết bị lập trình hoặc với các trạm PLC khác.Ghép nối với máy tính PC qua cổng RS-232 cần có cáp PC/PPI với bộ

chuyển đổi RS232/RS485 hoặc thông qua cổng USB.11. Ngôn ngữ lập trình cho PLC

Có 3 ngôn ngữ lập tình chính cho PLC S7_200: LAD (Ladder Logic): lập trình theo phương pháp hình thang. STL (Statement List): lập trình theo phương pháp liệt kê lệnh. FBD (Function Block Diagram): lập trình theo phương pháp khối chức

năng.

4

Page 5: Tài liệu PCL tổng hợp

12. Các vùng nhớ của PLC S7_200a. Vùng nhớ PLC

Trong PLC S7_200 có các vùng nhớ cơ bản sau: I (Input): các ngõ vào số. Q (Output): các ngõ ra số. M (Internal Memory): vùng nhớ nội. V (Variable memory): vùng nhớ biến. AIW (Analog Input): ngõ vào analog. AQW (Analog Output): ngõ ra analog. T (Timer): bộ định thời. C (Counter) : Bộ đếm. AC: con trỏ địa chỉ.

b. Định dạng dữ liệu Kiểu Bool

Ví dụ: I0.0, Q0.7, M0.3, V1.5,…

Một biến kiểu Bool chỉ có 2 giá trị 0 hoặc 1 ( True hoặc False). Kiểu Byte

1Byte = 8bit. Suy ra giá trị của Byte trong khoảng từ 0 – hoặc từ 0 – 255.

Ví dụ: QB0, MB1, VB5,…

Kiểu Word1Word = 2Byte = 16bit. Suy ra giá trị của 1 Word trong khoảng từ

0 - . Ví dụ: IW0, QW0, MW5, VW10,…

5

Page 6: Tài liệu PCL tổng hợp

QW0 = QB0 + QB1. Trong đó, QB0 là byte cao, QB1 là byte thấp. Kiểu DWord

1Dword = 2Word = 4Byte = 32bit. Suy ra giá trị của 1 DWord trong khoảng từ 0 - .

VD: ID0, QD0, MD4, VD8,…

MD0 = MW0 + MW2 = MB0 + MB1 + MB2 + MB3. Trong đó MB0 là Byte cao nhất, MB3 là Byte thấp nhất.

Kiểu Int: kiểu số nguyênMột biến kiểu Int tương đương 1 Word tức là có 16 bit. Biến kiểu

Int có những đặc điểm khác với kiểu Word: Biến kiểu Word không có dấu, biến kiểu Int có dấu (bit cao

nhất là bit dấu). Giá trị 1 Int là: (do có 1 bit dấu). Định dạng 1 biến kiểu Word phải có 16# đứng đầu. Còn của

Int thì không có.VD : 16#1111, 16#ABCD, … là 1 Word

1, 15, 100, 150,… là 1 Int Kiểu DInt: kiểu số nguyên

Một biến kiểu DInt tương đương 1 DWord tức là có 32 bit. Biến kiểu DInt có những đặc điểm khác với kiểu DWord:

Biến kiểu DWord không có dấu, biến kiểu DInt có dấu (bit cao nhất là bit dấu).

Giá trị 1 DInt là: (do có 1 bit dấu). Định dạng 1 biến kiểu DWord phải có 16# đứng đầu. Còn của

DInt thì không có.VD : 16#11119999, 16#ABCDDCBA, … là 1 DWord

1, 15, 100, 150,… là 1 DInt Kiểu Real: số thực

Một biến kiểu Real có 32 bit. Định dạng phải có dấu “.” Thập phân.

VD: 1.5, 3.4, …6

Page 7: Tài liệu PCL tổng hợp

13. Một số bit nhớ đặc biệtSM0.0: Luôn luôn có giá trị logic bằng 1.SM0.1: Có giá trị logic bằng 1 ở chu kỳ quét đầu tiên.SM0.4: Phát xung 60s (0 – cho 30s đầu, 1 – cho 30s sau).SM0.5: Phát xung 1s (0 – cho 0.5s đầu, 1- cho 0.5s sau).

7

Page 8: Tài liệu PCL tổng hợp

Chương II

TẬP LỆNH TRONG PLC S7_200

I. Lệnh về bit (bit logic)

1. Tiếp điểm thường mở:

Tiếp điểm thường mở sẽ được đóng ( kín mạch tức là cho dòng điện chạy qua) khi địa chỉ lên 1.

Địa chỉ có thể sử dụng các kiểu dữ liệu sau: I, Q, M, SM, T, C, V.

2. Tiếp điểm thường đóng:

Tiếp điểm thường đóng sẽ được mở ( hở mạch tức là không cho dòng điện chạy qua) khi địa chỉ lên 1. Thường mở sẽ trái trạng thái với thường đóng.

Địa chỉ có thể sử dụng các kiểu dữ liệu sau: I, Q, M, SM, T, C, V.

8

Page 9: Tài liệu PCL tổng hợp

3. Tiếp điểm thương mở tức thời:

Tiếp điểm thường mở sẽ được đóng tức thời ( kín mạch tức là cho dòng điện chạy qua) khi địa chỉ lên 1.

Địa chỉ có thể sử dụng kiểu dữ liệu sau: I4. Tiếp điểm thường đóng tức thời:

Tiếp điểm thường đóng sẽ được mở tức thời (hở mạch tức là không cho dòng điện chạy qua) khi địa chỉ lên 1.

Địa chỉ có thể sử dụng kiểu dữ liệu sau: I5. Đảo trạng thái bit:

Dùng để đảo trạng thái trước đó.6. Vi phân cạnh lên:

Khi có sườn lên (tức chuyển từ 0 – 1) của xung điều khiển thì ngõ ra sẽ lên 1 trong chu kỳ quét. Sau đó trở về 0.

7. Vi phân cạnh xuống:

Khi có sườn xuống (tức chuyển từ 1 – 0) của xung điều khiển thì ngõ ra sẽ lên 1 trong chu kỳ quét. Sau đó trở về 0.

9

Page 10: Tài liệu PCL tổng hợp

8. Ngõ ra hay cuộn coil:

Cuộn coil sẽ ở trạng thái kích thích (địa chỉ tương ứng lên mức 1) khi có dòng điện đi qua. Khi không có dòng điện đi qua thì địa chỉ tương ứng xuống mức 0.

Địa chỉ có thể sử dụng các kiểu dữ liệu sau: Q, M, T, C, V.

Ví dụ 1: Cho đoạn chương trình như sau:

Ví dụ 2: Cho đoạn chương trình sau:

10

Page 11: Tài liệu PCL tổng hợp

Ví dụ 3: Cho đoạn chương trình như sau:

9. Lệnh Set

Khi có tín hiệu vào (lệnh set được kích) thì sẽ đóng một mãng gồm n bit kể từ bit cần set. Khi ngắt tín hiệu vào thì vẫn duy trì ở mức 1. Khi gặp lệnh Reset thì mới trở về mức 0.

Bít cần set có thể sử dụng các kiểu dữ liệu sau: Q, M, T, C, V.Ví dụ:

11

Page 12: Tài liệu PCL tổng hợp

10. Lệnh Reset

Khi có tín hiệu vào (lệnh reset được kích) thì sẽ ngắt một mãng gồm n bit kể từ bit cần reset.

Bít cần reset có thể sử dụng các kiểu dữ liệu sau: Q, M, T, C, V.

Ví dụ: Viết chương trình điều khiển 2 Xy lanh như sau: Nhấn Start (I0.0) Xy lanh A (Q0.0) chạy ra. Chạm công tác hành trình S1 (I0.1) thì Xy lanh B (Q0.1) chạy

ra. Chạm công tác hành trình S2 (I0.2) thì Xy lanh B chạy về. Chạm công tác hành trình S3 (I0.3) thì Xy lanh A chạy về.

12

Page 13: Tài liệu PCL tổng hợp

11. Lệnh SR:

Kiểu dữ liệu của ngõ vào: Kiểu Bool (I, Q, M, SM, T, C, V).Kiểu dữ liệu của ngõ vào: Kiểu Bool (I, Q, M, SM, T, C, V).

Bảng chân trịS1 R OUT0 0 Giữ nguyên trạng thái trước đó0 1 01 0 11 1 1

12. Lệnh RS:

Kiểu dữ liệu của ngõ vào: Kiểu Bool (I, Q, M, SM, T, C, V).Kiểu dữ liệu của ngõ vào: Kiểu Bool (I, Q, M, SM, T, C, V).

Bảng chân trịS1 R OUT0 0 Giữ nguyên trạng thái trước đó0 1 01 0 11 1 0

Chương III

13

Page 14: Tài liệu PCL tổng hợp

TIMER VÀ COUNT

I. TIMERTimer (bộ định thời) được sử dụng trong các yêu cầu điều khiển cần trì hoãn

thời gian. Đây là phần tử chức năng cở bản trong PLC và rất được sử dụng trong các chương trình điều khiển. chẳng hạn như băng tải hoạt động 5s, động cơ trộn nguyên liệu trong 10s, van khí nén cần có điện trong 8s,…

PLC S7_200 có 256 Timer có địa chỉ từ 0 – 255, chia làm 3 loại: TON (On – delay timer): Timer đóng mạch chậm. TONR (Retentive On – delay timer): Timer đóng mạch chậm có nhớ. TOF (OFF – Delay timer): Timer ngắt mạch chậm.

Khi sử dụng Timer ta cần xác định các thông số sau: Loại Timer (TON, TONR, TOF). Độ phân giải của Timer. Có 3 độ phân giải là 1ms, 10ms và 100ms. Số của Timer sẽ sử dụng ví dụ như T0, T37,… Khai báo thời gian cần delay dựa vào độ phân giải của Timer. Tín hiệu cho phép bắt đầu tính thời gian.

Ký hiệu chung của Timer trong PLC S7_200 biểu diễn ở LAD như sau :

Trong đó : ??. ?: Ký hiệu và số thứ tự của Timer. Ví dụ như: T0, T25,… IN: ngõ vào cho phép Timer hoạt động. PT: nhập số thời gian delay. T_type: cho biết loại timer nào: TON, TONR, TOF.  ??ms: Độ phân giải của timer và nó tự xuất hiện theo ??.?.

Cách tính thời gian delay :Thời gian delay = [PT] x [??ms].

Ví dụ:

Đây là loại timer On – delay timer, có tên là T37, có độ phân giải là 100ms. Vậy thời gian delay là: 50x100ms = 5s.

1. TON

14

Page 15: Tài liệu PCL tổng hợp

TON dùng để đóng mạch chậm tức là sau khi có điện vào thì sau 1 khoảng thời gian nhất định thì ngõ ra mới lên mức 1.

TON bắt đầu đếm thời gian khi ngõ vào IN ở mức logic 1. Khi giá trị hiện hành Txxx lớn hơn hoặc bằng giá trị đặt trước PT thì Timer Bit logic 1. Giá trị hiện hành của TON bị xóa khi ngõ vào IN ở mức logic 0. Timer vẫn tiếp tục đến dù đã đạt giá trị đặt PT và giá trị đến max của timer là 32767.

Để xóa Timer ta có thể dùng lệnh Reset, lệnh Reset làm cho Timer Bit ở mức logic 0 và giá trị hiện hành = 0.

Có 192 Timer TON/TOF trong S7 – 200 được sắp xếp theo độ phân giải như sau:

Số Timer Độ phân giải Thời gian trì hoãn tối đaT32, T96 1ms 32,767sT33…T36, T97…T100 10ms 327,67sT37…T63, T101…T255 100ms 3276,7s

Ví dụ: cho chương trình như sau:Dùng Timer On T37 có độ phân giải 100ms, giá trị đặt trước là 30. Vậy thời gian delay là 30x100ms = 3s.

Tiếp điểm thường hở T37 đóng lại sau 3s lúc đó ngõ ra Q0.0 cũng lên mức 1.

Giản đồ thời gian:

Khi T0.0 lên mức 1 thì T37 bắt đầu đến. Khi T37 chưa bằng PT=30 mà ngõ vào I0.0 xuống mức 0 thì T37 cũng trở về 0, lúc đó ngõ ra Q0.0 = 0. Khi T37 lớn hơn hoặc bằng PT = 30 thì Timer Bit lên mức 1, tương ứng với ngõ ra cũng lên mức 1. Timer vẫn đếm đến khi nào ngõ vào I0.0 xuống mức 0 thì T37 cũng

15

Page 16: Tài liệu PCL tổng hợp

xuống mức 0. Nếu vẫn duy trì ngõ vào I0.0 ở mức 1 thì T37 đếm đến giá trị tối đa là 32767.

Ví dụ: viết chương trình điều khiển đèn giao thông ở ngã tư với yêu cầu như sau:

Nhấn Start (I0.0) hệ thống đèn bắt đầu hoạt động, nhấn Stop (I0.1) thì dừng.

Đèn đỏ 1 (Q0.0) sáng 50s, xanh 1 (Q0.1) sáng 40s và vàng 1 (Q0.2) sáng 10s.

Đèn đỏ 2 (Q0.3) sáng 50s, xanh 2 (Q0.4) sáng 40s và vàng 2 (Q0.5) sáng 10s.

2. TONRTONR dùng để đóng mạch chậm tức là sau khi có điện vào thì sau 1

khoảng thời gian nhất định thì ngõ ra mới lên mức 1.

TONR bắt đầu đếm thời gian khi ngõ vào IN ở mức logic 1. Khi giá trị hiện hành Txxx lớn hơn hoặc bằng giá trị đặt trước PT thì Timer Bit logic 1. Giá trị hiện hành của TONR được giữ khi ngõ vào IN ở mức logic 0 và tiếp tục đến bắt đầu từ giá trị đó khi ngõ vào IN lên mức 1. Timer vẫn tiếp tục đến dù đã đạt giá trị đặt PT và giá trị đến max của timer là 32767.

Để xóa Timer ta có thể dùng lệnh Reset, lệnh Reset làm cho Timer Bit ở mức logic 0 và giá trị hiện hành = 0.

Có 64 Timer TONR trong S7 – 200 được sắp xếp theo độ phân giải như sau:

Số Timer Độ phân giải Thời gian trì hoãn tối đaT0, T64 1ms 32,767sT1…T4, T65…T68 10ms 327,67sT5…T31, T69…T95 100ms 3276,7s

Ví dụ: Cho chương trình như sau:

Dùng TOR T5 có độ phân giải là 100ms, thời gian đặt là 40. Vậy thời gian cần delay là 40x100ms = 4s

Sau 4s ngõ ra Q0.0 lên mức 1.

Tín hiệu I0.1 dùng để Reset T5.

16

Page 17: Tài liệu PCL tổng hợp

Giản đồ thời gian:

Khi có tín hiệu vào I0.0 thì Timer bắt đầu đếm, khi ngắt tín hiệu vào thì Timer ngưng đến và giữ ở số đã đếm được. Khi có tín hiệu vào tiếp thì Timer bắt đầu đếm tiếp đến khi bằng hoặc lớn hơn giá trị đặt trước thì Timer Bit lên mức logic 1. Tương ứng ngõ ra Q0.0 lên mức logic 1. Khi có tín hiệu vào I0.1 thì Timer bị Reset về 0 và làm cho ngõ ra Q0.0 xuống mức logic 0. Khi hết tín hiệu vào I0.1 thì Timer tiếp tục đến. Giá trị đếm tối đa của TONR là 32767.

3. TOFTOF dùng để ngắt mạch trễ tức là sau khi ngắt điện ngõ vào thì sau 1

khoảng thời gian nhất định thì ngõ ra mới xuống mức 0.

Khi ngõ vào của TOF ở mức logic 1 thì Timer Bit lập tức lên mức 1 và giá trị hiện hành của timer được xóa về 0. Khi ngõ vào IN xuống mức logic 0 thì timer bắt đầu đếm đến khi bằng giá trị đặt trước PT thì Timer Bit xuống mức 0 và giá trị hiện hành dừng đếm. Nếu ngõ vào xuống mức 0 ngắn hơn thời gian đặt trước thì Timer Bit vẫn ở mức logic 1.

Để xóa Timer ta có thể dùng lệnh Reset, lệnh Reset làm cho Timer Bit ở mức logic 0 và giá trị hiện hành = 0.

Có 192 Timer TON/TOF trong S7 – 200 được sắp xếp theo độ phân giải như sau:

Số Timer Độ phân giải Thời gian trì hoãn tối đaT32, T96 1ms 32,767sT33…T36, T97…T100 10ms 327,67sT37…T63, T101…T255 100ms 3276,7s

17

Page 18: Tài liệu PCL tổng hợp

Ví dụ: Xét đoạn chương trình như sau:Dùng Timer OFF T37 có độ phân giải 100ms, giá trị đặt trước là 20. Vậy thời gian delay là 20x100ms = 2s.Tiếp điểm thường hở T37 sẽ mở ra làm cho Q0.0 xuống mức 0 sau 2s khi ngõ vào I0.0 chuyển từ mức logic 1 xuống 0.

Giản đồ thời gian:

II. COUNTCounter là bộ đếm thực hiện chức năng đếm sườn xung trong S7 – 200. Sử

dung bộ đếm giải quyết những vấn đề sau: Đếm số lượng. So sánh với một giá trị đặt trước. Kiểm tra sự khác biệt về số lượng.

Trong PLC S7 – 200 có 256 bộ đếm có địa chỉ từ C0 đến C255. Chúng có 3 loại bộ đếm:

Bộ đếm lên CTU (Up Counter). Bộ đếm xuống CTD (Down Counter). Bộ đếm lên/xuống CTUD (Up/Down Counter).

Khi sử dụng Counter ta cần phải xác định các thông số sau: Loại Counter (CTU, CTD hay CTUD). Địa chỉ Counter sẽ sử dụng, không được gán cùng một địa chỉ Counter

cho nhiều Counter. Khai báo giá trị cần đếm cho Counter. Tín hiệu xung cung cấp cho bộ đếm. Tín hiệu xóa bộ đếm.

18

Page 19: Tài liệu PCL tổng hợp

1. Bộ đếm lên CTU (Up Counter)Bộ đếm CTU được biểu diễn ở LD như sau:

Trong đó: Cxxx: Ký hiệu và số thứ tự của Counter. Ví dụ: C9, C12,… CTU: Ký hiệu loại Up Counter. CU: Ngõ vào Bit, đếm lên. R: Ngõ vào Reset để xóa bộ đếm. PV: Giá trị đặt trước của bộ đếm. Biểu diễn số Integer.

Khi tín hiệu ngõ vào CU chuyển từ 0 lên 1 thì bộ đếm sẽ tăng giá trị hiện hành của nó lên 1 đơn vị. Khi giá trị hiện hành của bộ đếm Cxxx lớn hơn hay bằng giá trị đặt trước PV thì ngõ ra bit của Counter sẽ lên mức logic 1. Giá trị đếm tối đa là 32767.

Khi tín hiệu ngõ vào chân R chuyển từ mức 0 lên mức 1 hay có lệnh Reset Counter thì bộ đếm sẽ bị xóa về 0.

Ví dụ: xét đoạn chương trình sau:Dùng CTU C0, giá trị đặt trước là 5. Tín hiệu vào CU là I0.0, tín hiệu vào chân R là I0.1.

Tiếp điểm thường hở C0 lên mức 1 khi giá trị tức thời của C0 lớn hơn hay bằng PV= 5. Khí đó ngõ ra Q0.0 lên mức logic 1.

Giản đồ xung:

19

Page 20: Tài liệu PCL tổng hợp

Khi có tín hiệu vào CU thì Counter tăng lên 1 đơn vị. Khi giá trị hiện hành của Counter lớn hơn hay bằng PV = 5 thì ngõ ra bit của Counter lên 1 đong thời ngõ ra lên 1. Nếu vẫn có tín hiệu ngõ vào thì Counter tiếp tục đếm lên. Khi có tín hiệu ngõ vào R thì Counter bị xóa về 0 làm ngõ ra bit Counter xuống mức 0. Nếu có tín hiệu ngõ vào CU thì Counter lại tiếp tục đếm lại.

Ví dụ: Viết chương trình điều khiển với yêu cầu sau:

Nhấn nút Start (S1) thì hệ thống hoạt động, băng tải chạy để cấp sản phẩm vào hộp. Cảm biến S2 đếm sản phẩm vào hộp. khi đủ 10 sản phẩm thì băng tải ngừng hoạt động. Sau 5s thì lặp lại chu trình trước đó.

Nhấn nút Stop (S2) thì hệ thống ngừng hoạt động.2. Bộ đếm xuống CTD (Down Counter)

Bộ đếm CTD được biểu diễn ở LD như sau:

Trong đó: Cxxx: Ký hiệu và số thứ tự của Counter. Ví dụ: C9, C12,… CTD: Ký hiệu loại Down Counter. CD: Ngõ vào Bit, đếm xuống. LD: Nạp giá trị đặt trước cho bộ đếm xuống. Ngõ vào bit. PV: Giá trị đặt trước của bộ đếm. Biểu diễn số Integer.

Khi ngõ vào LD (load) lên mức logic 1 thì Counter sẽ nạp giá trị đặt trước vào.

Khi tín hiệu ngõ vào CD chuyển từ 0 lên 1 thì bộ đếm sẽ giảm giá trị hiện hành của nó xuống 1 đơn vị. Khi giá trị hiện hành của bộ đếm Cxxx bằng 0 thì ngõ ra bit của Counter sẽ lên mức logic 1. Giá trị nạp tối đa là 32767.

Bộ đếm sẽ dừng đếm khi giá trị hiện hành bằng 0 và Counter bit Cxxx lên mức 1.

Khi xóa bộ đếm bằng lệnh Reset thì Counter bit bị xóa và giá trị hiện hành được đặt về 0.

20

Page 21: Tài liệu PCL tổng hợp

Ví dụ: xét đoạn chương trình sau:Dùng CTD C1, giá trị đặt trước là 4. Tín hiệu vào CD là I0.0, tín hiệu vào chân LD là I0.1.

Tiếp điểm thường hở C0 lên mức 1 khi giá trị tức thời của C0 giảm từ 10 trở về 0. Khí đó ngõ ra Q0.0 lên mức logic 1.

Giản đồ thời gian:

Khi có tín hiệu ngõ vào LD thì Counter load giá trị ở PV vào Counter. Khi có tín hiệu ngõ vào CD lên mức logic 1 thì Counter giảm đi 1 đơn vị. Khi giá trị hiện hành của Cuonter bằng 0 thì counter bit lên mức 1 tương ứng ngõ Ra Q0.0 lên mức logic 1. Khi gặp lệnh Reset thì Counter bị xóa về mức 0.

3. Bộ đếm lên xuống CTUD (Up/Down Counter)Bộ đếm CTUD được biểu diễn ở LD như sau:

Trong đó: Cxxx: Ký hiệu và số thứ tự của Counter. Ví dụ: C9, C12,… CTUD: Ký hiệu loại Up/Down Counter. CU: Ngõ vào Bit, đếm lên. CD: Ngõ vào Bit, đếm xuống. R: Ngõ vào Reset để xóa bộ đếm. PV: Giá trị đặt trước của bộ đếm. Biểu diễn số Integer.

21

Page 22: Tài liệu PCL tổng hợp

Khi tín hiệu ngõ vào CU chuyển từ 0 lên 1 thì bộ đếm sẽ tăng giá trị hiện hành của nó lên 1 đơn vị. Ngược lại khi có tín hiệu ngõ vào CD chuyển từ 0 lên 1 thì bộ đếm sẽ giảm giá trị hiện hành của nó lên 1 đơn vị. Khi giá trị hiện hành của bộ đếm Cxxx lớn hơn hay bằng giá trị đặt trước PV thì ngõ ra bit của Counter sẽ lên mức logic 1.

Khi đạt đến giá trị max (32767), thì ở cạnh lên của ngõ vào CU thì bộ đếm sẽ đặt về giá trị min (-32767).

Khi đạt đến giá trị min (-32767), thì ở cạnh lên của ngõ vào CD thì bộ đếm sẽ đặt về giá trị max (32767).

Phạm vi của bộ đếm là từ C0 đến C255.Khi tín hiệu ngõ vào chân R chuyển từ mức 0 lên mức 1 hay có lệnh Reset

Counter thì bộ đếm sẽ bị xóa về 0.Ví dụ: xét đoạn chương trình sau:

Dùng CTUD C0, giá trị đặt trước là 4. Tín hiệu vào CU là I0.0, tín hiệu vào CD là I0.1, tín hiệu vào chân R là I0.2.

Tiếp điểm thường hở C0 lên mức 1 khi giá trị tức thời của C0 lớn hơn hay bằng PV= 4. Khí đó ngõ ra Q0.0 lên mức logic 1.

Giản đồ thời gian:

22

Page 23: Tài liệu PCL tổng hợp

Chương IV

CÁC LỆNH VỀ SO SÁNH VÀ SỐ HỌCI. Lệnh về so sánh

1. Thanh công cụ của lệnh so sánh

Có các loại so sánh sau: == : so sánh bằng <> : so sánh khác >= : so sánh lớn hơn hoặc bằng <= : so sánh nhỏ hơn hoặc bằng > : so sánh lớn hơn < : so sánh nhỏ hơn

Các kiểu số trong lệnh so sánh: Byte (Ký hiệu là B) Int (Ký hiệu là I) Dint (Ký hiệu là D) Real (Ký hiệu là R) String (Ký hiệu là S)

Toán hạng dùng trong lệnh so sánh:INPUT Kiểu dữ liệu Toán hạng

IN1, IN2 BYTEINT

DINT,REAL

IB,QB,VB,MB,SMB,AC, Hằng số.IW,QW,VW,MW,SMW,T,C,AC, Hằng số.ID,QD,VD,MD,SMD,AC, Hằng số.

23

Page 24: Tài liệu PCL tổng hợp

2. Lệnh so sánh bằngKý hiệu của lệnh so sánh bằng với kiểu số là Byte: Khi IN1 = IN2 thì ngõ ra sẽ lên mức logic 1.Tương tự ta có so sánh bằng với kiểu số là Int, Dint, Real, String.

3. Lệnh so sánh khácKý hiệu của lệnh so sánh khác với kiểu số là Byte: Khi IN1 # IN2 thì ngõ ra sẽ lên mức logic 1.Tương tự ta có so sánh khác với kiểu số là Int, Dint, Real, String.

4. Lệnh so sánh lớn hơn hoặc bằngKý hiệu của lệnh so sánh lớn hơn hoặc bằng với kiểu số là Byte: Khi IN1 lớn hơn hoặc bằng IN2 thì ngõ ra sẽ lên mức logic 1.Tương tự ta có so sánh lớn hơn hoặc bằng với kiểu số là Int, Dint, Real,

String.

5. Lệnh so sánh nhỏ hơn hoặc bằngKý hiệu của lệnh so sánh nhỏ hơn hoặc bằng với kiểu số là Byte: Khi IN1 nhỏ hơn hoặc bằng IN2 thì ngõ ra sẽ lên mức logic 1.Tương tự ta có so sánh nhỏ hơn hoặc bằng với kiểu số là Int, Dint, Real,

String.

6. Lệnh so sánh lớn hơnKý hiệu của lệnh so sánh lớn hơn với kiểu số là Byte: Khi IN1 lớn hơn IN2 thì ngõ ra sẽ lên mức logic 1.Tương tự ta có so sánh lớn hơn với kiểu số là Int, Dint, Real, String.

7. Lệnh so sánh nhỏ hơnKý hiệu của lệnh so sánh nhỏ hơn với kiểu số là Byte: Khi IN1 nhỏ hơn IN2 thì ngõ ra sẽ lên mức logic 1.Tương tự ta có so sánh nhỏ hơn với kiểu số là Int, Dint, Real, String.

8. Ví dụ:Viết chương trình điều khiển đèn giao thông sử dụng 1 Timer với yêu cầu

sau: Nhấn Start (I0.0) hệ thống đèn bắt đầu hoạt động, nhấn Stop (I0.1) thì

dừng. Đèn đỏ 1 (Q0.0) sáng 50s, xanh 1 (Q0.1) sáng 40s và vàng 1 (Q0.2)

sáng 10s. Đèn đỏ 2 (Q0.3) sáng 50s, xanh 2 (Q0.4) sáng 40s và vàng 2 (Q0.5)

sáng 10s.

24

Page 25: Tài liệu PCL tổng hợp

II. Lệnh về số học1. Thanh công cụ của lệnh số học

2. Lệnh Cộng – TrừLệnh Cộng – Trừ hai số nguyên 16 bít.

Cộng 2 số nguyên 16 bít Trừ hai số nguyên 16 bítChân EN: ngõ vào cho phépKhi ngõ vào cho phép lên 1 chương trình sẽ thực hiện việc Cộng ( hay Trừ)

2 số nguyên 16 Bit ở IN1và IN2, kết quả đưa vào vào số nguyên 16 bít được định địa chỉ ở OUT (IN1 + IN2 = OUT, IN1 – IN2 = OUT).

Tương tự ta có :a. ADD_DI: Cộng 2 số nguyên 32 bít.

b. SUB_DI: Trừ 2 số nguyên 32 bít.

25

Page 26: Tài liệu PCL tổng hợp

c. ADD_R: Cộng 2 số thực

d. SUB_R: Trừ 2 số thực

Toán hạng dùng trong lệnh Cộng – Trừ :INPUT/OUT Kiểu dữ liệu Toán hạng

IN1, IN2 INTDINTREAL

IW,QW,VW,MW,SMW,T,C,AC, Hằng số.ID,QD,VD,MD,SMD,AC, Hằng số.ID,QD,VD,MD,SMD,AC, Hằng số.

OUT INTDINT,REAL

IW,QW,VW,MW,SMW,T,C,AC.ID,QD,VD,MD,SMD,AC.

3. Lệnh Nhân – ChiaLệnh Nhân – Chia hai số nguyên 16 bít.

Nhân 2 số nguyên 16 bít Chia 2 số nguyên 16 bítChân EN: ngõ vào cho phépKhi ngõ vào cho phép lên 1 chương trình sẽ thực hiện việc Nhân ( hay

Chia) 2 số nguyên 16 Bit ở IN1và IN2, kết quả đưa vào vào số nguyên 16 bít được định địa chỉ ở OUT..

Trong phép Chia: do ngõ ra 16 bít nên số dư của phép chia sẽ bị bỏ.Trong phép Nhân: Bit báo tràn sẽ lên 1 nếu kết quả lớn hơn một số nguyên

16 bit.Tương tự ta có :

MUL_DI: Nhân 2 số nguyên 32 bít.

DIV_DI: Chia 2 số nguyên 32 bít

26

Page 27: Tài liệu PCL tổng hợp

MUL_R: Nhân 2 số thực

DIV_R: Chia 2 số thực

Lệnh MUL – DIV: Tương tự như lệnh nhân chia số nguyên 16 bit nhưng ngõ ra OUT là 32 bit.

Ta sử dụng lệnh MUL khi không biết ngõ ra có bị tràn hay không. Khi ta sử dụng lệnh DIV thì kết quả bao gồm số dư ở 16 bit cao còn

thương số ở 16 bit thấp.Toán hạng dùng trong lệnh Nhân – Chia:

INPUT/OUT Kiểu dữ liệu Toán hạngIN1, IN2 INT

DINTREAL

IW,QW,VW,MW,SMW,T,C,AC, Hằng số.ID,QD,VD,MD,SMD,AC, Hằng số.ID,QD,VD,MD,SMD,AC, Hằng số.

OUT INTDINT,REAL

IW,QW,VW,MW,SMW,T,C,AC.ID,QD,VD,MD,SMD,AC.

Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi các lệnh về số học: SM1.0 (Zero): bằng 1 nếu kết quả bằng 0. SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn. SM1.2 (Negative): bằng 1 nếu kết quả là số âm. SM1.3 (Divide-by-zero): bằng 1 nếu số chia bằng 0.

27

Page 28: Tài liệu PCL tổng hợp

Ví dụ:

Ta có:AC0 = 60AC1 = 40VW10 = 10VW20 = 5000VW30 = 50

28

Page 29: Tài liệu PCL tổng hợp

CHƯƠNG V

LỆNH DI CHUYỂN NỘI DUNG Ô NHỚ VÀ DỊCH CHUYỂN THANH GHI

I. Lệnh di chuyển ô nhớ (MOVE)Thanh công cụ của lệnh MOVE:

Trong PLC S7_200 có các lệnh MOVE sau: MOVE_B: di chuyển các giá trị cho nhau trong giới hạn 1 Byte. MOVE_W: di chuyển các giá trị cho nhau trong giới hạn 1 Word. MOVE_DW: di chuyển các giá trị cho nhau trong giới hạn 1 DWord. MOVE_R: di chuyển các giá trị cho nhau trong giới hạn 1 Real.

1. MOVE_B

Trong: EN: ngõ vào cho phép. IN: VB, IB, QB, MB, SB, SMB, LB, AC, Constant,… OUT: VB, IB, QB, MB, SB, SMB, LB, AC,…

Khi có tín hiệu ở ngõ vào cho phép, lệnh sẽ chuyển nội dung của ô nhớ trong (IN) sang ô nhớ trong OUT.

Ví dụ: Cho chương trình như sau:

Kết quả: QB0=00000011

29

Page 30: Tài liệu PCL tổng hợp

2. Lệnh MOVE_W

Trong: EN: ngõ vào cho phép. IN: VW, IW, QW, MW, SMW, T, C, AIW, AC, Constant,... OUT: VW, IW, QW, MW, SMW, T, C, QIW, AC,...

Khi có tín hiệu ở ngõ vào cho phép, lệnh sẽ chuyển nội dung của ô nhớ trong (IN) sang ô nhớ trong OUT.3. Lệnh MOVE_DW

Trong: EN: ngõ vào cho phép. IN: VD, ID, QD, MD, SMD, AC, Constant,... OUT: VD, ID, QD, MD, SMD, AC,...

Khi có tín hiệu ở ngõ vào cho phép, lệnh sẽ chuyển nội dung của ô nhớ trong (IN) sang ô nhớ trong OUT.4. Lệnh MOVE_R

Trong: EN: ngõ vào cho phép. IN: VD, ID, QD, MD, SMD, AC, Constant,... OUT: VD, ID, QD, MD, SMD, AC,...

Khi có tín hiệu ở ngõ vào cho phép, lệnh sẽ chuyển nội dung của ô nhớ trong (IN) sang ô nhớ trong OUT.

30

Page 31: Tài liệu PCL tổng hợp

II. Lệnh dịch chuyển thanh ghi (Shift, Rotate)Thanh công cụ của lệnh Shift và Rotate:

Trong PLC S7_200 có các lệnh Shirt và Rotate sau: SHL_B, SHR_B: Dịch sang trái, phải của Byte. SHL_W, SHR_W: Dịch sang trái, phải của Word. SHL_DW, SHR_DW: Dịch sang trái, phải của DWord. ROL_B, ROR_B: Xoay sang trái, phải của Byte. ROL_W, ROR_W: Xoay sang trái, phải của Word. ROL_DW, ROR_DW: Xoay sang trái, phải của DWord. SHRB: Dịch chuyển với độ dài thanh ghi tùy ý.

1. SHL_B, SHR_B

Trong đó: EN: ngõ vào cho phép dịch trái hay dịch phải. IN: Byte được dịch (VB, IB, QB, MB, SMB, AC, Constant,…) OUT: Byte chứa kết quả sau khi dịch (VB, IB, QB, MB, SMB, AC,

…) N: dịch N vị trí (VB, IB, QB, MB, SMB, AC, Constant,…)

Khi có tín hiệu ở ngõ vào cho phép, lệnh sẽ dịch chuyển nội dung của ô nhớ trong (IN) sang N bít và chứa ở ô nhớ trong OUT.

Các Bit dịch ra ngoài bị loại bỏ, các số 0 được chèn vào.Lệnh dịch sang trái:

Lệnh dịch sang phải:

31

Page 32: Tài liệu PCL tổng hợp

Ví dụ:

Sau khi I0.0 lên 1 thì QB0=10101100Tương tự ta có lệnh dịch chuyển sang trái, sang phải cho Word, DWord.

2. ROL_B, ROR_B

Trong đó: EN: ngõ vào cho phép xoay trái hay dịch phải. IN: Byte được xoay (VB, IB, QB, MB, SMB, AC, Constant,…) OUT: Byte chứa kết quả sau khi xoay (VB, IB, QB, MB, SMB, AC,

…) N: xoay N vị trí (VB, IB, QB, MB, SMB, AC, Constant,…)

Khi có tín hiệu ở ngõ vào cho phép, lệnh sẽ xoay nội dung của ô nhớ trong (IN) sang N bít và chứa ở ô nhớ trong OUT.

Các Bit xoay ra ngoài sẽ được chèn vào phía đối diện.Lệnh xoay sang trái:

Lệnh xoay sang phải:

Ví dụ:

32

Page 33: Tài liệu PCL tổng hợp

Sau khi I0.0 lên 1 thì QB0=10101110Tương tự ta có lệnh dịch chuyển sang trái, sang phải cho Word, DWord.

3. SHRB:

Trong đó: EN: ngõ vào cho phép dịch từ bít thấp sang bit cao (hoặc ngược lại). DATA: giá trị của bit DATA nạp vào bít thấp (bit cao) của thanh ghi. S_BIT: địa chỉ bít thấp nhất của thanh ghi. N: số bít trong thanh ghi cần dịch.

Có 2 trường hợp xảy ra:N>0: Khi có tín hiệu ngõ vào, thì thanh ghi có N bít được dịch chuyển từ phải sang trái (từ bít thấp sang bít cao) và giá trị của DATA chuyển vào bít thấp còn bít cao bị đẩy ra ngoài thanh ghi.

N<0: Khi có tín hiệu ngõ vào, thì thanh ghi có N bít được dịch chuyển từ trái sang phải ( từ bít cao sang bít thấp) và giá trị của DATA chuyển vào bít cao còn bít thấp bị đẩy ra ngoài thanh ghi.

Ví dụ:

33

Page 34: Tài liệu PCL tổng hợp

34

Page 35: Tài liệu PCL tổng hợp

CHƯƠNG VI

CÁC NHÓM LỆNH MỞ RỘNGI. Chương trình con

Thanh công cụ của chương trình con:

Chương trình con được sử dụng để chia chương trình chính thành những khối nhỏ và dễ quản lý hơn. Ưu điểm của chương trình con là giúp tìm lỗi và sữa chương tình dễ dàng hơn.

Khi một chương trình con được gọi ở chương tình chính thì nó thực hiện các lệnh của nó cho đến khi kết thúc chương trình.

Các lệnh sử dụng trong chương trình con giống như sử dụng trong chương trình chính.

Để sử dụng chương trình con bạn cần phải thực hiện 3 công việc sau: Tạo một chương trình con. Lập trình cho chương trình con. Gọi chương tình con từ 1 chương trình nào đó (chương trình chính,

chương trình con khác hay chương trinh ngắt).Lệnh gọi chương tình con:

Khi điều kiện lên 1 thì chương trình sẽ gọi chương trình con tương ứng để thực hiện.

35

Page 36: Tài liệu PCL tổng hợp

Ví dụ: viết chương trình vừa chạy chế độ bằng tay và chế độ tự động.

II. Đồng hồ thời gian thựcThanh công cụ của đồng hồ thời gian thực:

PLC cung cấp 2 lệnh về thời gian thực: lệnh đọc thời gian thực (READ_RTC) và lệnh ghi thời gian thực (SET_RTC).

Trong đó: EN: là chân cho phép. T: Byte đầu tiên trong 8 byte chứa thời gian.

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7Năm Tháng Ngày Giờ Phút Giây Thứ0 - 99 1 - 12 1 - 31 0 - 23 0 - 59 0 - 59 1 - 7

Lệnh READ_RTC: Lệnh đọc nội dung của đồng hồ thời gian thực vào bộ đếm 8 byte được chỉ thị trong lệnh bằng toán hạng.

36

Page 37: Tài liệu PCL tổng hợp

Lệnh SET_RTC: Lệnh ghi nôi dung của bộ đếm 8 byte được chỉ thị trong lệnh bằng toán hạng T vào đồng hôc thời gian thực.

Ví dụ: Điều khiển đèn giao thông tự động với yêu cầu sau:Từ 5h đến 23h hoạt động bình thường.Từ 23h đến 5h sáng hôm sau đền vàng chớp tắt xung 1s.

III. Các lệnh về ngắtCác chế độ ngắt và xử lý ngắt cho phép thực hiện các quá trình tốc độ cao, phản

ứng kịp thời với các sự kiện ở bên trong và bên ngoài.Nguyên tắc cơ bản của một chế độ ngắt cũng giống như thực hiện việc gọi một

chương trình con, chỉ khác nhau ở đây là chương trình con được gọi chủ động bằng lệnh gọi chương trình con CALL, còn chương trình xử lý ngắt được gọi bị động bằng tín hiệu báo ngắt.

Khi có một tín hiệu báo ngắt, hệ thống sẽ tổ chức thực hiện gọi và thực hiện chương trình con tương ứng với tín hiệu ngắt đó, hay nói cách khác là hệ thống sẽ tổ chức xử lý tín hiệu báo ngắt đó. Chương trình con này được gọi là chương trình xử lý ngắt.

1. Bảng liên kê các tín hiệu báo ngắt tương ứng với từng loại CPU22x:Kiểu ngắt

Mô tả tín hiệu ngắt CPU 221

CPU 222

CPU 224 224XP

CPU 226 226XP

0 Ngắt theo sườn lên của I0.0 Y Y Y Y1 Ngắt theo sườn xuống của I0.0 Y Y Y Y2 Ngắt theo sườn lên của I0.1 Y Y Y Y3 Ngắt theo sườn xuống của I0.1 Y Y Y Y4 Ngắt theo sườn lên của I0.2 Y Y Y Y5 Ngắt theo sườn xuống của I0.2 Y Y Y Y6 Ngắt theo sườn lên của I0.3 Y Y Y Y7 Ngắt theo sườn xuống của I0.3 Y Y Y Y8 Ngắt để nhận kí tự ở Port 0. Y Y Y Y9 Ngắt để báo việc truyền dữ liệu đã hoàn tất

ở Port 0Y Y Y Y

10 Ngắt thời gian 0, SMB34 Y Y Y Y11 Ngắt thời gian 1, SMB35 Y Y Y Y12 Ngắt theo HSC0, khi giá trị tức thời bằng

giá trị đặt trước CV = PVY Y Y Y

13 Ngắt theo HSC1, khi giá trị tức thời bằng giá trị đặt trước CV = PV

Y Y

14 Ngắt theo HSC1, khi có tín hiệu báo đổi hướng

Y Y

15 Ngắt theo HSC1, khi có tín hiệu Reset từ ngoài

Y Y

16 Ngắt theo HCS2, khi giá trị tức thời bằng giá trị đặt trước CP = PV

Y Y

17 Ngắt theo HSC2, khi có tín hiệu báo đổi hướng

Y Y

18 Ngắt theo HSC2, khi có tín hiệu Reset từ Y Y

37

Page 38: Tài liệu PCL tổng hợp

ngoài19 PLS0 Ngắt báo hoàn tất việc đếm xung. Y Y Y Y20 PLS1 Ngắt báo hoàn tất việc đếm xung. Y Y Y Y21 Ngắt theo bộ định thời T32, khi giá trị tức

thời CT = PTY Y Y Y

22 Ngắt theo bộ định thời T96, khi giá trị tức thời CT = PT

Y Y Y Y

23 Ngắt báo hoàn tất việc nhận 1 gói tin ở Port 0

Y Y Y Y

24 Ngắt báo hoàn tất việc nhận 1 gói tin ở Port 1

Y

25 Ngắt để nhận kí tự ở Port 1 Y26 Ngắt để báo việc truyền dữ liệu đã hoàn tất

ở Port 1Y

27 Ngắt theo HSC0, khi có tín hiệu báo đổi hướng đếm từ bên ngoài

Y Y Y Y

28 Ngắt theo HSC0, khi có tín hiệu Reset từ ngoài

Y Y Y Y

29 Ngắt theo HSC4, khi giá trị tức thời bằng giá trị đặt trước CP = PV

Y Y Y Y

30 Ngắt theo HSC4, khi có tín hiệu báo đổi hướng đếm từ bên ngoài

Y Y Y Y

31 Ngắt theo HSC4, khi có tín hiệu Reset từ ngoài

Y Y Y Y

32 Ngắt theo HSC3, khi giá trị tức thời bằng giá trị đặt trước CP = PV

Y Y Y Y

33 Ngắt theo HSC5, khi giá trị tức thời bằng giá trị đặt trước CP = PV

Y Y Y Y

2. Thứ tự ưu tiên của các kiểu ngắtThứ tự ưu tiên của các kiểu ngắt khác nhau đã được cứng hoá từ trước theo

nguyên tắc tín hiệu nào có trước thì xử lý trước. Nếu cùng một lúc có nhiều tín hiệu báo ngắt thì hệ thống sẽ sắp hàng đợi theo thứ tự ưu tiên sau:

Nhóm ngắt truyền thông (nối tiếp). Các kiểu ngắt: 8, 9, 19, 20, 23, 24, 25, 26.

Nhóm ngắt vào ra có các kiểu ngắt: 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33.

Nhóm các tín hiệu báo ngắt thời gian có các kiểu ngắt: 10, 11, 21, 22.3. Khai báo chế độ ngắt

Để khai báo một chế độ ngắt ta cần phải thực hiện 2 việc: Kích tín hiệu báo ngắt cho chế độ ngắt tương ứng (bằng cách khai báo

tại toán hạng EVENT) bằng lệnh ATCH. Sau đó soạn thảo nội dung của chương trình ngắt trong khối INT_x.

38

Page 39: Tài liệu PCL tổng hợp

4. Lệnh cấm ngắt

Khi có tín hiệu ở ngõ vào EN thì sẽ thực hiện lệnh cấm ngắt ở EVNT.

IV. Phát xung tốc độ caoCPU S7_200 có 2 ngõ ra Q0.0 và Q0.1 để phát xung tần số cao.Có 2 cách phát xung tốc độ cao

1. PTO (Pulse train output)PTO là một dãy xung vuông tuần hoàn, có chu kỳ là một số nguyên trong

khoảng 250us đến 65.535us hoặc 2ms đến 65.535ms. Độ rộng của mỗi xung bằng ½ chu kỳ của dãy. Số xung phát ra nhiều nhất cho phép của dãy là 4.294.967.295.

PTO sử dụng các địa chỉ ô nhớ để mã hóa cho từng đặc điểm của xung phát:Ngõ ra Byte điều khiển Chu kỳ Độ rộng xung Số xungQ0.0 SMB67 SMW68 SMW70 SMD72Q0.1 SMB77 SMW78 SMW80 SMD82

Byte điều khiển được định dạng theo cấu trúc sau:Q0.0 Q0.1 Ý nghĩa

SM67.0 SM77.0 Đổi chu kỳ: 1 cho phép, 0 không cho phépSM67.1 SM77.1 Không sử dụngSM67.2 SM77.2 Đổi số đếm xung cho PTO: 1 cho phép, 0 không cho phépSM67.3 SM77.3 Đơn vị thời gian: 1 ms, 0 usSM67.4 SM77.4 Không sử dụngSM67.5 SM77.5 Không sửu dụngSM67.6 SM77.6 Chọn kiểu xung: 0 – PTO, 1 – PWMSM67.7 SM77.7 Khai báo: 1 – Kích, 0 – Hủy

Lệnh cho phép phát xung:

Lệnh phát xung tại ngõ ra được chỉ tại toán hạng x(0 cho Q0.0 và 1 cho Q0.1)

39

Page 40: Tài liệu PCL tổng hợp

Nếu như chế độ ngắt kiểu 19 và 20 được khai báo cùng với việc tạo xung thì tín hiệu báo ngắt PLS0 hoặc PLS1 sẽ xuất hiện tại thời điểm sườn xuống của xung cuối cùng.

Muốn tạo ra xung có chu kỳ khác nhau thì ta phải sử dụng ngắt để khai báo xung mới.

Để thực hiện việc phát xung tốc độ cao PTO ta cần phải thực hiện các bước sau:

Reset ngõ ra phát xung tốc độ cao ở chu kỳ đầu của chương trình. Chọn ngõ ra cần phát xung tốc độ cao. Ghi giá trị byte điều khiển. Nạp chu kỳ và số xung vào những ô nhớ tương ứng. Khai báo chế độ ngắt ( nếu cần sử dụng). Thực hiện lệnh PLS.

Ví dụ: Viết chương trình phát xung tốc độ cao tại ngõ ra Q0.0 như giản đồ sau:

Chương trình:a. Chương trình chính:

40

Page 41: Tài liệu PCL tổng hợp

b. Chương trình con: chương trình phát xung

c. Chương trình ngắt:

41

Page 42: Tài liệu PCL tổng hợp

2. PWM (Pulse width modulation)Điểu rộng xung theo tỉ lệ PWM là một dãy xung tuần hoàn có chu kỳ là một

số nguyên trong khoảng 250us đến 65535us hoặc 2ms đến 65535ms. Khác với PTO, độ rộng xung trong PWM có thể quy định được và là một số nguyên trong khoảng 0 đến 65535us hoặc tử 0 đến 65535ms. Nếu độ rộng xung lớn hơn chu kỳ của PWM thì dãy xung là một tín hiệu có giá trị logic bằng 1, ngược lại khi độ rộng xung bằng 0 thì dãy xung là một tín hiệu có giá trị logic bằng 0.

PWM sử dụng các địa chỉ ô nhớ để mã hóa cho từng đặc điểm của xung phát:Ngõ ra Byte điều khiển Chu kỳ Độ rộng xung Số xungQ0.0 SMB67 SMW68 SMW70 SMD72Q0.1 SMB77 SMW78 SMW80 SMD82

Byte điều khiển được định dạng theo cấu trúc sau:Q0.0 Q0.1 Ý nghĩa

SM67.0 SM77.0 Đổi chu kỳ: 1 cho phép, 0 không cho phépSM67.1 SM77.1 Đổi độ rộng xung PWM: 1 cho phép, 0 không cho phépSM67.2 SM77.2 Không sử dụngSM67.3 SM77.3 Đơn vị thời gian: 1 ms, 0 usSM67.4 SM77.4 Không sử dụngSM67.5 SM77.5 Không sửu dụngSM67.6 SM77.6 Chọn kiểu xung: 0 – PTO, 1 – PWMSM67.7 SM77.7 Khai báo: 1 – Kích, 0 – Hủy

42

Page 43: Tài liệu PCL tổng hợp

Lệnh cho phép phát xung:

Lệnh phát xung tại ngõ ra được chỉ tại toán hạng x(0 cho Q0.0 và 1 cho Q0.1)Để thực hiện việc phát xung tốc độ cao PTO ta cần phải thực hiện các bước

sau: Reset ngõ ra phát xung tốc độ cao ở chu kỳ đầu của chương trình. Chọn ngõ ra cần phát xung tốc độ cao. Ghi giá trị byte điều khiển. Nạp chu kỳ và độ rộng xung vào những ô nhớ tương ứng. Thực hiện lệnh PLS.

Ví dụ: Viết chương trình phát xung tốc độ cao tại ngõ ra Q0.0 như giản đồ sau:

Chương trình:a. Chương trình chính:

43

Page 44: Tài liệu PCL tổng hợp

b. Chương trình con phát xung

c. Chương trình con 1

V. Đếm xung tốc độ cao HSCBộ đếm tốc độ cao được sử dụng để theo dõi và điều khiển các quá trình có tốc

độ cao mà PLC không thể khống chế được do bị hạn chế về thời gian của vòng quét.Trong PLC S7_200 cung cấp cho ta sáu bộ đếm tốc độ cao: HSC0, HSC1,

HSC2, HSC3, HSC4 và HSC5.Nguyên tắc hoạt động của bộ đếm tốc độ cao cũng tương tự như các bộ đếm

thông thường khác của PLC, tức là đếm theo sườn lên của tín hiệu đầu vào. Số đếm được gọi là giá trị đếm tức thời của bộ đếm và được ký hiệu là CV. Khi giá trị đếm tức thời bằng với giá trị đặt trước (ký hiệu là PV) thì bộ đếm phát ra tín hiệu báo ngắt.

44

Page 45: Tài liệu PCL tổng hợp

Nếu chế độ ngắt vào/ra với bộ đếm tốc độ cao được khai báo thì các tín hiệu ngắt sau đây sẽ được phát:

Ngắt khi CV = PV (đối với HSC0, HSC1, HSC2, HSC3, HSC4 và HSC5) Ngắt khi có tín hiệu thay đổi hướng đếm từ cổng vào ( đối với HSC0,

HSC1, HSC2 và HSC4) Ngắt khi có tín hiệu báo xóa ( reset) từ cổng vào ( đối với HSC0, HSC1,

HSC2 và HSC4).1. Các chế độ đếm của bộ đếm HSC

Bảng mô tả chế độ đếm cũng như loại HSC và quy định địa chỉ vào:Chế độ Mô tả Input

HSC0 I0.0 I0.1 I0.2HSC1 I0.6 I0.7 I1.0 I1.1HSC2 I1.2 I1.3 I1.4 I1.5HSC3 I0.1HSC4 I0.3 I0.4 I0.5HSC5 I0.4

0 Đếm tiến hay lùi sườn lên của xung vào chiều đếm được quy định bởi bit nội.

Clock1 Clock Reset2 Clock Reset Start3 Đếm tiến hay lùi sườn lên

của xung vào chiều đếm được quy định bởi cổng vào .

Clock Đảo chiều4 Clock Đảo chiều Reset5 Clock Đảo chiều Reset Start6 Đếm tiến hay lùi tương ứng

với 2 ngõ vào.Clock Up Clock Down

7 Clock Up Clock Down Reset8 Clock Up Clock Down Reset Start9 Đếm số lần lệch trạng thái

của 2 ngõ vào.Clock A Clock B

10 Clock A Clock B Reset11 Clock A Clock B Reset Start12 - Chỉ có HSC0 và HSC3.

- HSC0 đếm xung ra từ Q0.0- HSC3 đếm xung ra từ Q0.1

Hình minh họa cho chế độ 0, 1 và 2.45

Page 46: Tài liệu PCL tổng hợp

Hình minh họa cho chế độ 3, 4 và 5.

Hình minh họa cho chế độ 6, 7 và 8.

Hình minh họa cho chế độ 9,10 và 11 (chế độ 1x).

46

Page 47: Tài liệu PCL tổng hợp

Hình minh họa cho chế độ 9,10 và 11 (chế độ 4x).2. Các ô nhớ đặc biệt sử dụng trong HSC

a. Byte điều khiểnHSC0 HSC1 HSC2 HSC3 HSC4 HSC5 Ý nghĩa

SM37.0 SM47.0 SM57.0 SM137.0 SM147.0 SM157.0 Chọn kiểu Reset: 0: Reset mức cao 1: Reset mức thấp

SM37.1 SM47.1 SM57.1 SM137.1 SM147.1 SM157.1 Chọn kiểu Start: 0: Start mức cao 1: Start mức thấp

SM37.2 SM47.2 SM57.2 SM137.2 SM147.2 SM157.2 Chọn chế độ đếm 1x, 4x 0: chọn 4x 1: chọn 1x

SM37.3 SM47.3 SM57.3 SM137.3 SM147.3 SM157.3 Chọn chiều đếm: 0: đếm lùi 1: đếm tiến

SM37.4 SM47.4 SM57.4 SM137.4 SM147.4 SM157.4 Cho phép đổi chiều đếm 0: không cho phép 1: cho phép

SM37.5 SM47.5 SM57.5 SM137.5 SM147.5 SM157.5 Sữa đổi giá trị đặt trước 0: không cho đổi 1: cho phép đổi

SM37.6 SM47.6 SM57.6 SM137.6 SM147.6 SM157.6 Sữa đổi giá trị đếm tức thời 0: không cho đổi 1: cho phép đổi

SM37.7 SM47.7 SM57.7 SM137.7 SM147.7 SM157.7 0: cho phép hủy HSC 1: cho phép kích HSC

b. Ô nhớ chứa giá trị đếm tức thời và giá trị đặt trước

47

Page 48: Tài liệu PCL tổng hợp

HSC0 HSC1 HSC2 HSC3 HSC4 HSC5Giá trị tức thời CV SMD38 SMD48 SMD58 SMD138 SMD148 SMD158Giá trị đặt trước PV SMD42 SMD52 SMD62 SMD142 SMD152 SMD162

c. Ô nhớ chứa thông báo hoạt động của HSCHSC0 HSC1 HSC2 HSC3 HSC4 HSC5 Ý nghĩa

SM36.0 SM46.0 SM56.0 SM136.0 SM146.0 SM156.0 Không sử dụngSM36.1 SM46.1 SM56.1 SM136.1 SM146.1 SM156.1 Không sử dụngSM36.2 SM46.2 SM56.2 SM136.2 SM146.2 SM156.2 Không sử dụngSM36.3 SM46.3 SM56.3 SM136.3 SM146.3 SM156.3 Không sử dụngSM36.4 SM46.4 SM56.4 SM136.4 SM146.4 SM156.4 Không sử dụngSM36.5 SM46.5 SM56.5 SM136.5 SM146.5 SM156.5 Chiều đang đếm:

0: đếm lùi 1: đếm tiến

SM36.6 SM46.6 SM56.6 SM136.6 SM146.6 SM156.6 Kết quả so sánh tức thời 0: CV # PV 1: CV = PV

SM36.7 SM46.7 SM56.7 SM136.7 SM146.7 SM156.7 Kết quả so sánh tức thời 0: CV <= PV 1: CV > PV

3. Các bước khai báo sử dụng HSC Nạp giá trị thích hợp cho Byte điều khiển. Xác định chế độ làm việc cho bộ đếm bằng lệnh HDEF. Nạp giá trị đếm tức thời và giá trị đặt trước cho bộ đếm. Khai báo chế độ ngắt vào/ra cho bộ đếm bằng lệnh ATCH. Kich bộ đếm bằng lệnh HSC.

Ví dụ: Sử dụng HSC1 với chế độ làm việc 0:Chương trình chính:

Chương trình con đếm tốc độ cao:

48

Page 49: Tài liệu PCL tổng hợp

Chương trình ngắt:

49