You are on page 1of 39

CÔNG TY CỔ PHẦN TỰ ĐỘNG HOÁ

TÂN PHÁT
Địa chỉ: Số 168 – Phan Trọng Tuệ – Thanh Liệt - Thanh Trì – Hà Nội
Điện thoại: 04.3685.7776/ Fax: 04. 3685.7775
Website: www.tpa.com.vn - Email: tpa@tpa.com.vn

HƯỚNG DẪN SỬ DỤNG


MODULE THỰC HÀNH PLC S7-300
Mã: D0.00.A0608

TP-TT31-BM05/Lsđ:00
Công Ty Cổ Phần Tự Động Hóa Tân Phát

1. Tổng quan về module


- Đặc tính module:
+ Sản phẩm có chỉ tiêu công suất, dòng rò, cao áp được chứng nhận phù hợp với tiêu chuẩn
Việt Nam
+ Module được lắp ráp hoàn chỉnh thành bộ có thể gá lắp trên các khung thực hành kiểu tiêu
chuẩn hoặc đặt trực tiếp trên mặt bàn thí nghiệm.
+ Trên mặt của bộ thí nghiệm đã tích hợp các jack cắm an toàn 4mm chống giật theo tiêu
chuẩn EC
+ Mặt module được làm bằng phíp trắng dày 2.5mm
+ Các chỉ dẫn được in phim trên bề mặt module đảm bảo độ bền cũng như tính thẩm mĩ
+ Chất liệu hộp gá: Nhựa ABS.

PLC S7 300 CPU313C + CP341-1 MODULE

RS485

DIGITAL I/O PORT


ON
DI0-DI1
F/2A

ANALOG I/O PORT


AI DI2

POWER SUPPLY
(24VDC)
V+ GND AO DO0-D01

Hình 1: Giao diện mặt module

2. Thông số kỹ thuật
+ Loại CPU: 313C
+ Module mở rô ̣ng: CP341
+ Số đầu vào số : 24DI
+ Số đầu ra số : 16DO
+ Số đầu vào tương tự : 5AI
+ Số đầu ra tương tự : 2AO
+ Bô ̣ đếm tốc đô ̣ cao: 3 (30KHz)
+ Cổng truyền thông : 01 cổng MPI; 01 cổng Modbus
+ Công tắc nguồn liền đèn, cầu chì bảo vê ̣
+ Tín hiê ̣u I/O kết nối qua cổng DB25
2
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

3. Giao diện sử dụng trên module

PLC S7 300 CPU313C + CP341-1 MODULE

RS485 7

2 ON
DIGITAL I/O PORT
DI0-DI1
6
F/2A

ANALOG I/O PORT


AI DI2

1 POWER SUPPLY
(24VDC)
V+ GND AO DO0-D01

Hình 2: Các khối thực hành trên module

1- Nguồn cấp vào cho module


2- Công tắc nguồn cấp cho PLC
3- PLC S7 300 CPU 313C, CP 341
4- Khối vào / ra tương tự
5- Khối vào/ ra số
6- Cổng kết nối RS485

4. Các chức năng của module/thiết bị *


+ Thực hành lập trình PLC S7 300
+ Thực hành lập trình truyền thông Modbus

3
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

5. Cách sử dụng module/thiết bị *

5.1Phần mềm S7
5.1.1 Phần mềm Simatic S7-300

Sau khi mở một Project mới ta sẽ có màn hình như hình vẽ với một khối quản lý Project
(quản lý dạng cây) và một khối các đơn vị bên trong.

Hình 3 – Màn hình sau khi mở 1 project

5.1.2 Tạo Project mới

- Để tạo một Project mới một cách tuần tự: File  New. Khi đó xuất hiện một cửa sổ cho
phép ta: Đặt tên cho Project mới, chọn thư mục để lưu Project. Sau đó nhấn OK.

Hình 4 – Hộp thoại New


4
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
- Để thêm vào các thành phần của bộ PLC hoàn chỉnh ta nhấn phải chuột vào tên của Project
: Tan_PhatInsert New Object SIMATIC 300 Station
Hoặc thực hiện từ Menu chính: InsertStationSIMATIC 300 Station

Hình 5 – Menu Insert New


Object
- Chọn các thiết bị phần
cứng cho PLC bằng cách nháy
chuột vào biểu tượng Hardware.

Hình 6 – Giao diện Simatic


- Trong cửa sổ cài đặt phần cứng trước tiên ta phải tạo ra một Rack để gá các Module của
PLC lên bằng cách chọn SIMATIC 300 RACK 300Rail khi đó sẽ có một bảng để nhập các
thiết bị phần cứng của PLC, để nhập các thiết bị phần cứng của PLC vào các Rack ta phải nhập đúng
vị trí của chúng:
+ Rack 1: sử dụng cho Module nguồn của PLC, để chọn Module nguồn ta thực hiện:
SIMATIC 300 PS-300 trong đó ta chọn Module nguồn mà ta có trong thực tế

5
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Hình 7 – Chọn nguồn


+ Rack 2: Sử dụng để chứa CPU, để lấy ra Module CPU thích hợp: SIMATIC 300 CPU-
300 trong đó ta sẽ có rất nhiều loại CPU để lựa chọn cho phù hợp
+ Các Module vào ra mở rộng ta có thể đưa chúng vào các Rack từ 4 đến 11. Để chọn các
Module mở rộng thích hợp: SIMATIC 300SM-300. Trong đó ta có thể chọn các Module mở rộng
rạng AI, AO,AI/AO, DI, DO,DI/DO. Bản thân bên trong các khối Module mở rộng cũng bao gồm
rất nhiều các Module nhỏ để ta lựa chọn.

Hình 8 – Chọn Module mở rộng


- Sau khi chọn xong các Module cần thiết ta sẽ có một bảng bao gồm các Module:

6
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Hình 9 – Bảng các module

- Địa chỉ của các Module sẽ được hiển thị ở bảng : (các địa chỉ này có là do hệ thống tự đặt,
ta hoàn toàn có thể đặt lại theo ý mình).

Hình 10 – Bảng địa chỉ các module


- Ghi lại (Save) cấu hình phần cứng vừa thiết lập.
- Sau đó ta sẽ có một Project để lập trình

7
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Hình 11 – Giao diện Simatic
Thực hiện viết chương trình
- Sau khi thiết lập xong một Project chương trình sẽ tự tạo ra cho ta khối OB1 là khối
chương trình chính.
- Để tạo ra các khối chương trình khác ta thực hiện: từ Menu chọn Insert S7 Block hoặc
nhấp chuột phải vào Block Insert New Object

Hình 12 – Menu S7 Block

Hình 13 – Menu Insert New Object

- Thực hiện lập trình trong từng khối.


- Đặt tên hình thức (khi lập trình các tên hình thức này sẽ có tác dụng gợi nhớ về ý nghĩa của
biến đó) cho các địa chỉ trong PLC: chọn S7 ProgramSymbols

8
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Hình 14 – Giao diện Simatic

Hình 15 – Địa chỉ đầu vào/ra


Download chương trình.
- Để Download chương trình trước tiên ta phải thiết lập truyền thông cho hệ thống
o Chän Options PC/PG Interface

Hình 16 – Menu Options


o Khi đó ta sẽ có một cửa sổ để thiết lập truyền thông giữa máy tính và PLC
9
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Hình 17 – Hộp thoại Set PG/PC Interface

o Trên đó ta chọn PC Adapter(MPI) rồi chọn Properties hoặc nhấp đúp vào biểu tượng đó
để thiết lập cổng truyền thông và tốc độ truyền thông

Hình 18 – Hộp thoại Properties –PC Adapter


o Sau khi thiết lập truyền thông ta có thể tiến hành Download để chạy chương trình. Để
Download: chọn PLC Download hoặc nhẫn vào biểu tượng Download trên thanh công cụ.

10
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Hình 19 – Menu PLC

5.1.3 Lập trình trên STL và LAD

- STL và LAD là hai ngôn ngữ phổ biến khi lập trình PLC.
- STL (Statement List) là loại ngôn ngữ “liệt kê lệnh”, ngôn ngữ này thông dụng trên máy
tính. Cấu trúc chung của một lệnh STL là: “tên lệnh” + “toán hạng”.
- LAD (Ladder Logic): là loại ngôn ngữ đồ hoạ thích hợp với những người quên thiết kế
logic.
- Hai loại ngôn ngữ này hoàn toàn có thể chuyển sang bằng cách: View STL để hiển thị
chương trình dưới dạng STL và ViewLAD để hiển thị dưới dạng LAD. Tất cả các chương trình
viết trên LAD đều hoàn toàn có thể chuyển sang STL nhưng ngược lại thì chỉ tuỳ một số trường hợp
mới có thể chuyển được.
Các đặc điểm của từng ngôn ngữ:
A. STL
- STL rất thoải mái trong việc chia các đoạn chương trình thành các Network khác nhau mà
không hề báo lỗi và không ảnh hưởng đến kết quả của thuật toán.
- Toàn bộ hệ lệnh logic trong STL đều thực hiện thông qua kết quả của thanh ghi trạng thái:
Thanh ghi trạng thái (Status word) là thanh ghi 16 bit nhưng chỉ sử dụng có 9 bit với cấu trúc:

BR CC1 CC0 OV OS OR STA RLO FC


8 7 6 5 4 3 2 1 0

+ FC (First Check): Bit này sẽ có giá trị bằng 1 khi đang thực hiện các phép tính logic như
AND, OR, NOT hay FC=0 ngay khi dãy lệnh logic này vứa kết thúc
+ RLO (Result of logic operation): Kết quả tức thời của phép tính vừa được thực hiện.
Ví dụ: A I0.3
Nếu FC=0 (chưa có lệnh logic nào trước đó hoặc vừa thực hiện xong một dãy các lệnh logic) thì
RLO sẽ chứa giá trị của I0.3
Nếu FC=1 thì khi đó máy sẽ thực hiện việc AND giữa giá trị của I0.3 và giá trị chứa trong RLO, kết
quả của phép tính lại được lưu vào trong RLO.
+ STA (Status bit): bit này chứa giá trị của bit được chỉ ra trong toán hạng.
+ OR: Ghi lại kết quả của phép tính AND cuối cùng để thực hiển các phép tính OR sau đó,
vì phép tính AND được thực hiện trước các phép tính OR trong cùng một biểu thức.
+ OS (Stored overflow bit): Ghi lại giá trị của bit bị tràn ra khỏi ô nhớ.

11
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
+ OV (Overflow bit): Bit báo phép tính bị tràn ra ngoài mảng ô nhớ.
+ CC0 và CC1 (Condition code): Hai bit báo trạng thái của kết quả các phép tính với số
nguyê và số thực, các phép dịch chuyển hoặc các phép tính logic trong ACC.
+ BR (Binary result bit): Bit trạng thái cho phép liên kết giữa hai loại ngôn ngữ lập trình
STL và LAD. Khi BR=1 chương trình chạy không có lỗi, BR=0 chương trình chạy có lỗi.
- Tất cả các lệnh làm việc với các số nguyên, số thực, byte bao gồm các lệnh: di chuyển ô
nhớ, so sánh, các phép toán, các lệnh dịch chuyển đều được thực hiện thông qua hai thanh ghi ACC1
và ACC2 (là các thanh ghi 32 bit). Vì vậy khi thực hiện các phép tính này luôn phải để ý theo dõi
nội dung của hai thanh ghi này để có kết quả phép tính đúng.
B. LAD
- Mỗi câu lệnh của LAD phải được thực hiện trên một Network riêng.
- Là loại ngôn ngữ đồ hoạ minh hoạ cho mạch điện, vì vậy rất dễ để hình dung và thiế kế. Dễ
dàng trong cả việc theo dõi hoạt độngc của mạch điện.
- Khi làm việc với LAD ta không cần quan tâm đến nội dung của thanh ghi trạng thái và nội
dung hiện tại của các thanh chứa ACC1, ACC2.
- Do là hệ lệnh dưới dạng đồ hoạ nên câu lệnh của LAD công kềnh hơn đối với STL và khó
thực hiện các lệnh điều khiển quá trình hơn so với STL.
C. Các vùng nhớ trong S7 300
Vùng nhớ trong PLC S7 300 được chia ra làm 3 vùng nhớ với các ứng dụng khác nhau:
- Vùng nhớ chứa chương trình ứng dụng
+ OB: miền nhớ chứa chương trình tổ chức
+ FC: Miền chứa các chương trình tổ chức có các biến hình thức để trao đổi dữ liệu với khối
mẹ
+ FB: Miền chứa các chương trình con được tổ chức thành các hàm và có khả năng trao đổi
dữ liệu với bất kỳ một khối chương trình nào.
- Vùng nhớ chứa tham số hệ điều hành
+ I (Process image Input): miền bộ đệm các dữ liệu cổng vào số. Đây là vùng mà dữ liệu ở
đầu vào sẽ đựơc lưu, thông thường chương trình ứng dụng không đọc trực tiếp dữ liệu từ đầu vào
mà đọc thông qua bộ đệm.
+ Q (Process image Output): miền bộ đệm các dữ liệu cổng ra số. Sau khi thực hiện chương
trình các giá trị đầu ra sẽ được lưu vào vùng nhớ này để chuẩn bị đưa ra đầu ra, thông thường
chương trình ứng dụng không gán trực tiếp giá trị đầu ra ra các cổng mà thông qua bộ đệm đâu ra Q.
+ M: miền nhớ các biến cờ, đươc sử dụng làm vùng nhớ để lưu các tham số khi lập trình và
có thể truy nhập theo bit (M), theo byte (MB), theo từ (MW), hay từ kép (MD).
+ T: vùng nhớ dành cho bộ định thời (Timer) dùng để lưu các giá trị đặt trước, giá trị tức
thời, và giá trị bit đâu ra của Timer
+ C: vùng nhớ dành cho bộ đếm (Counter) dùng để lưu các giá trị đặt trước, giá trị tức thời,
và giá trị bit đâu ra của Counter
+ PI: vùng nhớ lưu các giá trị của đầu vào tương tự, giá trị tại các đầu vào tương tự sẽ được
module đọc và tự động chuyển vào các địa chỉ
+ PQ: vùng nhớ lưu các giá trị sẽ được gán ra đầu ra tương tự, Các giá trị trong vùng nhớ này
sẽ được chương trình chuyển ra các Module ra tương tự.
- Vùng chứa các khối dữ liệu
+ DB: Miền nhớ dữ liệu được tổ chức thành các khối, kích thước cũng như số lượng của các
khối tuỳ thuộc vào người lập trình. Chương trình có thể truy nhập theo từng bit (DBX), byte (DBB),
từ (DBW), hay từ kép (DBD).
12
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
+ L (Local data block): Miền nhớ địa phương nằm trong các khối chương trìn OB, FC, FB
dùng để nháp trong các khối chương trình, dữ liệu của các vùng nhớ này sẽ bị xóa khi khối chương
trình dùng nó kết thúc.

5.1.4 Nguyên tắc thực hiện chương trình

A. Vòng quét của chương trình

TruyÒn th«ng vµ ChuyÓn d÷ liÖu tõ


kiÓm tra néi bé cæng vµo tí i I

ChuyÓn d÷ liÖu Thùc hiÖn


tõ Q tí i cæng ra chu¬ng tr×nh

- PLC là thiết bị làm việc theo vòng quét, trong một vòng quét của mình CPU sẽ lần lượt thực
hiện 4 bước trên.
- Trong vòng quét chỉ có dữ liệu từ các cổng vào ra số được gán vào bộ đệm còn các cổng
vào ra tương tự đựơc gán giá trị trực tiếp ra các cổng vật lý mà không thông qua bộ đệm.
- Thời gian thực hiện xong chu trình này gọi la thời gian vòng quét, thời gian càng ngắn
chương trình thực hiện càng nhanh.
B. Lập trình theo kiểu tuyến tính
Lập trình theo phương pháp này chỉ dùng cho những ứng dụng nhỏ, không phức tạp. Chương trình
sẽ chạy lần lượt từ đâu chương trình đến cuối chương trình, khối viết chương trình phải là khối OB1,
chương trình sẽ được thực hiện lặp đi lặp lại theo vòng quét của PLC.
C. Lập trình có cấu trúc
Lập trình theo phương pháp này ta sẽ chia chương trình thành những phần nhỏ để thực hiện.
Việ chia nhỏ chương trình sẽ tạo điều kiện cho việc kiểm tra và gỡ rối chương trình cũng như phân
công công việc cho từng thành viên trong nhóm. Các khối chương trình dùng để thực hiện chương
trình: Obx, FCx, FBx và các khối dữ liệu.
Theo phương pháp này thay vì viết lại các đoạn chương trình giống nhau tại các vị trí khác
nhau thì ta chỉ cần gọi một chương trình con làm nhiệm vụ đó.

13
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
5.2 Hệ lệnh của PLC S7-300

Do hệ lệnh trong STL lớn hơn trong LAD do vậy chúng tôi xin trình bày hệ lệnh của S7-300
trên ngôn ngữ STL.

5.2.1 Các hệ lệnh cơ bản

I. Hệ lệnh Logic

S7 300 cung cấp cho ta tập các hệ lệnh logic hoàn toàn giống với hệ lệnh logic của đại số
boolean. Một biểu thức logic thực hiện trên giấy như thế nào thì khi thực hiện trên STL cũng được
thực hiện lần lượt như vậy.

- Phép tính AND: A <toán hạng>


To¸ n h¹ ng

Toán hạng của phép tính có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
Phép tính sẽ phụ thuộc vào giá trị của FC. Nếu FC=0 giá trị của toán hạng sẽ được lưu trong
RLO, nếu FC=1 giá trị trong toán hạng sẽ được AND với giá trị trong RLO và kết quả lưu lại trong
RLO
VD: A I0.0 // Lấy giá trị lưu vào trong RLO
A I0.1 // I0.1 and RLO
= Q0.0 // Đưa kết quả ra cổng ra
- Lệnh gán : = <toán hạng>
To¸ n h¹ ng

Toán hạng của phép tính có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
Lệnh có tác dụng đưa giá trị trong RLO vào toán hạng được chỉ ra trong lệnh.

- Phép tính AN (And not): AN <toán hạng>


To¸ n h¹ ng

Toán hạng của phép tính có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
Phép tính sẽ đảo giá trị của toán hạng trước khi đưa vào RLO hoặc AND với RLO (phụ
thuộc vào giá trị của FC).

- Phép tính OR: O <toán hạng>


Toán hạng của phép tính có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
Phép tính sẽ đưa giá trị của toán hạng vào RLO hoặc OR với RLO (phụ thuộc vào giá trị của
FC).
- Phép tính ON (OR NOT): ON <toán hạng>
Toán hạng của phép tính có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
14
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Phép tính sẽ đảo giá trị của toán hạng trước khi đưa vào RLO hoặc OR với RLO (phụ thuộc
vào giá trị của FC).

- Phép tính thực hiện lệnh AND với một biểu thức: A(
Khi FC =0 lệnh sẽ đưa giá trị của biểu thức vào trong RLO
Khi FC=1 lệnh thực hiện phép AND giữa giá trị của biểu thức và RLO, kết quả được lưu lại
vào RLO.
VD: A I0.0
A(
A I0.1
ON I0.2
)
= Q0.0

- Các phép O, ON, AN với một biểu thức: O( ON( AN(


Các lệnh này cũng tác động tương tự lệnh A( chỉ khác kết quả cuối cùng khi thực hiện phép
tính với RLO, kết quả này phụ thuộc vào bản thân lệnh đó.
Chú ý: Các phép tính như And, Or khi thực hiện bằng LAD thì chính là việc mắc nối tiếp hoặc song
song các tiếp điểm với nhau.

- Phép tính XOR: X <toán hạng>


Toán hạng của phép tính có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
Bảng chân lý của kết quả C= A xor B
A B C
0 0 0
1 0 1
0 1 1
1 1 0

- Các phép tính XN, X(, XN( :


Thực hiện tương tự các phép tính trên
- Lệnh SET
Lệnh không có toán hạng, có tác dụng ghi 1 vào RLO.
- Lệnh CLR
Lệnh không có toán hạng, có tác dụng ghi 0 vào RLO.
- Lệnh NOT
To¸ n h¹ ng

NOT
Lệnh không có toán hạng, có tác dụng đảo giá trị trong RLO
- Lệnh gán có điều kiện giá trị logic 1 vào ô nhớ: S <toán hạng>
To¸ n h¹ ng

S
Toán hạng có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
15
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Nếu RLO=1 lệnh sẽ ghi 1 vào toán hạng
- Lệnh gán có điều kiện giá trị logic 0 vào ô nhớ: R <toán hạng>
To¸ n h¹ ng

R
Toán hạng có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D, T, C
Nếu RLO=1 lệnh sẽ ghi 0 vào toán hạng
- Lệnh phát hiện sườn lên: FP <toán hạng>
To¸ n h¹ ng

P
Toán hạng có kiểu dữ liệu BOOL hoặc địa chỉ bit: I, Q, M, L, D và được sử dụng như một
biến cờ để ghi lại giá trị của RLO tại vị trí này trong chương trình nhưng ở vòng quét trước.
Tại mỗi vòng quét lệnh sẽ kiểm tra: nếu toán hạng có giá trị 0 và RLO có giá trị 1 thì ghi 1
vào RLO, các trường hợp khác thì ghi 0 đồng thời chuyển nội dung của RLO vào biến cờ. Như vậy
RLO sẽ có giá trị logic 1 trong 1 vòng quét khi có sườn lên trong RLO. Tại vòng quét sau RLO có
giá trị 1 và biến cờ cũng có giá trị 1 vậy nên RLO=0.
VD: A I0.0
FP M0.0
= Q0.0
Đoạn lệnh trên sẽ tương đương với đoạn lệnh sau:
A I0.0
AN M0.0
= Q0.0
A I0.0
= M0.0
- Lệnh phát hiện sườn xuống: FN <toán hạng>
To¸ n h¹ ng

N
Tương tự lênh phát hiện sườn lên, khi phát hiện giá trị trong RLO thay đổi từ 1 sang 0 thì giá
trị của RLO sẽ bằng 1 trong một vòng quét.

II. Hệ lệnh so sánh

A. So sánh số nguyên 16 bit


Tất cả hệ lệnh so sánh này đều không có toán hạng mà sẽ so sánh hai số nguyên 16 bit nằm
trong hai từ thấp của hai thanh ghi ACC1 và ACC2. Khi kết quả phép so sánh đúng RLO=1.
Tác động của hệ lệnh này lên thanh ghi trạng thái:

BR CC1 CC0 OV OS OR STA RLO FC


- x x 0 - 0 x x 1

16
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
ý nghĩa của hai bit CC1 và CC0 trong lệnh:

CC1 CC0 ý nghĩa


0 0 Từ thấp ACC2 = từ thấp ACC1
0 1 Từ thấp ACC2 = từ thấp ACC1
1 0 Từ thấp ACC2 = từ thấp ACC1

- So sánh bằng: ==I


CMP = I

To¸ n h¹ ng IN1
To¸ n h¹ ng IN2

Lệnh sẽ so sánh hai số nguyên nằm trong hai từ thấp của ACC1 và ACC2, nếu số nguyên
trong ACC1 bằng với số nguyên trong ACC2 thì RLO=1, ngược lại thì RLO=0.
- So sánh khác: <>I
CMP <> I

To¸ n h¹ ng IN1
To¸ n h¹ ng IN2

Lệnh sẽ so sánh hai số nguyên nằm trong hai từ thấp của ACC1 và ACC2, nếu số nguyên
trong ACC1 khác với số nguyên trong ACC2 thì RLO=1, ngược lại thì RLO=0.

- So sánh lớn hơn: >I

CMP > I

To¸ n h¹ ng IN1
To¸ n h¹ ng IN2

Lệnh sẽ so sánh hai số nguyên nằm trong hai từ thấp của ACC1 và ACC2, nếu số nguyên
trong từ thấp của ACC2 lớn hơn số nguyên nằm trong ACC1 thì RLO=1, ngược lại thì RLO=0.
- So sánh nhỏ hơn: <I
CMP < I

To¸ n h¹ ng IN1
To¸ n h¹ ng IN2

Lệnh sẽ so sánh hai số nguyên nằm trong hai từ thấp của ACC1 và ACC2, nếu số nguyên
trong từ thấp của ACC2 nhỏ hơn số nguyên nằm trong ACC1 thì RLO=1, ngược lại thì RLO=0.
- So sánh lớn hơn hoặc bằng: >=I

17
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

CMP >= I

To¸ n h¹ ng IN1
To¸ n h¹ ng IN2

Lệnh sẽ so sánh hai số nguyên nằm trong hai từ thấp của ACC1 và ACC2, nếu số nguyên
trong từ thấp của ACC2 lớn hơn hoặc bằng số nguyên nằm trong ACC1 thì RLO=1, ngược lại thì
RLO=0.
- So sánh nhỏ hơn hoặc bằng: <=I
CMP <= I

To¸ n h¹ ng IN1
To¸ n h¹ ng IN2

Lệnh sẽ so sánh hai số nguyên nằm trong hai từ thấp của ACC1 và ACC2, nếu số nguyên
trong từ thấp của ACC2 nhỏ hơn hoặc bằng số nguyên nằm trong ACC1 thì RLO=1, ngược lại thì
RLO=0.

Ví dụ: Bật I0.0 và chờ cho đến khi cổng vào PIW10 có giá trị lớn hơn hoặc bằng 5 thì bật đèn báo
Q4.0
A I0.0
A(
L PIW10 // đọc giá trị cổng vào PIW10 vào ACC1
L 5 // Đọc giá trị 5 vào ACC1, giá trị của PIW10 được
// lưu vào ACC2
>=I // So sánh từ thấp trong ACC2 = từ thấp trong ACC1?
)
= Q4.0 // Nếu đúng thì Q4.0=1

B. So sánh số nguyên 32 bit


Hệ lệnh không có toán hạng mà sẽ so sánh hai số nguyên 32 bit nằm trong ACC0 và ACC1.
Kết quả của phép so sánh sẽ được thể hiển trong RLO. RLO=1 kết quả phép so sánh đúng, ngược lại
RLO=0.
Các phép so sánh số nguyên 32 bit cũng tác động đến thanh ghi trạng thái hoàn toàn tương
tự so với các phép so sánh số nguyên 16 bit đã được trình bày ở trên.
Cú pháp của hệ lệnh này cũng tương tự chỉ việc thay giá trị chỉ kích thước vùng nhớ I thành
D.
Ta sẽ có các lệnh
- Lệnh so sánh bằng: ==D
- Lệnh so sánh khác: <>D
- Lệnh so sánh lớn hơn: >D (ACC2 > ACC1)
- Lệnh so sánh nhỏ hơn: <D (ACC2 < ACC1)
- Lệnh so sánh lớn hơn hoặc bằng: >=D (ACC2 ≥ ACC1)
- Lệnh so sánh nhỏ hơn hoặc băng: <=D (ACC2 ≤ ACC1)
18
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
C. So sánh số thực 32 bit
Hệ lệnh không có toán hạng mà sẽ so sánh hai số thực 32 bit nằm trong ACC0 và ACC1. Kết
quả của phép so sánh sẽ được thể hiển trong RLO. RLO=1 kết quả phép so sánh đúng, ngược lại
RLO=0.
Các phép so sánh số thực 32 bit cũng tác động đến thanh ghi trạng thái hoàn toàn tương tự
so với các phép so sánh số nguyên 16 bit đ• được trình bày ở trên.
Cú pháp của hệ lệnh này cũng tương tự chỉ việc thay giá trị chỉ kích thước vùng nhớ I thành
R.
- Lệnh so sánh bằng: ==R
- Lệnh so sánh khác: <>R
- Lệnh so sánh lớn hơn: >R (ACC2 > ACC1)
- Lệnh so sánh nhỏ hơn: <R (ACC2 < ACC1)
- Lệnh so sánh lớn hơn hoặc bằng: >=R (ACC2 ≥ ACC1)
- Lệnh so sánh nhỏ hơn hoặc băng: <=R (ACC2 ≤ ACC1)

III.Hệ lệnh toán học

A. Hệ lệnh làm việc với số nguyên 16 bit


Hệ lệnh không có toán hạng mà sẽ được thực hiện thông qua hai thanh ghi ACC1 và ACC2,
kết quả của phép tính sẽ được lưu lại vào ACC1, nội dung của thanh ghi ACC2 không bị thay đổi.
- Lệnh cộng: +I
ADD_I
EN ENO

To¸ n h¹ ng IN1 OUT


To¸ n h¹ ng IN2
Lệnh sẽ thực hiện cộng hai số nguyên 16 bit nằm trong từ thấp của ACC2 và ACC1, kết quả
được lưu lại vào ACC1, giá trị trong từ thấp của ACC2 không bị thay đổi. Nếu kết quả phép tính
nằm trong khoảng -32768  32767 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh trừ: -I
SUB_I
EN ENO

To¸ n h¹ ng IN1 OUT


To¸ n h¹ ng IN2
Lệnh sẽ thực hiện trừ số nguyên 16 bit nằm trong từ thấp của ACC2 cho số nguyên 16 bit
nằm trong từ thấp của ACC1, kết quả đựơc ghi lại vào ACC1, nội dung ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -32768  32767 thì OV=0, ngược lại thì cả OV và OS đều
bằng 1.

19
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

- Lệnh nhân: *I
MUL_I
EN ENO

To¸ n h¹ ng IN1 OUT


To¸ n h¹ ng IN2
Lệnh sẽ thực hiện nhân hai số nguyên 16 bit nằm trong từ thấp của ACC2 và ACC1, kết quả
là một số nguyên 32 bit được lưu lại vào ACC1, giá trị trong từ thấp của ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -32768  32767 thì OV=0, ngược lại thì cả OV và OS đều
bằng 1.
- Lệnh chia: /I
SUB_I
EN ENO

To¸ n h¹ ng IN1 OUT


To¸ n h¹ ng IN2
Lệnh thực hiện phép chia số nguyên 16 bit nằm trong từ thấp của ACC2 cho từ thấp trong
ACC1, kết quả là một số nguyên 16 bit được lưu vào từ thấp của ACC1, phần dư của phép chia
được lưu vào từ cao của ACC1. Nội dung của thanh ghi ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -32768  32767 thì OV=0, ngược lại thì cả OV và
OS đều bằng 1.

B. Hệ lệnh làm việc với số nguyên 32 bit

Hệ lệnh không có toán hạng mà sẽ được thực hiện thông qua hai thanh ghi ACC1 và ACC2,
kết quả của phép tính sẽ được lưu lại vào ACC1, nội dung của thanh ghi ACC2 không bị thay đổi.
- Lệnh cộng: +D
Lệnh sẽ thực hiện cộng hai số nguyên 32it nằm trong ACC2 và ACC1, kết quả được lưu lại
vào ACC1, giá trị ACC2 không bị thay đổi. Nếu kết quả phép tính nằm trong khoảng -2147483648
 2147483647 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh trừ: -D
Lệnh sẽ thực hiện trừ số nguyên 32 bit nằm trong ACC2 cho số nguyên 32 bit ACC1, kết
quả đựơc ghi lại vào ACC1, nội dung ACC2 không bị thay đổi. Nếu kết quả phép tính nằm trong
khoảng -2147483648  2147483647 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh nhân: *D
Lệnh sẽ thực hiện nhân hai số nguyên 32 bit trong ACC2 và ACC1, kết quả là một số nguyên
32 bit được lưu lại vào ACC1, nội dung của ACC2 không bị thay đổi. Nếu kết quả phép tính nằm
trong khoảng -2147483648  2147483647 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh chia: /D
Lệnh thực hiện phép chia số nguyên 32 bit trong ACC2 cho số nguyên 32 bit trong ACC1,
kết quả là một số nguyên 32 bit được lưu vào ACC1. Nội dung của thanh ghi ACC2 không bị thay
đổi.

20
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Nếu kết quả phép tính nằm trong khoảng -32768  32767 thì OV=0, ngược lại thì cả OV và
OS đều bằng 1.

- Lệnh lấy phần dư: MOD


MOD_DI
EN ENO

To¸ n h¹ ng IN1 OUT


To¸ n h¹ ng IN2
Lệnh không có toán hang, lệnh sẽ xác định phần dư của phép chia số nguyên 32 bit nằm
trong ACC2 cho số nguyên 32 bit nằm trong ACC1, kết quả được ghi lại vào ACC1. Nội dung của
ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -2147483648  2147483647 thì OV=0, ngược lại
thì cả OV và OS đều bằng 1.

C. Hệ lệnh làm việc với số thực 32 bit

Hệ lệnh không có toán hạng mà sẽ được thực hiện thông qua hai thanh ghi ACC1 và ACC2,
kết quả của phép tính sẽ được lưu lại vào ACC1, nội dung của thanh ghi ACC2 không bị thay đổi.
- Lệnh cộng: +R
Lệnh sẽ thực hiện cộng hai số thực dầu phẩy động nằm trong ACC2 và ACC1, kết quả được
lưu lại vào ACC1, giá trị ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38 -1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh trừ: -R
Lệnh sẽ thực hiện trừ số thực 32 bit nằm trong ACC2 cho số thực 32 bit ACC1, kết quả
đựơc ghi lại vào ACC1, nội dung ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38 -1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh nhân: *R
Lệnh sẽ thực hiện nhân hai số thực 32 bit trong ACC2 và ACC1, kết quả là một số thưc 32
bit được lưu lại vào ACC1, nội dung của ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38 -1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh chia: /R
Lệnh thực hiện phép chia số thực 32 bit trong ACC2 cho số nguyên 32 bit trong ACC1, kết
quả là một số nguyên 32 bit được lưu vào ACC1. Nội dung của thanh ghi ACC2 không bị thay đổi.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38-1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh lấy giá trị tuyệt đối: ABS

21
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

ABS
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh không có toán hạng, lệnh sẽ lấy giá tri tuyện đối của số thực nằm trong ACC1 và kết
quả được ghi lại vào ACC1. Lệnh không làm thay đổi nội dung của thanh ghi trạng thái.

- Lệnh tính Sin: SIN


SIN
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh tính Sin của số thực nằm trong ACC1, kết qua lưu lại vào ACC1.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38-1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh tính Cos: COS
COS
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh tính COS của số thực nằm trong ACC1, kết qua lưu lại vào ACC1.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38  -1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh tính Tg:TAN
TAN
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh tính Tg của số thực nằm trong ACC1, kết qua lưu lại vào ACC1.
Nếu kết quả phép tính nằm trong khoảng -3,402823E+38-1,175495E-38 hoặc bằng 0 hoặc
nằm trong khoảng 1,175495E-38  3,402823E+38 thì OV=0, ngược lại thì cả OV và OS đều bằng 1.
- Lệnh tính ARSIN: ASIN
ASIN
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

22
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Lệnh tính Arsin của số thực nằm trong ACC1, số thực này phải nằm trong khoảng (-1,1), kết
quả là số thực nằm trong khoảng -π/2π/2 kết qua lưu lại vào ACC1.
- Lệnh tính ARCOS: ACOS
ACOS
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng


Lệnh tính Arcos của số thực nằm trong ACC1, số thực này phải nằm trong khoảng (-1,1), kết
quả là số thực nằm trong khoảng 0π kết qua lưu lại vào ACC1.
- Lệnh tính ARTG: ATAN
ATAN
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh tính Artg của số thực nằm trong ACC1, số thực này phải nằm trong khoảng (-1,1), kết
quả là số thực nằm trong khoảng -π/2π/2 kết qua lưu lại vào ACC1.
- Tính bình phương: SQR
SQR
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh không có toán hạng, lệnh sẽ tính giá tri bình phương của số thực nằm trong ACC1, kết
quả là một số không âm được ghi lại vào ACC1. Lệnh không làm thay đổi nội dung của thanh ghi
ACC2.
- Tính căn bậc hai: SQRT
SQRT
EN ENO

To¸ n h¹ ng IN1 OUT To¸ n h¹ ng

Lệnh không có toán hạng, lệnh sẽ lấy căn bậc hai của số thực nằm trong ACC1, số thực này
phải là số không âm, kết quả là một số không âm được ghi lại vào ACC1. Lệnh không làm thay đổi
nội dung của thanh ghi trạng thái.
- Lệnh đảo dấu: NERG
Lệnh không có toán hạng, có tác dụng đổi dấu số thực dấu phảy động 32 bit tronng ACC1,
kết quả cất trong ACC1. Nội dung của thanh ghi ACC2 không bị thay đổi, lệnh cũng không làm thay
đổi nội dụng của thanh ghi trạng thái.

23
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
5.2.2 Bộ định thời (Timer)

I. Nguyên tắc làm việc của Timer

- Bộ định thời là bộ tạo thời gian trễ t mông muốn giữa tín hiệu đầu vào và tín hiệu đầu ra.
- S7 300 có 5 loại Timer khác nhau, nhưng tất cả đều được tác động khi c ó tín hiệu tích cực
ở đầu vào, thời điểm tín hiệu đầu vào được chuyển từ 0 lên 1 (thời điểm kích).
- Khoảng thời gian trễ được khai báo bằng một giá trị 16 bit bao gồm hai phần
+ Độ phân giải của Timer bao gồm: 10ms, 100ms, 1s, 10s
+ Một số nguyên (BCD) có giá trị trong khoảng 0999. Đây là giá trị đặt trước của Timer
(PV).

Khi đó thời gian trễ mong muốn sẽ là :


t = độ phân giải x PV
- Timer có hai giá trị đặc trưng cho sự làm việc của mình đó là thanh ghi T_Word và T_bit.
+ Thanh ghi T_Word sẽ lưu giá trị PV của Timer tại thời điểm có tín hiệu kích, giá trị này
sẽ được đếm ngược về 0, khi đó Timer sẽ tạo được thời gian trễ mông muốn.
+ Bit T_Bit : là bit sẽ được SET khi Timer hoạt động, tuy nhiên thời điểm SET sẽ phụ
thuộc vào lạoi Timer sử dụng.
+ Cả T_Word và T_Bit đều được ký hiệu là Tx (x là chỉ số của Timer), tuy nhiên hệ điều
hành sẽ tự phân biệt nó là T_Word hay T_Bit tuỳ thuộc vào lện gọi Tx.
- Khi Timer bị Reset cả CV và T_bit đều được đưa về 0.

II. Khai báo sử dụng Timer

Các bước khai báo sử dụngTimer:


- Khai báo tín hiệu Enable nếu muốn sử dụng tín hiệu kích chủ động.
- Khai báo tín hiệu đầu vào.
- Khai báo thời gian trễ mong muốn.
- Khai báo loại Timer được sử dụng (SD, SS, SP, SE, SF).
- Khai báo tín hiệu xoá nếu muốn xoá Timer một cách chủ động.
Trong 5 bước trên các bước 2,3,4 là bắt buộc.
a. Khai báo tín hiệu Enable
Cú pháp: A <địa chỉ bit>
FR <tên timer>
b. Khai báo tín hiệu đầu vào
Cú pháp: A <địa chỉ bit>
c. Khai báo thời gian trễ mong muốn
- Khai báo thời gian dạng thời gian thực: S5T# giờH_phutM_giâyS_ minigiây MS
- Khai báo thời gian dạng số nguyên 16 bit, cấu trúc của 16 bit sẽ là:

15 14 13 12 11 0
Hai bit 15,14 không sử dụng

24
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Tác dụng của hai bit 13, 12:
Bit 13 Bit 12 Độ phân giải
0 0 10ms
0 1 100ms
1 0 1s
1 1 10s
Các bit từ 011 là số nguyên dạng BCD ghi giá trị đặt trước PV
VD: Khai báo một timer có thời gian trễ là 120s
A I0.0 // Khai báo tín hiệu kích chủ động
FR T1
A I0.1 // Khai báo tín hiệu đầu vào
L S5T#2m12s // Khai báo thời gian trễ mong muốn
//Hoặc khai báo dạng số nguyên 16 bit
A I0.0 // Khai báo tín hiệu kích chủ động
FR T1
A I0.1 // Khai báo tín hiệu đầu vào
L W#16#2132 // Khai báo thời gian trễ mong muốn (1s x 132)
d. Khai báo loại Timer
Các loại Timer trong S7 300
- SD: Trễ theo sườn lên không có nhớ.
- SS : Trễ theo sườn lên có nhớ.
- SP : Tạo xung không có nhớ.
- SE : Tạo xung có nhớ.
- SF : Trễ theo sườn xuống.

Khai báo từng Timer:


 Timer trễ theo sườn lên không có nhớ : SD
S_ODT
EN Q

WORD TV BI
BIT R BCD
Cú pháp: SD <tên Timer>
Giá trị PV sẽ đựơc nạp vào T_word khi có sườn lên của tín hiệ đầu vào hoặc có sườn lên của
tín hiệu kích chủ động (trong khi tín hiệu đầu vào đang ở mức 1).
Khoảng thời gian trễ chính là khoảng thời gian tính từ khi gặp sườn lên của tín hiệu đầu vào
vá sườn lên của T_bit.
Là loại Timer không có nhớ do vậy trong thời gian tạo trễ (PV > 0) nếu tín hiệu đầu vào về 0
thì thời gian PV=0, quá trình trễ kết thúc, T_bit =0.
Vi dụ:
A I2.0 // Tín hiệu kích chủ động
FR T1
A I2.1 // Tín hiệu đầu vào
L S5T#12S30MS // Đặt thời gian trễ
SD T1 // Khai báo Timer SD
25
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
A I2.2 // Tín hiệu Reset
R T1
A T1 // Đọc giá trị T_bit
= Q4.0 // Gán ra đầu ra Q4.0
L T1 // Đọc T_word
T MW0 // Ghi vào MW0

Với ví dụ trên ta sẽ có giản đồ xung của đầu ra ứng với các tín hiệu đầu vào như sau:

Hình 20 – Giản đồ xung đầu ra


 Timer trễ theo sườn lên có nhớ: SS
S_ODTS
EN Q

WORD TV BI
BIT R BCD
Cú pháp: SS <tên Timer>
Cũng như loại Timer tạo trễ không có nhớ, khoảng thời gian trễ của Timer được tính từ khi
có sườn lên của tín hiệu đầu vào cho đến khi có sườn lên của T_bit. T_bit sẽ được lên 1 khi T_word
giảm từ giá trị PV về 0.
Khác với Timer tạo trễ không có nhớ, đối với Timer tạo trễ có nhớ thì trong quá trình tạo trễ
thời gian nếu có sự thay đổi tín hiệu đầu vào đầu ra và T_word sẽ thay đổi như sau:
Gặp sườn xuống của tín hiệu đầu vào thì Timer vẫn hoạt động và giá trị thời gian trong
T_word vẫn đựơc chạy lùi về 0, khi đó T_bit=1, kết thúc quá trình tạo trễ.
Vi dụ:
A I2.0 // Tín hiệu kích chủ động
FR T1
A I2.1 // Tín hiệu đầu vào
L S5T#12S30MS // Đặt thời gian trễ
SS T1 // Khai báo Timer thời gian có nhớ
A I2.2 // Tín hiệu Reset
R T1
A T1 // Đọc giá trị T_bit
= Q4.0 // Gán ra đầu ra Q4.0
26
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
L T1 // Đọc T_word
T MW0 // Ghi vào MW0

Giản đồ xung tín hiệ đầu vào ra của loại Timer này sẽ là:

Hình 21 – Giản đồ xung đầu ra


 Timer tạo xung không có nhớ: SP
S_PULSE
EN Q

WORD TV BI
BIT R BCD
Cú pháp: SP <tên timer>
Thời gian trễ được tính từ khi có sườn lên của tín hiệu đầu vào (hoặc sườn lên của tín hiệu
kích chủ động khi tín hiệ đầu vào đang ở mức 1). Khi đó giá tri PV sẽ được gán vào T_word, và giá
trị này bắt đầu được giảm cho đến khi về 0, lúc đó kết thúc thời gian tạo xung. Khi T_word ≠ 0 thì
T_bit=1 còn các trường hợp khác thì T_bit=0.
Chưa hết thời gian tạo trễ mà đầu vào trở về 0 thì cả T_word và T_bit đều về 0.
Giản đồ xung của Timer(với vi dụ tương tự ở trên):

Hình 22 – Giản đồ xung đầu ra

27
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

 Timer tạo xung có nhớ: SE


S_PEXT
EN Q

WORD TV BI
BIT R BCD
Cú pháp: SE <tên Timer>
Thời gian trễ được tính từ khi có sườn lên của tín hiệu đầu vào (hoặc sườn lên của tín hiệu
kích chủ động khi tín hiệ đầu vào đang ở mức 1). Khi đó giá tri PV sẽ được gán vào T_word, và giá
trị này bắt đầu được giảm cho đến khi về 0, lúc đó kết thúc thời gian tạo xung. Khi T_word ≠ 0 thì
T_bit=1 còn các trường hợp khác thì T_bit=0.
Khác với Timer tạo xung không có nhớ khi chưa hết thời gian tạo trễ mà đầu vào trở về 0 thì
Timer vẫn hoạt động tức T_word vẫn được đếm lùi về 0 và T_bit=1.
Giản đồ xung của Timer(với vi dụ tương tự ở trên):

Hình 23 – Giản đồ xung đầu ra


 Timer trễ theo sườn xuống: SF
S_OFFDT
EN Q

WORD TV BI
BIT R BCD
Cú pháp: SF
Thời gian trễ được tính từ khi có sườn xuống của tín hiệu đầu vào, tức là ở thời điểm xuất
hiện sườn xuống của tín hiệu đầu vào, giá trị PV được chuyển vào trong T_word.
Trong khoảng thời gian giữa sườn lên của tín hiệu vào hoặc T_word ≠ 0 thì T_bit có giá trị
bằng 1. Ngoài khoảng đó T_bit có giá trị 0.

28
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Vẫn ví dụ trên ứng với Timer trễ theo sườn xuống ta có giản đồ xung:

Hình 24 – Giản đồ xung đầu ra


e. Khai báo tín hiệu xoá
Cú pháp: A <địa chỉ bit>
R <tên Timer>
Khi gặp sườn lên của tín hiệu Reset toàn bộ Timer bị xoá về 0.

5.2.3 Bộ đếm (Counter)

A. Nguyên tắc làm việc


- Bộ đếm có chức năng đếm sườn xung của tín hiệu đầu vào. Trong S7 300 có tất cả 256 bộ
đếm được ký hiệ là Cx (với x ? (0255) ), và tất cả chúng đều có khả năng đếm thuận và đếm
nghịch, điều này phụ thuộc vào việc khai báo của người sử dụng.
- Giá trị tức thời của bộ đếm sẽ được lưu trong thanh ghi 16 bit (C_word) gọi là CV (Current
Value). CV là một số không âm, vì vậy khi CV=0 thì bộ đếm không đếm lùi nữa.
- Bộ đếm dùng một bit đặc biệt gọi là C_bit để báo trạng thái của thanh ghi C_word ra
ngoài. Cụ thể: Khi C_word ≠ 0 thì C_bit = 1, và khi C_word = 0 thì C_bit = 0.
- Cả C_word và C_bit đều được ký hiệu là Cx tuy nhiên hệ thống sẽ phân biệt chúng bằng
lệnh đi kèm với chúng.
- Giá trị đặt trước của Timer chỉ được chuyển vào C_word khi xuất hiện sườn lên của tín
hiệu đặt
B. Khai báo sử dụng
Các bước khai báo sử dụng Counter:
- Khai báo tín hiệu Enable nếu muốn sử dụng tín hiệu kích chủ động
- Khai báo tín hiệu đầu vào đếm tiến CU (hoặc đầu vào đếm lùi CD hoặc cả hai).
- Khai báo tín hiệu đặt và giá trị đặt trước.
- Khai báo tín hiệu xoá.
Trong đó bứơc 1 và 4 có thể bỏ qua nếu không cần
a. Khai báo tín hiệu kích chủ động Enable
Cú pháp: A <địa chỉ bit>
FR <Tên Counter>
Khi có sườn lên của “địa chỉ bit” và đầu vào đếm đang ở mức 1 thì bộ đếm sẽ thực hiện đếm.
b. Khai báo tín hiệu đếm

29
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Cú pháp: A <địa chỉ bit>
CU <tên Counter> // dùng cho đếm tiến

A <địa chỉ bit>
CD <Tên Counter> // dùng cho đếm lùi
Khi gặp sườn lên của “địa chỉ bit” thì bộ đếm sẽ thực hiện đếm tiến/lùi phụ thuộc vào việc
khai báo chúng là tín hiệu đếm tiến hay tín hiệu đếm lùi. Mỗi lần đếm giá trị CV của bộ đếm được
tăng/giảm 1 đơn vị.
c. Khai báo tín hiệu đặt (set) giá trị đặt trước (PV)
Cú pháp: A <địa chỉ bit> // Tín hiệu Set
L C#<hằng số> // giá trị đặt trước
S <tên Counter> // Cx
Khi có sườn lên của “địa chỉ bit” thì giá trị của “hằng số” sẽ được chuyển vào CV của bộ
đếm Cx.
d. Khai báo tín hiệu Reset
Cú pháp: A <địa chỉ bit>
R <tên Counter>
Khi gặp sườn lên của “địa chỉ bit” thì toàn bộ Counter bị xoá về 0 (cả CV và C_bit đều bị
xoá về 0).
Vi dụ:
A I0.0
FR C0
A I0.1
A I0.2
L C#3
S C0
A I0.3
R C0
Giá trị của CV ứng với các tác động đầu ra ở vị dụ trên được thể hiện dưới giản đồ:
Enable

Input
Set

Reset

C_word

30
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
5.2.4 Hệ lệnh điều khiển chương trình

A. Lệnh kết thúc chương trình


- Lệnh kết thúc vô điều kiện
Lênh không có toán hạng, thực hiện kết thúc vô điều kiện chương trình trong một khối.
- Lệnh kết thúc có điều kiện
Lệnh không có toán hạng, nhằm kết thúc chương trình trong khối nếu RLO có giá trị 1. Lệnh
này có tác dụng cho phép hay không cho phép thực hiện một đoạn chương trình khi có một sự kiện
xảy ra.
B. Lệnh rẽ nhánh
Hệ lệnh rẽ nhánh có tác dụng bỏ qua một đoạn chương trình để nhảy đến một đoạn chương
trình khác được đánh dấu bằng nhãn.
Nhãn phải nằm trong cùng một chương trình, lệnh nhảy không cho phép thực hiện một lệnh
nhảy từ khối này sang khối khác.
Nhãn là một dãy với chiều dài nhiều nhất là 4 ký tự và phải được bắt đầu bằng ký tự.
a. Rẽ nhánh khi RLO=1
Cú pháp: JC <nhãn>
Lệnh sẽ được nhảy đến vị trí được đánh dấu bởi “nhãn” khi kiểm tra thấy điều kiện RLO=1.
Ví dụ:
L 0
T MW0 // Gán 0 vào MW0
lbl1: L MW0 // Nạp giá trị của MW0 vào ACC1
A I0.0 // Phát hiện sườn lên của I0.0 thì tăng giá trị lên 1
FP M0.0
L 1
+I
T MW0 // gán trở lại MWO
L 1000
<>I // Kiểm tra xem đã bằng 1000 chưa
JC lbl1 // Nếu chưa bằng thì tiếp tục nhảy đến “lbl1” để tăng.
= Q0.0 // Nếu bằng thì bật Q0.0
b. Rẽ nhánh khi RLO=0
Cú pháp: JNC <nhãn>
Lệnh thực hiện hoàn toàn giống với lệnh JC tuy nhiên lệnh chỉ tác động khi RLO=0.
c. Lệnh rẽ nhánh khi CC0=0 và CC1=1.
Cú pháp: JM <nhãn>
Lệnh thức hiện khi phép tính trước đó có kết quả âm hay giá trị trong ACC1 là một số âm.
d. Lệnh rẽ nhánh khi CC0=1 và CC1=0.
Cú pháp: JP <nhãn>
Lệnh thức hiện khi phép tính trước đó có kết quả dương hay giá trị trong ACC1 là một số
dương.
e. Lệnh rẽ nhánh khi CC0 = CC1= 0.
Cú pháp: JZ <nhãn>
Lệnh sẽ nhảy đến vị trí được chỉ ra trong nhãn nếu kết quả của phép tính trước đó bằng 0.
f. Lệnh rẽ nhánh khi CC0 ≠ CC1.
Cú pháp: JMZ <nhãn>
31
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Lệnh sẽ nhảy đến vị trí được chỉ ra trong nhãn nếu kết quả của phép tính trước đó khác 0.
g. Lệnh nhảy vô điều kiện
Cú pháp: JU <nhãn>
Lệnh nhảy được thực hiện một các vô điều kiện, khi gặp lệnh này ngay lập tức chương trình
được nhảy đến vị trí được chỉ ra trong lệnh mà không phụ thuộc vào trạng thái của bất kỳ bit nào.

C. Lệnh xoay vòng (Loop)


Cú pháp: Loop <nhãn>
Khi gặp lệnh Loop CPU sẽ tự giảm nội dung của từ thấp trong thanh ghi ACC1 đi một đơn
vị và kiểm tra kết quả đó có bằng 0 hay không. Nếu kết quả 0 thì CPU sẽ thực hiện lệnh đến vị trí
được đánh dấu bởi nhãn, ngược lại thì CPU thực hiện lệnh kế tiếp.
Lệnh xoay vòng này có thể làm thành lệnh For như trong ngôn ngữ C bằng cách đặt nhãn ở
phía trước lệnh Loop, khi đó lệnh sẽ thực hiện đoạn chương trình giữa “nhãn” và lệnh Loop cho đến
khi giá trị trong từ thấp của ACC1 về 0.
Vi dụ: Tính n! bằng lệnh Loop
L 1
T MD 4 // gán 1 cho biến nhớ kết quả
L 10 // 10!
next: T MW 0 // Tiếp tục vòng sau nếu ACC1 ≠ 0
L MD 4 // Nạp MD 4 vào ACC1
*D // Thưc hiện phép nhân
T MD 4 // Gán kết qủa vào MD 4
L MW 0 // Lấy giá trị của MW 0 vào ACC1 để thực hiện giảm đi
LOOP next // 1 đơn vị khi gặp lệnh LOOP

Khi đó kết quả của phép tính sẽ được lưu trong MD 4


D. Lệnh rẽ nhánh theo danh mục
Cú pháp: JL <nhãn>
Hệ lệnh này thực hiện tương tự như lệnh Case trong ngôn ngữ C. Lệnh sẽ thực hiện rẽ nhánh
đến các vị trí được đánh dấu và tương ứng với giá trị trong ACC1.
Danh mục phải được sắp xếp theo thứ tự từ thấp đến cao theo nội dung của ACC1.
Số danh mục rẽ nhánh nhiều nhất là 255.
Cấu trúc của lệnh rẽ nhánh có dạng:
L MB0 //Nạp giá trị vào ACC1 để chỉ số nhánh rẽ
JL List //Jump destination if ACCU 1-L-L > 3.
JU SEG0 //Nhảy đến SEG0 nếu ACC1=0
JU SEG1 // Nhảy đến SEG1nếu ACC1=1
JU COMM // Nhảy đến COMM nếu ACC1=2
JU SEG3 // Nhảy đến SEG0 nếu ACC1 = 3.
LSTX: JU COMM
SEG0: * //đoạn chương trình thực hiện
*
JU COMM
SEG1: * //đoạn chương trình thực hiện
*
JU COMM
32
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
SEG3: * //đoạn chương trình thực hiện
*
JU COMM
COMM: *
*
Ví dụ:
NETWORK 1
// Khởi tạo Timer để thực hiện lệnh rẽ nhánh ứng với giá trị của Timer
A I 0.1
CU C 0
A I 0.3
R C 0
NETWORK 2
// Chương trình sử dụng hệ lệnh rẽ nhánh
L C 0 // Rẽ nhánh ứng với giá trị đếm của C0
JL list
JU _001 // C0=0
JU _002 // C0=1
JU _003 // C0=2
JU _004 // C0=3
JU _005 // C0=4
JU _006 // C0=5
list: JU comm
_001: T MW 0
_002: T MW 2
_003: T MW 4
_004: T MW 6
_005: T MW 8
_006: T MW 10
comm: A I 0.0
S Q 0.0

5.2.5 Các khối, hàm trong S7 300

A. Các khối OB đặc biệt


Khối OB1 là khối chương trình chính thực hiện chương trình một cách tuần tự với thời gian
của vòng quét. Các khối OB khác chỉ hoạt động khi có các tín hiệu ngắt tương ứng, nói cách khác
các khối OB này chính là các khối xử lý ngắt.
Để thêm vào các khối OB: từ Menu chính chọn InsertS7 Block Organization Block.
Hoặc click chuột phải vào BlockInsert New Object Organization.
Một số khối OB đặc biệt (hay dùng):
a. Khối OB20 (Khối tạo thời gian trễ)
Chương trình trong khối OB20 sẽ được thực hiện sau một thời gian trễ đặt trước tính từ khi
gọi chương trình SFC 32 (Systerm Function). SFC 32 là một chương trình con của hệ thống cung
cấp, cho phép ta đặt thời gian trễ cho một tín hiệu ngắt thời gian.
Ví dụ:
33
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Do khối SFC là khối khởi tạo ngắt cho ngắt thời gian nên nếu cần thực hiện ngắt này nhiều
lần ta sẽ gọi khối với điều kiện nào đó, còn nếu chỉ gọi một lần khi khởi tạo thì ta chỉ cần đặt khối
này vào khối OB 100:
Chương trình trong khối OB 100:
CALL "SRT_DINT" // Tên hình thức của khối SFC 32
OB_NR := // Số của khối OB sẽ được gọi khi
// ngắt thời gian xảy ra
DTIME := // Đặt thời gian ngắt
SIGN := // Đăng ký mức ưu tiên
RET_VAL:= // vùng nhớ sẽ lưu giá trị báo lỗi của ngắt
b. Khối OB 35 (Ngắt theo chu kỳ máy)
Chương trình trong khối OB 35 sẽ đựơc thực hiện một cách đều đặn trong một khoảng thời
gian. Khoảng thời gian mặc định của khối là 100ms, tuy nhiên ta có thể thay đổi khoảng thời gian
này bằng cách sử dụng phần mềm Step 7 (xem phụ lục 2).
Nếu muốn tăng thời gian thực hiện tuần tự một đoạn chương trình nào đó mà vẫn sử dụng
khố OB 35 ta có thể nhân thời gian trong khối với một số nguyên bất kỳ (xem ví dụ).
Ví dụ: tạo đèn nháp nháy chu kỳ nháy 2s (sử dụng thời gian mặc định cho khối OB 35 là 100ms) sử
dụng OB 35
L "Number_Scan" // Biến đếm số lần vào OB 35
L 20
>=I // Nếu lớn hơn hoặc bằng 20
JNB _001 // Nếu nhỏ hơn 20
L 0 // thì Number_Scan=0
T "Number_Scan"
_001: L "Number_Scan" // Nếu nhỏ hơn 20 thì tăng lên 1
L 1
+I
T "Number_Scan"
L "Number_Scan"
L 10 // Nếu số lần vào nhỏ hơn 10
<=I
= Q 124.0 // Bật Q124.0
c. Khối OB 40 (Ngắt cứng)
Chương trình bên trong khối sẽ được thực hiện khi xuất hiện ngắt cứng bên ngoài, chủ yếu là
ngắt cứng của các cổng vào ra số onboard đặc biệt. ( xem phụ lục 3 )
d. Khối OB 100 (Khối đặt thông số khởi động)
Chương trình trong khối OB 100 được thực hiện một lần khi CPU chuyển từ t rạng thái Stop
sang trạng thái Start.
B. Các chương trình con (Funtion Block) và cách truy nhập
Giống như bất kỳ một chương trình con trong các ngôn ngữ khác, chương trình con trong S7
300 cũng bao gồm các loại biến: biến hỡnh thức và biến tạm
Chúng được tạo ra để làm những công việc giống nhau tại những vị trí khác nhau, đồng thời sử dụng
các khối FCx cũng tạo ra sự rõ ràng, rành mạch cho chương trình, điều này tạo điều kiện cho người
lập trình dễ dàng xử lý và phân công công việc.
- Các biến hình thức có nhiệm vụ trao đổi dữ liệu với khối mẹ:
+ Các biến dạng IN có nhiệm vụ nhận dữ liệu được truyền về từ khối mẹ.
34
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
+ Các biến dạng OUT có nhiệm vụ đưa dữ liệu đã được tính toán trong FCx ra khối chương
trình mẹ.
+ Các biến dạng IN_OUT là dạng biến vừa có khả năng nhận vừa có khả năng truyền dữ
liệu với khối mẹ.
- Các biến tạm (TEMP) là các biến chỉ có tác dụng khi FCx đang hoạt đdng, các biến này do
nguời sử dụng tự định nghĩa và sử dụng trong FCx để thực hiện thuật toán, chúng chỉ được cấp ô
nhớ khi FCx con đang hoạt động, ngay sau khi FCx kết thúc thì các ô nhớ này lập tức bị thu hồi, vì
vậy dữ liệu trong chúng bị mất
- Việc khai báo các biến thuộc các dạng IN, OUT, IN_OUT hay TEMP đồng nghĩa với việc
phải khai báo kiểu dữ liệu cho chúng.
- Gọi khối FC
Cú pháp: Call FCx
Với x là chỉ số của khối FC cần gọi
- Truyền tham trị cho khối
Sau khi có lệnh gọi khối FCx thì tuỳ vào khối FC mà ta có một dãy các tham số hình thức
cần điền vào (xem ví dụ)
- Ví dụ: Tính tải trọng trung bình của 4 xe ô tô cùng xuất hiện trên cầu
Khai báo các biến trong chương trình:

Hình 25 – Bảng khai báo biến

Chương trình trong khối FC


L 0
T #mTemp
L #Xe_so_1
L #mTemp
+I
L #Xe_so_2
L #mTemp
+I
L #Xe_so_3
L #mTemp

35
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
+I
L #Xe_so_4
L #mTemp
+I
L #mTemp
L 4
/I
T #Trung_binh

Chương trình trong khối OB1


A "Start"
JNB _001
CALL FC 1
Xe_so_1 :=MW 0
Xe_so_2 :=MW 2
Xe_so_3 :=MW 4
Xe_so_4 :=MW 6
Trung_binh:=MW100
JNB NOP 0
Sau mỗi lần gọi chương trình MW100 sẽ chứa giá trị trung bình của bốn xe qua cầu tại thời điểm đó.
Lưu ý: Việc truyền giá trị vào cho các tham trị phải đúng với kiểu dữ liệu đã khai báo. Kiểu dữ liệu
của các biến tham trị có thể là: BOOL, CHAR, INT, DINT, TIME, DATE, S5TIME.
C. Các khối FB và thủ tục truyền tham trị
- Nhược điểm của khối FC là dữ liệu của các biến TEMP sẽ bị mất ngay khi chương trình
trong khối được thực hiện xong, điều này bắt buộc các khối FC phải có sử dụng biến TEMP phải
được thực hiện xong trong một vòng quét vì vậy làm giới hạn miền sử dụng của chúng.
- Khắc phục được nhược điểm đó, FB đã cung cấp cho người sử dụng khả năng lưu giữ các
biến tạm cho vòng quét sau. Loại biến tạm được lưu giá trị này được gọi là biến STAT (biến tĩnh).
- Nguyên tắc truy nhập dữ liệu của khôi FB cũng hoàn toàn giống với khối FC, tuy nhiên
trong FB luôn có khối dữ liệu DB (Data Block) đi kèm, khối dữ liệu đi kèm gọi là Instance Block.
Khối dữ liệu đi kèm có tác dụng lưu dữ dữ liệu của các biến STAT.
- Thủ tục truyền tham trị trong khố FB cũng hoàn toàn giống như trong khối FC.
- Cú pháp: Call FBx, DBy. Nếu khối Dby chưa được tạo thì S7 sẽ hỏi xem người sử
dụng có muốn tạo khối dữ liệu này không. Sau khi tạo xong khối Dby sẽ có cấu trúc của local block
của FBx
Ví dụ:
CALL FB 1 , DB2
Dau_vao : =
Dau_ra : =

5.3 Phần mềm Simulation

Siemens cung cấp phần mềm Simulation cho phép người sử dụng mô phỏng các thuật toán
của mình mà không cần có PLC.
Đây thực sự là một công cụ hữu ích cho những người lập trình PLC, không những thể Simulation
còn cho phép ta kết nối với WinCC.
36
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
A. Phần mềm mô phỏng Simulation
- Sau khi cài đặt xong phần mềm mô phỏng Simulation ta sẽ thấy biểu tượng của phần mềm
được sáng lên trên thanh công cụ của màn hình chính S7 300.
- Để sử dụng mô phỏng ta có thể nhấp chuột vào biểu tượng này hoặc từ menu chính chọn
OptionSimulate Modules, khi đó màn hình của Simulation sẽ hiện ra:

Hình 26 – Giao diện Simulation

- Để hiển thị các đầu vào, đầu ra, Timer, Counter ta nhấn chuột trực tiếp lên biểu tượng của
chúng trên thanh công cụ, hoặc chọn từ menu chính: Insert chọn vùng nhớ cần hiển thị.
- Sau khi chọn xong các cửa sổ của các vùng nhớ cần thiết, nếu muốn thay đổi vùng nhớ ta
chỉ cần đánh địa chỉ của vùng nhớ đó vào các cửa sổ tương ứng. Cụ thể:
+ Nếu muốn sử dụng Timer hay Counter số bao nhiêu ta chỉ cần thay đổi chỉ số của Timer (x
nằm trong khoảng 0 đến 255).
+ Để thay đổi đầu vào ra số ta cũng chỉ phải thay đổi địa chỉ của các Byte đầu vào ra.
+ Nếu sử dụng các đầu vào ra tương tự ta cần phải thay đổi cả phần chữ của địa chỉ. Ví dụ ta
cần mô phỏng đầu vào tương tự tại cổng PIW10 thì ta phải đánh toàn bộ PIW10 tại đầu ra.

Hình 27 – Cửa sổ các vùng nhớ

37
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát

Hình 28 – Cửa sổ các vùng nhớ


- Điều khiển hoạt động của chương trình mô phỏng:
Ta có thể sử dụng trực tiếp nhờ bảng hoặc từ Menu chính chọn: Execute Key Swith Positon rồi
chọn chế độ cần thiết
+ Trên bảng điều khiển ta có thể điều khiển được các chế độ của PLC nhứ trong thực tế.
+ Các chế độ: Stop, Run, Run-P (chế độ cho phép vừa chạy vừa thay đổi chương trình và
thông số của chương trình). Các chế độ hoạt động và lỗi đều được hiển thị bằng đèn ở bên cạnh.
+ Để xoá và khởi động lại hệ thống ta nhấn MRES.

- Trong chế độ hoạt động (RUN) ta có thể cho chương trình hoạt động ở chế độ quét từng
vòng hoặc liên tục: Execute Scan Mode.
B. Thực hiện mô phỏng
Sau khi viết xong các chương trình trong các khối ta tiến hành mô phỏng.
- Bật chương trình Simulation.
- Download chương trình từ S7 300 sang Simulation: từ màn hình chính của S7 ta chọn
Block sau đó nhân Download để download toàn bộ các khối chương trình trong S7.
- Thực hiện mô phỏng nhờ Simulation.
+ Để thực hiện mô phỏng các đẩu vào ra số ta chỉ cần tích vào vị trí của các bit tương ứng.
+ Để mô phỏng đầu vào ra tương tự ta đánh toàn bộ địa chỉ của đầu vào ra đó vào bảng rồi
tiến hành mô phỏng bằng cách điền giá trị của cổng vào bảng.

38
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300
Công Ty Cổ Phần Tự Động Hóa Tân Phát
Xin cảm ơn sự quan tâm của quý khách hàng về sản phẩm của chúng tôi, rất mong nhận
được góp ý của quý khách hàng về tài liệu, sản phẩm để chúng tôi nâng cao hiệu quả khai thác, sử
dụng thiết bị.
Người biên soạn tài liệu: ………………..
Địa chỉ email: doc.info@tpa.com.vn
Số điện thoại: : 04.3685.7776.

39
D0.00.A0608 MODULE THỰC HÀNH PLC S7-300

You might also like