freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于labview的plc與上位機(jī)通訊系統(tǒng)設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-07-24 18:04 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 另外讀取機(jī)代碼的還可以用“RP”讀取程序指令,這種在知道程序步的情況下準(zhǔn)確地讀取信息。5)在測(cè)試機(jī)代碼的時(shí)候,第三章 labview與PLC的串口通信LABVlEW是美國(guó)國(guó)家儀器公司開(kāi)發(fā)的虛擬儀器開(kāi)發(fā)平臺(tái)軟件,它的功能強(qiáng)大靈活,可以廣泛應(yīng)用于自動(dòng)測(cè)量系統(tǒng)、工業(yè)過(guò)程自動(dòng)化、實(shí)驗(yàn)室仿真等各個(gè)領(lǐng)域.在LabVIEW編程語(yǔ)言中串口通信采用VISA標(biāo)準(zhǔn)編程.VISA是虛擬儀器體系結(jié)構(gòu)Virtual Instrument Software Architecture的簡(jiǎn)稱,是儀器驅(qū)動(dòng)發(fā)展的一個(gè)工業(yè)標(biāo)準(zhǔn).VISA的內(nèi)部結(jié)構(gòu)是一個(gè)先進(jìn)的、面向?qū)ο竦慕Y(jié)構(gòu),這一結(jié)構(gòu)使得VISA和在它之前的I/O控制軟件相比,在接口無(wú)關(guān)性、可擴(kuò)展性方面都有很大提高.VISA的可擴(kuò)展性遠(yuǎn)遠(yuǎn)超出了I/O控制軟件的范疇,而且由于VISA內(nèi)部結(jié)構(gòu)的靈活性,使得VISA在功能和靈活性上超過(guò)了其他的I/O控制庫(kù).VISA標(biāo)準(zhǔn)的推出,統(tǒng)一了儀器工業(yè)的軟件接口標(biāo)準(zhǔn),使得儀器驅(qū)動(dòng)程序兼容性強(qiáng)并且可適應(yīng)未來(lái)軟硬件的發(fā)展需要[10] 。 labview 實(shí)現(xiàn)串口通信關(guān)鍵控件介紹 版本中,用于通訊的子VI主要由5個(gè):VISA Configure Serial Port 、VISA Read 、VISA Write 、VISA Bites of Serial Port VISA Close通過(guò)對(duì)這幾個(gè)功能模塊進(jìn)行配置和連接,就能開(kāi)發(fā)出符合要求的labview串口通信軟件,其界面如下圖31串口通信函數(shù)1)VISA Configure Serial Port該節(jié)點(diǎn)主要用于串口的初始化,主要參數(shù)如圖所示。圖32 VISA串口配置VISA resource name:端口號(hào)選擇與計(jì)算機(jī)連接的串口有關(guān),可以通過(guò)“我的電腦”右鍵 選擇“管理”“設(shè)備管理器” –“端口”查看。baud rate:波特率,默認(rèn)為9 600bps,最高為115 200 bps。data bits:一幀信息中的有效數(shù)據(jù)的位數(shù),Labview中允許4—8位數(shù)據(jù),默認(rèn)值為8位。stop bits:一幀信息中的停止位的位數(shù),可選的值為0~2,分別對(duì)應(yīng)1位、1位半或2位,默認(rèn)值為0。pafity:奇偶校驗(yàn)設(shè)置.可選的值為0—4,可為無(wú)校驗(yàn)、奇或偶校驗(yàn)、標(biāo)記或空,默認(rèn)值為0即無(wú)校驗(yàn)。flow control:該參數(shù)的數(shù)據(jù)類(lèi)型為簇,用于串行通信中的握手方式。2) VISA Read. VIVISA 資源名在整個(gè)通訊過(guò)程中是一樣的,故用一根線把上面提到的5個(gè)VI連接起來(lái)。圖33 VISA讀取字節(jié)數(shù)可以自行設(shè)定,也可以VISA Bites of Serial Port 測(cè)量出來(lái)。如果是自行設(shè)定,那讀的操作是在緩存達(dá)到設(shè)定值才開(kāi)始讀,否則一直是等待;如果通過(guò)VISA Bites of Serial Port測(cè)定的字節(jié)數(shù)則是不等于零開(kāi)始讀。3)VISA Write. VI該節(jié)點(diǎn)節(jié)點(diǎn)為串口寫(xiě)子VI,用于對(duì)串口設(shè)備進(jìn)行寫(xiě)操作。圖34 VISA 寫(xiě)4) VISA Close. VI該節(jié)點(diǎn)為串口關(guān)閉子VI,用于關(guān)閉串行設(shè)備的任務(wù)或事件,如圖。圖35 VISA 資源名稱說(shuō)明:在使用端口結(jié)束的時(shí)候,要在程序的最后用上此控件,該控件的作用是關(guān)閉端口,釋放資源,便于其他程序使用。如果不關(guān)閉串口,程序會(huì)一直占有,無(wú)法釋放。5)VISA Bytes at Serial Port. VI該節(jié)點(diǎn)為串行口字節(jié)數(shù)子VI,用于讀取串口緩存區(qū)中的數(shù)據(jù)字節(jié)如圖。圖36 串口字節(jié)說(shuō)明:在“reference”的輸入端中,是接入VISA資源名稱,和前面的控件一樣,這是串口通信的主線。從這個(gè)函數(shù)可以測(cè)出緩存中的字節(jié),在讀函數(shù)時(shí)輸入數(shù)值,如果緩存中有數(shù)據(jù),則會(huì)按所設(shè)定的數(shù)據(jù)位進(jìn)行讀取,如果緩存的數(shù)少于設(shè)定值,則會(huì)等待,直到數(shù)據(jù)數(shù)量達(dá)到設(shè)定值。 與PLC的通訊的程序設(shè)計(jì). 通訊原理圖說(shuō)明:①在VISA Configure Serial Port中分別對(duì)其進(jìn)行端口名的配置,對(duì)波特率,奇偶校驗(yàn)位,數(shù)據(jù)位,停止位進(jìn)行設(shè)定,且與PLC的內(nèi)部設(shè)定一致,否則數(shù)據(jù)無(wú)法傳輸錯(cuò)誤或者無(wú)法傳輸。②由軟件程序生產(chǎn)的命令代碼通過(guò)一個(gè)發(fā)送按鈕把命令發(fā)送出去。③由于線路傳輸和程序運(yùn)行要一定的時(shí)間,故需延長(zhǎng)才能保障命令的發(fā)送接收成功的率。④命令接收以后,按命令的格式對(duì)其進(jìn)行分解。如果包含“$”字符說(shuō)明命令發(fā)送是正確且成功的;相反,如果命令包含“!”說(shuō)明的命令發(fā)送錯(cuò)誤,并返回錯(cuò)誤碼,對(duì)錯(cuò)誤碼進(jìn)行讀取,并在錯(cuò)誤數(shù)組常量中檢索,最后顯示錯(cuò)誤原因和錯(cuò)誤代碼,以供操作者參考修正。圖38 串口通信實(shí)現(xiàn)圖 設(shè)計(jì)系統(tǒng)的通訊模型1) 端口初始化前面板設(shè)計(jì)和程序框圖如下圖所示圖38端口初始化前后面板2) BCC碼的生成BCC碼的的計(jì)算是通訊的一個(gè)基本元素,起到關(guān)鍵作用。在該通訊協(xié)議當(dāng)中BCC碼是用與校驗(yàn)通訊數(shù)據(jù)的正確與否,使用頻繁,為減少編程工作量,特地編寫(xiě)了一個(gè)子程序,方便調(diào)用。BCC碼的生成原理見(jiàn)第2章說(shuō)明,在LABVIEW 中的實(shí)現(xiàn)如下所示:圖39 BCC 碼程序圖說(shuō)明:①操作者把命令明確以后,生成的字符串進(jìn)入一個(gè)for循環(huán),循環(huán)次數(shù)為n=N1 一次,其中N為字符串的長(zhǎng)度。②“%”字符轉(zhuǎn)換為數(shù)值以后和“字符串”的數(shù)據(jù)一起進(jìn)入for循環(huán),先進(jìn)過(guò)一個(gè)一位截取控件,把“字符串”的第二字符截取轉(zhuǎn)換為數(shù)值,然后跟%的數(shù)值進(jìn)行異或,得出一個(gè)數(shù)字,進(jìn)入移位寄存器,供下次循環(huán)使用。③上次循環(huán)產(chǎn)生的數(shù)據(jù),在第二次循環(huán)中跟第三個(gè)字符進(jìn)行異或得出一個(gè)數(shù)值,其他的以此類(lèi)推。④循環(huán)結(jié)束后輸出一個(gè)數(shù)值,這個(gè)數(shù)值與15進(jìn)行比較,如果大于15,直接轉(zhuǎn)換為字符輸出;如果小于等于15,如果不經(jīng)過(guò)圖39的處理就得不出2位BCC碼。3) 整個(gè)程序的流程如下所示圖310通訊系統(tǒng)原理圖說(shuō)明:①程序的前面板如圖27所示,上圖顯示的是系統(tǒng)的通訊原理圖,其主要模塊包括剛開(kāi)始運(yùn)行時(shí)的端口初始化,PLC版本信息讀取,然后是“觸點(diǎn)控制”、“定時(shí)/計(jì)數(shù)器控制”、“寄存器控制”這3打塊是操作者根據(jù)自己的需求選擇其中一項(xiàng)進(jìn)行操作,點(diǎn)擊“確定”按鈕后,命令會(huì)按之前的規(guī)定發(fā)送出去,然后對(duì)返回的數(shù)據(jù)進(jìn)行分離顯示。②如果系統(tǒng)處于“RUN”狀態(tài)時(shí),系統(tǒng)會(huì)對(duì)PLC進(jìn)行監(jiān)控,不斷地發(fā)送指令,對(duì)端口進(jìn)行狀態(tài)的讀取,然后顯示在狀態(tài)燈上。 典型模塊通訊1)觸點(diǎn)控制觸點(diǎn)控制主要對(duì)X 輸入點(diǎn)讀取數(shù)據(jù),讀Y點(diǎn)進(jìn)行讀寫(xiě),讀寫(xiě)包括單點(diǎn)讀(寫(xiě)),多點(diǎn)讀(寫(xiě)),以及字的讀(寫(xiě))。本文從數(shù)據(jù)出發(fā),只對(duì)X和Y的單點(diǎn)讀取以及字的讀取。命令格式:%01代碼選擇觸點(diǎn)編碼(觸點(diǎn)數(shù)據(jù))BCC(H)BCC(L)CR圖311 觸點(diǎn)控制程序流程圖如下:其公共碼讀?單點(diǎn)?Y?Y?Y?Y?單點(diǎn)?讀單點(diǎn)Y讀單點(diǎn)R讀字Y讀字R寫(xiě)單點(diǎn)Y寫(xiě)單點(diǎn)R寫(xiě)字Y寫(xiě)字R圖312 觸點(diǎn)控制流程圖說(shuō)明:該程序框圖主要實(shí)現(xiàn)對(duì)端口Y/R觸點(diǎn)的寫(xiě)入讀取控制,其中寫(xiě)入和讀取有單點(diǎn)和字兩種操作,所以一共有2*2*2=8中命令格式,在這里用到了3個(gè)選擇框圖,如下圖313所示,在進(jìn)入最后一層框圖的時(shí)候,會(huì)有對(duì)應(yīng)的命令格式在里面,其中常量已近固定,輸入的變量配合選擇的命令就可以對(duì)PLC進(jìn)行命令操作,例如在前面板“觸點(diǎn)控制”模塊選擇R讀出數(shù)據(jù)點(diǎn)控制,則程序模塊會(huì)進(jìn)入RCS讀取但觸點(diǎn)命令模式。Labview 中的程序框圖如下所示:圖313觸點(diǎn)控制程序圖1) 向PLC中通過(guò)設(shè)計(jì)的系統(tǒng)寫(xiě)布爾邏輯命令① 前面板如下所示圖314 寫(xiě)指令前面板②操作說(shuō)明在軟鍵盤(pán)中點(diǎn)擊各個(gè)鍵組成命令,每一步為一個(gè)記錄,也可以在左上角的輸入框中鍵盤(pán)輸入指令;輸入完畢后點(diǎn)擊“輸出轉(zhuǎn)換”按鈕,確定無(wú)誤后,點(diǎn)擊“下載PLC”按鈕,旁邊的指示燈亮則表明成功,反之查看命令輸入格式是否有誤,在左邊框在修正再?gòu)男罗D(zhuǎn)換。③原理說(shuō)明輸入的命令數(shù)組索引數(shù)組分離出一個(gè)程序步索引號(hào)等于命令數(shù)組?索號(hào)加1結(jié)束,輸出代碼拼接機(jī)代碼數(shù)據(jù)庫(kù)初始化否是圖 315 寫(xiě)命令程序原理圖說(shuō)明:從上述輸出的代碼中組成一個(gè)字符串,然后把字符串以68個(gè)字符為單元截取,因?yàn)閭魉兔顣r(shí)字符長(zhǎng)度有限制,68個(gè)代碼組成的命令為:%01 WP +首地址+末地址+CODE+BCC+CR 一共87個(gè)字符,可以傳送。④發(fā)送到PLC后生成的梯形圖如下。圖316 命令發(fā)送后PLC生成的梯形圖 Labview 實(shí)時(shí)監(jiān)控PLC實(shí)例:流水燈監(jiān)控前面介紹了Labview 的通訊原理和通訊系統(tǒng)的各種模塊,以及特殊模塊的工作情況,下面作為整個(gè)設(shè)計(jì)系統(tǒng),對(duì)PLC進(jìn)行實(shí)時(shí)監(jiān)控,演示該本通訊系統(tǒng)的工作性能。我們以PLC的16盞輸出的LED為流水燈,使其從左到右依次點(diǎn)亮,沒(méi)個(gè)燈亮1S,然后熄滅,熄滅的同時(shí)下一盞燈亮,依次類(lèi)推,到第16盞燈以后循環(huán)到第一盞燈,不斷地運(yùn)行,直到一個(gè)信號(hào)使其中斷。 流水燈梯形圖設(shè)計(jì)1)流水燈原理按照要求流水燈要依次點(diǎn)亮,并保持1秒,根據(jù)定時(shí)器的原理,可以用來(lái)產(chǎn)生該脈沖信號(hào)。其狀態(tài)圖如下所示。圖317 狀態(tài)圖說(shuō)明:上述狀態(tài)圖可以看出Y0,Y1依次點(diǎn)亮,且當(dāng)T1運(yùn)行的時(shí)候,T0斷開(kāi),則Y0也斷開(kāi),要實(shí)現(xiàn)這種功能只需把T1常閉串聯(lián)到R0,當(dāng)T1 得電時(shí),R0短開(kāi),R0斷開(kāi)則T0停止,T0停止輸出,則Y0輸出低電平,依次類(lèi)推就可以得出Y i 依次點(diǎn)亮的效果了。為了讓16盞燈依次點(diǎn)亮,需要兩個(gè)屬于端口,一個(gè)觸發(fā)輸入信號(hào),配置為X1,另一個(gè)停止運(yùn)行的輸入信號(hào),配置為X2;此外需要17個(gè)定時(shí)器和16個(gè)輸出端口以及16個(gè)內(nèi)部寄存器。2)3個(gè)流水燈的梯形圖分析簡(jiǎn)潔分析起見(jiàn),下面分析3個(gè)流水燈的梯形圖,完整梯形圖見(jiàn)附錄4圖318 3盞流水燈的梯形圖分析:上面的梯形圖在R40的觸發(fā)下可以依次點(diǎn)亮輸出端的LED燈,程序運(yùn)行到最后的時(shí)候,Y3斷開(kāi),如果需要從新開(kāi)始,這里使用了一種特殊的方式,就是想辦法讓R40隔一段時(shí)間產(chǎn)生一個(gè)脈沖,從而驅(qū)動(dòng)整個(gè)程序,只要R40脈沖不斷,就可以周而復(fù)始地運(yùn)行狀態(tài)燈。下面就產(chǎn)生脈沖的R40 進(jìn)行程序分析,梯形圖如下:圖319 產(chǎn)生脈沖信號(hào)梯形圖分析說(shuō)明:輸入端X1 觸發(fā),R39自鎖,R 40輸出“1”,當(dāng)定時(shí)器在R ,T30接通,T30非斷開(kāi),R40輸出“0”;在T 30接通后的TM31 開(kāi)始計(jì)時(shí),圖中的值大于16盞燈完成一個(gè)點(diǎn)亮過(guò)程的時(shí)間,此值要根據(jù)整個(gè)程序的一個(gè)完成周期來(lái)設(shè)定,如果小了會(huì)產(chǎn)生混亂,可能會(huì)出現(xiàn)兩個(gè)燈在流動(dòng)的情況,如設(shè)大了,等待的時(shí)間過(guò)長(zhǎng),因此TM31的時(shí)間根據(jù)具體梯形圖一個(gè)周期化的時(shí)間而定。圖320 脈沖產(chǎn)生狀態(tài)圖分析說(shuō)明:由于T31產(chǎn)生的是一個(gè)瞬間脈沖,而軟件的采用頻率是100ms,故在T 31得電的瞬間無(wú)法讀取,而實(shí)際上是存在的。由此產(chǎn)生的R40脈沖信號(hào)就就是觸發(fā)流水燈循環(huán)的信號(hào),這個(gè)循環(huán)代替了手工觸發(fā),便于實(shí)驗(yàn)觀察。3)整個(gè)流水燈的梯形圖及狀態(tài)圖把圖319的梯形圖放在程序的開(kāi)頭,然后接上圖318的流水燈狀態(tài)產(chǎn)生梯形圖,最終的16盞流水燈的梯形圖見(jiàn)附錄5把程序下載到PLC,運(yùn)行得出的輸出端口狀態(tài)結(jié)果如下所示圖321 輸出端Y的狀態(tài)圖分析說(shuō)明:16盞狀態(tài)燈在R 40的觸發(fā)下,依次點(diǎn)1亮,然后熄滅,而且銜接得很好,通過(guò)元件分析,最后一盞燈滅到R40產(chǎn)生下個(gè)觸發(fā)脈沖的間隔差為200ms,銜接緊湊。特別需要這樣的是如果觸發(fā)信號(hào)在Y F燈滅前觸發(fā),會(huì)出現(xiàn)兩盞燈在流動(dòng)的現(xiàn)象,甚至產(chǎn)生混亂,故TM 31的時(shí)間設(shè)定要注意其值要大于程序運(yùn)行一個(gè)周期的時(shí)間。 labview的監(jiān)控的程序設(shè)計(jì)上節(jié)是流水燈的PLC程序,下載完后,可以通過(guò)機(jī)子自帶的LED燈直觀的觀察到流水燈運(yùn)動(dòng)順暢,本節(jié)要介紹的是如何設(shè)計(jì)通訊系統(tǒng),實(shí)現(xiàn)狀態(tài)燈的實(shí)時(shí)監(jiān)控。1)讀取流水燈命令流程圖圖322流水燈命令流程圖分析說(shuō)明:①在讀取多點(diǎn)命令中,由于一次傳輸命令長(zhǎng)度的限制,最多只能讀8個(gè)端點(diǎn)的狀態(tài)信息。②讀取低八位的命令碼為:%01RCP8Y0000Y0001Y0002Y0003Y0004Y0005Y0006Y00077ECR③讀取高8位的命令碼為:%01RCP8X0008X0009X000AX000BX000CX000DX000EX000F78CR④命令發(fā)出要延遲一定時(shí)間,否則正確讀取時(shí)間,甚至讀不到數(shù)據(jù),這是因?yàn)閭鬏敽秃瘮?shù)處理是要花一定時(shí)間的。⑤這是實(shí)時(shí)監(jiān)控程序,是很費(fèi)CPU的,如果不需要,把開(kāi)關(guān)撥到PROG,或者點(diǎn)擊系統(tǒng)面板的PROG按鈕。其中“讀取分析數(shù)據(jù),顯示”這是一個(gè)子程序,在提取數(shù)據(jù)中起到關(guān)鍵作用,下面要來(lái)分析一下其原理。2)數(shù)據(jù)分析,顯示從邏輯上來(lái)講,這個(gè)子程序需要兩個(gè)輸入才能得出輸出數(shù)據(jù),這兩個(gè)輸入一個(gè)是發(fā)出的命令,這個(gè)輸入是確定流水燈的顯示范圍;另外一個(gè)就是命令發(fā)出后提取的數(shù)據(jù)信息。這兩個(gè)輸入進(jìn)入子程序后經(jīng)過(guò)比較分析,最后輸出結(jié)果,其流程圖如下所示。把值賦予第I個(gè)燈;I++發(fā)送的命令接收的數(shù)據(jù)初始化 I=0提取第I的狀態(tài)燈編號(hào)分離出第I個(gè)數(shù)據(jù)I=8?YN結(jié)束圖323 數(shù)據(jù)分析流程圖分析說(shuō)明:這個(gè)子程序其實(shí)是個(gè)for循環(huán)結(jié)構(gòu),輸入的數(shù)據(jù)位8位,故要進(jìn)行8次循環(huán),提取的數(shù)據(jù)是字符型,故要把字符型轉(zhuǎn)化為數(shù)值型,然后把數(shù)值型轉(zhuǎn)化為布爾型,最后把布爾數(shù)據(jù)賦予給布爾顯示燈。3)數(shù)據(jù)分析,顯示子程序在Labview中的設(shè)計(jì)根據(jù)上面的邏輯分析,在Labview中很容易就可以實(shí)現(xiàn),具體設(shè)計(jì)如下圖所示。圖324 數(shù)據(jù)分析子程序分析說(shuō)明:從上圖可以看出,整個(gè)過(guò)程出了數(shù)據(jù)提取和轉(zhuǎn)換外,在流水燈的定位上運(yùn)用了類(lèi)似總線的原理,即總線發(fā)出地址,對(duì)應(yīng)的地址選中響應(yīng),同時(shí)發(fā)出數(shù)據(jù),對(duì)應(yīng)地址的燈獲得狀態(tài)信息。如果地址等沒(méi)選中,則處于“假”
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1