應(yīng)用領(lǐng)域 | 電子 |
---|
6AV2124-1MC01-0AX0
SIMATIC HMI KP1200 精智版, 精智面板, 按鍵操作, 12“ 寬屏 TFT 顯示屏, 一千六百萬色, PROFINET 接口, MPI/PROFIBUS-DP 接口, 12MByte 項(xiàng)目組態(tài)存儲器, Windows CE 6.0, (Microsoft-Support 包含 安
![]() |
參考價(jià) | 面議 |
更新時(shí)間:2023-07-16 16:57:51瀏覽次數(shù):365
聯(lián)系我們時(shí)請說明是化工儀器網(wǎng)上看到的信息,謝謝!
6AV21241MC010AX0西門子KP1200精智面板
![]() | 6AV2124-1MC01-0AX0 SIMATIC HMI KP1200 精智版, 精智面板, 按鍵操作, 12" 寬屏 TFT 顯示屏, 一千六百萬色, PROFINET 接口, MPI/PROFIBUS-DP 接口, 12MByte 項(xiàng)目組態(tài)存儲器, Windows CE 6.0, (Microsoft-Support 包含 安全更新設(shè)置完畢) 可項(xiàng)目組態(tài)的低版本 WinCC 精智型 11 版 |
SIEMENS西門子
*,質(zhì)量保證,保修一年
專業(yè)銷售及維修西門子各類工控自動(dòng)化配件;
:S7-200CN、S7-200SMART、S7-300、S7-400、 S7-1200、S7-1500、ET200、LOGO邏西門子可編程控制器輯控制模塊
西門子HMI人機(jī)界面:觸摸屏
西門子變頻器:MM420、MM430、MM440、G110、G120、6SE70
西門子工業(yè)以太網(wǎng):通訊網(wǎng)卡、通訊電纜、通訊接頭、總線連接器 工控機(jī)、交換機(jī)、自動(dòng)化軟件等系型號齊全,快速報(bào)價(jià),買我們的產(chǎn)品無憂所值,我們的產(chǎn)品都承諾質(zhì)保一年,讓您買的省心舒心,用的放心!
數(shù)據(jù)結(jié)構(gòu) 算法 效率
一、問題背景
為了讓您更好的理解此貼,請先移駕看帖子
【萬泉河】我現(xiàn)在告訴你們不用M和T的程序好在哪里
中Zane版在44樓提出的問題,
本帖要說的就是IO地址沖突檢測,也就是IO地址性檢測中,“空間換時(shí)間”策略的應(yīng)用。
二、由來
在帖子[舊事]--初踏征途雖然實(shí)現(xiàn)了地址沖突檢測的功能,但由于對數(shù)據(jù)組織的倉促,以至于在做地址雷同查找操作時(shí)(查找歷史數(shù)據(jù)中是否已經(jīng)存在當(dāng)前的設(shè)定值),使用了遍歷存儲單元的方法,因此查找效率低下,當(dāng)IO點(diǎn)的規(guī)模越大,需要進(jìn)行的比較操作的次數(shù)越多。
當(dāng)時(shí)手頭有別的事情要做,也就沒有再深究。
原來的數(shù)據(jù)規(guī)劃如圖所示
數(shù)據(jù)塊DB中存儲了所有有有效的歷史數(shù)據(jù),每一批歷史數(shù)據(jù)由兩部分組成,A區(qū)(輸入I地址)數(shù)據(jù)(包含4個(gè)DWORD數(shù)據(jù))和B區(qū)(輸出O地址)數(shù)據(jù)(3個(gè)DWORD數(shù)據(jù)),第個(gè)DWORD包括IO地址的字節(jié)號WORD和位號WORD,圖示共有三批歷史數(shù)據(jù)、一批當(dāng)前數(shù)據(jù),
算法:分別把當(dāng)前批數(shù)據(jù)中的A區(qū)數(shù)據(jù)中的每個(gè)數(shù)據(jù)與每批歷史數(shù)據(jù)中A區(qū)中的每個(gè)數(shù)據(jù)做比較,當(dāng)前批數(shù)據(jù)中的B區(qū)數(shù)據(jù)中的每個(gè)數(shù)據(jù)與每批歷史數(shù)據(jù)中B區(qū)中的每個(gè)數(shù)據(jù)也做比較,如果數(shù)值相同,則使能輸出標(biāo)志Same。
上個(gè)周末看《算法(第4版》
3.4節(jié)的“散列表”(Hash Table),突然想起來可以把數(shù)據(jù)再重新組織一下,提高查找效率,于是有了此帖。
三、改進(jìn)
現(xiàn)將數(shù)據(jù)重新組織如下,IO地址格式為Byte.Bit,每個(gè)Byte有8個(gè)Bit,這里使用一個(gè)包含8個(gè)數(shù)據(jù)類型為INT元素的數(shù)據(jù)代表一個(gè)尋址字節(jié)Byte,在博途平臺下的PLC數(shù)據(jù)類型中我們新建一個(gè)名為BitsTable的數(shù)據(jù)類型,它包含一個(gè)數(shù)組,有8個(gè)INT類型的元素,我們將其默認(rèn)值設(shè)為“-1”(表示初始狀態(tài))而不是“0”;
另外我們在全局?jǐn)?shù)據(jù)塊DB中,建立一個(gè)包含元素類型為“BitsTable"的數(shù)組,并將其命名為”AddressTable",或者為“BytesTable"則更容易理解,
至此,我們建立了一個(gè)可以形象為如下圖所示的表格
四、算法描述
至此,我們再處理IO地址沖突檢測就方便多了,當(dāng)設(shè)定值Buffer中ByteSet和BitSet在合法范圍內(nèi)時(shí),如ByteSet=0,BitSet=3時(shí),我們只需要直接使用數(shù)組的索引首先找到AddressTable[0],再找到其中的元素BitsTable[3],即將對應(yīng)的ByteSet、BitSet值代入并判斷表達(dá)式”AddressTable[ByteSet].BitsTable[BitSet] = -1“是否成立(當(dāng)值為”-1“時(shí)表示此地址I0.3(以輸入I為例)未被使用,然后執(zhí)行如下語句:
AddressTable[ByteSet].BitsTable[BitSet] = BitSet; // set value of BitSet to BitsTable[BitSet]
ByteSet := -1;
BitSet := -1;
將BitSet值寫入對應(yīng)的數(shù)組元素,并將地址設(shè)定Buffer中的ByteSet和BitSet初始為”-1“,為下次地址輸入作準(zhǔn)備,如果再次輸入ByteSet=0,BitSet=3時(shí),
IF AddressTable[ByteSet].BitsTable[BitSet] = -1 THEN
#AddressAlreadyExists := TRUE; //output "AddressAlreadyExists" bit
算法簡圖如下:
功能塊FB的接口如圖,
塊內(nèi)做了兩個(gè)輔助功能,ResetChannel和ResetAllChannel,用來將”-1“賦值給BitsTable[]中的單個(gè)元素,和所有元素,對接口進(jìn)行修改后,還可以復(fù)位某個(gè)AddressTable[k],或者連續(xù)幾個(gè)
AddressTable[k] -- AddressTable[k+n],有興趣可自行更改。
6AV21241MC010AX0西門子KP1200精智面板