多个数字数组_三菱ST语言教学(2)——数组的使用
上一篇文章介紹了ST基本指令的用法,和聲明基本數(shù)據(jù)類型的標(biāo)簽,但標(biāo)簽除了可以聲明單個的基本數(shù)據(jù),還可以聲明多個數(shù)據(jù)構(gòu)成的數(shù)組(array),也可以聲明結(jié)構(gòu)體(struct)和功能塊(function block)。本文介紹數(shù)組的使用方法。
數(shù)組的建立
什么是數(shù)組呢?就我個人理解,數(shù)組就是一組相同類型的數(shù)據(jù)構(gòu)成的列表,它可以是一組開關(guān)量,可以是數(shù)字量,也可以是結(jié)構(gòu)體,在標(biāo)準(zhǔn)的ST語言中也可以是一組功能塊(三菱不支持)。
下面聲明一個包含100個位(bit)變量的數(shù)組:
聲明數(shù)組變量
點(diǎn)擊確定后數(shù)據(jù)類型顯示“bit(0..99)”。可以看到,與基本數(shù)據(jù)相比,建立數(shù)組只不過是在選擇數(shù)據(jù)類型時勾選數(shù)組對話框,并添加數(shù)量就可以了,確定后標(biāo)簽BitList代表的就是容量為100的位數(shù)組。
數(shù)組的賦值
那數(shù)組如何使用呢?先舉個簡單的例子:
圖中顯示的是對數(shù)組前10個變量直接進(jìn)行賦值,可以看到想要操作數(shù)組中的某一個變量,只要在標(biāo)簽BitList后面加上[x]就可以了,需要注意無論判斷還是賦值,x的值一定要在數(shù)組的范圍內(nèi),否則會引起PLC報錯。
常用方法
數(shù)組強(qiáng)大的地方在于,方括號內(nèi)除了直接寫數(shù)值,還可以使用整形的數(shù)字變量,這個特性配合case或者for指令,只要幾行代碼就可以實(shí)現(xiàn)多個變量同時操作。例如:建立一個容量為1000的字(word)數(shù)組,第一個元素為0,后面每一個元素都比前一個大3:
多變量按規(guī)則賦值
這段程序看起來很少,但是弄清楚工作的原理還是要稍微費(fèi)點(diǎn)時間的,數(shù)字量ii由1數(shù)到999共999次(省略by就默認(rèn)增量為1)。
當(dāng)ii=1時,執(zhí)行一次WordList[1]:=WordList[0]+3,WordList[0]并沒有進(jìn)行操作默認(rèn)值為0,WordList[1]=0+3=3;
當(dāng)ii=2時,執(zhí)行一次WordList[2]:=WordList[1]+3,WordList[2]=3+3=6;
。。。
。。。
當(dāng)ii=999時,執(zhí)行一次WordList[999]:=WordList[998]+3,WordList[999]=2994+3=2997;
仿真執(zhí)行一次,監(jiān)看數(shù)組WordList,驗(yàn)證是否這個操作是否被正確的執(zhí)行:
仿真運(yùn)行+監(jiān)看變量
可以看到,結(jié)果跟前面分析的一直,僅用3行程序完成了1000個變量賦值的任務(wù)目標(biāo)。
拓展
數(shù)組除了賦值還可以進(jìn)行搜索判斷,我們可以在上面的基礎(chǔ)上加大一下難度:分析上面的數(shù)組,將值是5的倍數(shù)的數(shù)組號依次存入新數(shù)組NumbList,由NumbList[1]開始存,并將數(shù)量存入NumbList[0]。
結(jié)果如圖,共有200個,分別是0,5,10,15...。
在原來的for循環(huán)后面增加了新的for循環(huán),由0至999遍歷上面生成的整個WordList數(shù)組,使數(shù)組中的每一個元素與5做除余(MOD為除余指令,前面的變量除以后面的變量取余數(shù)),將余數(shù)放入一個臨時變量里面,然后判斷這個這個余數(shù)是否為0,為0則值是5的倍數(shù),在1000次循環(huán)中,每次遇到余數(shù)為0時,NumbList[0]的值自身加1,并將它作為數(shù)組NumbList的組號記錄當(dāng)前判斷WordList的組號。兩個循環(huán)的外面增加了執(zhí)行條件,目的是讓循環(huán)只執(zhí)行一個周期,保證NumbList[0]的值是正確的。
總結(jié)
以上是生活随笔為你收集整理的多个数字数组_三菱ST语言教学(2)——数组的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么那么多人黑baby.在节目里的表现
- 下一篇: datax 持续数据同步_Datax 数