ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
1
LỜI NÓI ĐẦU
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ế vấn đề tự động hóa sản xuất đóng vai trò rất quan trọng và yêu cầu ứng dụng tự
động hóa ngày càng cao vào trong đời sống sinh hoạt, sản xuất càng trở nên cấp thiết
và phổ biến. Tự động hóa giúp tăng năng suất lao đông, tăng độ chính xác và do đó
tăng tính hiệu quả trong quá trình sản xuất.
Vào những thập niên cuối thế kỷ XX sự phát triển vượt bậc của nghành công nghệ
bán dẫn điện tử cùng với sự bùng nổ của nghành công nghệ thông tin đã mở ra nhiều
hướng đi mới cho nghành tự động hóa từ đó xuất hiện một loại thiết bị điều khiển khả
trình với tên gọi Programmable Logic Controller viết tắt là PLC.
PLC là một thiết bị điều khiển đa năng được dùng rộng rãi trong công nghiệp để điều
khiển hệ thống theo một chương trình được viết bởi người sử dụng. Nhờ tính linh hoạt
do có khả năng lập trình được ( khả trình ) nên PLC có thể được ứng dụng để điều
khiển nhiều thiết bị máy móc khác nhau cũng như các quy trình công nghệ khác nhau
của hệ thống sản xuất. PLC có những ưu điểm mà các hệ thống điều khiển cổ điển
dùng dây nối và relay không thể nào so sánh được như lập trình được và lập trình dễ
dàng, thiết bị gọn nhẹ nên dễ dàng vận chuyển và lắp đặt, dễ dàng trong khâu bảo quản
và sửa chữa, bộ nhớ chương trình có dung lượng lớn chứa được những chương trình
phức tạp với độ chính xác cao khả năng xử lý nhanh, hoạt động tốt trong môi trường
công nghiệp, có khả năng giao tiếp được với các thiết bị thông minh khác như máy
tính, mạng, các thiết bị điều khiển khác.
Chính vì những ưu điểm của nó nên hiện nay PLC đang là sự lựa chọn tối ưu cho các
công ty, xí nghiệp hoạt động trong lĩnh vực tự động hóa đang muốn nâng cao chất
lượng hệ thống sản xuất, nâng cao chất lượng sản phẩm, giảm chi phí vận hành cũng
như tiết kiệm nhân công lao động, đáp ứng được nhu cầu thưc tiễn của cuộc sống.
Một PLC có đầy đủ các chức năng như : bộ đếm, bộ định thời, các thanh ghi, và tập
lệnh cho phép thực hiện các yêu cầu điều khiển phức tạp khác nhau. Hoạt động của
PLC hoàn toàn phụ thuộc vào chương trình nằm trong bộ nhớ, nó luôn cập nhật tín hiệu
ngõ vào, xử lý tín hiệu để điều khiển ngõ ra.
Những đặc điểm của PLC :
1. Thiết bị chống nhiễu.
2. Có thể kết nối thêm các modul để mở rộng ngõ vào, ra.
3. Ngôn ngữ lập trình dễ hiểu.
4. Dễ dàng thay đổi chương trình điều khiển bằng máy lập trình hoặc máy tính cá
nhân.
5. độ tin cậy cao, kích thước nhỏ.
6. Bảo trì dễ dàng.
Việc sử dụng PLC vào các hệ thống điều khiển ngày càng thông dụng, để đáp ứng
yêu cầu ngày càng đa dạng này, các nhà sản xuất đã đưa ra hàng loạt các dạng PLC với
nhiều mức độ thực hiện đủ để đáp ứng được các yêu cầu khác nhau của người sử dụng.
Để đánh giá một bộ PLC người ta dựa vào hai tiêu chuẩn chính :
+ Dung lượng bộ nhớ và số tiếp điểm vào/ra của nó.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
2
+ Các chức năng như : bộ vi xử lý, chu kỳ xung clock, ngôn ngữ lập trình, khả
năng mỏ rộng số ngõ vào/ra.
PHẦN I: CẤU TRÚC - NGUYÊN LÝ HOẠT ĐỘNG CỦA
PLC.
A. Cấu trúc
Tất cả các PLC đều có thành phần chính là :
Một bộ nhớ chương trình RAM bên trong ( có thể mở rộng thêm một số bộ nhớ
ngoài EPROM ).
Một bộ vi xử lý có cổng giao tiếp dùng cho việc ghép nối với PLC .
Các Module vào /ra.
Bên cạnh đó, một bộ PLC hoàn chỉnh còn đi kèm thêm môt đơn vị lập trình bằng
tay hay bằng máy tính. Hầu hết các đơn vị lập trình đơn giản đều có đủ RAM để chứa
đựng chương trình dưới dạng hoàn thiện hay bổ sung . Nếu đơn vị lập trình là đơn vị
xách tay, RAM thường là loại CMOS có pin dự phòng, chỉ khi nào chương trình đã
được kiểm tra và sẳn sàng sử dụng thì nó mới truyền sang bộ nhớ PLC. Đối với các
PLC lớn thường lập trình trên máy tính nhằm hổ trợ cho việc viết, đọc và kiểm tra
chương trình . Các đơn vị lập trình nối với PLC qua cổng RS232, RS422, RS458, …
Đối với PLC cỡ nhỏ các bộ phận thường được kết hợp thành một khối. Cũng có một
số hãng thiết kế PLC thành từng mô đun để người sử dụng có thể lựa chọn cấu hình
PLC cho phù hợp mà ít tốn kém nhất, đồng thời đáp ứng được yêu cầu ứng dụng. Một
bộ PLC có thể có nhiều mô đun nhưng thành phần cơ bản nhất của phần cứng trong bộ
PLC bao giờ cũng có các khối sau:
Nguồn cung cấp
Mô đun
nhập dữ liệu
Mô đun xuất
dữ liệu
+
-
Nhớ chương trình
HÌNH 1: SƠ ĐỒ CẤU TRÚC PHẦN CỨNG CỦA BỘ LẬP TRÌNH PLC
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
3
Dựa vào sơ đồ khối ta thấy PLC gồm có 4 khối chính đó là: Khối nguồn, khối vi xử lý-
bộ nhớ, khối đầu vào, khối đầu ra. Thông thường các tín hiệu xuất nhập đầu ở dạng số
(1/0), còn nếu tín hiệu là dạng liên tục thì ta cần gắn các khối xuất nhập ở dạng liên tục
(Analog).
Module nguồn:
Là khối chức năng dùng để cung cấp nguồn và ổn định điện áp cho PLC hoạt động.
Trong công nghiệp người ta thường dùng điện áp 24V một chiều. Tuy nhiên cũng có bộ
PLC sử dụng điện áp 220V xoay chiều.
module CPU (Centrol rocessor Unit module):
Bao gồm bộ vi xử lý và bộ nhớ
Module nhập: (Input Module)
Tín hiệu vào: Các tín hiệu đầu vào nhận các thông tin điều khiển bên ngoài dạng tín
hiệu Logic hoặc tín hiệu tương tự. Các tín hiệu Lôgic có thể từ các nút ấn điều khiển
các công tắc hành trình, tín hiệu báo động, các tín hiệu của các quy trình công
nghệ,…Các tín hiệu tương tự đưa vào của PLC có thể là tín hiệu điện áp từ các căn
nhiệt để điều chỉnh nhiệt độ cho một lò nào đó hoặc tín hiệu từ máy phát tốc, cảm biến.
Module xuất (Output Module):
Trong PLC thì Module xuất cũng hết sức quan trọng không kém module nhập. Nó có
thể có 8 hoặc 16 ngõ ra mà trên một Module xuất, do vậy người sử dụng có thể kết nối
nhiều module lại với nhau để được số ngõ ra phù hợp. Đối với những ứng dụng nhỏ thì
cần 16 ngõ ra. Những ứng dụng lớn hơn có thể dùng tới 26 hoặc 256 ngõ ra. Cũng
giống như Module nhập thì các ngõ ra của Module xuất là các tiếp điểm của rơle, khả
năng chịu tải lớn 220V/1A. Nếu muốn khống chế phụ tải công suất lớn thì thông qua
các thiết bị trung gian như: CTT. Aptomat. Triac
B. Nguyên lý hoạt động của PLC .
Hình2: chu kỳ thực hiện vòng quét của CPU trong bộ PLC
Chuyển dữ liệu từ đầu
cổng vào tới đầu vào I
Chuyển dữ liệu từ
đầu ra Q tới cổng ra
Truyền thông và
kiểm tra bộ nhớ
Thực hiện
chương trình
VÒNG QUÉT
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
4
Trong quá trình thực hiện chương trình CPU luôn làm việc với bảng ảnh ra. Tiếp theo
của đại sẽ có sẵn các lệnh để thực hiện điều này. Tập lệnh của PLC chứa các lệnh ra
việc quét chương trình là truyền thông nội bộ và tự kiểm tra lỗi. Vòng quét được kết
thúc bằng giai đoạn chuyển dữ liệu từ bộ đệm ảo ra ngoại vi. Những trường hợp cần
thiết phải cập nhật module ra ngay trong quá trình thực hiện chương trình. Các PLC
hiện trực tiếp đặc biệt, lệnh này sẽ tạm thời dừng hoạt động bình thường của chương
trình để cập nhật module ra, sau đó sẽ quay lại thực hiện chương trình. Thời gian cần
thiết để PLC thực hiện được một vòng quét gọi là thời gian vòng quét (Scan time).
Thời gian vòng quét không cố định, tức là không phải vòng quét nào cũng được thực
hiện trong một khoảng thời gian như nhau. Có vòng quét được thực hiện lâu, có vòng
quét được thực hiện nhanh tuỳ thuộc vào số lệnh trong chương trình được thực hiện,
vào khối lượng dữ liệu được truyền thông trong vòng quét đó. Một vòng quét chiếm
thời gian quét ngắn thì chương trình điều khiển được thực hiện càng nhanh. Nguyên lý
hoạt động dựa trên các bộ phận sau :
Đơn vị xử lý trung tâm
CPU điều khiển các hoạt động bên trong PLC. Bộ xử lý sẽ đọc và kiểm tra
chương trình được chứa trong bộ nhớ, sau đó sẽ thực hiện thứ tự từng lệnh trong
chương trình , sẽ đóng hay ngắt các đầu ra. Các trạng thái ngõ ra ấy được phát tới các
thiết bị liên kết để thực thi. Và toàn bộ các hoạt động thực thi đó đều phụ thuộc vào
chương trình điều khiển được giữ trong bộ nhớ.
Hệ thống bus
Hệ thống Bus là tuyến dùng để truyền tín hiệu, hệ thống gồm nhiều đường tín hiệu
song song :
Address Bus : Bus địa chỉ dùng để truyền địa chỉ đến các Modul khác nhau.
Data Bus : Bus dùng để truyền dữ liệu.
Control Bus : Bus điều khiển dùng để truyền các tín hiệu định thì và điểu khiển
đồng bộ các hoạt động trong PLC .
Trong PLC các số liệu được trao đổi giữa bộ vi xử lý và các modul vào ra thông
qua Data Bus. Address Bus và Data Bus gồm 8 đường, ở cùng thời điểm cho phép
truyền 8 bit của 1 byte một cách đồng thời hay song song.
Nếu môt modul đầu vào nhận được địa chỉ của nó trên Address Bus , nó sẽ chuyển
tất cả trạnh thái đầu vào của nó vào Data Bus. Nếu một địa chỉ byte của 8 đầu ra xuất
hiện trên Address Bus, modul đầu ra tương ứng sẽ nhận được dữ liệu từ Data bus.
Control Bus sẽ chuyển các tín hiệu điều khiển vào theo dõi chu trình hoạt động của
PLC .
Các địa chỉ và số liệu được chuyển lên các Bus tương ứng trong một thời gian
hạn chế.
Hê thống Bus sẽ làm nhiệm vụ trao đổi thông tin giữa CPU, bộ nhớ và I/O . Bên cạch
đó, CPU được cung cấp một xung Clock có tần số từ 118 MHZ. Xung này quyết định
tốc độ hoạt động của PLC và cung cấp các yếu tố về định thời, đồng hồ của hệ thống.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
5
Bộ nhớ
PLC thường yêu cầu bộ nhớ trong các trường hợp :
Làm bộ định thời cho các kênh trạng thái I/O.
Làm bộ đệm trạng thái các chức năng trong PLC như định thời, đếm, ghi các Relay.
Mỗi lệnh của chương trình có một vị trí riêng trong bộ nhớ, tất cả mọi vị trí trong bộ
nhớ đều được đánh số, những số này chính là địa chỉ trong bộ nhớ .
Địa chỉ của từng ô nhớ sẽ được trỏ đến bởi một bộ đếm địa chỉ ở bên trong bộ vi xử
lý. Bộ vi xử lý sẽ giá trị trong bộ đếm này lên một trước khi xử lý lệnh tiếp theo . Với
một địa chỉ mới , nội dung của ô nhớ tương ứng sẽ xuất hiện ở đấu ra, quá trình này
được gọi là quá trình đọc .
Bộ nhớ bên trong PLC được tạo bỡi các vi mạch bán dẫn, mỗi vi mạch này có khả
năng chứa 2000 ÷ 16000 dòng lệnh , tùy theo loại vi mạch. Trong PLC các bộ nhớ như
RAM, EPROM đều được sử dụng .
RAM (Random Access Memory ) có thể nạp chương trình, thay đổi hay xóa bỏ 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 pin khô, có khả năng cung cấp
năng lượng dự trữ cho RAM từ 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 CMOSRAM nhờ
khả năng tiêu thụ thấp và tuổi thọ lớn .
EPROM (Electrically Programmable Read Only Memory) 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. Nếu người sử dụng không muốn mở rộng bộ nhớ
thì chỉ dùng thêm EPROM gắn bên trong PLC . Trên PG (Programer) có sẵn chổ ghi
và xóa EPROM.
Môi trường ghi dữ liệu thứ ba 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 .
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.
Ngoài ra còn cho phép gắn thêm bộ nhớ mở rộng như RAM , EPROM.
Các ngỏ vào ra I / O
Các đường tín hiệu từ bộ cảm biến được nối vào các modul ( các đầu vào của PLC ) ,
các cơ cấu chấp hành được nối với các modul ra ( các đầu ra của PLC ) .
Hầu hết các PLC có điện áp hoạt động bên trong là 5V , tín hiêu xử lý là 12/24VDC
hoặc 100/240VAC.
Mỗi đơn vị I / O có duy nhất một địa chỉ, các hiển thị trạng thái của các kênh I / O
được cung cấp bỡi các đèn LED trên PLC , điều này làm cho việc kiểm tra hoạt động
nhập xuất trở nên dể dàng và đơn giản .
Bộ xử lý đọc và xác định các trạng thái đầu vào (ON,OFF) để thực hiện việc đóng
hay ngắt mạch ở đầu ra .
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
6
3. CÁC HOẠT ĐỘNG XỬ LÝ BÊN TRONG PLC
a. Xử lý chương trình
Khi một chương trình đã được nạp vào bộ nhớ của PLC , các lệnh sẽ được trong
một vùng địa chỉ riêng lẻ trong bộ nhớ .
PLC có bộ đếm địa chỉ ở bên trong vi xử lý, vì vậy chương trình ở bên trong bộ nhớ
sẽ được bộ vi xử lý thực hiện một cách tuần tự từng lệnh một, từ đầu cho đến cuối
chương trình . Mỗi lần thực hiện chương trình từ đầu đến cuối được gọi là một chu kỳ
thực hiện. Thời gian thực hiện một chu kỳ tùy thuộc vào tốc độ xử lý của PLC và độ
lớn của chương trình. Một chu lỳ thực hiện bao gồm ba giai đoạn nối tiếp nhau :
• Đầu tiên, bộ xử lý đọc trạng thái của tất cả đầu vào. Phần chương trình phục vụ
công việc này có sẵn trong PLC và được gọi là hệ điều hành .
• Tiếp theo, bộ xử lý sẽ đọc và xử lý tuần tự lệnh một trong chương trình. Trong ghi
đọc và xử lý các lệnh, bộ vi xử lý sẽ đọc tín hiệu các đầu vào, thực hiện các phép toán
logic và kết quả sau đó sẽ xác định trạng thái của các đầu ra.
• Cuối cùng, bộ vi xử lý sẽ gán các trạng thái mới cho các đầu ra tại các modul đầu
ra.
b. Xử lý xuất nhập
Gồm hai phương pháp khác nhau dùng cho việc xử lý I / O trong PLC :
Cập nhật liên tục
Điều nay đòi hỏi CPU quét các lệnh ngỏ vào (mà chúng xuất hiện trong chương
trình ), khoảng thời gian Delay được xây dựng bên trong để chắc chắn rằng chỉ có
những tín hiệu hợp lý mới được đọc vào trong bộ nhớ vi xử lý. Các lệnh ngỏ ra được
lấy trực tiếp tới các thiết bị. Theo hoạt động logic của chương trình , khi lệnh OUT
được thực hiện thì các ngỏ ra cài lại vào đơn vị I / O, vì thế nên chúng vẫn giữ được
trạng thái cho tới khi lần cập nhật kế tiếp.
Chụp ảnh quá trình xuất nhập
Hầu hết các PLC loại lơn có thể có vài trăm I / O, vì thế CPU chỉ có thể xử lý một
lệnh ở một thời điểm . Trong suốt quá trình thực thi, trạng thái mỗi ngõ nhập phải được
xét đến riêng lẻ nhằm dò tìm các tác động của nó trong chương trình. Do chúng ta yêu
cầu relay 3ms cho mỗi ngõ vào, nên tổng thời gian cho hệ thống lấy mẫu liên tục trở
nên rất dài và tăng theo số ngõ vào.
Để làm tăng tốc độ thực thi chương trình, các ngõ I / O được cập nhật tới một vùng
đặc biệt trong chương trình. Ở đây, vùng RAM đặc biệt này được dùng như một bộ
đệm lưu trạng thái các logic điều khiển và các đơn vị I / O. Mỗi ngõ vào ra đều có một
địa chỉ I / O RAM này. Suốt quá trình copy tất cả các trạng thái vào trong I / O RAM.
Quá trình này xảy ra ở một chu kỳ chương trình (từ Start đến End ).
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
7
Thời gian cập nhật tất cả các ngõ vào ra phụ thuộc vào tổng số I/O được copy tiêu
biểu là vài ms. Thời gian thực thi chương trình phụ thuộc vào chiều dài chương trình
điều khiển tương ứng mỗi lệnh mất khoảng từ 1÷10 µs.
PHẦN II : TÌM HIỂU CHUNG VỀ THIẾT BỊ ĐIỀU KHIỂN
LẬP TRÌNH PLC S7-300
CHƯƠNG I : CẤU TRÚC PHẦN CỨNG CỦA PLC
Thiết bị điều khiển khả trình SIMATIC S7-300 được thiết kế theo kiểu module. Các
module này sử dụng cho nhiều ứng dụng khác nhau. Việc xây dựng PLC theo cấu trúc
module rất thuận tiện cho việc thiết kế các hệ thống gọn nhẹ và dễ dàng cho việc mở
rộng hệ thống. thiết bị điều khiển khả trình SIMATIC S7-300 được thiết kế với các
module như sau :
Hình 3 : Mô hình kết nối của SIMATIC S7-300
Module nguồn ( PS ) : Cấp nguồn 5V DC hay 24V DC biến đổi từ nguồn khu vực
120/230V AC để nuôi các khối. có 3 loại chính : 2A, 5A, 10A.
Module tín hiệu ( SM ) :
1. Module ngõ vào số : 24V DC. 120/230V AC .
2. Module ngõ ra số : 24V DC, ngắt điện từ.
3. Module ngõ vào tương tự : Áp, dòng, điện trở, cặp nhiệt.
4. Module ngõ ra tương tự : Áp, dòng.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
8
Module giao tiếp ( IM ) : module IM 360/ IM 361 dùng để nối nhiều cấu hình
chung điều khiển bus của các giá.
Module chức năng ( FM ) : thể hiện nhiều chức năng đặc biệt : đếm, định vị, điều
khiển hồi tiếp.
Module xử lý truyền thông ( CP ) : cung cấp những tiện nghi liên lạc sau
–Nối điểm – điểm.
- Mạng Profibus.
- Industrial Ethernet.
Module giả lập ( DM ) : module DM 370 dự phòng cho các module tín hiệu chưa
được chỉ định. Chẳng hạn dành cho các module sẽ lắp đặt trong tương lai.
Phụ kiện : Các bus nối và các bộ phận nối phía trước.
Tính năng :
1. Hệ thống điều khiển nhỏ gọn cho các ứng dụng trong các phạm vi trung bình.
2. Có nhiều loại CPU.
3. Có nhiều module mở rộng.
4. Có thể mở rộng đến 32 module.
5. Các bus tích hợp phía sau module.
6. Có thể nối mạng - Multipoint Interface ( MPI ).
- Profibus hay Industrial Ethernet.
7. Có thiết bị lập trình PG trung tâm có thể truy cập đến các module.
8. Không hạn chế rãnh.
9. Cài đặt cấu hình và thông số với công cụ trợ giúp “ HW-Config ”.
Hình 4: Thiết bị điều khiển logic khả trinh SIMATIC S7-300.
1. Card nhớ. ; 2. MPI ( cổng nối nhiền chân). ; 3. Giao diện của thiết bị kết nối. ; 4. nắp
đậy của thiết bị kết nối. ; 5. nguồn cugn cấp. ; 6. nguồn dự trữ. ; 7. chỗ nối nguồn 24V
DC. ; 8. chọn nút mode hoạt động. ; 9. các led báo trạng thái và báo lỗi.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
9
I. MODULE NGUỒN PS 307 CỦA S7-300.
Hình 5 : module nguồn của S7-300.
Module PS307 có nhiệm vụ chuyển nguồn xoay chiều 120/230V thành nguồn một
chiều 24V để cung cấp cho các module khác của khối PLC. Ngoài ra module nguồn có
nhiệm vụ cung cấp nguồn cho các sensor và các thiết bị truyền động kết nối với PLC.
Module nguồn thường đặt bên trái của khối CPU.
Mặt trước khối module nguồn bao gồm :
1. một đèn led báo hiệu điện áp ra 24V DC.
2. một nút dùng để chọn điện áp đầu vào là 120V AC hoặc 230V AC.
3. một công tắc dùng để bật tắt điện áp ra.
Mặt sau của module nguồn bao gồm :
1. các lỗ để nhận điện áp vào/ra.
2. các khe dùng để gắn module lên panel.
Module nguồn PS 307 có 3 loại : PS307-1B ; PS307-1E ; PS307-1K. sự khác nhau giữa
ba loại này thể hiện ở cường độ dòng vào và ra của module.
II. KHỐI XỬ LÝ TRUNG TÂM ( MODULE CPU ).
Module CPU là loại module có chứa bộ vi xử lý, hệ điều hành, bộ nhớ, các bộ thời
gian, bộ đếm, cổng truyền thông ( RS485 )… và có thể chứa một vài cổng vào ra số.
các cổng vào ra số trên CPU được gọi là cổng vào/ra Onboard.
Trong họ PLC S7-300 có nhiều loại module CPU khác nhau, được đặt tên theo bộ vi xử
lý có trong nó như module CPU 312. module CPU 314, module CPU 315…
Những module này cùng sử dụng một bộ vi xử lý nhưng khác nhau về cổng vao/ra
onboard cũng như các khối hàm đặc biệt được tích hợp sẵn trong thư viện của hệ điều
hành phục vụ việc sử dụng các cổng vào/ra onboard này được phân biệt với nhau trong
tên gọi bằng cụm từ chữ cái IFM như CPU 312 IFM, CPU 313, CPU 314 IFM, CPU
314, …
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
10
Hình 6 : CPU 314 và CPU 314 IFM.
Ngoài ra còn có các loại module CPU với hai cổng truyền thông, trong đó cổng truyền
thông thứ hai có chức năng chính là phục vụ việc nối mạng phân tán. Các loại module
CPU này được phân biệt với các loại CPU khác bằng cách thêm cụm từ DS.
Các CPU này được chế tạo theo mức độ tăng dần về tính năng sử dụng :
1. CPU 312 IFM là sự tích hợp giữa khối CPU với các đầu vào/ra số dùng để điều
khiển các hệ thống nhỏ không sử lý các tín hiệu tương tự.
2. CPU 313 dùng để điều khiển những hệ thống lớn hơn đòi hỏi phải lập trình phức tạp
hơn.
3. CPU 314 IFM là sự tích hợp giữa khối CPU với các đầu vào/ra tương tự và số dùng
để điều khiển những thiết bị đòi hỏi thời gian đáp ứng nhanh và các chức năng riêng
biệt.
4. CPU 314 đưuọc dùng để điều khiển những hệ thống lớn đòi hỏi phải lập trình phức
tạp và xử lý các lệnh với tốc độ lớn.
5. CPU 315/ 315-2DP được dùng cho những công việc phức tạp đòi hỏi phải lập trình
nhiểu và phân chia cấu trúc tự động.
1. Module mở rộng: có 5 loại chính:
PS( Power supply) : Module nguồn nuôi.Có 3 loại 2A, 5A, 10A.
SM (Signal Module): Module mở rộng cổng tín hiệu vào/ra bao gồm
DI (digital input): Module mở rộng các cổng vào số.
DO (digital output): Module mở rộng các cổng ra số.
DI/DO: Module mở rộng các cổng vào/ra số.
AI (Analog Input): Module mở rộng các cổng vào tương tự.
AO (Analog Output): Module mở rộng các cổng ra tương tự.
AI/AO: Module mở rộng các cổng vào/ra tương tự.
IM( interface module): Module ghép nối.Đây là module chuyên dụng có nhiệm vụ
nối từng nhóm các module mở rộng lại với nhau thành một khối và được quản lý chung
bởi một module CPU. Các module mở rộng được gá trên một thanh rack.Trên mỗi rack
có thể gá được tối đa 8 module mở rộng.Một module CPU S7-300 có thể làm việc trực
tiếp được với nhiều nhất 4 racks và các racks này phải được nối với nhau bằng module
IM.
FM( Funtion Module): Module có chức năng điều khiển riêng, ví dụ như module
điều khiển động cơ bước, module điều khiển động cơ servo,module PID, module điều
khiển vòng kín,…
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
11
CP( communication Module): Module phục vụ truyền thông trong mạng giữa các
PLC với nhau hoặc giữa PLC với máy tính.
2.Cấu tạo bên ngoài của CPU SIMATIC S7-300
HÌNH 7: CẤU TẠO BÊN NGOÀI CỦA CPU 314
Nút chọn Mode hoạt động cho phép chúng ta chọn bốn trạng thái hoạt động của CPU.
RUN-P: CPU thực hiện quét chương trình.CHương trình có thể đọc được từ CPU ra
thiết bị lập trình và cũng có thể nạp vào CPU.
RUN: CPU thục hiện quét các chương trình.Chuong trình có thể đọc được từ CPU ra
thiết bị lập trình nhưng không thể thay đổi chương trình đã được nạp vào bộ nhớ CPU
STOP: CPU không thực hiện quét các chương trình.Chương trình có thể đọc được từ
CPU ra thiết bị lập trình vầ cũng có thể nạp vào CPU.
MRES: Mode thực hiện Reset bộ nhớ của CPU.Đối với CPU 312 IFM và CPU 314
IFM khi chúng ta thực hiện reset bộ nhớ thì các vùng tích hợp giữ nguyên không đổi.
Các Led thể hiện trạng thái hoạt động và lỗi:
SF (đèn đỏ): đèn sáng báo hiệu hệ thống bị lỗi.
BATF( đèn đỏ - không có trong CPU 312 IFM): đèn sáng báo hiệu lỗi nguồn.
5V DC( đèn xanh): đèn sáng nếu nguồn 5V DC cung cấp cho CPU hay cho bus của
S7-300.
FRCE( đèn vàng): đèn sáng nếu đang thực hiện công việc.
RUN( đèn xanh): báo hiệu CPU đang ở chế độ RUN.
STOP( đèn vàng): CPU đang ở chế độ STOP.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
12
III. MODULE XỬ LÝ VÀO/RA CỦA S7-300:
HÌNH 8: INPUT/OUTPUT DIGITAL MODULE.
1.SIMENS cung cấp 3 loại module xử lý vào/ra của tín hiệu số chính đó là:
Inputs Digital module: Module có nhiệm vụ nhận tín hiệu số từ thiết bị ngoại vi vào
vùng đệm để xử lý.
Outputs Digital module: Module có nhiệm vụ xuất các tín hiệu số từ vùng đệm xử lý
ra thiết bị ngoại vi.
Input/output Digital module: Module tích hợp nhiệm vụ của cả hai loại module trên.
2.Các module tích hợp các ngắt chuẩn đoán và xử lý lỗi:
Các module này có khả năng cài đặt các thông số để chuẩn đoán các lỗi. Để thiết lập
các thông số này được thực hiện bằng cách sử dụng STEP7.
Việc cài đặt các thông số này được thực hiện khi CPU ở trạng thái STOP, các thông số
này được chuyển từ thiết bị lập trình vào trong CPU và được lưu trữ ở đây. CPU có
nhiệm vụ chuyển giao các thông số này đến các digital module.
Người lập trình cũng có thể thay đổi các thông số này trong chương trình bằng cách
sử dụng các khối SFC (System Funtion).
Nếu sử dụng các module loại này mà không thiết lập các thông số thì các thông số
mặc định sẽ được thực thi.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
13
3.Các module input/output Analog S7-300:
HÌNH 9: ANALOG INPUT MODULE.
SIMENS cung cấp 3 loại module input/output Analog chính đó là:
Input Analog modules: Module có nhiệm vụ chuyển các tín hiệu tương tự từ các
thiết bị ngoại vi thành các tín hiệu số để tiến hành xử lý bên trong S7-300.
Output Analog modules: Module có nhiệm vụ chuyển đổi các tín hiệu số của S7-300
thành các tín hiệu tương tự để phục vụ các quá trình hoạt động của thiết bị ngoại vi.
Input/outputs Analog module: Module tích hợp nhiệm vụ của cả hai loại module nói
trên.
Các CPU của S7-300 chỉ xử lý được các tín hiệu số, vì vậy các tín hiệu Analog đều
phải được chuyển đổi thành tín hiệu số. Một tín hiệu Analog được số hóa thành 2 phần:
phần dấu và phần giá trị của tín hiệu.
Bit dấu: dấu của giá trị tín hiệu analog được lưu ở bit thứ 15.
0 +
1 -
Cũng như các module số, người sử dụng cũng có thể thiết lập các thông số cho các
module analog.
Đối với các kênh đầu vào, các thông số có thể là:
Thiết lập ngắt.
Ngắt xử lý giới hạn các giá trị.
Ngắt chuẩn đoán lỗi.
Phép đo.
Đối với các kênh đầu ra, các thông số có thể là:
Thiết lập ngắt.
Ngắt chuẩn đoán lỗi.
Các giá trị thay thế.
Tín hiệu ra.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
14
IV. MODULE GHÉP NỐI: (interface modules-IM)
HÌNH 10: Interface modules.
Các module ghép nối (IM) cho phép thiết lập hệ thống S7-300 theo nhiều cấu hình ( chỉ
tương thích với các CPU trở lên). S7-300 cung cấp 3 loại module ghép nối sau:
IM 360: là module ghép nối có thể mở rộng thêm một tầng chứa 8 module trên đó
với khoảng cách tối đa là 10m lấy nguồn từ CPU.
IM 361: là module ghép nối có thể mở rộng thêm 3 tầng, với mỗi tầng chứa 8
module với khoảng cách tối đa là 10m đòi hỏi cung cấp 1 nguồn 24V DC cho mỗi tầng.
IM 365: là module ghép nối có thể mở rộng thêm một tầng chứa 8 module trên đó
với khoảng cách tối đa là 1m lấy nguồn từ CPU.
CHƯƠNG II: CẤU TRÚC CHƯƠNG TRÌNH PLC S7-300.
I. VÒNG QUÉT CỦA CHƯƠNG TRÌNH S7-300:
PLC thực hiện chương trình theo một chu trình lặp được gọi là vòng quét.Một vòng
lặp được gọi là một vòng quét.
Có thể chia một chu trình thực hiện của S7-300 ra làm 4 giai đoạn.Giai đoạn một là
giai đoạn đọc dữ liệu từ các cổng vào, các dữ liệu này sẽ được lưu trữ trên vùng đệm
của đầu vào.
Tiếp theo là giai đoạn thực hiện chương trình, trong từng vòng quét chương trình
lần lượt thực hiện tuần tự từ lệnh đầu tiên và kết thúc ở lệnh cuối cùng tiếp đến là giai
đoạn truyền thông nội bộ và kiểm tra lỗi. Giai đoạn cuối cùng là giai đoạn chuyển nội
dung các bộ đệm ảo tới cổng ra.
Đến đây một vòng quét được hoàn thành và một vòng quét mới tiếp tục tạo nên một
chu trình lặp vô hạn.
Một điểm cần chú ý là tại thời điểm thực hiện lệnh vào/ra thông thường không làm
việc trực tiếp với các cổng vào/ra mà chỉ thông qua bộ đệm ảo của cổng trong vùng
nhớ tham số.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
15
Chỉ khi gặp lệnh yêu cầu truy xuất các đầu vào/ra ngay lập tức thì hệ thống sẽ cho
dừng các 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ác cổng vào/ra.
Các chương trình con 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.
Bộ đệm I và Q không liên quan đến các cổng vào/ra tương tự nên các lệnh truy nhập
không tương tự được thực hiện trực tiếp với cổng vật lý chứ không qua bộ đệm.
Thời gian cần thiết để PLS thực hiện một vòng quét gọi là thời gian vòng quét.Thời
gian vòng quét không cố định, tức là không phải vòng quét nào cũng được thực hiện
theo một khoảng thời gian như nhau.
Các vòng quét nhanh, chậm phụ thuộc vào số lệnh trong chương trình được thực
hiện, vào khối lượng dữ liệu được truyền thông…trong vòng quét đó.
Như vậy giữa việc đọc dữ liệu từ đối tượng để xử lý, tính toán và gửi tín hiệu điều
khiển đến đối tượng đó có một khoảng thời gian trễ đúng bằng thời gian vòng
quét.Thời gian vòng quét càng ngắn, tính thời gian thực của chương trình càng cao.
Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ như là OB40,
OB80…chương trình của các khối đó sẽ được thực hiện trong vòng quét khi xuất hiện
tín hiệu báo ngắt cùng chủng loại.
Nếu một tín hiệu báo ngắt xuất hiện khi PLC đang trong giai đoạn truyền thông và
kiểm tra nội bộ, PLC sẽ dừng công việc truyền thông, kiểm tra để thực hiện khối
chương trình tương ứng với tín hiệu báo ngắt đó.Với hình thức tín hiệu xử lý ngắt như
vậy, thời gian của vòng quét càng lớn khi càng có nhiều tín hiệu ngắt xuất hiện trong
vòng quét.
Do đó, để nâng cao tính thời gian thực của chương trình điều khiển, tuyệt đối không
nên viết chương trình xử lý ngắt quá dài hoặc quá lạm dụng việc sử dụng chế độ ngắt
trong chương trình điều khiển.
II.CẤU TRÚC CHƯƠNG TRÌNH CỦA S7-300.
Các chương trình điều khiển của PLC S7-300 thường được viết theo hai dạng sau :
• Lập trình tuyến tính ( chương trình đơn khối ).
• Lập trình có cấu trúc ( chương trình nhảy khối ).
1.Lập trình tuyến tính ( liner ).
Toàn bộ chương trình đều nằm trong một khối trong bộ nhớ. Loại hình cấu trúc
tuyến tính này phù hợp với những bài toán nhỏ gọn, không có độ phức tạp.
Khối được chọn phải là khối OB1, đây là khối mà CPU luôn quét và thực hiện các
lệnh trong có thường xuyên, từ lệnh đầu tiên đến lệnh cuối cùng và quay lại từ lệnh đầu
tiên.
Dưới đây là cấu trúc của một chương trình lập trình tuyến tính :
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
16
Cấu trúc lập trình tuyến tính.
2. Lập trình có cấu trúc .
Trong PLC Siemens S7, chương trình được tổ chức theo các khối mà có thể lập trình
được với từng nhiệm vụ riêng. Loại hình cấu trúc này phù hợp với những bài toán điều
khiển nhiều nhiệm vụ phức tạp. PLC S7-300 có 4 loại khối cơ bản :
• Khối tổ chức OB : Khối tổ chức và quản lý các chương trình điều khiển.
• Khối hàm chức năng FB : là loại khối FC đặc biệt có khả năng trao đổi một
lượng dữ liệu với các khối chương trình khác. Các dữ liệu này phải được tổ chức thành
từng khối riêng có tên gọi là Data block.
• Khối hàm : khối chương trình với những chức năng riêng biệt giống như một
chương trình con hoặc một hàm con.
• Khối dữ liệu : khối chứa các dữ liệu cần thiết để thực hiện chương trình. Các
tham số khối do ta tựn đặt. ngoài ra còn có các khối hệ thống như : SFB, SFC, SDB.
Chương trình trong các khối liên kết với nhau bằng các lệnh gọi khối, chuyển khối.
xem những phần chương trình trong các khối như là chương trình con thì S7-300 cho
phép gọi chương trình con lồng nhau, tức là chương trình con này gọi từ một con khác
và từ chương trình con được gọi lại gọi đến chương trình con thứ 3… số các lệnh gọi
nhau phụ thuộc vào từng chủng loại module CPU khác nhau mà ta đang sử dụng. Nếu
số lần goi lồng nhau mà vượt qua con số giới hạn cho phép thì CPU sẽ chuyển sang chế
độ Stop và đặt cờ báo lỗi.
Khối OB1 luôn được PLC quét và thực hiện các lệnh từ lệnh đầu tiên đến lệnh cuối
cùng và quay lại lệnh đầu tiên.
• Việc lập trình đơn giản, rõ ràng hơn khi giải quyết các chương trình điều
khiển lớn.
• Tạo khả năng tiêu chuẩn hóa từng phần của chương trình để có những khối
chương trình chuẩn.
• Dễ dàng thay đổi chương trình.
• Việc kiểm tra chương trình dễ dàng và thuận tiện hơn.
• Khởi đầu đơn giản.
OB1
Vòng quét
Lệnh 1
Lệnh n
Lệnh 2
…………
…
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
17
• Cho phép sử dụng kỹ thuật gọi chương trình con ( gọi các khối từ nhiều vị trí
khác nhau ).
III. CÁC KHỐI CHỨC NĂNG.
Một chương trình điều khiển của S7-300 gồm các khối logic ( logic block ), các
khối dữ liệu ( data block ). Các khối logic là các khối chứa những đoạn mã, các khối
này gồm có :
• Khối tổ chức ( Organization Block – OB ).
• Khối hàm ( Funtion Block – FB ).
• Khối hàm ( Funtion – FC ).
• Khối dữ liệu ( Data Block – DB )
1.Khối hàm tổ chức (Organization Block – OB) .
Các OB thực hiện nhiệm vụ giao tiếp giữa hệ điều hành và các chương trình điều
khiển. Mỗi OB có một nhiệm vụ cụ thể khác nhau. Để tạo ra một chương trình cho S7-
300, người lập chương trình thực hiện chọn các khối OB cần thiết mà công việc đòi
hỏi, những công việc cơ bản mà một chương trình điều khiển cần là :
• Khởi động ( startup ) : các khối thực hiện công việc này là OB100 và OB101.
• Thực hiện vòng quét ( scan cycle ) : được thực hiện bởi khối OB1.
• Xử lý các lỗi : để CPU không chuyển về Stop mode khi có lỗi xuất hiện, người
lập trình sử dụng các khối sau : OB80, OB87, OB121, OB122.
• Ngoài ra các CPU còn tích hợp các OB sử lý ngắt.
Các khối OB đặc biệt :
1. OB1: lặp vòng quét liên tục chương trình chính.
2. OB10 ( Time of Day Interrupt ): ngắt thời gian trong ngày, bắt đầu chạy ở thời
điểm ( được lập trình nhất định ) đặc biệt.
3. OB20 (Time Dalay Interrupt ) : ngắt trì hoãn, chương trình trong khối này được
thực hiện sau một khoảng thời gian delay cố định.
4. OB35 ( Cyclic Interrupt) : ngắt tuần hoàn, lặp lại sau khoảng thời gian cách đều
nhau được định trước ( 1ms đển 1 phút ).
5. OB40 ( Hardware Interrupt ): ngắt cứng, chạy khi phát hiện có lỗi trong module
ngoại vi.
6. OB80 ( Cycle Time Fault ) :lỗi thời gian chu trình, thực hiện khi thời gian vòng quét
vượt quá trời gian cực đại cho phép.
7. OB81 ( Power Supply Fault ): thực hiện khi CPU phát hiện thấy có lỗi nguồn nuôi.
8. OB82 ( Diagnostic Interrupt ): chương trình trong khối này được gọi khi CPU phát
hiện có sự cố từ module I/O mở rộng.
9. OB85 ( Not Load Fault ): được gọi khi CPU thấy chương trình ứng dụng có sử dụng
chế độ ngắt nhưng chương trình sử lý tín hiệu ngắt lại không có trong khối OB tương
ứng.
10. OB87 ( Communication Fault): thực hiện khi có lỗi truyền thông.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
18
11. OB100 ( Start Up Information ): thực hiện một lần khi CPU chuyển trạng thái từ
STOP sang RUN.
12. OB121 ( Synchronous Error): được gọi khi có lỗi logic trong chương trình.
13. OB 122 (Synchronous Error) : được gọi khi có lỗi module trong chương trình.
2. Khối hàm chức năng FB ( Function block) .
Là loại khối FC đặc biệt có khả năng trao đổi một lượng dữ liệu với các khối chương
trình khác. Các dữ liệu này phải được tổ chức thành khối dữ liệu riêng có tên gọi Data
block.
3.Khối hàm FC ( function).
Khối chương trình với những chức năng riêng biệt giống như một chương trình con
hoặc một hàm.
4.Khối dữ liệu ( Data block).
Khối chứa các dữ liệu cần thiết để thực hiện chương trình. Các tham số của khối do ta
tự đặt.
CHƯƠNG III. CẤU TRÚC BỘ NHỚ
Các kiểu dữ liệu của S7-300.
• Từ các thiết bị ngoại vi I/O.
• Từ các vùng đệm vào/ra.
• Từ các bit nhớ.
• Từ các Timer.
• Từ các Counter.
Ngoài các kiểu dữ liệu trên S7-300 còn cho phép người lập trình có thể tự định nghĩa
các kiểu dữ liệu khác.
I.KIỂU DỮ LIỆU VÀ PHÂN CHIA BỘ NHỚ
1.Kiểu dữ liệu.
Trong một chương trình có thể có các kiểu dữ liệu sau :
• BOOL : với dung lượng 1 bit và có giá trị là 0 hay 1.
• BYTE : gồm 8 bit, có giá trị nguyên dương từ 0 đến 255.
• WORD : gồm 2 byte, có gí trị nguyên dương từ 0 đến 65535.
• INT : có dung lượng 2 byte, dùng để biểu diễn số nguyên từ -32768 đến 32768.
• DINT : gồm 4 byte, dùng để biểu diễn số nguyên từ -2147463846 đến
2147463847.
• REAL : gồm 4 byte dùng để biểu diễn số thực dấu phẩy động.
• S5T : khoảng thời gian, được tính theo h/m/s/ms.
• TOD : biểu diễn giá trị thời gian tính theo giờ/ phút/ giây.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
19
• DATE : biểu diễn giá trị thời gian tính theo năm / tháng/ ngày.
• CHAR : biểu diễn một hoặc nhiều ký tự ( nhiều nhất là 4 ký tự ).
2.Phân chia bộ nhớ
CPU S7-300 có 3 vùng nhớ cơ bản :
a.Các vùng chứa chương trình ứng dụng.
Bao gồm OB ( Organization Block), FB ( Function ), FB (Function Block ).
b.Vùng chứa tham số của hệ điều hành và các chương trình ứng dụng.
Được chia thành 7 miền khác nhau.
• I ( Process Input Image) : Miền bộ đệm các dữ liệu cổng vào số. trước khi bắt
đầu thực hiện chương trình, PLC sẽ đọc giá trị logic của tất cả các cổng vào và cất giữ
chúng trong vùng nhớ I. thông thường chương trình ứng dụng không đọc trực tiếp trạng
thái golic của cổng vào số mà chỉ lấy dữ liệu của cổng vào từ bộ đệm I.
• Q ( Process Output Image ) : Miền bộ đệm các dữ liệu cổng ra số. kết thúc giai
đoạn thực hiện chương trình, PLC sẽ chuyển giá trị logic của bộ đệm Q tới các cổng ra
số. Thông thường chương trình không trực tiếp gán giá trị tới tận cổng ra mà chỉ
chuyển chúng vào bộ đệm Q.
• M : Miền các biến cờ. chương trình ứng dụng sử dụng vùng nhớ này để lưu trữ
các tham số cần thiết và có thể truy nhập nó theo bit (M), byte (MB), từ (MW), hoặc từ
kép (MD).
• T (Timer) : Miền nhớ phục vụ cho bộ định thời bao gồm việc lưu trữ các giá trị
thời gian đặt trước, giá trị đếm thời gian tức thời cũng như giá trị logic đầu ra của bộ
thời gian.
• C (Counter) : Miền nhớ phục vụ bộ đếm bao gồm việc lưu giữ giá trị đặt trước,
giá trị đếm tức thời và giá trị logic của bộ đếm.
• PI ( I/O External Input) : Miền địa chỉ cổng vào của các module tương tự. các giá
trị tương tự tại cổng vào của module tương tự sẽ được module đọc và chuyển tự động
theo những địa chỉ.
• PQ (I/O External Outnput): Miền địa chỉ cổng ra của các module tương tự. các
giá rtij tương tự tại cổng ra của module tương tự sẽ được module đọc và chuyển tự
động theo những địa chỉ.
3.Vùng chứa các khối dữ liệu.
Được chia làm hai loại :
• DB ( Data Block) : Miền chứa các dữ liệu được tổ chức thành khối. kích thước
cũng như số lượng khối do người sử dụng quy định, phù hợp với từng bài toán điều
khiển. chương trình có thể truy cập miền này theo từng bit (DBX), byte (DBB), từ
(DBW), từ kép (DBD).
• L ( Local Data Block) : miền giữ liệu địa phương, được các khối chương
trình OB, FB, FC tổ chức và sử dụng cho các biến nháp tức thời và trao đổi giữ liệu của
biến hình thức của chương trình với những khối chương trình đã gọi nó. Nội dung của
một số dữ liệu trong miền nhớ này sẽ bị xoá khi kết thúc chương trình tương ứng trong
OB, FB, FC. Miền này có thể truy cập từ chương trình theo bit (L), byte (LB), từ (LW)
hay từ kép (LD).
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
20
4. Tầm địa chỉ tối đa cho các vùng nhớ:
• Với I, Q, PI, DB, DI và L:
Tầm địa chỉ tối đa cho bit: 0.0 đến 655355.7
Tầm địa chỉ tối đa cho các byte: 0 đến 65535
Tầm địa chỉ tối đa cho các word: 0 đến 65534
Tầm địa chỉ tối đa cho các double word: 0 đến 65532
• Với bộ nhớ bit M:
Tầm địa chỉ tối đa cho các bit: 0.0 đến 255.7
Tầm địa chỉ tối đa cho các byte: 0 đến 255
Tầm địa chỉ tối đa cho các word: 0 đến 254
Tầm địa chỉ tối đa cho các double word: 0 đến 252
5. Những khối OB đặc biệt.
Khối OB1 có chức năng quản lý chính trong toàn bộ chương trình, có nghĩa là nó sẽ
thực hiện một cách đều đặn ở từng vòng quét trong khi thực hiện chương trình. Ngoài
ra Step7 còn có rất nhiều các khối OB đặc biệt khác và mỗi khối OB đó có một nhiệm
vụ khác nhau, ví dụ các khối OB chứa các chương trình ngắt của các chương trình báo
lỗi ,....Tuỳ thuộc vào từng loại CPU khác nhau mà có các khối OB khác nhau. Ví dụ
các khối OB đặc biệt:
1. OB10: (Time of Day Interrupt): Chương trình trong khối OB10 sẽ được thực hiện
khi giá trị của đồng hồ thời gian thực nằm trong một khoảng thời gian đã qui định.
OB10 có thể được gọi một lần, nhiều lần cách đều nhau từng phút, từng giờ, từng
ngày,....Việc qui định thời gian hay số lần gọi OB10 được thực hiện bằng chương trình
hệ thống SFC28 hoặc trong bảng tham số modul CPU nhờ phần mềm Step7.
2. OB20: (Time Delay Interrupt): chương trình trong khối OB20 sẽ được thực hiện sau
một khoảng thời gian trễ đặt trước kể từ khi gọi chương trình hệ thống SFC32 để đăt
thời gian trễ.
3. OB35: (Cyclic Interrupt): Chương trình OB35 sẽ được thực hiện cách đều nhau một
khoảng thời gian cố định. Mặc định khoảng thời gian này là 100ms, xong ta có thể thay
đổi trong bảng đặt tham số cho CPU nhờ phần mềm Step7.
4. OB40 ( Hardware Interrupt): Chương trình trong khối OB40 sẽ được thực hiện khi
xuất hiện một tín hiệu báo ngắt từ ngoại vi đưa vào CPU thông qua các cổng vào/ra số
onboard đặc biệt, hoặc thông qua các modul SM, CP, FM.
5. OB80: (cycle Time Fault): Chương trình sẽ được thực hiện khi thời gian vòng quét
(scan time) vượt qua khoảng thời gian cực đại đã qui định hoặc khi có một tín hiệu ngắt
gọi một khối OB nào đó mà khối OB này chưa kết thúc ở lần gọi trước. Mặc định, scan
time cực đại là 150ms, nhưng có thể thay đổi tham số nhờ phần mềm Step7.
6. OB81( Power Supply Fault): nếu có lỗi về phần nguồn cung cấp thì sẽ gọi chương
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
21
trình trong khối OB81.
7. OB82: (Diagnostic Interrupt) chương trình trong khối này sẽ được gọi khi CPU phát
hiện có lỗi từ các modul vào/ra mở rộng. Với điều kiện các modul vào/ra này phải có
chức năng tự kiểm tra mình.
8. OB85 (Not Load Fault): CPU sẽ gọi khối OB85 khi phát hiện chương trình ứng
dụng có sử dụng chế độ ngắt nhưng chương trình xử lý tín hiệu ngắt lại không có trong
khối OB tương ứng.
9. OB87 (Communication Fault): Chương trình trong khối này sẽ được gọi khi CPU
phát hiện thấy lỗi trong truyền thông.
10.OB100 (Start Up Information): Khối này sẽ được thực hiện một lần khi CPU
chuyển trạng thái từ STOP sang trạng thái RUN. OB121: (Synchronouns error): Khối
này sẽ được gọi khi CPU phát hiện thấy lỗi logic trong chương trình như đổi sai kiểu
dữ liệu hoặc lỗi truy nhập khối DB, FC, FB không có trong bộ nhớ của CPU.
11.OB122 (Synchronouns error): Khối này sẽ được thực hiện khi CPU phát hiện thấy
lỗi truy nhập Modul trong chương trình, ví dụ trong chương trình có lệnh truy nhập
modul mở rộng nhưng lại không có modul này.
II. SỬ DỤNG CÁC Ô NHỚ VÀ CẤU TRÚC THANH GHI TRẠNG THÁI:
1. địa chỉ ô nhớ:
địa chỉ ô nhớ bao gồm phần chữ và phần số.
a.Phần chữ: chỉ vị trí và kích thước ô nhớ.
• M: chỉ ô nhớ trong miền các biến cờ có kích thước là 1 bit.
• MB: chỉ ô nhớ trong miền các biến cờ có kích thước là 1 byte.
• MW: chỉ ô nhớ trong miền các biến cờ có kích thước là 2 bytes.
• MD: chỉ ô nhớ trong miền các biến cờ có kích thước là 4 bytes.
• I: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng vào số.
• IB: chỉ ô nhớ có kích thước là 1 byte trong miền bộ đệm cổng vào số.
• IW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng vào số.
• ID: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng vào số.
• Q: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng ra số.
• QB: chỉ ô nhớ có kích thước là 1 byte trong miền bộ đệm cổng ra số.
• QW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng ra số.
• QD: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng ra số.
• T chỉ ô nhớ trong miền nhớ của bộ thời gian Timer.
• C chỉ ô nhớ trong miền nhớ của bộ đếm Counter.
• PIB: chỉ ô nhớ có kích thước 1 byte thuộc vùng peripheral input.
• PIW: chỉ ô nhớ có kích thước 1 từ thuộc vùng peripheral input.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
22
• PID: chỉ ô nhớ có kích thước 2 từ thuộc vùng peripheral input.
• PQB: chỉ ô nhớ có kích thước 1 byte thuộc vùng peripheral output.
• PQW: chỉ ô nhớ có kích thước 1 từ thuộc vùng peripheral output.
• PQD: chỉ ô nhớ có kích thước 2 từ thuộc vùng peripheral output.
• DBX: chỉ ô nhớ có kích thước 1 bit trong khối dữ liệu DB.
• DBB: chỉ ô nhớ có kích thước 1 byte trong khối dữ liệu DB.
• DBW: chỉ ô nhớ có kích thước 1 từ trong khối dữ liệu DB.
• DBD: chỉ ô nhớ có kích thước 2 từ trong khối dữ liệu DB.
b. Phần số:
chỉ địa chỉ của byte hay của bit trong miền nhớ đã xác định.
Nếu ô nhớ đã được xác định thông qua phần chữ là có kích thước 1 bit thì phần số sẽ
gồm địa chỉ của byte và số thứ tự của bit trong byte đó được tách với nhau bằng dấu
chấm.
2. Cấu trúc thanh ghi trạng thái.
Khi thực hiện lệnh, CPU sẽ ghi nhận lại trạng thái của phép tính trung gian cũng như
của kết quả vào 1 thanh ghi đặc biệt được gọi là thanh ghi trạng thái (status word). Cấu
trúc của thanh ghi trạng thái:
2
15
…
….2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
BR CC1 CCO OV OS OR STA RLO /FC
• BIT /FC (first checkz)
Bit 0 của thanh ghi trạng thái được gọi là bit kiểm tra đầu tiên (/FC). Mỗi lệnh kiểm tra
trạng thái tín hiệu của /FC cũng như trạng thái tín hiệu của toán hạng, Nếu bit /FC =0
lệnh cất kết quả kiểm tra trạng thái tín hiệu vào bit RLO và đặt bit /FC lên 1. Quá trình
này được gọi là kiểm tra đầu tiên hay quét lần thứ nhất.
Nếu bit /FC = 1 thì lệnh kết hợp kết quả dò mức của toán hạng hiện tại với RLO
trước đó để tạo ra RLO mới.
Chuỗi lệnh logic luôn luôn kết thúc bằng lệnh xuất (S,R hay =), lệnh nhảy liên hệ
với RLO hoặc một trong các lệnh lồng như A(,O(,X(, AN(, XN(: các lệnh này reset bit
/FC về 0.
• RLO (Result of Logic Operation): kết quả của phép toán Logic.
bit 1 của STW được gọi là RLO, bit này chứa kết quả của lệnh logic trên bit hoặc so
sánh số học.
Ta có thể đặt RLO không điều kiện lên 1 bằng lệnh SET và xóa RLO không điều
kiện về 0 bằng lệnh CLR. Bit RLO cũng có liên quan đến các lệnh nhảy có điều kiện.
Bit STA (status)
Bit STA chứa giá trị của bit mà ta đang tham chiếu. Trạng thái của lệnh bit mà
truy cập đọc bộ nhớ (A, AN,O, ON, X,XN) luôn luôn bằng giá trị của bit mà lệnh
này kiểm tra. Trạng thái của lệnh bit ghi vào bộ nhớ (S, R, =) bằng giá trị của bit mà
lệnh ghi vào. Nếu không có xảy ra ghi thì nó bằng giá trị của bit nó tham chiếu. Bit
STA không có ý nghĩa với các lệnh bit mà không truy cập bộ nhớ, các lệnh như vậy
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
23
đặt bit STA lên 1. Bit này không bị kiểm tra bởi lệnh, nó chỉ được diễn dịch khi thử
chương trình.
Bit OR
Bit cần có khi sử dụng lệnh O để thực hiện AND –trước- OR. Hàm AND chứa các
lệnh sau: A, AN, A(, AN(, và NOT. Bit OR cho thấy các lệnh mà hàm AND được
thực thi trước đó đã cho giá trị 1. Bất cứ lệnh xử lý bit khác reset bit OR.
Bit OV (overflow)
Bit OV có chúc năng báo lỗi. Nó được đặt lên 1 bằng lệnh toán học hay lệnh so sánh
dấu chấm động sau khi lỗi xảy ra ( tràn, phép toán không hợp lệ, số dấu chấm động
không hợp lệ). Bit này được đặt theo kết quả của lệnh toán học kế hay lệnh so sánh
kế.
Bit OS ( stored overflow bit)
Bit OS được đặt cùng với bit OV khi có lỗi xảy ra. Bởi vì bit OS vẫn giữ là 1 khi đã
khử lỗi, nó chứa trạng thái bit OV và cho thấy có lỗi hay không có lỗi xảy ra ở một
trong các lệnh được thực thi trước đó. Các lệnh reset bit OS: JOS( jump after stored
overflow), các lệnh gọi khối, và các lệnh kết thúc khối.
Mã điều khiển CC1 và CC0
CC1 CC0 GIẢI THÍCH
0 0 Kết quả =0
0 1 Kết quả < 0
1 0 Kết quả > 0
CC1 và CC0 sau lệnh toán học, không có tràn
CC1 CC0 GIẢI THÍCH
0 0 Tràn dải trị âm trong +I và +D
0 1 Tràn dải trị âm trong *I và *D
Tràn dải trị dương trong +I,-I,+D,-D,NEGI và NEGD
1 0 Tràn dải trị dương trong *I,*D,/I và /D
Tràn dải trị âm trong +I,-I,+D,-D
1 1 Chia cho 0 trong /I, /D, và MOD
CC1 và CC0 sau lệnh toán học số nguyên,có tràn.
CC1 CC0 Giải thích
0 0 Tràn dưới
0 1 Tràn dải trị âm
1 0 Tràn dải trị dương
1 1 Số dấu chấm động không hợp lệ
CC1 và CC0 sau các lệnh toán học dấu chấm động, có tràn.
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
24
CC1 CC0 Giải thích
0 0 ACCU 2 = ACCU1
0 1 ACCU 2 < ACCU 1
1 0 ACCU 2 > ACCU1
1 1 ACCU 1 hay ACCU 2 là số dấu chấm động không
hợp lệ
CC1 và CC0 sau lệnh so sánh.
CC1 CC0 Giải thích
0 0
Bit vừa dịch ra là 0
1 0
Bit vừa dịch ra là 1
CC1 và CC0 sau lệnh dịch và xóa
CC1 và CC0 sau lệnh logic trên Word
Bit BR ( Binary Result)
Bit BR tạo liên kết giữa xử lý các Bit và các word. Đây là phương tiện hữu hiệu để
diễn dịch kết quả của phép toán trên word như kết quả nhị phân và đưa kết quả này
vào chuỗi logic nhị phân.Với cách nhìn này ,bit BR biểu diễn bit bộ nhớ bên trong
máy mà RLO cất vào trước khi một phép toán word làm thay đổi RLO, để cho RLO
khả dụng lần nữa sau khi phép toán tiếp tục chuỗi logic bit bị ngắt.
Bit BR tương ứng ngõ ra cho phép (ENO = enable output) của hộp LAD.ta nên sử
dụng lệnh save để cất RLO vào bit BR theo các tiêu chuẩn sau:
• Cất bit RLO bằng 1 vào bit BR cho trường hợp mà FB hay FC được thực thi
không có lỗi.
• Cất bit RLO băng 0 vào bit BR cho trường hợp mà Bit FB hay FC được thực
thi có lỗi.
Ta nên lập trình các lệnh này ở cuối FB hay FC để chúng là các lệnh cuối cùng được
thực thi trong khối.
CC1 CC0 Giải thích
0 0
Kết quả = 0
1 0
Kết quả <>0
ĐỒ ÁN ĐIỀU KHIỂN LẬP TRÌNH
Gv: Lê Trọng Luân
25
CHƯƠNG IV: NGÔN NGỮ LẬP TRÌNH CỦA S7-300.
Các loại PLC nói chung có nhiều loại ngôn ngữ lập trình nhằm phục vụ các đối tượng
sử dụng khác nhau. PLC S7-300 có 3 ngôn ngữ lập trình cơ bản:
Ngôn ngữ STL (statement List).
Ngôn ngữ FBD (Function Block Diagram – FBD)
Ngôn ngữ LAD ( Ladder diagram)
Các lệnh này có thể chuyển đổi qua lại:
Ctrl + 1(LAD)
Ctrl + 2(STL)
Ctrl + 3(FBD)
Thông thường người lập trình có thể chọn phương pháp thích hợp với khả năng của
mình để công việc lập trình tối ưu và hiệu quả nhất. Và nhìn chung, hầu hết các
chương trình được viết dưới dạng này có thể được máy tính tự động chuyển sang
dạng khác nếu người lập trình có yêu cầu. Điều này khẳng định tính ưu việt của kỹ
thuật điều khiển khả trình so với kỹ thuật điều khiển rơle.
Tuy nhiên trong một vài trường hợp thì dạng sơ đồ STL không thể chuyển sang
các dạng khác, ngược lại thì các dạng sơ đồ LAD và FBD đều có thể chuyển đổi
sang dạng STL mà các dữ liệu không bị thay đổi trong quá trình thực hiện
chuyển đổi.
I. PHƯƠNG PHÁP STL.
Ngôn ngữ liệt kê lệnh, dạng ngôn ngữ lập trình thông thường của máy tính, một
chương trình được ghép bởi nhiều câu lệnh theo một thuật toán nhất định, mỗi lệnh
chiếm 1 hàng và có cấu trúc chung “ tên lệnh + toán hạng”
Phương pháp STL biểu diễn chương trình điều khiển bằng các dòng lệnh liên
tiếp:
A I0.0
A I0.1
O
A I0.2
A I0.3
= Q4.1
PHƯƠNG PHÁP VIẾT CHƯƠNG TRÌNH BẰNG STL
Một dòng lệnh thông thường bao gồm :
Lệnh là nội dung thao tác mà PLC phải tác động lên đối tượng.
Đối tượng lệnh.
TÊN LỆNH
TOÁN HẠNG