今天和同學(xué)們分享一個(gè)經(jīng)典PLC編程方法 - 冒泡法。
我第一次在工作中見到冒泡法是應(yīng)用在溫度排序當(dāng)中。設(shè)備由多個(gè)溫度探頭,需要實(shí)時(shí)顯示最高溫度和最低溫度以便于調(diào)節(jié)設(shè)備的蒸汽量。
當(dāng)時(shí)的PLC是S7-300,用的是STL語言。感覺語言精煉,短短幾行語句就把功能實(shí)現(xiàn)了,這也算是文本語言的魅力所在吧。
冒泡法 -通俗一點(diǎn)講,就是對(duì)一組數(shù)據(jù)進(jìn)行遞增或者遞減的排序的方法。其算法是,對(duì)相鄰兩個(gè)數(shù)據(jù)進(jìn)行比較,按照要求的大或小的要求,進(jìn)行位置調(diào)換,以達(dá)到排序的目的。
下面以5個(gè)數(shù)據(jù)的數(shù)組為例講解:
第1輪比較后可以看到,8作為最大數(shù)據(jù),被放在最后的位置。比較了4次(1+4=5).
第2輪比較后可以看到,6作為最大數(shù)據(jù),被交換到8的前面。比較了3次(2+3=5)
第3輪比較后可以看到,5作為最大數(shù)據(jù),被交換到6的前面。比較了2次(3+2=5)
第4輪比較后可以看到,3作為最大數(shù)據(jù),被交換到5的前面。比較了1次(4+1=5)
各位同學(xué)是不是很容易看出上面數(shù)據(jù)的關(guān)系。也就是,輪數(shù)+比較次數(shù) = 總共的數(shù)據(jù)個(gè)數(shù)。
這就是我們找到的關(guān)鍵點(diǎn),既然有次數(shù),那么在編程時(shí)候就會(huì)用到FOR循環(huán)指令。
下面給出流程圖:
根據(jù)流程圖給出SCL語言的編程過程:(n代表數(shù)組內(nèi)數(shù)據(jù)的個(gè)數(shù)?。?/p>
根據(jù)SCL編程思想,你自己嘗試寫一個(gè)程序吧!
審核編輯 :李倩
-
plc
+關(guān)注
關(guān)注
5016文章
13388瀏覽量
465433 -
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
26028 -
STL語言
+關(guān)注
關(guān)注
0文章
3瀏覽量
1213
原文標(biāo)題:教你學(xué)編程21 - PLC SCL語言編程 - 冒泡法應(yīng)用
文章出處:【微信號(hào):非標(biāo)設(shè)備自動(dòng)化設(shè)計(jì),微信公眾號(hào):非標(biāo)設(shè)備自動(dòng)化設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論