Các lệnh sơ đồ ladder

Một phần của tài liệu thiết kế mạch điều khiển ổn nhiệt và hiển thị nhiệt trong mô hình máy ấp trứng (Trang 29)

Lệnh LOAD và LOAD NOT

Lệnh AND và AND NOT

Lệnh AND LOAD

Lệnh OR và OR NOT

Lệnh OUTPUT và OUTPUT NOT

Các lệnh điều khiển BIT

Lệnh SET và RESET- SET và RSET

Lệnh SET sẽ bật bit đi kèm lên ON khi điều kiện thực thi của chúng là ON. Sau đó, Bit sẽ vẫn ở trạng thái ON không phụ thuộc vào lệnh SET có điều kiện thực thi là ON hoặc OFF cho đến khi lệnh RESET (RSET) xóa chúng về OFF.

Lệnh KEEP- KEEP(11)

Lệnh KEEP(11) hoạt động như một relay chốt với hai đầu vào là SET (S) và RESET (R). Bit sẽ đựợc set lên ON khi đầu vào là S là ON và sẽ vẫn giữ ở ON cho đến khi bit B bị reset về OFF khi đầu vào R là ON.

Lệnh DIFFERENTIATE UP và DIFFERENTIATE DOWN-DIFU(13) và DIFD(14)

Lệnh DIFU(13) sẽ bật bit đi kèm lên 1 trong vòng một chu kỳ quét (scan/cycle) khi điều kiện thực thi chuyển từ OF ở chu kỳ quét trước sang ON ở chu kỳ quét lần này. Sau đó, bit trở về trạng thái OFF.

Lệnh SIFD(14) sẽ bật bit đi kèm lên 1 trong vòng một chu kỳ quét (scan/cycle) khi điều kiện thực thi chuyển từ ON ở chu kỳ quét trước sang OFF ở chu kỳ quét lần này. Sau đó, bit trở về trạng thái OFF.

Lệnh INTERLOCK và lệnh INTERLOCK CLEAR – IL(02) và ILC(03)

điều khiển điều kiện thực thi của toàn bộ các lệnh bắt đầu từ sau lệnh IL(02) cho đến lệnh ILC(03) đầu tiên sau lệnh IL(02) này.

Khi điều kiện thực thi của lệnh IL(02) ON, thì chương trình vẫn thực hiện bình thường. Còn khi điều kiện thực thi của lệnh ILC(03) đầu tiên đều được thi hành với điều kiện thực thi là OFF nghĩa là các lệnh OUTPUT nằm giữa IL(02) và ILC(03) sẽ là OFF.

Chương trình sẽ trở lại hoạt động bình thường sau lệnh ILC(03).

Lệnh INTERLOCK và INTERLOCK CLEAR – IL(02) và ILC(03)

Lệnh JUMP và JUMP END – JMP(04) và JME(05)

Mỗi lệnh JUMP gồm cặp lệnh JMP và JME có số từ 00 đến 49. Lệnh JMP và JME luôn đi chung với nhau.

Nếu ngõ vào của JMP là OFF, khi chương trình gặp lệnh JMP N thì chúng sẽ bỏ qua không thực hiện các lệnh theo sau lệnh này cho đến lệnh JME N có cùng số.

Khi gặp lệnh JME , thì chương trình sau đó lại thực thi bình thường.

Khi ngõ vào của JMP là ON, khi chương trình gặp lệnh JMP N thì các lệnh theo sau lệnh này sẽ thực thi bình thường.

Chú ý: mỗi số N của lệnh JMP và JME chỉ được dùng một lần duy nhất

trong chương trình.

Các lệnh TIMER

Timer- TIM

SV thuộc khoảng giá trị từ 0000 đến 9999 (BCD). N nằm trong đoạn từ 000 đến 127 trong PLC CPM1/CPM1A/SRM1

Lệnh TIM trì hoãn khoảng thời gian (ON Delay) đến 0 tùy theo giá trị đặt SV. Chú ý, độ phân giải của lệnh TIM là 0.1s. Do đó, thời gian hoạt động thực tế của timer là SV x0.1(s)

High-speed timer – TIMH

SV thuộc khoảng giá trị từ 0000 đến 9999 (BCD). N nằm trong đoạn từ 000 đến 127 trong PLC CPM1/CPM1A/SRM1

Giống như lệnh TIM. Chú ý, độ phần giải lệnh TIMH(15) là 0.001s. Do đó, thời gian hoạt động thực tế của timer là SVx0.001(s).

SV thuộc khoảng giá trị từ 0000 đến 9999 (BCD). N nằm trong đoạn từ 000 đến 127 trong PLC CPM1/CPM1A/SRM1.

Giống như lệnh TIM. Chú ý, độ phân giải của lệnh TIMHH(--) là 0.001s. Do đó, thời gian hoạt động thực tế của timer là SVx0.001(s)

Các lệnh COUNTER

Counter- CNT

SV thuộc khoảng giá trị từ 0000 đến 9999 (BCD). N nằm trong đoạn từ 000 đến 127 trong PLC CPM1/CPM1A/SRM1

Lệnh CNT dùng để đếm xuống từ giá trị đặt SV khi điều kiện thực thi CP chuyển từ OFF lên ON, khi đó, giá trị đặt trước PV(Preset value) sẽ giảm 1. Giá trị SV sẽ bằng 0 khi CP luôn đổi trạng thái từ OFF lên ON trong SV lần. Cờ của CNT ON khi PV=0 và vẫn cho đến khi CNT bị reset.

Counter bị reset bởi ngõ vào (input) reset. Khi P từ OFF lên ON, thì giá trị PV sẽ reset đến SV. Giá PV sẽ không giảm khi R ON.

Reversible Counter – CNTR(12)

SV thuộc khoảng giá trị từ 0000 đến 9999 (BCD). N nằm trong đoạn từ 000 đến 127 trong PLC CPM1/CPM1A/SRM1

Lệnh CNTR(12) dùng để đếm xuống hoặc đếm lên từ giá trị đặc SV khi điều kiện thực thi của ngõ vào II hoặc DI chuyển từ OFF lên ON, khi đó giá trị đặt trước PV sẽ giảm 1 hoặc tăng 1. Giá trị của SV sẽ đếm tăng khi ngõ vào II chuyển từ OFF lên ON và giá trị PV sẽ đếm giảm khi ngõ vào DI chuyển từ OFF lên ON. Khi II và DI cùng chuyển trạng thái từ OFF lên ON, thì giá trị PV sẽ không thay đổi.

CNTR(12) bị reset bởi ngõ vào (input) reset. Khi R từ OFF lên ON, thì giá trị PV sẽ reset đến 0. Giá trị PV sẽ không giảm khi R ON.

Ví dụ : Xe chạy thuận nghịch

Giai đoạn 0: Nhấn công tắc khởi động bắt đầu giai đoạn 1

Giai đoạn 1: Motor quay thuận làm xe di chuyển theo hướng bên phải đến vị trí cảm biến 2. Khi cảm biến LS2 phát hiện xe thì chuyển qua giai đoạn 2.

Giai đoạn 2: Motor quay nghịch làm xe di chuyển theo hướng bên trái đến vị trí cảm biến 1. Khi cảm biến LS1 phát hiện xe thì chu trình lặp lại cho đến khi nhấn Stop, động cơ ngừng lại.

Hình 2.14 Sơ đồ Grafcet và chương trình ladder: 2.3 Khảo sát PLC CP1L

PLC CP1L đa năng là dòng sản phẩm mới của Omron với giá thành thấp.

Hình 2.15 PLC CP1L Các tính năng chính của PLC CP1L:

• CPU có sẵn 14, 20, 30, hoặc 40 I/O, mở rộng tối đa 160 I/O, có khả năng truyền thông RS-232 / 485 / 422.

• Kết nối với modul mở rộng CPM1 hiện có (modul I/O, đầu vào nhiệt độ, vào/ ra tương tự, mạng CompoBus/ S, DeviceNet).

• Đầu vào analog 0-10V (độ phân giải 256 bit).

• Bộ nhớ 5 đến 10Kstep (CPM1A có bộ nhớ 2 Kstep, còn CPM2A là 4 Kstep), có bộ nhớ ngoài.

• Lập trình thuận tiện thông qua cổng USB bằng CX-P V7.1, hỗ trợ lập trình bằng FB (Function Block).

• Hỗ trợ chạy mô phỏng bằng CX-Simulator (CPM1/2A không cho phép mô phỏng).

Dòng CP1L hỗ trợ khả năng kết nối dễ dàng trực tiếp tới các thiết bị khác như biến tần (qua Modbus), điều khiển nhiệt độ ,…

Hình 2.16 Kết nối PLC với một số thiết bị

Bảng 2.3 Các modul CPU

Môđun CPU 14 đầu (8 vào, 6 ra), 20 đầu (12 vào, 8 ra) 30 đầu (18 vào, 12 ra) 40 đầu (24 vào, 16 ra) Nối được 1 modul mở rộng Nối được 3 modul mở rộng Nguồn AC, vào

DC, ra relay CP1L-L14DR-A CP1L-L20DR-A CP1L-M30DR-ACP1L-M40DR-A Nguồn DC, vào DC, ra relay CP1L-L14DR-D CP1L-L20DR-D CP1L-M30DR-DCP1L-M40DR-D Nguồn DC, vào DC, ra transistor (NPN) CP1L-L14DT- D CP1L-L20DT-D CP1L-M30DT-DCP1L-M40DT-D Nguồn DC, vào DC, ra transistor (PNP) CP1L- L14DT1-D CP1L-L20DT1-D CP1L-M30DT1-D CP1L-M40DT1-D

Bảng 2.4 Đặc tính với đầu ra rơle

Ngõ vào CP1L-L14:

Chương 3: GIỚI THIỆU VỀ PHẦN MỀM CODEVISIONAVR, PHẦN MỀM CX-PROGRAMER VÀ MỤC TIÊU ĐỀ TÀI

3.1 Phần mềm lập trình codevision

Đây là phần mềm được sử dụng rất rộng rãi bởi nó được xây dựng trên nền ngôn ngữ lập trình C, phần mềm được viết chuyên nghiệp hướng tới người sử dụng bởi sự đơn giản, sự hỗ trợ cao các thư viện có sẵn.

3.1.1 Thiết lập cổng vào/ ra:

Khi xem xét đến các cổng I/O của AVR thì ta phải xét tới 3 thanh ghi bit

DDxn,PORTxn,PINxn.

Các bit DDxn để truy cập cho địa chỉ xuất nhập DDRx. Bit DDxn trong thanh ghi DDRx dùng để điều khiển hướng dữ liệu của các chân của cổng này. Khi ghi giá trị logic ‘0’ vào bất kì bit nào của thanh ghi này thì nó sẽ trở thành lối vào, còn ghi ‘1’ vào bit đó thì nó trở thành lối ra.

Các bit PORTxn để truy cập tại địa chỉ xuất nhập PORTx. Khi PORTx được ghi giá trị 1 khi các chân có cấu tạo như cổng ra thì điện trở kéo là chủ động (được nối với cổng). Ngắt điện trở kéo ra, PORTx được ghi giá trị 0 hoặc các chân có dạng như cổng ra. Các chân của cổng là 3 trạng thái khi 1 điều kiện reset là tích cực thậm chí xung đồng hồ không hoạt động.

Các bit PINxn để truy cập tại địa chỉ xuất nhập PINx. PINx là các cổng chỉ để đọc, các cổng này có thể đọc trạng thái logic của PORTx. PINx không phải là thanh ghi, việc đọc PINx cho phép ta đọc giá trị logic trên các chân của PORTx.

Nếu PORTxn được ghi giá trị logic ‘1’ khi các chân của cổng có dạng như chân ra, các chân có giá trị ‘1’. Nếu PORTxn ghi giá trị ‘0’ khi các chân của cổng

có dạng như chân ra thì các chân đó có giá trị ‘0’.

Các cổng của AVR đều có thể đọc, ghi. Để thiết lập 1 cổng là cổng vào, ra thì ta tác động tới các bit DDxn, PORTxn,PINxn. Ta có thể thiết lập để từng bit làm cổng vào, như vậy ta có thể xử lý tới từng bit, đây chính là điểm mạnh của các dòng Vi điều khiển 8 bit.

Hình 3.1 Khởi tạo ban đầu trước khi viết chương trình trong codevision

Ta có thể sử dụng CodeWizardAVR để thiết lập cho các PORTx và Pinx. Ví dụ như trên hình: các bit 0,1,2,4,7 của PORTA làm chân ra có trở kéo, còn các bit còn lại làm chân vào. Khi đã thiết lập xong thì các bit 0,1,2,4,7 sẽ có thể xuất dữ liệu ra còn các bit còn lại có thể nhận dữ liệu vào.

Ví dụ :

Ta muốn ghi dữ liệu giá trị logic ’0’ ra PORTA.0 để bật tắt một Led thì: PORTA.0=1;

Ta muốn đọc dữ liệu là một bit từ chân 3 của PORTA: Bit x;

x=PINA.3;

Cũng như vậy khi ta thiết lập PORTA làm cổng ra thì ta có thể xuất dữ liệu ra từ PORTA:

PORTA=0xAA; PORTA

Còn nếu ta thiết lập PORTA làm cổng vào và giá trị hiện thời của PORTA:

PORTA

Thì sau câu lệnh đọc giá trị từ PORTA: x=PORTA thì x=0x55. Khi thiết lập PORTA làm cổng ra thì khi reset giá trị của PORTA là PORTA=0xFF;

Khi thiết lập PORTA làm cổng vào thì khi reset giá trị của PORTA là

PORTA=0x00; PORTA

Việc thiết lập cổng vào ra là một việc quan trọng vì tùy theo mục đích sử dụng các cổng nào làm cổng vào ra, thì ta phải thiết lập đúng thì mới có thể sử dụng được, động tác này khác với họ vi điều khiển 8051- AT8951.

3.1.2 Cách sử dụng phần mềm CodeVision:

Chạy CodeVision bằng cách click chuột vào ICON của CodeVision trên Desktop được cửa sổ như hình 3.2:

Hình 3.2

Chọn Project sau đó click chuột vào OK được cửa sổ hỏi xem có sử dụng Code Winzard không( hình 3.4):

Hình 3.4

Chọn Yes được cửa sổ CodeWinzardAVR như hình 3.5:

Hình 3.5

Sử dụng chíp AVR nào và thạch anh tần số bao nhiêu ta nhập vào tab Chip. Để khởi tạo cho các cổng IO ta chuyển qua tab Ports.

Các chân IO của AVR mặc định trạng thái IN, muốn chuyển thành trạng thái OUT để có thể đưa các mức logic ra ta click chuột vào các nút IN (mầu trắng) để nó chuyển thành OUT trong các Tab Port. Sau đó chọn File -> Generate, Save and Exit.(hình 3.6)

Hình 3.6

Được cửa sổ yêu cầu nhớ các file của Project. Đây là ví dụ IO nên ta save tên là IO.(hình 3.7)

hình 3.7

Hình 3.8

Ta đã được code vision khởi tạo code. Trong đó có đầy đủ code cần thiết mà ta cấu hình cho cổng IO.

Ta bắt đầu soạn code.

Sau khi ta viết code xong Để dịch và kiểm tra chương trình ấn F9 hoặc vào menu : Project -> Compile.

Được cửa sổ Information như hình 3.9:

Hình 3.9

Để nạp chương trình các bạn cần cấu hình cho mạch nạp. Vào menu: Settings -> Programmer.

Mạch nạp ta dùng STK 200 do đó các bạn chọn Kanda Systems STK200+/300. Nhấp OK. Sau đó các bạn chọn trên menu: Projects -> Configure, trong tab After Make các bạn đánh dấu vào Program the Chip và nhấp OK.

Nhấn tổ hợp phím Shift + F9 được cửa sổ như hình 3.10:

Hình 3.10

Cắm Jump mạch nạp vào. Click vào Program. Đợi nạp xong nhổ jump nạp ra thế là chương trình đã được nạp.

Khởi tạo một số tab chức năng trong codevisionAVR:

Hình 3.11 Khởi tạo LCD

Hình 3.12 Khởi tạo ADC

Trong tab ADC check vào ADC enable.

Nếu ta dùng ADC 8 bit thì check vào Use 8 bit, không thì mặc định ADC 10 bit. Dùng ngắt check vào Interrupt, điện áp tham khảo thì lấy điện áp của chân AREF.

3.2 Phần mềm CX-programer

3.2.1 Giới thiệu phần mềm CX-Programmer

CX-Programmer là phần mềm Không chỉ dùng để lập trình cho PLC,

CX-Programmer còn là công cụ để các kỹ sư quản lý 1 dự án tự động hóa với PLC làm bộ não hệ thống. Các chức năng chính của CX-Programmer bao gồm : Tạo và quản lý các dự án (project) tự động hóa

Kết nối với PLC qua nhiều đường giao tiếp Cho phép thực hiện các thao tác chỉnh sửa & theo dõi khi đang online (như

force set/ reset, online edit, monitoring (..,

Đặt thông số hoạt động cho PLC Cấu hình đường truyền mạng Hỗ trợ nhiều chương trình, nhiều PLC trong 1 cùng project & nhiều section

3.2.2

Cách sử dụng phầm mềm CX-Programmer Tạo một project mới

Khi chạy chương trình CX-Programmer muốn tạo một project mới ta làm theo các bước:

Hình 3.13 Các thành phần trên cửa sổ project:

Các thao tác trên cửa sổ project:

Thêm tiếp điểm

Hình 3.15 Thêm cuộn dây

Hình 3.16

Thêm function

Mỗi chương trình đều cần có ít nhất 1 lệnh End để đánh dấu điểm kết thúc

của chương trình. Lệnh End và nhiều khối chức năng khác (function) có thể nhập vào dùng công cụ Instruction .

Hình 3.17

Thêm hàng vào Rung

Hình 3.18

Chèn thêm một Rung

Hình 3.20

Các thao tác Copy và Paste

Ta có thể áp dụng thao tác Copy và Paste như với 1 chương trình Windows

thông thường khác. Đồng thời có thể áp dụng Undo và Redo với các thao tác vừa làm .

Xóa Rung

Hình 3.22 Cấu hình CX-Simulator

Chọn loại CPU trong CX-Simulator phải trùng với loại CPU trong CX-

Programmer

Chạy mô phỏng

Việc chạy mô phỏng với CX-Simulator để nhằm kiểm tra phát hiện các lỗi

do sai cú pháp, thiếu/ thừa các phần tử,… trong chương trình và tiến hành xử lý khắc phục các lỗi này trước khi tiến hành nạp vào PLC .

Hình 3.24 Biên dịch chương trình

Bấm vào nút Work online để kết nối với PLC sau khi đã kết nối cáp giữa máy tính với PLC. Sau khi kết nối được thiết lập, CX-Programer sẽ ở chế độ làm việc online.

Bấm lại nút Work online sẽ chuyển sang chế độ offline để có thể sửa chương trình.

Kết quả biên dịch được hiển thị trong tab compile của cửa sổ Ouput .

Kiểm tra lỗi

Khi đang online có thể kiểm tra và xóa các lỗi trong PLC bằng cách nhấn đúp

vào Error Log

Nạp chương trình

Việc nạp chương trình vào PLC cũng sẽ xóa nội dung hiện đang có trong

PLC. Vì thế cần thận trọng trong việc này .

Chương 4 MỤC TIÊU ĐỀ TÀI VÀ ỨNG DỤNG 4.1 Mục tiêu của đề tài.

Đề tài Thiết kế mạch điều khiển ổn nhiệt và hiển thị nhiệt trong mô hình máy ấp trứng.

Để ấp trứng thành công thì điều kiện đầu tiên là ta cần cung cấp nhiệt ổn định ở 37oC trong suốt thời gian ấp (khoảng 20-22 ngày), độ ẩm, đảm bảo thông thoáng cho trứng, và một số điều kiện phụ khác thì trứng mới đảm bảo được nở

Một phần của tài liệu thiết kế mạch điều khiển ổn nhiệt và hiển thị nhiệt trong mô hình máy ấp trứng (Trang 29)

Tải bản đầy đủ (DOC)

(81 trang)
w