技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 順序功能圖圖形化組態(tài)軟件的設(shè)計(jì)開(kāi)發(fā)

順序功能圖圖形化組態(tài)軟件的設(shè)計(jì)開(kāi)發(fā)

時(shí)間:2008-12-10 11:37:09來(lái)源:dujing

導(dǎo)語(yǔ):?概述SFC的功能、組成和編程規(guī)則。介紹所開(kāi)發(fā)的SFC組態(tài)軟件的圖形系統(tǒng)的構(gòu)成。詳盡給出了SFC圖形系統(tǒng)的設(shè)計(jì)方案及其基于VC++的方案實(shí)現(xiàn)。
概述SFC的功能、組成和編程規(guī)則。介紹所開(kāi)發(fā)的SFC組態(tài)軟件的圖形系統(tǒng)的構(gòu)成。詳盡給出了SFC圖形系統(tǒng)的設(shè)計(jì)方案及其基于VC++的方案實(shí)現(xiàn)。實(shí)踐表明,依據(jù)這一方案設(shè)計(jì)實(shí)現(xiàn)的SFC組態(tài)軟件組態(tài)方式靈活、易于維護(hù)。 一、引言 順序功能圖(SFC)是一種圖形化的組態(tài)語(yǔ)言,主要應(yīng)用于工業(yè)過(guò)程控制上位策略組態(tài)程序的編寫(xiě),在PLC系統(tǒng)和系統(tǒng)上位組態(tài)軟件中廣泛使用。隨著4C技術(shù)的飛速發(fā)展和工業(yè)過(guò)程控制領(lǐng)域自動(dòng)化程度的日益提高,控制系統(tǒng)上位圖形化的編程模式也越來(lái)越受到用戶(hù)的青睞。開(kāi)發(fā)SFC組態(tài)軟件具有非?,F(xiàn)實(shí)的意義[1,2]。 二、SFC的功能和組成 SFC是采用圖形化的方法來(lái)描述一個(gè)控制程序的順序行為,基于Petri網(wǎng)和IEC848標(biāo)準(zhǔn)Grafce,但又做了必要的修改。將一個(gè)程序內(nèi)部組織加以結(jié)構(gòu)化,在保持其總貌的前提下將一個(gè)控制問(wèn)題分解為若干個(gè)可管理的部分,由“步”(ste [table][tr][td][/td][/tr][/table]p)和“轉(zhuǎn)換點(diǎn)”(transition)所組成,每個(gè)轉(zhuǎn)換點(diǎn)具有一定的邏輯條件。每一個(gè)步中所實(shí)現(xiàn)的功能可以用其他幾種語(yǔ)言,如FBD、LD、ST和IL來(lái)描述。 三、SFC組態(tài)軟件圖形系統(tǒng)的構(gòu)成 SFC為用戶(hù)提供了方便、快捷和直觀的圖形化編程模式,其圖形系統(tǒng)是整個(gè)組態(tài)軟件的核心所在筆者所開(kāi)發(fā)的SFC組態(tài)軟件圖形系統(tǒng)具備下面組成部分,如圖1所示。 [align=center][img=286,207]http://www.cechinamag.com/images/Article/0e5ad53a-ebc9-4e28-8b81-cc7024918685/s6.jpg[/img] 圖1 組態(tài)軟件圖形系統(tǒng)的構(gòu)成[/align] (1)視覺(jué)效果良好的編輯窗口。為了給用戶(hù)一個(gè)清新直觀的程序編寫(xiě)環(huán)境,編輯窗口應(yīng)當(dāng)給用戶(hù)一個(gè)良好的視覺(jué)效果。 (2)用戶(hù)工具欄。 (3)用戶(hù)右鍵快捷菜單。 (4)水平、垂直標(biāo)尺。水平及垂直標(biāo)尺的設(shè)置便于用戶(hù)在編輯器內(nèi)導(dǎo)航,同時(shí)具有整行選擇和整列選擇的功能。 四、SFC圖形系統(tǒng)設(shè)計(jì)方案 (一)語(yǔ)言元素管理模式的確定 SFC圖形系統(tǒng)的管理,主要是解決語(yǔ)言元素單體及宏體的添加、刪除、移動(dòng)等操作所帶來(lái)的對(duì)象管理問(wèn)題。有兩種模式可供選擇:一維線性模式和二維平面模式。在存儲(chǔ)管理上,都是使用鏈表和數(shù)組,區(qū)別在于根對(duì)語(yǔ)言元素對(duì)象的查找、定位的機(jī)制上。 1.一維線性模式 該管理模式下,全部的語(yǔ)言元素對(duì)象分布到幾個(gè)不同類(lèi)型的鏈表和數(shù)組中存儲(chǔ),查找、定位某個(gè)類(lèi)型的語(yǔ)言元素對(duì)象時(shí),直接使用鏈表本身和數(shù)組本身進(jìn)行操作:使用查找或遍歷的方法得到滿足條件的語(yǔ)言元素對(duì)象。這種模式節(jié)省內(nèi)存占用,程序?qū)崿F(xiàn)簡(jiǎn)便。但語(yǔ)言元素對(duì)象較多時(shí)運(yùn)行的效率不高。 2.二維平面模式 在這種管理模式下,除了將全部的語(yǔ)言元素對(duì)象分布到幾個(gè)不同類(lèi)型的鏈表和數(shù)組中存儲(chǔ)以外,還在內(nèi)存中建立一個(gè)“網(wǎng)格地圖”(GridMap)用以形成從各元素在編輯區(qū)域的顯示位置到其內(nèi)存分布的邏輯地址的映射。使用查找、定位某個(gè)類(lèi)型的語(yǔ)言元素對(duì)象時(shí)使用網(wǎng)格地圖在內(nèi)存中快速定位相應(yīng)的語(yǔ)言元素對(duì)象。這種模式占用較多的內(nèi)存;但當(dāng)語(yǔ)言元素對(duì)象較多時(shí)可大大提高了軟件運(yùn)行的效率,方便了對(duì)語(yǔ)言元素對(duì)象的管理。 考慮到軟件運(yùn)行中經(jīng)常出現(xiàn)用戶(hù)對(duì)語(yǔ)言元素的各種操作,對(duì)語(yǔ)言元素的內(nèi)存定位運(yùn)算非常頻繁,由此決定的軟件運(yùn)行的效率是一個(gè)很重要的指標(biāo),而一般的SFC程序規(guī)模通常不是很大,所以在本軟件中選擇和確定了使用二維平面式的語(yǔ)言元素管理模式。網(wǎng)格信息的圖形表征如圖2所示。 [align=center] [img=265,54]http://www.cechinamag.com/images/Article/0e5ad53a-ebc9-4e28-8b81-cc7024918685/s7.jpg[/img] 圖2 網(wǎng)格信息的圖形表征 [/align] 根據(jù)SFC的編程規(guī)則,每個(gè)網(wǎng)格最多只能存放3個(gè)語(yǔ)言元素。因此,將網(wǎng)格劃分為上、中、下3個(gè)部分,每個(gè)部分都存儲(chǔ)有關(guān)該處語(yǔ)言元素的2個(gè)重要的描述信息:該處語(yǔ)言元素的類(lèi)型及該處語(yǔ)言元素在相應(yīng)鏈表和數(shù)組中的索引值。 (二)基本語(yǔ)言元素的操作 1.語(yǔ)言元素對(duì)象的選擇、添加、刪除、屬性修改、單體及宏塊的移動(dòng) • 選擇操作:包括單擊、“橡皮筋”拖動(dòng)、通水平或垂直標(biāo)尺、編輯區(qū)域左上角的快捷按鈕等途徑實(shí)現(xiàn)。 • 添加操作:從語(yǔ)言工具箱中選擇某個(gè)語(yǔ)言元素,在客戶(hù)編輯區(qū)域內(nèi)單擊,即可在相應(yīng)的語(yǔ)言元素對(duì)象數(shù)組中添加一個(gè)新個(gè)體,自動(dòng)配置對(duì)象的某些數(shù)據(jù)(如網(wǎng)格位置坐標(biāo)、選擇狀態(tài)等)。 • 刪除操作:使用鍵盤(pán)、“編輯”菜單或右鍵快捷菜單可以實(shí)現(xiàn)選中對(duì)象的刪除。 • 屬性配置和修改:通過(guò)“屬性配置”修改“對(duì)話框完成語(yǔ)言元素的屬性配置和修改。 • 移動(dòng)操作:包括語(yǔ)言元素對(duì)象單體的移動(dòng)和多個(gè)對(duì)象構(gòu)成的宏體的移動(dòng)。由于SFC編程有著一定的規(guī)則,因此各語(yǔ)言元素之間的相對(duì)位置要遵守一套相當(dāng)復(fù)雜的規(guī)則(如兩個(gè)步不能直接相連等),不能夠隨意放置。因此,在設(shè)計(jì)上不但要對(duì)規(guī)則作全面的考慮,而且要以方便用戶(hù)操作為準(zhǔn)則。 2.“分支”及“匯合”元素的動(dòng)態(tài)伸縮 SFC語(yǔ)言元素中的“分支”( [table][tr][td][/td][/tr][/table]branch)及“匯合”(joint)元素具有不同于其他語(yǔ)言元素的特性。因?yàn)檫@兩種元素可以具有多個(gè)引出點(diǎn)(“分支”可以有多個(gè)分支點(diǎn),“匯合”可以有多個(gè)匯合點(diǎn)),所以在設(shè)計(jì)實(shí)現(xiàn)時(shí)應(yīng)當(dāng)使其具有動(dòng)態(tài)伸縮的功能。 (三)語(yǔ)言元素之間的自動(dòng)連接功能 SFC語(yǔ)言元素中的某些元素之間是可以直接連接的,即:設(shè)有任意兩個(gè)語(yǔ)言元素A、B,元素A在編輯區(qū)內(nèi)的網(wǎng)格坐標(biāo)位置為(x,y,z1),元素B在編輯區(qū)內(nèi)的網(wǎng)格坐標(biāo)位置為(x,y+1,z2)。其中z1、z2為網(wǎng)格內(nèi)的層次值(0,1,2分別表征上、中、下三個(gè)層次),z1、z2的取值使得A和B在網(wǎng)格圖上不直接相鄰。當(dāng)A、B滿足一定的條件時(shí),在A和B之間可以進(jìn)行直接連接。 SFC的多種語(yǔ)言元素之間都具有直接連接的性質(zhì)。本設(shè)計(jì)中采用規(guī)則庫(kù)算法,當(dāng)添加、移動(dòng)某個(gè)語(yǔ)言元素后,檢測(cè)該元素的上、下網(wǎng)格內(nèi)是否存在可以直接連接的元素;如果有則在兩個(gè)元素之間自動(dòng)形成。 (四)語(yǔ)言元素功能組 為提高用戶(hù)使用編程的效率,將若干個(gè)語(yǔ)言元素組合,構(gòu)成語(yǔ)言元素功能組,以宏塊的形式提供給用戶(hù)使用,如步—轉(zhuǎn)換功能組、分支—匯合功能組。通過(guò)設(shè)置組的規(guī)模得到包含有不同數(shù)量語(yǔ)言元素的功能組。 (五)長(zhǎng)連接功能 在用戶(hù)編程過(guò)程中,SFC語(yǔ)言元素的分布并非都是網(wǎng)格間直接相鄰的。例如,任意兩個(gè)語(yǔ)言元素A、B,A在編輯區(qū)內(nèi)的網(wǎng)格坐標(biāo)位置為(x,y,z1),B在編輯區(qū)內(nèi)的網(wǎng)格坐標(biāo)位置為(x,y+n,z2)(n≥2)。當(dāng)A、B之間滿足可連接條件時(shí),則在A、B之間可以構(gòu)成一個(gè)長(zhǎng)連接。 1.連接方向的判斷。根據(jù)用戶(hù)在連線起點(diǎn)元素的鼠標(biāo)輸入位置來(lái)判斷用戶(hù)要實(shí)現(xiàn)的連線的方向。無(wú)須將鼠標(biāo)輸入位置精確定位到元素的連接端子上,只需處于元素塊的上、下區(qū)域內(nèi)就可以由軟件自動(dòng)判斷用戶(hù)要實(shí)現(xiàn)的連線方向。 2.自動(dòng)判斷是否可以連接終點(diǎn)元素。當(dāng)確定了連接起點(diǎn)后,使用智能算法自動(dòng)判斷鼠標(biāo)當(dāng)前位置元素是否可為連接終點(diǎn)元素,并通過(guò)鼠標(biāo)光標(biāo)變形提示用戶(hù)。 3.可視化的連線設(shè)計(jì)。 4.用戶(hù)模糊輸入支持。 用戶(hù)無(wú)須將鼠標(biāo)輸入位置精確定位到元素的連接端子上,只需處于元素塊的上、下區(qū)域內(nèi)并確定后,就可以由軟件將連線精確連接到元素的上或下連接端子上。 (六)剪貼板功能和OLE拖放 為便于用戶(hù)的操作,提供了對(duì)SFC各語(yǔ)言元素的剪貼板和拖放功能支持,使用戶(hù)可以在多個(gè)SFC組態(tài)子窗口中方便快捷地實(shí)現(xiàn)數(shù)據(jù)傳輸和共享。 (七)文字注釋功能 在設(shè)計(jì)實(shí)現(xiàn)上將文字注釋功能與SFC語(yǔ)言元素功能分開(kāi)并分別管理。在顯示模式上,采用了兩個(gè)圖層:處于頂層的SFC語(yǔ)言元素層和處于底層的用戶(hù)注釋層,通過(guò)可選的圖層切換功能可以實(shí)現(xiàn)兩個(gè)圖層的顯示和隱藏。文字注釋功能包括添加、刪除、移動(dòng)、注釋等。在編輯區(qū)域內(nèi)對(duì)文字注釋進(jìn)行的操作不影響語(yǔ)言元素。 五、SFC[b]圖形系統(tǒng)基于VC++的實(shí)現(xiàn) [/b] 使用VC++語(yǔ)言實(shí)現(xiàn)組態(tài)方案。VC++所具有的高度友好的集成開(kāi)發(fā)環(huán)境和功能強(qiáng)大的大大提高了用戶(hù)進(jìn)行軟件開(kāi)發(fā)的效率。限于篇幅,在此只給出功能設(shè)計(jì)中一些較為重要的項(xiàng)目的VC++實(shí)現(xiàn)[3]。 (一)基本語(yǔ)言元素對(duì)象的構(gòu)造 使用C++描述,將語(yǔ)言元素抽象成C++類(lèi)。構(gòu)造1個(gè)基類(lèi)和7個(gè)由此基類(lèi)派生的子類(lèi),分別對(duì)應(yīng)于SFC中的7種基本語(yǔ)言元素。基類(lèi)CSFCComponent描述了圖形系統(tǒng)中的SFC語(yǔ)言元素的基本特性: Class CSFCComponent { Public: BYTE m_Grid Y;//網(wǎng)格坐標(biāo)X BYTE m_Grid X [table][tr][td][/td][/tr][/table];//網(wǎng)格坐標(biāo)Y Bool m_bSelected;//選擇狀態(tài) CSFCComponent(); virtual~CSFCComponent(); }; 步、轉(zhuǎn)換和跳轉(zhuǎn)3種語(yǔ)言元素具有較大相似性,除了繼承CSFCComponent的全部屬性外,還各自具有其他特有的屬性,以下以步的構(gòu)造為例。 步對(duì)象的構(gòu)造: Class CSFCSterx putlic CSFCComponent { public …//步對(duì)象的其他屬性 Void Draw(CDC* pdc,int index,int grid_width,,int grid_height); CSFCStep(); vitual~CSFCStep(); }; 并行分支、并行匯合、單行分支和單行匯合具有較大相似性。以下以并行分支的構(gòu)造為例。 Class CSFCParallelbranch public CSFCComponnet { Public Void Draw(CDC* pdc,int grid_width,int grid_height); BYTE m_GridNum;//跨越的格數(shù) CSFCParallelbranch(); virtual~CSFCParallelbranch(); }; 連接對(duì)象是一種較為特殊的對(duì)象,實(shí)現(xiàn)各語(yǔ)言元素之間的連接。如下構(gòu)造: Class CSFCLink { public void Draw(CDC* pdc,int grid_width,int grid_height); BYTE gridx;//所連接的語(yǔ)言元素的位置坐標(biāo); BYTE gridy_upper,gridy_lower;//所連接的語(yǔ)言元素上、下的位置坐標(biāo) BYTE layer_upper,layer_lower;//所連接的 語(yǔ)言元素的網(wǎng)格層次值: CSFCLink(); &nbs [table][tr][td][/td][/tr][/table]p; virtual~CSFCLink(); }; (二)語(yǔ)言元素對(duì)象二維平面管理模式的實(shí)現(xiàn) 構(gòu)造如下的數(shù)據(jù)結(jié)構(gòu)表征網(wǎng)格地圖中的網(wǎng)格信息。 Type def strict GRID_INFO { Selector component_type[3];//語(yǔ)言元素的類(lèi)型,3個(gè)元素分別表示網(wǎng)格的上、中、下3個(gè)層次; WORD array_index[3];//語(yǔ)言元素在其相應(yīng)類(lèi)型的鏈表或數(shù)組中的索引值,作為語(yǔ)言元素在內(nèi)存的邏輯地址使用,3個(gè)元素分別表示網(wǎng)格的上、中、下3個(gè)層次內(nèi)的語(yǔ)言元素在相應(yīng)數(shù)組中的索引值; }; 此網(wǎng)格地圖就構(gòu)成了從各元素在編輯區(qū)域的顯示位置到其內(nèi)存分布的邏輯地址的映射。其中selector為SFC語(yǔ)言元素選擇子,枚舉類(lèi)型,如下定義。 Typedef enum selector{ null,mouse_select,step,transition,parallel_branch,parallel_joint,alternative_branch,alternative_joint,jump,link,text step_transition_group,transition_step_group,alternative_group,text_move,text_rubberbcandselect,longlink_cut}; 當(dāng)用戶(hù)在SFC語(yǔ)言元素工具箱中選擇不同的語(yǔ)言元素時(shí),當(dāng)前選擇子變量取不同的值。 網(wǎng)格的集合即構(gòu)成網(wǎng)格地圖,網(wǎng)格地圖如下定義: GRID_INFO**m_GridMap 其程序?qū)崿F(xiàn)為: This->m_GridMap=(GRID_INFO**)::malloc(size of(void*)*this->m_gridy_num); for(int y=0;y<=this->m_gridy_num-1;y++) { this->m_GridMap[y]=(GRID_INFO*)::malloc(size of(GRID_INFO)*this->m_gridx_num); } //初始化格圖: for(y=0;y<=this->m_gridy_num-1;y++) { ::memset(this->m_GridMap[y],0,size of(GRID_INFO)*this->m_gridx_num); } (三)剪貼板功能和OLE拖放的實(shí)現(xiàn) 在SFC組態(tài)器工程中,實(shí)現(xiàn)了對(duì)SFC基本語(yǔ)言元素和文本注釋對(duì)象的剪貼板功能和OLE拖放,鑒于SFC基本語(yǔ)言元素和文本屬于兩種不同的范疇,因此對(duì)于其剪貼板及的操作采用了兩種不同的設(shè)計(jì)實(shí)現(xiàn)模式。文本的剪貼板及OLE操作采用Windows系統(tǒng)級(jí)定義的剪貼板格式實(shí)現(xiàn)進(jìn)程內(nèi)以及進(jìn)程之間的數(shù)據(jù)傳輸和共享,該技術(shù)已經(jīng)比較成熟,實(shí)現(xiàn)起來(lái)也較為簡(jiǎn)單;而對(duì)于基本語(yǔ)言元素所構(gòu)成的數(shù)據(jù)對(duì)象而言,其數(shù)據(jù)格式是自定義的,不在系統(tǒng)級(jí)剪貼板格式范疇內(nèi),需要使用自定義的數(shù)據(jù)傳輸格式[4]。 經(jīng)研究分析和實(shí)驗(yàn)得出結(jié)論:實(shí)現(xiàn)系統(tǒng)級(jí)剪貼板格式以外的數(shù)據(jù)共享,應(yīng)當(dāng)實(shí)現(xiàn)以下兩個(gè)關(guān)鍵環(huán)節(jié): (1)自定義一種剪貼板格式,用以標(biāo)識(shí)用戶(hù)要進(jìn)行的剪貼操作和存儲(chǔ)用戶(hù)數(shù)據(jù)區(qū)域在系統(tǒng)中的地址。 (2)實(shí)現(xiàn)共享數(shù)據(jù)生成者與使用者間的數(shù)據(jù)共享協(xié)議,對(duì)放入到剪貼板上的實(shí)體數(shù)據(jù)的格式進(jìn)行了自定義。 SFC組態(tài)器中的數(shù)據(jù)類(lèi)型多且內(nèi)容比較復(fù)雜,各元素之間要遵守嚴(yán)格的邏輯排序規(guī)則,在設(shè)計(jì)實(shí)現(xiàn)剪貼板和OLE拖放功能時(shí)要作全面的考慮。除了要將用戶(hù)當(dāng)前選中的SFC組件拷貝和剪切到剪貼板上外,還應(yīng)將拷貝和剪切前的元素連接及排序位置一同記錄到剪貼板上。以此為出發(fā)點(diǎn),在本工程中,自定義了一種名為“sfc_selected_components”的剪貼板格式。 在拷貝/剪切操作時(shí),按照下面步驟實(shí)施:①注冊(cè)剪貼板格式;②打開(kāi)剪貼板;③清空剪貼板;④根據(jù)要操作的對(duì)象數(shù)據(jù)計(jì)算要使用的全局內(nèi)存量;⑤釋放上次分配的內(nèi)存,分配本次操作所需的內(nèi)存;⑥存儲(chǔ)數(shù)據(jù);⑦關(guān)閉剪貼板。 OLE拖放技術(shù)的實(shí)現(xiàn)較剪貼板而言,其數(shù)據(jù)存取的原理基本相同,但形式更加簡(jiǎn)潔,主要體現(xiàn)在數(shù)據(jù)存儲(chǔ)的系統(tǒng)全局地址的傳遞的表達(dá)方式上有所不同。另外,OLE拖放協(xié)議相對(duì)簡(jiǎn)單,不涉及與其他數(shù)據(jù)類(lèi)型的兼容性問(wèn)題[5]。 (四)文字注釋功能 文字注釋對(duì)象如下構(gòu)造: Class CText { Public: CRect m_rec;//以滾動(dòng)大坐標(biāo)系為準(zhǔn),不以局部小坐標(biāo)系為準(zhǔn) DWORD text_color; LOGFONT if;//記錄文字顯示所使用的字體數(shù)據(jù) Bool m_bSelected;//是否選中:缺省false CPoint top_left;//記錄文字的左上角位置 CString text;//文字內(nèi)容,缺省為空 CRect jisuan_rect(CPoint,point,int hangshu,CString longest_str,CDC* pdc); Void draw(CDC* pdc); CText(); virtual~CText(); }; Class CSFCText public CText { public: void draw(CDC* pdc); CSFCText(); virtual~CSFCText(); } 文字注釋對(duì)象的復(fù)制、剪切和粘貼操作在CSF-CView的CopyText、CutText和PasteText函數(shù)中實(shí)現(xiàn)。 六、結(jié)束語(yǔ) 以上所述SFC組態(tài)軟件圖形系統(tǒng)的設(shè)計(jì)方案和基于VC++的實(shí)現(xiàn)都已在筆者開(kāi)發(fā)的“WorldFIP現(xiàn)場(chǎng)總線控制系統(tǒng)上位策略組態(tài)軟件”的SFC子系統(tǒng)中全部實(shí)現(xiàn),并已應(yīng)用于對(duì)WorldFIP現(xiàn)場(chǎng)總線控制系統(tǒng)的工程組態(tài)。實(shí)踐表明,依據(jù)這一方案設(shè)計(jì)實(shí)現(xiàn)的SFC組態(tài)軟件組態(tài)方式靈活、易于維護(hù),在人機(jī)界面上面向用戶(hù)、高度友好、簡(jiǎn)便直觀,大大提高了用戶(hù)組態(tài)編程的效率,具有較大的推廣和應(yīng)用價(jià)值。 參考文獻(xiàn) [1] 王錦標(biāo).現(xiàn)場(chǎng)總線和現(xiàn)場(chǎng)總線控制系統(tǒng)[J].化工自動(dòng)化及儀表,1997,(2). [2] 方來(lái)華,吳愛(ài)國(guó),何熠.組態(tài)軟件核心技術(shù)研究[J].化工自動(dòng)化及儀表,2004,(1). [3] 齊舒創(chuàng)作室.VC++6.0開(kāi)發(fā)技巧與實(shí)例剖析[M].北京:清華大學(xué)出版社,1999. [4] 新編WINDOWS API參考大全編寫(xiě)組.新編WINDOWS API參考大全[M].北京:電子工業(yè)出版社,2000. [5] 潘愛(ài)民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,1999.

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:35KV/A變電站遠(yuǎn)程測(cè)控系統(tǒng)

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊