42
Giáo trình S7-200 nâng cao TTNC ĐIỆN ĐIỆN TỬ 54 – Nguy ễn Lương Bằng TP Đà Nẵng Trang 1 CHỦ ĐỀ 1: ĐỒNG HỒ THỜI GIAN THỰC 1.1 Giới thiệu về đồng hồ thời gian thực (RTC) Để có thể làm việc với đồng hồ thời gian thực CPU cung cấp 2 lệnh đọc và ghi giá trị cho đồng hồ. Những giá trị đọc được hoặc ghi được với thời gian thực là các giá trị ngày, tháng, năm và các giá trị về giờ, phút, giây. Các dữ liệu đọc, ghi với đồng hồ thời gian thực trong LAD và trong STL có độ dài 1 byte và được mã hóa theo kiểu số nhị thập phân BCD (thí dụ, 16#09 cho năm 2009). Chúng nằm trong bộ đệm gồm 8 byte liền nhau theo thứ tự. Byte 0 Năm (0 ÷ 99) Byte 1 Tháng (1 ÷ 12) Byte 2 Ngày (1 ÷ 31) Byte 3 Giờ (0 ÷23) Byte 4 Phút (0 ÷ 59) Byte 5 Giây (0 ÷ 59) Byte 6 0 Byte 7 Ngày trong tuần Các kiểu dữ liệu hợp lệ là: Năm (yy) Tháng (mm) Ngày (dd) Gi(hh) Phút (mm) Giây (ss) 0 ÷ 99 1 ÷ 12 (1÷ 31) 0 ÷23 0 ÷ 59 0 ÷ 59 Riêng giá trị về ngày trong tuần là một số tương ứng với nội dung của nibble thấp (4 bit) trong byte theo kiểu Chủ nhật Thứ hai Thứ ba Thứ tư Thứ năm Thứ sáu Thứ bảy 1 2 3 4 5 6 7 1.2 Các lệnh về đồng hồ thời gian thực Cú pháp sử dụng lệnh đọc, ghi dữ liệu với đồng hồ thực trong LAD và STL: Ví dụ: Chương trình dưới đây mô tả cách thực hiện lệnh ghi thời gian thực xuống PLC, đọc thời gian thực của PLC để xử lý. Chú ý: Nếu PLC đã có giá trị thời gian thực thì không cần lệnh ghi thời gian thực xuống PLC. - Lệnh đọc nội dung của đồng hồ thời gian thực vào bộ đệm 8 byte được chỉ thị trong lệnh bằng toán hạng T. - Lệnh ghi nội dung của bộ đệm 8 byte được chỉ thị trong lệnh bằng toán hạng T vào đồng hồ thời gian thực.

200_NANG_CAO_in_

Embed Size (px)

DESCRIPTION

HỦ ĐỀ 1: ĐỒNG HỒ THỜI GIAN THỰC1.1 Giới thiệu về đồng hồ thời gian thực (RTC)Để có thể làm việc với đồng hồ thời gian thực CPU cung cấp 2 lệnh đọc và ghi giá trị cho đồng hồ. Những giá trị đọc được hoặc ghi được với thời gian thực là các giá trị ngày, tháng, năm và các giá trị về giờ, phút, giây.Các dữ liệu đọc, ghi với đồng hồ thời gian thực trong LAD và trong STL có độ dài 1 byte và được mã hóa theo kiểu số nhị thập phân BCD (thí dụ, 16#09cho năm 2009). Chúng nằm trong bộ đệm gồm 8 byte liền nhau theo thứ tự.

Citation preview

Page 1: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 1

CHỦ ĐỀ 1: ĐỒNG HỒ THỜI GIAN THỰC 1.1 Giới thiệu về đồng hồ thời gian thực (RTC)

Để có thể làm việc với đồng hồ thời gian thực CPU cung cấp 2 lệnh đọc và ghi giá trị cho đồng hồ. Những giá trị đọc được hoặc ghi được với thời gian thực là các giá trị ngày, tháng, năm và các giá trị về giờ, phút, giây.

Các dữ liệu đọc, ghi với đồng hồ thời gian thực trong LAD và trong STL có độ dài 1 byte và được mã hóa theo kiểu số nhị thập phân BCD (thí dụ, 16#09 cho năm 2009). Chúng nằm trong bộ đệm gồm 8 byte liền nhau theo thứ tự.

Byte 0 Năm (0 ÷ 99) Byte 1 Tháng (1 ÷ 12) Byte 2 Ngày (1 ÷ 31) Byte 3 Giờ (0 ÷23) Byte 4 Phút (0 ÷ 59) Byte 5 Giây (0 ÷ 59) Byte 6 0 Byte 7 Ngày trong tuần

Các kiểu dữ liệu hợp lệ là: Năm (yy)

Tháng (mm)

Ngày (dd)

Giờ (hh)

Phút (mm)

Giây (ss)

0 ÷ 99 1 ÷ 12 (1÷ 31) 0 ÷23 0 ÷ 59 0 ÷ 59 Riêng giá trị về ngày trong tuần là một số tương ứng với nội dung của nibble thấp (4 bit) trong byte theo kiểu

Chủ nhật Thứ hai Thứ ba Thứ tư Thứ năm Thứ sáu Thứ bảy 1 2 3 4 5 6 7

1.2 Các lệnh về đồng hồ thời gian thực

Cú pháp sử dụng lệnh đọc, ghi dữ liệu với đồng hồ thực trong LAD và STL: Ví dụ: Chương trình dưới đây mô tả cách thực hiện lệnh ghi thời gian thực xuống PLC, đọc thời gian thực của PLC để xử lý. Chú ý: Nếu PLC đã có giá trị thời gian thực thì không cần lệnh ghi thời gian thực xuống PLC.

- Lệnh đọc nội dung của đồng hồ thời gian thực vào bộ đệm 8 byte được chỉ thị trong lệnh bằng toán hạng T. - Lệnh ghi nội dung của bộ đệm 8 byte được chỉ thị trong lệnh bằng toán hạng T vào đồng hồ thời gian thực.

Page 2: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 2

Trong một vòng quét đầu tiên ghi các giá trị năm, tháng, ngày, giờ, phút, giây, thứ vào bộ đệm 8 byte bắt đầu từ VB0.

Ghi thời gian thực xuống PLC tại bộ đệm 8 byte bắt đầu từ VB0.

Đọc thời gian thực vào bộ đệm 8 byte bắt đầu từ VB10.

Kiểm tra các giá trị thời gian thực.

Page 3: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 3

CHỦ ĐỀ 2: NGẮT VÀ XỬ LÝ NGẮT

2.1 Giới thiệu về ngắt

Các chế độ ngắt và xử lý ngắt cho phép thực hiện các quá trình tốc độ cao, phản ứng kịp thời với các sự kiện bên trong và bên ngoài.

Nguyên tắc cơ bản của một chế độ ngắt cũng giống như việc thực hiện lệnh gọi một chương trình con, sự khác nhau ở đây là chương trình con được gọi chủ động, còn chương trình xử lý ngắt được gọi bị động bằng một tín hiệu báo ngắt. Khi có một tín hiệu báo ngắt, hệ thống sẽ tổ chức gọi và thực hiện chương trình con tương ứng với tín hiệu báo ngắt đó, hay nói cách khác là hệ thống sẽ tổ chức xử lý tín hiệu ngắt đó. Chương trình con này được gọi là chương trình xử lý ngắt.

Bảng 2.1: Liệt kê các tín hiệu báo ngắt tương ứng với từng loại CPU trong series 22x

Kiểu ngắt Mô tả tín hiệu ngắt

CPU

221

CPU 222

CPU 224,

224XP

CPU 226,

226XM 0 Ngắt theo sườn lên của I0.0 Y Y Y Y 1 Ngắt theo sườn xuống của I0.0 Y Y Y Y 2 Ngắt theo sườn lên của I0.1 Y Y Y Y 3 Ngắt theo sườn xuống của I0.1 Y Y Y Y 4 Ngắt theo sườn lên của I0.2 Y Y Y Y 5 Ngắt theo sườn xuống của I0.2 Y Y Y Y 6 Ngắt theo sườn lên của I0.3 Y Y Y Y 7 Ngắt theo sườn xuống của I0.3 Y Y Y Y 8 Ngắt để nhận kí tự ở Port 0 Y Y Y Y 9 Ngắt để báo việc truyền dữ liệu đã hoàn tất ở Port 0 Y Y Y Y

10 Ngắt thời gian 0, SMB34 Y Y Y Y 11 Ngắt thời gian 1, SMB35 Y Y Y Y

12 Ngắt theo HSC0, khi giá trị tức thời bằng giá trị đặt trước CV=PV. Y Y Y Y

13 Ngắt theo HSC1, khi giá trị tức thời bằng giá trị đặt trước CV=PV. Y Y

14 Ngắt theo HSC1, khi có tín hiệu báo đổi hướng đếm từ bên ngoài. Y Y

15 Ngắt theo HSC1, khi có tín hiệu Reset từ ngoài Y Y

16 Ngắt theo HSC2, khi giá trị tức thời bằng giá trị đặt trước CV=PV. Y Y

17 Ngắt theo HSC2, khi có tín hiệu báo đổi hướng đếm từ bên ngoài. Y Y

18 Ngắt theo HSC2, khi có tín hiệu Reset từ ngoài Y Y 19 PLS0 Ngắt báo hoàn tất việc đếm xung Y Y Y Y 20 PLS1 Ngắt báo hoàn tất việc đếm xung Y Y Y Y 21 Ngắt theo bộ định thời T32, khi giá tức thời CT=PT. Y Y Y Y 22 Ngắt theo bộ định thời T96, khi giá tức thời CT=PT. Y Y Y Y 23 Ngắt báo hoàn tất việc nhận 1 gói tin ở Port 0 Y Y Y Y

Page 4: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 4

24 Ngắt báo hoàn tất việc nhận 1 gói tin ở Port 1 Y 25 Ngắt để nhận kí tự ở Port 1 Y 26 Ngắt để báo việc truyền dữ liệu đã hoàn tất ở Port 1 Y

27 Ngắt theo HSC0, khi có tín hiệu báo đổi hướng đếm từ bên ngoài. Y Y Y Y

28 Ngắt theo HSC0, khi có tín hiệu Reset từ ngoài Y Y Y Y

29 Ngắt theo HSC4, khi giá trị tức thời bằng giá trị đặt trước CV=PV. Y Y Y Y

30 Ngắt theo HSC4, khi có tín hiệu báo đổi hướng đếm từ bên ngoài. Y Y Y Y

31 Ngắt theo HSC4, khi có tín hiệu Reset từ ngoài Y Y Y Y

32 Ngắt theo HSC3, khi giá trị tức thời bằng giá trị đặt trước CV=PV. Y Y Y Y

33 Ngắt theo HSC5, khi giá trị tức thời bằng giá trị đặt trước CV=PV. Y Y Y Y

2.2.Các lệnh về xử lý ngắt 2.3.Các kiểu ngắt

2.3.1. Ngắt vào ra — Tín hiệu báo ngắt khi có sườn lên hoặc sườn xuống của tín hiệu đầu vào. — Tín hiệu báo ngắt của bộ đếm tốc độ cao.

Lệnh khai báo chế độ ngắt toàn cục. Lệnh hủy chế độ ngắt toàn cục.

Để khai báo một chế độ ngắt, phải thực hiện như sau: kích tín hiệu báo ngắt bằng lệnh ATCH, khai báo chương trình xử lý ngắt tương ứng bằng toán hạng INT, khai báo kiếu mã hiệu ngắt bằng toán hạng EVNT.

Lệnh hủy bỏ từng chế độ ngắt riêng biệt. Lệnh này sẽ đặt một chế độ ngắt vào trạng thái không tích cực.

Lệnh quay trở về có điều kiện từ chương trình xử lý ngắt, lệnh này luôn đặt cuối chương trình xử lý ngắt.

Page 5: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 5

— Tín hiệu báo ngắt của cổng truyền xung. Việc sử dụng sườn lên và sườn xuống làm tín hiệu báo ngắt có thể chiếm 1 cổng trong các cổng vào. Tín hiệu báo ngắt của bộ đếm tôc độ cao xuất hiện khi giá trị tức thời bằng giá trị đặt trước hoặc khi có sự thay đổi chiều đếm (tiến/lùi) cũng như khi có một tín hiệu reset ngoài tác động vào bộ đếm Tín hiệu báo ngắt của cổng truyền xung báo tức thời hoàn tất việc truyền xung.

2.3.2. Ngắt thời gian Tín hiệu báo ngắt thời gian được phát ra đều đặn theo chu kỳ thời gian. Chu kỳ phát tín hiệu báo ngắt theo thời gian là một số nguyên trong khoảng

1ms÷255ms và được xác định bởi giá trị của SMB34 cho tín hiệu báo ngắt thời gian 0 và của SMB35 cho tín hiệu báo ngắt thời gian 1.

Tín hiệu báo ngắt thời gian này cho phép gọi chương trình xử lý ngắt một cách đều đặn nên chúng thường được sử dụng trong việc lấy mẫu tín hiệu tại cổng vào tương tự với tần số trích mẫu được lập trình trước trong SMB34 hoặc SMB35.

2.3.3. Ngắt truyền thông (sẽ trình bày rõ ở phần truyền thông).

Page 6: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 6

CHỦ ĐỀ 3: BỘ ĐẾM TỐC ĐỘ CAO

3.1 Giới thiệu về bộ đếm tốc độ cao

Bộ đếm tốc độ cao được sử dụng để theo dõi và điều khiển các quá trình có tốc độ cao mà PLC không thể khống chế được do bị hạn chế về thời gian của vòng quét.

Trong CPU 221,222 có các bộ đếm tốc độ cao: HSC0, HSC3, HSC4 và HSC5. Trong CPU 224, 224XP, 226 có các bộ đếm tốc độ cao: HSC0 ÷ HSC5. Nguyên tắc hoạt động của bộ đếm tốc độ cao cũng tương tự như các bộ đếm thông thường khác của PLC, tức là cũng đếm theo sườn lên của tín hiệu đầu vào. Số đếm được sẽ được hệ thống ghi nhớ vào ô nhớ đặt biệt kiểu từ kép và được gọi là giá trị đếm tức thời của bộ đếm với ký hiệu CV (current value). Khi giá trị đếm tức thời bằng giá trị đặt trước thì bộ đếm sẽ phát ra một tín hiệu báo ngắt. Giá trị đặt trước là một số nguyên 32 bit cũng được lưu trong ô nhớ kiểu từ kép và ký hiệu bằng PV (preset value).

Nếu chế độ ngắt vào/ra với bộ đếm tốc độ cao được khai báo sử dụng, các tín hiệu ngắt sau đây sẽ được phát:

- Ngắt khi CV=PV. - Ngắt khi có tín hiệu báo thay đổi hướng đếm từ cổng vào. - Ngắt khi có tín hiệu reset từ cổng vào.

Mỗi bộ đếm có nhiều chế độ làm việc khác nhau. Chọn chế độ làm việc cho một bộ đếm bằng lệnh HDEF. Từng chế độ làm việc lại có các kiểu hoạt động khác nhau. Kiểu hoạt động của mỗi bộ đếm được xác định bằng nội dung của một byte điều khiển trong vùng nhớ đặt biệt (special memory) sau đó được khai báo với bộ đếm bằng lệnh HSC.

Các bộ đếm tốc độ cao trong S7-200 có khả năng đếm những tần số đến 20 Khz với nhiều chế độ hoạt động khác nhau:

- HSC0 và HSC4 hoạt động ở một trong 08 chế độ, có thể đếm các đầu vào một pha hoặc hai pha.

- HSC1 và HSC2 có 12 chế độ hoạt động, với các đầu vào một pha hoặc hai pha.

- HSC3 và HSC5 là những bộ đếm đơn giản, với một chế độ hoạt động và chỉ đếm đầu vào một pha. Xem các bảng tóm tắt về các bộ đếm này bên dưới. Chúng ta nhận thấy rằng nếu sử dụng HSC0 trong những chế độ từ 3 đến 11 thì không thể sử dụng HSC3 bởi vì HSC0 và HSC3 cả hai đều dùng đầu vào I0.1. Tương tự như thế đối với HSC4 và HSC5. I0.0 đến I0.3 còn có thể được sử dụng làm các đầu vào gây ngắt, cần chú ý không sử dụng chúng vừa làm các đầu vào gây ngắt vừa làm các đầu vào bộ đếm tốc độ cao. Nếu HSC0 đang hoạt động ở chế độ 2, chỉ sử dụng I0.0 và I0.2 thì I0.1vẫn có thể được khai thác bởi ngắt hay HSC3.

Page 7: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 7

Bảng 3.1.Bảng tóm tắt về các bộ đếm

Chế độ Mô tả Ngõ vào

HSC0 I0.0 I0.1 I0.2 HSC1 I0.6 I0.7 I1.0 I1.1 HSC2 I1.2 I1.3 I1.4 I1.5 HSC3 I0.1 HSC4 I0.3 I0.4 I0.5

HSC5 I0.4

0 Xung đếm 1 Xung đếm Reset 2

Đếm 1 pha với hướng đếm xác định bởi byte điều khiển Xung đếm Reset Start

3 Xung đếm Đổi hướng đếm 4 Xung đếm Đổi hướng đếm Reset 5

Đếm 1 pha với hướng đếm xác định từ ngõ vào Input Xung đếm Đổi hướng đếm Reset Start

6 Xung đếm lên Xung đếm xuống 7 Xung đếm lên Xung đếm xuống Reset 8

Đếm 2 pha với 2 ngõ vào Input

Xung đếm lên Xung đếm xuống Reset Start 9 Xung đếm A Xung đếm B 10 Xung đếm A Xung đếm B Reset 11

Đếm số lần lệch pha của 2 xung A, B

Xung đếm A Xung đếm B Reset Start 12 Chỉ dùng cho HSC0

và HSC3 HSC0: đếm số xung ra của Q0.0 HSC3: đếm số xung ra của Q0.1

3.2 Các chế độ làm việc của bộ đếm tốc độ cao Mode 0,1,2: Dùng đếm 1 pha với hướng đếm được xác định bởi byte điều khiển. Mode 0: Chỉ đếm tăng hoặc giảm, không có bit Start cũng như bit Reset.

Page 8: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 8

Mode 1: Đếm tăng hoặc giảm, có bit Reset nhưng không có bit Start. Mode 2: Đếm tăng hoặc giảm, có bit Start cũng như bit Reset để cho phép chọn bắt đầu đếm cũng như chọn thời điểm bắt đầu Reset. Các bit Start, bit Reset là các ngõ Input từ bên ngoài. Mode 3,4,5: Dùng để đếm 1 pha với hướng đếm được xác định bởi Bit ngoại, tức là có thể chọn từ ngõ vào Input. Mode 3: Chỉ đếm tăng hoặc giảm, không có bit Start cũng như bit Reset. Mode 4: Đếm tăng hoặc giảm, có bit Reset nhưng không có bit Start. Mode 5: Đếm tăng hoặc giảm, có bit Start cùng bit Reset để cho phép chọn bắt đầu đếm, chọn thời điểm bắt đầu reset. Các bit Start, bit Reset là các ngõ Input từ bên ngoài. Mode 6,7,8: Dùng đếm 2 pha với 2 xung vào, 1 xung dùng để đếm tăng và một xung dùng để đếm giảm. Mode 6: Chỉ đếm tăng, giảm không có bit Start cũng như bit Reset. Mode 7: Đếm tăng, giảm, có bit Reset nhưng không có bit Start. Mode 8: Đếm tăng, giảm, có bit Start, bit Reset để cho phép chọn bắt đầu cũng như chọn thời điểm bắt đầu Reset. Các bit Start cũng như Reset là các ngõ vào Input từ bên ngoài.

Page 9: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 9

Mode 9,10,11: Dùng để đếm xung A/B của Encoder, có 2 dạng: Dạng 1(Quadrature 1x mode): Đếm tăng 1 khi có xung A/B quay theo chiều thuận, và giảm 1 khi có xung A/B quay theo chiều ngược. Dạng 2( Quadrature 4x mode): Đếm tăng 4 khi có xung A/B quay theo chiều thuận, và giảm 4 khi có xung A/B quay theo chiều ngược. Mode 9: Chỉ đếm tăng, giảm, không có bit Start, bit Reset. Mode 10: Đếm tăng, giảm, có bit Reset, nhưng không có bit Start. Mode 11: Đếm tăng, giảm, có bit Start cũng như có bit Reset để cho phép chọn bắt đầu đếm cũng như chọn thời điểm bắt đầu Reset. Các bit Start, bit Reset là các ngõ Input. Mode 12: Chỉ áp dụng với HSC0 và HSC3 dùng để đếm xung phát ra từ Q0.0 và HSC3 đếm số xung phát ra từ Q0.1

Page 10: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 10

Byte điều khiển của HSC

Bit chọn: Chọn hướng đếm tăng hay hướng đếm giảm Bit chọn: Chọn cho phép Update hướng hay không Update hướng. Bit chọn: Chọn cho phép Update giá trị PV hay không cho phép. Bit chọn: Chọn cho phép Update giá trị hiện tại(CV) hay không cho phép. Bit chọn: Cho phép HSC hoạt động hay ngưng hoạt động. Giá trị đặt trước và giá trị hiện tại của HSC được lưu vào các miền nhớ đặt biệt như sau: 3.3. Các lệnh dùng trong HSC

Lệnh xác định chế độ làm việc cho HSC. Tên của bộ đếm được chỉ định bằng toán hạng HSC. Chế độ làm việc được chọn là nội dung của toán hạng MODE. HSC (kiểu byte): constant 1,2,3,4 hoặc 5. MODE (kiểu byte): constant 0,1,2,3,4,5,6,7,8,9,10 hoặc 11.

Lệnh đặt kiểu làm việc cho HSC. Tên của bộ đếm được chỉ định bằng toán hạng N. Kiểu làm việc được đặt vào nội dung byte điều khiển của bộ đếm. N (kiểu word): constant 0,1,2,3,4 hoặc 5.

Page 11: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 11

Ví dụ: Chương trình sau mô tả việc sử dụng HSC0, mode 0 cho việc đếm xung tốc độ cao: Chương trình chính Chương trình con Giá trị hiện tại của HSC0 sẽ nằm trong HC0 Ngoài ra ta còn có thể định dạng cho HSC với những chế độ ngắt khác nhau như: + Chương trình ngắt sẽ được thực thi khi giá trị HSC bằng giá trị đặt. + Chương trình ngắt sẽ được thực thi khi hướng đếm thay đổi. + Chương trình ngắt được thực thi khi bit Reset được thực thi.

Định dạng cho HSC (xem chi tiếc các bit ở phần trên) Load giá trị hiện tại của bộ đếm bằng 0 Load giá trị đặt bằng 0 Định dạng chế độ đếm (Mode đếm) Cho phép HSC0

Page 12: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 12

CHỦ ĐỀ 4: SỬ DỤNG HÀM PHÁT XUNG TỐC ĐỘ CAO

4.1 Giới thiệu về hàm phát xung tốc độ cao S7-200 sử dụng 2 cổng ra Q0.0 và Q0.1 để phát dãy xung tần số cao hoặc tín

hiệu điều xung theo độ rộng. Dãy xung được ký hiệu bằng PTO (pulse train output) còn tín hiệu điều rộng xung được ký hiệu bằng PWM (pulse width modulation).

PTO là một dãy xung vuông tuần hoàn (hình 1), có chu kỳ là một số nguyên trong khoảng 10µs ÷ 65.535µs hoặc 2ms ÷ 65.535ms. Độ rộng xung bằng 1/2 chu kỳ của dãy. Số xung nhiều nhất cho phép của dãy là 4.294.967.295.

Hình 4.1: Dạng xung kiểu PTO

PWM là một dãy xung tuần hoàn (hình 2), có chu kỳ là một số nguyên trong

khoảng 10µs ÷ 65.535µs hoặc 2ms ÷ 65.535ms. Khác với PTO, độ rộng xung trong mỗi chu kỳ có thể thay đổi được và là một số nguyên trong khoảng 0µs ÷ 65.535µs hoặc 0 ms ÷ 65.535ms. Nếu độ rộng xung được quy định lớn hơn chu kỳ của PWM thì dãy xung sẽ là một tín hiệu đều có giá trị logic bằng 1, ngược lại khi quy định độ rộng xung bằng 0 thì dãy xung sẽ là một tín hiệu đều có giá tị logic bằng 0.

4.2.Lệnh phát xung tốc độ cao:

Tx

T=2Tx

Tx: độ rộng xung T: chu kỳ dãy xung

Hình 4. 2:Dạng xung kiểu PWM

Lệnh phát dãy xung tại cổng Q0.0 hoặc Q0.1 theo cấu trúc được định nghĩa trong byte điều khiển và các ô nhớ về chu kỳ, độ rộng. Cổng xung phát ra được chỉ định trong toán hạng x (0 cho Q0.0 và 1 cho Q0.1) của lệnh.

Page 13: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 13

Nếu như các chế độ ngắt kiểu 19 hoặc 20 được khai báo cùng với việc tạo xung thì đối với dãy xung PTO tín hiệu báo ngắt PLS0 hoặc PLS1 sẽ xuất hiện tại thời điểm sườn xuống của xung cuối cùng (trong nửa sau của chu kỳ cuối), còn đối với dãy xung PWM, tín hiệu báo ngắt sẽ xuất hiện tại thời điểm sườn lên của xung cuối cùng. Muốn tạo những xung có nhiều dạng khác nhau thì sử dụng chương trình xử lý ngắt tương ứng để khai báo dạng xung mới.

4.2.1. Điều rộng xung 50% (PTO): Để thực hiện việc phát xung tốc độ cao (PTO) trước hết ta phải thực hiện các

bước định dạng sau: + Reset ngõ xung tốc độ cao ở chu kỳ đầu của chương trình.

+ Chọn loại ngõ ra phát xung tốc độ cao Q0.0 hay Q0.1. + Định dạng thời gian cơ sở dựa vào bảng sau: Các byte cho việc định dạng SMB67 (cho Q0.0)

SMB77 (cho Q0.1) Ngoài ra:

Q0.0 Q0.1 SMW68 SMW78: Xác định chu kỳ thời gian SMW70 SMW80: Xác định độ rộng xung SMD72 SMD82: Xác định số xung điều khiển

Ví dụ: Thực hiện việc phát dãy xung nhanh theo kiểu PTO theo giản đồ tại ngõ ra Q0.0:

Page 14: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 14

4.2.2. Điều rộng xung theo tỉ lệ (PWM): Để thực hiện việc phát xung tôc độ cao (PWM) trước hết ta phải thực hiện các

bước định dạng sau: + Reset ngõ xung tôc độ cao ở chu kỳ đầu của chương trình. + Chọn loại ngõ ra phát xung tốc độ cao Q0.0 hay Q0.1. + Định dạng thời gian cơ sở (Time base) dựa vào bảng sau: Các byte cho việc định dạng SMB67 (choQ0.0) SMB77 (cho Q0.1)

Q0.0 Q0.1 SMW68 SMW78: Xác định chu kỳ thời gian SMW70 SMW80: Xác định độ rộng xung SMD72 SMD82: Xác định số xung điều khiển

Ví dụ: Thực hiện việc điều rộng xung nhanh kiểu PWM theo giản đồ tại ngõ ra

Q0.1

Page 15: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 15

CHỦ ĐỀ 5: GIAO THỨC USS

6.1. Đặt vấn đề : Để điều khiển biến tần thông qua PLC người ta thường dùng các cách như sau : 1/ Dùng các đầu vào/ra của PLC , nhưng chỉ thực hiện được các chức năng đơn

giản như dừng, khởi động, đảo chiều còn việc thay đổi thời gian khởi động hoặc dừng, đặt tốc độ…không thể thực hiện được ở chế độ này. 2/ Để thay đổi giá trị setpoint trong điều kiện phản hồi, mỗi biến tần mất đi 1 đầu vào analog và 1 đầu ra analog. Ngoài ra còn phải dùng các đầu vào/ra số để điều khiên biến tần. 3/ Điều khiển biến tần qua mạng Profibus, đối với loại MM3, MM4 của Siemens đã có sẵn giao diện Profibus trên RS-458 Port. Nhưng đối với những ứng dụng nhỏ thì việc thiết kế một mạng Probibus sẽ đưa giá thành lên cao, do đó không kinh tế. 4/ Dùng Port 0 của PLC để kết nối tới các Port của biến tần, 1 PLC có thể điều khiển tối đa 1 mạng gồm 31 biến tần. Mạng này gọi là mạng USS. Dạng kết nối là điểm-điểm. Ta có thể điều khiển toàn bộ các chức năng của biến tần thông qua mạng này, ngoài ra còn có thể giám sát được dòng điện, điện áp, tốc độ, hướng quay…dựa vào các vùng nhớ ma PLC dành riêng cho mỗi biến tần. Chi phí cho mạng này là thấp và tối ưu nhất cho các ứng dụng nhỏ và vừa. 5/ Chuẩn điều khiển mạng biến tần ( giao thức USS ) Thư viện lệnh của STEP 7-Micro/Win cho phép điều khiển biến tần một cách dễ dàng bằng những hàm con và những hàm ngắt được thiết kế chuyên biệt cho việc sử dụng giao thức USS để truyền thông giữa PLC và biến tần. Với tập lệnh USS, ta có thể điều khiển đối tượng vật lý và những đối tượng chi thu-nhập dữ liệu. 6.2. Điều kiện sử dụng giao thức USS: Thư viện lệnh của STEP 7 - Micro/Win cung cấp 14 chương trình con, 3 thủ tục ngắt và một tập lệnh (gồm 8 lệnh) hỗ trợ cho giao thức USS.

+ Giao thức USS sử dụng Cổng 0 (Port 0) cho truyền thông USS. Sử dụng lệnh USS_INIT để lựa chọn Port 0 cho cả USS hoặc PPI. Sau khi đã

lựa chọn Port 0 cho truyền thông với chuẩn USS, không được sử dụng Port 0 cho bất kỳ mục đích nào khác.

Để phát triển các chương trình ứng dụng sử dụng giao thức USS, nên sử dụng CPU 226, CPU 226XM hoặc module EM 277 PROFIBUS-DP kết nối đến card PROFIBUS-CP ở máy tính. Cổng truyền thông thứ hai ở các loại CPU này sẽ cho phép STEP 7 - Micro/Win giám sát được ứng dụng trong khi sử dụng giao thức USS. + Các lệnh USS tác động đến tất cả các bit SM với truyền thông Freeport qua Port 0. + Các lệnh USS sử dụng 14 chương trình con và 3 thủ tục ngắt. + Các giá trị của các lệnh USS yêu cầu 400 byte của miền nhớ V. Địa chỉ bắt đầu được ấn định bởi người sử dụng và phần còn lại dành cho các giá trị khác. + Vài lệnh trong lệnh USS yêu cầu một bộ đệm truyền thông 16 byte. Chẳng hạn với một tham số cho lệnh, cần phải cung cấp một địa chỉ bắt đầu trong miền nhớ V của bộ đệm này.

Page 16: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 16

+ Khi thực hiện các phép tính, các lệnh USS sử dụng thanh ghi AC0 đến AC3. Cũng có thể sử dụng các thanh ghi trong chương trình; tuy nhiên, giá trị trong các thanh ghi sẽ bị thay đổi bởi lệnh USS. + Các lệnh USS sẽ làm tăng bộ nhớ của chương trình lên đến 3450 byte. Tuỳ thuộc vào loại lệnh USS mà dung lượng của bộ nhớ có thể tăng từ 2150 byte đến 3450 byte. + Các lệnh USS không thể sử dụng trong chương trình con.

Hình 6.1: Kết nối PLC và biến tần theo giao thức USS * Lưu ý: Để thay đổi phương thức truyền thông của Port 0 trở lại PPI để truyền thông với STEP 7 - Micro/Win, cần phải sử dụng lệnh USS _ INIT khác để ấn định lại phương thức cho Port 0. Cũng có thể định lại phương thức bằng cách chuyển S7-200 sang chế độ STOP, việc này sẽ Reset các tham số của Port 0. 6.3. Thời gian yêu cầu cho việc truyền thông với biến tần: Truyền thông với các MicroMaster (MM) không đồng bộ với vòng quét của S7-200. S7-200 hoàn thành vài vòng quét trước khi một MM hoàn thành việc truyền thông. Các yếu tố giúp xác định thời gian yêu cầu: số MM có trong mạng, tốc độ baud, và thời gian vòng quét của S7-200. Có vài loại yêu cầu thời gian trễ dài hơn khi sử dụng các lệnh truy xuất thông số. Thời gian yêu cầu cho việc truy nhập các tham số tuỳ thuộc loại thiết bị và tham số được truy nhập. Sau khi lệnh USS _ INIT ấn định Port 0 cho giao thức USS, S7-200 sẽ thực hiện “hỏi vòng” tất cả các biến tần trong những khoảng thời gian theo dưới đây.

Tốc độ (Baud)

Thời gian hỏi vòng của các biến tần (không kể thời gian kích hoạt truy cập tham số)

1200 240 ms (max) 2400 130 ms (max) 4800 75 ms (max) 9600 50 ms (max)

Page 17: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 17

19200 35 ms (max) 38400 30 ms (max) 57600 25 ms (max) 115200 25 ms (max)

Bảng 6.1: Thời gian yêu cầu cho truyền thông với MM

*Lưu ý : - Chỉ có lệnh USS_RPM_x hoặc USS_WPM_x mới có thể kích hoạt ở từng thời điểm. Đầu ra Done của mỗi tập lệnh nên có tín hiệu đầy đủ trước khi nó nhận 1 lệnh mới. - Chỉ dùng 1 lệnh USS_CTRL cho mỗi biến tần. 6.4. Các bước sử dụng các lệnh USS: Để sử dụng các lệnh trong chương trình điều khiển S7-200, cần phải theo các bước sau: 1. Đưa lệnh USS _INIT vào trong chương trình và thực hiện lệnh này cho mỗi một vòng quét. Có thể sử dụng lệnh này để thiết lập các giá trị hoặc thay đổi các thông số truyền thông. Khi sử dụng lệnh USS _ INIT sẽ có vài ẩn chương trình con và thủ tục ngắt được tự động thêm vào trong chương trình. 2. Chỉ thực hiện một lệnh USS _ INIT trong chương trình cho mỗi Drive. Có thể đưa vào nhiều lệnh USS_RPM_x hay USS_WPM_x khi được yêu cầu, nhưng chỉ một lệnh được làm việc trong một thời điểm. 3. Cấp phát vùng nhớ V cho thư viện lệnh bằng cách kích chuột phải (lấy từ menu) trên Program Block trong cây thư mục. 4. Cài đặt các tham số về địa chỉ và tốc độ được sử dụng trong chương trình cho drive. 5. Dùng cáp để kết nối truyền thông từ S7-200 đến các drive. * Chú ý: Các thiết bị kết nối với điện thế khác nhau có thể là nguyên nhân sinh ra dòng điện không mong muốn trong cáp kết nối. Dòng điện này là nguyên nhân dẫn đến các lỗi truyền thông hoặc làm hỏng thiết bị. Cần phải chắc chắn rằng các thiết bị được kết nối với cáp đều có cùng dòng điện định mức hoặc được cách ly để ngăn ngừa dòng điện không mong muốn. 6.5. Các lệnh trong giao thức USS:

6.5.1. Lệnh USS- INIT:

Page 18: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 18

Lệnh USS _ INIT được sử dụng để cho phép thiết lập hoặc không cho phép truyền thông với các MM. Trước khi bất kỳ một lệnh USS nào khác được sử dụng, lệnh USS_INIT phải được thực hiện trước mà không được xảy ra lỗi nào. Khi lệnh thực hiện xong và bit Done được set lên ngay lập tức trước khi thực hiện lệnh kế tiếp. Lệnh này được thực hiện ở mỗi vòng quét khi đầu vào EN được tác động. Thực hiện lệnh USS _INIT chỉ một lần cho mỗi sự thay đổi trạng thái truyền thông. Sử dụng lệnh chuyển đổi dương tạo một xung ở đầu vào EN. Khi thay đổi giá trị ban đầu các tham số sẽ thực hiện một lệnh USS _ INIT mới. Giá trị cho đầu vào Mode lựa chọn giao thức truyền thông: đầu vào có giá trị ‘1’ sẽ ấn định Port 0 dùng cho giao thức USS và chỉ cho phép làm việc theo giao thức này. Nếu đầu vào có giá trị ‘0’ sẽ ấn định Port 0 dùng cho giao thức PPI và không cho phép làm việc theo giao thức USS. Tốc độ truyền được đặt ở các giá trị: 1200, 2400, 4800, 9600, 19200, 38400, 57600 và 115200 (baud). Đầu vào Active dùng để xác định địa chỉ của Drive. Chỉ hỗ trợ số địa chỉ Drive từ 0 đến 30. Các tham số sử dụng trong lệnh USS_INIT.

Bảng 6.2: Kiểu dữ liệu và toán hạng của các đầu vào/ra trong lệnh USS_INIT Khi lệnh USS_INIT kết thúc, đầu ra Done được set lên. Đầu ra Error (kiểu byte) chứa kết quả thực hiện lệnh

Hình trên cho thấy sự mô tả và định dạng nào drive.Bất kỳ định rõ là hoạt động

thì được hỏi vòng tự động trong vùng điều khiển , thu giữ trạng thái , và bỏ qua thứ tự kết nối trong drive. Ví dụ :

Đầu vào / ra Kiểu dữ liệu Toán Hạng

Mode Byte VB,IB,QB,MB,SB,SMB,LB,AC,Constant,*VD,*AC, *LD

Baud,Active Dword VD,ID,QD,MD,SD,SMD,LD,Constant,AC, *VD,*AC,*LD

Done Bool I, Q, M, S, SM, T, C, V, L Error Byte VB, IB, QB, MB, SB, SMB, LB, AC,*VD,*AC,*LD

Page 19: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 19

6.5.2. Lệnh USS - CTRL:

Lệnh USS_CTRL được sử dụng để điều khiển hoạt động của biến tần. Lệnh này được đưa vào bộ đệm truyền thông, từ đây, lệnh được gởi tới địa chỉ của biến tần, nếu địa chỉ đa được xác định ở tham Active trong lệnh USS ơ_ INIT.

Chỉ một lệnh USS _CTRL được ấn định cho mỗi Drive. - Bit EN phải được set lên mới cho phép lệnh USS_CTRL thực hiện. Lệnh này

luôn ở mức cao (mức cho phép). - RUN (RUN/STOP) cho thấy drive là on hoặc off. Khi bit RUN ở mức cao,

MM nhận lệnh khởi động ở tốc độ danh định và theo chiều đã chọn trước. Để Drive làm việc, các điều kiện phải theo đúng như sau:

+ Địa chỉ Drive phải được lựa chọn từ đầu vào Active trong lệnh USS_INIT. + Đầu vào OFF2 và OFF3 phải được set ở 0. + Các đầu ra Fault và Inhibit phải là 0. - Khi đầu vào RUN là “OFF”, một lệnh được chuyển đến MM để điều khiển

giảm tốc độ động cơ xuống cho đến khi động cơ dừng. - Đầu vào OFF2 được sử dụng để cho phép điều khiển MM dừng với tốc độ

chậm. - Đầu vào OFF3 được sử dụng để cho phép điều khiển MM dừng với tốc độ

nhanh.

Network1 LD SM0.1 CALL USS_INIT,1,9600,16#00000001,Q0.0,VB1

Page 20: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 20

- Bit Resp_R báo nhận phản hồi từ Drive. Tất cả các hoạt động của MM được thăm dò thông tin trạng thái. Tại mỗi thời điểm, S7-200 nhận một phản hồi từ Drive, bit Resp_R được set lên và tất cả các giá trị tiếp theo được cập nhật.

- Bit F_ACK (Fault Acknowledge) được sử dụng để nhận biết lỗi từ Drive. Các lỗi của Drive được xoá khi F_ACK chuyển từ 0 lên 1.

- Bit Dir (Direction) xác định hướng quay mà MM sẽ điều khiển. - Đầu vào Drive (Drive address) là địa chỉ của MM mà lệnh USS_ CTRL điều

khiển tới. Địa chỉ hợp lệ: 0 đến 31. - Đầu vào Type (Drive type) dùng để lựa chọn kiểu MM. Đối với thế hệ MM3

(hoặc sớm hơn) đầu vào Type được đặt 0; còn đối với MM4 giá trị đặt là 1. - Speed-SP (speed setpoint): là tốc độ cần đặt theo tỉ lệ %. Các giá trị âm sẽ làm

động cơ quay theo chiều ngược lại. Phạm vi đặt: -200% ÷ 200%. - Error: là một byte lỗi chứa kết quả mới nhất của yêu cầu truyền thông đến

Drive. - Status: là một word thể hiện giá trị phản hồi từ biến tần. - Speed là tốc độ động cơ theo tỉ lệ %. Phạm vi: -200% đến 200%. - D - Dir: cho biết hướng quay. - Inhibit: cho biết tình trạng của the inhibit bit on the drive (0 - not inhibit, 1-

inhibit ). Để xoá bit inhibit này, bit Fault phải trở về ‘off’, và các đầu vào RUN, OFF2, OFF3 cũng phải trở về ‘off’.

- Fault: cho biết tình trạng của bit lỗi ( ‘0’ - không có lỗi, ‘1’- lỗi ). Drive sẽ hiển thị mã lỗi. Để xoá bit Fault, cần phải chữa lỗi xảy ra lỗi và set bit F_ACK.

Đầu vào / ra Kiểu dữ liệu Toán Hạng RUN, OFF2,

OFF3, F_ACK, DIR

BOOL I, Q, M, S, SM, T, C, V, C, L, Power Flow

Resp_R, Run_EN, D_Dir, Inhibit,

Fault BOOL I, Q, M, S, SM, T, C, V, C, L

Drive, Type BYTE VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LD, Constant

Error BYTE VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LD

Status WORD VW, T, C, IW, QW, SW, MW, SMW, LW, AC, AQW, *VD, *AC, *LD

Speed_SP REAL VD, ID, QD, MD, SMD, LD, AC, *VD, *AC, *LD, Constant

Speed REAL VD, ID, QD, MD, SMD, LD, AC, *VD, *AC, *LD

Bảng 6.3: Kiểu dữ liệu và toán hạng của các đầu vào/ra trong lệnh USS _CTRL Ví dụ :

Page 21: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 21

Network1: // Control box for MM4 drive 0 LD SM0.0 = L60.0 LD I0.0 = L63.7 LD I0.1 = L63.6 LD I0.2 = L63.5 LD I0.3 = L63.4 LD I0.4 = L63.3 LD 60.0 CALL USS_CTRL, L63.7,L63.6, L63.5, L63.4, L63.3, 0, 1, 100.0, M0.0, VB2, VW4, VD6, Q0.0, Q0.1, Q0.2, Q0.3 To display in STL only: Network 1 // Control box for MM4 drive 0 LD SM0.0 CALL USS_CTRL, I0.0, I0.1, I0.2, I0.3, I0.4, 0, 1, 100.0, M0.0, VB2, VW4, VD6, Q0.0, Q0.1, Q0.2, Q0.3

Page 22: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 22

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Trạng thái các bit của Standard Status Word cho Micro Mater 3

Được dự trử để dùng sau : những bit này không phải luôn ở mức 0

1= Cho phép thao tác

1=Sẵn sàng thao tác

1= Drive lỗi hiện tại

1=Sẵn sàng bắt đầu

1=Đầu ra bộ chuyển đổi là bộ đếm theo chiều kim đồng hồ

1=Đầu ra bộ chuyển đổi là chiều kim đồng hồ

1=Đầu ra bộ chuyển đổi là

1=Tần số bị giới hạn 0=Tần số không bị

1= Cho phép thứ tự thao tác 0=Khóa thứ tự thao

1= Không sử dụng ( luôn ở mức 1)

1= Cảnh báo drive

1=Switch-on inhibit

0=OFF2

Byte cao Byte thấp

Page 23: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 23

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Trạng thái các bit của Standard Status Word cho Micro Mater 4

0=Bộ chuyển đổi quá tải

1=Động cơ đang chạy hướng phải

0=OFF3

0=Động cơ quá tải

0=Kích hoạt chế hãm động cơ

1= Cho phép thao tác

0=Cảnh báo :Giới hạn dòng động cơ

1=Tần số bị giới hạn 0=Tần số không bị giới hạn

1=Cho phép thứ tự thao tác 0=Khóa thứ tự thao tác

1=Không sử dụng ( luôn ở mức 1)

1=Cảnh báo drive hiện tại

1=Switch-on

0=OFF2

1=Sẵn sàng thao tác

1=Drive lỗi hiện tại

1=Sẵn sàng bắt đầu

Byte cao Byte thấp

Page 24: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 24

6.5.3. Lệnh USS_RPM_x:

Có 3 lệnh đọc cho giao thức USS : + USS_RPM_W: là lệnh đọc một tham số Word. + USS_RPM_D: là lệnh đọc một tham số Douple Word. + USS_RPM_R: là lệnh đọc một tham số thực. Chỉ một lệnh đọc (USS_RPM_x) hoặc ghi (USS_WPM_x) có thể làm việc tại

một thời điểm. Lệnh USS_RPM_x hoàn thành việc thực hiện lệnh khi MM nhận biết cách thức

của lệnh, hoặc khi một lỗi trạng thái được thông báo. Vòng quét vẫn tiếp tục thực hiện trong khi quá trình chờ sự phản hồi.

Bit EN phải được set để cho phép truyền đi các yêu cầu, và nên giữ lại ở trạng thái đó cho đến khi bit Done được set lên - tín hiệu hoàn thành quá trình (Ví dụ: một lệnhUSS_RPM_x truyền đến MM ở mỗi vòng quét khi đầu vào XMT _REQ là “on”). Do đó, đầu vào XMT-REQ nên được kích xung khi nhận được sườn xung lên để truyền một yêu cầu cho mỗi chuyển tiếp dương của đầu vào EN.

Đầu vào/ra Kiểu dữ liệu Toán Hạng XMT-REQ BOOL I, Q, M, SM, T, C, V, L Drive BYTE VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC,

*LD, Constant Param, Index WORD VW, IW, QW, MW, SW, SMW, LW, T, C, AC,

AIW, *VD, *AC, *LD, Constant DB-Ptr DWORD &VB Value WORD

DWORD,REAL

VW, IW, QW, MW, SW, SMW, LW, T, C, AC, AQW, *VD, *AC, *LD VD, ID, QD, MD, SD, SMD, LD, *VD, *AC

Done BOOL I, Q, M, S, SM, T, C, V, L Error BYTE VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC,

*LD Bảng 6.4 Kiểu dữ liệu và toán hạng của các đầu vào/ra trong lệnh USS_RPM_x Đầu vào Drive là địa chỉ của MM mà lệnh USS_RPM_x được chuyển tới. Địa

chỉ hợp lệ là 0 đến 31. Param là số tham số (là giá trị cần đọc từ MM).

Page 25: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 25

Index là con trỏ chỉ vào giá trị để đọc. Value là giá trị của thông số phản hồi.

Đầu vào DB_Ptr được cung cấp bởi địa chỉ của bộ đệm 16 byte. Trong lệnh USS_RPM_x, bộ đệm này dùng chứa kết quả của lệnh đưa đến từ MM. Khi lệnh USS_RPM_x đã hoàn tất, đầu ra Done được set lên và đầu ra Error (kiểu byte) và đầu ra Value chứa các kết quả của việc thực hiện lệnh. Đầu ra Error và Value sẽ không hợp lệ cho đến khi đầu ra Done được set lên. Ví dụ:

STL NETWORD1 // The two contacts must have the same address LD I0.0 // Same address as the next contact = L60.0 LD I0.0 EU = L63.7 LD L60.0 CALL USS_RPM_W, L63.7,0, 3, &VB100, M0.0, VB10, VW200 6.5.4. Lệnh USS _WPM _x:

Có 3 lệnh ghi cho giao thức USS: + USS_WPM_W: là lệnh ghi một tham số Word. + USS_WPM_D: là lệnh ghi một tham số Double Word. + USS _WPM_R: là lệnh ghi một tham số thực.

Page 26: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 26

Chỉ một lệnh đọc (USS _WPM _x) hoặc ghi (USS _WPM_x) có thể làm việc tại một thời điểm.

Lệnh USS _WPM_x hoàn thành việc thực hiện lệnh khi MM nhận biết cách thức của lệnh, hoặc khi một lỗi trạng thái được thông báo. Vòng quét vẫn tiếp tục thực hiện trong khi quá trình chờ sự phản hồi.

Bit EN phải được set để cho phép truyền đi các yêu cầu, và nên giữ lại ở trạng thái đó cho đến khi bit Done được set lên - tín hiệu hoàn thành quá trình ( Ví dụ: một lệnh USS - WPM - x truyền đến MM ở mỗi vòng quét khi đầu vào XMT_REQ là “on” ). Do đó, đầu vào XMT-REQ nên được kích xung khi nhận được sườn xung lên để truyền một yêu cầu cho mỗi chuyển tiếp dương của đầu vào EN.

Đầu vào Drive là địa chỉ của MM mà lệnh USS _WPM_x được chuyển tới. Địa chỉ hợp lệ là 0 đến 31.

Param là số tham số. Index là biến chỉ vào giá trị để đọc. Value là giá trị của thông số cần ghi đến bộ nhớ RAM trong biến tần. Đối với

MM3 cũng có thể ghi giá trị này vào EEPROM, bằng cách cài đặt ở tham số P971. Đầu vào DB-Ptr được cung cấp bởi địa chỉ của bộ đệm 16 byte. Trong lệnh

USS _WPM_x, bộ đệm này dùng chứa kết quả của lệnh đưa đến từ MM. Khi lệnh USS_WPM_x đã hoàn tất, đầu ra Done được set lên và đầu ra Error

(kiểu byte) chứa các kết quả của việc thực hiện lệnh. Khi đầu vào EEPROM được set lên, lệnh sẽ ghi vào cả bộ nhớ RAM và EEPROM của biến tần. Khi đầu vào EEPROM không được set thì lệnh này sẽ chỉ ghi vào bộ nhớ RAM vì MM3 không hỗ trợ chức năng này, do đó, cần phải chắc chắn rằng đầu vào không được set để lệnh chỉ làm việc với MM3.

Đầu vào/ra Kiểu dữ liệu Toán Hạng XMT-REQ BOOL I, Q, M, SM, T, C, V, L EEPROM BOOL I, Q, M, S, SM, T, C, V, L

Drive BYTE VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LD, Constant

Param, Index WORD VW, IW, QW, MW, SW, SMW, LW, T, C, AC, AIW, *VD, *AC, *LD, Constant

DB-Ptr DWORD &VB Value WORD

DWORD,REAL VW, IW, QW, MW, SW, SMW, LW, T, C,

AC, AQW, *VD, *AC, *LD VD, ID, QD, MD, SD, SMD, LD, *VD,

*AC Done BOOL I, Q, M, S, SM, T, C, V, L Error BYTE VB, IB, QB, MB, SB, SMB, LB, AC, *VD,

*AC, *LD Kiểu dữ liệu và toán hạng của các đầu vào/ra trong lệnh USS_WPM_x

Page 27: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 27

Ví dụ :

* Bảng mã báo lỗi chấp hành trong tập lệnh USS :

Mã báo lỗi Mô tả (Eror Code) (Description)

0 Không có lỗi 1 Drive không có phản ứng 2 Kiểm lỗi tổng từ phản ứng của drive đã được phát hiện 3 Cờ báo lỗi từ phản ứng của drive đã được phát hiện 4 Nguyên nhân lỗi là do nhiễu từ chương trình người dùng 5 Lệnh không hợp lệ đã được thử 6 Đã cấp địa chỉ truyền không hợp lệ 7 Port truyền thông đã được thiết lập cho giao thức USS 8 Port truyền thông tin đang bận xử lý lệnh 9 Tốc độ động cơ đưa vào đã vượt giới hạn 10 Độ dài truyền phản ứng không đúng 11 Ký tự đầu tiên của phản ứng truyền không đúng

12 Độ dài ký tự trong phản ứng truyền thông không được hỗ trợ bởi tập lệnh USS 13 Phản ứng từ drive không đúng 14 Thiết lập không đúng địa chỉ DB_Ptr 15 Số tham số thiết lập không đúng 16 Đã chọn giao thức không hợp lệ 17 USS đã được kích hoat ;thay đổi không cho phép 18 Đưa ra tốc độ truyền thông hợp lệ 19 Không có truyền thông: Drive không kích hoạt 20 Tham số hoặc giá trị trong phản ứng truyền thông đúng hoặc chứa mã lỗi 21 Giá trị DW đã được lấy lại thay thế cho từ ( word ) yêu cầu 22 Giá trị W đã được lấy lại thay thế cho từ kép(double-word)yêu cầu

Page 28: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 28

6.6. Kết nối và cài đặt MicroMaster Series 3 (MM3): 6.6.1. Kết nối MM3:

Có thể sử dụng cáp chuẩn PROFIBUS và các đầu nối để kết nối S7-200 với MicroMaster Series 3. * Chú ý: Các thiết bị kết nối với điện thế khác nhau có thể sẽ là nguyên nhân dẫn tới việc phát sinh dòng điện không mong muốn trong cáp kết nối. Dòng điện này là nguyên nhân dẫn tới các lỗi truyền thông hoặc làm hỏng thiết bị. Cần phải chắc chắn rằng tất cả các thiết bị được kết nối vào một cáp truyền thông đều có cùng dòng điện định mức hoặc được cách ly để ngăn ngừa dòng điện phát sinh không mong muốn.

6.6.2. Cài đặt MM3: Trước khi kết nối đến S7-200, cần phải chắc chắn rằng có đủ các thông số của MM. Sử dụng các keypad có sẵn trên biến tần để cài đặt như sau: 1. Reset biến tần để cài đặt lại ( tuỳ chọn ). Nhấn phím P: hiển thị P000. Nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P944. Nhấn P để nhập thông số: P944 = 1 2. Cho phép truy xuất để đọc/ghi tất cả các thông số. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P009. Nhấn P để nhập: P009 = 3 3. Kiểm tra lại việc cài đặt thông số động cơ cho biến tần. Việc cài đặt này phải theo loại động cơ được sử dụng. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị thông số cần cài đặt. Nhấn P để nhập: P081 = Tần số định mức của động cơ (Hz). P082 = Tốc độ định mức của động cơ (RPM). P083 = Dòng điện định mức của động cơ (A). P084 = Điện áp định mức của động cơ (V). P085 = Công suất định mức của động cơ (kW/HP). 4. Đặt chế độ điều khiển tại chỗ hay từ xa ( Local/Remove ). Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P910. Nhấn P để nhập: P910 = 1 ( Remove ) 5. Định giá trị tốc độ Baud cho chuẩn RS-485. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P092. Nhấn P để nhập, nhấn phím mũi tên để hiển thị đúng giá trị tốc độ Baud cho chuẩn RS-485: P092 3 (1200 baud) 4 (2400 baud) 5 (4800 baud) 6 (9600 baud - chuẩn) (19200 baud) 6. Nhập địa chỉ Slave. Mỗi drive (tối đa 31) có thể vận hành qua một bus. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P091. Nhấn P để nhập. Nhấn phím mũi tên để hiển thị địa chỉ mong muốn, nhấn P nhập: P091 = 0 31

Page 29: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 29

7. Định thời gian tăng tốc (tuỳ chọn). Với thời gian đặt này tốc độ động cơ sẽ tăng dần cho đến khi đạt max. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P002. Nhấn P để nhập: P002 = 0 650.00 8. Định thời gian giảm tốc (tuỳ chọn). Sau khoảng thời gian này động cơ sẽ giảm dần tốc độ cho đến khi dừng. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P003. Nhấn P để nhập: P003 = 0 650.00 lần truy nhập dữ liệu. 9.Thời gian này được tính sau khi một dữ liệu được nhận. Nếu một dữ liệu của bức điện không được nhận, biến tần sẽ ngắt và hiển thị mã lỗi F008. Đặt giá trị 0 để ngừng việc điều khiển. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P093. Nhấn P để nhập. Nhấn phím mũi tên để nhập giá trị mong muốn: P093 = 0 240 (thời gian được tính bằng giây) 10. Serial Link Nominal System Setpoint. Giá trị này có thể thay đổi, nhưng phải tương ứng 50Hz hoặc 60Hz, được định nghĩa tương ứng với giá 100% giá trị cho PV hoặc SP. Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P094. Nhấn P để nhập. Nhấn các phím mũi tên để chọn giá trị mong muốn: P094 = 0 400.00 11. Tương thích USS (tuỳ chọn). Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P095. Nhấn P để nhập: P095 = 0 độ phân giải 0,1Hz độ phân giải 0,01Hz 12. EEPROM điều khiển (tuỳ chọn). Nhấn P, nhấn phím mũi tên lên hoặc xuống cho đến khi hiển thị P971. Nhấn P để nhập: P971 = 0: Thay đổi các thông số cài đặt (bao gồm cả P971) bị mất khi mất nguồn. 1: Tham số cài đặt được lưu lại trong suốt thời gian mất nguồn. 13: Hiển thị vận hành. Nhấn P để thoát. 6.7. Kết nối và cài đặt MicroMaster Series 4 (MM4):

6.7.1. Kết nối MM4: Để kết nối với MM4, ta sử dụng cáp RS-485 (nối trực tiếp S7-200 với MM4). Ngoài ra, còn có thể dùng cáp chuẩn PROFIBUS và các đầu nối để kết nối.

* Chú ý: Các thiết bị kết nối với điện thế khác nhau có thể sẽ là nguyên nhân dẫn tới việc phát sinh dòng điện không mong muốn chạy trong cáp kết nối. Dòng điện này là nguyên nhân dẫn tới các lỗi truyền thông hoặc làm hỏng thiết bị. Cần phải chắc chắn rằng tất cả các thiết bị được kết nối vào một cáp truyền thông đều có cùng dòng điện định mức hoặc được cách ly để ngăn ngừa dòng điện phát sinh không mong muốn. Nếu S7-200 là điểm nút cuối trong mạng, hoặc nếu kết nối là điểm - điểm (point-to-point), cần phải sử dụng đầu A1 và B1 (không phải A2 và B2) của đầu cắm.

Page 30: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 30

6.7.2. Cài đặt MM4: Trước khi kết nối đến S7-200, cần phải chắc chắn rằng có đủ các thông số của MM. Sử dụng các keypad có sẵn trên biến tần để cài đặt như sau:

1. Reset để cài đặt lại cho hệ thống (tuỳ chọn): P0010 = 30 P0970 = 1 Nếu bỏ qua bước này, các thông số tiếp theo sẽ được set theo các giá trị: USS PZD length: P2012 Index0 = 2 USS PKW length: P2013 Index0 = 127

2. Cho phép truy nhập đọc/ghi các thông số: P0003 = 3

3. Kiểm tra cài dặt thông số động cơ cho biến tần: P0304 = điện áp động cơ (V) P0305 = dòng điện động cơ (A) P0307 = công suất động cơ (W) P0310 = tần số động cơ (Hz) P0311 = tốc độ động cơ (RPM) Các thông số cài đặt này có thể thay đổi tuỳ thuộc vào loại động cơ được sử dụng.

Trước khi cài đặt các thông số P0304, P0305, P0307, P0310, P0311, cần thiết phải set thông số P0010 lên 1 trước. Sau khi kết thúc việc cài đặt, đặt thông số P0010 về 0. Các thông số P0304, P0305, P0307, P0310, P0311 chỉ có thể thay đổi trong chế độ “quick commissioning”.

4. Định chế độ điều khiển từ xa hay tại chỗ (Local/Remove): P0700 Index0 = 5

5. Đặt lựa chọn tần số setpoint cho USS ở cổng COM P1000 Index0 = 5

6. Định thời gian tăng tốc (tuỳ chọn), là thời gian để động cơ tăng tốc đến tốc độ max: P1120 = 0 650,00 (s).

7. Định thời gian giảm tốc (tuỳ chọn), là thời gian để động cơ giảm dần tốc độ cho đến khi dừng:

P1121 = 0 650,00 (s). 8. Đặt tần số tham chiếu:

P2000 = 1 đến 650 Hz 9. Tiêu chuẩn hoá USS:

P2009 Index0 = 0 10. Đặt giá trị tốc độ baud cho chuẩn RS-485:

P2010 Index0 = 4 (2400 baud) 5 (4800 baud) 6 (9600 baud) 7 (19200 baud) 8 (38400 baud) 9 (57600 baud)

10 (115200 baud)

Page 31: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 31

11. Nhập địa chỉ Slave: P2011 Index0 = 0 đến 31

12. Đặt thời gian trống giữa hai bức điện, đây là khoảng thời gian cho phép giữa hai lần truy nhập dữ liệu bức điện. Nó được sử dụng để cắt biến tần trong khoảng thời gian xảy ra lỗi truyền thông. Thời gian này tính từ lúc sau khi một dữ liệu hợp lệ của bức điện được nhận. Nếu có một dữ liệu không được nhận, biến tần sẽ ngắt và hiển thị mã lỗi F0070. Đặt giá trị 0 để ngừng điều khiển.

P2014 Index0 = 0 đến 65,535 ms 13. Chuyển dữ liệu từ RAM đến EEPROM:

P0971 = 1 (bắt đầu chuyển). Lưu cài đặt sự thay đổi các thông số vào EEPROM.

Page 32: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 32

CHỦ ĐỀ 6: TRUYỀN THÔNG MẠNG PPI

7.1 Giới thiệu về truyền thông PPI Tất cả các đơn vị xử lý trung tâm S7 200 đều được trang bị module giao tiếp PPI

(Point to point interface). Giao tiếp PPI đồng thời cũng cho phép liên kết nhiều module xử lý trung tâm S7 200 (có thể đến 31 CPU, nếu sử dụng bộ lặp thì số trạm có thể lên tới 125) và nối với thiết bị lập trình, hiển thị hoặc vận hành. Trao đổi dữ liệu theo nguyên tắc chủ (master), tớ (slave). Tốc độ truyền thông chậm, từ 9600 baud (bit/s) đến 19200 baud Nhờ tính chất tích hợp trong giao tiếp, một vài bộ xử lý trung tâm S7 200 cũng có thể nối vào hệ thống mạng MPI hoặc Profibus-DP để sử dụng như là thiết bị phục vụ, do đó việc trao đổi dữ liệu với các trạm Simatic cùng với các dãy trạm Simatic khác hoặc trung tâm điều khiển sẽ được thực hiện. Các CPU làm chủ của mạng này phải thực hiện được các lệnh NETR (đọc mạng), NETW (ghi mạng) như: CPU 214, CPU 215-2DP, CPU 221, CPU 222, CPU 224, CPU 224-XP, CPU 226, CPU 226-XM…còn các CPU 212 không thực hiện được lệnh NETR, NETW nên chỉ có thể là tớ. Trước khi thực hiện việc truyền thông, cần phải khai báo PPI Protocol trong byte đặt biệt: SMB30, tốt nhất là tại vòng quét đầu tiên. PPI Protocol là bộ xác lập kiểu truyền thông nối tiếp 11 bit cho PLC, bao gồm: + 1 bit Start (bắt đầu một message). +8 bit dữ liệu. + 1 bit kiểm tra chẵn lẽ. + 1 bit Stop (kết thúc một message). Cho phép truyền thông giữa một chủ với nhiều tớ hoặc nhiều chủ và nhiều tớ. Nội dung của Byte SMB30 như sau:

p p d b b b m m

Tốc độ truyền (baud): 000: 38,400 bps 001: 19,200 bps 010: 9,600 bps 011: 4,800 bps 100: 2,400 bps 101: 1.200 bps 110: 115,200 bps 111: 57,600 bps

Kiểu kiểm tra (parity): 00: Không kiểm tra 01: Kiểm tra chẵn 10: Không kiểm tra 11: Kiểm tra lẻ

Số bit truyền: 0: 8 bit 1: 7 bit

Kiểu truyền thông: 00: PPI / Slave mode 01: Freeport 10: PPI / Master mode 11: không sử dụng

Page 33: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 33

Chú ý: Khi chọn mã mm = 10 (PPI master) trong Bit 0 và Bit 1 trong thanh ghi

SMB30 thì PLC đó sẽ trở thành chủ trong mạng và cho phép thực hiện lệnh NETR/NETW.

Trước khi thực hiện việc đọc (NETR) hoặc gởi (NETW) thì phải đưa vào bộ đệm nhận và truyền tương ứng. Bộ đệm truyền thông có độ dài tối đa là 23 byte, chia làm 2 vùng:

+ Vùng các thông tin quản lý (gồm 7 byte). + Vùng dữ liệu (từ 1 đến 16 byte).

Giả sử trạm A dùng bộ đệm nhận và bộ đệm truyền để giao lưu với trạm B có cấu trúc như sau (trong đó A là trạm chủ): Bộ đệm nhận (lệnh NETR) Bộ đệm truyền (lệnh NETW) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0 Các bit trạng thái 0 Các bit trạng thái 1 Địa chỉ trạm B 1 Địa chỉ trạm B 2 2 3 3 4 4 5

Con trỏ gián tiếp chỉ vùng dữ liệu cần đọc của trạm B

5

Con trỏ gián tiếp chỉ vùng dữ liệu cần ghi của trạm B

6 Độ dài mảng dữ liệu cần đọc 6 Độ dài mảng dữ liệu cần truyền 7 8 . . . 22

Byte1 . . . .

Byte 16

7 8 . . .

22

Byte1 . . . .

Byte 16

Page 34: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 34

Byte đầu tiên gồm 8 bit trạng thái truyền thông có cấu trúc như sau: 7 6 5 4 3 2 1 0

7.2. Các lệnh sử dụng trong truyền thông PPI

Ví dụ: Tạo sự truyền thông giữa 2 CPU với nhau bằng cách sử dụng lệnh NETR, NETW với yêu cầu công nghệ như sau:

Có 2 CPU: CPU1 chủ (master) và CPU2 tớ (Slave). CPU2 điều khiển băng chuyền, thực hiện việc đếm sản phẩm và lưu vào miền nhớ VW100. CPU1 sẽ luôn đọc

0

0 Không có lỗi truyền thông. 1 Lỗi quá thời gian, trạm B không trả lời. 2 Lỗi tín hiệu nhận (chẵn/lẻ,…). 3 Lỗi ghép nối (lặp địa chỉ hoặc lỗi phần cứng). 4 Lỗi xếp hàng, quá nhiều lệnh NETR và NETW. 5 Không khai báo PPI protocol trong SMB30. 6 Lỗi tham số.Bộ đệm truyền thông có tham số sai. 7 Trạm B bận. 8 Lỗi tổ chức. 9 Lỗi dữ liệu, thông báo…

0 Không có lỗi 1 Có lỗi

0 Không làm việc 1 Có làm việc

0 Chưa thực hiện xong việc truyền thông 1 Thực hiện xong việc truyền thông

Lệnh NETR: Lệnh đọc một mảng dữ liệu của một trạm khác trong mạng qua cổng PORT (kiểu byte). Kiểu truyền thông và trạm liên kết được xác định bằng nội dung quả lý bộ đệm truyền thông được chỉ thị trong lệnh bằng toán hạng TBL (VB, MB, *VD, *AC). Lệnh NETW: Lệnh ghi một mảng dữ liệu tới một trạm khác trong mạng qua cổng PORT (kiểu byte). Kiểu truyền thông và trạm liên kết được xác định bằng nội dung quản lý bộ đệm truyền thông được chỉ thị trong lệnh bằng toán hạng TBL (VB, MB, *VD, *AC).

Page 35: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 35

số sản phẩm mà CPU2 đếm được (bằng lệnh NETR), và khi số sản phẩm đếm được bằng 10 thì CPU1 xóa số sản phẩm mà CPU2 đếm và đồng thời phát tín hiệu báo đèn Q0.0 trong vòng 2s (bằng lệnh NETW).

Để CPU chủ có thể đọc và ghi dữ liệu đến CPU tớ thì cần phải có bộ đệm truyền thông đọc và gửi. Ta thiết lập bộ đệm truyền thông đó như sau:

Bộ đệm để đọc thông tin

từ trạm tớ Bộ đệm để gửi thông tin đến

trạm tớ VB200 Các bit trạng thái VB300 Các bit trạng thái VB201 Địa chỉ trạm tớ (2) VB301 Địa chỉ trạm (2) VD202 VD302

Con trỏ chỉ vùng dữ liệu cần đọc của trạm tớ

&VB100

Con trỏ gián tiếp chỉ vùng dữ liệu cần ghi của trạm

&VB100

VB206 2 byte VB206 2 byte VW207 Nơi lưu giữ dữ liệu đọc từ

trạm 2 về VW307 0 (xóa số sản phẩm mà CPU

tớ đếm được) Chương trình điều khiển:

Page 36: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 36

CHỦ ĐỀ 7: ĐIỀU KHIỂN PID

8.1 Giới thiệu - Lệnh này tính toán vòng lặp PID theo các đầu vào và những thông số từ bảng được định địa chỉ bởi TBL. - Thực hiện khi S0=1 (STL) hoặc có một dòng tín hiệu (power flow) trong LAD. - [TBL] : địa chỉ của byte đầu tiên trong bảng. - [Loop]: 0÷7 (nghĩa là có tối đa 8 lệnh PID trong một chương trình). Chú ý: Hai lệnh PID không được cùng số [Loop] trong một chương trình. - Bảng PID bao gồm 9 tham số dùng để điều khiển hoạt động của vòng lặp.

1. Giá trị tức thời và giá trị kế trước của biến điều khiển. 2. Giá trị đặt (setpoint). 3. Giá trị xử lý (output). 4. Hệ số khuếch đại (gain). 5. Thời gian lấy mẫu (sample time). 6. Hệ số tích phân (integral time-reset). 7. Hệ số vi phân (derivative time-rate). 8. Tổng các giá trị tích phân (integral sum) chứa trong BIOS.

- Việc lấy mẫu có hai cách: 1. Đặt trong một ngắt thời gian. 2. Thực hiện trong một chương trình chính qua kiểm soát của bộ định thời.

Chú ý: Thời gian lấy mẫu tương ứng phải được đưa vào bảng dữ liệu của lệnh. - Ở trong trạng thái ổn định thì sai số gần bằng không nghĩa là giá trị yêu cầu (SP: Setpoint) bằng giá trị phản hồi (PV: Process Variable). - Nguyên lý của một bộ PID được thể hiện trong phương trình sau:

M(t) = Kc*e + Ki* t

edt0

+ Mi + Kd* dtde

Trong đó: (1) M(t): Giá trị ra. Mi : Giá trị ban đầu. e = SP - PV: là giá trị sai lệch - PID trên PC- PLC- Thiết bị điều khiển số đều tiến hành lấy mẫu và lượng tử hoá các biến theo (1) như sau:

Mn = Kc*en + Ki*

n

i 1ei + Mi + Kd*(en - en-1) (2)

en = SPn - PVn en-1 = SPn-1 - PVn-1 Nhận xét: Thành phần tỉ lệ: Chỉ phụ thuộc vào thời điểm hiện tại n. Thành phần vi phân: Phụ thuộc vào thời điểm hiện tại n và thời điểm trước n-1. Thành phần tích phân: Tổng tất cả các thành phần từ khi bắt đầu.

Nhưng trong kĩ thuật số, lưu lại tất cả các thông số là điều không cần thiết. - Do đó (2) trở thành: Mn = Kc*en + Ki*en + MX + Kd*(en - en-1) (3)

Page 37: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 37

MX: Giá trị tích phân của thời điểm lấy mẫu kế trước (n-1). Từ (3) ta suy ra: Mn = MPn + MIn + MDn (4) Các thành phần trong công thức (4) được xác định như sau: MPn: MPn = Kc*(SPn - PVn) (5) Kc: Hệ số đặc trưng cho độ nhạy đầu ra của PID. MIn: Tỉ lệ với tổng các sai số qua một khoảng thời gian.

MIn = Kc. TiTs .(SPn - PVn) + MX (6)

Ts: Thời gian lấy mẫu. Ti : Thời gian tích phân. MX: Tổng các giá trị tích phân. (Sau khi tính giá trị MIn thì BIOS thay thế MX bằng MIn. Giá trị MIn này có khả năng bị cắt giới hạn hoặc bị điều chỉnh). Giá trị MX, Mi ban đầu được lấy ngay giá trị đầu ra của PID ngay tại thời điểm thực hiện lệnh đầu tiên. MDn:

MDn = Kc.TsTd .(PVn-1 - PVn) (7)

Ts: Thời gian lấy mẫu. Td: Thời gian vi phân.

Thực tế không cần lấy lại giá trị sai số kế trước en-1 mà chỉ cần lấy đại lượng xử lý kế trước PVn-1. Ngay ban đầu lấy PVn-1 = PVn. - Thực tế ta không nhất thiết phải điều khiển toàn phần PID mà có thể điều khiển theo: P ( đặt Ti = ∞ ; Td = 0) tuỳ theo cách đặt tham số. PI ( đặt Td =0). PD ( đặt Ti = ∞ ). - Một bộ điều khiển PID gồm có hai đại lượng: đầu vào là đại lượng yêu cầu và đầu ra là đại lượng thực tế.

Được đo (mA hoặc V). Chuyển đổi về giá trị thích hợp (-32000 ÷ 32000). Chuẩn hoá [-1.0 ÷ 1.0].

Các bước này đều cần thiết cho một bộ điều khiển PID, bộ này đòi hỏi các giá trị đầu vào là những giá trị số thực (dấu phẩy động) nằm trong khoảng từ [0.0 ÷ 1.0].

Các giá trị đầu vào quy về điện áp trong khoảng (0 ÷ 10 VDC) hoặc dòng điện (0 ÷ 20 mADC).

Trước hết những giá trị này phải được đổi thành các số thực 32bit (dấu phẩy động).

Chuẩn hóa về khoảng [0.0 ÷ 1.0] theo phương trình: Nnorm = Nraw/Span + Offset (8) Nnorm: Giá trị đã chuẩn hoá, đại diện cho một đại lượng thật. Nraw: Giá trị thực chưa chuẩn hoá, đại diện cho một đại lượng thật.

Page 38: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 38

Span: Hiệu của giá trị lớn nhất (có thể có) và giá trị nhỏ nhất (có thể có) của giá trị chưa chuẩn hoá. Đối với CPU S7-200 thường là: 32000 - 0 = 32000, khi đó Offset = 0 (đối với đại lượng không đổi dấu). Hay 32000 - (- 32000 ) = 64000 (đối với đại lượng có đổi dấu, là những đại lượng vừa có thể có giá trị dương hoặc âm). Quá trình ngược lại: Biến đổi, đưa về thang giá trị thích hợp cho đầu ra từ giá trị đầu ra đã được chuẩn hóa trong khoảng từ [0.0 ÷ 1.0]. Theo (8): NRaw <=> RScale = (MNorm - Offset)*Span (9) RScale: Giá trị thích hợp cho đầu ra, đại diện cho đại lượng thật. MNorm: Giá trị đầu ra chuẩn hóa, đại diện cho đại lượng thật. Chú ý: Một bộ điều khiển PID gồm hai đầu vào là đại lượng yêu cầu và đại lượng thực tế được ứng dụng trong việc đo nhiệt độ, áp suất, tốc độ,… Để tính toán trong bộ điều khiển, chúng phải được đo, chuyển đổi, chuẩn hoá (nếu cần). Bộ PID đòi hỏi các giá trị đầu vào là những số thực, có dấu phẩy động, thuộc khoảng [0.0 ÷ 1.0].

Vòng lặp điều khiển thuận khi Kc > 0 (hệ số khuyếch đại). Vòng lặp điều khiển đảo khi Kc > 0 (hệ số khuyếch đại). Trong trường hợp không có thành phần P thì xét dấu của hai hệ số Ti và Td.

- Trong trường hợp đầu ra vượt quá giới hạn [0.0 ÷ 1.0] thì nó sẽ bị chặn theo phương trình sau: MX = 1.0 – ( MPn + MDn), (Khi đầu ra > 1.0) (10) MX = – ( MPn + MDn), (Khi đầu ra < 0.0) (11) MX: Giá trị BIOS đã được điều chỉnh. - Giá trị BIOS có thể thay đổi được [0.0 ÷ 1.0] ngay trước khi thực hiện lệnh PID nhưng phải chú ý nó là số thực nằm trong khoảng [0.0 ÷ 1.0]. - Một bộ điều khiển PID có thể hoạt động trong hai chế độ Auto hoặc Manual. Nhưng hai chế độ này do người lập trình thiết lập, không có sẵn trong S7-200.

Chế độ tự động (Auto) khi nó thực hiện phép tính một cách tuần hoàn và liên tục. Trường hợp ngược lại được xem là chế độ Manual.

Định dạng bảng [TBL] các tham số của một bộ PID bao gồm 36 byte như sau: Offset Field Format Type Description

0 (PVn) DW in [0.0 ÷ 1.0] 4 (SVn) DW in [0.0 ÷ 1.0] 8 (Mn) - Output DW in/out [0.0 ÷ 1.0]

12 Kc - Gain DW in Có thể (+) hoặc (-) 16 Ts - Sample time DW in Số dương, (s) 20 Ti - Integral time DW in Inminute, (+) 24 Td - Dirivative time DW in 28 BIOS - MX DW in/out [0.0 ÷ 1.0] 32 PVn-1 - Previous process variable DW in/out

7.2. Ứng dụng

Page 39: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 39

Ví dụ: Một bể nước được dùng để giữ một áp lực cột nước cố định. Nước chảy ra khỏi bể với tốc độ thay đổi không xác định. Để đạt mục đích người ta sử dụng một bơm nước có lưu lượng điều chỉnh được một cách liên tục để bơm nước vào bể. Giá trị yêu cầu trong ví dụ này là phải giữ mức nước trong bể ở 75%. Giá trị thực tế chính là mức nước đo được, thay đổi từ 0% (khi bể cạn) đến 100% (khi bể đầy). Giá trị xử lý (đầu ra bộ điều khiển PID) là vận tốc bơm, điều chỉnh được từ 0% đến 100% lưu lượng danh định. Giá trị yêu cầu, không thay đổi, sẽ được ghi trực tiếp vào bảng các tham số của bộ PID. Giá trị thực tế là giá trị không đổi dấu (chỉ dương - unipolar) và là giá trị tương tự đọc vào từ bộ đo mức. Giá trị đầu ra PID cũng là giá trị tương tự, unipolar, dùng để diều khiển tốc độ bơm. Cả hai giá trị tương tự này, đối với S7-200, nằm trong khoảng từ 0 đến 32000. Ta sử dụng bộ điều khiển PI (chỉ bao gồm thành phần tỉ lệ và tích phân, không chứa thành phần vi phân). Các hằng số điều khiển được tính toán dựa trên những thông số kỹ thuật của hệ điều khiển và có thể điều chỉnh trong quá trình khai thác thực tế. Ở đây ta không đi sâu vào vấn đề này. Kc = 0.25 Ts = 0.1 s Ti = 30 min Bơm được điều khiển bằng tay cho đến khi mức nước trong bể đạt 75% thì chuyển sang chế độ tự động và mở van cho nước chảy ra khỏi bể. Đầu vào I0.0 được sử dụng để đổi chế độ: I0.0 = 0 là Manual; I0.0 = 1 là Auto. Khi ở trong chế độ Manual, tốc độ bơm được xác định bởi số thực trong khoảng [0.0 - 1.0] ghi ở VD108. Ta định dạng bảng [TBL] các tham số của một bộ PID như sau:

VD100 PVn Giá trị tức thời VD104 SPn Giá trị đặt trước VD108 Mn Giá trị xử lý (đầu ra) VD112 Kc Hệ số khuyếch đại VD116 Ts Thời gian lấy mẫu VD120 Ti Hệ số tích phân VD124 Td Hệ số vi phân VD128 Mx VD132 PVn-1

Page 40: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 40

Chương trình thực hiện: Chương trình chính Chương trình con SBR_0

Trong một vòng quét đầu tiên gọi chương trình con SBR_0

Đặt giá trị SP (setpoint) =75% Kc =0,25, hệ số khuyếch đại Ts = 0,1s Ti = 30, hệ số tích phân Td = 0, hệ số vi phân Đặt thời gian 100ms cho ngắt Timer 0 Kích ngắt Timer 0 Khai báo ngắt toàn cục

Page 41: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 41

Chương trình ngắt INT_0: Chương trình chuẩn hóa, tính toán PID và xuất kết quả ra đầu ra Analog

Nhận giá trị từ kênh vào AIW0 và chuyển sang số nguyên kép Đổi số nguyên kép sang số thực Chuẩn hóa (trong khoảng 0.0 – 1.0) VD100 : Từ kép chứa giá trị PVn

Khi I0.0 = 1 thì chuyển sang chế độ Auto, tính toán vòng lặp PID (Loop 0) với bảng định dạng tại VB100

Page 42: 200_NANG_CAO_in_

Giáo trình S7-200 nâng cao TTNC ĐIỆN – ĐIỆN TỬ 54 – Nguyễn Lương Bằng – TP Đà Nẵng

Trang 42

Nhân giá trị đầu ra đã được chuẩn hóa của PID (Mn: VD108) với 32000 để chuyển thành giá trị thích hợp Làm tròn số thực 32 bit thành số nguyên 32 bit Chuyển đổi số nguyên kép thành số nguyên và xuất tín hiệu ra kênh ra Analog AQW0