国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于三菱PLC間接尋址的循環(huán)結(jié)構(gòu)與排序算法實(shí)現(xiàn)

2019-02-07 05:37劉思遠(yuǎn)
無線互聯(lián)科技 2019年22期

劉思遠(yuǎn)

摘? ?要:三菱PLC中利用變址寄存器與其他的軟元件編號(hào)組合在一起可以方便地實(shí)現(xiàn)對(duì)多個(gè)數(shù)據(jù)的尋址操作,也稱間接尋址。在三菱PLC中結(jié)合間接尋址和其他指令可以實(shí)現(xiàn)類似C語言中的循環(huán)結(jié)構(gòu)和排序算法,這種編程方式更為簡(jiǎn)便和靈活,通用性強(qiáng),能幫助PLC編程人員掌握一些高級(jí)語言的基礎(chǔ)知識(shí)。文章基于三菱PLC間接尋址,對(duì)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)與排序算法進(jìn)行了分析。

關(guān)鍵詞:間接尋址;循環(huán)結(jié)構(gòu);排序算法

在實(shí)際的項(xiàng)目應(yīng)用當(dāng)中,在對(duì)多個(gè)數(shù)據(jù)進(jìn)行操作時(shí),經(jīng)常需要間接指定地址。所謂間接指定地址,就是區(qū)別于D0,D100等直接指定地址,而利用一個(gè)基準(zhǔn)地址和間接指定數(shù)來指向一個(gè)新的地址的操作。間接指定地址相比直接指定地址來說,指定的地址是可以變的,所以間接指定地址的操作又稱作變址操作[1]。變址寄存器結(jié)合其他的軟元件可以很方便地對(duì)一串?dāng)?shù)據(jù)進(jìn)行操作,類似于高級(jí)語言中的指針。

在高級(jí)語言中循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)之一,主要用到GOTO,DO while,F(xiàn)OR 3種語句[2]。在工控行業(yè)的可編程邏輯控制器(Programmable Logic Controller,PLC)控制中,很多問題都要用到循環(huán)語句,比如物流系統(tǒng)在一套產(chǎn)品入庫(kù)時(shí),需要產(chǎn)品按照指定要求實(shí)現(xiàn)自動(dòng)、循環(huán)入庫(kù)。三菱PLC中有FOR NEXT指令,但是在一些執(zhí)行機(jī)構(gòu)動(dòng)作的順序控制時(shí),F(xiàn)OR NEXT指令不能很好地實(shí)現(xiàn),此條指令更適合做簡(jiǎn)單的算法。利用判斷指令和變址寄存器可以很方便地嵌套到順序控制中去,實(shí)現(xiàn)對(duì)執(zhí)行機(jī)構(gòu)一些循環(huán)動(dòng)作的控制,這種編程思路借鑒了高級(jí)語言中的FOR語句。

排序也是PLC控制中經(jīng)常遇到的難題,比如智能制造生產(chǎn)管理系統(tǒng)下單后,設(shè)備按照訂單的編號(hào)大小進(jìn)行生產(chǎn),或者按照隨機(jī)的要求生產(chǎn),都要用到排序算法。三菱PLC中SORT指令是專門解決排序問題的,但是也有局限性,只能在程序中使用一次,不可重復(fù)使用。

本文以某智能制造生產(chǎn)系統(tǒng)中兩種典型的控制要求為模型,結(jié)合高級(jí)語言的知識(shí),以MES下單、訂單生產(chǎn)為例子,利用三菱PLC中的變址寄存器和其他指令實(shí)現(xiàn)循環(huán)和排序算法。

1? ? MES系統(tǒng)介紹

圖1為某智能制造生產(chǎn)系統(tǒng)的結(jié)構(gòu)。MES系統(tǒng)分配了固定地址的數(shù)據(jù)寄存器給PLC,用以存放訂單和產(chǎn)品的相關(guān)信息。圖2中給出了用戶下載訂單后,3個(gè)訂單的信息存入到PLC中的數(shù)據(jù)寄存器,上層為訂單的基本信息,下層為該訂單的產(chǎn)品信息,每個(gè)訂單的產(chǎn)品信息存入的是不同的數(shù)據(jù)寄存器,例如訂單10000的產(chǎn)品1編號(hào)存入D406,訂單10001的產(chǎn)品1編號(hào)存入的是D436,以此類推,下層界面會(huì)隨訂單的變化而變化。

2? ? 循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)

2.1? 循環(huán)語句

C語言中有4種循環(huán)語句:goto,while,do while,for語句。

For語句最簡(jiǎn)單的理解形式如下:for(循環(huán)變量賦初值,循環(huán)條件,循環(huán)變量增值),例如:FOR(i=1, i<100, i++)[3]。

利用三菱PLC中的條件判斷指令和變址寄存器再結(jié)合順控指令的跳轉(zhuǎn)即可以實(shí)現(xiàn)類似C語言中的for循環(huán)。所用到的指令為[Ld< z0 k100], incp z0,類似于C語言中的循環(huán)條件和循環(huán)變量增值。

2.2? 按照訂單編號(hào)循環(huán)生產(chǎn)的實(shí)現(xiàn)

訂單由MES系統(tǒng)下單到用戶的客戶端,用戶下載訂單后根據(jù)訂單編號(hào)依次進(jìn)行生產(chǎn),但由于產(chǎn)品種類及數(shù)量過多,在編寫系統(tǒng)的PLC程序時(shí),編程人員要反復(fù)大量地使用不同數(shù)據(jù)寄存器,十分繁瑣而導(dǎo)致容易出錯(cuò)。三菱PLC在處理此類問題時(shí)用順控指令結(jié)合變址寄存器能很快地實(shí)現(xiàn)條件的判斷和循環(huán)。

3? ? 排序的實(shí)現(xiàn)

3.1? 排序算法

C語言中排序算法大致分為比較算法和非比較算法。比較算法使用較多,基本上都是通過比較兩個(gè)數(shù)的大小來實(shí)現(xiàn),比如冒泡排序、快速排序和插入排序。冒泡排序是最經(jīng)典的排序算法,很適合初學(xué)者。

在MES下單系統(tǒng)中,訂單除了按照順序循環(huán)生產(chǎn)外,還存在優(yōu)先級(jí)的概念,即先生產(chǎn)哪一個(gè)訂單。在編寫此類問題的PLC程序時(shí),就要對(duì)多個(gè)數(shù)據(jù)進(jìn)行優(yōu)先級(jí)別的排序,可采用類似于高級(jí)語言的冒泡排序。用變址寄存器結(jié)合查詢指令SER排序可以很靈活地解決該問題。

3.2? 按照訂單優(yōu)先級(jí)進(jìn)行排序的實(shí)現(xiàn)

將3個(gè)訂單的優(yōu)先級(jí)存入D200~D203中。利用SER指令查找出3個(gè)數(shù)據(jù)中最小值的位置,以Z1分辨3個(gè)訂單的狀態(tài)(在MES系統(tǒng)中,訂單狀態(tài)寄存器為1時(shí)代表訂單等待生產(chǎn),2為正在生產(chǎn),3為取消訂單,4為生產(chǎn)完成);以Z2分辨當(dāng)前最小的是哪個(gè)數(shù)據(jù)并將其存入D211~D213中。

單個(gè)數(shù)據(jù)存入完畢后,將其值改變?yōu)镵101(MES系統(tǒng)中優(yōu)先級(jí)的最大值默認(rèn)為K100)并利用MES留有空余的D404,D434,D464判別該數(shù)據(jù)是否已經(jīng)被排序,當(dāng)所有數(shù)據(jù)被排序完成后停止程序的運(yùn)作。

該程序只是范例,在完整的程序中,還有更多的條件需要考慮,僅提供了大概的框架。

4? ? 結(jié)語

本文詳細(xì)地介紹了利用三菱PLC的變址寄存器實(shí)現(xiàn)某智能制造生產(chǎn)系統(tǒng)中對(duì)多個(gè)訂單的處理方法,包括訂單的自動(dòng)循環(huán)生產(chǎn)以及有訂單優(yōu)先級(jí)時(shí)該如何處理。

本文所提供的梯形圖參考程序借鑒了高級(jí)語言的循環(huán)結(jié)構(gòu)和排序算法,而目前工控行業(yè)對(duì)PLC編程人員掌握高級(jí)語言知識(shí)的能力要求越來越高,西門子TIA PROTAL中的SCL編程語言是根據(jù)C語言封裝的,在數(shù)據(jù)處理算法方面有很大優(yōu)勢(shì)。將三菱PLC間接尋址的編程思路靈活運(yùn)用,可以優(yōu)化程序,解決數(shù)據(jù)處理邏輯和算法時(shí)的一些難點(diǎn)。

[參考文獻(xiàn)]

[1]霍海波,范江波.基于三菱FX2N系列PLC軟元件數(shù)據(jù)實(shí)時(shí)改變與顯示設(shè)計(jì)[J].煙臺(tái)師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2006(1):31-36.

[2]馬學(xué)敏.計(jì)算機(jī)C語言循環(huán)語句的應(yīng)用研究[J].中國(guó)新通信,2016(17):87-88.

[3]王韜睿.三種簡(jiǎn)單排序算法及實(shí)現(xiàn)[J].通訊世界,2019(1):284-285.