亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        指針和數(shù)組在PLC 數(shù)據(jù)傳送邏輯中的應(yīng)用

        2023-09-27 04:51:48張新杰
        科技創(chuàng)新與應(yīng)用 2023年27期
        關(guān)鍵詞:功能塊數(shù)組指針

        張新杰

        (上海振華重工(集團(tuán))股份有限公司,上海 200125)

        在大型自動(dòng)化生產(chǎn)線(xiàn)項(xiàng)目中,每個(gè)自動(dòng)化工位之間和工位內(nèi)部都會(huì)涉及到數(shù)據(jù)的存儲(chǔ)、讀寫(xiě)和傳送問(wèn)題。PLC 具有結(jié)構(gòu)簡(jiǎn)單、編程方便、可靠性高等特點(diǎn),在工業(yè)及生產(chǎn)過(guò)程中得到廣泛應(yīng)用[1]。但是PLC 常用的編程語(yǔ)言功能簡(jiǎn)單,無(wú)法實(shí)現(xiàn)復(fù)雜的控制邏輯和算法運(yùn)算[1-2]。隨著我國(guó)生產(chǎn)水平的不斷發(fā)展與進(jìn)步,傳統(tǒng)工業(yè)制造對(duì)電氣自動(dòng)化控制也有了新的需求。信息技術(shù)與傳統(tǒng)工業(yè)制造行業(yè)的結(jié)合是必然趨勢(shì)[3],PLC對(duì)復(fù)雜的控制邏輯和算法運(yùn)算的需求勢(shì)必會(huì)日益增大。隨著高級(jí)編程語(yǔ)言在PLC 中的應(yīng)用日益普遍[4],研究在PLC 編程中應(yīng)用高級(jí)編程語(yǔ)言具有重要的現(xiàn)實(shí)意義。

        本文在PLC 編程中應(yīng)用高級(jí)編程語(yǔ)言的數(shù)組和指針編程方式,用來(lái)解決實(shí)際控制邏輯中大量數(shù)據(jù)的傳送問(wèn)題。寄希望本文能起到拋磚引玉的效果,引起讀者對(duì)PLC 編程中的高級(jí)編程語(yǔ)言學(xué)習(xí)的重視。

        1 產(chǎn)線(xiàn)概述及工況分析

        某大型剪叉自動(dòng)焊接生產(chǎn)線(xiàn)項(xiàng)目中,由剪叉激光切割工位、剪叉人工組隊(duì)工位、剪叉半成品板鏈線(xiàn)工位、剪叉自動(dòng)焊接工位、搬運(yùn)機(jī)器人、剪叉成品板鏈線(xiàn)工位、剪叉成品緩存工位和AGV 運(yùn)輸小車(chē)駐車(chē)工位組成。其中,剪叉成品緩存工位上游“聯(lián)接”剪叉成品板鏈線(xiàn)工位和剪叉自動(dòng)焊接工位,下游“銜接”AGV 運(yùn)輸小車(chē)。該剪叉成品緩存工位有伺服電機(jī)驅(qū)動(dòng)的“桁架”,負(fù)責(zé)從板鏈線(xiàn)工位上抓取剪叉成品,經(jīng)過(guò)RFID 識(shí)別后分別存放至剪叉成品緩存工位的緩存區(qū)域。根據(jù)剪叉成品不同的型號(hào)規(guī)格,緩存區(qū)域設(shè)置有20 個(gè)剪叉緩存位置;每個(gè)緩存位置可以疊放至8 層。同時(shí),AGV 運(yùn)輸小車(chē)上有可以疊放8 層的10 個(gè)剪叉存放位置。“桁架”不僅負(fù)責(zé)從剪叉成品板鏈線(xiàn)工位抓取剪叉成品存放于剪叉緩存區(qū)域,同時(shí)也負(fù)責(zé)從剪叉緩存區(qū)域抓取剪叉成品至AGV 運(yùn)輸小車(chē)的剪叉存放位置。

        在剪叉成品緩存工位中,有一個(gè)剪叉成品板鏈線(xiàn)取料點(diǎn)位置,一個(gè)桁架停車(chē)位;有20 個(gè)剪叉成品緩存區(qū)域位置以及10 個(gè)AGV 的剪叉存放位置,共計(jì)32 個(gè)位置點(diǎn)。每個(gè)位置點(diǎn)有4 個(gè)位置數(shù)據(jù)值需要存儲(chǔ),分別是:大車(chē)方向位置值(X 方向),小車(chē)方向位置值(Y 方向),起升方向位置值(Z 方向)及疊放層數(shù)的數(shù)值。綜上,該工位僅存取位置值所需位置數(shù)據(jù)量已經(jīng)多達(dá)128 個(gè)。而剪叉成品緩存工位能否正確運(yùn)行的關(guān)鍵,取決于PLC 控制系統(tǒng)能否給到正確的大車(chē)方向、小車(chē)方向和起升方向的位置數(shù)據(jù)值至大車(chē)、小車(chē)和起升伺服控制器。剪叉成品緩存工位的總覽圖如圖1 所示。

        圖1 剪叉成品緩存工位總覽

        2 數(shù)據(jù)傳送邏輯分析和優(yōu)化

        2.1 數(shù)據(jù)傳送邏輯分析

        剪叉成品緩存工位一旦剪叉成品板鏈線(xiàn)位置、20個(gè)剪叉成品緩存區(qū)域以及AGV 停車(chē)位置確定,那么這32 個(gè)位置點(diǎn)相對(duì)于桁架的“零點(diǎn)”的數(shù)據(jù)值就會(huì)確定;這些數(shù)據(jù)值就是伺服控制器運(yùn)行的目標(biāo)值。

        拋開(kāi)其他的PLC 控制邏輯不談,如果按照常規(guī)的PLC 編程方式把每個(gè)位置點(diǎn)的位置數(shù)據(jù)傳送到伺服控制器,這就需要使用“MOVE”指令。把上述確定的位置數(shù)據(jù)值發(fā)送至伺服控制器,一個(gè)位置點(diǎn)需要使用4 次“MOVE”指令;32 個(gè)位置點(diǎn)需要使用128 次“MOVE”指令。編寫(xiě)完成這段數(shù)據(jù)傳送邏輯后,會(huì)發(fā)現(xiàn)以下2 個(gè)問(wèn)題。

        2.1.1 數(shù)據(jù)傳送邏輯篇幅冗長(zhǎng),不夠簡(jiǎn)練

        僅僅一個(gè)傳送位置數(shù)據(jù)到伺服控制器的邏輯,就需要重復(fù)使用“MOVE”指令128 次。篇幅過(guò)長(zhǎng),增加查看邏輯、尋找故障上的困難。如果存儲(chǔ)的位置點(diǎn)再增加的話(huà),這段數(shù)據(jù)傳送邏輯篇幅需要得更長(zhǎng)。

        2.1.2 數(shù)據(jù)傳送邏輯修改不方便、易出錯(cuò)

        現(xiàn)場(chǎng)調(diào)試階段不確定因素較多,位置點(diǎn)的增加、減少或者調(diào)整的情況屢見(jiàn)不鮮。在這種情況下就會(huì)出現(xiàn)大量的邏輯增加、刪除或者數(shù)據(jù)修改工作。稍有不慎,很容易出錯(cuò);給調(diào)試工作帶來(lái)諸多不便。對(duì)于大型復(fù)雜的控制系統(tǒng),修改某一局部控制邏輯時(shí),很可能會(huì)牽涉到整個(gè)系統(tǒng)的每個(gè)環(huán)節(jié),給系統(tǒng)其他部分造成意料不到的影響[2]。

        2.2 數(shù)據(jù)傳送邏輯優(yōu)化

        常規(guī)的編程方式需要大量的重復(fù)使用“MOVE”指令,而且一旦修改或刪除即有可能對(duì)整個(gè)控制系統(tǒng)造成嚴(yán)重的影響。能否簡(jiǎn)化僅使用一個(gè)“標(biāo)識(shí)”就能同時(shí)發(fā)送多個(gè)數(shù)據(jù)呢?高級(jí)編程語(yǔ)言中的“指針”和“數(shù)組”不就是利用指針來(lái)傳送數(shù)據(jù)的嗎[5-6]?利用“指針和數(shù)組”的思維,重新梳理下位置數(shù)據(jù)傳送的這段邏輯。

        首先在PLC 控制程序中,建立4 個(gè)一維數(shù)組;分別對(duì)應(yīng)32 個(gè)位置點(diǎn)大車(chē)方向位置值、小車(chē)方向位置值、起升方向位置值和疊放層數(shù)的數(shù)值。數(shù)組內(nèi)的元素初步設(shè)定為40 個(gè),從0~39;并規(guī)定板鏈線(xiàn)大車(chē)位置[0]作為板鏈線(xiàn)的位置數(shù)據(jù)值,板鏈線(xiàn)大車(chē)位置[1]~[20]作為存儲(chǔ)區(qū)1 號(hào)至20 號(hào)位置數(shù)據(jù),板鏈線(xiàn)大車(chē)位置[24]作為桁架停車(chē)位位置數(shù)據(jù),板鏈線(xiàn)大車(chē)位置[25]~[34]作為AGV 存儲(chǔ)區(qū)10 個(gè)位置值數(shù)據(jù)(板鏈線(xiàn)大車(chē)位置[21]~[23]和[35]~[39]作為備用)。將32 個(gè)位置點(diǎn)的大車(chē)方向位置值、小車(chē)方向位置值、起升方向位置值和疊放數(shù)量值分別填入對(duì)應(yīng)的數(shù)據(jù)內(nèi),并把這些數(shù)據(jù)的屬性設(shè)置為斷電保持;防止這些位置數(shù)據(jù)值的丟失。

        現(xiàn)在,只需要一個(gè)“指針”指向想要讀取或者寫(xiě)入的位置數(shù)據(jù)即可;這樣位置數(shù)據(jù)傳送的這段邏輯就極大地簡(jiǎn)化。位置數(shù)據(jù)的修改只需要到相應(yīng)的數(shù)組內(nèi)修改即可。同時(shí),位置點(diǎn)的數(shù)量也可以通過(guò)調(diào)整數(shù)組內(nèi)元素的數(shù)量來(lái)調(diào)整。極大方便了現(xiàn)場(chǎng)的調(diào)試,也降低現(xiàn)場(chǎng)修改邏輯的工作量及發(fā)生錯(cuò)誤的機(jī)率。

        3 數(shù)據(jù)傳送邏輯的實(shí)現(xiàn)

        3.1 利用系統(tǒng)功能塊實(shí)現(xiàn)數(shù)據(jù)傳送邏輯

        在西門(mén)子PLC 中,S1500 系列相對(duì)高等級(jí)的PLC中使用FileRead:讀取域的功能塊就可以實(shí)現(xiàn)上述功能。從該功能塊的幫助文檔中可以得知,INDEX 是要讀取數(shù)據(jù)值的索引值,MEMBER 是要讀取數(shù)據(jù)數(shù)組的第一個(gè)元素;而VALUE 則是讀取到索引值對(duì)應(yīng)數(shù)據(jù)值[7]。PLC 程序中讀取桁架大車(chē)位置數(shù)據(jù)的程序邏輯,如圖2所示。

        圖2 FileRead 讀取域功能塊

        根據(jù)FileRead 讀取域的幫助文檔說(shuō)明,當(dāng)需要板鏈線(xiàn)大車(chē)方向位置數(shù)據(jù)時(shí),只需要把INDEX 輸入“指令變量”的值設(shè)置為0;VALUE 輸出的值就把板鏈線(xiàn)大車(chē)位置值數(shù)組內(nèi)第一個(gè)數(shù)值(板鏈線(xiàn))自動(dòng)傳送到“自動(dòng)運(yùn)行大車(chē)目標(biāo)值”的變量中。而當(dāng)需要AGV 存儲(chǔ)區(qū)10 號(hào)位置時(shí),需要把“指令變量”的值設(shè)置為34 即可。這里的“指令變量”就類(lèi)似高級(jí)編程語(yǔ)言中的“指針”,利用修改“指針”的數(shù)值,得到想要的數(shù)組內(nèi)的數(shù)值[5-6]。

        以此類(lèi)推,利用FileRead 讀取域的功能塊同樣可以很方便得到桁架所需要的小車(chē)方向位置數(shù)據(jù)、起升方向位置數(shù)據(jù)及疊放數(shù)量值,進(jìn)行數(shù)據(jù)計(jì)算和下一步的邏輯處理。

        3.2 編寫(xiě)程序塊實(shí)現(xiàn)數(shù)據(jù)傳送邏輯

        如果PLC 中沒(méi)有FileRead 讀取域的系統(tǒng)功能塊時(shí),則可以利用“指針和數(shù)組”的編程方式編寫(xiě)功能塊來(lái)實(shí)現(xiàn)相同的功能。在西門(mén)子PLC 中,使用高級(jí)編程語(yǔ)言SCL(結(jié)構(gòu)化控制語(yǔ)言)編寫(xiě)相應(yīng)程序邏輯就可以實(shí)現(xiàn)和FileRead 讀取域系統(tǒng)功能塊相同的功能。

        首先是讀取功能塊輸入的數(shù)據(jù)(整型數(shù)據(jù)的一維數(shù)組),把一維數(shù)組內(nèi)的數(shù)據(jù)存入臨時(shí)的一維數(shù)組內(nèi)(Temp_Int_Arr)。利用Index_Data 的“指針”變量指向要讀取的數(shù)據(jù),并通過(guò)#Temp_REF_Data:= REF(#Temp_Int_Arr [#index_Data]) 以及#Int_DataOut:=#Temp_REF_ Data^;語(yǔ)句輸出。功能塊邏輯及功能對(duì)比測(cè)試左側(cè)部分的控制邏輯,如圖3 所示。

        圖3 功能塊邏輯及功能對(duì)比測(cè)試

        編寫(xiě)完成功能塊后,在主程序中分別調(diào)用ArrayDataRead 功能塊和FieldRead 系統(tǒng)功能塊。在“指針”變量輸入側(cè)填入相同的變量(Pointer1),數(shù)據(jù)輸入側(cè)填入相同的一維數(shù)組(Test_DB.Test_Int_Data)。下載程序后運(yùn)行并在線(xiàn)監(jiān)控,從圖3 功能塊邏輯及功能對(duì)比測(cè)試的右側(cè)部分可以看到,編寫(xiě)的ArrayDataRead 功能塊和FieldRead 系統(tǒng)功能塊運(yùn)行輸出的結(jié)果相同,證明編寫(xiě)的功能塊ArrayDataRead 和系統(tǒng)功能塊FieldRead 有相同的功能。

        綜上所述,無(wú)論是采用FieldRead 系統(tǒng)功能塊還是使用自主編寫(xiě)的ArrayDataRead 功能塊,都能極大地簡(jiǎn)化桁架位置數(shù)據(jù)傳送的控制邏輯;降低桁架位置數(shù)據(jù)傳送控制邏輯的編寫(xiě)量,使PLC 程序更易于查看、修改和故障排查。

        4 “指針和數(shù)組”應(yīng)用的拓展

        無(wú)獨(dú)有偶,在某項(xiàng)目設(shè)備的編碼器參數(shù)傳送邏輯中,同樣也應(yīng)用到“指針和數(shù)組”編程方式,實(shí)現(xiàn)了根據(jù)設(shè)備ID 進(jìn)行編碼器參數(shù)傳動(dòng)功能的邏輯。根據(jù)項(xiàng)目控制邏輯的需求,通過(guò)設(shè)備的ID 進(jìn)行判斷,從而傳送出左右2 個(gè)不同的編碼器參數(shù)并進(jìn)行長(zhǎng)度數(shù)據(jù)的運(yùn)算。

        首先,在PLC 中設(shè)置128 個(gè)整形量編碼器參數(shù)的一維整型變量數(shù)組Paramter_Array;并根據(jù)需要設(shè)置相應(yīng)的編碼器參數(shù)(按照先右側(cè)編碼器參數(shù)后左側(cè)編碼器參數(shù)排列,共64 組)。然后,將設(shè)備的ID 作為“指針”進(jìn)行轉(zhuǎn)換并計(jì)算,把計(jì)算結(jié)果放入臨時(shí)變量Temp 中;即Temp:=(Byte_To_Int(SP_ID)-1)*4;。緊接著獲得一維數(shù)據(jù)的首地址ADR(Patameter_Array);那么右側(cè)編碼器參數(shù)數(shù)據(jù)的地址為Ptr:=ADR(Patameter_Array)+Temp;,左側(cè)編碼器參數(shù)數(shù)據(jù)的地址為Ptr1:=ADR(Patameter_Array)+Temp+2;。最后把左右兩側(cè)編碼器的數(shù)參數(shù)據(jù)分別輸出,即R_Encode_Para:=Ptr^;和L_Encode_Para:=Ptr1^;。這樣就可以實(shí)現(xiàn)以設(shè)備的ID 作為“指針”;來(lái)獲取對(duì)應(yīng)的左右兩側(cè)編碼器參數(shù)的功能。圖4 為獲取設(shè)備編碼器參數(shù)圖片內(nèi)所示的控制邏輯。

        圖4 獲取設(shè)備編碼器參數(shù)

        5 結(jié)束語(yǔ)

        在PLC 控制邏輯中采用高級(jí)編程語(yǔ)言中的“指針和數(shù)組”編程方式,不僅順利解決了剪叉成品緩存工位中桁架定位數(shù)據(jù)的存儲(chǔ)和傳送問(wèn)題,以及實(shí)現(xiàn)用設(shè)備ID 選擇編碼器參數(shù)的功能,而且極大地簡(jiǎn)化數(shù)據(jù)傳送的控制邏輯。增加了PLC 控制邏輯的可讀性,降低桁架位置數(shù)據(jù)傳送和編碼器參數(shù)選擇控制邏輯的編寫(xiě)量,使PLC 程序更易于查看、修改和故障排查。隨著科學(xué)技術(shù)的不斷進(jìn)步,PLC 的控制系統(tǒng)將會(huì)日趨龐大和復(fù)雜;其勢(shì)必會(huì)面臨更為復(fù)雜的控制邏輯及算法計(jì)算。因此,對(duì)PLC 編程中高級(jí)編程語(yǔ)言的學(xué)習(xí)愈發(fā)緊迫和重要。

        猜你喜歡
        功能塊數(shù)組指針
        JAVA稀疏矩陣算法
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        偷指針的人
        為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
        Ovation系統(tǒng)FIRSTOUT和FIFO跳閘首出比較
        自定義功能塊類(lèi)型在電解槽聯(lián)鎖中的應(yīng)用
        尋找勾股數(shù)組的歷程
        基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
        基于MACSV6.5.2的鍋爐燃盡風(fēng)開(kāi)關(guān)量調(diào)節(jié)門(mén)控制功能塊設(shè)計(jì)
        ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
        国产男女免费完整视频| 综合成人亚洲网友偷自拍| 亚洲国产精品久久无人区| 国产精品天堂在线观看| 国产精品国产传播国产三级| 97在线视频人妻无码| 中文国产日韩欧美二视频| 午夜a福利| 亚洲国产丝袜美女在线| 日本久久伊人特级黄色| 男男啪啪激烈高潮cc漫画免费| 试看男女炮交视频一区二区三区| 一区二区视频网站在线观看| 91精品国产色综合久久| 无码吃奶揉捏奶头高潮视频| 国产成人无码A区在线观| 好看的国内自拍三级网站| 成人日韩精品人妻久久一区| 在线播放免费人成毛片乱码| 国产精品污www一区二区三区| 91中文人妻丝袜乱一区三区| 国产精品又湿又黄九九九久久嫩草 | 日韩产的人妻av在线网| 日韩乱码人妻无码系列中文字幕| 国产特级毛片aaaaaa高清| 岛国精品一区二区三区| 中文字幕久久精品一区二区| 成人爽a毛片免费视频| 亚洲最大中文字幕无码网站 | 精品国产亚洲av高清大片| 中文字幕乱偷无码av先锋蜜桃 | 亚洲成av人片一区二区| 久久免费国产精品一区二区| 99久久婷婷国产精品综合网站| 日韩av无码一区二区三区不卡| 久久99精品国产99久久| 网红极品女神精品视频在线| 亚洲高清中文字幕视频| 亚洲精品一区二区| 欧美成人高清手机在线视频| 日本熟妇中出高潮视频|