Lệnh chuyển kiểu dữ liệu :– Cú pháp: BTI – Tác dụng: Lệnh chuyển một số BCD nằm trong ACCU1 thμnh số nguyên 16 bit, kết quả lưu trở lại ACCU1 Các bộ định thời gian timer Các bộ timer có
Trang 1Các bộ định thời gian Timer vμ
các bộ đếm counter Thanh ghi tổng ACCU1 và ACCU2 Một số lệnh phụ trợ
Các bộ định thời gian (Timer) Các bộ đếm (Counter)
Thanh ghi tổng ACCU1 vμ ACCU2
Đây là hai thanh ghi đặc biệt nằm trong CPU của S7-300, có kích thước 32 bít.
Chúng được dùng làm bộ nhớ trung gian cho các phép tính liên quan đến byte, word và double word.
Thanh ghi ACCU1 được dùng chính trong các lệnh, ACCU2 được dùng làm thanh ghi phụ hỗ trợ cho thanh ghi ACCU1.
Byte thấp Byte cao
Trang 2Một số lệnh phụ trợ
Lệnh nạp dữ liệu:
– Cú pháp:
– Tác dụng: Lệnh chuyển hằng số hoặc nội dung của ô nhớ có địa chỉ ở <address> vμo thanh ghi ACCU1, nội dung cũ trong ACCU1 đ−ợc chuyển vμo ACCU2
I, Q
Hằng số dùng cho bộ đếm
L C#100 C#
Hằng số dạng kí tự
L ‘AB’
‘ ’
Hằng số cơ số Binary (2)
L 2#11000011 2#
Hằng số cơ số Hex (16)
L B#16#2E
L W#A2EB 16#
Ghi 5 (số nguyên 32 bit) vào ACCU1
L L#5 L#
Ghi 1 vào byte cao của từ thấp, 8 vào byte thấp của từ thấp ACCU1
L B#(1,8) B#( , )
Ghi 5 (số nguyên 16 bit) vào ACCU1
L +5
±
Giải thích
Ví dụ Dữ liệu
Trang 3Hằng số về thời gian giờ/phút/giây (32 bít)
L T#0H_1M_10S T#
Hằng số về năm/tháng/ngày (16 bit)
L D#2000-6-20 D#
Hằng số là địa chỉ ô nhớ (con trỏ)
L P#M10.2 P#
Hằng số dùng cho bộ timer
L S5TIME#2S S5TIME#
Giải thích
Ví dụ Dữ liệu
Lệnh so sánh dữ liệu (số nguyên 16 bít):
– Cú pháp:
– Tác dụng: Lệnh so sánh hai số nguyên nằm ở hai thanh ghi ACCU1 vμ ACCU2
1 1
0
<=I
0 1
1
>=I
1 0
0
<I
0 0
1
>I
1 0
1
<>I
0 1
0
==I
Giá trị RLO ACCU2<ACCU1
Giá trị RLO ACCU2 = ACCU1
Giá trị RLO ACCU2>ACCU1 Lệnh
Trang 4Lệnh chuyển kiểu dữ liệu :
– Cú pháp: BTI
– Tác dụng: Lệnh chuyển một số BCD nằm trong ACCU1 thμnh số nguyên 16 bit, kết quả lưu trở lại ACCU1
Các bộ định thời gian timer
Các bộ timer có tác dụng tạo ra khoảng thời gian trễ giữa tín hiệu lôgíc đầu vào và tín hiệu lôgíc đầu ra
Quy luật trễ tuỳ thuộc vào từng loại timer.
Các Timer được đánh địa chỉ từ T0 đến T255 Các
bộ timer có thể sử dụng địa chỉ tuỳ ý, tuy nhiên khi một địa chỉ đã sử dụng rồi thì không thể khai báo sử dụng cho timer khác.
Thời gian trễ t = độ phân giải x giá trị đặt
Trang 5Giá trị đặt: Có thể được xác định dưới hai dạng, và
được lưu vào thanh ghi ACCU1.
– Dạng 1: W#16#txyz Trong đó: t lμ độ phân giải (mã thập phân)
xyz lμ giá trị thời gian (mã BCD)
– Dạng 2: S5T#aH_bM_cS_dMS Trong đó: H lμ giờ, M lμ phút, S lμ giây, MS
lμ miligiây.
a, b, c, d lμ các tham số thời gian
Chú ý ở dạng 2, độ phân giải được CPU chọn tự
động
Độ phân giải: Có nhiều độ phân giải khác nhau và
được lưu vào thanh ghi ACCU1 dưới dạng mã nhị phân, nằm ở vị trí bít 12 và 13.
3 11
10s
2 10
1s
1 01
100ms
0 00
10ms
Mã thập phân Mã nhị phân
Độ phân giải
10s đến 2h_46m_30s 10s
1s đến 16m_39s 1s
100ms đến 1m_39s_900ms 100ms
10ms đến 9s_990ms 10ms
Giới hạn trễ
Độ phân giải
Trang 6Cấu hình thanh ghi ACCU1 khi làm việc với Timer:
Từ bit 0 đến bít 11 dùng để lưu giá trị thời gian dưới dạng mã BCD, bít 12 và 13 dùng để lưu độ phân giải.
Thời gian trễ (0 – 999)
Độ phân giải
Từ bít 14 không dùng đến
Các bước khai báo sử dụng Timer:
– Khai báo tín hiệu enable
– Khai báo tín hiệu đầu vμo
– Khai báo giá trị đặt
– Khai báo loại Timer được sử dụng
– Khai báo tín hiệu xoá timer
– Đọc dữ liệu thanh ghi T-word
Khai báo tín hiệu enable (lệnh FR)
– Cú pháp:
A <bit> (<bit> dùng lμm tín hiệu enable)
FR Timer (Timer tên địa chỉ bộ trễ) Chú ý: Tín hiệu enable có tác dụng reset bộ timer khi
có tín hiệu đầu vμo duy trì ở mức lôgíc 1
Trang 7Khai báo tín hiệu đầu vào
– Cú pháp:
A <bit> (<bit> dùng lμm tín hiệu đầu
vμo)
Chú ý: Tín hiệu đầu vμo bắt buộc phải có dùng để kích hoạt timer
Khai báo giá trị đặt
– Cú pháp:
L <hằng số> (<hằng số> dùng lμm giá
trị đặt)
Chú ý: Có thể được khai báo dưới 2 dạng
Khai báo loại timer được sử dụng
Khai báo tín hiệu xoá timer
A <bit> (<bit> dùng lμm tín hiệu reset)
R Timer (Timer tên địa chỉ bộ trễ cần xoá)
Tạo xung kéo dài (Extended Pulse Timer) SE
Tạo xung thời gian (Pulse timer) SP
Tắt trễ (Off-delay) SF
Bật trễ có nhớ (Retentive on-delay) SS
Bật trễ không nhớ (On-delay) SD
Loại timer Lệnh khai
báo
Trang 8Đọc dữ liệu thanh ghi T-Word
– Do thanh ghi T-Word được lưu dưới hai dạng, nên ta có hai lệnh để truy xuất dữ liệu tức thời của thanh ghi T-Word như sau:
– Lệnh: L Timer
– Lệnh: LC Timer
Trang 9Ví dụ 1: Sử dụng timer SD (on-delay)
A I2.0 (Tín hiệu enable)
FR T1
A I2.1 (Tín hiệu đầu vμo)
L W#16#2007 (Nạp giá trị đặt)
SD T1 (Sử dụng timer 1)
A I2.2 (Tín hiệu reset)
R T1
A T1 (Lấy giá trị T-bit)
= Q4.0 (Tín hiệu đầu ra)
Trang 10Ví dụ 2: Sử dụng timer SS (retentive-on-delay)
A I2.0 (Tín hiệu enable)
FR T1
A I2.1 (Tín hiệu đầu vμo)
L W#16#2007 (Nạp giá trị đặt)
SS T1 (Sử dụng timer 1)
A I2.2 (Tín hiệu reset)
R T1
A T1 (Lấy giá trị T-bit)
= Q4.0 (Tín hiệu đầu ra)
Trang 11Ví dụ 3: Sử dụng timer SF (Off-delay)
A I2.0 (Tín hiệu enable)
FR T1
A I2.1 (Tín hiệu đầu vμo)
L W#16#2007 (Nạp giá trị đặt)
SF T1 (Sử dụng timer 1)
A I2.2 (Tín hiệu reset)
R T1
A T1 (Lấy giá trị T-bit)
= Q4.0 (Tín hiệu đầu ra)
Trang 12Ví dụ 4: Sử dụng timer SP (Pulse-delay)
A I2.0 (Tín hiệu enable)
FR T1
A I2.1 (Tín hiệu đầu vμo)
L W#16#2007 (Nạp giá trị đặt)
SP T1 (Sử dụng timer 1)
A I2.2 (Tín hiệu reset)
R T1
A T1 (Lấy giá trị T-bit)
= Q4.0 (Tín hiệu đầu ra)
Trang 13Ví dụ 5: Sử dụng timer SE (Extended-Pulse-delay)
A I2.0 (Tín hiệu enable)
FR T1
A I2.1 (Tín hiệu đầu vμo)
L W#16#2007 (Nạp giá trị đặt)
SE T1 (Sử dụng timer 1)
A I2.2 (Tín hiệu reset)
R T1
A T1 (Lấy giá trị T-bit)
= Q4.0 (Tín hiệu đầu ra)
Trang 14Các bộ đếm counter
Các bộ đếm được dùng để đếm các sự kiện theo sườn lên hoặc sườn xuống.
Các bộ counter được đánh địa chỉ từ C0 đến C255
Các bộ counter có thể sử dụng địa chỉ tuỳ ý, tuy nhiên khi một địa chỉ đã sử dụng rồi thì không thể khai báo sử dụng cho các counter khác.
Các bước khai báo sử dụng Counter:
– Khai báo tín hiệu enable
– Khai báo tín hiệu đầu vμo đếm tiến (CU)
– Khai báo tín hiệu đầu vμo đếm lùi (CD)
– Khai báo giá trị đặt
– Thiết lập giá trị ban đầu cho C-word
– Khai báo tín hiệu xoá Counter
– Đọc dữ liệu của thanh ghi C-Word
Khai báo tín hiệu enable (lệnh FR)
– Cú pháp:
A <bit> (<bit> dùng lμm tín hiệu enable)
FR Counter (Counter tên địa chỉ bộ đếm)
– Chú ý: Tín hiệu enable có tác dụng kích hoạt bộ counter khi có sự chuyển trạng thái từ 0 lên 1 của bít RLO
Trang 15Khai báo tín hiệu đầu vào đếm tiến (CU)
– Cú pháp:
A <bit> (Tín hiệu đầu vμo đếm tiến)
CU Counter (Counter tên địa chỉ bộ đếm)
Chú ý: Tín hiệu <bit> có tác dụng tăng C-Word lên 1, khi có sự chuyển trạng thái từ 0 lên 1 của bít RLO.
Khai báo tín hiệu đầu vào đếm lùi (CD)
– Cú pháp:
A <bit> (Tín hiệu đầu vμo đếm tiến)
CD Counter (Counter tên địa chỉ bộ đếm)
Chú ý: Tín hiệu <bit> có tác dụng giảm C-Word 1 đơn vị, khi có sự chuyển trạng thái từ
0 lên 1 của bít RLO
Khai báo giá trị đặt
– Cú pháp:
L C#<hằng số> (Giá trị đặt được lưu ở ACCU1)
Chú ý: Dữ liệu <hằng số> phải ở dạng mã BCD (từ 0 đến 999),
Khai báo tín hiệu xoá Counter
– Cú pháp:
A <bit> (<bit> dùng lμm tín hiệu reset)
R Counter (Counter tên địa chỉ bộ đếm)
Thiết lập giá trị ban đầu cho C-Word
– Cú pháp:
A <bit> (Tín hiệu đầu vμo cho phép thiết lập)
L C#<hằng số> (Giá trị ban đâu được lưu ở ACCU1)
S Counter (Counter tên địa chỉ bộ đếm)
Chú ý: Dữ liệu <hằng số> ở dạng mã integer (từ 0 đến 999), gặp lệnh S giá trị đặt sẽ được chuyển ngay vμo thanh ghi C-Word.
Trang 16§äc d÷ liÖu cña thanh ghi C-Word.
– D÷ liÖu cña thanh ghi C-Word cã thÓ ®ưîc lưu l¹i dưíi hai d¹ng m· binary hoÆc BCD
– LÖnh: L Counter
– LÖnh: LC Counter
C3
Trang 17Ví dụ 1: Sử dụng counter CU (đếm lên), khi nào đủ số lượng sườn lên
ở đầu vào I0.1, thì đầu ra Q0.0 lên mức lôgíc 1
A I0.0 (Tín hiệu enable)
FR C1
A I0.1 (Tín hiệu đầu vμo đếm)
CU C1
L C#3 (Giá trị đặt) BTI (Chuyển số BCD thμnh số Integer 16 bit)
A I0.2 (Tín hiệu reset)
R C1
L C1 (nạp giá trị C-word vμo ACCU1, đẩy giá trị đặt
<=I vμo ACCU2)
= Q0.0 (Tín hiệu đầu ra)
I0.0 I0.2 I0.1 Giá trị đặt
C-word
Q0.0
Trang 18Ví dụ 2: Sử dụng counter CD (đếm xuống), khi nào giảm bằng và nhỏ hơn l−ợng đặt, thì đầu ra Q0.0 lên mức lôgíc 1.
– Network1 (Thiết lập giá trị C-Word)
A I0.3 (Tín hiệu cho phép nạp C-Word)
L C#6 (Giá trị cần nạp)
S C3
– Network2 (Đếm lùi giá trị C-Word)
A I0.1 (Tín hiệu đầu vμo đếm)
CD C3 (Khai báo bộ đếm xuống)
L C#3 (Giá trị đặt) BTI (Chuyển giá trị đặt từ BCD thμnh integer)
A I0.2 (Tín hiệu reset)
R C3
L C3 (Đọc giá trị tức thời của C-word)
>=I (So sánh C-word với giá trị đặt)
= Q0.0
I0.3 I0.2 I0.1
Giá trị đặt C-word
Q0.0
Trang 19Sơ đồ 5
R1
R2
Rtg
Rtg
R1
R2
Rtg
Rtg
Sơ đồ 6
Sơ đồ 7
2
Sơ đồ 4
2
Chuyển một số sơ đồ sau sang lập
trình bằng S7-300