• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      軟件輔助FPGA實(shí)現(xiàn)安全監(jiān)控系統(tǒng)的方法研究

      2022-01-17 09:35:24朱懷宇
      自動化儀表 2021年10期
      關(guān)鍵詞:圖元組態(tài)頁面

      吳 婷,黃 超,朱懷宇

      (國核自儀系統(tǒng)工程有限公司,上海 200241)

      0 引言

      近年來,信息安全越來越受關(guān)注。軟件容易受到黑客和病毒的入侵,有軟件參與的系統(tǒng),必然會帶來不確定性。在安全領(lǐng)域,如核電站安全級儀控系統(tǒng)希望使用更安全的、沒有軟件參與的系統(tǒng)?,F(xiàn)場可編程門陣列(field programmable gate array,FPGA)芯片內(nèi)部是各種硬件電路的集合體,雖然可編程,但本質(zhì)是各種硬件電路的聯(lián)合運(yùn)行。FPGA搭建的系統(tǒng)在可靠性、可驗(yàn)證性、安全性上優(yōu)于基于CPU搭建的系統(tǒng)。由于FPGA具備高可靠性、易移植、可實(shí)現(xiàn)復(fù)雜功能的特性,其在核電站儀控系統(tǒng)中的應(yīng)用已成為必然趨勢[1]。

      目前,第三代核電站安全監(jiān)控系統(tǒng)是基于CPU的嵌入式操作系統(tǒng)所搭建的,可實(shí)現(xiàn)畫面顯示、數(shù)據(jù)處理、監(jiān)控系統(tǒng)診斷各項(xiàng)功能。本文所探索的、基于FPGA芯片搭建的安全監(jiān)控系統(tǒng),能替代基于CPU芯片的安全監(jiān)控系統(tǒng)。FPGA芯片可實(shí)現(xiàn)CPU芯片系統(tǒng)的功能:驅(qū)動液晶屏顯示和處理人機(jī)交互;負(fù)責(zé)安全監(jiān)控系統(tǒng)與儀控系統(tǒng)間的數(shù)據(jù)交互等。

      通過FPGA芯片進(jìn)行的電路設(shè)計(jì),是采用硬件描述語言來編程的。程序表達(dá)的是電路的真值表達(dá)式,通過查找真值表來實(shí)現(xiàn)其邏輯功能[2]。而硬件描述語言無法將電路與安全監(jiān)控畫面的布局和畫面監(jiān)控?cái)?shù)據(jù)準(zhǔn)確地表達(dá)出來。因此,需要一套組態(tài)軟件,來輔助FPGA芯片通過電路來實(shí)現(xiàn)畫面的監(jiān)控顯示功能。

      1 基于FPGA芯片的安全監(jiān)控系統(tǒng)

      1.1 安全監(jiān)控系統(tǒng)設(shè)計(jì)

      基于FPGA芯片的安全監(jiān)控系統(tǒng)是根據(jù)核電站安全級儀控系統(tǒng)需求所搭建的,需要滿足儀控系統(tǒng)的接口通信和實(shí)時(shí)數(shù)據(jù)存儲的需求。系統(tǒng)設(shè)計(jì)的主要組成部分如下。

      ①FPGA芯片:安全顯示系統(tǒng)的核心,負(fù)責(zé)所有畫面數(shù)據(jù)的解析、實(shí)時(shí)數(shù)據(jù)的運(yùn)輸和界面響應(yīng)。

      ②串口:外部接口,安全性高,負(fù)責(zé)接收和發(fā)送核電站安全級控制系統(tǒng)的實(shí)時(shí)數(shù)據(jù)。

      ③網(wǎng)口:外部接口,通信速度快,負(fù)責(zé)下裝組態(tài)生成的各類數(shù)據(jù)。

      ④DVI和VGA:顯示器接口,負(fù)責(zé)投屏顯示監(jiān)控系統(tǒng)的畫面。

      ⑤DDR3:快速內(nèi)存,負(fù)責(zé)緩存實(shí)時(shí)性顯示的畫面數(shù)據(jù),包括需實(shí)時(shí)顯示的變量數(shù)值。

      ⑥硬盤:固態(tài)硬盤,負(fù)責(zé)存放安全監(jiān)控系統(tǒng)中的各類配置數(shù)據(jù)。

      安全監(jiān)控系統(tǒng)的硬件系統(tǒng)是組態(tài)軟件設(shè)計(jì)時(shí)的限制條件。

      1.2 組態(tài)軟件設(shè)計(jì)

      一般工控領(lǐng)域的組態(tài)軟件通過直觀的交互式界面,提供圖形組態(tài)。其可分為兩個(gè)步驟:第一步是利用組態(tài)軟件提供的繪圖工具編輯工業(yè)控制系統(tǒng)的工藝畫面,形成靜態(tài)背景圖;第二步是綁定工藝畫面中圖形元素對象和數(shù)據(jù)變量,實(shí)現(xiàn)動畫連接,生成隨實(shí)時(shí)數(shù)據(jù)變化而變化的動態(tài)畫面[3]。

      而輔助FPGA芯片設(shè)計(jì)的組態(tài)軟件是獨(dú)立于基于FPGA芯片的安全監(jiān)控系統(tǒng)運(yùn)行的。其屬于安全監(jiān)控系統(tǒng),為FPGA提供安全監(jiān)控系統(tǒng)運(yùn)行所需的數(shù)據(jù),也就是FPGA芯片進(jìn)行靜態(tài)背景圖和動態(tài)畫面組幀所需要的數(shù)據(jù)。組態(tài)軟件在安全監(jiān)控系統(tǒng)未運(yùn)行(即離線)時(shí),通過網(wǎng)口設(shè)備將工程師組態(tài)生成的數(shù)據(jù)傳輸給FPGA裝置;同時(shí),芯片將所接收到的數(shù)據(jù)有序地存放到硬盤設(shè)備中。

      組態(tài)軟件需要解決三個(gè)方面的問題,分別是畫面顯示層組態(tài)、系統(tǒng)數(shù)據(jù)層組態(tài)和組態(tài)信息下裝。由于組態(tài)軟件所處的系統(tǒng)環(huán)境限制,軟件不同于組態(tài)王之類的通用組態(tài)軟件。為了能輔助FPGA實(shí)現(xiàn)安全監(jiān)控系統(tǒng)的功能,軟件必須緊密結(jié)合FPGA芯片功能特性和需求而進(jìn)行定制化設(shè)計(jì)和實(shí)現(xiàn)。

      2 畫面顯示層的組態(tài)

      2.1 畫面顯示的組成

      安全監(jiān)控系統(tǒng)由至少幾十幅畫面組成,各畫面之間存在跳轉(zhuǎn)關(guān)系和導(dǎo)航關(guān)系??梢詫⒚糠撁娣纸?,實(shí)現(xiàn)不同功能的、可在窗體上放置的可視化圖形“元件”稱之為一種部件。監(jiān)控系統(tǒng)的界面大多由以下的基本部件組成:數(shù)值顯示、圖形狀態(tài)顯示、報(bào)警燈顯示、趨勢圖形顯示、列表顯示、輸入框、按鈕以及各種工藝部件等。而安全監(jiān)控系統(tǒng)有一些特殊的部件:聯(lián)動的激活框、診斷的心跳轉(zhuǎn)動線、動態(tài)的狀態(tài)流向樹等。

      2.2 FPGA芯片實(shí)現(xiàn)畫面顯示的原理

      安全監(jiān)控系統(tǒng)中只有FPGA芯片,因此所有在視頻圖形陣列(video graphics array,VGA)顯示器上顯示的畫面都需要通過FPGA芯片來解決。VGA圖像顯示器是通過CRT逐行掃描或隔行掃描的方式實(shí)現(xiàn)顯示的,即輸入信號自顯示器屏幕上方開始,從左到右、從上到下逐行掃描[4]。圖像的基本組成單元是像素,所以圖像疊加顯示的實(shí)質(zhì)是在像素級為每個(gè)像素點(diǎn)選擇信號,完成像素點(diǎn)的定位(確定行、列位置)和圖像信號的輸出[5]。因此,只要提供安全監(jiān)控畫面中圖像的像素點(diǎn)的RGB值點(diǎn)陣式文件,F(xiàn)PGA芯片通過譯碼提供出圖像信號,可將各種顏色的點(diǎn)、線、面,乃至整個(gè)畫面顯示在液晶屏幕上。除了安全監(jiān)控畫面中的顯示需求外,在不帶操作系統(tǒng)的FPGA芯片的安全監(jiān)控系統(tǒng)中,鼠標(biāo)位置移動和點(diǎn)擊效果、光標(biāo)激活閃爍都需要FPGA芯片通過像素點(diǎn)組幀實(shí)現(xiàn)顯示。

      2.3 畫面顯示層組態(tài)方法

      根據(jù)FPGA芯片的實(shí)現(xiàn)需求,首先將所有顯示在安全監(jiān)控系統(tǒng)畫面中的每個(gè)部件分解成單個(gè)圖元,包括鼠標(biāo)的狀態(tài)、光標(biāo)。對圖元進(jìn)行分析,需要解決的問題可分為兩類:顯示和響應(yīng)。

      在顯示問題上,將所有畫面層圖元進(jìn)行抽象和分離,繪制圖元的矢量圖。通過組態(tài)軟件提供界面,工程師可直接選擇這些圖元;同時(shí),組態(tài)軟件提供對圖元的縮小和放大功能,且每個(gè)圖元類型均能分別設(shè)置基本屬性和動態(tài)屬性。在組態(tài)軟件中進(jìn)行畫面組態(tài)時(shí),軟件記錄下界面中的指定坐標(biāo)位置、區(qū)域大小和該區(qū)域需顯示的所有圖元集。FPGA根據(jù)記錄下的信息,找到相應(yīng)的圖元的像素點(diǎn)文件進(jìn)行重新組幀,并在對應(yīng)位置顯現(xiàn)出各個(gè)圖元。其中,圖元的像素點(diǎn)文件是整個(gè)圖元RGB值的集合文件,RGB對應(yīng)紅、綠、藍(lán)3個(gè)分量的一個(gè)M×N×3的3維矩陣,用一個(gè)8位二進(jìn)制數(shù)表示alpha、Red、Green和Blue值[5]。

      在響應(yīng)問題上,根據(jù)FPGA芯片狀態(tài)機(jī)的原理進(jìn)行分類,也就是根據(jù)部件的響應(yīng)處理方式來分類。部件類型可分為靜態(tài)顯示類、動態(tài)顯示類、聯(lián)動顯示類、顯示數(shù)字類、使能按鈕類、虛擬鍵盤按鈕類等。根據(jù)不同的類別,組態(tài)軟件提供不同的信息輸入框。FPGA對每個(gè)部件類型的處理都采用不同的算法庫。算法庫執(zhí)行器根據(jù)組態(tài)信息進(jìn)行調(diào)度,完成運(yùn)算數(shù)據(jù)的存取、指定算法塊的計(jì)算[6];通過解析和重新組幀,就能實(shí)現(xiàn)部件的動態(tài)功能。

      畫面組態(tài)最終將每副畫面作為一個(gè)組態(tài)單元,形成整頁的RGB像素矩陣文件,并對畫面中的靜態(tài)部件和動態(tài)部件作分別處理。靜態(tài)部件,如字、線、框,作為一個(gè)圖元,只有顯示功能。對于動態(tài)部件組態(tài),實(shí)現(xiàn)則比較復(fù)雜,需要標(biāo)記部件所對應(yīng)的變量地址、關(guān)聯(lián)部件或跳轉(zhuǎn)頁面等。這些數(shù)據(jù)在系統(tǒng)數(shù)據(jù)層組態(tài)中處理。

      3 系統(tǒng)數(shù)據(jù)層的組態(tài)

      3.1 顯示系統(tǒng)的數(shù)據(jù)組成

      安全監(jiān)控系統(tǒng)能夠通過畫面對核電站安全級控制系統(tǒng)運(yùn)行狀態(tài)的關(guān)鍵點(diǎn)進(jìn)行實(shí)時(shí)監(jiān)控,同時(shí)安全級控制系統(tǒng)也將實(shí)時(shí)響應(yīng)監(jiān)控系統(tǒng)界面操作所產(chǎn)生的觸發(fā)信號。因此,數(shù)據(jù)層主要負(fù)責(zé)安全監(jiān)控系統(tǒng)與安全級儀控系統(tǒng)之間實(shí)時(shí)數(shù)據(jù)的通信。

      3.2 FPGA芯片實(shí)現(xiàn)數(shù)據(jù)通信的方式

      FPGA芯片需要負(fù)責(zé)實(shí)時(shí)變量值的獲取和存儲,以及鼠標(biāo)點(diǎn)擊畫面后的動作解析和發(fā)送。DDR3是高速數(shù)據(jù)采集的首選方案[7]。因此在安全監(jiān)控系統(tǒng)的DDR3中,存放由串口周期性接收的變量實(shí)時(shí)值數(shù)據(jù)幀。界面的觸發(fā)動作根據(jù)發(fā)送數(shù)據(jù)的幀格式要求,由FPGA組幀后直接發(fā)送。

      3.3 系統(tǒng)數(shù)據(jù)層組態(tài)設(shè)計(jì)

      實(shí)時(shí)數(shù)據(jù)庫生成系統(tǒng)是組態(tài)軟件的基本組成部分,數(shù)據(jù)庫生成的關(guān)鍵是數(shù)據(jù)庫的結(jié)構(gòu)[8]。組態(tài)軟件設(shè)計(jì)了實(shí)時(shí)數(shù)據(jù)庫,分別為輸入數(shù)據(jù)表和輸出數(shù)據(jù)表。組態(tài)軟件提供人機(jī)交互的界面。以輸入數(shù)據(jù)為例,輸入數(shù)據(jù)通過串口上唯一確定的接收端口周期性獲得。通過SQL語句建立其數(shù)據(jù)結(jié)構(gòu):

      create table if not exists RvPoints (

      id int primary key,

      //序號

      PIDName varchar(32),

      //變量名稱

      Type varchar(10),

      //變量類型

      Size int,

      //變量大小

      Offset int,

      //變量地址

      FrameHeader varchar(10),

      //所在數(shù)據(jù)幀的幀頭

      FromPort int,

      //周期接收的端口號

      des varchar(20),

      //變量描述

      Sort int);

      //數(shù)據(jù)幀的排序號

      工程師根據(jù)實(shí)際串口連線和實(shí)際數(shù)據(jù)幀的接收順序,對數(shù)據(jù)表中各變量進(jìn)行組態(tài)編輯。輸出數(shù)據(jù)也是通過串口發(fā)送的,同樣有指定的串口和端口,以及發(fā)送后接收地址的信息。

      組態(tài)軟件通過輸入數(shù)據(jù)表,為實(shí)時(shí)數(shù)據(jù)區(qū)計(jì)算數(shù)據(jù)內(nèi)存大小,以及每個(gè)變量點(diǎn)對應(yīng)的偏移地址信息。根據(jù)輸出數(shù)據(jù)表,為每個(gè)輸出數(shù)據(jù)提供組態(tài)信息。輸入數(shù)據(jù)表和輸出數(shù)據(jù)表是動態(tài)部件對應(yīng)變量的組態(tài)信息來源。

      4 組態(tài)信息下裝

      4.1 下裝信息的分類

      組態(tài)工具在工程師站上運(yùn)行,需要在組態(tài)完成后將有效信息下裝到FPGA安全監(jiān)控系統(tǒng)中,以支持FPGA實(shí)現(xiàn)功能。以監(jiān)控畫面整體為實(shí)現(xiàn)目標(biāo),所需的信息如下。

      ①部件圖元數(shù)據(jù):畫面中所有顯示部件的RGB點(diǎn)陣像素值數(shù)據(jù)文件。

      ②頁面數(shù)據(jù):每幅頁面動靜態(tài)部件位置、大小,以及動態(tài)部件變量的組態(tài)信息。

      ③配置數(shù)據(jù):各類支持FPGA組幀的內(nèi)存地址索引表。

      4.1.1 部件圖元數(shù)據(jù)

      一個(gè)部件的圖元數(shù)據(jù)為一個(gè)RGB像素值數(shù)據(jù)文件。靜態(tài)部件因?yàn)橹挥幸粋€(gè)狀態(tài),因此只有一個(gè)圖元。而動態(tài)部件有多個(gè)運(yùn)行狀態(tài),因此每個(gè)部件都有多個(gè)圖元,其數(shù)據(jù)為一系列的RGB像素值數(shù)據(jù)文件。

      而相同類型的部件在各幅頁面上的大小不盡相同。FPGA一般不作復(fù)雜的運(yùn)算,需要組態(tài)軟件將同一類部件的、不同大小的RGB像素值數(shù)據(jù)文件分別進(jìn)行處理。

      4.1.2 頁面數(shù)據(jù)

      頁面由多個(gè)部件組成。頁面數(shù)據(jù)里存放的是本頁面中所應(yīng)顯示的部件類別、坐標(biāo)位置、大小。動態(tài)部件在多狀態(tài)下顯示的圖元內(nèi)存地址,以及對應(yīng)的變量顯示規(guī)則和實(shí)時(shí)變量在DDR3內(nèi)存中的地址。以模擬量顯示框?yàn)槔鼘儆陲@示數(shù)字類部件,部件類別的編號為xxx。組態(tài)軟件在界面提供人機(jī)交互區(qū)。模擬量顯示的頁面數(shù)據(jù)示例如表1所示。工程師可拖拽部件和調(diào)整選項(xiàng)等。

      表1 模擬量顯示的頁面數(shù)據(jù)示例Tab.1 Sample of page data displayed in analog quantity

      模擬量顯示部件的對應(yīng)變量可在頁面中組態(tài)填入,而在生成頁面數(shù)據(jù)時(shí),將被組態(tài)軟件處理成FPGA需要的變量內(nèi)存地址信息。發(fā)送字節(jié)數(shù)為實(shí)際下裝數(shù)據(jù)的長度。

      圖像數(shù)據(jù)在存儲器中的常規(guī)存儲方式是以從左至右、從上至下的順序按行緩存,與圖形掃描順次一致,即圖像的每一行像素?cái)?shù)據(jù)均按行存儲[9]。組態(tài)軟件也是從每幅頁面上按照行的方式,對各個(gè)部件根據(jù)圖層順序從上至下逐層掃描,生成圖像的RGB像素矩陣數(shù)據(jù)文件。另外,圖層層級越高的部件掃描刷新順序越往后排,這樣顯示頁面只顯示最后一層刷新到的彩色點(diǎn)。

      4.1.3 配置數(shù)據(jù)

      FPGA大多具有內(nèi)嵌的數(shù)據(jù)存儲器,用于存儲配置數(shù)據(jù)[10]。而組態(tài)軟件提供的配置數(shù)據(jù)是用于FPGA芯片查表的各類地址索引表。為了減少FPGA芯片的負(fù)擔(dān),不是所有的地址索引表都需要下裝到FPGA芯片裝置上,而是只提供下裝必須在安全顯示系統(tǒng)運(yùn)行時(shí)查表的地址索引表即可。運(yùn)行時(shí)不會發(fā)生實(shí)時(shí)變化的索引表,則盡可能直接寫到頁面數(shù)據(jù)中,不下裝到監(jiān)控系統(tǒng)。

      不需要下裝的索引表是需要支持頁面數(shù)據(jù)生成的。如表1所示,頁面數(shù)據(jù)需要部件圖元的圖像地址以及變量地址。而這些地址是指存儲在FPGA芯片裝置硬盤或DDR3里的地址,是組態(tài)軟件根據(jù)整個(gè)項(xiàng)目所包含的頁面和變量進(jìn)行整合排序后計(jì)算出的內(nèi)存地址。

      需要下裝的索引表是發(fā)送數(shù)據(jù)點(diǎn)的索引表。FPGA根據(jù)監(jiān)控系統(tǒng)的實(shí)時(shí)操作,對動作相關(guān)的變量進(jìn)行實(shí)時(shí)查表,并組幀發(fā)送。

      另外,系統(tǒng)實(shí)時(shí)顯示數(shù)據(jù),如鼠標(biāo)狀態(tài)、阿拉伯?dāng)?shù)字等系統(tǒng)級數(shù)據(jù),也都是組態(tài)軟件管理的圖元。因?yàn)檫@些數(shù)據(jù)也是運(yùn)行時(shí)實(shí)時(shí)變化的,需要根據(jù)索引表查詢,所以也需要下裝到FPGA芯片裝置中。

      4.2 組態(tài)和下裝

      4.2.1 組態(tài)下裝的準(zhǔn)備

      部件圖元數(shù)據(jù)、頁面數(shù)據(jù)和配置數(shù)據(jù)之間是有相互關(guān)聯(lián)性的。組態(tài)軟件在生成組態(tài)數(shù)據(jù)時(shí),需要考慮它們之間的相互依賴性,使最底層的最先生成。數(shù)據(jù)生成順序如圖1所示。

      圖1 數(shù)據(jù)生成順序Fig.1 Sequence of data generation

      4.2.2 下裝的方式

      如1.1節(jié)所述,F(xiàn)PGA芯片裝置系統(tǒng)中的硬盤和DDR3用于存儲數(shù)據(jù)。

      ①硬盤中存放大數(shù)據(jù)塊的數(shù)據(jù),如部件圖元數(shù)據(jù)、頁面數(shù)據(jù),配置數(shù)據(jù)等。

      ②DDR3中存放安全顯示系統(tǒng)實(shí)時(shí)需要的數(shù)據(jù),如實(shí)時(shí)數(shù)據(jù)區(qū)和當(dāng)前頁面所需的數(shù)據(jù)。

      因此,組態(tài)軟件只需要負(fù)責(zé)對硬盤進(jìn)行數(shù)據(jù)下裝。組態(tài)軟件生成的組態(tài)信息,按照用戶數(shù)據(jù)協(xié)議(user datagram protocol,UDP),通過網(wǎng)口下裝到FPGA芯片裝置硬盤上。DDR3中的數(shù)據(jù)由FPGA芯片負(fù)責(zé)讀取和存儲。

      4.2.3 安全下裝

      組態(tài)軟件向FPGA芯片裝置下裝數(shù)據(jù)時(shí),為了保證下裝數(shù)據(jù)的完整性,設(shè)計(jì)發(fā)送數(shù)據(jù)開始標(biāo)志和數(shù)據(jù)發(fā)送結(jié)束標(biāo)志的數(shù)據(jù)包,以保障數(shù)據(jù)幀的完整性。

      5 結(jié)論

      雖然組態(tài)軟件是安全監(jiān)控系統(tǒng)的輔助工具,但它作為關(guān)鍵性工具,必不可少?;贔PGA芯片的安全監(jiān)控系統(tǒng)有了組態(tài)軟件的輔助,使得此方案實(shí)現(xiàn)更加靈活、便捷,能夠?qū)崿F(xiàn)復(fù)雜度較高的監(jiān)控畫面。而以FPGA芯片替代CPU芯片,使用全硬件的方式實(shí)現(xiàn)安全領(lǐng)域的監(jiān)控系統(tǒng)是發(fā)展趨勢,不依賴任何嵌入式操作系統(tǒng),具有更長的生命周期。組態(tài)軟件的離線性能也保障了此方案的安全性。目前,本文研究的方法在國際上具有領(lǐng)先水平,能促進(jìn)軟件在更大范圍的應(yīng)用。

      猜你喜歡
      圖元組態(tài)頁面
      大狗熊在睡覺
      刷新生活的頁面
      一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運(yùn)用
      基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開發(fā)探討
      學(xué)術(shù)出版物插圖的編排要求(一):圖注
      聯(lián)鎖表自動生成軟件的設(shè)計(jì)與實(shí)現(xiàn)
      基于PLC和組態(tài)的智能電動擰緊系統(tǒng)
      PLC組態(tài)控制在水箱控制系統(tǒng)的應(yīng)用
      基于Qt繪圖系統(tǒng)的圖形應(yīng)用優(yōu)化研究與實(shí)現(xiàn)
      軟件(2016年12期)2016-02-13 05:58:14
      鑄造行業(yè)三維組態(tài)軟件的應(yīng)用
      文山县| 静宁县| 兰州市| 虹口区| 南昌市| 新田县| 洛宁县| 伊川县| 花莲市| 嘉义县| 双桥区| 务川| 武穴市| 中牟县| 虞城县| 新密市| 健康| 五指山市| 甘孜县| 西畴县| 临潭县| 桂林市| 筠连县| 松潘县| 南郑县| 阳高县| 鄂伦春自治旗| 开阳县| 屯昌县| 广昌县| 九台市| 东乌| 岳西县| 图们市| 静海县| 普兰县| 沾化县| 大名县| 黑水县| 呈贡县| 潜山县|