Tải bản đầy đủ (.pdf) (220 trang)

Ứng dụng PLC trong các hệ điều khiển số và truyền thông công nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.97 MB, 220 trang )

Học viện kĩ thuật Quân Sự
Khoa kĩ thuật điều khiển

Pgs ts đào hoa việt

Tập bài giảng
ứng dụng plc trong các hệ điều khiển số
và truyền thông công nghiệp

Hà Nội 2005


1

CH-¬NG 1
Bé ®iÒu khiÓn logic kh¶ tr×nh
Trong chương 1, chúng ta sẽ tìm hiểu những vấn đề cơ bản về bộ điều
khiển logic khả trình nói chung và bộ điều khiển logic khả trình S7-200 của
hãng SIEMENS nói riêng. Những vấn đề trọng tâm là khái niệm về bộ điều
khiển logic khả trình, những ưu điểm và ứng dụng; cấu trúc cơ bản của bộ
điều khiển logic khả trình, trong đó đáng chú ý là tổ chức các mạch ghép nối
vào/ra và nguyên lý hoạt động cơ bản của nó. Đối với bộ điều khiển logic khả
trình S7-200 của SIEMENS, nội dung chương này đi sâu tìm hiểu về tổ chức
bộ nhớ, các kiểu vùng nhớ và ứng dụng, các chức năng có liên quan đến các
đầu vào/ra. Đó là những nội dung cơ bản trước khi có thể lập trình cho bộ
điều khiển.
1.1. Khái quát chung về bộ điều khiển logic khả trình
1.1.1. Giới thiệu về bộ điều khiển logic khả trình
Bộ điều khiển logic khả trình (Programmable Logic Controller - PLC)
là loại thiết bị điều khiển đặc biệt dựa trên bộ vi xử lý, được thiết kế chuyên
dùng trong công nghiệp để điều khiển các quá trình từ đơn giản đến phức tạp.


Thuật ngữ khả trình có nghĩa là người sử dụng có thể viết chương trình và
biên dịch chương trình (bằng các thiết bị lập trình chuyên dụng) rồi nạp vào
bộ nhớ của PLC. Sau đó, PLC thực hiện quá trình điều khiển các đối tượng
theo logic chương trình đã lưu trong bộ nhớ. Bằng cách thay đổi chương trình
trong bộ nhớ thì có thể thay đổi logic điều khiển của hệ thống. . Như vậy, có
thể áp dụng cùng một hệ thống phần cứng điều khiển cho các đối tượng khác
nhau. Thuật ngữ logic thể hiện chức năng ban đầu và cũng là chức năng chủ
yếu của PLC là thực hiện các thao tác logic chuyển mạch.


2

Nhu cầu về một bộ điều khiển dễ sử dụng, linh hoạt và có giá thành
thấp đã thúc đẩy sự phát triển những hệ thống điều khiển lập trình
(programmable control systems) – hệ thống sử dụng bộ vi xử lý (CPU) và bộ
nhớ để điều khiển máy móc hay quá trình. Bộ điều khiển lập trình
(Programmable Logic Controller - PLC) ra đời nhằm thay thế hệ thống điều
khiển truyền thống dùng rơ-le và thiết bị rời cồng kềnh. Nó tạo ra khả năng
điều khiển thiết bị dễ dàng và linh hoạt dựa trên việc sử dụng các lệnh logic
cơ bản. Ngoài ra, PLC còn có thể thực hiện những tác vụ khác như định thời,
đếm…làm tăng khả năng điều khiển cho những hoạt động phức tạp, ngay cả
với loại PLC nhỏ nhất.
Thiết bị điều khiển lập trình đầu tiên (Programmable Controller) đã
được những nhà thiết kế cho ra đời năm 1968 (công ty General Motor - Mỹ).
Tuy nhiên, hệ thống này còn khá đơn giản và cồng kềnh, người sử dụng gặp
nhiều khó khăn trong việc vận hành hệ thống. Vì vậy các nhà thiết kế từng
bước cải tiến hệ thống làm cho hệ thống đơn giản, gọn nhẹ, dễ vận hành.
Nhưng việc lập trình cho hệ thống còn khó khăn do lúc này không có các thiết
bị lập trình chuyên dùng hỗ trợ cho công việc lập trình. Để đơn giản hóa việc
lập trình, hệ thống điều khiển lập trình cầm tay (Programmable Controller

Handle) đầu tiên được ra đời vào năm 1969. Điều này đã tạo ra sự phát triển
thực sự cho kỹ thuật điều khiển lập trình. Các nhà thiết kế đã từng bước chuẩn
hóa ngôn ngữ lập trình, đó là ngôn ngữ lập trình dùng giản đồ hình thang
(Ladder Diagram). Các nhà sản xuất liên tục đưa ra các công cụ (cả phần
mềm và thiết bị) hỗ trợ cho việc lập trình, giám sát và gỡ rối.
Hoạt động cơ bản của PLC là kiểm tra tất cả các trạng thái tín hiệu ở
ngõ vào được đưa về từ quá trình điều khiển, thực hiện chương trình trong bộ
nhớ và tạo ra tín hiệu điều khiển các thiết bị bên ngoài. Với các mạch ghép
nối ở khối vào và khối ra của PLC cho phép nó kết nối trực tiếp với những cơ


3

cấu tác động (actuators) có công suất nhỏ ở ngõ ra và những mạch chuyển đổi
tín hiệu (transducers) ở ngõ vào. Tuy nhiên, cần phải có mạch khuếch đại
công suất trung gian khi PLC điều khiển những thiết bị có công suất lớn.
Việc sử dụng PLC cho phép chúng ta hiệu chỉnh hệ thống điều khiển
mà không cần có sự thay đổi nào về mặt kết nối dây.Ta chỉ cần thay đổi
chương trình điều khiển trong bộ nhớ thông qua thiết bị lập trình chuyên
dùng. Ngoài ra , chúng còn có ưu điểm là thời gian lắp đặt và đưa vào hoạt
động nhanh hơn so với những hệ thống điều khiển truyền thống mà đòi hỏi
cần phải thực hiện việc nối dây phức tạp giữa các thiết bị rời.
Về phần cứng, PLC tương tự như máy tính thông thường - được coi là
máy tính xử lý dữ liệu, chuyên dùng với chức năng xử lý dữ liệu và hiển thị trong khi PLC là máy tính điều khiển quá trình, hay còn gọi là máy tính công
nghiệp vì chúng có các đặc điểm thích hợp cho mục đích điều khiển trong
công nghiệp, đó là:
-Được thiết kế để có thể hoạt động tốt trong môi trường công nghiệp
(rung động, tiếng ồn, nhiệt độ, độ ẩm, nhiễu).
-Cấu trúc dạng module cho phép thay thế dễ dàng, có khả năng mở
rộng và nâng cấp.

-Có sẵn các mạch ghép nối cho phép ghép nối trực tiếp với một số thiết
bị bên ngoài.
-Được tích hợp các chức năng chuyên dùng như đếm, định thời, điều
khiển PID, điều khiển động cơ, truyền thông công nghiệp...
-Việc kết nối dây và mức điện áp tín hiệu ở ngõ vào và ngõ ra được
chuẩn hóa.
-Ngôn ngữ lập trình chuyên dùng và dễ sử dụng nhờ sự hỗ trợ của thiết
bị lập trình.
-Thay đổi chương trình điều khiển dễ dàng.


4

Những đặc điểm trên làm cho PLC được sử dụng nhiều trong việc điều
khiển các máy móc công nghiệp và trong điều khiển quá trình công nghiêp
(process control).
Bộ điều khiển lập trình là ý tưởng của một nhóm kỹ sư hãng General
Motors vào năm 1968 nhằm đáp ứng những yêu cầu điều khiển trong công
nghiệp. Ban đầu nó mới chỉ được sử dụng để thay thế cho hệ thống điều khiển
sử dụng rơle. Cùng với sự phát triển của công nghệ vi điện tử và công nghệ
máy tính, PLC ngày càng được phát triển cả về phần cứng và phần mềm hỗ
trợ. Tập lệnh từ các lệnh logic đơn giản được phát triển thêm các lệnh định
thời, lệnh đếm; sau đó là các lệnh toán học, xử lý dữ liệu, xử lý xung tốc độ
cao, tính toán số liệu thực 32 bit, xử lý thời gian thực… Sự phát triển về phần
cứng cũng đạt được nhiều kết quả: bộ nhớ lớn hơn, số lượng ngõ vào/ra nhiều
hơn, nhiều module chuyên dùng hơn, và đặc biệt là tốc độ thực hiện nhanh
hơn. PLC không những chỉ điều khiển các máy riêng lẻ, mà ngày nay đã trở
thành một thành phần quan trọng trong các dây truyền sản xuất công nghiệp,
trong các hệ thống điều khiển và giám sát cùng với sự phát triển của các
chuẩn truyền thông công nghiệp.

Có một số thuật ngữ dùng để mô tả bộ điều khiển lập trình :
PC:

Programmable Controller (Anh)

PLC: Programmable Logic Controller (Mỹ)
PBS: Programmable Binary Systems (Thụy Điển)
Hai thuật ngữ sau đều thể hiện bộ điều khiển lập trình làm việc với tín
hiệu nhị phân. Trong thực tế, tất cả bộ điều khiển trừ bộ điều khiển loại nhỏ
đều có khả năng xử lý tín hiệu liên tục (analog signal), nên các thuật ngữ đó
không nói lên được hết khả năng của bộ điều khiển lập trình. Do đó thuật ngữ
Programmable Controller - PC thể hiện ý nghĩa tổng quát nhất về bộ điều


5

khiển lập trình. Tuy nhiên, để tránh sự nhầm lẫn với thuật ngữ máy tính cá
nhân (Personal Computer - PC) thì PLC thường được dùng thay cho PC.
Hiện nay, PLC đã được nhiều hãng khác nhau sản xuất như: Siemens,
Omron, Mitsubishi, Festo, Alan Bradley, Schneider, Hitachi ... Theo xu
hướng chuẩn hóa và module hóa thì PLC của các hãng khác nhau đều có cấu
trúc phần cứng cũng như tập lệnh tương tự nhau.
1.1.2. Ưu điểm của PLC
Có thể nêu ra một số ưu điểm chính khi sử dụng PLC như sau:
-Tính linh hoạt: có thể sử dụng một bộ điều khiển cho nhiều đối tượng
khác nhau với các thuật toán điều khiển khác nhau.
-Dễ dàng thiết kế và thay đổi logic điều khiển: với các hệ thống điều
khiển sử dụng rơle, khi thay đổi logic điều khiển cần có nhiều thời gian để nối
lại dây cho các thiết bị và panel điều khiển, và đó là một công việc phức tạp.
Với hệ thống điều khiển sử dụng PLC, thay đổi logic điều khiển bằng cách

thay đổi chương trình thông qua thiết bị lập trình và ngôn ngữ lập trình
chuyên dùng. Điều đó làm giảm đáng kể thời gian thiết kế hệ thống.
-Tối ưu logic điều khiển: được sự hỗ trợ của các công cụ mô phỏng và
gỡ rối trực tuyến và trực quan làm cho hệ thống được thiết kế có tính tối ưu
hơn.
-Tốc độ thực hiện nhanh.
-Nhỏ, gọn và giá thành thấp.
-Khả năng bảo mật hệ thống khi sử dụng mã khóa.
-Khả năng mở rộng và nâng cấp hệ thống: do được chế tạo dưới dạng
các modul được chuẩn hóa cho phép ghép nối các thành phần không chỉ của
một nhà sản xuất. Đây là một yêu cầu không thể thiếu trong các hệ thống điều
khiển hiện đại.
1.1.3. Cấu trúc và hoạt động cơ bản của PLC


6

PLC là thiết bị điều khiển dựa trên bộ vi xử lý, các thành phần cơ bản
của nó gồm:
-Khối xử lý trung tâm (Central Processing Unit - CPU)
-Bộ nhớ trong (Internal Memory)
-Bus hệ thống (System Bus)
-Khối ghép nối vào/ra (Input/Output Interface)
-Khối nguồn (Power Supply)

1.1.3.1. Khối xử lý trung tâm CPU
Đây là bộ não của hệ thống, có chức năng điều khiển và giám sát toàn
bộ hoạt động của hệ thống bằng cách thực hiện tuần tự các lệnh trong bộ nhớ.
Bên trong CPU gồm các mạch điều khiển, khối thuật toán và logic, các thanh
ghi chuyên dụng và thanh ghi dữ liệu tạm thời.

Hoạt động cơ bản của CPU là: đọc lần lượt từng lệnh từ bộ nhớ, giải
mã lệnh, phát tín hiệu điều khiển các thành phần khác và xử lý dữ liệu.
1.1.3.2. Bộ nhớ trong


7

Bộ nhớ trong là loại bộ nhớ bán dẫn, có ưu điểm là tương thích về kích
thước và mức logic với các thành phần khác của hệ thống; tốc độ truy nhập
cao; năng lượng tiêu thụ thấp. PLC sử dụng các loại bộ nhớ sau đây:
-ROM hệ thống: chứa chương trình hệ thống (hệ điều hành) và dữ liệu
cố định được CPU sử dụng. Dữ liệu trong ROM được nhà sản xuất nạp vào và
không thay đổi trong suốt quá trình sử dụng sau này.
-RAM chứa chương trình và dữ liệu của người sử dụng
-RAM làm bộ đệm cho các tín hiệu vào/ra và cho các đối tượng khác
(bộ đếm, định thời...)
-EEPROM để lưu cố định chương trình của người sử dụng cũng như
những dữ liệu cần thiết mà người dùng lựa chọn.
Một phần hoặc toàn bộ RAM có thể được nuôi bằng tụ điện hoặc nguồn
pin bên ngoài. Chương trình của người sử dụng được nạp vào RAM, sau đó tự
động nạp vào EPPROM để có thể lưu trữ vĩnh cửu.
1.1.3.3. Khối ghép nối vào
Khối ghép nối vào có các chức năng sau: nhận tín hiệu vào từ các thiết
bị nhập (ví dụ các cảm biến, chuyển mạch...); biến đổi các tín hiệu vào thành
mức điện áp một chiều; thực hiện cách ly tĩnh điện bằng bộ ghép nối quang;
tạo tín hiệu logic chuẩn đưa đến các mạch trong PLC.
Do đó mạch ghép nối vào có các khối sau:
-Bộ biến đổi
-Mạch cách ly tĩnh điện
-Mạch logic

Sơ đồ mạch ghép nối vào:


8

Khối đầu tiên nhận tín hiệu từ các cảm biến, chuyển mạch...Nếu tín
hiệu vào là điện áp xoay chiều thì bộ biến đổi chỉnh lưu thành điện áp một
chiều có giá trị nhỏ. Đầu ra của bộ biến đổi không được đưa trực tiếp đến các
mạch trong PLC nhằm tránh cho nó khỏi ảnh hưởng của mạch ngoài. Ví dụ
trong trường hợp bộ biến đổi làm việc không chính xác, thì điện áp xoay
chiều lớn được đưa đến PLC và làm hỏng hệ thống, bởi vì hầu hết các mạch
xử lý chỉ làm việc với điện áp 5V một chiều. Do vậy phải có mạch cách ly để
bảo vệ các mạch trong PLC. Mạch cách ly thường sử dụng bộ ghép nối
quang, Tín hiệu được chuẩn hóa về mức logic để đưa vào hệ thống.
Sơ đồ nguyên lý của mạch ghép nối vào:

1.1.3.4. Khối ghép nối ra
Khối ghép nối ra hoạt động tương tự khối ghép nối vào: tín hiệu một
chiều chuẩn từ trong PLC qua các mạch biến đổi đến các đầu ra vật lý, cho
phép điều khiển trực tiếp các tải một chiều và xoay chiều công suất nhỏ với
các mức điện áp khác nhau. Bộ ghép nối quang cũng được sử dụng để tránh
cho các mạch bên trong PLC khỏi ảnh hưởng của các thiết bị bên ngoài.


9

Mạch giao tiếp sử dụng rơle, tranzitor, triac cho phép nối trực tiếp PLC
với tải công suất nhỏ. Khi nối đầu ra với tải công suất lớn cần có mạch công
suất bên ngoài.
Mạch giao tiếp kiểu rơle: tín hiệu từ PLC được sử dụng để điều khiển

rơle, có khả năng chuyển mạch dòng điện lớn trong mạch tải. Ngoài ra rơle
còn có chức năng cách ly PLC với mạch ngoài. Rơle có khả năng chịu quá tải
trong thời gian ngắn. Tuy nhiên, nhược điểm của rơle là tốc độ chuyển mạch
chậm. Mạch rơle được sử dụng cho cả tải một chiều và xoay chiều.

Mạch giao tiếp kiểu tranzitor: tín hiệu từ PLC điều khiển tranzitor làm
việc ở chế độ khóa. Ưu điểm của tranzitor là tốc độ chuyển mạch nhanh.
Nhưng dễ bị hư hỏng do quá tải hoặc khi chuyển từ trạng thái thông sang
khóa. Do đó phải sử dụng các mạch bảo vệ. Mạch tranzitor chỉ dùng cho điện
áp một chiều.


10

Mạch giao tiếp kiểu triac: chuyên dùng với mạch điện xoay chiều, có
tốc độ chuyển mạch nhanh. Nhưng dễ bị hư hỏng do quá tải, nên phải có
mạch bảo vệ.
Như vậy, mặc dù các mạch bên trong PLC làm việc với tín hiệu chuẩn
5V một chiều, nhưng nhờ có mạch ghép nối ra nên có thể nối trực tiếp PLC
với phụ tải một chiều hoặc xoay chiều có các mức điện áp khác nhau.
1.1.3.5. Bus hệ thống
Bus hệ thống phục vụ cho việc truyền thông tin giữa các thành phần
trong hệ thống. Thông tin được truyền trong hệ thống dưới dạng tín hiệu nhị
phân.
Bus hệ thống gồm có các bus sau:
-Bus dữ liệu: bus dữ liệu là bus hai chiều, dùng để truyền tải dữ liệu
giữa các thành phần trong hệ thống.
-Bus địa chỉ: bus địa chỉ là bus một chiều, khi CPU muốn truy cập đến
một thành phần nào đó thì nó cung cấp địa chỉ của thành phần đó lên bus này,
tín hiệu địa chỉ qua bộ giải mã địa chỉ kích hoạt thành phần tương ứng.

-Bus điều khiển: CPU sử dụng bus điều khiển để cung cấp các tín hiệu
điều khiển và nhận các tín hiệu thông báo từ các thành phần.
1.1.3.6. Khối nguồn
Khối nguồn có chức năng biến đổi nguồn điện áp bên ngoài thành các
mức điện áp phù hợp cung cấp cho các thành phần của PLC.
Ngoài ra, PLC còn có một mạch tạo xung điện, gọi là đồng hồ hệ thống
(System clock), để tạo xung đồng bộ sự hoạt động của các thành phần.
Có thể mô tả hoạt động cơ bản của PLC như sau:
Trong quá trình hoạt động, CPU đọc trạng thái của tất cả các thiết bị
ngoại vi thông qua các đầu vào, sau đó thực hiện chương trình trong bộ nhớ.
Sau khi thực hiện xong chương trình là giai đoạn truyền thông nội bộ và chẩn


11

đoán lỗi. Cuối cùng, CPU sẽ gửi tín hiệu điều khiển các thiết bị thông qua các
đầu ra số. Một chu kỳ gồm đọc tín hiệu đầu vào, thực hiện chương trình,
truyền thông nội và tự kiểm tra lỗi, gửi tín hiệu tới các đầu ra được gọi là một
vòng quét (Scan Cycle).
Như vậy, tại thời điểm thực hiện lệnh vào/ra thì lệnh không xử lý trực
tiếp với đầu vào/ra mà sẽ xử lý thông qua bộ nhớ đệm. Nếu có sử dụng ngắt
thì chương trình xử lý ngắt tương ứng với từng sự kiện ngắt sẽ được soạn thảo
và cài đặt như một bộ phận chương trình. Chương trình ngắt chỉ thực hiện
trong vòng quét khi xuất hiện sự kiện ngắt tương ứng và có thể xảy ra ở bất kì
thời điểm nào trong vòng quét
Việc thực hiện một vòng quét xảy ra với thời gian rất ngắn, một vòng
quét có thời gian thực hiện từ 1ms tới 100ms. Việc thực hiện một vòng quét
dài hay ngắn còn phụ thuộc vào độ dài của chương trình và cả mức độ giao
tiếp giữa PLC với các thiết bị ngoại vi.


1.2. Bộ điều khiển logic khả trình S7-200 của SIEMENS
S7-200 là họ PLC loại nhỏ của hãng SIEMENS (Micro PLC) được cấu trúc
theo dạng module. Một PLC S7-200 gồm có một Module CPU S7-200 và có
thể có các Module mở rộng. Module CPU S7-200 gồm có một khối sử lý
trung tâm (CPU), bộ nhớ trong, nguồn công suất, các đầu vào/ra số tích hợp,
cổng truyền thông. Có thể tăng thêm các đầu vào/ra số cũng như các chức
năng chuyên dùng khác bằng các module mở rộng.
Một số đặc tính kỹ thuật của module CPU S7-200:
-CPU thực hiện chương trình lưu trong bộ nhớ, từ đó tạo ra các tác
động điều khiển các thiết bị bên ngoài.


12

-Các đầu vào và đầu ra số: các đầu vào số nhận tín hiệu từ các thiết bị
trường (như cảm biến và chuyển mạch), các đầu ra điều khiển các cơ cấu chấp
hành (như cuộn dây, động cơ, bơm...).
-Khối nguồn cung cấp điện năng cho CPU và bất kỳ module mở rộng
nào được kết nối.
-Cổng truyền thông cho phép kết nối CPU với thiết bị lập trình cũng
như các thiết bị tiêu chuẩn khác.
-Các đèn trạng thái báo tín hiệu về chế độ hoạt động của CPU (RUN
hoặc STOP), trạng thái hiện tại của các đầu vào/ra tích hợp, các lỗi của hệ
thống.
-Một vài CPU có đồng hồ thời gian thực bên trong. Hoặc có thể lựa
chọn thêm dưới dạng hộp cắm.
-Có thể sử dụng thêm hộp chứa EEPROM để lưu chương trình.
-Có thể sử dụng thêm hộp pin để tăng thời gian duy trì dữ liệu trong
RAM.
Hoạt động cơ bản của CPU S7-200 như sau:

-CPU đọc trạng thái của các đầu vào và lưu các giá trị trong bộ đệm
vào.
-CPU thực hiện chương trình lưu trong bộ nhớ và cập nhật dữ liệu
trong bộ nhớ.
-CPU ghi dữ liệu tới các đầu ra.
1.2.1. Khái niệm về vòng quét
Chức năng của CPU là thực hiện lặp đi lặp lại một chuỗi công việc. Sự
thực hiện các công việc có tính tuần hoàn này gọi là vòng quét (Scan cycle).
Trong mỗi vòng quét, CPU thực hiện hầu hết hoặc toàn bộ các công
việc sau:
- Đọc các đầu vào


13

- Thực hiện chương trình
- Xử lý các yêu cầu truyền thông
- Thực hiện tự chẩn đoán
- Viết các đầu ra
Có thể biểu diễn vòng quét của CPU như sau:

Chuỗi các công việc được thực hiện trong vòng quét phụ thuộc vào chế
độ hoạt động của CPU. CPU S7-200 có 2 chế độ hoạt động : chế độ STOP và
chế độ RUN. Sự khác nhau chính giữa 2 chế độ này là: chương trình chỉ được
thực hiện trong chế độ RUN mà không được thực hiện trong chế độ STOP.
1.2.1.1. Đọc các đầu vào số
Mỗi vòng quét bắt đầu bằng việc đọc giá trị hiện thời của các đầu vào
số và lưu các giá trị này ở bộ đệm vào.
CPU quản lý bộ đệm dành cho các đầu vào số theo từng byte. Nếu CPU
hoặc module mở rộng không có đủ một đầu vào vật lý cho mỗi bit của byte

nào đó, thì không thể gán lại các bit này cho các module tiếp theo cũng như
không thể sử dụng chúng trong chương trình. Tại thời điểm bắt đầu mỗi vòng
quét, CPU gán các bit không sử dụng này bằng 0. Trong trường hợp các
module mở rộng không được lắp đặt, thì có thể sử dụng các bit đầu vào mở
rộng này trong chương trình như các bit nhớ thông thường.
1.2.1.2. Thực hiện chương trình


14

Trong giai đoạn thực hiện chương trình, các lệnh được thực hiện lần
lượt từ lệnh đầu tiên đến lệnh cuối cùng. Các lệnh vào/ra trực tiếp cho phép
truy nhập trực tiếp đến các đầu vào/ra vật lý trong khi thực hiện chương trình
hoặc trình xử lý ngắt.
Nếu chương trình có sử dụng ngắt, thì trình xử lý ngắt chỉ được thực
hiện khi sự kiện ngắt tương ứng xuất hiện (sự kiện ngắt có thể xuất hiện tại
bất kỳ thời điểm nào trong vòng quét).
1.2.1.3. Xử lý các yêu cầu truyền thông
Trong giai đoạn này, CPU sẽ xử lý bất kỳ yêu cầu nào nhận được từ
cổng truyền thông.
1.2.1.4. Thực hiện tự chẩn đoán
Trong giai đoạn này, CPU thực hiện kiểm tra phần lõi của nó (chương
trình hệ thống), các module vào/ra, bộ nhớ chương trình người dùng (chỉ ở
chế độ RUN).
1.2.1.5. Ghi các đầu ra số
Tại thời điểm kết thúc mỗi vòng quét, CPU ghi dữ liệu lưu trong bộ
đệm tới các đầu ra vật lý.
CPU quản lý bộ đệm ra cũng theo từng byte như bộ đệm vào (đã nêu ở
trên).
Khi chế độ hoạt động của CPU chuyển từ RUN sang STOP, thì các đầu

ra số nhận giá trị được chỉ ra trong Output Table (sử dụng phần mềm STEP 7Micro/WIN 32), hoặc giữ nguyên trạng thái hiện thời của chúng. Mặc định là
các đầu ra số đều nhận giá trị 0 khi CPU chuyển từ chế độ RUN sang STOP.
Nên sử dụng bộ nhớ đệm vào/ra hơn là truy nhập trực tiếp các đầu
vào/ra khi thực hiện chương trình.
Điều đó xuất phát từ các lý do sau đây:


15

-Việc lấy mẫu tất cả các đầu vào tại thời điểm đầu mỗi vòng quét và
cập nhật các đầu ra tại thời điểm kết thúc mỗi vòng quét làm cho chương trình
dễ kiểm soát hơn.
-Việc truy nhập bộ đệm vào/ra nhanh hơn nhiều so với việc truy nhập
trực tiếp các đầu vào/ra vật lý. Do đó chương trình được thực hiện nhanh hơn.
-Các đầu vào/ra phải truy nhập theo bit, trong khi có thể truy nhập bộ
đệm vào/ra theo bit, byte, từ, hoặc từ kép.
Các lệnh vào/ra tức thời cho phép truy nhập trực tiếp các đầu vào/ra vật
lý. Khi sử dụng một lệnh tức thời để truy nhập đến một đầu vào vật lý thì bit
tương ứng ở bộ đệm vào không thay đổi giá trị. Khi sử dụng một lệnh tức thời
để truy nhập một đầu ra vật lý thì đồng thời cũng cập nhật bit tương ứng trong
bộ đệm ra.
1.2.2. Tổ chức bộ nhớ
CPU S7-200 cung cấp các vùng bộ nhớ chuyên dùng làm cho việc xử
lý dữ liệu nhanh hơn và hiệu quả hơn. Ta sẽ tìm hiểu chức năng của từng
vùng nhớ và cách truy nhập chúng.
1.2.2.1. Định địa chỉ trực tiếp các vùng nhớ
CPU S7-200 lưu trữ dữ liệu ở các vị trí khác nhau trong bộ nhớ, mỗi vị
trí nhớ có một địa chỉ duy nhất. Chương trình có thể sử dụng địa chỉ của vị trí
nhớ để truy nhập dữ liệu trong bộ nhớ. Cách truy nhập này gọi là định địa chỉ
trực tiếp.

Để truy nhập đến một bit trong một vùng nhớ nào đó, chương trình phải
chỉ rõ địa chỉ gồm tên vùng nhớ, địa chỉ byte, và địa chỉ bit. Địa chỉ byte và
địa chỉ bit ngăn cách nhau bởi dấu (.). Chế độ địa chỉ này gọi là chế độ định
địa chỉ bit.
Định dạng địa chỉ:
[Tên vùng nhớ][Địa chỉ byte].[Địa chỉ bit]


16

Ví dụ:

I3.4

Trong đó:
I: tên vùng nhớ (vùng nhớ đệm vào)
3: địa chỉ byte
4: địa chỉ bit
Chương trình có thể truy nhập dữ liệu trong các vùng nhớ theo byte, từ
(word), hoặc từ kép (double word) bằng cách chỉ rõ địa chỉ gồm tên vùng nhớ,
kích thước dữ liệu (byte - B, từ - W, hoặc từ kép - DW), và địa chỉ byte đầu
tiên. Chế độ địa chỉ này gọi là chế độ định địa chỉ byte.
Định dạng địa chỉ: [Tên vùng nhớ][Kích thước][Địa chỉ byte đầu tiên]
Ví dụ: VB100, VW100, VD100

Dữ liệu trong các vùng nhớ đối tượng (như T, C, HC và các thanh
chứa) được truy cập bằng cách sử dụng địa chỉ gồm tên đối tượng và số hiệu
đối tượng.
-Vùng nhớ đệm vào I:
CPU lấy mẫu các đầu vào vật lý tại thời điểm bắt đầu của mỗi vòng

quét và ghi các giá trị này ở vùng đệm vào. Chương trình có thể truy nhập
vùng đệm vào theo bit, byte, từ, hoặc từ kép.
-Vùng nhớ đệm ra Q:


17

Tại thời điểm kết thúc mỗi vòng quét, CPU sao chép các giá trị được
lưu trong vùng đệm ra đến các đầu ra vật lý. Chương trình có thể truy nhập
vùng đệm ra theo bit, byte, từ, hoặc từ kép.
-Vùng nhớ V:
Có thể sử dụng vùng nhớ V để lưu các kết quả trung gian của các thao
tác đang được thực hiện trong chương trình. Cũng có thể sử dụng vùng nhớ V
để lưu các dữ liệu khác có liên quan đến quá trình điều khiển. Có thể truy
nhập vùng nhớ V theo bit, byte, từ, hoặc từ kép.
-Vùng nhớ bit M:
Có thể sử dụng vùng nhớ bit M như các rơle điều khiển bên trong. Mặc
dù có tên là vùng nhớ bit nhưng có thể truy nhập theo bit, byte, từ, hoặc từ
kép.
-Vùng nhớ S (Sequence Control Relay - SCR):
Các bit thuộc vùng nhớ S được sử dụng để tổ chức các hoạt động theo
một trình tự nào đó của máy móc thành các đoạn chương trình tương đương.
Các bit nhớ S được gọi là các rơle điều khiển trình tự. Nó cho phép phân đoạn
chương trình về mặt logic. Có thể truy nhập vùng nhớ S theo bit, byte, từ,
hoặc từ kép.
-Vùng nhớ đặc biệt SM:
Các bit nhớ đặc biệt SM được sử dụng để giao tiếp giữa CPU và
chương trình của người sử dụng. Chương trình có thể sử dụng các bit này để
lựa chọn và điều khiển một số chức năng đặc biệt của CPU S7-200. Có thể
truy nhập dữ liệu trong vùng nhớ này theo bit, byte, từ, hoặc từ kép.

-Vùng nhớ cục bộ L:
Các CPU S7-200 cung cấp vùng nhớ cục bộ L gồm 64 byte, trong đó có
thể sử dụng 60 byte như là vùng nhớ tạm thời hoặc để truyền các tham số hình


18

thức cho các chương trình con. 4 byte cuối cùng của vùng nhớ L được phần
mềm STEP 7-Micro/WIN 32 sử dụng.
Vùng nhớ L tương tự như vùng nhớ V, chỉ khác ở chỗ vùng nhớ V có
phạm vi toàn cục, còn vùng nhớ L có phạm vi cục bộ. Thuật ngữ "toàn cục"
có nghĩa là vùng nhớ được truy nhập từ bất kỳ chương trình nào (chương trình
chính, chương trình con, trình xử lý ngắt). Thuật ngữ "cục bộ" có nghĩa là
vùng nhớ chỉ được cấp phát và được truy nhập từ một chương trình mà trong
đó vùng nhớ được khai báo. CPU S7-200 cấp phát 64 byte vùng nhớ L cho
chương trình chính, 64 byte cho mỗi cấp chương trình con, và 64 byte cho các
trình xử lý ngắt. Một chương trình không thể truy nhập đến vùng nhớ L đã
được cấp phát cho các chương trình khác. Chỉ khi sự kiện ngắt xuất hiện hoặc
khi chương trình con được gọi thì vùng nhớ L mới được cấp phát nếu có sử
dụng. Vùng nhớ mới được cấp phát có thể dùng lại vùng nhớ đã được cấp
phát cho một chương trình con hoặc trình xử lý ngắt khác.
Vùng nhớ L không được khởi tạo tại thời điểm cấp phát nên có thể
chứa bất kỳ giá trị nào. Khi thực hiện lệnh gọi chương trình con đồng thời
cũng thực hiện truyền giá trị cho các tham số hình thức, CPU đặt các giá trị
này vào các vị trí trong vùng nhớ L được cấp phát cho chương trình con đó;
các vị trí khác không được truyền giá trị thì có thể chứa giá trị bất kỳ.
Có thể truy nhập vùng nhớ L theo bit, byte, từ hoặc từ kép. Chú ý rằng
có thể sử dụng vùng nhớ L làm con trỏ khi định địa chỉ gián tiếp, nhưng
không thể định địa chỉ gián tiếp vùng nhớ L.
-Vùng nhớ của các bộ định thời T:

Trong CPU S7-200, các bộ định thời có chức năng đếm thời gian. Các
bộ định thời S7-200 có các độ phân giải 1ms, 10ms, 100ms. Có hai biến được
kết hợp với mỗi bộ định thời:


19

.Giá trị hiện thời: là số nguyên không dấu 16 bit lưu giữ khoảng thời
gian mà bộ định thời đã đếm được.
.Giá trị bit của bộ định thời (Timer bit): bit này được đặt hoặc xoá tuỳ
thuộc vào kết quả so sánh giữa giá trị hiện thời và giá trị đặt trước. Giá trị đặt
trước được nhập như một toán hạng của lệnh Timer.
Có thể truy nhập đến cả hai biến này bằng cách sử dụng định dạng địa
chỉ sau:

T[số bộ định thời]

Việc truy nhập đến giá trị hiện thời hoặc giá trị bit tuỳ thuộc vào lệnh
được sử dụng: lệnh với toán hạng bit truy nhập đến giá trị bit; lệnh với toán
hạng từ truy nhập đến giá trị hiện thời.
-Vùng nhớ của các bộ đếm C:
Trong CPU S7-200, các bộ đếm có chức năng đếm theo sườn dương
của xung ở các đầu vào đếm. CPU cung cấp ba loại bộ đếm: đếm tiến, đếm
lùi, đếm cả tiến và lùi. Có hai biến được kết hợp với mỗi bộ đếm:
.Giá trị hiện thời: là số nguyên không dấu 16 bit lưu giữ số xung đã
đếm được.
.Giá trị bit của bộ đếm (Counter bit): bit này được đặt hoặc xoá tuỳ
thuộc vào kết quả so sánh giữa giá trị hiện thời và giá trị đặt trước. Giá trị đặt
trước được nhập như một toán hạng của lệnh Counter.
Có thể truy nhập đến cả hai biến này bằng cách sử dụng định dạng địa

chỉ sau:
C[số bộ đếm]
Việc truy nhập đến giá trị hiện thời hoặc giá trị bit tuỳ thuộc vào lệnh
được sử dụng: lệnh với toán hạng bit truy nhập đến giá trị bit; lệnh với toán
hạng từ truy nhập đến giá trị hiện thời.
-Địa chỉ các đầu vào tương tự AI:


20

S7-200 biến đổi một giá trị tương tự (như nhiệt độ hoặc điện áp) thành
một giá trị số có độ dài 16 bit. Việc đọc các giá trị này bằng cách sử dụng địa
chỉ gồm nhận dạng vùng nhớ (AI), kích thước dữ liệu (W), địa chỉ byte đầu
tiên. Bởi vì các đầu vào tương tự là các từ và luôn bắt đầu bằng các byte số
chẵn, nên địa chỉ byte là các số chẵn. Các giá trị đầu vào tương tự là các giá
trị chỉ đọc được (read-only).
Định dạng địa chỉ:
AIW[Địa chỉ byte đầu tiên(là một số chẵn)]
-Địa chỉ các đầu ra tương tự AQ:
S7-200 biến đổi một giá trị số 16 bit thành tín hiệu điện tỷ lệ với giá trị
số. Việc ghi các giá trị này bằng cách sử dụng địa chỉ gồm nhận dạng vùng
nhớ (AQ), kích thước dữ liệu (W), địa chỉ byte đầu tiên. Bởi vì các đầu ra
tương tự là các từ và luôn bắt đầu bằng các byte số chẵn, nên địa chỉ byte là
các số chẵn. Các giá trị đầu ra tương tự là các giá trị chỉ ghi được (writeonly).
Định dạng địa chỉ:
AQW[Địa chỉ byte đầu tiên (là một số chẵn)]
-Các thanh chứa AC:
Các thanh chứa (Accumulator) là các thiết bị đọc/ghi có thể được sử
dụng như bộ nhớ. Ví dụ, có thể sử dụng các thanh chứa để truyền tham số cho
các chương trình con, và để lưu các giá trị trung gian của phép tính. CPU

cung cấp 4 thanh chứa có độ dài 32 bit là AC0, AC1, AC2, AC3. Có thể truy
nhập dữ liệu trong các thanh chứa theo byte, từ, hoặc từ kép. Việc truy nhập
theo byte hoặc từ là truy nhập 8 hoặc 16 bit thấp của thanh chứa; truy nhập
theo từ kép là truy nhập cả 32 bit của thanh chứa. Kích thước dữ liệu được
truy nhập phụ thuộc lệnh được sử dụng.
Định dạng địa chỉ:


21

AC[Số thanh chứa]
-Địa chỉ các bộ đếm tốc độ cao HC:
Các bộ đếm tốc độ cao được thiết kế để đếm các sự kiện có tốc độ rất
cao không phụ thuộc vào vòng quét của CPU. Bộ đếm tốc độ cao có một giá
trị hiện thời là số nguyên không dấu 32 bit. Truy nhập giá trị này bằng cách
sử dụng địa chỉ như sau:
HC[Số bộ đếm]
Giá trị hiện thời là một giá trị chỉ đọc được và chỉ có thể truy nhập theo
từ kép.
1.2.2.2. Định địa chỉ gián tiếp
Định địa chỉ gián tiếp sử dụng một con trỏ để truy nhập dữ liệu trong
bộ nhớ. CPU S7-200 cho phép sử dụng con trỏ để định địa chỉ gián tiếp cho
các vùng nhớ sau: I, Q, V, M, S, T (giá trị hiện thời), và C (giá trị hiện thời).
Không thể định địa chỉ gián tiếp cho các bit riêng lẻ hoặc các giá trị tương tự.
Để định địa chỉ gián tiếp cho một vị trí trong bộ nhớ, trước tiên phải tạo
ra một con trỏ đến vị trí đó. Con trỏ là một vị trí nhớ 32 bit chứa địa chỉ của
một vị trí nhớ khác. Như vậy, cần phân biệt vị trí nhớ được định địa chỉ gián
tiếp và vị trí nhớ con trỏ. Chỉ có thể sử dụng vùng nhớ V, vùng nhớ L, hoặc
các thanh chứa (AC1, AC2, AC3) làm con trỏ. Để tạo ra một con trỏ, sử dụng
lệnh MOVD để di chuyển địa chỉ của vị trí nhớ cần định địa chỉ gián tiếp vào

vị trí nhớ con trỏ. Sử dụng ký hiệu & để chỉ rõ toán hạng là địa chỉ của một vị
trí nhớ chứ không phải nội dung của vị trí nhớ.
Ví dụ:
MOVD

&VB100, VD204

Như vậy, con trỏ VD204 sẽ chứa địa chỉ của byte VB100.
Trong một lệnh, sử dụng ký hiệu * để chỉ rõ toán hạng là một con trỏ.
Ví dụ:


22

MOVD &VB200,AC1
MOVW *AC1,AC0

Lệnh thứ nhất tạo ra một con trỏ AC1 chứa địa chỉ của byte VB200.
Lệnh thứ hai di chuyển giá trị từ được trỏ bởi AC1 vào thanh chứa AC0.
Có thể thay đổi giá trị con trỏ bằng cách sử dụng các lệnh với toán hạng
từ kép, bởi vì con trỏ là giá trị 32 bit. Tuỳ thuộc vào kích thước dữ liệu được
truy nhập mà thay đổi giá trị con trỏ cho phù hợp: Khi truy nhập theo byte thì
tăng giá trị con trỏ lên 1 đơn vị. Khi truy nhập theo từ thì tăng giá trị con trỏ
lên 2 đơn vị.Khi truy nhập theo từ kép thì tăng giá trị con trỏ lên 4 đơn vị.
Ví dụ truy nhập theo từ:

1.2.2.3. Duy trì dữ liệu khi ngắt nguồn
CPU S7-200 cung cấp một số phương pháp để đảm bảo chương trình,
dữ liệu, và dữ liệu cấu hình cho CPU được lưu lại một cách thích hợp.
-CPU cung cấp một EEPROM để lưu giữ cố định toàn bộ chương trình,

các vùng dữ liệu tùy chọn, và dữ liệu cấu hình cho CPU.


23

-CPU cung cấp một tụ điện để duy trì nội dung của RAM sau khi ngắt
nguồn khỏi CPU. Tuỳ thuộc vào từng module CPU mà tụ có thể duy trì RAM
trong vài ngày.
-Có thể dùng thêm một hộp pin (cartridge) nhằm làm tăng thời gian duy
trì nội dung của RAM sau khi mất nguồn. Hộp pin chỉ cấp nguồn sau khi tụ đã
phóng hết.
Một đồ án của người sử dụng gồm 3 phần: chương trình, khối dữ liệu
(tuỳ chọn), dữ liệu cấu hình CPU (tuỳ chọn). Khi nạp đồ án vào CPU, các
phần này được lưu trong RAM. Sau đó, CPU tự động sao chép các dữ liệu
này vào EEPROM. Khi tải một đồ án từ CPU, dữ liệu cấu hình CPU được tải
từ RAM, còn chương trình và dữ liệu được tải từ EEPROM.
Nhờ phần mềm lập trình STEP 7-Micro/WIN 32, ta có thể định nghĩa
một vùng nhớ có tính chất duy trì hoặc không duy trì. Vùng nhớ duy trì là
vùng nhớ sẽ được tự động sao chép vào EEPROM khi mất nguồn, còn vùng
nhớ không duy trì là vùng nhớ không được tự động sao chép vào EEPROM
khi mất nguồn. Tuy nhiên, toàn bộ dữ liệu trong RAM có thể được lưu lại
trong một thời gian nào đó nhờ có tụ điện hoặc pin. Ngoài ra, vùng nhớ V (có
tính chất duy trì hoặc không duy trì) có thể được sao chép vào EEPROM bằng
các lệnh khi thực hiện chương trình.
Định nghĩa các vùng nhớ duy trì:
Sử dụng phần mềm lập trình STEP 7-Micro/WIN 32, có thể định nghĩa
đến 6 khoảng nhớ duy trì thuộc các vùng nhớ sau: V, M, T, C. Đối với các bộ
Timer (các bộ Timer kiểu TONR) và Counter, chỉ có giá trị hiện thời là có thể
duy trì.
Sao chép vùng nhớ V vào EEPROM khi thực hiện chương trình:

Có thể sao chép một giá trị byte, từ hoặc từ kép trong vùng nhớ V vào
bất kỳ vị trí nào của EEPROM. Byte nhớ đặc biệt SMB31 và từ nhớ đặc biệt


24

SMW32 được sử dụng để thực hiện lệnh sao chép này. Thứ tự thực hiện như
sau:
-Nạp địa chỉ của dữ liệu cần sao chép ở vùng nhớ V vào SMW32. Địa
chỉ là một giá trị offset từ vị trí VB0.
-Nạp 2 bit chỉ kích thước của dữ liệu vào các bit SM31.0 và SM31.1
Định dạng hai bit này như sau:
SM31.1 SM31.0 = 00, 01: dữ liệu dạng byte
10

: dữ liệu dạng từ

11

: dữ liệu dạng từ kép

- Đặt bit SM31.7 lên 1
Tại thời điểm kết thúc mỗi vòng quét, CPU kiểm tra bit SM31.7: nếu
bit SM31.7 bằng 1 thì giá trị đã chỉ ra trong vùng nhớ V được lưu vào
EEPROM. Khi dữ liệu đã được lưu vào EEPROM thì CPU xóa bit SM31.7 về
0. Vì vậy, không được thay đổi giá trị trong vùng nhớ V cho đến khi hoạt
động sao chép hoàn thành.
Phục hồi dữ liệu khi bật nguồn:
Khi bật nguồn, CPU phục hồi chương trình và dữ liệu cấu hình CPU từ
EEPROM. Đồng thời CPU cũng kiểm tra lại xem tụ điện hoặc pin có lưu giữ

đúng nội dung của RAM hay không.
Nếu dữ liệu trong RAM được lưu giữ thì những vùng nhớ RAM mà
được định nghĩa là vùng nhớ duy trì sẽ không thay đổi nội dung. Vùng nhớ V
không duy trì sẽ được phục hồi từ vùng nhớ cố định V tương ứng trong
EEPROM.
Nếu dữ liệu trong RAM không được lưu giữ (do sai sót của tụ hoặc pin)
thì CPU xóa RAM (bao gồm cả vùng duy trì và không duy trì) và đặt bit
SM0.2 lên 1 trong vòng quét đầu tiên. Sau đó, dữ liệu được phục hồi từ
EEPROM.


×