Professional Documents
Culture Documents
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
TP-TT31-BM05/Lsđ:00
Công Ty Cổ Phần Tự Động Hóa Tân Phát
RS485
POWER SUPPLY
(24VDC)
V+ GND AO DO0-D01
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
RS485 7
2 ON
DIGITAL I/O PORT
DI0-DI1
6
F/2A
1 POWER SUPPLY
(24VDC)
V+ GND AO DO0-D01
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.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.
- Để 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.
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
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
- Đị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).
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
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
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
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
- 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à ViewLAD để 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:
+ 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.
- 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.
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.
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.
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 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
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.
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:
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.
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
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
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.
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
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 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
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
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
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
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
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
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)
- 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 0999. Đây là giá trị đặt trước của Timer
(PV).
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ừ 011 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.
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:
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à:
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):
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
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):
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:
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
Và
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
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
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
OptionSimulate Modules, khi đó màn hình của Simulation sẽ hiện ra:
- Để 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.
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
- 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