一種用于物料在柵格陣列間搬運(yùn)的plc程序設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
:
[0001]本發(fā)明屬于工業(yè)自動(dòng)化技術(shù)領(lǐng)域,具體是涉及一種用于物料在柵格陣列間搬運(yùn)的PLC程序設(shè)計(jì)方法。
【背景技術(shù)】
:
[0002]在生產(chǎn)線實(shí)現(xiàn)自動(dòng)化改造的過程中,柵格陣列狀態(tài)排列的物料搬運(yùn)是個(gè)重要的環(huán)節(jié),其廣泛存在于產(chǎn)品的加工,測試和儲(chǔ)運(yùn)的過程中,比如在電路板生產(chǎn)過程中,矩陣狀拼接的電路板在被切割開后需要裝入到矩陣穴格的TRAY盤中去。生產(chǎn)的產(chǎn)品不同,物料搬運(yùn)的起始地的源柵格陣列的排列和物料搬運(yùn)的目的地的目的柵格陣列的排列都會(huì)有變化,因此需要物料搬運(yùn)的路徑規(guī)劃能夠適應(yīng)這種變化。
[0003]可編程邏輯控制器(PLC)由于其內(nèi)在的同步機(jī)制,易于在編程時(shí)實(shí)現(xiàn)邏輯完整性和實(shí)時(shí)同步,因此在自動(dòng)控制系統(tǒng)中得到了廣泛的應(yīng)用。當(dāng)使用PLC來實(shí)施物料在柵格間搬運(yùn)時(shí),目前流行的做法是對于每一種源和目的柵格陣列的排列都編寫一段PLC的程序來實(shí)現(xiàn)搬運(yùn)路徑的規(guī)劃和動(dòng)作,當(dāng)生產(chǎn)的產(chǎn)品改變時(shí),通過切換PLC運(yùn)行的程序來實(shí)現(xiàn)產(chǎn)線的切換。使用上述的傳統(tǒng)的PLC編程方法來實(shí)現(xiàn)物料在柵格間的數(shù)據(jù)搬運(yùn)時(shí),搬運(yùn)的路徑規(guī)劃和搬運(yùn)動(dòng)作代碼是融合在一體的,這意味著每增加一種柵格的組合,就要編寫一段PLC的代碼,這樣的做法的缺陷是:1)設(shè)備使用人員的要求比較高,需要有PLC編程技能的工程師來編寫某一柵格組合特定的PLC代碼并調(diào)試,并且要花費(fèi)相當(dāng)?shù)臅r(shí)間,提高了設(shè)備使用的成本。2)每個(gè)柵格組合專有的代碼都要占用PLC的相對比較多的存儲(chǔ)空間,如果柵格結(jié)構(gòu)比較多的情況下,很容易發(fā)生PLC存儲(chǔ)空間爆滿的狀況。
[0004]在產(chǎn)線上生產(chǎn)的產(chǎn)品的種類不是很多,柵格陣列組合的熟練不太多的情況下,傳統(tǒng)的PLC程序編程方法可以滿足要求,但是工業(yè)4.0要求高度柔性的定制化的制造過程,在產(chǎn)線上,產(chǎn)品種類變化會(huì)很多,而且要求不同產(chǎn)品的生產(chǎn)的切換時(shí)間要非常短,因此要求規(guī)劃的物料搬運(yùn)路徑切換要適應(yīng)這種要求,一是用戶要很方便地增加新的搬運(yùn)路徑規(guī)劃,二是在不同的路徑規(guī)劃之間的切換的時(shí)間要求快。傳統(tǒng)的PLC程序編程方法由于上述的兩個(gè)問題,不能夠滿足大規(guī)模定制化制造生產(chǎn)的需求。因此必須要找到一種新的PLC程序的設(shè)計(jì)方法,針對柵格物料的搬運(yùn)的應(yīng)用可以做到1)能夠支持柵格陣列組合的數(shù)量足夠大。2)用戶可以很方便地增加一個(gè)新的柵格陣列組合的搬運(yùn)路徑規(guī)劃。
[0005]PC編程由于其代碼和數(shù)據(jù)分離的特點(diǎn),在程序設(shè)計(jì)上比較容易實(shí)現(xiàn)前述要求,但是PC編程邏輯完整性和實(shí)時(shí)同步功能的保證要差一些,如果能在PLC上能夠?qū)崿F(xiàn)PC編程的一些方法,則可以創(chuàng)造性的解決這一問題。
【發(fā)明內(nèi)容】
:
[0006]本發(fā)明的目的就是針對現(xiàn)有技術(shù)之不足,而提供一種用于物料在柵格陣列間搬運(yùn)的PLC程序的設(shè)計(jì)方法,在PLC系統(tǒng)容量的約束的前提下,能將其支持的柵格陣列組合的數(shù)量最大化,同時(shí)能夠使操作員容易增加一個(gè)新的柵格結(jié)構(gòu)組合的搬運(yùn)路徑規(guī)劃,以滿足工業(yè)4.0大規(guī)模定制的要求。
[0007]為達(dá)到上述目的,本發(fā)明的技術(shù)方案如下:
[0008]—種用于物料在柵格陣列間搬運(yùn)的PLC程序的設(shè)計(jì)方法,包括如下步驟:
[0009]S1:對PLC程序架構(gòu)進(jìn)行設(shè)計(jì),所述PLC程序架構(gòu)包括源柵格數(shù)據(jù)表編輯模塊、目的柵格數(shù)據(jù)表編輯模塊、搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊和搬運(yùn)動(dòng)作執(zhí)行模塊;所述源柵格數(shù)據(jù)表編輯模塊、所述目的柵格數(shù)據(jù)表編輯模塊、所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊表現(xiàn)為人機(jī)交互的圖形化界面,用戶對所述圖形化界面進(jìn)行操作產(chǎn)生源柵格數(shù)據(jù)表、目的柵格數(shù)據(jù)表和搬運(yùn)動(dòng)作命令數(shù)據(jù)列表;所述搬運(yùn)動(dòng)作執(zhí)行模塊用于根據(jù)所述源柵格數(shù)據(jù)表、目的柵格數(shù)據(jù)表和搬運(yùn)動(dòng)作命令數(shù)據(jù)列表中的數(shù)據(jù)完成搬運(yùn)動(dòng)作;
[0010]S2:對數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),所述數(shù)據(jù)結(jié)構(gòu)包括源柵格數(shù)據(jù)結(jié)構(gòu)、目的柵格數(shù)據(jù)結(jié)構(gòu)、搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu);所述源柵格數(shù)據(jù)結(jié)構(gòu)用于定義物料搬運(yùn)的起始柵格陣列中的每個(gè)穴位的X、Υ坐標(biāo)位置,所述目的柵格數(shù)據(jù)結(jié)構(gòu)用于定義物料搬運(yùn)的目的柵格陣列中的每個(gè)穴位的X、Υ坐標(biāo)位置,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu)用于定義每個(gè)搬運(yùn)動(dòng)作的搬運(yùn)起始柵格穴位、目的柵格穴位、物料抓取數(shù)量、是否旋轉(zhuǎn)、物料放下數(shù)量和對應(yīng)的抓取手的位置;
[0011]S3:利用所述PLC程序架構(gòu)和所述數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)用戶自定義的物料在柵格陣列間的柔性的搬運(yùn)路徑規(guī)劃和搬運(yùn)動(dòng)作。
[0012]作為上述技術(shù)方案的優(yōu)選,所述步驟S3具體包括如下步驟:
[0013]S31:用戶對所述圖形化界面上的源柵格數(shù)據(jù)表編輯模塊進(jìn)行編輯,生成源柵格數(shù)據(jù)表,所述源柵格數(shù)據(jù)表為物料搬運(yùn)的起始柵格陣列中的每個(gè)穴位的X、Y坐標(biāo)位置的列表;
[0014]S32:用戶對所述圖形化界面上的目的柵格數(shù)據(jù)表編輯模塊進(jìn)行編輯,生成目的柵格數(shù)據(jù)表,所述目的柵格數(shù)據(jù)表為物料搬運(yùn)的目的柵格陣列中的每個(gè)穴位的X、Y坐標(biāo)位置的列表;
[0015]S33:用戶對所述圖形化界面上的搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊進(jìn)行編輯,生成搬運(yùn)動(dòng)作命令數(shù)據(jù)列表,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表為最少搬運(yùn)循環(huán)周期中的每個(gè)搬運(yùn)動(dòng)作的搬運(yùn)起始柵格穴位、目的柵格穴位、抓取的數(shù)量、是否旋轉(zhuǎn)、物料放下數(shù)量和對應(yīng)的抓取手的位置的列表;
[0016]S34:所述源柵格數(shù)據(jù)表、目的柵格數(shù)據(jù)表、搬運(yùn)動(dòng)作命令數(shù)據(jù)列表實(shí)現(xiàn)了用戶自定義的物料在柵格陣列間的柔性的搬運(yùn)路徑規(guī)劃;
[0017]S35:所述搬運(yùn)動(dòng)作執(zhí)行模塊循環(huán)使用S34中的搬運(yùn)路徑規(guī)劃來設(shè)定每次搬運(yùn)動(dòng)作的動(dòng)作參數(shù),實(shí)現(xiàn)循環(huán)往復(fù)的搬運(yùn)動(dòng)作,完成所有物料在柵格陣列間的搬運(yùn)。
[0018]作為上述技術(shù)方案的優(yōu)選,所述起始柵格陣列和所述目的柵格陣列采用矩形柵格陣列,所述矩形柵格陣列通過陣列的幾何參數(shù)的方法自動(dòng)產(chǎn)生柵格陣列中每個(gè)穴位的坐標(biāo)位置數(shù)據(jù)。
[0019]作為上述技術(shù)方案的優(yōu)選,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu)中通過設(shè)置多個(gè)抓取頭實(shí)現(xiàn)每個(gè)搬運(yùn)動(dòng)作中不同的物料抓取數(shù)量和不同的物料放下數(shù)量。
[0020]作為上述技術(shù)方案的優(yōu)選,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表的長度為有限長度,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表的長度小于等于起始柵格陣列中穴位數(shù)量和目的柵格陣列中穴位數(shù)量的最小公倍數(shù)。
[0021]作為上述技術(shù)方案的優(yōu)選,所述源柵格數(shù)據(jù)表編輯模塊、所述目的柵格數(shù)據(jù)表編輯模塊、所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊為運(yùn)行于PLC觸摸屏控制面板的程序或運(yùn)行于PC的程序。
[0022]本發(fā)明的有益效果在于:通過物料在柵格陣列間搬運(yùn)動(dòng)作所需要的程序和數(shù)據(jù)結(jié)構(gòu)分離的方法,通過源柵格數(shù)據(jù)表,目的柵格數(shù)據(jù)表,搬運(yùn)動(dòng)作命令列表來實(shí)現(xiàn)用戶自定義的物料在柵格陣列間的柔性的搬運(yùn)路徑規(guī)劃,通過人機(jī)交互的圖形化化界面來編輯生成源和目的柵格數(shù)據(jù)表以及搬運(yùn)動(dòng)作命令列表。相對于傳統(tǒng)的對于每一柵格組合都編寫一段PLC代碼來實(shí)現(xiàn)柵格間物料搬運(yùn)路徑規(guī)劃的方法,每增加一種柵格組合占用PLC的存儲(chǔ)容量小,PLC能支持的柵格組合的數(shù)量大大增加,增加組合的操作簡單快速,可以滿足工業(yè)4.0大規(guī)模定制化生產(chǎn)對于產(chǎn)品換線的要求,同時(shí)降低了設(shè)備使用維護(hù)人員的技能的要求。
【附圖說明】
:
[0023]以下附圖僅旨在于對本發(fā)明做示意性說明和解釋,并不限定本發(fā)明的范圍。其中:
[0024]圖1為本發(fā)明一個(gè)實(shí)施例的一種用于物料在柵格陣列間搬運(yùn)的PLC程序的設(shè)計(jì)方法流程圖;
[0025]圖2為本發(fā)明一個(gè)實(shí)施例的一種用戶自定義的物料在柵格陣列間的柔性的搬運(yùn)路徑規(guī)劃和搬運(yùn)動(dòng)作流程圖;
[0026]圖3為本發(fā)明一個(gè)實(shí)施例的一種源柵格示意圖;
[0027]圖4為本發(fā)明一個(gè)是實(shí)力的一種目的柵格示意圖。
【具體實(shí)施方式】
:
[0028]實(shí)施例1
[0029]如圖1所示,本發(fā)明的一種用于物料在柵格陣列間搬運(yùn)的PLC程序的設(shè)計(jì)方法,包括如下步驟:
[0030]S1:對PLC程序架構(gòu)進(jìn)行設(shè)計(jì),所述PLC程序架構(gòu)包括源柵格數(shù)據(jù)表編輯模塊、目的柵格數(shù)據(jù)表編輯模塊、搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊和搬運(yùn)動(dòng)作執(zhí)行模塊;所述源柵格數(shù)據(jù)表編輯模塊、所述目的柵格數(shù)據(jù)表編輯模塊、所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊表現(xiàn)為人機(jī)交互的圖形化界面,用戶對所述圖形化界面進(jìn)行操作產(chǎn)生源柵格數(shù)據(jù)表、目的柵格數(shù)據(jù)表和搬運(yùn)動(dòng)作命令數(shù)據(jù)列表;所述搬運(yùn)動(dòng)作執(zhí)行模塊用于根據(jù)所述源柵格數(shù)據(jù)表、目的柵格數(shù)據(jù)表和搬運(yùn)動(dòng)作命令數(shù)據(jù)列表中的數(shù)據(jù)完成搬運(yùn)動(dòng)作。所述源柵格數(shù)據(jù)表編輯模塊、所述目的柵格數(shù)據(jù)表編輯模塊、所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表編輯模塊為運(yùn)行于PLC觸摸屏控制面板的程序或運(yùn)行于PC的程序,運(yùn)行于PC的程序時(shí),在需要執(zhí)行時(shí)由PLC從PC下載到PLC中。
[0031]S2:對數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),所述數(shù)據(jù)結(jié)構(gòu)包括源柵格數(shù)據(jù)結(jié)構(gòu)、目的柵格數(shù)據(jù)結(jié)構(gòu)、搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu);所述源柵格數(shù)據(jù)結(jié)構(gòu)用于定義物料搬運(yùn)的起始柵格陣列中的每個(gè)穴位的X、Y坐標(biāo)位置,所述目的柵格數(shù)據(jù)結(jié)構(gòu)用于定義物料搬運(yùn)的目的柵格陣列中的每個(gè)穴位的X、Y坐標(biāo)位置,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu)用于定義每個(gè)搬運(yùn)動(dòng)作的搬運(yùn)起始柵格穴位、目的柵格穴位、物料抓取數(shù)量、是否旋轉(zhuǎn)、物料放下數(shù)量和對應(yīng)的抓取手的位置。
[0032]所述起始柵格陣列和所述目的柵格陣列可以為規(guī)則的陣列如矩形柵格陣列,也可以使不規(guī)則的陣列,本實(shí)施例中,所述起始柵格陣列和所述目的柵格陣列采用矩形柵格陣列,所述矩形柵格陣列通過陣列的幾何參數(shù)的方法自動(dòng)產(chǎn)生柵格陣列中每個(gè)穴位的坐標(biāo)位置數(shù)據(jù)。
[0033]所述搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu)如下:
[0034]Struct {
[0035]LIST Source ;物料取出的源柵格穴位索引號列表
[0036]LIST Destinat1n ;---物料放入的目的柵格穴位索引列表
[0037]MASK Fetch ;多抓取頭的哪幾個(gè)頭取出物料
[0038]MASK Put ;多抓取頭的哪幾個(gè)頭放下物料
[0039]MASK Rotat1n ;多抓取頭的每個(gè)頭旋轉(zhuǎn)的設(shè)定
[0040]}
[0041]所述搬運(yùn)動(dòng)作命令數(shù)據(jù)結(jié)構(gòu)中通過設(shè)置多個(gè)抓取頭實(shí)現(xiàn)每個(gè)搬運(yùn)動(dòng)作中不同的物料抓取數(shù)量和不同的物料放下數(shù)量,即搬用命令數(shù)據(jù)結(jié)構(gòu)支持多抓取頭的結(jié)構(gòu),可以同時(shí)抓取多個(gè)物料,Source和Destinat1n列表定義了同時(shí)取出和放入穴位的索引號,F(xiàn)etch和Put是MASK數(shù)據(jù)類型,則定義了取出和放入時(shí),哪幾個(gè)抓取頭在動(dòng)作,Rotat1n則定義了物料在放入是是否要旋轉(zhuǎn)。
[0042]所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表的長度為有限長度,所述搬運(yùn)動(dòng)作命令數(shù)據(jù)列表的長度小于等于起始柵格陣列中穴位數(shù)量和目的柵格陣列中穴位數(shù)量的最小公倍數(shù)。如果源柵格陣列的穴位數(shù)為N,目的柵格陣列的穴位數(shù)為M,N和Μ的最少