產(chǎn)品簡(jiǎn)介
6ES7340-1BH02-0AE0
SIMATIC S7-300,CP 340 通信處理器 帶有 20mA 接口(TTY) 包括項(xiàng)目組態(tài)包 在 CD 上
詳細(xì)介紹
6ES73401BH020AE0西門(mén)子CP340通信模塊
![]() | 6ES7340-1BH02-0AE0 SIMATIC S7-300,CP 340 通信處理器 帶有 20mA 接口(TTY) 包括項(xiàng)目組態(tài)包 在 CD 上 |
SIEMENS西門(mén)子
*,質(zhì)量保證,保修一年
專(zhuān)業(yè)銷(xiāo)售及維修西門(mén)子各類(lèi)工控自動(dòng)化配件;
:S7-200CN、S7-200SMART、S7-300、S7-400、 S7-1200、S7-1500、ET200、LOGO邏西門(mén)子可編程控制器輯控制模塊
西門(mén)子HMI人機(jī)界面:觸摸屏
西門(mén)子變頻器:MM420、MM430、MM440、G110、G120、6SE70
西門(mén)子工業(yè)以太網(wǎng):通訊網(wǎng)卡、通訊電纜、通訊接頭、總線連接器 工控機(jī)、交換機(jī)、自動(dòng)化軟件等系型號(hào)齊全,快速報(bào)價(jià),買(mǎi)我們的產(chǎn)品無(wú)憂所值,我們的產(chǎn)品都承諾質(zhì)保一年,讓您買(mǎi)的省心舒心,用的放心!
跟我一起玩200 smart PLC
關(guān)于數(shù)據(jù)的排序
之前,看到過(guò)論壇上的大俠們做過(guò)一些關(guān)于數(shù)據(jù)的排序程序段子,讓我記憶猶新的是阿鳴老師發(fā)帖的那個(gè)“冒泡法”程序。其中心思想是利用指針的地址偏移及循環(huán)指令特性,將一組準(zhǔn)備好了的數(shù)據(jù)逐個(gè)循環(huán)輪詢(xún)一次,每一個(gè)數(shù)據(jù)都進(jìn)行一次比較,如果大于了怎么樣,小于了又怎么樣的處理。前幾天論壇上又見(jiàn)到類(lèi)似的問(wèn)題,由季俠熱心地回復(fù)了編程思路,不知道那位網(wǎng)友是否已經(jīng)做出了該數(shù)據(jù)排序的程序。
今天晚上閑來(lái)無(wú)事,想起了那個(gè)問(wèn)題,打算再做一次。因?yàn)檫@個(gè)程序差不多已經(jīng)成為比較經(jīng)典的程序段子,編程思路與前面的前輩們比起來(lái)顯得不成熟的多了,難免的一些失誤,或者不足之處望包涵。
假設(shè),有10個(gè)數(shù)據(jù)(估計(jì)做這樣的程序都是以10個(gè)數(shù)據(jù)來(lái)比較排序的,可能是出于常人的習(xí)慣思維),數(shù)據(jù)地址假設(shè)是VW100開(kāi)始的,具體數(shù)據(jù)如下表所示:
編程思路:
1) 初始化所需要調(diào)用的數(shù)據(jù)區(qū)數(shù)據(jù),這步對(duì)于多次調(diào)用該程序段非常重要。
2) 定義數(shù)據(jù)排序起始指針地址,&VB100取指針的起始地址。
3) 利用循環(huán)指令,做9個(gè)數(shù)據(jù)的循環(huán),因?yàn)槭?0個(gè)數(shù)據(jù)比較9次循環(huán)就*可以將全部的數(shù)據(jù)比較完成逐個(gè)進(jìn)行數(shù)據(jù)的比較。
4) 一次,循環(huán)中先將2個(gè)數(shù)據(jù)比較,如果比較數(shù)據(jù)的結(jié)果VW100大于VW102,則,交換數(shù)據(jù)存儲(chǔ)地址的數(shù)據(jù),反之,不交換數(shù)據(jù)。
5) 無(wú)論怎樣均指針下移一個(gè)字的地址區(qū)后,循環(huán)返回到循環(huán)起始,再取小的數(shù)據(jù)與第三個(gè)數(shù)據(jù)進(jìn)行比較,比較結(jié)果仍然按第3步方式進(jìn)行排序。
6) 同樣的方式,直到循環(huán)9次,循環(huán)指令9次數(shù)到達(dá)后,跳出循環(huán)指令,并將比較結(jié)果單獨(dú)存放到的地址VW200中。
如果編輯的程序運(yùn)行結(jié)果VW200的數(shù)據(jù)地址中是48,說(shuō)明程序是按編程思路是可行的,當(dāng)然如果把這個(gè)程序稍加修改,也可以做成自己的數(shù)據(jù)排序庫(kù)文件,以方便今后遇見(jiàn)類(lèi)似的程序復(fù)制調(diào)用之需要,或者稍加修改后,將比較結(jié)果的大數(shù)據(jù)存放在VW200中,編程思路就是這樣的過(guò)程。
為了方便比較數(shù)據(jù),特在軟件系統(tǒng)塊中編輯了表中的數(shù)據(jù),圖示:
在主程序中編輯數(shù)據(jù)排序程序:為壓縮頁(yè)面將程序轉(zhuǎn)換為STL語(yǔ)言方式顯示
為檢測(cè)程序的比較運(yùn)行結(jié)果,新建一個(gè)“狀態(tài)圖表”將程序編譯、保存、下載到cpu,啟動(dòng)M0.0 = 1,監(jiān)控這些數(shù)據(jù)的變化規(guī)律,圖示:
程序運(yùn)行的結(jié)果VW200 = 48符合當(dāng)初的控制要求,當(dāng)然結(jié)果取指針的首地址VW100也是可以的。
實(shí)際上,類(lèi)似的程序很方便做比較大數(shù)或者小數(shù),區(qū)別僅僅是將取指針數(shù)據(jù)的比較的指令稍加變換,圖示:
重新編譯、保存程序,并將修改后的程序下載到cpu,驗(yàn)證結(jié)果,圖示:
驗(yàn)證結(jié)果VW200 = 120仍然符合比較大數(shù)據(jù)的需要。反過(guò)來(lái)看,如果需要比較更多的數(shù)據(jù),僅僅只需要將所需要的數(shù)據(jù)錄入后,通過(guò)按比較數(shù)據(jù)的個(gè)數(shù)減1的方式啟用循環(huán)指令,類(lèi)似的“冒泡法”比較編程適用于一串連續(xù)的數(shù)據(jù)區(qū)比較結(jié)果,所謂的“冒泡法”實(shí)際就是循環(huán)指令的循環(huán)。該程序適宜于那些風(fēng)機(jī)、泵類(lèi)運(yùn)行時(shí)間數(shù)據(jù)的比較,來(lái)判斷所需要啟動(dòng)風(fēng)機(jī)、泵的其中一個(gè)優(yōu)先啟動(dòng)條件。
注:
如果需要將此類(lèi)型的程序做成自己的庫(kù)文件形式或多次調(diào)用,則在調(diào)用該程序段前必須*行數(shù)據(jù)區(qū)的初始化操作,然后錄入新的數(shù)據(jù)再進(jìn)行比較,以免引起數(shù)據(jù)處理時(shí)的結(jié)果錯(cuò)亂。比如,利用M0.0的上升沿初始化數(shù)據(jù)區(qū),下降沿進(jìn)行數(shù)據(jù)的比較等方式。
6ES73401BH020AE0西門(mén)子CP340通信模塊