bai giang s7-200 ptuan powerpoint

169
ĐIỀU KHIỂN LẬP TRÌNH (Programmable Logic Controller) MÔN HỌC 03/16/22 Giảng Viên: Phạm Văn Tuấn 1

Upload: nghia-dun

Post on 27-Oct-2015

557 views

Category:

Documents


23 download

TRANSCRIPT

ĐIỀU KHIỂN LẬP TRÌNH

(Programmable Logic Controller)

MÔN HỌC

04/17/23Giảng Viên: Phạm Văn Tuấn1

Giảng viên: PHẠM VĂN TUẤN

BỘ MÔN LÝ THUYẾT

KHOA ĐIỆN

TRƯỜNG ĐH SPKT VINH

[email protected]

[email protected]

Mobile:

04/17/23Giảng Viên: Phạm Văn Tuấn2

Đánh giá kết quả học tập

* Thang điểm: 10; bao gồm:

+ 30% điểm thành phần

+ 70% điểm thi học kỳ

- Điểm thành phần được tính như thế nào?

. Làm đề tài: 40% của điểm thành phần.

. Điểm chuyên cần 60% của điểm thành phần.

04/17/23Giảng Viên: Phạm Văn Tuấn3

SIMATIC S7- 200PHẦN 1

04/17/23Giảng Viên: Phạm Văn Tuấn4

NỘI DUNG CỦA PHẦN 1

I. Giới thiệu chung về PLC.

II. Lập trình trong S7- 200.

III. Ứng dụng điều khiển khởi động động cơ.

IV. Các ứng dụng trong công nghiệp.

04/17/23Giảng Viên: Phạm Văn Tuấn5

04/17/23Giảng Viên: Phạm Văn Tuấn6

CHƯƠNG I

GIƠI THIỆU CHUNG VỀ PLC1.1. PLC

* Thế nào là PLC?PLC và viết tắt của Programmable Logic Controller, là bộ điều khiển logic có khả năng lập trình được, cho phép thực hiện linh họat các thuật toán điều khiển logic thông qua ngôn ngữ lập trình. (Đây là định nghĩa về PLC của Nguyễn Doãn Phước – Phan Xuân Minh trong sách “Tự động hoá với simatic S7 – 200”).

* Phạm vi ứng dụng:

+ Lúc đầu chủ yếu trong các ngành công nghiệp chế tạo, điều khiển các quá trình rời rạc.

+ Ngày nay cả trong điều khiển trình tự và điều khiển quá trình liên tục, cạnh tranh với Compact Digital Controllers và các hệ DCS trong các ứng dụng “lai”.

04/17/23Giảng Viên: Phạm Văn Tuấn7

+ Thiết bị thu thập dữ liệu trong các hệ SCADA

* Lịch sử ra đời của PLC

Hình thành từ nhóm các kỹ sư của hãng General Motor năm 1968 với ý tưởng ban đầu là thiết kế một bộ điều khiển thõa mãn các yêu cầu sau:

+ Dễ dàng sửa chữa và thay thế.

+ Ổn định trong môi trường công nghiệp.

+ Lập trình dễ dàng, ngôn ngữ lập trình phù hợp với ngành nghề.

+ Giá cả cạnh tranh…

Năm 1969 PLC đầu tiên (do hãng Allen Bradlley và Bedford), được General Motor sử dụng trong công nghiệp ô tô (128 I/O, bộ nhớ 1 kilo bytes).

04/17/23Giảng Viên: Phạm Văn Tuấn8

Năm 1973 PLC “thông minh” với khả năng tính toán, điều khiển máy in, xử lý dữ liệu, có giao diện HMI.

Năm 1975 PLC với bộ điều khiển PID ra đời.

Năm 1976: Lần đầu tiên PLC sử dụng trong hệ thống phân cấp điều khiển dây chuyền sản xuất.

Năm 1977 : mP-based PLC.

Năm 1980: Các module vào/ra thông minh.

Năm 1981: PLC nối mạng, 16-bit PLC, các màn hình CRT màu.

Năm 1982: PLC với 8192 I/O (lớn nhất).

Năm 1992: Chuẩn IEC 61131 ra đời.

Năm 1996: Slot-PLC, Soft-PLC,...

04/17/23 Giảng Viên: Phạm Văn Tuấn 9

Ví dụ 1.1 Phân biệt giữa PLC và môn mạch máy

b)

1

2K

RNKS

K

K

K

KTG

KS

KTG

Rth

Rth

MD

MCCB

a)

13 5

7 9 11

22RN

KTG

KS

Rth

13

15

Hình 1.1. Khởi động sao – tam giác.

Hình 1.2. Khởi động sao – tam giác dùng PLC

04/17/23 Giảng Viên: Phạm Văn Tuấn 10

04/17/23Giảng Viên: Phạm Văn Tuấn11

* Vai trò của PLC trong quá trình tự động hóa sản xuất:Như đã biết, nước ta hiện nay đang trong quá trình công nghiệp hóa, hiện đại hóa. Vì thế, tự động hóa sản xuất đóng vai trò quan trọng, tự động hóa giúp tăng năng suất, tăng độ chính xác và do đó tăng hiệu quả quá trình sản xuất. Để có thể thực hiện tự động hóa sản xuất, bên cạnh các máy móc cơ khí hay điện, các dây chuyền sản xuất…v.v, cũng cần thiết phải có các bộ điều khiển để điều khiển chúng. PLC là một trong các bộ điều khiển đáp ứng đươc yêu cầu đó.1.2. Cấu trúc và nguyên lý hoạt động của PLC

1.2.1. Cấu tạo của PLC

Hiện nay trên thế giới có rất nhiều hãng sản xuất PLC như:

04/17/23Giảng Viên: Phạm Văn Tuấn12

Toshiba, Hitachi, Omron, Misubishi của Nhật Bản; LS của Hàn Quốc – GM4; Siemens, ABB của Đức; Rockwell, General electric của Mỹ; Schneider của Pháp ; Danfort của Đan Mạch; Allen Bradley của Anh; B&G system 2000 của Áo; Honeywell;…

Tất cả chúng đều gồm 4 thành phần chính (như hình vẽ 1.1)

OutputsInputs CPU - Memory

Source

Outputs

Hình 1.3. Cấu tạo của PLC.

04/17/23Giảng Viên: Phạm Văn Tuấn13

Bộ xử lý Giao diện nhập

Giao diện xuất

Nguồn công suất

Bộ nhớ

Thiết bị lập trình

Hình 1.4. Sơ đồ cấu trúc của PLC.

* CPU (Central Processing Units- Khối xử lý trung tâm – đơn vị xử lý trung tâm):

Là bộ xử lý trung tâm, nó như bộ não của PLC có nhiệm vụ điều khiển và quản lý mọi hoạt động bên trong PLC. Việc trao đổi thông tin giữa CPU, bộ nhớ và các đầu vào/ ra được thực hiện

04/17/23Giảng Viên: Phạm Văn Tuấn14

thông qua hệ thống các bus nối dưới sự điều khiển của CPU. PLC của hãng Siemens dòng S7- 200 CPU 21x bao gồm: CPU 210, CPU 212, CPU 214, CPU 215- 2DP, CPU 216.

Dòng S7- 200 CPU 22x bao gồm: CPU 221, CPU 222, CPU 224, CPU 224XP, CPU 226, CPU 226XM; Trong đó CPU 224XP có hỗ trợ analog 2I/1O onboard và 2 port truyền thông.

* Bộ nhớ chương trình (Memory):

Dùng để lưu giữ và sao chép chương trình. Tất cả các loại PLC đều sử dụng các loại bộ nhớ sau cơ bản sau: ROM, EPROM, EEPROM, RAM, đĩa cứng, đĩa mềm.

+ ROM (Read Only Memory): Là bộ nhớ chỉ đọc, trong PLC bộ nhớ này dùng để lưu giữ hệ điều hành do nhà sản xuất nạp và chỉ nạp được một lần.

04/17/23Giảng Viên: Phạm Văn Tuấn15

+ EPROM (Electrically Programmable ROM) là bộ nhớ mà người sử dụng bình thường chỉ có thể đọc chứ không ghi nội dung vào được. Nội dung của EPROM không bị mất khi mất nguồn, nó được gắn sẵn trong máy, đã được nhà sản xuất nạp và chứa hệ điều hành sẵn. EPROM có thể xóa được bằng tia cực tím.

+ Bộ nhớ EEPROM (Electrical Erasable Programable ROM): Là bộ nhớ ROM có thể xóa và nạp lại bằng tín hiệu điện, tùy thuộc loại EEPROM cho phép xóa và nạp lại với vài nghìn đến vài chục nghìn lần. Bộ nhớ EEPROM được dùng để lưu giữ chương trình ứng dụng trong PLC.

+ RAM (Random Acess Memory): Là bộ nhớ truy cập ngẫu nhiên, trong PLC bộ nhớ này dùng để lưu giữ dữ liệu hoặc kết quả tạm thời của các phép toán. RAM có thể nạp chương trình, thay đổi hay xóa bỏ

04/17/23Giảng Viên: Phạm Văn Tuấn16

nội dung bất kỳ lúc nào. Nội dung của RAM sẽ bị mất nếu nguồn điện nuôi bị mất. Để tránh tình trạng này các PLC đều được trang bị một tụ hoặc một pin khô để nuôi RAM, do đó khi mất điện dữ liệu trong RAM có thể lưu trong vài chục giờ, vài tháng đến vài năm. Trong thực tế RAM được dùng để khởi tạo và kiểm tra chương trình. Khuynh hướng hiện nay dùng CMOS RAM nhờ khả năng tiêu thụ thấp và tuổi thọ lớn.

+ Môi trường ghi dữ liệu nữa là đĩa cứng hoặc đĩa mềm: được sử dụng trong máy lập trình. Đĩa cứng hoặc đĩa mềm có dung lượng lớn nên thường được dùng để lưu những chương trình lớn trong một thời gian dài.

04/17/23Giảng Viên: Phạm Văn Tuấn17

Hình 1.5. Cấu trúc bộ nhớ RAM, EEPROM.

+ Kích thước bộ nhớ: - Các PLC loại nhỏ có thể chứa từ 300 -1000 dòng lệnh tùy vào công nghệ chế tạo. - Các PLC loại lớn có kích thước từ 1K - 16K, có khả năng chứa từ 2000 -16000 dòng lệnh.

04/17/23Giảng Viên: Phạm Văn Tuấn18

* Các cổng vào/ ra- Inputs/ Outputs:

Mọi hoạt động bên trong PLC đều có mức điện áp hoặc (mức điện áp cấp cho các IC TTL hoặc CMOS) trong khi đó tín hiệu điều khiển theo tiêu chuẩn công nghiệp là 24 VDC hoặc 230 VAC. Do đó các cổng vào/ ra đóng vai trò là mạch giao tiếp giữa các vi mạch điện tử bên trong PLC với các mạch công suất bên ngoài, nó thực hiện chuyển đổi mức tín hiệu và cách ly.

1.2.2. Nguyên lý hoạt động của PLC

* Vòng quét của PLC:

PLC thực hiện chương trình theo chu trình lặp. Mỗi vòng lặp được gọi là vòng quét (scan). Mỗi vòng quét được bắt đầu bằng giai đoạn đọc dữliệu từ các cổng vào vùng bộ đệm ảo, tiếp theo là giai đoạn thực hiện chương trình.

04/17/23Giảng Viên: Phạm Văn Tuấn19

Trong từng vòng quét, chương trình được thực hiện bằng lệnh đầu tiên và kết thúc tại lệnh kết thúc. Sau giai đoạn thực hiện chương trình là giai đoạn truyền thông nội bộ và kiểm tra lỗi. Vòng quét được kết thúc bằng giai đoạn chuyển các nội dung của bộ đệm ảo tới các cổng ra.

4. Chuyển dữ liệu ra đầu outputs

3. Truyeàn thoâng vaø töï kieåm tra loãi

2.Thöïc hieän

chöông trình

1. Nhaäp döõ lieäu töø ngoaïi vi vaøo

Hình 1.6. Vòng quét của PLC.

04/17/23Giảng Viên: Phạm Văn Tuấn20

Như vậy, tại thời điểm thực hiện lệnh vào/ ra, thông thường lệnh không làm việc trực tiếp với cổng vào/ ra mà chỉ thông qua bộ đệm ảo của cổng trong vùng nhớ tham số. Việc truyền thông giữa bộ đệm ảo với ngoại vi trong các giai đoạn 1 và 4 do CPU quản lý. Khi gặp lệnh vào/ ra ngay lập tức thì hệ thống sẽ cho dừng mọi công việc khác, ngay cả chương trình xử lý ngắt, để thực hiện lệnh này một cách trực tiếp với cổng vào/ ra.

Nếu sử dụng các chế độ ngắt, chương trình con tương ứng với từng tín hiệu ngắt được soạn thảo và cài đặt như một bộ phận của chương trình. Chương trình xử lý ngắt chỉ được thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt và có thể xảy ra ở bất cứ thời điểm nào trong vòng quét.

1.2.3. Truyền thông cho CPU S7 - 200

04/17/23Giảng Viên: Phạm Văn Tuấn21

SIMATIC NET là mạng truyền thông cho phép kết nối với các bộ điều khiển của SIEMENS, các máy tính chủ, các trạm làm việc. SIMATIC NET bao gồm các mạng truyền thông, các thiết bị truyền dữ liệu, các phương pháp truyền thông dữ liệu, các giao thức và dịch vụ truyền dữ liệu giữa các thiết bị, các module cho phép kết nối mạng LAN (CP-Communication Processor hoặc IM – Interface Module).

Với hệ thống SIMATIC NET, SIEMENS cung cấp hệ thống truyền thông mở cho nhiều cấp khác nhau của các quá trình tự động hoá trong môi trường công nghiệp. Hệ truyền thông SIMATIC NET dựa trên nhiều tiêu chuẩn quốc tế ISO/OSI (International Standardization Organisation / Open System Interconnection). Cơ sở của các hệ thống truyền thông này là các mạng cục bộ (LANs), có thể thực hiện theo nhiều cách khác nhau: điện học, quang học, không dây hoặc kết hợp cả ba cách trên.

04/17/23Giảng Viên: Phạm Văn Tuấn22

Theo các yêu cầu về chức năng các lớp trong tổ chức điều hành, quản lý sản xuất thì mạng công nghiệp được chia thành nhiều cấp bao gồm: cấp điều hành quản lý, cấp phân xưởng, cấp trường và cấp cơ cấu chấp hành – cảm biến - đối tượng.

Theo phương pháp tổ chức hệ thống như trên SIMATIC cung cấp các loại sub-net như sau:

- Mạng PPI.- Mạng MPI- Mạng AS- interface.- Mạng Profibus.- Mạng Ethernet công nghiệp.

1.3. Giới thiệu chung về S7- 200

1.3.1. Dòng S7- 200

04/17/23Giảng Viên: Phạm Văn Tuấn23

Là PLC cỡ nhỏ của hãng siemes (Đức) hay còn gọi là “Micro PLCs”, có cấu trúc theo kiểu modul và có các modul mở rộng. Các modul này được sử dụng cho cho nhiều ứng dụng lập trình khác nhau. Dòng sản phẩm S7- 200 đã và đang được cải tiến để nhỏ gọn hơn, nhanh hơn và có thêm nhiều chức năng hơn nữa.

Thành phần cơ bản của S7- 200 là khối vi xử lý CPU 2xx. Hiện nay khối vi xử lý này chia làm hai loại cơ bản:

* CPU 21x: bao gồm CPU 210, 212, 214, 216 (Loại này không còn sản xuất nữa).

+ Cấu hình của CPU 212 như sau:

- 8DI: I0.x (x= 0 đến 7).- 6 REL.OUTP: Q0.x (x= 0 đến 5).

- Điện áp vào 24VDC hoặc 120 VDC.

04/17/23Giảng Viên: Phạm Văn Tuấn24

- Điện áp ra 24VDC hoặc 230 VAC;

- Có thể ghép nối thêm tối đa 2 modul (kể cả modul tương tự- Analog) để mở rộng để số cổng vào / ra, khi đó số cổng logic vào / ra cực đại là 64 cổng vào và 64 cổng ra.- 64 timer, trong đó có 2 timer có độ phân giải 1ms, 8 timer có độ phân giải 10ms và 54 timer có độ phân giải 100ms.

- 64 counter, chia làm 2 loại: loại bộ đếm chỉ đếm tiến và loại bộ đếm vừa đếm tiến vừa đếm lùi.

- 368 bits nhớ đặc biệt, sử dụng làm các bit trạng thái hoặc các bit đặt chế độ làm việ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 (2KHz).

04/17/23Giảng Viên: Phạm Văn Tuấn25

- Thời gian mất dữ liệu khi mất nguồn nuôi là 50 giờ.

Hình 1.7. CPU 212.

+ Cấu hình của CPU 214 như sau:

04/17/23Giảng Viên: Phạm Văn Tuấn26

- 14DI: I0.x; I1.x (x= 0 đến 7)

- 10 REL.OUTP: Q0.x (x= 0 đến 7); Q1.0, Q1.1

- Điện áp vào 24VDC hoặc 120VDC- Điện áp ra 24VDC hoặc 230VAC- Có thể ghép nối thêm tối đa 7 modul (kể cả modul tương tự-

Analog) để mở rộng để số cổng vào / ra, khi đó số cổng logic vào / ra cực đại là 64 cổng vào và 64 cổng ra.

- 128 timer, chia làm 3 loại theo độ phân giải khác nhau: 4 timer 1ms, 16 timer 10ms và 108 timer 100ms.

- 128 counter chia làm 2 loại: chỉ đếm tiến và vừa đếm tiến vừa đếm lùi.- 688 bit nhớ đặc biệt dùng để thông báo trạng thái và đặt chế độ làm việc.

04/17/23Giảng Viên: Phạm Văn Tuấn27

- 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 thời gian, ngắt của đếm tốc độ cao và ngắt truyền xung.

- 3 bộ đếm tốc độ cao HC0, HC1 và HC2 với nhịp xung 2KHz và 7 KHz.

- 2 bộ điều chỉnh tương tự.

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

04/17/23Giảng Viên: Phạm Văn Tuấn28

Hình 1.8. CPU 214.

Tổng hợp: Cấu hình phần cứng của CPU 21x như sau:

04/17/23Giảng Viên: Phạm Văn Tuấn29

04/17/23Giảng Viên: Phạm Văn Tuấn30

04/17/23Giảng Viên: Phạm Văn Tuấn31

+ CPU 22x: bao gồm CPU 221, CPU 222, , CPU 224, CPU224XP, CPU 226, CPU 226XM; Trong đó CPU 224XP có hỗ trợ analog 2I/1O onboard và 2 port truyền thông.

Tổng hợp: Cấu hình phần cứng của CPU 22x như sau:

04/17/23Giảng Viên: Phạm Văn Tuấn32

04/17/23Giảng Viên: Phạm Văn Tuấn33

04/17/23Giảng Viên: Phạm Văn Tuấn34

* Cấu hình vào ra của S7- 200 CPU 22x

04/17/23Giảng Viên: Phạm Văn Tuấn35

04/17/23Giảng Viên: Phạm Văn Tuấn36

04/17/23Giảng Viên: Phạm Văn Tuấn37

04/17/23Giảng Viên: Phạm Văn Tuấn38

04/17/23Giảng Viên: Phạm Văn Tuấn39

1.3.2. Cấu trúc bộ nhớ của S7- 200

1.3.2.1. Bộ nhớ của S7- 200 được chia thành 4 vùng, với một tụ điện 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 điện.

4 vùng nhớ đó gồm: chương trình, tham số, dữ liệu và đối tượng.

* Vùng chương trình: Lưu giữ các lệnh chương trình, vùng này thuộc kiểu Non- volatile, đọc/ ghi.

* Vùng nhớ tham số: Lưu giữ các tham số như: từ khóa, địa chỉ trạm..., vùng này thuộc kiểu Non- volatile, đọc/ ghi.

* Vùng dữ liệu: Cất các dữ liệu của chương trình, bao gồm các kết quả phép tính, hằng số được định nghĩa trong chương trình,..., vùng này thuộc kiểu Non- volatile, đọc/ ghi.

04/17/23Giảng Viên: Phạm Văn Tuấn40

* Vùng đối tượng: Timer, counter, bộ đếm tốc độ cao và các cổng vào ra tương tự, được đặt trong vùng nhớ này. Vùng này không thuộc kiểu Non- valatile nhưng đọc/ ghi được./.

Hai vùng nhớ cuối có ý nghĩa quan trọng trong việc thực hiện một chương trình, do vậy sẽ được trình bày kỹ hơn.

Hình 1.9. Vùng nhớ S7- 200

04/17/23Giảng Viên: Phạm Văn Tuấn41

• Vùng dữ liệu: Là miền nhớ động, có thể truy cập theo từng bit, byte,... 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, 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 thành những miền nhớ nhỏ với công dụng khác nhau.

V - Variable memory (vùng nhớ biến – vùng nhớ thay đổi). I - Input image register (vùng nhớ bộ đệm ảo đầu vào). Q - Output image register (vùng nhớ bộ đệm ảo đầu ra). M - Internal memory bits (vùng nhớ nội). SM - Special memory bits (vùng nhớ đặc biệt).

04/17/23Giảng Viên: Phạm Văn Tuấn42

Địa chỉ các vùng nhớ dữ liệu của CPU 212

- Đầu vào (Input) – có 8 đầu vào số: I0.0 đến I0.7

- Đầu ra (output) – có 6 đầu ra số: Q0.0 đến Q0.5

- Bộ đệm ảo đầu vào: I0.0 đến I7.7 (64 DI)

- Bộ đệm ảo đầu ra: Q0.0 đến Q7.7 (64DQ)

- Vùng nhớ V- variable memory (đọc/ ghi): VB0 đến VB1023

- Vùng nhớ nội M- Internal memory bits(đọc/ ghi), thường dùng làm biến nhớ trung gian, 16 bytes, được truy cập theo bit: M0.0 đến M15.7.(MB 0 đến MB 15)

- Vùng nhớ đặc biệt SM- Special memory bits, truy cập theo bit:

Chỉ đọc: SM0.0 đến SM29.7.

Đọc / ghi: SM30.0 đến SM45.7.

04/17/23Giảng Viên: Phạm Văn Tuấn43

Địa chỉ các vùng nhớ dữ liệu của CPU 214

- Đầu vào (Input) - có 14 đầu vào số: I0.0 đến I1.7

- Đầu ra (output) – có 10 đầu ra số: Q0.0 đến Q1.1

- Bộ đệm ảo đầu vào: I0.0 đến I7.7 (64 DI)

- Bộ đệm ảo đầu ra: Q0.0 đến Q7.7 (64DQ)

- Vùng nhớ V- variable memory (đọc/ ghi): VB0 đến VB4095

- Vùng nhớ nội M- Internal memory bits(đọc/ ghi), thường dùng làm biến nhớ trung gian, 32 bytes, được truy cập theo bit: M0.0 đến M31.7.

- Vùng nhớ đặc biệt SM- Special memory bits, truy cập theo bit; byte.

* Vùng đối tượng:

04/17/23Giảng Viên: Phạm Văn Tuấn44

Được sử dụng để lưu giữ dữ liệu cho các đối tượng lập trình như các giá trị tức thời, giá trị đặt trước của Timer, counter. Dữ liệu của vùng nhớ đối tượng bao gồm các thanh ghi của timer, counter, các bộ đếm tốc độ cao, bộ đệm vào/ ra tương tự và các thanh ghi Accumulator (AC- thanh ghi tổng 32 bits).

Địa chỉ các vùng nhớ đối tượng của CPU 212

- Miền nhớ phục vụ Timer T:

T0 đến T63 (đối với CPU 212)

T0 đến T127 (đối với CPU 214)

- Miền nhớ phục vụ Counter C:C0 đến C63 (đối với CPU 212)

C0 đến C127 (đối với CPU 214)

04/17/23Giảng Viên: Phạm Văn Tuấn45

- Bộ đệm cổng vào tương tự, chỉ đọc: AIWx (x= 0 đến 30)

- Bộ đệm cổng ra tương tự, chỉ đọc: AQWx (x= 0 đến 30)

Trong đó x là số chẵn, x = 0, 2, 4,..., 30

- Thanh ghi tổng Accumulator (đọc/ ghi) AC; AC0 đến AC3, trong đó AC0 không có khả năng làm con trỏ.

- Bộ đếm tốc độ cao (đọc/ ghi): HC0.

Địa chỉ các vùng nhớ đối tượng của CPU 214- Miền nhớ phục vụ Timer T:

T0 đến T127 (đối với CPU 214)

- Miền nhớ phục vụ Counter C:

C0 đến C127 (đối với CPU 214)- Bộ đệm cổng vào tương tự, chỉ đọc: AIWx (x= 0 đến 30)

04/17/23Giảng Viên: Phạm Văn Tuấn46

- Bộ đệm cổng vào tương tự, chỉ đọc: AQWx (x= 0 đến 30)

Trong đó x là số chẵn, x= 0, 2, 4,..., 30

- Thanh ghi tổng Accumulator (đọc/ ghi) AC; AC0 đến AC3, trong đó AC0 không có khả năng làm con trỏ.

- Bộ đếm tốc độ cao (đọc/ ghi): HC0 (HC1 và HC2 chỉ có trong CPU 214).

Tổng kết:

04/17/23Giảng Viên: Phạm Văn Tuấn47

04/17/23Giảng Viên: Phạm Văn Tuấn48

04/17/23Giảng Viên: Phạm Văn Tuấn49

04/17/23Giảng Viên: Phạm Văn Tuấn50

04/17/23Giảng Viên: Phạm Văn Tuấn51

04/17/23Giảng Viên: Phạm Văn Tuấn52

04/17/23Giảng Viên: Phạm Văn Tuấn53

1.3.2.2. Cách truy cập dữ liệu trong S7- 200

* Cách truy cập dữ liệu trực tiếp

+ Truy cập theo bit: I0.2; Q0.5;...+ Truy cập theo Byte: VB100; MB15;…

VB100

LSBMSB

0 7

+ Truy cập theo word (từ đơn): VW100; MW10;…

1 W= 2 byte= 16 bít.

1 D= 4 byte = 32 bít.

04/17/23Giảng Viên: Phạm Văn Tuấn54

+ Truy cập theo Double word: VD100

* Cách truy cập dữ liệu gián tiếp thông qua con trỏ

+ Con trỏ (Pointer): Là một ô nhớ có kích thước 1 từ kép (32 bít) chứa địa chỉ của một ô nhớ khác. Khi ta truy cập con trỏ

có nghĩa là ta đang đọc nội dung của ô nhớ mong muốn.- Có 3 vùng nhớ trong S7- 200 cho phép dùng con trỏ:

VD; LD; AC1; AC2; AC3 (AC0 không dùng làm con trỏ).- S7- 200 cho phép dùng con trỏ để truy cập các địa chỉ

nhớ sau: I; Q; V; M; S; T (T_Word); C (C_Word).- S7- 200 không cho phép dùng con trỏ để truy cập địa

chỉ nhớ sau: AI; AQ; SM; HSC; L và địa chỉ dưới dạng bit.

04/17/23Giảng Viên: Phạm Văn Tuấn55

04/17/23Giảng Viên: Phạm Văn Tuấn56

04/17/23Giảng Viên: Phạm Văn Tuấn57

1.3.3. Mở rộng cổng vào/ ra trong S7- 200

* CPU 212 có thể mở rộng tối đa 2 module EM 221, EM 222.

* CPU 214 có thể mở rộng tối đa 7 module. Các module mở rộng tương tự và số đều có trong S7- 200.

* CPU 216 có thể mở rộng tối đa 7 module.* CPU 221 không ghép nối được module mở

rộng.* CPU 222 ghép nối được tối đa 2 module mở

rộng.* CPU 224 ghép nối được tối đa 7 module mở

rộng.* CPU 226 ghép nối được tối đa 7 module mở

rộng.* Có các loại module mở rộng sau:

04/17/23Giảng Viên: Phạm Văn Tuấn58

04/17/23Giảng Viên: Phạm Văn Tuấn59

04/17/23Giảng Viên: Phạm Văn Tuấn60

Hình 1.10. Các module mở rộng của S7- 200.

04/17/23Giảng Viên: Phạm Văn Tuấn61

Hình 1.11. Cách kết nối module mở rộng với CPU.

04/17/23Giảng Viên: Phạm Văn Tuấn62

04/17/23Giảng Viên: Phạm Văn Tuấn63

1.3.4. Bảng lệnh của CPU S7- 200

1.3.4.1. CPU 21x có những đặc điểm sau:

04/17/23Giảng Viên: Phạm Văn Tuấn64

04/17/23Giảng Viên: Phạm Văn Tuấn65

04/17/23Giảng Viên: Phạm Văn Tuấn66

04/17/23Giảng Viên: Phạm Văn Tuấn67

04/17/23Giảng Viên: Phạm Văn Tuấn68

04/17/23Giảng Viên: Phạm Văn Tuấn69

04/17/23Giảng Viên: Phạm Văn Tuấn70

04/17/23Giảng Viên: Phạm Văn Tuấn71

1.3.4.2. CPU 22x có những đặc điểm sau:

04/17/23Giảng Viên: Phạm Văn Tuấn72

04/17/23Giảng Viên: Phạm Văn Tuấn73

04/17/23Giảng Viên: Phạm Văn Tuấn74

04/17/23Giảng Viên: Phạm Văn Tuấn75

CHƯƠNG II

LẬP TRÌNH TRONG S7- 200

2.1. Phương pháp lập trìnhTrong S7- 200 cho phép lựa chọn 3 ngôn ngữ lập trình:

+ Ngôn ngữ STL (Statement List)- liệt kê lệnh.

+ Ngôn ngữ LAD (Ladder Logic)- Ngôn ngữ bậc thang.

+ Ngôn ngữ FBD (Function Block Data) – Lập trình theo khối chức năng.

Ba ngôn ngữ này về hình thức có thể chuyển đổi lẫn nhau. Mạnh nhất là ngôn ngữ STL. Chuyên viên ngành điện hay lập trình theo kiểu Ladder hơn.

* Nêu một ví dụ nhỏ cho sinh viên (3 ngôn ngữ lập trình có thể chuyển đổi cho nhau).

04/17/23Giảng Viên: Phạm Văn Tuấn76

Ví dụ 2.1: Chuyển đổi đoạn chương trình sau từ ngôn ngữ Ladder sang ngôn ngữ STL và FBD:

Ladder

04/17/23Giảng Viên: Phạm Văn Tuấn77

Cách chuyển đổi ngôn ngữ

Muốn chuyển đổi từ Ladder sang STL?

04/17/23Giảng Viên: Phạm Văn Tuấn78

Muốn chuyển đổi từ Ladder sang FBD?

Cách chuyển đổi

04/17/23Giảng Viên: Phạm Văn Tuấn79

* Vòng quét của PLC S7- 200 (Scan PLC)- Nguyên lý làm việc của PLC: giống nguyên lý làm việc chung của PLC

4. Chuyển dữ liệu ra đầu outputs

3. Truyeàn thoâng vaø töï kieåm tra loãi

2.Thöïc hieän

chöông trình

1. Nhaäp döõ lieäu töø ngoaïi vi vaøo

Hình 2.1. Vòng quét của PLC

04/17/23Giảng Viên: Phạm Văn Tuấn80

* Cấu truc của một chương trình PLC S7- 200

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 (main program) và sau đó đến các chương trình con và các chương trình xử lý ngắt được chỉ ra sau đây:

+ Chương trình con và chương trình xử lý ngắt là bộ phận của chương trình. Nếu cần sử dụng chương trình con hoặc chương trình xử lý ngắt phải viết sau chương trình chính.

+ Nếu cần sử dụng chương trình con hoặc chương trình xử lý ngắt, chúng phải được gọi ra bằng lệnh gọi được viết ở chương trình chính.

Ví dụ 2.2: Cách viết một chương trình con hoặc chương trình xử lý ngắt:

04/17/23Giảng Viên: Phạm Văn Tuấn81

Chương trình chính (Main)

04/17/23Giảng Viên: Phạm Văn Tuấn82

2.2. Các lệnh đơn bit trong S7- 200

Mặc dù S7- 200 có một khối lượng lệnh tương đối lớn thể 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. Sau đây từng lệnh của S7- 200 được mô tả chi tiết về cách sử dụng, chức năng và tác động của chúng vào nội dung ngăn xếp, trong đó giá trị của ngăn xếp trước khi thực hiện lệnh được ký hiệu từ Iv0 đến Iv8.

2.2.1. Ngăn xếp (Stack)

* Lựa chọn ngôn ngữ lập trình:

Trong S7- 200 có thể chọn một trong ba ngôn ngữ lập trình sau:+ STL+ LADDER+ FBD

04/17/23Giảng Viên: Phạm Văn Tuấn83

Về mặt hình thức, 3 ngôn ngữ lập trình này có thể chuyển đổi lẫn nhau, nhưng mạnh nhất vẫn là ngôn ngữ lập trình STL. Cán bộ và chuyên viên nghành điện hay sử dụng ngôn ngữ LADDER (gần giống với sơ đồ trang bị điện- gần gũi hơn).

* Khái niệm ngăn xếp:

Ngăn xếp trong S7- 200 là một thanh ghi đặc biệt gồm 9 bits, nguyên tắc hoạt động của ngăn xếp là FILO (First Input, Last Out).

04/17/23Giảng Viên: Phạm Văn Tuấn84

Đỉnh ngăn xếp

Ngăn xếp

Iv0

Iv1

Iv2

Iv3

Iv4

Iv5

Iv6

Iv7

Iv8

Các lệnh logic và kết quả phép toán thường liên quan mật thiết đến bit đầu tiên của ngăn xếp, ngoại trừ một số lệnh có liên quan đến bit thứ 2 hoặc bit thứ 3.

04/17/23Giảng Viên: Phạm Văn Tuấn85

2.2.2. Lệnh vào/ ra* Lệnh nạp dữ liệuSTL LAD

LD bit

LDN bit

iv0

iv1

iv2

iv3

iv4

iv5

iv6

iv7

iv8

bit

iv0

iv1

iv2

iv3

iv4

iv5

iv6

iv7

04/17/23Giảng Viên: Phạm Văn Tuấn86

LADDER STL MÔ TẢ TOÁN HẠNG

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

bit : I, Q, M, T, C, V, SM.

LDN bit Tiếp điểm thường đóng sẽ mở khi “bit”= 1

LDI bit Tiếp điểm thường mở sẽ đóng tức thời khi “bit”= 1

bit: I

LDNI bit Tiếp điểm thường đóng sẽ mở tức thời khi “bit”= 1

bit

bit

bit

bit

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

04/17/23Giảng Viên: Phạm Văn Tuấn87

* Lệnh xuất dữ liệu

Trước Sau = =

Bit Iv0 được lưu vào ô nhớ có địa chỉ ghi trong lệnh = Ví dụ 2.3:

= Q0.1Lưu bit đầu tiên của ngăn xếp vào ô nhớ có địa chỉ Q0.1

04/17/23Giảng Viên: Phạm Văn Tuấn88

+ Các dạng khác nhau của lệnh xuất dữ liệu

LADDER STL MÔ TẢ TOÁN HẠNG

=I nv Lệnh =I (Immediate) sao chép tức thời giá trị của đỉnh ngăn xếp tới tiếp điểm “bit” được chỉ định trong lệnh.

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

bit

04/17/23Giảng Viên: Phạm Văn Tuấn89

2.2.3. Các lệnh logic đại số Boolean

Địa chỉ của toán hạng nv (bit): I, Q, M, SM, T, C, V, S, L.

04/17/23Giảng Viên: Phạm Văn Tuấn90

Ví dụ 2.4: Chuyển đoạn chương trình sau từ STL sang LadderSTLNetwork 1 Network 2LD I0.0 LD I0.2A I0.1 ON I0.3= Q0.0 = Q0.2NOT= Q0.1

Ladder

2.2.4. Các lệnh ghi/ xóa giá trị cho tiếp điểm

Lệnh Set (S) và Reset (R) thực hiện set và reset N bit, được bắt đầu từ địa chỉ bit có trong lệnh. Bạn có thể set hoặc reset từ 1 to 255 bit.

N là số bit cần Set hoặc ResetBit là địa chỉ bit đầu tiên trong số N bit

Nếu lệnh Reset được dùng cho Timer hoặc Counter thì lệnh này có tác dụng reset T_bit, C_bit và xóa nội dung của T_word, C_word.

Nếu có lỗi thì Set ENO = 0:0006 (sai địa chỉ)0091 ( toán hạng ra ngoài

khoảng).

04/17/23 Giảng Viên: Phạm Văn Tuấn 92

Ví dụ 2.5: Chuyển đoạn chương trình từ Ladder sang STL

04/17/23Giảng Viên: Phạm Văn Tuấn93

2.2.5. Các lệnh logic làm việc với ngăn xếp không có toán hạng

ALD (And Load)

OLD (Or Load)

LPS (Logic Push)

LPP (Logic Pop)

LRD (Logic Read)

Các lệnh không có toán hạng, chỉ có bên ngôn ngữ STL, không có bên ngôn ngữ LAD và FBD

04/17/23Giảng Viên: Phạm Văn Tuấn94

Lệnh ALD thực hiện AND 2 bit đầu của ngăn xếp, các bit còn lại được kéo lên 1 bit. Bit cuối cùng trống dữ liệu.

Lệnh OLD thực hiện OR 2 bit đầu của ngăn xếp, các bit còn lại được kéo lên 1 bit. Bit cuối cùng trống dữ liệu.

04/17/23Giảng Viên: Phạm Văn Tuấn95

iv0

iv1

iv2

iv3

iv4

iv5

iv6

iv7

iv8

iv0

iv0

iv1

iv2

iv3

iv4

iv5

iv6

iv7

LPS

Lệnh LPS copy bit đầu của ngăn xếp xuống bit thứ 2, các bit còn lại của ngăn xếp được đẩy xuống 1 bit. Bit cuối cùng của ngăn xếp bị rơi dữ liệu.

04/17/23Giảng Viên: Phạm Văn Tuấn96

Lệnh LPP: đẩy toàn bộ ngăn xếp lên 1 bit, bit đầu tiên của ngăn xếp bị mất dữ liệu. Bit cuối cùng bị trống dữ liệu.

Lệnh LRD Lệnh LRD: sao chép bit thứ 2, rồi dán đè lên bit đầu tiên, các bit còn lại được giữ nguyên.

04/17/23Giảng Viên: Phạm Văn Tuấn97

Ví dụ 2.6: Đoạn chương trình Ladder sang STL

04/17/23Giảng Viên: Phạm Văn Tuấn98

Ví dụ 2.7: Đoạn chương trình STL sang Ladder

Network 1 Network 2

LD I0.0 LD I0.0

LD I0.1 LPS

LD I2.0 LD I0.5

A I2.1 O I0.6

OLD ALD

ALD = Q7.0

= Q5.0 LRD

LD I2.1

O I1.3

ALD

= Q6.0

LPP

A I1.0

= Q3.0

04/17/23Giảng Viên: Phạm Văn Tuấn99

Ladder

2.2.6. Các lệnh logic đặc biệt

04/17/23Giảng Viên: Phạm Văn Tuấn100

Network 1

04/17/23Giảng Viên: Phạm Văn Tuấn101

Network 1

Lệnh copy và paste bit thứ (n+1) lên đỉnh ngăn xếp, các bit còn lại được đẩy xuống 1 bit.

04/17/23Giảng Viên: Phạm Văn Tuấn103

2.3. Timer trong S7- 200 CPU 21x

Timer là bộ tạo thời gian trễ

đầu vào và tín hiệu logic đầu ra.

mong muốn giữa tín hiệu logic

Trong S7- 200 CPU21x bao gồm: 64 Timer (với CPU 212); 128 Timer (CPU 214); 256 Timer (CPU 215/ 216)

Timer( Txx )t t+

04/17/23Giảng Viên: Phạm Văn Tuấn104

Timer trong S7- 200 CPU 21x được chia làm hai loại khác nhau, đó là: * Timer tạo thời gian trễ, tác động theo sườn dương không có nhớ (On- Delay Timer), ký hiệu là TON. * Timer tạo thời gian trễ, tác động theo sườn dương có nhớ (Retentive On- Delay Timer), ký hiệu là TONR.

04/17/23Giảng Viên: Phạm Văn Tuấn105

Mỗi bộ timer trong S7- 200 (kể cả CPU 21x và CPU 22x) đều được ký hiệu là Txx , Mỗi bộ Txx gồm 3 dạng dữ liệu: T_bit và T_word (current value – giá trị đếm tức thời); PT (Preset value) + T_bit: là kết quả đầu ra của timer. + T_word: lưu giá trị đếm tức thời của timer. + PT : Giá trị đặt trước (dạng dữ liệu số nguyên)

04/17/23Giảng Viên: Phạm Văn Tuấn106

Cách tính thời gian trễ cho Timer

Thời gian trễ của Timer = Độ phân giải của Timer x Giá trị đặt trước

Trong đó:

Độ phân giải (Resolution): Là khoảng thời gian nghỉ giữa hai lần đếm của current value (T_word). Các bộ Timer của S7- 200 có 3 độ phân giải: 1 ms, 10ms, 100ms.

Giá trị đặt trước (PT): chính là giá trị đếm của Timer.Mỗi bộ Timer, ngoài thanh ghi 2 byte T_word lưu giá trị đếm

tức thời, còn có một bit, ký hiệu là T_bit chỉ trạng thái logic đầu ra. Giá trị logic của T_bit phụ thuộc vào kết quả so sánh giữa giá trị đếm tức thời và giá trị đặt trước.

Timer đếm tiến bằng T_word và giá trị đếm tức thời được lưu ở T_word - Giá trị đếm cực đại của timer là 32767 (Tại sao ?)

04/17/23Giảng Viên: Phạm Văn Tuấn107

2.3.1. Timer kiểu TON

04/17/23 Giảng Viên: Phạm Văn Tuấn 108

Ví dụ 2.8: Giải thích tác động của đầu ra

04/17/23Giảng Viên: Phạm Văn Tuấn109

2.3.2. Timer kiểu TONR

Network 1LD I0.0TONR T30, +100

Cách khai báo Timer TONR

Network 2LDW= T30, +150R T30, 1

04/17/23Giảng Viên: Phạm Văn Tuấn110

Network 1LD I0.0TONR T1, +100

Network 2LD T1= Q0.0Network 3

LD I0.1R T1, 1

STL

04/17/23Giảng Viên: Phạm Văn Tuấn111

Nguyên lý làm việc của TONR

04/17/23Giảng Viên: Phạm Văn Tuấn112

2.4. Timer trong S7- 200 CPU 22xTimer trong S7- 200 CPU 22x được chia làm ba loại khác nhau, đó là: * Timer tạo thời gian trễ không có nhớ tác động theo sườn

dương (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. * Timer tạo thời gian trễ, tác động theo sườn âm TOF (Off-Delay Timer).

Trong S7- 200 CPU22x bao gồm: 256 Timer

04/17/23Giảng Viên: Phạm Văn Tuấn113

* Với TON và TONR hoàn toàn tương tự như trong CPU S7- 200 CPU 21x.

* Với TOF, timer tác động theo sườn xuống – sườn âm.

04/17/23Giảng Viên: Phạm Văn Tuấn114

04/17/23Giảng Viên: Phạm Văn Tuấn115

04/17/23Giảng Viên: Phạm Văn Tuấn116

Nguyên lý làm việc của bộ tạo trễ TOF: Khi Timer được kích lên 1 (đầu IN từ 0 lên 1) thì T_bit thay đổi trạng thái ngay lập tức. T_word chưa đếm. Khi đầu vào IN chuyển từ 1 -> 0, Timer (T_word) bắt đầu đếm, nếu T_word< PT thì T_bit vẫn chưa trở về trạng thái cũ. Nếu T_word = PT thì T_word sẽ dừng đếm tiến, đồng thời T_bit trở lại trạng thái cũ. Trong khi T_word đang đếm mà đầu vào IN được kích lên 1(từ 0 lên 1) thì T_word bị reset về 0, T_bit vẫn sẽ không trở về trạng thái cũ. Khi T_word = PT, T_bit đã trở về trạng thái cũ rồi, mà đầu vào IN được kích lên 1 thì T_bit ngay lập tức thay đổi trạng thái, T_word bị reset về 0.

2.4.1. Timer kiểu TOF

04/17/23Giảng Viên: Phạm Văn Tuấn117

2.5. Counter trong S7- 200 CPU 21x

Trong S7- 200 CPU21x bao gồm: 64 counter (với CPU 212); 128 counter (CPU 214); 256 counter (CPU 215/ 216) được chia

Counter trong S7- 200 CPU 21x có 2 loại counter:* Counter đếm tiến CTU (Counter Up).* Counter đếm tiến/ lùi CTUD (Counter Up/ Down).

04/17/23 Giảng Viên: Phạm Văn Tuấn 118

* Counter up (CTU) với CPU 21x được chia thành các vùng nhớ sau:

CPU 212: C0 đến C47;

CPU 214: C0 đến C47 và từ C80 đến C127

* Counter up/ down (CTUD) với CPU 21x được chia thành các vùng nhớ sau:

CPU 212: C48 đến C63;

CPU 214: C48 đến C79

04/17/23Giảng Viên: Phạm Văn Tuấn119

Counter( Cxx )

Input

(Tín hiệu đếm)

Kết quả đầu ra

Mỗi bộ counter trong S7- 200 (kể cả CPU 21x và CPU 22x) đều được ký hiệu là Cxx , Mỗi bộ Cxx gồm 3 dạng dữ liệu: C_bit, C_word (current value) và PV (preset value). + C_bit: là kết quả đầu ra của counter. + C_word: lưu giá trị đếm tức thời của counter. + PV: Giá trị đặt trước.Counter đếm bằng C_word và giá trị đếm tức thời được lưu ở c_word - Giá trị đếm cực đại của counter là 32767, cực tiểu là

-32767 (Tại sao ?)

120 Giảng Viên: Phạm Văn Tuấn 04/17/23

121 Giảng Viên: Phạm Văn Tuấn 04/17/23

Ví dụ 2.9: Giải thích tác dụng của các lệnh

122 Giảng Viên: Phạm Văn Tuấn 04/17/23

123 Giảng Viên: Phạm Văn Tuấn 04/17/23

124 Giảng Viên: Phạm Văn Tuấn 04/17/23

04/17/23Giảng Viên: Phạm Văn Tuấn125

Ví dụ 2.10: Giải thích tác dụng của các lệnh

2.6. Counter trong S7- 200 CPU 22x

Counter trong S7- 200 CPU 22x có 3 loại counter:* Counter đếm tiến CTU (Counter Up).* Counter đếm tiến/ lùi CTUD (Counter Up/ Down).* Counter đếm lùi CTD (Counter Down).

Trong S7- 200 CPU22x có 256 bộ counter: C0 đến C255

04/17/23Giảng Viên: Phạm Văn Tuấn126

Giảng Viên: Phạm Văn Tuấn127 04/17/23

Giảng Viên: Phạm Văn Tuấn128 04/17/23

Nguyên lý làm việc của hai bộ đếm CTU và CTUD của S7-200 CPU 22x giống với S7-200 CPU 21x (đã được trình bày ở mục 2.5).

Giảng Viên: Phạm Văn Tuấn129 04/17/23

Bộ CTD thực hiện chức năng đếm xuống từ giá trị đặt trước PV về 0 khi có sườn lên của CD (chuyển từ 0 lên 1).Khi giá trị đếm tức thời (C_word) bằng 0 thì bộ CTD dừng đếm xuống, đồng thời C_bit chuyển trạng thái:

+ Tiếp điểm C_bit thường đóng thì mở ra.+ Tiếp điểm C_bit thường mở thì mở lại.

Counter sẽ reset C_bit (trở về trạng thái cũ) và nạp giá trị đếm tức thời = giá trị đặt trước PV (C_word = PV), khi tín hiệu LD được bật (chuyển từ 0 lên 1).

* Nguyên lý làm việc của bộ đếm CTD

Giảng Viên: Phạm Văn Tuấn130 04/17/23

Ví dụ 2.11: CTD

04/17/23Giảng Viên: Phạm Văn Tuấn131

Bài 1: Điều khiển 5 đèn theo yêu cầu công nghệ sau:

- Tại mỗi thời điểm chỉ có 1 đèn sáng.

- Đèn 1 sáng trong 5s thì tắt, đèn 2 sáng trong 5s thì tắt,… , đèn 4 sáng trong 5s thì tắt, đèn 5 sáng trong 5s thì tắt(1 chu kỳ).

- Trong 200.000 chu kỳ thì tắt tất cả các đèn

Bài tập ứng dụng phần lệnh đơn bit, Timer và Counter

Bài 2: Điều khiển theo yêu cầu sau:

Ấn nút A với số lần lẻ thì động cơ chạy. Ấn nút A với số lần chẵn thì động cơ dừng.

04/17/23Giảng Viên: Phạm Văn Tuấn132

Bài 3: Điều khiển 3 động cơ 3 pha theo yêu cầu sau:

Ấn nút khởi động thì động cơ 1 chạy, sau 10 phút thì động cơ 2 chạy, sau 3 giờ thì động cơ 3 chạy, đồng thời động cơ 1 và 2 ngắt. Động cơ 3 chạy được 4 giờ thì ngắt (Hết 1 chu kỳ). Chu kỳ này lặp đi lặp lại 5 lần thì dừng.

Bài 4: Khởi động động cơ kđb rotor lồng sóc bằng khởi động sao – tam giác.

Bài 5: Khởi động động cơ kđb rotor lồng sóc bằng khởi động theo 3 cấp điện trở phụ.

Bài 6: Điều khiển khởi động động cơ kđb rotor dây quấn bằng 3 cấp điện trở phụ.

04/17/23Giảng Viên: Phạm Văn Tuấn133

Bài 7: Đếm sỹ số sinh viên, với yêu cầu:

- Đặt được sỹ số sinh viên trong lớp.

- Nếu đủ sinh viên thì đèn xanh sáng.

- Nếu chưa đủ thì đèn vàng sáng.

- Nếu quá số sinh viên thì đèn đỏ sáng và còi kêu trong 3 giây./.

04/17/23Giảng Viên: Phạm Văn Tuấn134

2.7. Các lệnh làm việc với Byte, word và Double word

2.7.1. Các lệnh xử lý toán học liên quan đến số nguyên

Các lệnh làm việc với byte, word và double word là các lệnh có điều kiện - có nghĩa là các lệnh toán học này chỉ được thực hiện khi đỉnh của ngăn xếp có giá trị logic =1.

04/17/23Giảng Viên: Phạm Văn Tuấn135

Nhóm lệnh toán học liên quan đến số nguyên 16 bit:

04/17/23Giảng Viên: Phạm Văn Tuấn136

04/17/23Giảng Viên: Phạm Văn Tuấn137

04/17/23Giảng Viên: Phạm Văn Tuấn138

Nhóm lệnh toán học liên quan đến số nguyên 32 bit:

04/17/23Giảng Viên: Phạm Văn Tuấn139

04/17/23Giảng Viên: Phạm Văn Tuấn140

LƯU Ý:* Phép toán chia 2 số nguyên 16 bit (/I in1, out), kết quả cho số

nguyên 16 bit. Phần dư không được lưu lại.

* Phép toán chia 2 số nguyên 32 bit (/D in1, out), kết quả cho số nguyên 32 bit. Phần dư không được lưu lại.

04/17/23Giảng Viên: Phạm Văn Tuấn141

04/17/23Giảng Viên: Phạm Văn Tuấn142

LƯU Ý:Phép toán chia 2 số nguyên 16 bit (DIV in1, out), kết quả cho số

nguyên 32 bit. Phần dư được lưu lại ở 16 bit của 2 byte cao; thương được lưu ở 16 bit của 2 byte thấp.

04/17/23Giảng Viên: Phạm Văn Tuấn143

Ví dụ 2.12:

04/17/23Giảng Viên: Phạm Văn Tuấn144

2.7.2. Nhóm lệnh tăng, giảm nội dung thanh ghi, ô nhớ

Lệnh tăng nội dung của byte, giảm nội dung của byte

04/17/23Giảng Viên: Phạm Văn Tuấn145

Lệnh tăng nội dung của từ đơn, giảm nội dung của từ đơn

04/17/23Giảng Viên: Phạm Văn Tuấn146

Lệnh tăng nội dung của từ kép, giảm nội dung của từ kép

04/17/23Giảng Viên: Phạm Văn Tuấn147

Ví dụ 2.13:

04/17/23Giảng Viên: Phạm Văn Tuấn148

2.7.3. Các lệnh xử lý toán học liên quan đến số thực

Lệnh cộng, trừ số thực

04/17/23Giảng Viên: Phạm Văn Tuấn149

Lệnh nhân, chia số thực

04/17/23Giảng Viên: Phạm Văn Tuấn150

Ví dụ 2.14:

04/17/23Giảng Viên: Phạm Văn Tuấn151

Các hàm lượng giác: sin, cos, tan

04/17/23Giảng Viên: Phạm Văn Tuấn152

Các hàm căn, hàm logarit tự nhiên ln, hàm mũ ex

04/17/23Giảng Viên: Phạm Văn Tuấn153

04/17/23Giảng Viên: Phạm Văn Tuấn154

2.7.4. Các lệnh xử di chuyển dữ liệu MOVE

04/17/23Giảng Viên: Phạm Văn Tuấn155

04/17/23Giảng Viên: Phạm Văn Tuấn156

04/17/23Giảng Viên: Phạm Văn Tuấn157

Ví dụ 2.15:

04/17/23Giảng Viên: Phạm Văn Tuấn158

Lệnh Swap Bytes trao đổi nội dung byte cao với nội dung byte thấp của từ đơn trong IN.

04/17/23Giảng Viên: Phạm Văn Tuấn159

Ví dụ 2.16:

04/17/23Giảng Viên: Phạm Văn Tuấn160

2.8. Chương trình con và xử lý ngắt

2.9. Thời gian thực RTC – Real Timer Clock

2.10. Bộ đếm tốc độ cao HSC (Hight Speed Counter)

04/17/23Giảng Viên: Phạm Văn Tuấn161

04/17/23Giảng Viên: Phạm Văn Tuấn162

04/17/23Giảng Viên: Phạm Văn Tuấn163

04/17/23Giảng Viên: Phạm Văn Tuấn164

04/17/23Giảng Viên: Phạm Văn Tuấn165

04/17/23Giảng Viên: Phạm Văn Tuấn166

04/17/23Giảng Viên: Phạm Văn Tuấn167

04/17/23Giảng Viên: Phạm Văn Tuấn168

04/17/23Giảng Viên: Phạm Văn Tuấn169