• 
    

    
    

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

      ?

      探討如何應(yīng)用數(shù)組嵌套結(jié)構(gòu)實現(xiàn)PLC數(shù)據(jù)塊有序編址

      2020-04-17 14:53楊擁軍
      科學(xué)與信息化 2020年3期
      關(guān)鍵詞:嵌套數(shù)組物流

      楊擁軍

      摘 要 文章提出了數(shù)據(jù)塊(DB)中數(shù)組(Array)和結(jié)構(gòu)(Struct)等復(fù)雜數(shù)據(jù)類型的嵌套在物流輸送線自控西門子PLC程序中的應(yīng)用方案,該方案在PLC數(shù)據(jù)塊中的用戶數(shù)據(jù)存儲地址與實際設(shè)備號之間建立了數(shù)學(xué)模型,實現(xiàn)有序編址。以卷煙物流高架倉庫PLC控制程序為實例介紹了具體的實現(xiàn)過程,并詳細(xì)介紹了西門子Step7中的實現(xiàn)數(shù)組與結(jié)構(gòu)的嵌套、利用指針尋址以及數(shù)據(jù)傳遞的方法。

      關(guān)鍵詞 數(shù)組;Struct;嵌套;物流;PLC

      引言

      在卷煙自動化物流控制系統(tǒng)中,信息流是不可或缺,需要同步傳遞的。PLC控制物流輸送時,運行參數(shù)、托盤條碼、物料品種等信息也同步傳遞。如何有序地存儲這些數(shù)據(jù),方法有很多。巧用數(shù)組和結(jié)構(gòu)這些復(fù)雜數(shù)據(jù)類型嵌套,是一個可行的方法[1]。

      1 數(shù)組和結(jié)構(gòu)的定義

      數(shù)組( Array)數(shù)據(jù)類型表示一個由固定數(shù)目的同一種數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu)。Array有時也被譯為“矩陣”。數(shù)組中的元素允許使用除了Array之外的所有數(shù)據(jù)類型。

      STEP7中復(fù)雜數(shù)據(jù)類型(Struct)表示一個由確定數(shù)目組件構(gòu)成的數(shù)據(jù)結(jié)構(gòu),組件的數(shù)據(jù)類型可能各不相同。

      嵌套的結(jié)構(gòu)就是指一個結(jié)構(gòu)作為另一個結(jié)構(gòu)的組件,結(jié)構(gòu)允許的嵌套深度可達(dá)6層。

      2 問題提出

      這幾百臺輸送機(jī)上需要傳遞的數(shù)據(jù)包含有多種基本數(shù)據(jù)類型,任務(wù)號、起始地址、目標(biāo)地址、件煙數(shù)量等為整形(INT),托盤條碼為雙整形(DINT),超長、超寬、超高等外型數(shù)據(jù)為布爾形(BOOL)。這幾千組數(shù)據(jù)如果直接在數(shù)據(jù)塊中順序建立和聲明,那將是非常大的工作量,程序維護(hù)起來非常困難[2]。

      3 解決思路

      數(shù)組( Array)和結(jié)構(gòu)(Struct)的嵌套可以很好地解決這個問題。具體做法是:建立一個Struct數(shù)據(jù)類型,分配固定長度的存儲區(qū)域,把需要傳遞的信息按照一定規(guī)則放在這一區(qū)域,每臺輸送機(jī)對應(yīng)一個Struct;

      然后再建立一個數(shù)據(jù)塊,聲明一維數(shù)組Array,數(shù)組的上下邊界包含設(shè)備的所有平面,使數(shù)組順序與設(shè)備編號一一對應(yīng),可以一個建立數(shù)學(xué)模型。如設(shè)備編號從3001開始,就定義ARRAY[3001..3500]。在Array內(nèi)嵌套剛建立的Struct數(shù)據(jù)類型,就能把存放地址排序分配了。需要傳遞信息時,利用POINTER型指針尋址,將上一個輸送機(jī)的Struct傳送到下一個的Struct,實現(xiàn)信息的批量傳遞。

      4 物流信息有序存儲及傳遞的功能實現(xiàn)

      4.1 搭建環(huán)境

      西門子S7系列PLC都有很強(qiáng)的數(shù)據(jù)存儲能力,為物流控制系統(tǒng)的信息流傳遞提供了很好的支撐。以西門子S7-300為例,實例說明數(shù)組在物流控制程序的應(yīng)用。

      4.2 建立數(shù)據(jù)塊,聲明一維數(shù)組Array

      插入一個數(shù)據(jù)塊,選擇復(fù)雜數(shù)據(jù)類型中的Array數(shù)組。數(shù)組以實際的設(shè)備平面號為邊界,比如生產(chǎn)線400多臺的輸送機(jī)平面號以3001為基準(zhǔn)平面號,就定義數(shù)組Array[3001..3500],抽象的數(shù)組更貼近實際生產(chǎn)現(xiàn)場,容易理解。

      由于數(shù)組內(nèi)的數(shù)據(jù)類型要求同一種數(shù)據(jù)類型元素,所以在數(shù)組內(nèi)再嵌套聲明一個Struct數(shù)據(jù)類型。自定義的Struct長度為20個字。在這20個字里再定義任務(wù)號、起始地址、目標(biāo)地址、品牌代碼、件煙數(shù)量(INT)、托盤條碼(DINT),超長、超寬、超高(BOOL)等外型數(shù)據(jù)。這樣就巧妙地將不同數(shù)據(jù)類型的幾千條信息都存放在一個數(shù)組Array里。

      4.3 數(shù)學(xué)模型的建立與地址邊界計算

      每臺設(shè)備的存放地址分配原則從建立數(shù)據(jù)塊的思路中可以得知,一個Struct表示存儲一臺設(shè)備的信息,每臺輸送機(jī)分配了20個字節(jié)。設(shè)備的平面號以3001起始,那么就以3001為基準(zhǔn)平面號。計算某臺設(shè)備的存儲地址時,以當(dāng)前設(shè)備平面號減去基準(zhǔn)平面號3001的差值,再乘以20,就是這臺設(shè)備的存儲起始字節(jié)邊界。

      當(dāng)設(shè)備編號為N,基準(zhǔn)平面號M,存儲起始字節(jié)邊界為S,那么

      S=(N-M)*20

      如設(shè)備3013,基準(zhǔn)平面號3001,則設(shè)備3013的存儲起始地址為:

      S=(3013-3001)*20=240,

      它的物料信息在DB50數(shù)據(jù)塊中的存放地址為DB50.dbw240,以DB50.dbw240為起始字節(jié),向后20個字。

      4.4 編寫功能塊,利用指針POINTER信息傳遞

      (1) 起始地址和目標(biāo)地址的計算

      建立一個FC塊,變量#EQU1_NO表示從哪臺設(shè)備傳遞;#EQU2_NO要傳遞給哪臺設(shè)備;#OFFSET表示基準(zhǔn)平面號;

      #EQU1_NO與基準(zhǔn)平面號#OFFSET的差值再乘以20,再乘以8,就是傳遞起始設(shè)備的起始地址位,地址存放在地址寄存器AR1中。

      #EQU2_NO與基準(zhǔn)平面號#OFFSET的差值再乘以20,再乘以8,就是傳遞目標(biāo)設(shè)備的起始地址位。地址存放在地址寄存器AR2中。

      (2) 利用POINTER指針進(jìn)行數(shù)據(jù)傳遞

      如上圖2,變量#DB_INFO表示數(shù)據(jù)塊DB50;變量#INFO_LENGTH表示地址區(qū)域長度;地址寄存器AR1和AR2存放著剛才計算出的要傳遞的起始地址和目標(biāo)地址的邊界。

      當(dāng)邏輯條件具備時,就會把前一臺設(shè)備存儲區(qū)域的第一位傳遞給當(dāng)前設(shè)備的對應(yīng)位。每傳遞一個字節(jié),地址寄存器AR1、AR2的POINTER指針者向后偏移1個字節(jié)。如此循環(huán)20次,將20個字節(jié)的數(shù)據(jù)都傳遞到下一個Struct。如圖3。

      (3) 功能的調(diào)用

      當(dāng)FC塊編寫完成后,在程序中可以調(diào)用FC塊,給變量賦值,當(dāng)條件具備時,設(shè)備3013的信息就傳遞到設(shè)備3014中。

      5 物流PLC編程中應(yīng)用數(shù)組嵌套結(jié)構(gòu)的優(yōu)點

      5.1 數(shù)據(jù)編址邏輯清晰,層次分明。

      采用復(fù)雜數(shù)據(jù)類型來存儲、可以在存儲地址與實際設(shè)備之間建立數(shù)學(xué)關(guān)系,實現(xiàn)了物流信息的有序存儲。解決了輸送生產(chǎn)線大批量設(shè)備在PLC中的信息編址的問題,這在卷煙自動化物流倉儲控制程序中實用性很強(qiáng)。

      5.2 程序結(jié)構(gòu)簡單

      通過Array與Struct的嵌套,解決了Array里只能有同一種數(shù)據(jù)類型元素的問題,使數(shù)據(jù)塊的聲明長度明顯減少。只需要聲明一次Struct數(shù)據(jù)類型就可以把所有設(shè)備的數(shù)據(jù)都涵蓋了。

      5.3 程序通用性和可擴(kuò)展性強(qiáng)

      數(shù)組在建立時的數(shù)據(jù)終始邊界就大于現(xiàn)有的設(shè)備數(shù)量。當(dāng)生產(chǎn)線增加或減少設(shè)備時,只需在主程序中插入調(diào)用語句即可,增強(qiáng)了程序的通用性和可擴(kuò)展性。

      6 結(jié)束語

      對于自動化物流系統(tǒng)來說,物流與信息流的同步傳遞是非常重要的。在存儲地址與實際設(shè)備之間建立數(shù)學(xué)模型,對于編寫大規(guī)模生產(chǎn)線PLC程序時非常有用。巧用數(shù)組(Array)與結(jié)構(gòu)(Struct)的嵌套,可能很好地解決大量數(shù)據(jù)信息的編址問題,實現(xiàn)了存儲地址與實際設(shè)備建立數(shù)學(xué)對應(yīng)關(guān)系,數(shù)據(jù)可以有序存儲與傳遞,減少了程序體積,也使程序的通用性的可擴(kuò)展性增強(qiáng)。

      參考文獻(xiàn)

      [1] 時文飛.數(shù)組式編程方法在PLC編程中的應(yīng)用[J].電氣傳動,2014, 44(1):85-87.

      [2] 李琦.數(shù)據(jù)結(jié)構(gòu)和指針在PLC編程中的靈活運用[C].中國儀器儀表學(xué)會第六次全國會員代表大會暨學(xué)術(shù)會議.中國儀器儀表學(xué)會第六次全國會員代表大會暨學(xué)術(shù)會議論文集.北京:中國儀器儀表學(xué)會,2003:124-126,130.

      猜你喜歡
      嵌套數(shù)組物流
      物流線上的毒品追蹤
      JAVA稀疏矩陣算法
      JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
      更高效用好 Excel的數(shù)組公式
      嵌套交易如何實現(xiàn)逆市盈利
      多參數(shù)最大、最小值嵌套問題的研究
      巧用嵌套交易實現(xiàn)逆市盈利
      表格在網(wǎng)頁中的靈活運用
      尋找勾股數(shù)組的歷程
      2009年本刊重點關(guān)注之物流展會、交流會
      文水县| 尖扎县| 哈巴河县| 洪雅县| 临朐县| 旺苍县| 大新县| 读书| 万年县| 阳春市| 会泽县| 上蔡县| 綦江县| 抚松县| 关岭| 磴口县| 龙海市| 定陶县| 芒康县| 奉贤区| 高陵县| 庆元县| 邹城市| 抚松县| 台东县| 梁河县| 榆林市| 庄河市| 大姚县| 时尚| 太仓市| 三亚市| 衡南县| 齐齐哈尔市| 龙泉市| 图木舒克市| 定襄县| 和龙市| 和政县| 高尔夫| 平塘县|