亚洲精品少妇久久久久久海角社区,色婷婷亚洲一区二区综合,伊人蕉久中文字幕无码专区,日韩免费高清大片在线

羅戈網(wǎng)
搜  索
登陸成功

登陸成功

積分  

基于數(shù)據(jù)管理的堆垛機(jī)的PLC控制技術(shù)

[羅戈導(dǎo)讀]?隨著工業(yè)4.0的普及,倉(cāng)儲(chǔ)物流控制系統(tǒng)不但要滿足基本的設(shè)備控制的精度要求,更是需要對(duì)控制全過(guò)程的數(shù)據(jù)做信息化的處理。而倉(cāng)儲(chǔ)物流系統(tǒng)中最重要的設(shè)備就是堆垛機(jī),在此提出的基于數(shù)據(jù)管理的PLC控制技術(shù)就是一種實(shí)現(xiàn)堆垛機(jī)全過(guò)程信息數(shù)據(jù)管理的方式,該管理方式數(shù)據(jù)全面,覆蓋了堆垛機(jī)的全過(guò)程數(shù)據(jù),可以實(shí)現(xiàn)堆垛機(jī)的信息化的控制。

隨著工業(yè)4.0的普及,倉(cāng)儲(chǔ)物流控制系統(tǒng)不但要滿足基本的設(shè)備控制的精度要求,更是需要對(duì)控制全過(guò)程的數(shù)據(jù)做信息化的處理。而倉(cāng)儲(chǔ)物流系統(tǒng)中最重要的設(shè)備就是堆垛機(jī),在此提出的基于數(shù)據(jù)管理的PLC控制技術(shù)就是一種實(shí)現(xiàn)堆垛機(jī)全過(guò)程信息數(shù)據(jù)管理的方式,該管理方式數(shù)據(jù)全面,覆蓋了堆垛機(jī)的全過(guò)程數(shù)據(jù),可以實(shí)現(xiàn)堆垛機(jī)的信息化的控制。

自動(dòng)化立體倉(cāng)庫(kù)是集機(jī)械、電子、計(jì)算機(jī)、通信網(wǎng)絡(luò)、傳感器和自動(dòng)控制等多種技術(shù)為一體,以搬運(yùn)機(jī)械化、控制自動(dòng)化、管理微機(jī)化、信息網(wǎng)絡(luò)化為特征的現(xiàn)代化物流系統(tǒng)中產(chǎn)品生產(chǎn)與儲(chǔ)存的樞紐,主要應(yīng)用于存儲(chǔ)配件、半成品、產(chǎn)品、工具、夾具和模具等。

隨著信息化技術(shù)的發(fā)展和自動(dòng)化要求的不斷提高,立體倉(cāng)庫(kù)的設(shè)備控制不僅要將堆垛機(jī)的運(yùn)行控制做到平滑順暢,更需要堆垛機(jī)系統(tǒng)能具備運(yùn)行過(guò)程中各種信息數(shù)據(jù)的轉(zhuǎn)換處理,便于操作運(yùn)行人員或者管理人員能對(duì)堆垛機(jī)的各種參數(shù)及性能得到細(xì)致的了解與掌握。

目前堆垛機(jī)控制系統(tǒng)更多的研究方向都是控制曲線的實(shí)現(xiàn),并且也已經(jīng)有很多實(shí)際成果已經(jīng)在實(shí)施。然而在堆垛機(jī)信息化管理方面,PLC系統(tǒng)做的還不是很完善且實(shí)際應(yīng)用中涉及的比較淺,這造成了在工業(yè)應(yīng)用中更多的信息化數(shù)據(jù)都是通過(guò)WMS/WCS的倉(cāng)儲(chǔ)數(shù)據(jù)的信息化,而堆垛機(jī)的設(shè)備的參數(shù)性能,堆垛機(jī)對(duì)任務(wù)處理過(guò)程數(shù)據(jù)等信息化的管理由于PLC系統(tǒng)做的不徹底,導(dǎo)致現(xiàn)在的倉(cāng)儲(chǔ)控制系統(tǒng)在這方面是一個(gè)弱點(diǎn)。

本文主要闡述一種基于PLC(SIEMENS)的堆垛機(jī)控制技術(shù)中對(duì)于堆垛機(jī)運(yùn)行過(guò)程中的數(shù)據(jù)的管理的原理以及數(shù)據(jù)處理的方式。

01立體庫(kù)控制系統(tǒng)

立體倉(cāng)庫(kù)的控制系統(tǒng)主要包括WMS/WCS系統(tǒng)以及設(shè)備控制系統(tǒng)(PLC)。最上層的WMS系統(tǒng)負(fù)責(zé)倉(cāng)儲(chǔ)業(yè)務(wù)邏輯的處理,最下層是具體物流設(shè)備的控制,比如堆垛機(jī)。WCS處于WMS與PLC之間,負(fù)責(zé)協(xié)調(diào),調(diào)度底層設(shè)備,使底層設(shè)備可以執(zhí)行倉(cāng)儲(chǔ)系統(tǒng)的業(yè)務(wù)流程并且這個(gè)過(guò)程完全按照程序預(yù)先設(shè)定的流程執(zhí)行的。通常WMS與WCS都是在同一硬件系統(tǒng)(服務(wù)器)實(shí)現(xiàn),所以下文所有的描述都統(tǒng)稱為WMS/WCS系統(tǒng)。

圖1 立體倉(cāng)庫(kù)控制系統(tǒng)構(gòu)架

PLC和WMS/WCS之間由以太網(wǎng)(無(wú)線)連接,通過(guò)TCP/IP協(xié)議交換信息數(shù)據(jù),二者之間主要由兩類數(shù)據(jù)的交互:

  • 心跳包數(shù)據(jù):心跳包數(shù)據(jù)主要用于監(jiān)視PLC和WMS/WCS之間的連接是否正常,只有連接正常的情況下才有數(shù)據(jù)交互的可能性;

  • 任務(wù)信息數(shù)據(jù):WMS/WCS給PLC發(fā)送的任務(wù)信息,PLC在執(zhí)行過(guò)程中該任務(wù)信息狀態(tài)反饋以及設(shè)備信息的反饋;此類數(shù)據(jù)二者在不同時(shí)刻具有不同身份,是不同信息的創(chuàng)造者;

圖2 PLC與WMS/WCS通信鏈路處理

堆垛機(jī)作業(yè)流程:

WMS/WCS根據(jù)業(yè)務(wù)流程向堆垛機(jī)發(fā)送任務(wù)信息,堆垛機(jī)系統(tǒng)(PLC)在收到任務(wù)信息后將按照信息內(nèi)容執(zhí)行任務(wù)流程并且在執(zhí)行過(guò)程中實(shí)時(shí)向WMS/WCS反饋當(dāng)前任務(wù)狀態(tài)。

正常流程:堆垛機(jī)執(zhí)行任務(wù)一次性完成,中途沒(méi)有出現(xiàn)任何異常;

異常流程:堆垛機(jī)執(zhí)行任務(wù)過(guò)程中,由于設(shè)備出現(xiàn)故障或其他因素,導(dǎo)致任務(wù)必須暫停甚至中斷稱之為異常。此時(shí)PLC必須告知WMS/WCS異常的原因并等待異常結(jié)束后將任務(wù)執(zhí)行完成,最終并發(fā)送任務(wù)完成信息給WMS/WCS系統(tǒng);

圖3 PLC與WMS/WCS作業(yè)流程示意圖

02PLC中堆垛機(jī)的數(shù)據(jù)管理方式

2.1任務(wù)信息組成

堆垛機(jī)主要基于WMS/WCS發(fā)送的任務(wù)信息執(zhí)行貨物的位置搬運(yùn),設(shè)備空移等動(dòng)作,核心要素即堆垛機(jī)的位置移動(dòng),位置定位等的控制。所以,WMS/WCS發(fā)送給PLC的任務(wù)信息也是主要包括任務(wù)屬性描述以及位置等核心數(shù)據(jù)。一般的任務(wù)信息數(shù)據(jù)可以概括如下表所示:

序號(hào)

類別

名稱

說(shuō)明

備注

1

任務(wù)描述類

堆垛機(jī)號(hào)

堆垛機(jī)編號(hào)

2

任務(wù)類型

描述任務(wù)類型的信息

比如出庫(kù),入庫(kù)等

3

任務(wù)號(hào)

最大長(zhǎng)度為10位的整型

4

優(yōu)先級(jí)

任務(wù)執(zhí)行順序從小到大

5

位置信息類

起始棧臺(tái)

立體倉(cāng)庫(kù)棧臺(tái)編號(hào)

6

起始巷道

立體倉(cāng)庫(kù)巷道編號(hào)

7

起始排

立體倉(cāng)庫(kù)對(duì)應(yīng)的貨架面

8

起始列

立體倉(cāng)庫(kù)對(duì)應(yīng)的貨架列

9

起始層

立體倉(cāng)庫(kù)對(duì)應(yīng)的貨架層

10

起始深度

貨位深度

11

目標(biāo)棧臺(tái)

立體倉(cāng)庫(kù)棧臺(tái)編號(hào)

12

目標(biāo)巷道

立體倉(cāng)庫(kù)巷道編號(hào)

13

目標(biāo)排

立體倉(cāng)庫(kù)對(duì)應(yīng)的貨架面

14

目標(biāo)列

立體倉(cāng)庫(kù)對(duì)應(yīng)的貨架列

15

目標(biāo)層

立體倉(cāng)庫(kù)對(duì)應(yīng)的貨架層

16

目標(biāo)深度

貨位深度

不管單雙貨位都可以用深度表示貨物放置的目標(biāo)位置

17

任務(wù)屬性類

貨物重量

貨物重量KG

18

托盤條碼

托盤條形碼

表格1 堆垛機(jī)任務(wù)信息數(shù)據(jù)

2.2PLC系統(tǒng)數(shù)據(jù)管理

PLC為了將接收到的任務(wù)信息能正確的執(zhí)行,在PLC中建立了四個(gè)數(shù)據(jù)區(qū)域:

Link:各種數(shù)據(jù)記錄(TST,TIF,TST)的鏈接,每一個(gè)獨(dú)立的任務(wù)信息對(duì)應(yīng)一個(gè)Link編號(hào)且該Link下面會(huì)有相關(guān)數(shù)據(jù)記錄編碼的鏈接;

TIF: Task Information,任務(wù)信息記錄,記錄任務(wù)信息中接收到的數(shù)據(jù);每一個(gè)TIF對(duì)應(yīng)一個(gè)任務(wù)ID的信息并由Link鏈接到其他記錄信息;

TST: Task States,任務(wù)狀態(tài)記錄,表明該任務(wù)信息當(dāng)前狀態(tài);每一個(gè)TST對(duì)應(yīng)一個(gè)任務(wù)ID的信息并由Link鏈接到其他記錄信息;

TDT: Task Distance,任務(wù)距離數(shù)據(jù)記錄,記錄該任務(wù)起始/目的/當(dāng)前位置信息或者距離信息,每一個(gè)堆垛機(jī)對(duì)應(yīng)一組信息記錄,同一堆垛機(jī)的TSD記錄號(hào)碼是相同的且與堆垛機(jī)編號(hào)相同;

2.2.1任務(wù)信息記錄(TIF: Task Information)

TIF用于記錄PLC收到的WMS/WCS的任務(wù)信息,用于指導(dǎo)堆垛機(jī)的運(yùn)行控制;在PLC中自定義一種結(jié)構(gòu)體數(shù)據(jù)類型名叫:UDT_TIF,其結(jié)構(gòu)如下圖所示:

TYPE "UDT_TIF"

   STRUCT

           Link : Int;  // Link Record in Link DB list

         Function_Code : Int;   // 任務(wù)功能編碼:比如定義出庫(kù),入庫(kù)編號(hào)

         stocker_ID : Int;   // 堆垛機(jī)編號(hào)

         Task_ID : DInt;   // 任務(wù)編號(hào)

         Priority_code : Int;   // 任務(wù)優(yōu)先級(jí),級(jí)別越高越先執(zhí)行

         Res_Platform : Int;   // 起始棧臺(tái)編號(hào)

         Res_Tunnel : Int;   // 起始巷道編號(hào)

         Res_Row : Int;   // 起始貨架Row編號(hào),決定堆垛機(jī)伸叉方向

         Res_Line : Int;   // 起始貨架Y軸坐標(biāo)(堆垛機(jī)行走方向)

         Res_Tier : Int;   // 起始貨架X軸坐標(biāo)(堆垛機(jī)提升方向)

         Res_Depth : Int;   // 起始貨架Z軸坐標(biāo)(堆垛機(jī)伸叉方向)

         Des_Platform : Int;   // 目的棧臺(tái)編號(hào)

         Des_Tunnel : Int;   // 目的巷道編號(hào)

         Des_Row : Int;   // 目的貨架Row編號(hào),決定堆垛機(jī)伸叉方向

         Des_Line : Int;   // 目的貨架Y軸坐標(biāo)(堆垛機(jī)行走方向)

         Des_Tier : Int;   // 目的貨架X軸坐標(biāo)(堆垛機(jī)提升方向)

         Des_Depth : Int;   // 目的貨架Z軸坐標(biāo)(堆垛機(jī)伸叉方向)

         Weigth : Int;   // 貨物重量

         Barcord_Tub : String[10];   // 托盤條碼

   END_STRUCT;

END_TYPE

在PLC中實(shí)例化一個(gè)數(shù)據(jù)塊,名稱叫做DB_TIF_List。該數(shù)據(jù)區(qū)域包括兩部分:數(shù)據(jù)塊頭文件與數(shù)據(jù)主體。

數(shù)據(jù)頭文件區(qū)域定義了數(shù)據(jù)區(qū)域的一些屬性,比如頭文件長(zhǎng)度,數(shù)據(jù)類型的長(zhǎng)度,當(dāng)前最大記錄數(shù)目等信息;

數(shù)據(jù)主體就是存放實(shí)際數(shù)據(jù)的區(qū)域,主要由100組UDT_TIF類型組成的數(shù)據(jù)列表,意味著數(shù)據(jù)區(qū)域最多可以同時(shí)存放100個(gè)堆垛機(jī)任務(wù);

DATA_BLOCK"DB_TIF_List"

   STRUCT

      Length_Header : Int;   // DB塊頭文件的長(zhǎng)度,工程師設(shè)定

      Length_Record : Int;   // 每一臺(tái)記錄的長(zhǎng)度,系統(tǒng)自動(dòng)計(jì)算

      Last_Task_Record : Int;   // 當(dāng)前存儲(chǔ)的記錄的位置,系統(tǒng)自動(dòng)計(jì)算

      Entries_Present : Int;   // 能存儲(chǔ)的最多數(shù)據(jù)的記錄

      Default_Record_DB : Int;   // 默認(rèn)的數(shù)據(jù)塊編號(hào)

      Not_Used : Int;   // 沒(méi)有定義

      s_Done : Bool;   // 用于指示該數(shù)據(jù)塊正在被調(diào)用

      TIF : Array[1..100] of"UDT_TIF";

   END_STRUCT;

END_DATA_BLOCK

2.2.2任務(wù)狀態(tài)記錄(TST: Task States)

       對(duì)于堆垛機(jī)設(shè)備來(lái)說(shuō),每一個(gè)任務(wù)的執(zhí)行都是三個(gè)坐標(biāo)(水平,垂直,貨架)系統(tǒng)的目標(biāo)位置與設(shè)備當(dāng)前位置之間的坐標(biāo)位移。TST則用于記錄任務(wù)的執(zhí)行狀態(tài),其中包括兩個(gè)方面的數(shù)據(jù)的記錄:

  • 任務(wù)的整體狀態(tài):包括任務(wù)是否被激活,任務(wù)是否正在執(zhí)行,任務(wù)是否被中斷,任務(wù)是否執(zhí)行完成等;

  • 任務(wù)的過(guò)程狀態(tài):過(guò)程狀態(tài)包括三個(gè)坐標(biāo)系電機(jī)在當(dāng)前任務(wù)中的執(zhí)行狀態(tài),比如在該任務(wù)中水平行走坐標(biāo)是否已經(jīng)完成,垂直提升坐標(biāo)是否已經(jīng)完成,貨叉伸縮貨叉任務(wù)是否已經(jīng)完成等;

       PLC自定義一種數(shù)據(jù)類型名叫:UDT_TST用于記錄任務(wù)執(zhí)行狀態(tài)

TYPE"UDT_TST"

   STRUCT

         Link : Int;   // Link Record in Link DB list

         Interrupt_code : Int;   // 任務(wù)中斷代碼

         Defeated_Reason : Int;   // 任務(wù)中斷的原因代碼

         Depth_Run_Counter : Int;   // 1:單貨叉運(yùn)行;2::雙貨叉運(yùn)行

         Current_Lift_Speed : Int;   // 提升電機(jī)當(dāng)前速度

         Current_Line_Speed : Int;   // 行走電機(jī)當(dāng)前速度

         Read_Barcode_States : Int;   // 0表示條碼狀態(tài)正確;1:表示條碼狀態(tài)錯(cuò)誤

         Read_Barcode_1 : String[10]; // 讀到的第一條條碼

         Read_Barcode_2 : String[10]; // 讀到的第二條條碼

         Read_Barcode_3 : String[10]; // 讀到的第三條條碼

         Task_status : Bool;   // 1:任務(wù)正在執(zhí)行 0:任務(wù)等待中

         Task_Res_Depth_Status : Bool;   // 1:任務(wù)正在執(zhí)行  0:任務(wù)等待中

         Task_Des_Depth_Status : Bool;   // 1:任務(wù)正在執(zhí)行  0:任務(wù)等待中

         Task_Finished : Bool;   // TRUE=任務(wù)完成

         Task_defeated : Bool;   // TRUE=任務(wù)中斷

         Task_completed : Bool;   // TRUE=收到WCS反饋信息

         Hold_Goods : Bool;   // 叉車上有貨物

         Task_defeated_inform : Bool; // TRUE=上位機(jī)任務(wù)中斷確認(rèn)

         Task_Res_Line_Finish : Bool; // TRUE=起始Y軸(行走)完成

         Task_Des_Line_Finish : Bool; // TRUE=目的Y軸(行走)完成

         Task_Res_Column_Finish : Bool; //TRUE=起始X軸(提升)完成

         Task_Des_Column_Finish : Bool; //TRUE=目的X軸(提升)完成

         Task_Res_Depth1_Finish : Bool; //TRUE=起始Z軸(單伸貨叉)完成

         Task_Des_Depth1_Finish : Bool; //TRUE=目的Z軸(單伸貨叉)完成

         Task_Res_Depth2_Finish : Bool; //TRUE=起始Z軸(雙伸貨叉)完成

         Task_Des_Depth2_Finish : Bool; //TRUE=目的Z軸(雙伸貨叉)完成

         Task_Res_Req_Lift_LittleUp : Bool;//TRUE:請(qǐng)求提升電機(jī)微升

         Task_Res_Req_Lift_LittleDn :Bool;   // TRUE:請(qǐng)求提升電機(jī)微降

         Task_Des_Req_Lift_LittleUp :Bool;   // TRUE:請(qǐng)求提升電機(jī)微升

         Task_Des_Req_Lift_LittleDn :Bool;   // TRUE:請(qǐng)求提升電機(jī)微降

         Line_Motor_Run_On : Bool;   // X軸電機(jī)運(yùn)行信號(hào)

         Column_Motor_Run_On : Bool;   // Y軸電機(jī)運(yùn)行信號(hào)

         Depth_Motor1_Run_On : Bool;   // 貨叉電機(jī)1運(yùn)行信號(hào)

         Depth_Motor2_Run_On : Bool;   // 貨叉電機(jī)2運(yùn)行信號(hào)

   END_STRUCT;

END_TYPE

在PLC中實(shí)例化一個(gè)數(shù)據(jù)塊,名稱叫做DB_TST_List。該數(shù)據(jù)區(qū)域包括兩部分:數(shù)據(jù)塊頭文件與數(shù)據(jù)主體。

數(shù)據(jù)頭文件區(qū)域定義了數(shù)據(jù)區(qū)域的一些屬性,比如頭文件長(zhǎng)度,數(shù)據(jù)類型的長(zhǎng)度,當(dāng)前最大記錄數(shù)目等信息;

數(shù)據(jù)主體就是存放實(shí)際數(shù)據(jù)的區(qū)域,主要由100組UDT_TST類型組成的數(shù)據(jù)列表,意味著數(shù)據(jù)區(qū)域最多可以同時(shí)存放100個(gè)堆垛機(jī)任務(wù);

DATA_BLOCK "DB_TST_List"

STRUCT

Length_Header : Int;   // DB塊頭文件的長(zhǎng)度,工程師設(shè)定

Length_Record : Int;   // 每一臺(tái)記錄的長(zhǎng)度,系統(tǒng)自動(dòng)計(jì)算

Last_Task_Record : Int;   // 當(dāng)前存儲(chǔ)的記錄的位置,系統(tǒng)自動(dòng)計(jì)算    

Entries_Present : Int;   // 能存儲(chǔ)的最多數(shù)據(jù)的記錄

Default_Record_DB : Int;   // 沒(méi)有定義

Not_Used : Int;   // 沒(méi)有定義

s_Done : Bool;   // 用于指示該數(shù)據(jù)塊正在被調(diào)用

TST : Array[1..100] of"UDT_TST";

END_STRUCT;

END_DATA_BLOCK

2.2.3任務(wù)位置(TSD: Task Distance)

       TSD主要記錄執(zhí)行任務(wù)中相關(guān)的坐標(biāo)位置數(shù)據(jù),主要包括兩種位置數(shù)據(jù):

  • 設(shè)備當(dāng)前位置數(shù)據(jù):包括堆垛機(jī)三臺(tái)電機(jī)的當(dāng)前位置坐標(biāo)值;

  • 任務(wù)位置數(shù)據(jù):每一個(gè)有效任務(wù)都包括起始位置和終點(diǎn)位置,任務(wù)位置值就包括任務(wù)中這兩類的三臺(tái)設(shè)備的目的數(shù)據(jù);

       PLC自定義一種數(shù)據(jù)類型名叫:UDT_TSD用于記錄任務(wù)坐標(biāo)位置值;

TYPE"UDT_TSD"

   STRUCT

      Link : Int;

      Current : Struct   // Current stocker position information

         Line_Posi : DInt;   // 當(dāng)前Y軸坐標(biāo)(堆垛機(jī)行走方向)

         Tier_Posi : DInt;   // 當(dāng)前X軸坐標(biāo)(堆垛機(jī)提升方向)

         Depth_Posi : DInt;   // 當(dāng)前Z軸坐標(biāo)(堆垛機(jī)伸叉方向)

         Platform : Int;   // 當(dāng)前棧臺(tái)編號(hào)

         Tunnel : Int;   // 當(dāng)前巷道編號(hào)

         Row : Int;   // 當(dāng)前列編號(hào)

         Line : Int;  // 當(dāng)前排編號(hào)

         Tier : Int;   // 當(dāng)前層編號(hào)

         Depth : Int;   // 當(dāng)前深度編號(hào)

      END_STRUCT;

      Task_Res : Struct   // Current task resource positioninformation

         Platform_Posi : DInt;   // 任務(wù)棧臺(tái)位置值,單位mm

         Tunnel_Posi : DInt;   // 任務(wù)巷道位置值,單位mm

         Row_Posi : DInt;   // 貨架Row編號(hào),決定堆垛機(jī)伸叉方向

         Line_Posi : DInt;   // 貨架Y軸坐標(biāo)(堆垛機(jī)行走方向)

         Tier_Posi : DInt;   // 貨架X軸坐標(biāo)(堆垛機(jī)提升方向)

         Depth_Posi : DInt;   // 貨架Z軸坐標(biāo)(堆垛機(jī)伸叉方向)

      END_STRUCT;

      Task_Des : Struct   // Current task destination positioninformation

         Platform_Posi : DInt;   // 任務(wù)棧臺(tái)位置值,單位mm

         Tunnel_Posi : DInt;   // 任務(wù)巷道位置值,單位mm

         Row_Posi : DInt;   // 貨架Row編號(hào),決定堆垛機(jī)伸叉方向

         Line_Posi : DInt;   // 貨架Y軸坐標(biāo)(堆垛機(jī)行走方向)

         Tier_Posi : DInt;   // 貨架X軸坐標(biāo)(堆垛機(jī)提升方向)

         Depth_Posi : DInt;   // 貨架Z軸坐標(biāo)(堆垛機(jī)伸叉方向)

      END_STRUCT;

   END_STRUCT;

END_TYPE

在PLC中實(shí)例化一個(gè)數(shù)據(jù)塊,名稱叫做DB_TSD_List。該數(shù)據(jù)區(qū)域包括兩部分:數(shù)據(jù)塊頭文件與數(shù)據(jù)主體。

數(shù)據(jù)頭文件區(qū)域定義了數(shù)據(jù)區(qū)域的一些屬性,比如頭文件長(zhǎng)度,數(shù)據(jù)類型的長(zhǎng)度,當(dāng)前最大記錄數(shù)目等信息;

數(shù)據(jù)主體就是存放實(shí)際數(shù)據(jù)的區(qū)域,主要由100組UDT_TSD類型組成的數(shù)據(jù)列表,意味著數(shù)據(jù)區(qū)域最多可以同時(shí)存放100個(gè)堆垛機(jī)任務(wù);

DATA_BLOCK "DB_TSD_List"

   STRUCT

    Length_Header : Int;   // DB塊頭文件的長(zhǎng)度,工程師設(shè)定

     Length_Record : Int;   // 每一臺(tái)記錄的長(zhǎng)度,系統(tǒng)自動(dòng)計(jì)算

    Last_Task_Record : Int;   // 當(dāng)前存儲(chǔ)的記錄的位置,系統(tǒng)自動(dòng)計(jì)算

    Entries_Present : Int;   // 能存儲(chǔ)的最多數(shù)據(jù)的記錄

    Last_TaskID : DInt;   // 默認(rèn)的數(shù)據(jù)塊編號(hào)

     s_Done : Bool;   // 用于指示該數(shù)據(jù)塊正在被調(diào)用

    TSD : Array[1..5] of "UDT_TSD";

  END_STRUCT;

END_DATA_BLOCK

2.2.4數(shù)據(jù)鏈接(Link)

TIF,TST堆棧共有100組數(shù)組,TSD堆棧共有5組數(shù)組,當(dāng)收到一個(gè)新的任務(wù)的時(shí)候相關(guān)信息要保存到各自數(shù)據(jù)區(qū)域的哪一組里面呢?

類似疑問(wèn)就需要通過(guò)Link來(lái)解決,Link在堆垛機(jī)控制系統(tǒng)中主要有以下用途:

  • 當(dāng)接收到新的任務(wù)信息后,系統(tǒng)會(huì)生成一個(gè)新的Link編號(hào)并存放于數(shù)據(jù)塊中;

  • Link生成成功后基于Link編號(hào)生成其他數(shù)據(jù)(TIF,TST,TSD)的編號(hào)并通過(guò)Link編號(hào)進(jìn)行各類數(shù)據(jù)之間的橋接;

Link數(shù)據(jù)如下所示:

TYPE"UDT_Link"

   STRUCT

      TIF: Int;   // 任務(wù)信息編號(hào);

      TST: Int;   // 任務(wù)狀態(tài)編號(hào);

      TSD: Int;   // 任務(wù)距離編號(hào);

      Priority : Int;   // 優(yōu)先級(jí):確定任務(wù)執(zhí)行的先后順序,優(yōu)先級(jí)越高越先執(zhí)行;

   END_STRUCT;

END_TYPE

Priority:優(yōu)先級(jí),與TIF中的優(yōu)先級(jí)的值是一致的,在Link中主要用于生成當(dāng)前任務(wù)號(hào)(優(yōu)先級(jí)越高,該任務(wù)必須越先執(zhí)行);

注:優(yōu)先級(jí)僅限于當(dāng)前列表中未執(zhí)行任務(wù)的比較;

在PLC中實(shí)例化一個(gè)數(shù)據(jù)塊,名稱叫做DB_Link_List。該數(shù)據(jù)區(qū)域包括兩部分:數(shù)據(jù)塊頭文件與數(shù)據(jù)主體。

數(shù)據(jù)頭文件區(qū)域定義了數(shù)據(jù)區(qū)域的一些屬性,比如頭文件長(zhǎng)度,數(shù)據(jù)類型的長(zhǎng)度,當(dāng)前最大記錄數(shù)目等信息;

數(shù)據(jù)主體就是存放實(shí)際數(shù)據(jù)的區(qū)域,主要由100組UDT_TSD類型組成的數(shù)據(jù)列表,意味著數(shù)據(jù)區(qū)域最多可以同時(shí)存放100個(gè)堆垛機(jī)任務(wù);

DATA_BLOCK "DB_Link_List"

  STRUCT

     Length_Header : Int;   // DB塊頭文件的長(zhǎng)度,工程師設(shè)定

    Length_Record : Int;   // 每一臺(tái)記錄的長(zhǎng)度,系統(tǒng)自動(dòng)計(jì)算

    Last_Record : Int;   // 當(dāng)前存儲(chǔ)的記錄的位置,系統(tǒng)自動(dòng)計(jì)算

     Entries_Present : Int;   // 能存儲(chǔ)的最多數(shù)據(jù)的記錄

    Current_Record : Int;   // 當(dāng)前執(zhí)行的記錄編號(hào)

    Record_DB_Nr : Int;   // Link下面鏈接的其他數(shù)據(jù)DB塊編號(hào)

    s_Done : Bool;   // 用于指示該數(shù)據(jù)塊正在被調(diào)用

     DB_nr_Record :"UDT_Record_Nr";

    Link : Array[1..100] of "UDT_Link";

  END_STRUCT;

END_DATA_BLOCK

3 數(shù)據(jù)處理邏輯

數(shù)據(jù)關(guān)系的基本原則:一致性,同步性;

圖4 數(shù)據(jù)邏輯關(guān)系圖

優(yōu)先性:數(shù)據(jù)關(guān)系中Link是核心要素,當(dāng)收到新的Link生成請(qǐng)求后,只有在分配新的Link才能基于此Link生成其他Record(TIF/TST/TSD),即Link在數(shù)據(jù)管理中是最高級(jí)別的;

注:Link分配過(guò)程必須檢測(cè)分配的編號(hào)是否被占用,若占用則必須重新分配;

    同步性:當(dāng)系統(tǒng)請(qǐng)求刪除Link時(shí)候,必須先刪除TIF/TST/TSD成功后才能將Record鏈接的Link的數(shù)據(jù)刪除;

一致性:TIF/TST/TSD數(shù)據(jù)中的Link必須一致且三者的編號(hào)必須與Link中的相關(guān)Record號(hào)碼一致;

詳細(xì)的邏輯流程詳見(jiàn)下圖所示:

圖5 數(shù)據(jù)管理(生成/刪除)邏輯圖

4 控制系統(tǒng)框架以及實(shí)現(xiàn)

基于模塊化,標(biāo)準(zhǔn)化思維,PLC程序主要分為三個(gè)模塊:數(shù)據(jù)管理、設(shè)備控制以及通信(WMS/WCS)程序。

位置編碼是一種位置編碼與位置實(shí)際位置值之間轉(zhuǎn)換的算法,該算法是為控制系統(tǒng)中的三個(gè)模塊提供算法支持的。

圖6 堆垛機(jī)控制系統(tǒng)結(jié)構(gòu)圖

4.1 通信程序(WMS/WCS)

堆垛機(jī)的控制都是基于WMS/WCS的任務(wù)信息,所以PLC首要任務(wù)是和WMS/WCS建立通信鏈接并接收WMS/WCS的任務(wù)指令,這就是PLC控制系統(tǒng)中的通信模塊程序的任務(wù)。

此模塊程序?qū)MS/WCS的任務(wù)解析為通俗易懂的數(shù)據(jù),利用位置編碼算法將任務(wù)中的位置編碼轉(zhuǎn)換為用于控制算法的實(shí)際距離值,最終將這些數(shù)據(jù)分別存放在數(shù)據(jù)管理模塊中的TIF以及TSD序列中。

4.2 數(shù)據(jù)管理

數(shù)據(jù)管理模塊主要有以下幾項(xiàng)任務(wù):

  • 任務(wù)執(zhí)行前檢查并確保該任務(wù)的正確性,不正確的任務(wù)數(shù)據(jù)應(yīng)該得到清除或其他方式給予恰當(dāng)處理。

  • 監(jiān)視當(dāng)前任務(wù)的執(zhí)行狀態(tài),基于任務(wù)的狀態(tài)向WMS/WCS系統(tǒng)發(fā)送恰當(dāng)?shù)臓顟B(tài)反饋,比如任務(wù)完成信息,任務(wù)中斷信息或者設(shè)備故障等狀態(tài)信息。

  • 當(dāng)前任務(wù)執(zhí)行完成后基于任務(wù)優(yōu)先級(jí)搜索任務(wù)序列中的有效任務(wù)并將其激活為當(dāng)前任務(wù)。

  • 設(shè)備控制

堆垛機(jī)的設(shè)備控制主要為三個(gè)方向的位置定位控制,數(shù)據(jù)管理模塊會(huì)根據(jù)任務(wù)執(zhí)行狀態(tài)實(shí)時(shí)更新位置信息并反饋到驅(qū)動(dòng)控制器用于指導(dǎo)設(shè)備的位置及精度的控制。

設(shè)備運(yùn)行過(guò)程中信息,包括設(shè)備的狀態(tài),故障、某些邏輯的算法故障、當(dāng)前任務(wù)的執(zhí)行情況(完成、中斷或者暫停等)會(huì)實(shí)時(shí)寫入數(shù)據(jù)管理模塊,控制系統(tǒng)通過(guò)數(shù)據(jù)管理模塊將有效的信息(任務(wù)狀態(tài),設(shè)備狀態(tài)等)反饋到WMS/WCS用于整個(gè)存儲(chǔ)系統(tǒng)的數(shù)據(jù)分析,同時(shí)控制系統(tǒng)也會(huì)通過(guò)恰當(dāng)?shù)姆绞剑ū热鏗MI,SCADA)實(shí)現(xiàn)與操作者的人機(jī)信息交互。

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

基于數(shù)據(jù)管理的控制技術(shù)中管理的數(shù)據(jù)類型是倉(cāng)儲(chǔ)物流控制系統(tǒng)的全部的數(shù)據(jù),能實(shí)現(xiàn)堆垛機(jī)的全過(guò)程的信息化管理。該數(shù)據(jù)管理模式關(guān)注了每一個(gè)任務(wù)的全過(guò)程數(shù)據(jù),對(duì)于信息化管理要求高的企業(yè)也能滿足其要求。對(duì)于客戶的任務(wù)信息化的要求,只要在設(shè)計(jì)階段定義好數(shù)據(jù)的發(fā)送點(diǎn)以及數(shù)據(jù)的內(nèi)容,PLC能實(shí)時(shí)的將任務(wù)過(guò)程中的全部信息(任務(wù)信息、設(shè)備信息)從數(shù)據(jù)管理模塊收集起來(lái)并發(fā)送到指定設(shè)備。

同時(shí),應(yīng)用該技術(shù)可以讓W(xué)MS/WCS系統(tǒng)專注于數(shù)據(jù)的管理,對(duì)于設(shè)備控制層面的過(guò)程管理只需要和PLC做好相應(yīng)的信息接口,這樣WMS/WCS系統(tǒng)能更專業(yè),快速地處理數(shù)據(jù)并實(shí)現(xiàn)專業(yè)分工。

免責(zé)聲明:羅戈網(wǎng)對(duì)轉(zhuǎn)載、分享、陳述、觀點(diǎn)、圖片、視頻保持中立,目的僅在于傳遞更多信息,版權(quán)歸原作者。如無(wú)意中侵犯了您的版權(quán),請(qǐng)第一時(shí)間聯(lián)系,核實(shí)后,我們將立即更正或刪除有關(guān)內(nèi)容,謝謝!
上一篇:安全駕駛,有人在等你的快遞,也有人在等你回家
下一篇:葵花寶典!自動(dòng)化揀選的秘密(整箱揀選)
羅戈訂閱
周報(bào)
1元 2元 5元 10元

感謝您的打賞

登錄后才能發(fā)表評(píng)論

登錄

相關(guān)文章

2025-04-23
2025-04-11
2025-04-10
2025-04-01
2025-03-24
2025-03-21
活動(dòng)/直播 更多

倉(cāng)儲(chǔ)管理之全局視角:從入門到精通

  • 時(shí)間:2025-04-24 ~ 2025-05-16
  • 主辦方:馮銀川
  • 協(xié)辦方:羅戈網(wǎng)

¥:2080.0元起

報(bào)告 更多

2025年3月物流行業(yè)月報(bào)-個(gè)人版

  • 作者:羅戈研究

¥:9.9元