版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、項目十二:智能倉儲貨物門禁系統(tǒng)方案設(shè)計與實踐一、教學(xué)目標(biāo)1、掌握物聯(lián)網(wǎng)倉儲貨物門禁、入庫等多個功能模塊設(shè)計。2、掌握物聯(lián)網(wǎng)倉儲物門禁系統(tǒng)門禁功能設(shè)計。3、掌握物聯(lián)網(wǎng)倉儲物貨門禁系統(tǒng)整體設(shè)計、數(shù)據(jù)庫設(shè)計及系統(tǒng)實現(xiàn)。二、教學(xué)內(nèi)容12.1智能倉儲貨物門禁系統(tǒng)概述1、系統(tǒng)概述智能物流倉儲系統(tǒng)是以企業(yè)物流業(yè)務(wù)流程為基礎(chǔ),以RFID技術(shù)為實現(xiàn)手段,實現(xiàn)從采購訂單、收貨、組托上架、盤點、銷售訂單、揀貨、出庫到裝車運輸?shù)耐暾悄芪锪髁鞒蹋瑫r結(jié)合RFID識別設(shè)備和環(huán)境監(jiān)控,可實現(xiàn)商品倉儲環(huán)境及商品運輸途中環(huán)境的實時監(jiān)控、設(shè)備管理等功能,并通過對系統(tǒng)數(shù)據(jù)進行綜合統(tǒng)計分析和運用,達到改善管理,減少人工、降低成本,
2、提升效率及準(zhǔn)確率,優(yōu)化合理庫存,縮短商品庫存周期,提高數(shù)據(jù)實時性,實時動態(tài)掌握庫存情況,實現(xiàn)對庫存物品的可視化管理的目的,實現(xiàn)企業(yè)物流過程的精益管理。2、硬件系統(tǒng)構(gòu)成 RFID標(biāo)簽 :根據(jù)不同的應(yīng)用需求 ,采用高頻和超高頻的產(chǎn)品。分為貨架標(biāo)簽、托盤標(biāo)簽、設(shè)備標(biāo)簽、單品標(biāo)簽、人員工卡等。讀寫器 :分為固定式讀寫器和手持移動式讀寫器兩類 ,支持 RS232、以太網(wǎng)和無線局域網(wǎng)等多種通信方式。固定式天線 :包括超高頻全向平板、垂直平板和水平平板天線 ,能夠適應(yīng)多路徑高散射的復(fù)雜環(huán)境 ,能夠增強接收信號。12.2 智能倉儲貨物門禁系統(tǒng)方案設(shè)計1、基礎(chǔ)數(shù)據(jù)庫設(shè)計基礎(chǔ)數(shù)據(jù)部分包括:倉庫、供應(yīng)商、產(chǎn)品種類、
3、產(chǎn)品、客戶設(shè)置安全庫存、付款條件、DPS電子標(biāo)簽設(shè)置等基礎(chǔ)資料部分,主要操作就是增,刪,該,查,保存基礎(chǔ)資料到數(shù)據(jù)庫,以便之后的模塊進行操作。數(shù)據(jù)結(jié)構(gòu)設(shè)計1)員工表員工表 bas_staffinfo 字段名稱說明數(shù)據(jù)類型SfaffID 工號varchar(10)StaffName員工姓名varchar(10)RFID員工RFID標(biāo)簽varchar(10)Status狀態(tài)char(1)2)貨品信息表貨品信息表 eqm_cargoinfoCARGOCode貨品編號VARCHAR(20)RFIDRFID電子標(biāo)簽VARCHAR(24)BARCode條形碼VARCHAR(24)EqptType貨品類型V
4、ARCHAR(10)EQPTName貨品名稱VARCHAR(50)Status狀態(tài)CHAR(1)3)訂單表表設(shè)備權(quán)限表 eqm_orderStaffID人員工號VARCHAR(10)CARGORFID貨品RFIDVARCHAR(24)Time訂單時間DATETIMERTNDate入庫時間DATETIMEORDERType訂單類別VARCHAR(10)2、智能倉儲貨物門禁系統(tǒng)整體架構(gòu)設(shè)計用系統(tǒng)觀點來研究物流活動是現(xiàn)代物流學(xué)的核心問題之一。物流系統(tǒng)分析是指在一定時間、空間里,以所從事的物流活動和過程作為一個整體來處理,用系統(tǒng)的觀點、系統(tǒng)工程的理論和方法進行分析研究,以實現(xiàn)其空間和時間的經(jīng)濟效應(yīng)。物
5、流系統(tǒng)是由運輸、儲存、裝卸、搬運、包裝、配送、流通加工、信息處理等各個環(huán)節(jié)所組成的,他們也稱為物流系統(tǒng)的子系統(tǒng)。作為系統(tǒng)的輸入是輸送、儲存、搬運、裝卸、包裝、物流情報、流通加工等環(huán)節(jié)所消耗的勞務(wù)、設(shè)備、材料等資源,經(jīng)過物流系統(tǒng)的處理轉(zhuǎn)化,以物流服務(wù)的方式輸出系統(tǒng)。換句話說,整體優(yōu)化的目的就是要使輸入最少,即物流成本最低,消耗的資源最少;而作為輸出的物流服務(wù)效果最佳。作為物流系統(tǒng)服務(wù)性的衡量標(biāo)準(zhǔn)可以列舉如下: 對用戶的訂貨能很快地進行配送; 接受用戶訂貨時商品的在庫率高; 在運送中交通事故、貨物損傷、丟失和發(fā)送錯誤少; 保管中變質(zhì)、丟失、破損現(xiàn)象少; 具有能很好地實現(xiàn)運送、保管功能的包裝; 裝卸
6、搬運功能滿足運送和保管的要求; 能提供保障物流活動流暢進行的物流信息系統(tǒng),能夠及時反饋信息; 合理的流通加工,以保證生產(chǎn)費用、物流費用總和最少。圖12-1RFID通道閱讀器應(yīng)用示意圖3、智能倉儲貨物門禁系統(tǒng)功能模塊流程設(shè)計智能物流倉儲室基于物聯(lián)網(wǎng)信息平臺,以特高頻RFID通道讀卡器、特高頻RFID手持機、高頻RFID讀卡器為感知體系,以物流管理軟件為支撐,形成高效統(tǒng)一的入庫系統(tǒng)。可完成自動批量收貨、入庫計劃、組托、上架、采購?fù)素?、操作員任務(wù)自動下發(fā)、入庫商品監(jiān)控和門禁功能。同時可實時觀察倉庫內(nèi)工作人員工作情況,掌握工作進度,確保操作規(guī)范性,保證料帳帳實相符。導(dǎo)航貨位上架錄入采購訂單收貨進入門禁
7、允許進入結(jié)束開始掃描匹配貨物報警,貨品有誤圖12-2入庫操作流程圖智能入庫系統(tǒng)的特點: 以物聯(lián)網(wǎng)信息平臺為基礎(chǔ),形成統(tǒng)一的物流系統(tǒng); 采用超高頻RFID技術(shù),可進行收貨批量掃描、入庫商品監(jiān)控、上架信息自動判別是否與入庫計劃相符等智能功能,提升入庫速度、加強入庫安全;標(biāo)簽可重復(fù)利用,降低管理成本。12.3 智能倉儲貨物門禁系統(tǒng)方案實踐1、權(quán)限設(shè)備操作連接數(shù)據(jù)庫/權(quán)限設(shè)備操作連接數(shù)據(jù)庫public class ConnectionDB private Connection con = null;private Statement stmt = null;private ResultSet rs =
8、 null;public boolean getmart_flag = true;public boolean isLogin_flag = true;/ 連接數(shù)據(jù)庫public ConnectionDB() try String strurl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);+ DBQ=DataBase/logistics.mdb;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException eg) con = DriverMa
9、nager.getConnection(strurl); catch (Exception es) es.printStackTrace();2、判斷用戶是否有權(quán)限登錄/ *判斷用戶是否有權(quán)限登錄*/public boolean isLimit(int name, String mark) boolean f = false;try stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs = stmt.executeQuery(select * from bas_us
10、errightinfo where MoniRecoSN = + name+ and RFID = + mark + );while (rs.next() f = true;rs.close();stmt.close();return f; catch (SQLException e) return f;3、權(quán)限設(shè)備操作/ 權(quán)限設(shè)備操作/設(shè)備監(jiān)控入口public class ExecListener extends ContextLoaderListener public void contextDestroyed(ServletContextEvent event) System.out.p
11、rintln(設(shè)備監(jiān)控結(jié)束!); public void contextInitialized(ServletContextEvent event) System.out.println(設(shè)備監(jiān)控開始!);final ServletContext context = event.getServletContext();/多線程執(zhí)行操作new Thread( new Runnable() public void run() /定時執(zhí)行的方法ApplicationContext ac=WebApplicationContextUtils.getRequiredWebApplicationConte
12、xt(context);ExecBrushCard execBrushCard=(ExecBrushCard)ac.getBean(execBrushCard);Timer timer=new Timer();timer.schedule(new ExecTimer(ac), 10,1000); /設(shè)備掃描計時器execBrushCard.exec();/門禁打卡監(jiān)控入口).start(); 4、門禁監(jiān)控進程/門禁監(jiān)控進程(線程一)public class ExecBrushCard AutowiredQualifier(visitData)private VisitData visitDat
13、a;private Judge judge;private ExecSocket esk;public List monitordev;/* * 刷卡時判斷是否可以登入 * param IP 門禁IP * param port 門禁機器端口 * param rfid員工RFID電子標(biāo)簽 */public boolean run(String IP,int port,String rfid)boolean bl=false;BasUserrightinfo basUserrightinfo=null;List userRightList=new ArrayList();userRightList
14、=visitData.getUserright(rfid);for(BasUserrightinfo userRight:userRightList)BasMonitordevinfo monitordev = (BasMonitordevinfo)visitData.findEntityId(userRight.getMoniRecoSn(), BasMonitordevinfo.class);if(monitordev.getIp().equals(IP) & monitordev.getPort().intValue()=port)bl=true;basUserrightinfo=use
15、rRight;if(bl & basUserrightinfo!=null)return visitData.updateUserright(basUserrightinfo);elsereturn false;/* * 門禁監(jiān)控執(zhí)行方法 */public void exec() monitordev=visitData.login(設(shè)備門禁);if(monitordev=null | monitordev.size()1)System.out.println(找不到打卡設(shè)備信息!);return; new Thread(new Runnable() public void run() for
16、(BasMonitordevinfo monit:monitordev)/獲得Socket連接操作類esk = new ExecSocket(monit.getIp(),monit.getPort(),ExecBrushCard.this);/執(zhí)行Socket連接方法esk.openSocketConn();).start();public Judge getJudge() return judge;public void setJudge(Judge judge) this.judge = judge; public VisitData getVisitData() return visit
17、Data; public void setVisitData(VisitData visitData) this.visitData = visitData; /門禁Socket操作類public class ExecSocket private String Ip;private int Port;private ExecBrushCard ebc;public boolean connect_flag;public boolean esk_flag;private SocketOperates soc=new SocketOperates();private DataInputStream
18、 dis;public ExecSocket(String Ip,int port,ExecBrushCard ebc)this.Ip=Ip;this.Port=port;this.ebc = ebc;/執(zhí)行Socket操作方法public void openSocketConn() while(true) try Thread.sleep(100);soc.getConnect(Ip,Port, 10000); dis=new DataInputStream(new BufferedInputStream(soc.getClient().getInputStream(); StringBuf
19、fer rfid=new StringBuffer(); connect_flag = true; esk_flag = true;new Thread(new Runnable() public void run() while (esk_flag) try Thread.sleep(3000);if(!esk_flag)connect_flag = false;soc.closeSock();dis.close();soc.client.sendUrgentData(0xFF); catch (Exception e) connect_flag = false;try dis.close(
20、);soc.closeSock(); catch (IOException e1) e1.printStackTrace();break;).start(); do rfid.delete(0, rfid.length(); dis.read(); byte ss=new bytedis.available(); dis.read(ss);/循環(huán)獲得掃描到的所有數(shù)據(jù) for(int i=0;iss.length-1;i+) rfid.append(char)Integer.parseInt(ssi+); ebc.run(Ip, Port, rfid.toString();/對掃描到的數(shù)據(jù)進行對
21、應(yīng)的操作 while(dis.available()=0&connect_flag); catch (Exception e) System.err.println(e);esk_flag = false;connect_flag = false;try if(dis!=null)dis.close();if(soc!=null)soc.closeSock(); catch (IOException e1) e1.printStackTrace(); 4、設(shè)備監(jiān)控進程/設(shè)備監(jiān)控進程(線程二)public class ExecTimer extends TimerTask private Lis
22、t listRfid=new ArrayList();private int i=0;private ApplicationContext ac;public ExecTimer(ApplicationContext ac)this.ac=ac;Override/定時器執(zhí)行內(nèi)容public void run() ExecMonitoring execMonitoring=(ExecMonitoring)ac.getBean(execMonitoring);Jinvoke jin=(Jinvoke)ac.getBean(jinvoke);this.addRfidData(jin.equVisit
23、();/收集每次掃描獲得的數(shù)據(jù)i+;if(i=5 & this.listRfid.size()0)/每掃描5次時會對數(shù)據(jù)處理execMonitoring.run(this.listRfid);/調(diào)用數(shù)據(jù)處理方法this.listRfid.removeAll(listRfid);/處理完數(shù)據(jù)后進行清空if(i=5)i=0;/收集數(shù)據(jù)方法public List addRfidData(String rfid)if(rfid=null)return null;for(int i=0;irfid.length;i+)if(rfidi.equals() | rfidi=null)continue;if(
24、listRfid.size()1)listRfid.add(rfidi);elseboolean bl=true;for(String str:listRfid)if(rfidi.equals(str)bl=false;if(bl)listRfid.add(rfidi);return listRfid; /設(shè)備監(jiān)控Socket連接操作public class JinvokeAutowiredQualifier(visitData)private VisitData visit;public String equVisit() BasMonitordevinfo monit=visit.logi
25、n(設(shè)備掃描).get(0);if(monit=null)System.out.println(找不到標(biāo)簽掃描設(shè)備信息!);return null;/Socket連接對象(IP,端口,初始時間,指令,數(shù)據(jù)類型狀態(tài))SensorTcp soke=new SensorTcp(monit.getIp(), monit.getPort(), 3000, 04 02 01 6b 78 88 05 02 01 fb 4a 88 04 01 00 9b 4a, 1);soke.Operate();/Scket連接方法byte by=soke.getResult();/獲得掃描數(shù)據(jù)if(by=null | b
26、y.length1)System.out.println(掃描沒有獲得的設(shè)備信息!);return null;String str=BytetoString(by);String data=trimStr(str).split(0c);String ret=new Stringdata.length-1;for (int i = 1; i data.length; i+) reti-1=datai.toUpperCase();return ret; /去除空字符public String trimStr(String str)StringBuffer srtBut= new StringBuf
27、fer();for (int i = 0; i str.length()-6; i+) char cha=str.charAt(i);if(cha!= )srtBut.append(cha);return srtBut.toString();/16進制轉(zhuǎn)換 byteStringpublic String BytetoString(byte retval2)/byte到String的一個轉(zhuǎn)換程序,例如16進制0x06使顯示臺顯示為06byte retval1=retval2;String str=;for(int i=0;iretval1.length;i+) str=str+(Integer.
28、toHexString(retval1i) & 0x000000FF) | 0xFFFFFF00).substring(6)+ ; return str; public void setVisit(VisitData visit) this.visit = visit; /設(shè)備監(jiān)控Socket類public class SensorTcp public boolean executeFlag;public boolean connectFlag;private String IP;private int port;private int outtime;private String order
29、;private byte result;private int resultlength;private String originaldata;private String datatype;public SensorTcp(String IP, int port, int outtime, String order, String datatype)this.IP = IP;this.port = port;this.outtime = outtime;this.order = order;this.datatype = datatype;this.executeFlag = false
30、;this.resultlength = 0;this.connectFlag = false;public void setresultlength(int resultlength)this.resultlength = resultlength;public String getoriginaldata()System.out.println(changdu +result.length);reformat(result);return originaldata;/* * 返回ASCII碼數(shù)據(jù) * */public String getoriginaldataASCII()return
31、new String(result);/* * Socket執(zhí)行方法 * */public void Operate()byte sendOrder = null;NumberSendtoPile nsp = new NumberSendtoPile();if(datatype.equals(1)sendOrder = nsp.stringToByte16(order);/指令轉(zhuǎn)換BYTEelse if(datatype.equals(2)sendOrder = nsp.stringToByteASCII(order);/指令轉(zhuǎn)換BYTESocketOperates soc=new Socke
32、tOperates();soc.getConnect(IP, port, outtime);connectFlag = true; DataOutputStream dos = null; DataInputStream dis = null; try dos = new DataOutputStream(new BufferedOutputStream(soc.getClient().getOutputStream(); Thread.sleep(1000); dos.write(sendOrder, 0, sendOrder.length);/發(fā)送指令 dos.flush(); dis=n
33、ew DataInputStream(new BufferedInputStream(soc.getClient().getInputStream(); int recvcontrol = 0; while(dis.available()=0&recvcontrol=resultlength)for(int i=0;i=resultlength)for(int j = 0;jresultlength;j+)cj=bi+j;/System.out.println(Integer.toHexString(cj) & 0x000000FF) | 0xFFFFFF00).substring(6);or
34、iginaldata += Integer.toHexString(cj) & 0x000000FF) | 0xFFFFFF00).substring(6)+ ;String str1=;for(int j=0;jc.length-2;j+)str1=str1+(+Integer.toHexString(cj) & 0x000000FF) | 0xFFFFFF00).substring(6);byte sbuf = CRC16M.getSendBuf(str1);str1=CRC16M.getBufHexStr(sbuf).substring(CRC16M.getBufHexStr(sbuf)
35、.length()-4, CRC16M.getBufHexStr(sbuf).length();String str2=;for(int j=0;j2;j+)str2=str2+(+Integer.toHexString(cc.length-2+j) & 0x000000FF) | 0xFFFFFF00).substring(6);if(!str2.equalsIgnoreCase(str1)c = null;elsec = null;return c; public byte getResult() return result; public void setResult(byte resu
36、lt) this.result = result; /設(shè)備監(jiān)控數(shù)據(jù)處理類public class ExecMonitoring AutowiredQualifier(judge)private Judge judge;AutowiredQualifier(visitData)private VisitData visitData;public static List assetsList=null;/* * 運行方法 */public void run(List list)if(ExecMonitoring.assetsList=null)ExecMonitoring.assetsList =
37、 visitData.getDataAssets();/初始化獲得所有的設(shè)備IDSystem.out.println(初始數(shù)據(jù)長度:+ExecMonitoring.assetsList.size();System.out.println(上一步數(shù)據(jù)長度:+ExecMonitoring.assetsList.size();List rfidList=judge.filterRfid(list);/List rfidList=掃描設(shè)備獲得設(shè)備ID集合System.out.println(當(dāng)前數(shù)據(jù)長度:+rfidList.size();List takesRfidList=judge.getTake
38、sAssetsRfid(ExecMonitoring.assetsList, rfidList);/數(shù)據(jù)比較 獲得剛被取走的數(shù)據(jù)System.out.println(被取走的設(shè)備數(shù)量:+takesRfidList.size();List backRfidList=judge.udgeAssetsRfid(ExecMonitoring.assetsList, rfidList);/數(shù)據(jù)比較 獲得新歸還的數(shù)據(jù)System.out.println(歸還的設(shè)備數(shù)量:+backRfidList.size();if(takesRfidList.size()1 & backRfidList.size()0)/是否有設(shè)備被取走BasStaffinfo staff=null;BasUserrightinfo basUserrightinfo=visitData.inquireStatus();/獲得當(dāng)前刷卡的記錄數(shù)據(jù)String useType=1;if(basUserrightinfo=null)System.out.println(警告:無人登入設(shè)備被取走!);useT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店鋪租賃(出租)意向協(xié)議書
- 2025年度高端摩托車租賃及保養(yǎng)服務(wù)合同2篇
- 2025版?zhèn)€人入股合作協(xié)議書:互聯(lián)網(wǎng)公司股權(quán)分配合同4篇
- 2025年度個人消費分期付款合同標(biāo)準(zhǔn)7篇
- 2025-2030全球石墨氮化碳行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球封離型CO2激光器冷水機行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國鼻炎光療儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國常壓等離子體裝置行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年度國際貨運代理及物流服務(wù)合同
- 商家聯(lián)盟協(xié)議書
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標(biāo)管理制度
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預(yù)習(xí)重點知識默寫練習(xí)
- 2024年食品行業(yè)員工勞動合同標(biāo)準(zhǔn)文本
- 2025年第一次工地開工會議主要議程開工大吉模板
- 糖尿病高滲昏迷指南
- 全屋整裝售后保修合同模板
- 壁壘加筑未來可期:2024年短保面包行業(yè)白皮書
- 高中生物學(xué)科學(xué)推理能力測試
- GB/T 44423-2024近紅外腦功能康復(fù)評估設(shè)備通用要求
- 2024-2030年中國減肥行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資研究報告
評論
0/150
提交評論