L ỜI NÓI ĐẦU
3.3.2 Module TB-6560 Driver điều khiển động cơ bước
Hình 3.14 Driver TB-6560
❖ Thông số kỹ thuật
- Nguồn đầu vào là 9V - 40V. - Dòng cấp tối đa là 4A.
- Ngõ vào có cách ly quang, tốc độ cao. - Có tích hợp đo quá dòng quá áp.
- Khối lượng: 200G.
- Kích thước: 96 * 71 * 37mm.
❖ Cài đặt và ghép nối [11]
- DC+: Nối với nguồn điện tử 9 - 40VDC. - DC- : Điện áp (-) âm của nguồn.
- A+ và A-: Nối vào cặp cuộn dây của động cơ bước. - B+ và B- : Nối với cặp cuộn dây còn lại của động cơ.
- PUL+: Tín hiệu cấp xung điều khiển tốc độ.
- PUL-: Tín hiệu cấp xung điều khiển tốc độ (-) (24VDC). - DIR+: Tín hiệu cấp xung đảo chiều.
- DIR-: Tín hiệu cấp xung đảo chiều âm (24VDC).
- ENA+ và ENA-: khi cấp tín hiệu cho cặp này động cơ sẽ không có lực momen giữ và quay.
- Có thể đấu tín hiệu dương (+) chung hoặc tín hiệu âm (-) chung. Sơ đồ nối dây như hình 3.14.
Hình 3.15 Sơ đồ nối dây
❖ Cài đặt dòng cho động cơ bước
Bảng 3.2 Setup dòng cho động cơ bước
I(A) SW4 SW5 SW6 0.3 1 1 1 0.6 0 1 1 1.0 1 0 1 1.4 0 0 1 1.9 1 1 0 2.2 0 1 0 2.6 1 0 0 3.0 1 0 0
Cài đặt dòng cho động cơ bước là: - Trục X: SW4=1, SW5=1, SW6=1; - Trục Y: SW4=0, SW5=0, SW6=1; - Trục Z: SW4=0, SW5=0, SW6=1.
❖ Cài đặt vi bước cho Driver
Bảng 3.3 Cài đặt vi bước cho Driver
Micro Pulse/rev SW1 SW2 SW3 OFF 0 1 1 1 1 200 1 1 0 1/2A 400 1 0 1 1/2B 600 0 1 1 1/4 800 1 0 0 1/8 1600 0 1 0 1/16 3200 0 0 1 1/32 6400 0 0 0
Cài đặt vi bước cho động cơ bước là: - Trục X: SW1=0, SW2=0, SW3=1; - Trục Y: SW1=1, SW2=0, SW3=0; - Trục Z: SW1=1, SW2=0, SW3=0.
Phương pháp điều khiển vi bước là phương pháp điều khiển động cơ bước được sử dụng phổ biến nhất vì nó có tính chính xác rất cao. Mạch điều khiển cung cấp ngay 1 dòng bước biến đổi cho cuộn dây stato đang tồn tại ở dạng sóng hình sin. Những bước đi nhỏ xíu này hiện nay dùng để tăng cường độ chính xác tuyệt đối của từng bước một. Phương pháp này cũng được sử dụng rộng rãi do nó có thể giảm tiếng ồn của hoạt động ở mức độ lớn.
❖ Phương pháp điều chế xung điều khiển động cơ bước
Đểđiều khiển động cơ bước động vít me đến một vịtrí xác định ta cần cài đặt chế độ làm việc cho driver và tính toán số xung cấp cho động cơ bước với các thông số:
+ Vít me T8 bước 8mm. + Động cơ có góc bước 1.8º.
Ta có số xung cần cấp cho động cơ để di chuyển các trục Y,Z 1mm:
α = . . = . . . 4 = 100 (3.40)
Trong đó: : Bước ren.
: Góc bước động cơ dẫn động.
: Lựa chọn chếđộvi bước trên driver.
Ta có công thức tính số xung cấp cho động cơ bước theo từng vị trí:
x = α.s (3.41) Trong đó: x: Số xung cần cấp. α: Sốxung để vít me dịch chuyển 1mm. s: Khoảng cách. 3.3.3 Cảm biến tiệm cận Hình 3.16 Cảm biến tiệm cận E3F-DS30C4
❖ Thông số kỹ thuật
- Tên thiết bị: E3F-DS30C4
- Cảm biến dạng quang điện loại khuếch tán (thu phát trên cùng 1 đầu cảm biến).
- Nguồn cấp: 6~36VDC. - Ngõ ra: 3 dây NPN NO.
- Khoảng cách phát hiện: 0~30cm.
- Phát hiện các đối tượng: Trong suốt, mờđục ... - Dòng ngõ ra: 300mA.
- Có đèn LED chỉ thị khi có ngõ ra. - Kiểu dáng: Phi 18, chất liệu nhựa. - Chiều dài dây dẫn: 1m.
- Kích thước: phi 1.8 x 7cm. ❖ Công dụng Nhận biết có hàng và hàng đã vào vị trí xuất/nhập kho. 3.3.4 Công tắc hành trình Hình 3.17 Công tắc hành trình Omron ❖ Thông số kỹ thuật
- Tên thiết bị: V-156-1A5 BY OMI Omron. - Dòng tiếp điểm: 15A tại 250VAC.
- Tiếp điểm: SPDT(INO-INC). - Kiểu tác động: Chốt lăn đòn bẩy.
- Tần số hoạt động: + Cơ: 600 lần/Max. + Điện: 60 lần/Max. - Chống va đập: + Độ bền: 1000m/s2. + Sự cố: 3000m/s2.
- Nhiệt độmôi trường: -25-80°C. ❖ Công dụng:
Xác định điểm gốc của cơ cấu vận chuyển.
3.3.5 Nguồn xung DC 24V-10A
Hình 3.18 Nguồn xung DC 24V-10A
❖ Thông số kỹ thuật
- Điện áp ngõ vào: 110/220VAC. - Điện áp ngõ ra: DC24V.
- Dòng ngõ ra: 10A.
- Nhiệt độ làm việc: 0 - 80°C. - Kích thước: 198 x 98 x 42 mm. ❖ Công dụng:
Chuyển đổi từ nguồn 220V sang nguồn 24V cung cấp cho các thiết bị điện như: PLC, cảm biến, động cơ,…
3.3.6 Thiết bịđóng cắt nguồn điện
Hình 3.19 Aptomat Suntree SCB8-63
❖ Thông số kỹ thuật
- Tên thiết bị: Suntree SCB8-63. - Điện áp: 230~400V.
- Số pha: 2P.
- Dòng điện định mức: 50A. - Dòng cắt (KA): Icu = 6000A. ❖ Công dụng
Ngắt nguồn điện khi có sự cố chập, cháy, quá tải.
3.3.7 Webcam quét QR
❖ Thông số kỹ thuật
- Tên thiết bị: Rapoo C260. - Độ phân giải: 1920*1080p. - Tốc độ khung hình: 30fps. - Micro: Tích hợp micro. - Phạm vi lấy nét: 20mm. - Kích thước: 70 x 50,7 x 44 (mm). - Trọng lượng: 62,8g. ❖ Công dụng:
Nhận dạng mã QR thông qua máy tính.
3.3.8 Relay trung gian Omron
Hình 3.21 Relay trung gian Omron MKS3P
❖ Thông số kỹ thuật
- Tên thiết bị: Omron MKS3P. - Điện áp ngõ vào: 24V.
- Tiếp điểm: 10A. - Đèn báo: có. - Số chân: 8. ❖ Công dụng:
3.3.9 Nút nhấn nhả
Hình 3.22 Nút nhấn nhả LA16Y-DSA1
❖ Thông số kỹ thuật
- Tên thiết bị: LA16Y-DSA1. - Điện áp ngõ vào: 24V. - Tiếp điểm: 5A.
- Tiêu chuẩn: IP4.
- Số tiếp điểm: 1NO + 1NC (1a1b). - Điện trở tiếp xúc: ≤50mΩ. - Tuổi thọđóng ngắt điện: 1x10⁵. - Nhiệt độ làm việc: -5ºC ÷ 50ºC. - Độ ẩm làm việc: 45% ÷ 90%. ❖ Công dụng: Khởi động và dừng hệ thống khi xảy ra sự cố. 3.3.10 Đèn LED Hình 3.23 Đèn LED AD16-16C
❖ Thông số kỹ thuật - Tên thiết bị: AD16-16C. - Điện áp ngõ vào: 24VAC.
- Dòng điện định mức: 20mA
- Độ sáng: ≥100cd/m2.
- Dạng ánh sáng: LED.
- Thời gian hoạt động: ≥30000H.
❖ Công dụng:
Báo hệ thống đang hoạt động hay dừng. 3.4. Chế tạo, thử nghiệm và đánh giá hệ thống
3.4.1. Chế tạo
Sau thời gian nghiên cứu tìm hiểu và thiết kế, thi công đề tài lưu kho tự động, nhóm đã hoàn thành được mô hình sản phẩm đúng tiến độđề ra. Sau đây là một số hình ảnh thi công mô hình:
Hình 3.25 Mô hình khi hoàn thành phần cơ khí
Hình 3.27 Mô hình hoàn chỉnh
Mô hình đồ án sau khi hoàn thiện và lắp ráp thu được kết quảnhư hình 3.26.
Hình 3.29 Giao diện giám sát và điều khiển hệ thống
Hình 3.30 Giao diện điều khiển C#
Giao diện vận hành giữa C# và WinCC được kết nối với nhau thông qua thư viện S7.net. Giao diện điều khiển thủ công được thiết kế như hình 3.29. Giao diện điều khiển tự động được thiết kếnhư hình 3.30.
3.4.2. Thử nghiệm Bảng 3.4 Kết quả thử nghiệm Lần Thiết kế Chức năng Độ chính xác Nguyên nhân Cách khắc phục 1 x x x Cơ cấu vận chuyển không lấy hàng được do cảm biến tiệm cận đặt lệch Chỉnh lại vị trí cảm biến tiệm cận cho hàng dừng đúng vị trí 2 ✓ x x Tín hiệu từ C# không truyền về PLC
Thư viện S7.net bị lỗi, cập nhật lại thư viện S7.net 3 ✓ x x Quãng đường bị lệch một chút so với tính toán
Thanh trượt không trơn tru, bôi thêm dầu vào thanh trượt
4 x ✓ x Động cơ bị trượt bước
do chạy nhanh Giảm tốc độđộng cơ bước xuống, căn chỉnh hợp lý 5 ✓ x ✓ Chế độ tự động không nhận diện được QR code Do nhiều ánh sáng gây chói, điều chỉnh độ sáng môi trường phù hợp 6 ✓ ✓ x Ô hàng ở xa dễ bị rơi trong quá trình vận chuyển Do mô hình hàng nhẹ nên quá trình di chuyển của cơ cấu gây rung dễrơi, khắc phục dán miếng cao su để chống trượt
3.4..3. Đánh giá
- Ưu điểm:
+ Mô hình hoạt động ổn định;
+ Động cơ hoạt động chính xác như tính toán; + Tốc độ phản hồi tín hiệu đạt yêu cầu đặt ra;
+ Kết cấu khung hệ thống chắc chắn, hệ thống hoạt động trơn tru;
+ Ưu tiên sử dụng các chi tiết tiêu chuẩn phổ biến dễ tiếp cận trên thịtrường . - Nhược điểm:
+ Bộ truyền động đai có hiện tượng chùng đai sau thời gian dài thử nghiệm; + Thời gian vận chuyển hàng chậm hơn so với tính toán do chạy nhanh bị hiện
tượng trượt bước;
KẾT LUẬN VÀ ĐỀ XUẤT
Sau thời gian thực hiện đề tài tốt nghiệp dưới sự hướng dẫn tận tình của thầy giáo TS. Nguyễn Anh Tú và sựgiúp đỡ của các thầy cô trong khoa Cơ khí, nhóm em đã hoàn thành đồ án tốt nghiệp, đề tài: “Nghiên cứu, thiết kế và chế
tạo hệ thống lưu kho tựđộng sử dụng mã QR” với các nội dung chính: • Tìm hiểu về các hệ thống lưu kho hiện nay sử dụng trong công nghiệp; • Đề xuất giải pháp thiết kế của nhóm trong đồ án;
• Thiết kế, chế tạo thành công mô hình lưu kho tựđộng với đầy đủ các tính
xxxnăng đặt ra;
• Kiểm thử hoạt động của mô hình.
Đểđồán được hoàn thiện với tính thực tiễn cao hơn, nhóm em xin đưa ra một sốđề xuất phát triển cho đồ án:
• Thiết kế thêm nhiều hơn ô chứa hàng;
• Thiết kế 2 giá hàng song song nhau sử dụng 1 cơ cấu vận chuyển; • Xây dựng trang web kiểm soát thời gian, sốlượng hàng vào/ra; • Thiết kế thêm hệ thống cảnh báo cháy;
• Tích hợp bộlưu điện dùng khi trường hợp mất điện xảy ra.
Quá trình thực hiện đồ án đã giúp nhóm em nắm được các công việc cơ bản để tiến hành xây dựng, thiết kế và triển khai thiết bị thực tế. Đồng thời, công trình nghiên cứu này cũng giúp nhóm em củng cố lại những kiến thức chuyên nghành tích lũy trong quá trình học tập và rèn luyện tại trường.
DANH MỤC TÀI LIỆU THAM KHẢO
[1] Nguyễn Tuấn Linh. (2014). Giáo trình Chi tiết máy. Hà Nội: GDVN. [2] Khoa Cơ Khí, Bộmôn CĐT. (2016). Lý thuyết điều khiển tự động. Trường Đại học công nghiệp Hà Nội.
[3] Nguyễn Hữu Lộc. Thiết kế hệ dẫn động cơ khí.(2007). Đại học Quốc gia thành phố Hồ Chí Minh.
[4] TS. Nguyễn Như Hiền - TS. Nguyễn Mạnh Tùng. (2007). Điều khiển logic và PLC. Hà Nội: NXB Khoa học tự nhiên và công nghệ.
[5] Trịnh Chất - Lê Văn Uyển. (2006). Tính toán thiết kế hệ dẫn động cơ khí
tập 1. Hà Nội: NXB Giáo dục. [6] https://phanmembanhang.asia/nhung-van-de-con-ton-tai-trong-kinh- doanh-chuoi-cua-hang-ban-le/ [7] https://www.daifukulogisticssolutions.com/en/product/asrs/unitload.html [8] https://www.interlakemecalux.com/automated-storage-retrieval-systems- asrs/arsr-boxes-miniload [9] https://people.engr.ncsu.edu/kay/mhetax/StorEq/index.htm [10] https://www.orientalmotor.com/technology [11] Cài đặt và ghép nối Driver https://icdayroi.com/mach-driver-dong-co-buoc-tb6560-3a [12] Relay-Omron-8 pins-data-sheet [13] https://thegioidienco.vn/nguon-xung.html [14] https://thosuaxe.info/cam-bien-tiem-can/
PHỤ LỤC ❖ Bảng địa chỉ PLC
Bảng địa chỉ PLC
Địa chỉ Tên thiết bị Chức năng
I0.0 Nút Start Khởi động hệ thống
I0.1 Nút Stop Dừng hệ thống
I0.2 Công tắc hành trình trục Z Xác định điểm gốc trục Z I0.3 Công tắc hành trình trục Y Xác định điểm gốc trục Y I0.4 Công tắc hành trình trục X Xác định điểm gốc trục X I0.5 Cảm biến tiệm cận đầu băng tải Phát hiện hàng vào băng tải I0.6 Cảm biến tiệm cận cuối băng tải Phát hiện hàng ra băng tải Q0.0 Pulse Driver trục Z Cấp xung cho Driver trục Z Q0.1 Direction Driver trục Z Điều khiển chiều động cơ trục Z Q0.2 Pulse Driver trục Y Cấp xung cho Driver trục Y Q0.3 Direction Driver trục Y Điều khiển chiều động cơ trục Y Q0.4 Pulse Driver trục X Cấp xung cho Driver trục X Q0.5 Direction Driver trục X Điều khiển chiều động cơ trục X Q0.6 Relay vào Điều khiển băng tải chạy thuận Q0.7 Relay ra Điều khiển băng tải chạy nghịch
Q1.0 Led Stop Báo hệ thống đang hoạt động
❖ Chương trình điều khiển C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using AForge.Video; using AForge.Video.DirectShow; using MessagingToolkit.QRCode.Codec.Data; using System.Threading; using ZXing; using System.IO; using System.IO.Ports; using System.Data.SqlClient; using S7.Net; using S7.Net.Types; namespace giaodiendieukhien {
public partial class Form1 : Form { int mode = 0; Plc plc; Image img; Image img_qr_auto; Thread checking;
private FilterInfoCollection cameras; private VideoCaptureDevice cam; public Form1()
{
InitializeComponent(); cameras = new
FilterInfoCollection(FilterCategory.VideoInputDevice); foreach(FilterInfo info in cameras )
{
cbb_cam.Items.Add(info.Name); }
cbb_cam.SelectedIndex = 0; }
private void Form1_Load(object sender, EventArgs e) { mode = 0; btn_muon.BackColor = Color.Green; btn_tra.BackColor = Color.Red; grb_camera.Enabled = true; grb_camera.BackColor = Color.Silver; grb_mode.BackColor = Color.Silver; }
private void btn_makeqr_Click(object sender, EventArgs e) {
if (tb_obj.Text != "" && cbb_vitri.Text != "") {
QRCoder.QRCodeGenerator qr = new QRCoder.QRCodeGenerator();
string nd = tb_obj.Text + "-" + cbb_vitri.Text; var data = qr.CreateQrCode(nd,
QRCoder.QRCodeGenerator.ECCLevel.H);
var code = new QRCoder.QRCode(data); ptb_makeqr.Image = code.GetGraphic(10); }
else {
MessageBox.Show("Vui lòng nhập đủ thông tin !!!","Thông báo"); }
}
private void btn_save_Click(object sender, EventArgs e) {
img = ptb_makeqr.Image;
SaveFileDialog sf = new SaveFileDialog(); sf.Filter = "JPG(*.JPG)|*.jpg"; if(sf.ShowDialog()==DialogResult.OK) { img.Save(sf.FileName); } }
private void btn_start_auto_Click(object sender, EventArgs e) {
timer_checkqr.Enabled = true; if(cam!=null && cam.IsRunning) {
} cam = new VideoCaptureDevice(cameras[cbb_cam.SelectedIndex].MonikerString); cam.NewFrame += cam_NewFrame; cam.Start(); }
void cam_NewFrame(object sender, NewFrameEventArgs eventArgs) {
Bitmap bm = (Bitmap)eventArgs.Frame.Clone(); ptb_qr.Image = bm;
}
private void btn_stop_auto_Click(object sender, EventArgs e) {
if (cam != null && cam.IsRunning) {
cam.Stop();
PictureBox ptb = new PictureBox(); ptb.BackColor = Color.LightGray; ptb_qr.Image = ptb.Image;
} }
protected override void OnClosed(EventArgs e) {
base.OnClosed(e);
{
cam.Stop(); }
}
private void check_qr() { while (true) { try { if (ptb_qr.Image != null) { MessageBox.Show("run"); img_qr_auto = ptb_qr.Image; MessagingToolkit.QRCode.Codec.QRCodeDecoder decoder = new MessagingToolkit.QRCode.Codec.QRCodeDecoder(); tb_ndqr.Text = decoder.Decode(new QRCodeBitmapImage(ptb_qr.Image as Bitmap)); } } catch { } } }
private void timer_checkqr_Tick(object sender, EventArgs e) {
try { if (ptb_qr.Image != null) { //MessageBox.Show("run"); img_qr_auto = ptb_qr.Image;
BarcodeReader reader = new BarcodeReader(); var result = reader.Decode(img_qr_auto as Bitmap); if (result != null) { try { tb_ndqr.Text = result.ToString();
string input = tb_ndqr.Text;
byte[] data_byte = S7.Net.Types.String.ToByteArray(input); if (input.IndexOf("vitri1") != -1) { if (plc.IsConnected) { plc.Write("M1.4", 1); plc.Write("M1.4", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else {
MessageBox.Show("Kết nối không thành công", "Thông báo");
} } if (input.IndexOf("vitri2") != -1) { if (plc.IsConnected) { plc.Write("M1.5", 1); plc.Write("M1.5", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri3") != -1) { if (plc.IsConnected) { plc.Write("M1.6", 1); plc.Write("M1.6", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri4") != -1) { if (plc.IsConnected) { plc.Write("M1.7", 1); plc.Write("M1.7", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri5") != -1) { if (plc.IsConnected) { plc.Write("M2.1", 1); plc.Write("M2.1", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else
{
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri6") != -1) { if (plc.IsConnected) { plc.Write("M2.2", 1); plc.Write("M2.2", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri7") != -1) { if (plc.IsConnected) { plc.Write("M2.3", 1); plc.Write("M2.3", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri8") != -1) { if (plc.IsConnected) { plc.Write("M2.4", 1); plc.Write("M2.4", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
} else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } if (input.IndexOf("vitri9") != -1) { if (plc.IsConnected) { plc.Write("M2.5", 1); plc.Write("M2.5", 0);
//MessageBox.Show("Kết nối thành công", "Thông báo");
}
else {
MessageBox.Show("Kết nối không thành công", "Thông báo"); } } } catch {
MessageBox.Show("Chưa kết nối PLC", "Thông báo"); } } } } catch {
MessageBox.Show("Chưa kết nối PLC", "Thông báo"); }
}
private void btn_muon_Click(object sender, EventArgs e) { btn_muon.BackColor = Color.Green; btn_tra.BackColor = Color.Red; grb_camera.Enabled = true;