Bài tập ứng dụng liên quan 53

Một phần của tài liệu Giáo trình lập trình ứng dụng PLC (nghề cơ điện tử) (Trang 36 - 56)

2. Lập trình các lệnh chức năng so sánh 49

2.4. Bài tập ứng dụng liên quan 53

- Mơ tả hoạt động:

Thang máy xây dựng hoạt động như sau:

Khi nhấn nút nhấn nâng thì gàu sẽ chạy lên đến cơng tắc giới hạn trên thì gàu dừng lại.Khi nhấn nút nhấn hạ thì gàu sẽ hạ xuống đến cơng tắc giới hạn dưới thì gàu dừng lại. Trong khi đang di chuyển nếu nhấn nút nhấn dừng thì gàu dừng lại và sau đĩ cĩ thể nâng gàu lên hay hạ gàu xuống theo mong muốn.

Yêu cầu:

- Viết bảng địa chỉ vào/ra - Viết chương trình điều khiển

Hướng dẫn: * Bảng địa chỉ vào/ra:Chương trình(hs viết) BÀI 2: LẬP TRÌNH CÁC PHÉP TỐN SỐ CỦA PLC Mã mơ đun: MĐ CĐT21 - 2 Xác định ngõ vào/ra Ký hiệu Địa chỉ Chú thích

S1 I0.0 Nâng, thường mở S2 I0.1 Hạ, thường mở S3 I0.2 Dừng, thường đĩng

S4 I0.3 Giới hạn trên thường đĩng S5 I0.4 Giới hạn dưới thường đĩng K1 Q0.0 Gàu chạy lên

K2 Q0.1 Gàu chạy xuống H0 Q0.2 Đèn báo nâng H1 Q0.3 Đèn báo hạ H2 Q0.4 Đèn báo dừng

Giới thiệu:

Trong bài này sẽ trình bày và hướng dẫn cụ thể về các bước lập trình các lệnh chức năng truyền dẫn và các lênh về chức năng so sánh

Mục tiêu:

Sau khi học xong bài học này người học cĩ khả năng:

+ Kiến thức:

- Phân tích được cấu trúc của các lệnh chức năng truyền dẫn và các lệnh chức năng so sánh

+ Kỹ năng:

- Lâp trình được các lệnh chức năng truyền dẫn và các lệnh chức năng so sánh theo yêu cầu kỹ thuật.

- Sửa được các lỗi thường gặp khi lập trình điều khiển. - Kiểm tra chính xác điều kiện hoạt động của thiết bị.

+ Năng lực tự chủ và trách nhiệm:

- Rèn luyện tính tỷ mỉ, chính xác và an tồn vệ sinh cơng nghiệp. - Tự chịu trách nhiệm khi thực hiện các việc được giao.

Nội dung:

1. Lập trình các lệnh chức năng truyền dẫn 1.1. Các lệnh chức năng truyền dẫn

1.1.1. Truyền Byte, Word, Doubleword.

* Nhĩm chức năng tốn học:

Các lệnh trong nhĩm chức năng tốn học cơ bản cĩ ký hiệu tương tự nhau và tác động lên thanh ghi trạng thái như nhau, cĩ ký hiệu như sau:

EN l ng vo cho php lệnh tốn học hoạt động (Enable Input). Biểu diễn tốn

hạng l dữ liệu dạng số nhị phn. Biểu diễn tốn hạng l địa chỉ dạng: I, Q, L, M, D. ENO l ng cho php ng ra hoạt động (Enable Output). Ng ra ENO cĩ cng

trạng thi với ng vo EN. Loại tốn hạng l dữ liệu dạng số nhị phn. Loại tốn hạng l địa chỉ dạng: I, Q, L, M, D.

hiện lệnh tốn học, cĩ tốn hạng l dữ liệu ty vo dạng chuyển đổi như số nguyn

16 bit, số nguyn kp 32 bit, số thực, tốn hạng l địa chỉ: I, Q, L, M, D hoặc l hằng số nếu l số nguyn. Khi EN=1 thì lệnh tốn học thực hiện v gi trị được đọc vo địa chỉ ng ra OUT.

OUT: Ng ra l kết quả của lệnh tốn học. Cĩ tốn hạng l dữ liệu ty vo dạng

chuyển đổi như số nguyn 16 bit, số nguyn kp 32 bit, số thực, tốn hạng l địa chỉ: I, Q, L, M, D.

* Lệnh số nguyên 16 bit:

- Ký hiệu:

Hoạt động:

Khi trạng thái ngõ vào EN=1 thì lệnh ADD-I hoạt động, giá trị IN1 và IN2 được cộng lại và kết quả gửi ra ngõ ra OUT. Nếu kết quả vượt quá giới hạn cho phép của số nguyên 16 bit thì bit OV và OS lên 1 và ENO=0, nên những chức năng khác mà được nối với ngõ ENO sẽ khơng hoạt động

- Ví dụ:

Khi ngõ vào I0.0=1 thì lệnh ADD-I hoạt động, kết quả của lệnh cộng MW0+MW2 được xuất ra ngõ MW10. Nếu kết quả nằm ngồi vùng hoạt động của số nguyên 16 bit thì Q4.0=1.

- Lệnh trừ số số nguyên 16 bít

+ Ký hiệu: Hoạt động:

Khi trạng thái ngõ vào EN=1 thì lệnh SUB-I hoạt động, giá trị IN1 trừ giá trị IN2 và kết quả gửi ra ngõ ra OUT. Nếu kết quả vượt quá giới hạn cho phép của số nguyên 16 bit thì bit OV và OS lên 1 và ENO=0, nên những chức năng khác mà được nối với ngõ ENO sẽ khơng hoạt động.

- Ký hiệu:

Khi ngõ vào I0.0=1 thì lệnh SUB-I hoạt động, kết quả của lệnh trừ MW0-MW2

được xuất ra ngõ MW10. Nếu kết quả nằm ngồi vùng hoạt động của số nguyên 16 bit hoặc I0.0=0 thì Q4.0=1.

* Lệnh nhân số nguyên 16 bit:

- Ký hiệu:

Hoạt động:

Khi trạng thái ngõ vào EN=1 thì lệnh MUL-I hoạt động, giá trị IN1 và IN2 được nhân lại và kết quả gửi ra ngõ ra OUT. Nếu kết quả vượt quá giới hạn cho phép của số nguyên 16 bit thì bit OV và OS lên 1 và ENO=0, nên những chức năng khác mà được nối với ngõ ENO sẽ khơng hoạt động.

Khi ngõ vào I0.0=1 thì lệnh MUL-I hoạt động, kết quả của lệnh nhân MW0*MW2 được xuất ra ngõ MW10. Nếu kết quả nằm ngồi vùng hoạt động của số nguyên 16 bit thì Q4.0=1.

* Lệnh chia số nguyên 16 bit

- Ký hiệu:

Hoạt động:

Khi trạng thái ngõ vào EN=1 thì lệnh DIV-I hoạt động, giá trị IN1 được chia bởi giá trị IN2 và kết quả gửi ra ngõ ra OUT. Nếu kết quả vượt quá giới hạn cho phép của số nguyên 16 bit thì bit OV và OS lên 1 và ENO=0, nên những chức năng khác mà được nối với ngõ ENO sẽ khơng hoạt động.

- Ví dụ:

Khi ngõ vào I0.0=1 thì lệnh DIV-I hoạt động, kết quả của lệnh chiaMW0 bởi MW2 được xuất ra ngõ MW10. Nếu kết quả nằm ngồi vùng hoạt động của số nguyên 16 bit thì Q4.0=1.

1.1.2. Truyền một vùng nhớ dữ liệu.

* Lệnh MOVE - Ký hiệu:

Các ngõ vào/ra EN, ENO, IN, OUT biểu diễn các tốn hạng là địa chỉ ngõ vào/ra như sau: I, Q, M, L, D.

EN là ngõ vào cho phép lệnh MOVE hoạt động (Enable Input). Loại dữ liệu dạng BOOL.

ENO là ngõ ra cho phép các lệnh sau lệnh MOVE mà cĩ nối với ngõ ENO hoạt động (Enable Output). Ngõ ENO cĩ cùng trạng thái với ngõ vào EN. Loại dữ liệu dạng BOOL.

IN là ngõ vào biểu diễn địa chỉ nguồn (Source Address). Loại dữ liệu cĩ chiều

dài 8, 16, 32 Bit. OUT là ngõ ra biểu diễn địa chỉ đích (Destination Address). Loại dữ liệu cĩ chiều dài 8, 16, 32 Bit.

Hoạt động của lệnh MOVE:

Ở dạng LAD/FBD thì khi ngõ vào EN được kích hoạt thì giá trị ngõ vào IN được sao chép tới địa chỉ tại ngõ ra OUT. Ngõ ENO cĩ cùng trạng thái với ngõ EN.

Ở dạng STL thì lệnh nạp và truyền dữ liệu khơng phụ thuộc vào kết quả RLO. Dữ liệu đuợc trao đổi nhờ bộ tích luỹ (ACCU).

Lệnh L (Load) ghi giá trị từ địa chỉ nguồn bên phải vào bộ tích lũy ACCU1, nội dung của ACCU1 được chuyển vào bộ tích luỹ ACCU2. Trường hợp giá trị chuyển vào bộ tích luỹ cĩ kích thước nhỏ hơn 16 Bit (Double Word) thì chúng sẽ ghi vào bộ tích luỹ theo thứ tự Byte thấp của Word thấp đến Byte cao của Word thấp đến Byte thấp của Word cao đến Byte cao của Word cao. Những Bit cịn trống trong ACCU được ghi vào giá trị 0.

Lệnh T (Transfer) sao chép một phần hoặt tất cả nội dung của bộ tích lũy ACCU1 đến địa chỉ cụ thể. Lệnh T khơng ảnh hưởng đến bộ tích luỹ ACCU2.

* Sơ lược về bộ tích luỹ (ACCU):

- Bộ tích luỹ là bộ nhớ phụ trong CPU dùng để trao đổi dữ liệu giữa những địa chỉ khác nhau và các phép tốn so sánh, tốn học. S7-300 cĩ 2 bộ tích luỹ là ACCU1 và

ACCU2, mỗi bộ cĩ 32 Bit.

- ACCU1 là thanh ghi quan trọng nhất trong CPU. Khi một lệnh nạp (Load) được thi hành thì giá trị nạp được ghi vào ACCU1. Khi lệnh truyền (transfer) được thi hành thì đọc giá trị trong ACCU1, kết quả của các phép tính số học, các lệnh thay thế (Shift) và quay (Rotate)… cũng được ghi vào trong ACCU1.

- ACCU2: Khi lệnh nạp được thi hành, những nội dung cũ của ACCU1 trước tiên di chuyển sang ACCU2 và ACCU1 được xố trước khi giá trị mới được chuyển vào ACCU1. ACCU2 cũng được sử dụng cho các lệnh so sánh, các phép tính số, số học, lệnh dịch…

- Ví dụ:

Khi I0.0=1 thì lệnh MOVE được thực hiện. Khi đĩ giá trị chứa trong Word nhớ MW10 được sao chép đến Word của khối dữ liệu DB12.

1.1.3. Chức năng dịch chuyển.

Hầu hết các lệnh dịch và lệnh xoay đều cĩ ký hiệu tương tự nhau. Các lệnh này tác động lện thanh ghi trạg thái như nhau.

Ký hiệu chung là (dạng LAD):

EN là ngõ vào cho phép lệnh dịch/xoay hoạt động (Enable Input). Biểu diễn

tốn hạng là dữ liệu dạng số nhị phân. Biểu diễn tốn hạng là địa chỉ dạng: I, Q, L,M, D. ENO là ngõ cho phép ngõ ra hoạt động (Enable Output). Ngõ ra ENO cĩ cùng trạng thái với ngõ vào EN. Loại tốn hạng là dữ liệu dạng số nhị phân. Loại tốn hạng là địa chỉ dạng: I, Q, L, M, D.

IN: là ngõ vào của dữ liệu cần dịch/xoay. Biểu diễn tốn hạng là dữ liệu dạng số nguyên, số nguyên kép, Word, Word kép. Biểu diễn tốn hạng là địa chỉ dạng: I, Q,L, M, D.

N: Biểu diễn số bit cần dịch/xoay. Biểu diễn tốn hạng là dữ liệu dạng Word. Biểu diễn tốn hạng là địa chỉ dạng: I, Q, L, M, D.

O/OUT: Là kết quả của lệnh dịch/xoay. Biểu diễn tốn hạng là dữ liệu dạng số

nguyên, số nguyên kép, Word, Word kép. Biểu diễn tốn hạng là địa chỉ dạng: I, Q,L, M, D.

Khi thựchiện lệnh dịch/xoay thì giá trị cần dịch/xoay được đưa vào bộ tích luỹ ACCU1 và thực hiện lệnh dịch/xoay, sau đĩ giá trị được chuyển đến ngõ ra OUT.

1.1.4. Lệnh dịch phải số nguyên

- Ký hiệu:

IN: là ngõ vào của dữ liệu cần dịch. Biểu diễn tốn hạng là dữ liệu dạng số nguyên. Biểu diễn tốn hạng là địa chỉ dạng: I, Q, L, M, D.

N: Biểu diễn số bit cần dịch. Biểu diễn tốn hạng là dữ liệu dạng Word. Biểu

diễn tốn hạng là địa chỉ dạng: I, Q, L, M, D. Nếu N>=16 thì lệnh vẫn được thực hiện như là N=16. O/OUT: Là kết quả của lệnh dịch. Biểu diễn tốn hạng là dữ liệu dạng số

nguyên. Biểu diễn tốn hạng là địa chỉ dạng: I, Q, L, M, D. Hoạt động:

Lệnh SHR-I hoạt động khi ngõ vào EN=1. Lệnh SHR-I thực hiện dịch 16 bit sang bên phải, 16 bit cao cịn lại khơng sử dụng. Ngõ vào N đặt số bit cần dịch. Kết quả dịch được lưu trữ vào địa chỉ ngõ ra OUT. Khi lệnh thực hiện thì ngõ ra ENO cho biết trạng thái bit cuối cùng của số bit bị dịch. Các lệnh phụ thuộc vào ENO khác sẽ khơng thực hiện nếu trạng thái của bit cuối cùng của số bit bị dịch là 0.

Ví dụ:

Lệnh SHR-I hoạt động khi ngõ vào I0.0=1. MW0 bị dịch phải bởi số bit đặt trước tại ngõ vào N (MW2), kết quả được ghi ra MW4. Q4.0 được đặt lên 1.

1.2. Trình tự thực hiện

1.2.1. Điều kiện thực hiện - Máy vi tính

- Module PLC S7 300.

- Giắc cắm, Cáp MPI kết nối máy tính và mơ đun PLC S7 – 300. - Phần mềm lập trình Step7-300

- Nguồn 220V cung cấp cho module PLC S7 – 300 1.2.2. Các bước thực hiện:

Sai hỏng Nguyên nhân Cách khắc phục

- Khai báo sai cấu hình phần cứng

của PLC S7 – 300 trên phần mềm. - Chọn sai loại CPU - Chọn sai đầu vào, đầu ra

- Chọn đúng loại CPU

- Chọn đúng các đầu vào, đầu ra.

- Khai báo sai các đầu vào/ra dữ

liệu. - Ghi sai đầu vào, đầu ra dữ liệu trên phần mềm

- Ghi đúng đầu vào, đầu ra dữ liệu trên phần mềm

- Kết nối sai các đầu vào/ ra dữ liệu. - Kết nối sai dây giữa

PLC với thiết bị - giữa PLC với thiết Kết nối đúng dây bị

- Lập trình khơng đúng với yêu cầu

cơng nghệ đưa ra. - yêu cầu cơng nghệ Chưa xác định đúng Xác định đúng yêu cầu cơng nghệ đưa ra

- Khơng kết nối máy tính được với PLC

- Chọn sai loại cáp kết

nối - cáp kết nối Chọn đúng loại

1.3. Những lỗi thường gặp, cách khắc phục

Sai hỏng Nguyên nhân Cách khắc phục

- Khai báo sai cấu hình phần cứng của PLC S7 –300 trên phần mềm.

- Chọn sai loại CPU - Chọn sai đầu vào, đầu ra

- Chọn đúng loại CPU

- Chọn đúng các đầu vào, đầu ra.

- Khai báo sai các đầu vào/ra dữ

liệu. - ra dữ liệu trên phần Ghi sai đầu vào, đầu mềm

- Ghi đúng đầu vào, đầu ra dữ liệu trên phần mềm

- Kết nối sai các đầu vào/ ra dữ liệu. - Kết nối sai dây giữa

PLC với thiết bị - giữa PLC với thiết Kết nối đúng dây bị

- Lập trình khơng đúng với yêu cầu

cơng nghệ đưa ra. - yêu cầu cơng nghệ Chưa xác định đúng Xác định đúng yêu cầu cơng nghệ đưa ra

- Khơng kết nối máy tính được với PLC

- Chọn sai loại cáp kết

nối - cáp kết nối Chọn đúng loại

1.4. Bài tập ứng dụng liên quan

* Mạch điều khiển đèn giao thơng

Một nút giao thơng ngã tư, gồm cĩ 4 trục đèn điều khiển phương tiện giao thơng và 4 cột đèn điều khiển người đi bộ. Ký hiệu các tiếp điểm như sau:

Chương trình được viết trong đĩ các bit điều khiển đèn người đi bộ sẽ được điều khiển thơng qua các bit điều khiển phương tiện giao thơng, trong đĩ:

- Đèn đỏ đi bộ 1: Q0.7 lấy bit đảo của Q0.6 - Đèn xanh đi bộ 1: Q0.6 lấy bit Q0.0 điều khiển - Đèn đỏ đi bộ 2: Q1.1 lấy bit đảo của Q1.0 - Đèn xanh đi bộ 2: Q1.0 lấy bit Q0.3 điều khiển

Do đĩ, chúng ta khơng vẽ các bit điều khiển đèn người đi bộ trên giản đồ thời gian.

Giản đồ thời gian của một chu kỳ đèn giao thơng:

* Hướng dẫn: - Chương trình:

2. Lập trình các lệnh chức năng so sánh 2.1. Các lệnh chức năng so sánh 2.1. Các lệnh chức năng so sánh

Các phép so sánh cĩ thể sử dụng là so sánh ==, <>, >, >=, < ,<= và chỉ cĩ thể áp dụng cho Byte, số nguyên I, số nguyên kép DI và số thực R.

Dữ liệu tại ngõ vào IN1 được so sánh với dữ liệu tại ngõ vào IN2

Trong soạn thảo LAD thì tiếp điểm sẽ ON khi thoả mãn điều kiện so sánh.

Trong soạn thảo STL các lệnh Load, AND hoặc OR sẽ = 1 khi phép so sánh là True.

2.1.1. So sánh Byte

Inputs/Outputs Operands Data Types

IN IB, QB, MB, SMB, VB, SB, LB, AC, Constant,

*VD, *LD, *AC BYTE

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

2.1.2. So sánh số nguyên Integer

IN1=IN2, IN1 > IN2, IN1 >=IN2, IN1<IN2, IN1<=IN2, IN1<>IN2 So sánh số nguyên cần chú ý đến dấu ( 16#7FFF > 16#8000)

Inputs/Outputs Operands Data Types

IN IW, QW, MW, SW, SMW, T, C, VW, LW, AIW,

AC, Constant, *VD, *LD,*AC INT

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

2.1.3. So sánh số nguyên kép Doubleword

IN1=IN2, IN1 > IN2, IN1 >=IN2, IN1<IN2, IN1<=IN2, IN1<>IN2 So sánh số nguyên cần chú ý đến dấu ( 16#7FFFFFF > 16#8000000) Phạm vi so sánh từ – 2.147.483.647 đến + 2.147.483.647.

Inputs/Outputs Operands Data Types

IN ID, QD, MD, SD, SMD, VD, LD, HC, AC,

Constant, *VD, *LD, *AC DINT

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

Bảng giới hạn vùng tốn hạng và dạng dữ liệu hợp lệ

Một phần của tài liệu Giáo trình lập trình ứng dụng PLC (nghề cơ điện tử) (Trang 36 - 56)