1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo môn học mạng truyền thông trong công nghiệp phần 1 mô tả thiết bị máy và các hoạt Động

18 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Môn Học Mạng Truyền Thông Trong Công Nghiệp Phần 1 Mô Tả Thiết Bị Máy Và Các Hoạt Động
Tác giả Nguyễn Đình Hùng - 2280500057, Nguyễn Minh Hiếu - 2280500573
Người hướng dẫn Lê Quang Đức
Trường học Trường Đại Học Công Nghệ Tp. Hcm
Chuyên ngành Mạng Truyền Thông Trong Công Nghiệp
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 0,98 MB

Nội dung

MẠCH ĐIỀU KHIỂN MÁY SLAVE, DANH SÁCH INPUT – OUTPUT CỦA SLAVE .... MẠCH ĐIỀU KHIỂN MÁY MASTER, DANH SÁCH INPUT – OUTPUT CỦA MASTER .... Cảm biến mực nước cao Phát hiện mực nước cao Nút

Trang 1

BÁO CÁO MÔN HỌC MẠNG TRUYỀN THÔNG TRONG CÔNG NGHIỆP

Giám sát và Điều khiển từ xa Trạm bơm xả Giảng viên hướng dẫn : LÊ QUANG ĐỨC

Sinh viên thực hiện : NGUYỄN ĐÌNH HÙNG - 2280500057

NGUYỄN MINH HIẾU - 2280500573

Lớp: 22DTDJA1

Tp Hồ Chí Minh, ngày 29 tháng 11 năm 2024

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

Trang 2

Mục lục

PHẦN 1 MÔ TẢ THIẾT BỊ MÁY VÀ CÁC HOẠT ĐỘNG 1 PHẦN 2 MẠCH ĐỘNG LỰC 4 PHẦN 3 MẠCH ĐIỀU KHIỂN MÁY SLAVE, DANH SÁCH INPUT – OUTPUT CỦA

SLAVE 5 PHẦN 4 MÔ TẢ GIAO TIẾP MASTER – SLAVE, VAI TRÒ VÀ NHIỆM VỤ CỦA MASTER

VÀ SLAVE 6 PHẦN 5 MẠCH ĐIỀU KHIỂN MÁY MASTER, DANH SÁCH INPUT – OUTPUT CỦA MASTER 7 PHẦN 6 QUY TRÌNH HOẠT ĐỘNG CỦA SLAVE 8 PHẦN 7 QUY TRÌNH HOẠT ĐỘNG CỦA MASTER 9 PHẦN 8 ĐẤU NỐI, KIỂM TRA ĐẤU NỐI HỆ THỐNG BẰNG CHƯƠNG TRÌNH ĐƠN GIẢN (INPUT, OUTPUT, TRUYỀN THÔNG) 10 PHẦN 9 CHƯƠNG TRÌNH CODE 10

Trang 3

PHẦN 1 MÔ TẢ THIẾT BỊ MÁY VÀ CÁC HOẠT ĐỘNG

1 Mô tả thiết bị:

Các thành phần chính và chức năng:

phối hệ thống

phụ

Thiết bị thay thế để mô phỏng

Cảm biến mực nước trung

Trang 4

Cảm biến mực nước cao Phát hiện mực nước cao Nút nhấn bơm 3

bơm chậm Đèn cảnh báo mức nước

Đèn cảnh báo mức nước

trung bình

Hiển thị cảnh báo mức nước

Đèn cảnh báo mức nước

Đèn hiển thị chế độ bơm

Đèn hiển thị chế độ bơm

Bộ điều khiển chính (PLC

hoặc vi điều khiển công

nghiệp)

Bộ điều khiển phụ (vi điều

khiển)

Điều khiển bơm và nhận lệnh từ

Slave

Giao tiếp cổng COM RS232 to TTL

Bảng thiết bị thay thế để mô phỏng

2 Mô tả hoạt động mô phỏng:

cả 3 bóng Led xanh sáng Đèn led hiển thị chế độ bơm nhanh sáng

sáng 2 bóng Led vàng sáng Đèn led hiển thị chế độ bơm nhanh sáng

1 bóng, led đỏ sáng

Trang 5

• Khi nhấn nút chế độ bơm chậm, đèn led bơm sẽ sáng 1 bóng 3 bóng đỏ, vàng, xanh đều tắt Đèn led hiển thị chế độ bơm chậm sáng

- Hệ thống sử dụng giao tiếp RS232 để truyền dữ liệu giữa Arduino

Master và Arduino Slave nhằm điều khiển bơm và LED

Sơ đồ nguyên lý

Trang 6

PHẦN 2 MẠCH ĐỘNG LỰC

Mạch động lực

Trang 7

PHẦN 3 MẠCH ĐIỀU KHIỂN MÁY SLAVE, DANH SÁCH INPUT –

OUTPUT CỦA SLAVE

1 Mạch điều khiển máy Slave bao gồm các đầu vào và đầu ra sau:

Nút chế độ bơm

chậm

Chế độ bơm

Mạch điều khiển máy Slave

Trang 8

PHẦN 4 MÔ TẢ GIAO TIẾP MASTER – SLAVE, VAI TRÒ VÀ NHIỆM

VỤ CỦA MASTER VÀ SLAVE

1 Vai trò và nhiệm vụ của Master:

a) Vai trò

- Là trung tâm điều khiển và giám sát toàn bộ hệ thống bơm

- Đưa ra thông tin dựa theo dữ liệu từ Slave

b) Nhiệm vụ

- Gửi lệnh điều khiển

- Điều khiển 3 mức bơm tới Slave:

- Giám sát các led mô tả trạng thái:

+ ledRed: mức nước thấp

+ ledYellow: mức nước vừa

+ ledGreen: mức nước cao

+ LEDGREENA: động cơ A

+ LEDGREENB: động cơ B

+ LEDGREENC: động cơ C

+ LEDNHANH: chế độ bơm nhanh

+ LEDCHAM: chế độ bơm chậm

2 Vai trò và nhiệm vụ của Slave:

a) Vai trò

- Là thiết bị nhận lệnh từ Master

- Giải mã byte dữ liệu nhận được để xác định yêu cầu điều khiển

b) Nhiệm vụ

- Nhận lệnh điều khiển từ Master

- Các led mô tả trạng thái:

+ pump1: Led mô phỏng bơm 1

+ pump2: Led mô phỏng bơm 2

+ pump3: Led mô phỏng bơm 3

- Các nút điều khiển:

+ btnFast: Nút bơm nhanh

+ btnMedium: Nút bơm vừa

+ btnSlow: Nút bơm chậm

+ btnStop: Chế độ bơm chậm

3 Giao thức truyền thông:

- Giao thức truyền thông giữa Master và Slave trong hệ thống này sử dụng

RS232 để truyền và nhận dữ liệu giữa 2 Arduino

- Master là thiết bị phát lệnh chính, Slave nhận và phản hồi dữ liệu

Trang 9

PHẦN 5 MẠCH ĐIỀU KHIỂN MÁY MASTER, DANH SÁCH INPUT –

OUTPUT CỦA MASTER

Arduino

Ghi chú

LED chế độ bơm

nhanh

Chế độ bơm nhanh cho chạy 3 bơm

LED chế độ bơm

chậm

Chế độ bơm chậm cho chạy 1 bơm

của Slave

của Slave

Mạch điều khiển máy master

Trang 10

PHẦN 6 QUY TRÌNH HOẠT ĐỘNG CỦA SLAVE

1 Quy trình hoạt động của Slave:

1 Khởi tạo hệ thống

2 Nhận dữ liệu từ Master Arduino thông qua RS232

3 Xử lí tín hiệu

4 Điều khiển các LED để hiển thị trạng thái tốc độ

5 Điều khiển bơm theo mức nước:

Lưu đồ quy trình hoạt động:

Trang 11

PHẦN 7 QUY TRÌNH HOẠT ĐỘNG CỦA MASTER

Quy trình hoạt động của Master:

1 Khởi tạo hệ thống

2 Đọc các tín hiệu từ nút nhấn và công tắc gạt

3 Gửi dữ liệu vào Slave

4 Xử lí tín hiệu

5 Điều khiển các LED để hiển thị trạng thái tốc độ

Lưu đồ quy trình hoạt động:

Trang 12

PHẦN 8 ĐẤU NỐI, KIỂM TRA ĐẤU NỐI HỆ THỐNG BẰNG CHƯƠNG

TRÌNH ĐƠN GIẢN (INPUT, OUTPUT, TRUYỀN THÔNG)

Arduino

Master

Module RS232

Arduino

PHẦN 9 CHƯƠNG TRÌNH CODE

1 Chương trình code master:

#define ledRed 10 // LED đỏ (bơm chậm)

#define ledYellow 9 // LED vàng (bơm vừa)

#define ledGreen 11 // LED xanh (bơm nhanh)

#define LEDGREENA 5 // LED xanh đc A

#define LEDGREENB 6 // LED xanh đc B

#define LEDGREENC 7 // LED xanh đc C

#define LEDNHANH 12 // LED nhanh

#define LEDCHAM 8 // LED chậm

#define DC1 2 // Nút DC1

#define DC2 3 // Nút DC2

#define DC3 4 // Nút DC3

bool DC1State = false;

bool DC2State = false;

bool DC3State = false;

//bool lockState = false; // Trạng thái khóa (false: mở khóa, true: khóa)

void setup() {

pinMode(DC1, INPUT);

pinMode(DC2, INPUT);

pinMode(DC3, INPUT); // Cấu hình DC3 làm input

pinMode(LEDGREENA, OUTPUT);

pinMode(LEDGREENB, OUTPUT);

Trang 13

pinMode(LEDGREENC, OUTPUT);

pinMode(ledRed, OUTPUT);

pinMode(ledYellow, OUTPUT);

pinMode(ledGreen, OUTPUT);

pinMode(LEDNHANH, OUTPUT);

pinMode(LEDCHAM, OUTPUT);

Serial.begin(9600); // Khởi động UART

}

void loop() {

if (digitalRead(DC1) == HIGH) {

DC1State = true;

DC2State = false;

DC3State = false;

digitalWrite(LEDGREENA, HIGH);

digitalWrite(LEDGREENB, LOW);

digitalWrite(LEDGREENC, LOW);

digitalWrite(LEDCHAM, LOW);

digitalWrite(LEDNHANH, LOW);

digitalWrite(ledRed, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledGreen, LOW);

Serial.write(0x04); // Gửi tín hiệu tương ứng

delay(100);

}

if (digitalRead(DC2) == HIGH) {

DC1State = false;

DC2State = true;

DC3State = false;

digitalWrite(LEDGREENA, LOW);

digitalWrite(LEDGREENB, HIGH);

digitalWrite(LEDGREENC, LOW);

digitalWrite(LEDCHAM, LOW);

digitalWrite(LEDNHANH, LOW);

digitalWrite(ledRed, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledGreen, LOW);

Serial.write(0x05); // Gửi tín hiệu tương ứng

Trang 14

}

if (digitalRead(DC3) == HIGH) {

DC1State = false;

DC2State = false;

DC3State = true;

digitalWrite(LEDGREENA, LOW);

digitalWrite(LEDGREENB, LOW);

digitalWrite(LEDGREENC, HIGH);

digitalWrite(LEDCHAM, LOW);

digitalWrite(LEDNHANH, LOW);

digitalWrite(ledRed, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledGreen, LOW);

Serial.write(0x06); // Gửi tín hiệu tương ứng

delay(100);

}

if (Serial.available() > 0) {

int receivedData = Serial.read(); // Đọc dữ liệu từ master

// Điều khiển LED dựa vào dữ liệu nhận được

switch (receivedData) {

case 0x00: // CHẾ ĐỘ CHẬM

digitalWrite(LEDGREENA, HIGH);

digitalWrite(LEDGREENB, LOW);

digitalWrite(LEDGREENC, LOW);

digitalWrite(LEDCHAM, HIGH);

digitalWrite(LEDNHANH, LOW);

digitalWrite(ledRed, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledGreen, LOW);

//lockState = false; // Mở khóa nút nhấn

break;

case 0x01: //CHẾ ĐỘ NHANH

digitalWrite(LEDGREENA, HIGH);

digitalWrite(LEDGREENB, HIGH);

digitalWrite(LEDGREENC, HIGH);

digitalWrite(LEDCHAM, LOW);

digitalWrite(LEDNHANH, HIGH);

digitalWrite(ledRed, HIGH);

digitalWrite(ledYellow, LOW);

digitalWrite(ledGreen, LOW);

Trang 15

break;

case 0x02: // Bơm vừa: LED vàng sáng, các LED khác tắt, 2 bơm sáng

digitalWrite(LEDGREENA, HIGH);

digitalWrite(LEDGREENB, HIGH);

digitalWrite(LEDGREENC, LOW);

digitalWrite(LEDCHAM, LOW);

digitalWrite(LEDNHANH, HIGH);

digitalWrite(ledRed, LOW);

digitalWrite(ledYellow, HIGH);

digitalWrite(ledGreen, LOW);

break;

case 0x03: // Bơm chậm: LED đỏ sáng, các LED khác tắt, 1 bơm sáng

digitalWrite(LEDGREENA, HIGH);

digitalWrite(LEDGREENB, LOW);

digitalWrite(LEDGREENC, LOW);

digitalWrite(LEDCHAM, LOW);

digitalWrite(LEDNHANH, HIGH);

digitalWrite(ledRed, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledGreen, HIGH);

break;

}

}

}

2 Chương trình code slave:

// Nút nhấn

const int btnFast = 6; // Nút bơm nhanh

const int btnMedium = 7; // Nút bơm vừa

const int btnSlow = 8; // Nút bơm chậm

const int btnStop = 9;

// Đèn LED bơm

const int pump1 = 10; // LED bơm 1

const int pump2 = 11; // LED bơm 2

const int pump3 = 12; // LED bơm 3

// Đèn LED trạng thái mức nước

const int ledRed = 2; // LED đỏ (bơm chậm)

const int ledYellow = 3; // LED vàng (bơm vừa)

const int ledGreen = 4; // LED xanh (bơm nhanh)

// Trạng thái hiện tại

int state = 0; // 0: Tắt, 1: Bơm nhanh, 2: Bơm vừa, 3: Bơm chậm

Trang 16

// Biến lưu trạng thái trước của nút nhấn

bool lastFast = false;

bool lastMedium = false;

bool lastSlow = false;

bool lastStop = false;

void setup() {

// Thiết lập nút nhấn làm đầu vào

pinMode(btnFast, INPUT_PULLUP);

pinMode(btnMedium, INPUT_PULLUP);

pinMode(btnSlow, INPUT_PULLUP);

pinMode(btnStop, INPUT_PULLUP);

// Thiết lập đèn LED bơm làm đầu ra

pinMode(pump1, OUTPUT);

pinMode(pump2, OUTPUT);

pinMode(pump3, OUTPUT);

// Thiết lập đèn LED trạng thái làm đầu ra

pinMode(ledRed, OUTPUT);

pinMode(ledYellow, OUTPUT);

pinMode(ledGreen, OUTPUT);

Serial.begin(9600);

}

void loop() {

// Đọc trạng thái nút nhấn

bool fastPressed = !digitalRead(btnFast);

bool mediumPressed = !digitalRead(btnMedium);

bool slowPressed = !digitalRead(btnSlow);

bool stopPressed = !digitalRead(btnStop);

if (stopPressed && !lastStop) { // Khi nhấn nút dừng

state = 0; // Chuyển về trạng thái tắt

}

// Xử lý nút bơm nhanh

if (fastPressed && !lastFast) { // Chỉ thay đổi khi nút được nhấn (chuyển từ HIGH sang LOW)

state = 1; // Chuyển sang trạng thái bơm nhanh

}

// Xử lý nút bơm vừa

if (mediumPressed && !lastMedium) {

state = 2; // Chuyển sang trạng thái bơm vừa

}

Trang 17

// Xử lý nút bơm chậm

if (slowPressed && !lastSlow) {

state = 3; // Chuyển sang trạng thái bơm chậm

}

// Lưu trạng thái nút nhấn trước đó

lastFast = fastPressed;

lastMedium = mediumPressed;

lastSlow = slowPressed;

lastStop = stopPressed;

// Điều khiển bơm và đèn LED theo trạng thái

if (state == 1) {

// Bơm nhanh: LED xanh sáng, các LED khác tắt, tất cả 3 bơm sáng

digitalWrite(pump1, HIGH);

digitalWrite(pump2, HIGH);

digitalWrite(pump3, HIGH);

digitalWrite(ledGreen, HIGH);

digitalWrite(ledYellow, LOW);

digitalWrite(ledRed, LOW);

} else if (state == 2) {

// Bơm vừa: LED vàng sáng, các LED khác tắt, 2 bơm sáng

digitalWrite(pump1, HIGH);

digitalWrite(pump2, HIGH);

digitalWrite(pump3, LOW);

digitalWrite(ledGreen, LOW);

digitalWrite(ledYellow, HIGH);

digitalWrite(ledRed, LOW);

} else if (state == 3) {

// Bơm chậm: LED đỏ sáng, các LED khác tắt, 1 bơm sáng

digitalWrite(pump1, HIGH);

digitalWrite(pump2, LOW);

digitalWrite(pump3, LOW);

digitalWrite(ledGreen, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledRed, HIGH);

} else if (state == 0) {

digitalWrite(pump1, LOW);

digitalWrite(pump2, LOW);

digitalWrite(pump3, LOW);

digitalWrite(ledGreen, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledRed, LOW);

} else {

// Tắt tất cả khi không có trạng thái

Trang 18

digitalWrite(pump2, LOW);

digitalWrite(pump3, LOW);

digitalWrite(ledGreen, LOW);

digitalWrite(ledYellow, LOW);

digitalWrite(ledRed, LOW);

}

}

Ngày đăng: 09/12/2024, 22:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w