• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VB.NET的生產(chǎn)線測試管理系統(tǒng)

      2019-07-20 08:21:14王春艷
      數(shù)字通信世界 2019年6期
      關(guān)鍵詞:句柄測試程序管理軟件

      王春艷

      (東莞搜路研電子有限公司天津分公司,天津 300450)

      1 引言

      為了確保產(chǎn)品質(zhì)量,一臺(tái)制品會(huì)在生產(chǎn)線上多個(gè)工位進(jìn)行各種性能測試,由于操作人員長時(shí)間勞作會(huì)產(chǎn)生身體疲勞或精神不集中等問題,造成產(chǎn)品在本工位未測試就流向下一個(gè)工位,或?qū)⒈竟の坏牟涣计樊?dāng)成良品直接流向下一個(gè)工位,從而使不良品流向市場,給公司帶來重大損失。為了解決此問題,我們在VB.NET的環(huán)境下,結(jié)合WINDOWS API函數(shù)和ACCESS數(shù)據(jù)庫,利用公司的局域網(wǎng)絡(luò)開發(fā)了此生產(chǎn)線測試管理系統(tǒng)。經(jīng)過一段時(shí)間的使用證明此系統(tǒng)不僅有效的防止人員誤操作造成的不良品流出,還可方便的對制品測試數(shù)據(jù)進(jìn)行查詢追溯,加強(qiáng)了企業(yè)的管理。

      2 測試管理系統(tǒng)工作原理

      測試系統(tǒng)通過掃描每個(gè)制品的ID來識(shí)別制品,并通過制品ID在ACESS數(shù)據(jù)庫中查詢相應(yīng)的信息判斷制品的測試狀態(tài)。

      2.1 制品ID

      為了區(qū)分每一臺(tái)制品,需要給每臺(tái)制品一個(gè)身份識(shí)別ID,此ID可通過條形碼或二維碼的形式打印在標(biāo)簽上,并將其帖附在制品上。ID的組成可自己命名,但每一個(gè)ID必須惟一,不重復(fù)。

      筆者所用的ID命名規(guī)則如下:制品名+生產(chǎn)日期+六位十六進(jìn)制流水號(hào)。制品ID標(biāo)簽圖片見圖1。

      圖1 制品ID標(biāo)簽

      2.2 系統(tǒng)工作原理

      測試管理軟件安裝在生產(chǎn)線的測試電腦上,同時(shí)每臺(tái)電腦配備一個(gè)掃描槍用于掃描制品ID。使用時(shí)首先選擇當(dāng)前工位,掃描制品ID。若當(dāng)前工位為第一工位,測試管理軟件向測試程序發(fā)送一個(gè)開始信號(hào),測試程序接收到信號(hào)后,開啟測試程序,測試結(jié)束后向測試管理軟件發(fā)送一個(gè)測試結(jié)束信號(hào),測試管理軟件收到測試結(jié)束信號(hào)后,開始讀取測試結(jié)果并將其存入ACCESS數(shù)據(jù)庫,等待掃描新的ID。若當(dāng)前工位不是第一工位,則掃描完制品ID后,測試管理軟件通過制品ID在ACCESS數(shù)據(jù)庫中進(jìn)行信息檢索,根據(jù)檢索的信息判斷前一工位是否測試過并且結(jié)果OK,若未測試過或結(jié)果NG,則在程序界面上顯示NG及NG原因,提示操作者將該制品在前一工位重新投入測試或送去維修;若前一工位已測試并且結(jié)果OK,則接下來的流程同第一工位。此部分測試管理軟件的流程見圖2。

      由上述原理可知,前一工位測試情況可由本工位進(jìn)行檢查,那么最后一個(gè)工位如何進(jìn)行檢測呢,為此在最后一工位增加了產(chǎn)品數(shù)量管理流程,通常生產(chǎn)線最后工位為外觀檢查或包裝,外觀檢查OK后,掃描ID,測試管理軟件根據(jù)制品ID找到其測試信息,判斷該制品的測試情況,若為OK,程序界面制品數(shù)量加一,若為NG,制品數(shù)量不變。當(dāng)制品數(shù)量達(dá)到設(shè)定的包裝數(shù)量時(shí),測試管理軟件自動(dòng)清零,操作者可根據(jù)測試管理軟件顯示數(shù)量與實(shí)際數(shù)量對比來判斷該批制品里是否含有不良或漏測制品,從而阻止不良的流出。最后一工位的流程如圖3所示。

      圖2 系統(tǒng)流程圖

      圖3 最后工位系統(tǒng)流程圖

      3 生產(chǎn)測試管理軟件實(shí)現(xiàn)

      VB.NET是微軟公司推出的開發(fā)平臺(tái),由于其具有易學(xué)易用、開發(fā)迅速的優(yōu)點(diǎn),已受到越來越多企業(yè)的青睞。[1]本測試管理軟件采用VB.NET平臺(tái),結(jié)合API函數(shù)可實(shí)時(shí)讀取測試程序結(jié)果,并通過ACCESS數(shù)據(jù)庫進(jìn)行數(shù)據(jù)保存,信息共享。

      3.1 API函數(shù)在VB.NET中的應(yīng)用

      為實(shí)時(shí)獲取測試程序的測試數(shù)據(jù)和結(jié)果,采用了直接調(diào)用WINDOWS API函數(shù)的方法。API(Application Programming Interface)函數(shù),是操作系統(tǒng)為程序開發(fā)人員提供的一組函數(shù)庫,通常包含在名為.DLL(Dynamic Link Library)的動(dòng)態(tài)連接庫文件中[2]。雖然微軟不提倡在.Net平臺(tái)調(diào)用Windows API函數(shù),但是在開發(fā)語言使用自帶函數(shù)或類庫不能解決問題時(shí),調(diào)用Windows API函數(shù)往往是一種非常直接有效的解決方法。

      調(diào)用API最常用的方法是通過使用Declare語句。使用時(shí)首先要確定調(diào)用的函數(shù)名稱及其參數(shù)、參數(shù)類型和返回值,以及包含該函數(shù)的DLL的名稱和位置。在本系統(tǒng)中用到的API函數(shù)如下[3]:

      Declare Function GetClassName Lib”user32.dll”Alias“GetClassNameA”(ByValhwnd As Integer,ByVallpClassName As String,ByValnMaxCount as Integer) As Integer

      功能:獲得一個(gè)窗口的句柄,該窗口的類名和窗口名與給定的字符串相匹配;

      Declare Function FindWindowEx Lib”user32.dll”Alias“FindWindowExA”(ByVal hwnd1 As Integer,ByVal hwnd2 As Integer,ByVallpszl As String,ByVallpsz2 as String) As Integer

      功能:查找子窗口,從排在給定的子窗口后面的下一個(gè)窗口開始;

      Declare FunctionFindWindow Lib”user32.dll”Alias“FindWindowA”(ByVallpClassName As string,ByVallpWindowName as String) As Integer

      功能:獲得指定窗口所屬的類的類名;

      Declare Function SendMessage Lib”user32.dll”Alias“SendMessageA”(ByValhwnd As Integer,ByValwMsg as Integer,ByValwParam as Integer,ByVallParam As String) As Integer

      功能:向?qū)υ捒蛑械目丶l(fā)送消息。

      利用API函數(shù)獲取測試數(shù)據(jù)和結(jié)果的過程如下:首先根據(jù)FindWindow函數(shù)獲取測試程序窗口句柄,根據(jù)FindWindowEx函數(shù)獲取測試程序窗口的子窗口句柄,根據(jù)子窗口句柄和GetClassName函數(shù)獲取子窗口類型,找到要讀取數(shù)據(jù)的子窗口后,利用SendMessage函數(shù)獲取要讀取的數(shù)據(jù),并存儲(chǔ)到ACCESS數(shù)據(jù)庫。

      3.2 VB.net與Access數(shù)據(jù)庫的連接

      由于ACCESS是免費(fèi)的數(shù)據(jù)庫,且具有開發(fā)靈活,速度快等優(yōu)點(diǎn),對于數(shù)據(jù)量和訪問用戶都不是特別大的情況下,是一種非常好的選擇。故此我們選擇具有嚴(yán)格數(shù)學(xué)概念的MicrosoftOfficeAccess 2010關(guān)系型數(shù)據(jù)庫。為了不同工位能夠?qū)崟r(shí)共享所有數(shù)據(jù),將設(shè)置好的數(shù)據(jù)庫利用數(shù)據(jù)庫拆分器拆分為前臺(tái)數(shù)據(jù)庫和后臺(tái)數(shù)據(jù)庫兩個(gè)部分。后臺(tái)數(shù)據(jù)庫只保留了表對象,放置在服務(wù)器電腦上,并設(shè)置為共享;前臺(tái)數(shù)據(jù)庫放在各工位的測試電腦上,它保留了除表之外的所有對象。將后臺(tái)數(shù)據(jù)庫映射到各工位電腦,前臺(tái)數(shù)據(jù)庫通過選擇數(shù)據(jù)源與后臺(tái)數(shù)據(jù)庫鏈接。

      在測試制品前,要想查詢本制品在前一工位的測試情況,就需要利用VB.net語言訪問和讀取ACCESS數(shù)據(jù)庫。為了讓操作人員更直觀的看到最近的測試情況,數(shù)據(jù)管理軟件主界面上要直接顯示最近的測試信息。在實(shí)際應(yīng)用開發(fā)中,經(jīng)常用DataGridView1顯示數(shù)據(jù)庫查詢的內(nèi)容。而vb.net在數(shù)據(jù)庫中查詢信息時(shí),還需用到SQL語句來進(jìn)行查詢。SQL即結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)[4]。例如,通過SQL語句查詢并顯示數(shù)據(jù)庫中的表在VB.NET窗體上,可用如下代碼實(shí)現(xiàn):

      Dim connectionStr As String=”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=”&Application.StartupPath&”數(shù) 據(jù)庫.accdb;Persist Security Info=False;”‘連接到指定的數(shù)據(jù)庫

      Me.DataGridView1.DataSource=Me.BindingSource1‘選擇數(shù)據(jù)源

      Dim selectCommand As String=”SELECT * FROM 表1”‘查詢所需內(nèi)容

      Me.dataAdapter=New OleDbDataAdapter(selectCommand,connectionStr)

      Dim commandBuilder As New OleDbCommandBuilder(Me.dataAdapter)

      Dim table As New DataTable()

      Table.Locale=System.Globalization.CultureInfo.InvariantCulture

      Me.dataAdapter.fill(table)

      Me.BindingSource1.DataSource=table

      4 結(jié)束語

      通過VB.net平臺(tái)結(jié)合WINDOWS API函數(shù)和ACCESS數(shù)據(jù)庫,利用局域網(wǎng)開發(fā)的生產(chǎn)線測試管理系統(tǒng)在生產(chǎn)過程中能有效的防止由于人為疏忽造成的不良品流出,同時(shí)由于系統(tǒng)具有數(shù)據(jù)保存,查詢等功能,方便了后期對數(shù)據(jù)的追溯,提高了企業(yè)的管理水平。

      猜你喜歡
      句柄測試程序管理軟件
      倉儲(chǔ)管理軟件在物流自動(dòng)化解決方案中的應(yīng)用與發(fā)展
      項(xiàng)目法在工程造價(jià)管理軟件中的應(yīng)用
      基于Castle型機(jī)械手的三溫量產(chǎn)測試平臺(tái)實(shí)現(xiàn)
      高校圖書館持久標(biāo)識(shí)符應(yīng)用研究
      手機(jī)APP交互界面人因適合性測試程序的設(shè)計(jì)與實(shí)現(xiàn)
      共享電單車的管理軟件
      編譯程序語法分析句柄問題分析與探討
      中心主導(dǎo)制訂的《VHF/UHF頻率范圍內(nèi)測向系統(tǒng)測向靈敏度的測試程序》等兩項(xiàng)國際標(biāo)準(zhǔn)在ITU官網(wǎng)正式發(fā)布
      電氣自動(dòng)化控制設(shè)備可靠性測試探討
      MFC應(yīng)用程序多線程混合顯示界面方法研究
      龙江县| 四子王旗| 尚志市| 龙州县| 绥滨县| 东丰县| 岱山县| 新津县| 天水市| 云霄县| 射阳县| 朝阳市| 马关县| 台州市| 惠来县| 休宁县| 浦江县| 襄汾县| 贞丰县| 车险| 禹州市| 兴和县| 镇江市| 礼泉县| 新绛县| 讷河市| 白水县| 哈巴河县| 乌拉特后旗| 商水县| 湘乡市| 罗田县| 昭平县| 遂宁市| 吉木乃县| 万宁市| 花莲市| 和硕县| 志丹县| 富顺县| 光泽县|