Tải bản đầy đủ (.doc) (30 trang)

bài giảng lập trình cho PLC S7200

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

1. Các lệnh cơ bản
Ví dụ: Hãy viết chương trình theo yêu cầu sau:
Bài 1: Hệ thống gồm hai công tắc và 1 bóng đèn chỉ cần 1 trong hai công tắc ON thì
đèn sẽ sáng.
Input

: công tắc 1: I0.0

Output

công tắc 2: I0.1
: đèn: Q0.0

Bài 2: Hệ thống 2 nút nhấn và 1 motor, 1 nút quy định Start và 1 nút Stop. Khi Start
được nhấn thì motor chạy, Start buông ra motor vẫn chạy và chạy cho đến khi Stop
được nhấn thì motor dừng.

2. Timer: Có 3 loại Timer : TON, TOF, TONR.
TON:
Delay On.
TOF:
Delay Off.
TONR:
Delay On có nhớ
2.1 TON:
Txxx: số hiệu Timer.
IN: cho phép Timer( BOOL).
PT: giá trị đặt cho timer (VW, IW, QW, MW,
SW,
SMW, AIW, T, C, AC, Constant…) .
Trong S7-200 có 256 Timer, ký hiệu từ T0-T255


Các số hiệu Timer trong S7-200 như sau:
Timer Type

Resolution

Maximum Value

Timer Number

TONR

1 ms
10 ms
100 ms
1 ms
10 ms
100 ms

32.767 s
327.67 s
3276.7 s
32.767 s
327.67 s
3276.7 s

T0, T64
T1-T4, T65-T68
T5-T31, T69-T95
T32, T96
T33-T36, T97-T100

T37-T63, T101-T255

TON, TOF


Ví dụ: Sử dụng lệnh Delay ON để tạo thời gian trễ trong 1s.

Khi ngõ vào I0.0 =1 Timer T37 được kích, nếu sau 10x100ms =1s I0.0 vẫn giữ trạng
thái thì Bit T37 sẽ lên 1 ( Khi đó Q0.0 lên 1 ).
Nếu I0.0 =1 không đủ thời gian 1s thì bit T37 sẽ không lên 1.

2.2 TOF:
IN: BOOL: cho phép Timer.
PT: Int: giá trị đặt cho timer(VW, IW, QW, MW,
SW, SMW, LW, AIW, T, C, AC, Constant, *VD, *LD,
*AC) Txxx: số hiệu Timer.


Ví dụ: Sử dụng lệnh Delay OFF để tạo thời gian trễ .

Khi Ngõ vào I0.0 = 1 thì bit T33 lên 1 ( Ngõ ra Q0.0 lên 1)
Khi I0.0 xuống 0, thời gian Timer bắt đầu tính, đủ thời gian 1s = 100x10ms thì bit
T33 sẽ tắt (Q0.0 tắt)
Nếu I0.0 xuống 0 trong khoảng thời gian chưa đủ 1s đã lên 1 lại thì bit T33 vẫn giữ
nguyên trạng thái
Giản đồ thời gian:


2.3 TONR:
IN: BOOL: cho phép Timer.

PT: Int: giá trị đặt cho timer(VW, IW, QW, MW,
SW, SMW, LW, AIW, T, C, AC, Constant, *VD, *LD,
*AC) Txxx: số hiệu Timer.
Ví dụ:Dùng lệnh Delay ON có duy trì để tạo thời gian trễ.

Ngõ vào I0.0 có tác dụng kích thời gian cho Timer, khi ngõ I0.0 =1 thời gian Timer
được tính, khi I0.0=0 thời gian không bị Reset về 0. Khi đủ thời gian thì Bit T1 sẽ
lên1. Thời gian Timer chỉ bị Reset khi có tín hiệu Reset Timer ( tín hiệu từ ngõ I0.1)
Giản đồ thời gian:



Bài tập:
Điều khiển Đèn xanh đỏ tại ngã tư với yêu cầu sau:
Xanh A : Trong 15s
Vàng A : Trong 3s
Xanh B : Trong 25s
Vàng B : Trong 4s
Lưu đồ giải thuật:



3.Counter :Có 3 loại Counter.
3.1 Counter Up(đếm lên):
Cxxx: Số hiệu counter (0-255)
CU: Kích đếm lên

Bool

R: Reset


Bool

PV: Giá trị đặt cho counter INT
PV: VW, IW, QW, MW, SMW, LW, AIW, AC, T, C, Constant,
*VD, *AC, *LD, SW


Mô tả:
Khi có một cạnh lên ở chân CU, giá trị bộ đếm (1 Word) được tăng lên 1. Khi
giá trị hiện tại lớn hơn hoặc bằng giá trị đặt PV(Preset value), ngõ ra sẽ được bật lên
ON.
Khi chân Reset được kích (sườn lên) giá trị hiện tại bộ đếm và ngõ ra được trả
15

về 0. Bộ đếm ngưng đếm khi giá trị bộ đếm đạt giá trị tối đa là 32767 (2
Ví dụ:Dùng counter đếm lên đếm số xung từ I0.0 ,giá trị đặt là 4.

Giản đồ xung:

– 1).


3.2 Counter Down(đếm xuống):

Cxxx: số hiệu counter (0-255)
CD: kích đếm xuống
Bool
LD: Load


Bool

PV: giá trị đặt cho counter
INT
PV: VW, IW, QW, MW, SMW, LW, AIW, AC, T, C, Constant, *VD, *AC, *LD, SW
Mô tả:
Khi chân LD có cạnh lên giá trị PV được nạp cho bộ đếm.
Mỗi khi có cạnh lên ở chân CD, giá trị bộ đếm (1 Word) được giảm xuống 1. Khi giá
trị hiện tại của bộ đếm bằng 0, ngõ ra sẽ được bật lên ON và bộ đếm sẽ ngưng đếm.
Ví dụ :Dùng counter đếm xuống đếm số xung từ I0.0.


Giản đồ xung:

3.3 Counter Up/Down (đếm lên/xuống):
Cxxx: số hiệu counter (0-255)
CU: kích đếm lên

Bool

CD: kích đếm xuống

Bool

R:reset

Bool

PV:giá trị đặt cho counter


INT

(PV: VW, IW, QW, MW, SMW, LW, AIW, AC, T, C, Constant,
*VD, *AC, *LD, SW ).
Mô tả:
Khi có cạnh lên ở chân CU, giá trị bộ đếm (1 Word) được tăng lên 1. Khi có
một cạnh lên ở chân CD, giá trị bộ đếm được giảm xuống 1. Khi giá trị hiện tại
lớn hơn hoặc bằng giá trị đặt PV(Preset value), ngõ ra sẽ được bật lên ON.
Khi chân R được kích (sườn lên) giá trị bộ đếm và ngõ Out được trả về 0.
Giá trị cao nhất của bộ đếm là 32767 và thấp nhất là –32768.Bộ đếm ngừng
đếm khi giá trị bộ đếm đạt ngưỡng.


Ví dụ:Sử dụng counter đếm lên xuống.

Giản đồ xung:


Bài tập:
1. Hãy thiết kế và viết chương trình đếm sản phẩm sao cho khi đếm đủ 100 sản phẩm,
băng tải ngưng và chuông reo cho tới khi có tín hiệu Reset.Hệ thống sẽ đếm lại 100
sản phẩm mới,và ngưng khi nút Stop được nhấn.
2. Giống như bài tập 1 nhưng khi đủ 100 sản phẩm băng tải tự động ngừng trong 5s sau
đó tự động chạy trở lại.
Chương trình bài tập 2:
Input:

Cảm biến phát hiện sản phẩm: I0.4
Nút nhấn 1: reset: I0.3
Nút nhấn 2: start: I0.0

Nút nhấn 3: stop: I0.1
Nút nhấn 4: auto/manual: I0.2

Output:

Chuông: Q0.0
Motor: Q0.1

Lưu đồ giải thuật:


Chương trình:


6.4 Các lệnh so sánh: So sánh byte
so sánh bằng: Khi IN1=IN2 thì ngõ ra được tích cực.
so sánh khác.
So sánh lớn hơn hoặc bằng.
So sánh nhỏ hơn hoặc bằng.
So sánh lớn hơn
So sánh nhỏ hơn
Tương tự các lệnh so sánh cho Byte, ta cũng có các lệnh so sánh cho số Int, Dint, Real
Khi thực hiện các lệnh so sánh thì IN1, IN2 phải được chọn đúng kiểu dữ liệu.


7. Lệnh về đồng hồ thời gian thực RTC
7.1 Lệnh đọc thời gian thực Read_RTC:
Bit EN : Bit cho phép đọc thời gian thực
T ( 8byte): VB,IB,QB,MB,SB,LB,*AC,*VD,*LD
Được định dạng như sau:

T (byte)
Giá trị ( định dạng BCD)
0 (năm)
0-99
1 (tháng)
0 -12
2 (ngày)
0 - 31
3 (giờ)
0 - 23
4 (phút)
0 - 59
5 (giây)
0 - 59
6 (00)
00
7 (ngày trong tuần) 1 – 7; 1: Sunday
7.2 Lệnh Set thời gian thực Set_RTC:
Khi có tín hiệu EN thì thời gian thực sẽ được
set lại thông qua T
Cách định dạng Byte T hoàn toàn giống ở trên.
8. Lệnh gọi chương trình con:

XXX: 00-99
Khi giá trị điều kiện bằng 1 thì chương trình sẽ gọi chương trình con
Bài tập:
Sử dụng lệnh đọc thời gian thực để ứng dụng trong điều khiển đèn giao thông
tự động, tưới cây tự động.
- Điều khiển đèn giao thông tự động:
Thời gian từ 5 giờ đến 23 giờ: hoạt động bình thường

Từ 23 giờ sáng đến 5 giờ sáng ngày hôm sau: Đèn vàng chớp tắt xung 1s.
- Điều khiển tưới cây tự động: Để phục vụ cho việc tưới cây ( trong phòng kiếng),
Lan đòi hỏi nhu cầu tưới nước rất khắc nghiệt, đòi hỏi cách 1 khoảng thời gian
nhất định cho việc tưới cây và còn phụ thuộc theo từng tháng.Tháng mùa nóng


nhu cầu tưới nước nhiều hơn mùa mưa.
- Chương trình bài đèn giao thông tự động:
Input: lấy giá trị của bộ thời gian thực trong PLC.
Output: Xanh A: Q0.0

Xanh B: Q0.3

Vàng A: Q0.1

Vàng B: Q0.4

Đỏ A: Q0.2

Đỏ B: Q0.5

Lưu đồ giải thuật:


Chương trình: Main

Subroutine 0


Subroutine 1



Phần 2:
CÁC BÀI TẬP THỰC HÀNH
Bài 1:Phân loại sản phẩm theo chiều cao.
Nội dung: Dựa vào 2 cảm biến hồng ngoại có trên mô hình ta phân loại các vật
đi qua băng tải theo chiều cao bằng cách nếu chỉ có một cảm biến phát hiện vật thì
cho qua còn cả 2 cảm biến phát hiện vật thì kích PITTONG đẩy vật đó ra.
2. Sơ đồ kết nối:
Cảm biến quang 1

I0.3

Cảm biến quang 2

I0.4

Xilanh1

Q0.3

Start

I0.0

Stop

I0.1

3. Chương trình:



4. Giới thiệu các câu lệnh dùng:
Khi sản phẩm có chiều cao hơn 2 cảm biến thì sẽ dùng PITTONG đẩy sản
phẩm ra nên giá trị vào cần tới 2 tín hiệu cảm biến CAO1, CAO2 và xét mức để set
bit nhớ M0.1.Sau đó dùng M0.1 để nuôi timer ON chờ cho sản phẩm đến PITTONG (giá
trị nuôi timer tùy thuộc vào tốc độ băng tải). Khi đã đầy timer thì PITTONG được Set để
đẩy sản phẩm ra.
Bài 3: Phân loại và đếm số sản phẩm hoàn chỉnh.
Nội dung:Phân loại sản phẩm theo chiều cao,nếu sản phẩm không đạt chiều
cao mong muốn thì loại sản phẩm đó bằng van khí nén đồng thời đếm các sản phẩm
đạt yêu cầu.
1.Sơ đồ kết nối:
Cảm biến

I0.3

Xilanh1

Q0.1

Start

I0.0

Stop

I0.1



2.Chương trình:
Nếu start được nhấn thì
bật M0.0 và M0.0 được
tự giữ cho đến khi stop
được nhấn.

Kiểm tra cảm biến,nếu có
cạnh xuống của cảm biến
thì bật M0.1.
M0.1 nuôi T37 tạo delay
cho vật đến xilanh.



Loại

vật

bằng van
khí nén.

Đếm vật đạt yêu cầu, đưa số đếm vào VW0



×