Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
4,31 MB
Nội dung
MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC HÌNH VẼ Contents DANH MỤC BẢNG DANH MỤC BẢNG Contents BẢNG KÝ HIỆU VIẾT TẮT BẢNG KÝ HIỆU VIẾT TẮT KÝ HIỆU TÊN GIẢI THÍCH BR Barrier Barrier vào CB Circuit Breaker Aptomat pha COS Change Over Switch Chuyển mạch auto/manual D Đèn báo MC Magnectic Contactor Contactor pha OTR Over Thermal Relay Rơ le nhiệt MK Marshalling Kiosk Rơ le trung gian điều khiển PC Programmer Compurter Máy tính PR Print Máy in CM Camera Camera giám sát DVR Digital Video Recorder Đầu ghi MB UPS Máy bơm Uninterruptible Supplier Power Bộ lưu điện LỜI NÓI ĐẦU LỜI NÓI ĐẦU Nền công nghiệp giao thông vận tải nước ta ngày phát triển, kỹ thuật tiên tiến ngày ứng dụng nhiều Hệ thống cân ô tô tự động khái niệm không xa lạ Tuy sử dụng rộng rãi hầu hết hệ thống cân xe lắp ráp từ thiết bị có sẵn từ nước loadcell, hiển thị, phần tự chế tạo bàn cân, hộp đấu nối loadcel, viết chương trình quản lý trạm cân Việc nắm bắt quy trình công nghệ tự chế tạo hệ thống cân đem lại nhiều lợi ích kinh tế Với lý trên, em dựa kiến thức học tìm hiểu để hoàn thành đề tài “ Thiết kế hệ thống cân ô tô tự động ứng dụng cho nhà máy công nghiệp trạm kiểm định ” Nội dung gồm phần sau: - Chương : Tổng quan hệ thống cân ô tô tự động Chương : Thiết kế hệ thống trạm cân ô tô tự động 80 Thiết kế phần cứng hệ thống cân ô tô Thiết kế chương trình điều khiển cân ô tô: chương trình PLC, mô WinCC Thiết kế hệ thống giám sát cân ô tô: chương trình nhận dạng biển số visual studio 2012 Trong trình hoàn thành để tài em gặp phải số khó khăn tìm tài liệu, vốn kiến thức hạn hẹp Để hoàn thành đề tài, em xin cảm ơn bảo, hướng dẫn cô Đinh Thị Lan Anh xin cảm ơn giúp đỡ tận tình anh Trần Thanh Hà, GĐ công ty Tư Vấn thiết kế công nghệ ELANI Em xin chân thành cảm ơn các thầy cô Viện Điện-Trường Đại Học Bách Khoa Hà Nội, cung cấp kiến thức vô quý báu cho em năm học vừa qua, tạo điều kiện để hoàn thành đề tài đồ án Em xin chân thành cảm ơn! Hà Nội, ngày tháng năm 2014 Sinh viên thực Nguyễn văn Bình Chương1 Tổng quan hệ thống cân ôtô tự động CHƯƠNG I TỔNG QUAN HỆ THỐNG CÂN Ô TÔ TỰ ĐỘNG 1.1 Tổng quan hệ thống cân ô tô tự động - Ứng dụng hệ thống cân ô tô tự động: Trong công nghiệp: Hiện hầu hết nhà máy xí nghiệp trung bình, lớn có hệ thống cân ô tô điện tử -Các trạm cân góp phần không nhỏ vào trình sản xuất công ty doanh nghiệp Các hệ thống cân giúp xác định trọng tải hàng hóa, nguyên liệu xuất nhập ngày cách đơn giản, nhanh chóng, hệ thống lưu trữ liệu tự động giúp doanh nghiệp quản lý thông tin xác, tiện lợi Trong giao thông vận tai: Với ưu việt (nhanh chóng, xác, độ ổn định cao) trạm cân ô tô điện tử giúp xác định xác khối lượng xe lưu góp phần vào việc kiểm soát xe lưu thông - Các loại hệ thống cân ô tô có: hệ thống cân ô tô có chung nguyên lý cân Tùy theo tải trọng cân sử dụng hệ thống cân phù hợp Tuy nhiên, hầu hết hệ thống cân ô tô nước ta nhập nước với thiết bị phần mềm chọn gói với giá thành cao việc bảo dưỡng phức tạp Chúng ta thường làm khâu lắp ráp sản phẩm không nắm rõ yêu cầu kỹ thuật, ý nghĩa kinh tế hạn chế Kết luận: Việc nghiên cứu nguyên lý hệ thống cân ô tô tự động từ tự thiết kế, chế tạo , lập trình hệ thống đem lại nhiều lợi ích kinh tế thúc đẩy phát triển kỹ thuật 1.2 Tổ chức hệ thống cân ô tô tự động Hình 1.1 Tổ chức trạm cân ô tô.[ ] Tổ chức trạm cân ô tô Hình 1.1 trạm cân ô tô phục vụ công việc xác định trọng tải xe thường tổ chức thành thành phần chính: Chương1 Tổng quan hệ thống cân ôtô tự động Kết cấu xây dựng: bao gồm móng cân ( xây dựng từ sắt, thép, xi măng, gạch đá…) mặt bàn cân ( làm thép bê tong ) Thiết bị điện: bao gồm cảm biến lực loadcell, khuếch đại, hộp cộng tín hiệu, bảng hiển thị thiết bị phụ 1.2.1 Kết cấu xây dựng a) Móng cân: phần quan trọng, ảnh hưởng trực tiếp đến độ xác cân.Móng bàn cân phần chịu lực, tạo mặt để xây lắp, thi công cân.Móng cân đảm bảo cho thiết bị gắn cố định chắn, giảm thiểu tượng rung lắc, sụt lún, chịu tải trọng lớn - Móng bàn cân làm kết cấu bê tông cốt thép vững chắc, thi công phía sâu lòng đất Vì phận chịu tải hệ thống cân nên móng cân cần có biện pháp kĩ thuật nhằm chống sụt lún b) Bàn cân - Dùng làm mặt để cân ô tô, bên đặt cảm biến trọng lượng để đo trọng lượng xe ô tô - Được làm từ thép bê tông Phải đảm bảo độ cứng, vững để xe qua không bị rung lắc, uốn cong, biến dạng ảnh hưởng tới kết cân 1.2.2 Thiết bị điện a) Cảm biến trọng lượng ( loadcell ) Là thiết bị để đo trọng lượng xe ô tô.Được bố trí dưới gầm bàn cân, trọng lượng xe tác động vào, loadcell chuyển đổi trọng lượng thành tín hiệu điện cung cấp cho xử lý chuyển đổi thành thông số hiển thị trọng lượng xe b) Hộp nối dây Một trạm cân bao gồm nhiều loadcell khác nhau, để liên kết tín hiệu loadcell với nhằm đưa xác giá tri trọng lượng xe cần cộng tín hiệu Bộ cộng tín hiệu có chức điều chỉnh độ lệch áp chung cho loadcell cộng tín hiệu loadcell rời dạc thành tín hiệu chung đưa thị c) Bộ hiển thị Nhận tín hiệu từ hộp cộng tín hiệu, xử lí tín hiệu chuyển đổi thành giá trị trọng lượng xe cho người sử dụng biết Đưa lên hình để kiểm tra in phiếu toán lưu giữ liệu 1.3 Nguyên lý hệ thống cân ô tô tự động Chương1 Tổng quan hệ thống cân ôtô tự động Hình 1.2 Sơ đồ khối hệ thống cân sử dụng loadcell [ ] Khi có áp lực tải trọng xe tác dụng lên mặt cân, cảm biến lực (loadcell) bị biến dạng tạo tín hiệu điện.Tín hiệu điện truyền đến khuếch đại chuẩn hóa.Tại tín hiệu chuẩn hóa khuếch đại lên thành tín hiệu tương thích dành cho xử lý trung tâm Khi có áp lực tải trọng xe tác dụng lên mặt cân, cảm biến lực (loadcell) bị biến dạng tạo tín hiệu điện.Tín hiệu điện truyền đến khuếch đại chuẩn hóa Tại tín hiệu chuẩn hóa khuếch đại lên thành tín hiệu tương thích dành cho xử lý trung tâm Bộ xử lý trung tâm nhận tín hiệu từ khuếch đại chuẩn hóa, xử lý tín hiệu nhận theo chương trình mà người sử dụng cài đặt.Sau tín hiệu chuyển đổi thành tín hiệu điều khiển theo yêu cầu đồng thời lệnh cho khối thị hiển thị giá trị ứng với trọng tải xe Hình 1.2 1.4 Phân tích ưu nhược điểm hệ thống cân ô tô có Bảng 1.1 So sánh hệ thống cân có.[ ] Tên trạm cân Ưu điểm Nhược điểm Trạm cân -Bàn cân lắp đặt dễ dàng, nhanh chóng -Vệ sinh đơn giản, tránh tác động rác,bụi bẩn,nước úng -Dễ dàng bảo dưỡng, kiểm tra thiết bị -Tốn diện tích (do -Tiện lợi cho nơi có địa phải làm đường dẫn hình thấp, dễ ngập lên, xuống) nước (Hình 1.3a Trạm cân ô tô nổi) -Thẩm mỹ (cao mặt chung từ 20-50cm) -Khả nước Trạm cân chìm -Thẩm mỹ -Tốn diện tích Ứng dụng thoát - Chi phí cao - Nơi địa hình cao, -Phải có hệ thống khô ráo, xảy Chương1 Tổng quan hệ thống cân ôtô tự động (Hình 1.3b Trạm cân ô tô chìm) Trạm cân nửa chìm (Hình 1.3c Trạm cân ô tô nửa -Xe lưu thông qua lại thoát nước, bơm ngập úng nước chống ngập thuận tiện, dễ dàng đảm úng bảo độ xác - Khó vệ sinh, lắp đặt thay bảo ổn định cân dưỡng - Thẩm mỹ - Tốn diện tích trung bình( có hố chờ để lắp đặt loadcell) - Ít chịu ảnh hưởng môi trường chìm) - Chi phí móng hầm - Nơi địa hình cao, khô ráo, xảy cao ngập úng - Dễ bị ngập úng -Khó vệ sinh, lắp đặt sửa chữa Chương1 Tổng quan hệ thống cân ôtô tự động Hình 1.3a Trạm cân ô tô Hình 1.3b Trạm cân ô tô chìm 10 Phụ lục R CAN_V, LPP TON T52, 300 Symbol Address Comment CAN_R M0.5 Block: MANUALCANRA Network CHUONG TRINH CAN XE RABANG TAY: BAT DAU CHUONG TRINH CAN LD HOATDONG S CAN_R, Symbol Address Comment CAN_R M0.5 HOATDONG M0.0 Network CHUONG TRINH CAN XE VAO: DUA GIA TRI CUA BAN CAN LEN MAN HINH WIN CC LD CAN_R MOVR HIENTHI, HIIENTHI_CANVAO Symbol Address Comment CAN_R M0.5 HIENTHI VD108 HIIENTHI_CANVAO VD110 Network CHUONG TRINH CAN XE VAO: SO SANH GIA TRI TREN BAN CAN DE DUA RA CANH BAO NEU XE QUA TAI TRONG LD CAN_R AR>= HIIENTHI_CANVAO, KL_MAX S QUA_TAI, Symbol Address Comment CAN_R M0.5 HIIENTHI_CANVAO VD110 KL_MAX VD114 QUA_TAI Q0.7 Network SAU S TA RESET CAN_R LD CAN_R LPS AN T53 R CAN_R, LPP TON T53, 300 Symbol Address Comment CAN_R M0.5 63 Phụ lục Chương trình nhận diện biển số viết phần mềm Visual studio 2012 / LPRDlg.cpp : Mã nguồn cho chương trình // #include"stdafx.h" #include"LPR.h" #include"LPRDlg.h" #include"afxdialogex.h" #include"LprCore.h" #include #include #include #include"TrainSVM.h" #include"unity_conversion.h" #include"About.h" #include #include #include usingnamespace std; #ifdef _DEBUG #definenew DEBUG_NEW #endif class CAboutDlg : public CDialogEx { public: CAboutDlg(); // liệu số enum { IDD = IDD_ABOUTBOX }; 64 Phụ lục protected: virtualvoid DoDataExchange(CDataExchange* pDX); // thực protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP() // CLPRDlg dialog CLPRDlg::CLPRDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CLPRDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CLPRDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_TEXT_RESULT, text_result); 65 Phụ lục DDX_Control(pDX, IDC_IMG_FILE, img_file); DDX_Control(pDX, IDC_IMG_SIZE, img_size); DDX_Control(pDX, IDC_NUM_PLATE, num_plate); DDX_Control(pDX, IDC_TIME_DETECT, time_detection); DDX_Control(pDX, IDC_TIME_REGCO, time_regconition); DDX_Control(pDX, IDC_TIME_TOTAL, time_total); } // Khai báo chương trình BEGIN_MESSAGE_MAP(CLPRDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_UPDATE_COMMAND_UI(ID_FILE_OPENIMAGE, &CLPRDlg::OnUpdateFileOpenimage) ON_UPDATE_COMMAND_UI(ID_FILE_SAVEPLATE, &CLPRDlg::OnUpdateFileSaveplate) ON_UPDATE_COMMAND_UI(ID_FILE_SAVECHARACTERS, &CLPRDlg::OnUpdateFileSavecharacters) ON_UPDATE_COMMAND_UI(ID_FILE_EXIT, &CLPRDlg::OnUpdateFileExit) ON_UPDATE_COMMAND_UI(ID_TOOL_TRAINING, &CLPRDlg::OnUpdateToolTraining) ON_BN_CLICKED(IDC_BUTTON1, &CLPRDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CLPRDlg::OnBnClickedButton2) ON_COMMAND(ID_FILE_SAVETEXT, &CLPRDlg::OnFileSavetext) ON_UPDATE_COMMAND_UI(ID_FILE_SAVETEXT, &CLPRDlg::OnUpdateFileSavetext) ON_UPDATE_COMMAND_UI(ID_HELP32776, &CLPRDlg::OnUpdateHelp32776) ON_STN_CLICKED(IDC_TEXT_RESULT, &CLPRDlg::OnStnClickedTextResult) END_MESSAGE_MAP() // CLPRDlg đua ời cảnh báo 66 Phụ lục BOOL CLPRDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // Thêm " Thư mục" menu hệ thống // IDM_ABOUTBOX phải nằm phạm vi lệnh hệ thống ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); // thiết lập biểu tượng icon lớn // thiết lập biểu tượng icon nhỏ cv::namedWindow("src", 1); HWND h1 = (HWND) cvGetWindowHandle("src"); HWND hp1 = ::GetParent(h1); ::SetParent(h1, GetDlgItem(IDC_PIC_SRC)->m_hWnd); ::ShowWindow(hp1, SW_HIDE); cv::namedWindow("plate", 1); HWND h2 = (HWND) cvGetWindowHandle("plate"); 67 Phụ lục HWND hp2 = ::GetParent(h2); ::SetParent(h2, GetDlgItem(IDC_PIC_PLATE)->m_hWnd); ::ShowWindow(hp2, SW_HIDE); cv::namedWindow("character", 1); HWND h3 = (HWND) cvGetWindowHandle("character"); HWND hp3 = ::GetParent(h3); ::SetParent(h3, GetDlgItem(IDC_PIC_CHARACTER)->m_hWnd); ::ShowWindow(hp3, SW_HIDE); CFont* font = new CFont; // Font nhận dạng ký tự hiển thị font->CreatePointFont(320, _T("Arial Bold")); text_result.SetFont(font); lpr.set_svm_model("svm.txt"); return TRUE; // trở TRUE trừ bạn thiết lập cho giá trị điều khiển } void CLPRDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialogEx::OnSysCommand(nID, lParam); } } void CLPRDlg::OnPaint() { if (IsIconic()) { 68 Phụ lục CPaintDC dc(this); // Thiết bị bối cảnh cho tranh SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // Biểu tượng trung tâm hình chữ nhật int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Vẽ biểu tượng icon dc.DrawIcon(x, y, m_hIcon); } else { CDialogEx::OnPaint(); } } // Hệ thống gọi chức để có trỏ hiển thị người dùng đưa trỏ chuột tới góc trái giao diện // Cửa sổ thu nhỏ HCURSOR CLPRDlg::OnQueryDragIcon() { returnstatic_cast(m_hIcon); } void CLPRDlg::OnUpdateFileOpenimage(CCmdUI *pCmdUI) { // Load ảnh static CString Filter=_T("image files (*.bmp; *.jpg) |*.bmp;*.jpg|All Files (*.*)|*.*||"); 69 Phụ lục CFileDialog dlg(TRUE, _T("*.bitmap"), NULL, OFN_FILEMUSTEXIST| OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,Filter,NULL); if(dlg.DoModal() == IDOK) { file_name = to_string(dlg.GetPathName()); src = imread(file_name); if(src.empty()) return; imshow("src", src); lpr.clear(); } } void CLPRDlg::OnUpdateFileSaveplate(CCmdUI *pCmdUI) { // Lưu ảnh if(plate.empty()) return; static CString Filter=_T("All Files (*.*)|*.*||"); CFileDialog dlg(FALSE, _T("*.jpg"), NULL, OFN_FILEMUSTEXIST| OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,Filter,NULL); if(dlg.DoModal() == IDOK) { std::vector p(2); p.at(0) = CV_IMWRITE_JPEG_QUALITY; p.at(1) = 90; cv::imwrite(to_string(dlg.GetPathName()), plate, p); } } void CLPRDlg::OnUpdateFileSavecharacters(CCmdUI *pCmdUI) { 70 Phụ lục } void CLPRDlg::OnUpdateFileExit(CCmdUI *pCmdUI) { // đóng giao diện phần mềm this->OnCancel(); } void CLPRDlg::OnUpdateToolTraining(CCmdUI *pCmdUI) { TrainSVM svm; svm.DoModal(); } void CLPRDlg::OnBnClickedButton1() { //Mở ảnh thư viện static CString Filter=_T("image files (*.bmp; *.jpg) |*.bmp;*.jpg|All Files (*.*)|*.*||"); CFileDialog dlg(TRUE, _T("*.bitmap"), NULL, OFN_FILEMUSTEXIST| OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,Filter,NULL); if(dlg.DoModal() == IDOK) { file_name = to_string(dlg.GetPathName()); src = imread(file_name); if(src.empty()) return; Mat disp_src; resize(src, disp_src, Size(810, 570)); imshow("src", disp_src); lpr.clear(); } 71 Phụ lục } void CLPRDlg::OnBnClickedButton2() { // Hiển thị kết if(src.empty()) return; Mat disp_plate, disp_character; lpr.set_image(src); lpr.do_process(); vector plates = lpr.get_plate_detection(); vector characters = lpr.get_character_isolation(); vector t = lpr.get_process_time(); vector text = lpr.get_text_recognition(); if(plates.size() > 0) { plate = plates[0]; resize(plate, disp_plate, Size(280,50)); imshow("plate", disp_plate); character = characters[0]; resize(character, disp_character, Size(280,50)); imshow("character", disp_character); text_recognition = text[0]; text_result.SetWindowTextW(to_wstring(text_recognition)); img_file.SetWindowTextW(to_wstring(file_name)); img_size.SetWindowTextW(to_wstring(to_string(src.cols) + "x" + to_string(src.rows))); num_plate.SetWindowTextW(to_wstring((int)plates.size())); time_detection.SetWindowTextW(to_wstring(t[0]) + " ms"); time_regconition.SetWindowTextW(to_wstring(t[1]) + " ms"); time_total.SetWindowTextW(to_wstring(t[0] + t[1]) + " ms"); } else 72 Phụ lục { text_result.SetWindowTextW(_T("")); img_file.SetWindowTextW(to_wstring(file_name)); img_size.SetWindowTextW(to_wstring(to_string(src.cols) + "x" + to_string(src.rows))); num_plate.SetWindowTextW(_T("0")); time_detection.SetWindowTextW(to_wstring(t[0]) + " ms"); time_regconition.SetWindowTextW(_T("~ ms")); time_total.SetWindowTextW(to_wstring(t[0]) + " ms"); } } void CLPRDlg::OnFileSavetext() { } void CLPRDlg::OnUpdateFileSavetext(CCmdUI *pCmdUI) { // Lưu nhận dạng văn if(text_recognition.empty()) return; static CString Filter=_T("All Files (*.*)|*.*||"); CFileDialog dlg(FALSE, _T("*.*"), NULL, OFN_FILEMUSTEXIST| OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,Filter,NULL); if(dlg.DoModal() == IDOK) { string save_file = to_string(dlg.GetPathName()); std::ofstream ofs(save_file); if(!ofs) return; ofs