国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      電機(jī)控制器的可視化編程方法及系統(tǒng)與流程

      文檔序號(hào):11250051閱讀:848來(lái)源:國(guó)知局
      電機(jī)控制器的可視化編程方法及系統(tǒng)與流程
      本發(fā)明涉及電工電子
      技術(shù)領(lǐng)域
      ,特別涉及一種電機(jī)控制器的可視化編程方法及系統(tǒng)。
      背景技術(shù)
      :目前,隨著軟件技術(shù)的發(fā)展,編程的方式除了傳統(tǒng)的文本編輯外,還有可視化編程??梢暬幊掏ㄟ^(guò)提供符號(hào)和視圖,可形象的表示每一步程序動(dòng)作,而程序動(dòng)作直接與所需步驟方法吻合,這種編程方式符合人類(lèi)的思維方式,所以,在電機(jī)的控制領(lǐng)域采用可視化編程可使得編程變得直觀清楚。電機(jī)的控制方式主要有脈沖型控制和總線(xiàn)型控制,這兩種方式都需要上位機(jī)發(fā)送脈沖或者命令,而利用上位機(jī)進(jìn)行相關(guān)操作時(shí),會(huì)使電機(jī)的布線(xiàn)復(fù)雜,成本增加,為避免這些弊端,可將相關(guān)控制邏輯通過(guò)編程寫(xiě)入控制器中,讓控制器自動(dòng)執(zhí)行,目前很多編程方式是采用專(zhuān)用編輯器進(jìn)行語(yǔ)法輸入,然后再編譯成二進(jìn)制文件燒寫(xiě)到控制器,這種編程方式需要工作人員熟悉程序的語(yǔ)法,程序結(jié)構(gòu),代碼序列等知識(shí),可是,很多一線(xiàn)工作人員是非專(zhuān)業(yè)編程人員或不會(huì)編程的人員,對(duì)有嚴(yán)格要求的文本程序編程知之甚少,所以,要求他們對(duì)控制器進(jìn)行專(zhuān)業(yè)編程操作,這無(wú)疑會(huì)增加工作人員的操作和調(diào)試?yán)щy,加重其工作負(fù)擔(dān),降低其工作效率。為解決文本程序編程帶來(lái)的困難,現(xiàn)有文獻(xiàn)具有人機(jī)交互界面的電機(jī)控制器設(shè)計(jì).徐正平,徐永森,匡海鵬.液晶與顯示.2012.27(4):515-52,提出采用陣列式鍵盤(pán)及l(fā)cd作為交互設(shè)備,通過(guò)按鍵,用戶(hù)可現(xiàn)場(chǎng)輸入代碼或參數(shù),操作過(guò)程中的信息將實(shí)時(shí)顯示在lcd上,但是采用這種方式的前提是用戶(hù)需要熟知代碼指令,編程方式不方便,不直觀。技術(shù)實(shí)現(xiàn)要素:為解決以上技術(shù)問(wèn)題,本發(fā)明提供一種電機(jī)控制器的可視化編程方法及系統(tǒng),使非專(zhuān)業(yè)編程人員或不會(huì)編程人員能自如地使用電機(jī)控制器,即采用該可視化編程方式,用戶(hù)只需根據(jù)應(yīng)用場(chǎng)景需要,列出相應(yīng)操作步驟、選取相關(guān)命令來(lái)完成編程,不需要用戶(hù)學(xué)習(xí)編程相關(guān)知識(shí)和記憶相關(guān)命令指令。本發(fā)明的電機(jī)控制器的可視化編程方法,包括可視化離線(xiàn)編寫(xiě)程序,將離線(xiàn)編寫(xiě)的程序?qū)懭肟刂破鞯拇鎯?chǔ)區(qū),運(yùn)行寫(xiě)入控制器的存儲(chǔ)區(qū)的程序;所述可視化離線(xiàn)編寫(xiě)程序包括:打開(kāi)可視化編程軟件,加載配置文件到內(nèi)存中,進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組,將動(dòng)態(tài)數(shù)組保存為第一自定義文件。優(yōu)選地,所述加載配置文件到內(nèi)存中,進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組,包括:從電機(jī)控制器的buffer讀出第二自定義文件,將第二自定義文件與內(nèi)存中的配置文件進(jìn)行對(duì)比,若第二自定義文件的文件格式與內(nèi)存中的配置文件的文件格式一致,則進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組。優(yōu)選地,所述加載配置文件到內(nèi)存中包括在內(nèi)存中采用包括以下自定義結(jié)構(gòu)體的結(jié)構(gòu)體成員來(lái)表示:離線(xiàn)編程結(jié)構(gòu)體,包含定義的命令集合、最大命令數(shù)和離線(xiàn)指針參數(shù);命令結(jié)構(gòu)體,包含命令字母、命令名稱(chēng)、選項(xiàng)段名和選項(xiàng);命令選項(xiàng)結(jié)構(gòu)體,包含選項(xiàng)值、選項(xiàng)名、數(shù)據(jù)默認(rèn)值、數(shù)據(jù)范圍最大值、數(shù)據(jù)范圍最小值和選項(xiàng)說(shuō)明。優(yōu)選地,自定義結(jié)構(gòu)體中所有結(jié)構(gòu)體成員采用嵌套型桶式散列儲(chǔ)存方式儲(chǔ)存。優(yōu)選地,采用嵌套型桶式散列儲(chǔ)存方式儲(chǔ)存包括,主存儲(chǔ)桶目錄表以命令字母為關(guān)鍵字,次存儲(chǔ)桶目錄表以各命令的選項(xiàng)值為關(guān)鍵字,分別將命令字母和選項(xiàng)值直接轉(zhuǎn)換為數(shù)字,轉(zhuǎn)換而得的數(shù)字與各自存儲(chǔ)桶目錄表中的存儲(chǔ)桶號(hào)對(duì)應(yīng),每個(gè)桶號(hào)對(duì)應(yīng)一個(gè)桶指針;主存儲(chǔ)桶目錄表中存放的指針數(shù)目為命令字母總數(shù),次存儲(chǔ)桶目錄表中存放指針數(shù)目為各命令所需選項(xiàng)值數(shù)目,每個(gè)指針對(duì)應(yīng)主或次存儲(chǔ)桶的第一個(gè)元素地址。優(yōu)選地,所述進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組包括:通過(guò)添加一條空白命令添加為編程命令,選定所需命令名稱(chēng),通過(guò)命令名稱(chēng)對(duì)應(yīng)的關(guān)鍵字找到其主桶指針,定位該主桶,然后再根據(jù)離線(xiàn)編程界面上選擇的選項(xiàng)所對(duì)應(yīng)的關(guān)鍵字,找到其子桶指針,顯示該子桶部分信息,將編程命令按順序存入一個(gè)動(dòng)態(tài)數(shù)組。優(yōu)選地,第一自定義文件的文件格式包括:文件頭、命令數(shù)和命令三部分;所述命令由命令字母、選項(xiàng)值、用戶(hù)設(shè)置數(shù)據(jù)值三部分封裝而成。優(yōu)選地,第二自定義文件的文件格式包括:文件頭、命令數(shù)和命令三部分;所述命令由命令字母、選項(xiàng)值、用戶(hù)設(shè)置數(shù)據(jù)值三部分封裝而成。優(yōu)選地,所述將離線(xiàn)編寫(xiě)的程序?qū)懭肟刂破鞯拇鎯?chǔ)區(qū)包括采用動(dòng)態(tài)分配內(nèi)存方式將第一自定義文件寫(xiě)入控制器的buffer或者寫(xiě)入控制器的eeprom,具體包括:控制器根據(jù)命令總數(shù)動(dòng)態(tài)分配命令buffer;設(shè)置指針變量i,其初始值為0;判斷命令是否寫(xiě)入完成;如完成,命令寫(xiě)入控制器內(nèi)存操作結(jié)束;若未完成,設(shè)置控制器命令指針i,寫(xiě)入命令,然后指針i=i+1,返回判斷命令是否寫(xiě)入完成的步驟。優(yōu)選地,所述運(yùn)行寫(xiě)入控制器的存儲(chǔ)區(qū)的程序包括:步驟一:判定離線(xiàn)暫停開(kāi)關(guān)是否使能,若使能,執(zhí)行步驟二,若不使能,執(zhí)行步驟四;步驟二:判定離線(xiàn)暫停輸入端口是否有效,若有效,則進(jìn)入步驟三,若無(wú)效,執(zhí)行步驟四;步驟三:翻轉(zhuǎn)離線(xiàn)自動(dòng)運(yùn)行開(kāi)關(guān)的狀態(tài);步驟四:判定離線(xiàn)自動(dòng)運(yùn)行開(kāi)關(guān)是否打開(kāi),若打開(kāi),則執(zhí)行離線(xiàn)命令,進(jìn)入步驟五,若沒(méi)打開(kāi),進(jìn)入步驟六;步驟五:判斷離線(xiàn)指針i是否小于離線(xiàn)命令數(shù)n,若小于,離線(xiàn)指針+1,若不小于,進(jìn)入步驟六;步驟六:判斷離線(xiàn)停止開(kāi)關(guān)是否使能,若使能,進(jìn)入步驟七,若不能使,進(jìn)入步驟九;步驟七:判斷離線(xiàn)停止端口輸入是否有效,若有效,進(jìn)入步驟八,若無(wú)效,進(jìn)入步驟九;步驟八:關(guān)閉離線(xiàn)自動(dòng)運(yùn)行開(kāi)關(guān);步驟九:結(jié)束。本發(fā)明的電機(jī)控制器的可視化編程系統(tǒng),包括上位機(jī)、電機(jī)以及它們之間的通訊接口:所述上位機(jī)裝載有可視化編程軟件,加載配置文件到內(nèi)存中,進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組,將動(dòng)態(tài)數(shù)組保存為第一自定義文件,將第一自定義文件通過(guò)通訊接口發(fā)送給電機(jī)的控制器;顯示運(yùn)行結(jié)果。所述加載配置文件到內(nèi)存包括在內(nèi)存中用以下自定義結(jié)構(gòu)體成員來(lái)表示:離線(xiàn)編程結(jié)構(gòu)體,包含定義的命令集合、最大命令數(shù)和離線(xiàn)指針參數(shù);命令結(jié)構(gòu)體,包含命令字母、命令名稱(chēng)、段名和命令選項(xiàng);命令選項(xiàng)結(jié)構(gòu)體,包含選項(xiàng)值、選項(xiàng)名、數(shù)據(jù)默認(rèn)值、數(shù)據(jù)范圍最大值、數(shù)據(jù)范圍最小值和選項(xiàng)說(shuō)明;所述第一自定義結(jié)構(gòu)體中所有成員采用嵌套型桶式散列儲(chǔ)存方式儲(chǔ)存;第一自定義文件的文件格式包括:文件頭、命令數(shù)和命令三部分;所述命令由命令字母、選項(xiàng)值、數(shù)據(jù)值三部分封裝而成;所述電機(jī)通過(guò)通訊接口接收上位機(jī)發(fā)來(lái)的第一自定義文件并存儲(chǔ)于電機(jī)控制器的存儲(chǔ)區(qū),電機(jī)控制器運(yùn)行其存儲(chǔ)區(qū)中的第一自定義文件所定義的程序,并將運(yùn)行結(jié)果通過(guò)通訊接口發(fā)送給上位機(jī);所述存儲(chǔ)于電機(jī)控制器的存儲(chǔ)區(qū)包括采用動(dòng)態(tài)分配內(nèi)存方式將第一自定義文件寫(xiě)入控制器的buffer或者寫(xiě)入控制器的eeprom。本發(fā)明利用電機(jī)控制器的可視化編程方式,工作人員無(wú)需清楚語(yǔ)法,程序結(jié)構(gòu),代碼序列等編程相關(guān)專(zhuān)業(yè)知識(shí),不需知道程序預(yù)處理、編譯、匯編、鏈接等操作在計(jì)算機(jī)或控制器中的具體執(zhí)行過(guò)程。只需根據(jù)應(yīng)用場(chǎng)景的執(zhí)行流程,在離線(xiàn)編程界面選擇所需命令,點(diǎn)擊相關(guān)命令控件即可,使得電機(jī)控制器的編程簡(jiǎn)單、清晰且直觀。附圖說(shuō)明圖1為本發(fā)明電機(jī)控制器的可視化編程方法流程示意圖;圖2為本發(fā)明電機(jī)控制器的可視化編程系統(tǒng)結(jié)構(gòu)示意圖;圖3為本發(fā)明可視化離線(xiàn)編寫(xiě)程序流程示意圖;圖4為本發(fā)明自定義結(jié)構(gòu)體關(guān)系示意圖;圖5為本發(fā)明寫(xiě)入控制器buffer流程示意圖;圖6為本發(fā)明從eeprom讀取離線(xiàn)指令到buffer的流程示意圖;圖7為本發(fā)明離線(xiàn)命令運(yùn)行處理流程示意圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明可視化編程方法的實(shí)施例與可實(shí)可視化編程系統(tǒng)的實(shí)施例之間的相應(yīng)實(shí)施方式可以相互引用。如圖1所示,本發(fā)明的電機(jī)控制器的可視化編程方法流程示意圖,包括可視化離線(xiàn)編寫(xiě)程序,將離線(xiàn)編寫(xiě)的程序?qū)懭肟刂破鞯拇鎯?chǔ)區(qū),運(yùn)行寫(xiě)入控制器的存儲(chǔ)區(qū)的程序。如圖2所示,本發(fā)明的電機(jī)控制器的可視化編程系統(tǒng)結(jié)構(gòu)示意圖,包括上位機(jī)、電機(jī)以及它們之間的通訊接口。上位機(jī)與電機(jī)之間通過(guò)通訊接口(比如:uart/rs485/can/ethernet等)連接,用戶(hù)通過(guò)上位機(jī)打開(kāi)可視化編程軟件,配置文件被自動(dòng)加載,進(jìn)入離線(xiàn)編程界面后,用戶(hù)可進(jìn)行編程或加載已有程序。所述上位機(jī)裝載有可視化編程軟件,加載配置文件到內(nèi)存中,進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組,將動(dòng)態(tài)數(shù)組保存為第一自定義文件,將第一自定義文件通過(guò)通訊接口發(fā)送給電機(jī)的控制器;顯示運(yùn)行結(jié)果;所述電機(jī)通過(guò)通訊接口接收上位機(jī)發(fā)來(lái)的第一自定義文件并存儲(chǔ)于電機(jī)控制器的存儲(chǔ)區(qū),電機(jī)控制器運(yùn)行其存儲(chǔ)區(qū)中的第一自定義文件所定義的程序,并將運(yùn)行結(jié)果通過(guò)通訊接口發(fā)送給上位機(jī);所述存儲(chǔ)于電機(jī)控制器的存儲(chǔ)區(qū)包括采用動(dòng)態(tài)分配內(nèi)存方式將第一自定義文件寫(xiě)入控制器的buffer或者寫(xiě)入控制器的eeprom。所述可視化離線(xiàn)編寫(xiě)程序流程如圖3所示,包括:打開(kāi)可視化編程軟件,加載配置文件到內(nèi)存中,進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組,將動(dòng)態(tài)數(shù)組保存為第一自定義文件。作為一種可實(shí)現(xiàn)方式,用戶(hù)打開(kāi)可視化編程軟件,加載配置文件到內(nèi)存中,根據(jù)編程需求選擇所需命令,設(shè)置相關(guān)數(shù)據(jù),所選命令相關(guān)信息和設(shè)置的數(shù)據(jù)信息將會(huì)被封裝成自定義命令數(shù)據(jù)結(jié)構(gòu),并儲(chǔ)存于一個(gè)動(dòng)態(tài)數(shù)組中,將動(dòng)態(tài)數(shù)組保存為第一自定義文件。然后第一自定義文件的命令數(shù)據(jù)將可能通過(guò)通訊接口下發(fā)給電機(jī)控制器,儲(chǔ)存于控制器buffer中,以便于進(jìn)行實(shí)時(shí)運(yùn)行與調(diào)試;或者儲(chǔ)存于控制器eeprom中,以便于進(jìn)行離線(xiàn)運(yùn)行。上述實(shí)現(xiàn)方式是針對(duì)所有程序命令都重新進(jìn)行編寫(xiě)的情況,但一般來(lái)說(shuō),電機(jī)控制器中的現(xiàn)有程序命令(屬于一種第二自定義文件)可能有部分或全部不適合本電機(jī),于是可能需要修改其中的部分或者全部命令,那么這時(shí)需要將該第二自定義文件讀出來(lái)進(jìn)行部分或者全部修改;甚至或者不經(jīng)修改(本發(fā)明將不做修改當(dāng)作一種特殊的程序編輯方式看待)直接存為一個(gè)動(dòng)態(tài)數(shù)組,將動(dòng)態(tài)數(shù)組保存為第一自定義文件。因而,作為另一種可實(shí)現(xiàn)方式,用戶(hù)打開(kāi)可視化編程軟件,加載配置文件到內(nèi)存中,進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組,包括:從電機(jī)控制器的buffer讀出第二自定義文件,將第二自定義文件與內(nèi)存中的配置文件進(jìn)行對(duì)比,若第二自定義文件的文件格式與內(nèi)存中的配置文件的文件格式一致,則對(duì)第二自定義文件進(jìn)行程序編輯并存入一個(gè)動(dòng)態(tài)數(shù)組。特別地,上位機(jī)本地可能存儲(chǔ)有電機(jī)控制器中的現(xiàn)有程序命令(屬于另一種第二自定義文件),也可以將上位機(jī)本地存儲(chǔ)的該現(xiàn)有程序命令進(jìn)行部分或者全部修改,甚至或者不經(jīng)修改直接存為一個(gè)動(dòng)態(tài)數(shù)組,將動(dòng)態(tài)數(shù)組保存為第一自定義文件。對(duì)于此種方式,也理應(yīng)屬于本發(fā)明保護(hù)范圍。一般來(lái)說(shuō),只要第二自定義文件的文件格式與內(nèi)存中的配置文件的文件格式一致,則說(shuō)明電機(jī)控制器采用了與配置文件相同的數(shù)據(jù)結(jié)構(gòu),修改第二自定義文件的方式具有良好的可調(diào)試性。例如,通過(guò)讀命令buffer可讀取控制器中儲(chǔ)存的離線(xiàn)程序,并將其顯示于離線(xiàn)編程界面,用戶(hù)可根據(jù)應(yīng)用場(chǎng)景需求進(jìn)行編程、調(diào)試,以及查看運(yùn)行效果。優(yōu)選地,第二自定義文件的文件格式包括:文件頭、命令數(shù)和命令三部分;所述命令由命令字母、選項(xiàng)值、用戶(hù)設(shè)置數(shù)據(jù)值三部分封裝而成。為調(diào)試方便,還可單獨(dú)運(yùn)行單條命令,運(yùn)行該命令,控制器的離線(xiàn)命令指針將指向當(dāng)前命令,然后運(yùn)行該命令。在實(shí)現(xiàn)電機(jī)控制器的可視化編程時(shí),可視化編程軟件的配置文件被加載到內(nèi)存中可采用三個(gè)自定義結(jié)構(gòu)體表示,分別為:離線(xiàn)編程結(jié)構(gòu)體:包括最大命令數(shù)、定義的命令集合和離線(xiàn)指針參數(shù);命令結(jié)構(gòu)體:包括命令字母、命令名稱(chēng)、選項(xiàng)段名和選項(xiàng);命令選項(xiàng)結(jié)構(gòu)體:包括選項(xiàng)值、選項(xiàng)名、數(shù)據(jù)默認(rèn)值、數(shù)據(jù)范圍最大值、數(shù)據(jù)范圍最小值和選項(xiàng)說(shuō)明。三個(gè)自定義結(jié)構(gòu)體的關(guān)系示意圖如圖4調(diào)試工具配置文件的自定義結(jié)構(gòu)體示意圖所示。其中定義的命令集合包含n個(gè)命令結(jié)構(gòu)體,選項(xiàng)段名包含m個(gè)命令選項(xiàng)結(jié)構(gòu)體。打開(kāi)可視化編程軟件,其配置文件的所有信息將自動(dòng)被加載到自定義結(jié)構(gòu)體中;對(duì)于自定義結(jié)構(gòu)體中所有成員可以采用常規(guī)關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行儲(chǔ)存,但此儲(chǔ)存方式不利于數(shù)據(jù)的管理,優(yōu)選地,所述自定義結(jié)構(gòu)體中所有成員采用嵌套型桶式散列儲(chǔ)存方式儲(chǔ)存。利用嵌套型桶式散列儲(chǔ)存方式儲(chǔ)存自定義結(jié)構(gòu)體時(shí),其主存儲(chǔ)桶目錄表以命令字母為關(guān)鍵字,次存儲(chǔ)桶目錄表以各命令的選項(xiàng)值為關(guān)鍵字,分別將命令字母和選項(xiàng)值直接轉(zhuǎn)換為數(shù)字,轉(zhuǎn)換而得的數(shù)字與各自存儲(chǔ)桶目錄表中的存儲(chǔ)桶號(hào)對(duì)應(yīng),每個(gè)桶號(hào)對(duì)應(yīng)一個(gè)桶指針(指向儲(chǔ)存桶的指針);主存儲(chǔ)桶目錄表中存放的指針數(shù)目為命令字母總數(shù),次存儲(chǔ)桶目錄表中存放指針數(shù)目為各命令所需選項(xiàng)值數(shù)目,每個(gè)指針對(duì)應(yīng)主或次存儲(chǔ)桶的第一個(gè)元素地址。在可視化編程界面進(jìn)行離線(xiàn)程序編輯時(shí),通過(guò)添加一條空白命令添加待編程命令,在命令下拉選項(xiàng)中(定義的命令集合)選定所需命令名稱(chēng),可視化編程軟件將通過(guò)命令名稱(chēng)對(duì)應(yīng)的關(guān)鍵字(命令字母),找到其主桶指針,定位該主桶,然后再根據(jù)離線(xiàn)編程界面上選擇的選項(xiàng)(命令選項(xiàng)),根據(jù)其對(duì)應(yīng)的關(guān)鍵字(選項(xiàng)值),找到其子桶指針,并在離線(xiàn)編程界面上顯示該子桶部分信息,如:選項(xiàng)名,數(shù)據(jù)默認(rèn)值,數(shù)據(jù)范圍最小值,數(shù)據(jù)范圍最大值,選項(xiàng)說(shuō)明等信息;添加的每條命令均按順序存入一個(gè)動(dòng)態(tài)數(shù)組中,在對(duì)命令進(jìn)行編輯(添加、刪除、上移和下移)時(shí),根據(jù)相關(guān)操作修改動(dòng)態(tài)數(shù)組即可。離線(xiàn)程序編輯完成后,離線(xiàn)程序可保存為第一自定義文件格式,該文件格式包括文件頭、命令數(shù)和命令。格式如下:文件頭(64byte)命令數(shù)n(4byte)命令(n×4byte)其中,每條命令由32比特構(gòu)成,每條命令是由查找該命令中的命令字母、選項(xiàng)值以及利用自定義類(lèi)的成員函數(shù)讀取到的用戶(hù)設(shè)置數(shù)據(jù)值三個(gè)部分封裝而成,其中,命令字母為1byte,選項(xiàng)值為1byte,數(shù)據(jù)值為2byte。具體數(shù)據(jù)幀結(jié)構(gòu)如下:命令字母定義一條命令的操作,數(shù)據(jù)類(lèi)型為char類(lèi)型。命令選項(xiàng)為命令的選項(xiàng),數(shù)據(jù)類(lèi)型為uint8類(lèi)型。命令數(shù)據(jù)為該命令的具體數(shù)據(jù),數(shù)據(jù)類(lèi)型為uint16類(lèi)型。所述將離線(xiàn)編寫(xiě)的程序?qū)懭肟刂破鞯拇鎯?chǔ)區(qū)包括采用動(dòng)態(tài)分配內(nèi)存方式將第一自定義文件寫(xiě)入控制器的buffer或者寫(xiě)入控制器的eeprom;或者將第一自定義文件保存在上位機(jī)本地;第一自定義文件可以覆蓋第二自定義文件,在某些特殊情況下也可以不覆蓋第二自定義文件。所述將第一自定義文件寫(xiě)入控制器的buffer具體包括:控制器根據(jù)命令總數(shù)動(dòng)態(tài)分配命令buffer;設(shè)置指針變量i,其初始值為0;判斷命令是否寫(xiě)入完成;如完成,命令寫(xiě)入控制器內(nèi)存操作結(jié)束;若未完成,設(shè)置控制器命令指針i,寫(xiě)入命令,然后指針i=i+1,返回判斷命令是否寫(xiě)入完成的步驟。如圖5所示,具體包括:步驟一:設(shè)置命令總數(shù),通過(guò)通信接口將數(shù)據(jù)下發(fā)到到控制器,控制器根據(jù)命令總數(shù)動(dòng)態(tài)分配命令buffer;步驟二:設(shè)置指針變量i,其初始值為0。步驟三:判斷命令是否寫(xiě)入完成。步驟四:如完成,命令寫(xiě)入控制器內(nèi)存操作結(jié)束。步驟五:若未完成,設(shè)置控制器命令指針i,寫(xiě)入離線(xiàn)命令,然后命令指針變量i=i+1,返回步驟三。所述運(yùn)行寫(xiě)入控制器的存儲(chǔ)區(qū)包括直接運(yùn)行buffer中的控制程序。所述將第一自定義文件寫(xiě)入控制器的eeprom具體包括,將離線(xiàn)程序?qū)懭肟刂破鱡eprom中,存儲(chǔ)在eeprom中的每條指令由32位構(gòu)成,分別是命令字母(1byte),選項(xiàng)值(1byte),數(shù)據(jù)值(2byte)。保存離線(xiàn)程序后,控制器可斷開(kāi)與上位機(jī)的通訊鏈接,通過(guò)重新上電,控制器自動(dòng)將eeprom中的離線(xiàn)程序讀取到buffer中,可實(shí)現(xiàn)離線(xiàn)程序自動(dòng)運(yùn)行,也可實(shí)現(xiàn)利用連接外部觸發(fā)信號(hào)或i/o的狀態(tài)變化觸發(fā)離線(xiàn)程序運(yùn)行,需要停止離線(xiàn)程序運(yùn)行時(shí),可通過(guò)連接外部觸發(fā)信號(hào)或傳感器來(lái)實(shí)現(xiàn)。優(yōu)選地,所述運(yùn)行寫(xiě)入控制器的存儲(chǔ)區(qū)包括將eeprom中的離線(xiàn)程序讀取到buffer中運(yùn)行,具體流程如圖6所示,包括:所述將eeprom中的離線(xiàn)程序讀取到buffer中運(yùn)行,可以采用以下方式:對(duì)eeprom中的離線(xiàn)程序分配固定大小的存儲(chǔ)空間,但此種方式會(huì)導(dǎo)致存儲(chǔ)空間的浪費(fèi)。但是,作為另一種優(yōu)選方式,采用動(dòng)態(tài)分配內(nèi)存大小的方式可實(shí)現(xiàn)按需分配,對(duì)控制器進(jìn)行初始化,從eeprom中讀取命令總數(shù),控制器根據(jù)該命令總數(shù)n動(dòng)態(tài)分配內(nèi)存大小,依次從eeprom中讀取所有離線(xiàn)命令到命令buffer。減少內(nèi)存浪費(fèi)。本發(fā)明采用動(dòng)態(tài)分配內(nèi)存大小的方式從eeprom讀取離線(xiàn)指令到buffer的流程圖如6所示。具體流程如下所示:步驟一:開(kāi)始,判斷buffer是否為空,如果不為空,進(jìn)入步驟二,如果為空,進(jìn)入步驟三;步驟二:釋放buffer;步驟三:動(dòng)態(tài)分配一個(gè)buffer空間;步驟四:判斷離線(xiàn)命令指針是否小于離線(xiàn)命令數(shù),如果小于,進(jìn)入步驟五,如果不小于,進(jìn)入步驟六;步驟五:寫(xiě)入buffer,離線(xiàn)命令指針加1,返回步驟四;步驟六:結(jié)束。特別地,作為一種特殊的方式,離線(xiàn)程序存入eeprom中,重新上電后,控制器可執(zhí)行該離線(xiàn)命令,離線(xiàn)命令處理流程如圖7所示:步驟一:控制器上電后,判定離線(xiàn)暫停是否使能,若使能,執(zhí)行步驟二,若不使能,執(zhí)行步驟四。步驟二:判定離線(xiàn)暫停輸入是否有效,若有效,則進(jìn)入步驟三,若無(wú)效,執(zhí)行步驟四。步驟三:翻轉(zhuǎn)離線(xiàn)自動(dòng)運(yùn)行狀態(tài)。步驟四:判定離線(xiàn)自動(dòng)運(yùn)行是否打開(kāi),若打開(kāi),則執(zhí)行離線(xiàn)命令,若沒(méi)打開(kāi),進(jìn)入步驟六。步驟五:判斷離線(xiàn)指針大小是否小于離線(xiàn)命令數(shù),若小于,離線(xiàn)指針+1,若不小于,進(jìn)入步驟六。步驟六:判斷離線(xiàn)停止是否使能。若使能,進(jìn)入步驟七,若不能使,進(jìn)入步驟九。步驟七:判斷離線(xiàn)停止輸入是否有效,若有效,進(jìn)入步驟八,若無(wú)效,進(jìn)入步驟九。步驟八:關(guān)閉離線(xiàn)自動(dòng)運(yùn)行。步驟九:結(jié)束。采用本發(fā)明的電機(jī)控制器的可視化編程方式,用戶(hù)只需在離線(xiàn)編程界面根據(jù)應(yīng)用場(chǎng)景需要選擇相關(guān)命令、設(shè)置所需參數(shù),將編輯完畢的程序?qū)懭肟刂破鲀?chǔ)存器中,然后運(yùn)行控制器存儲(chǔ)器中的程序即可實(shí)現(xiàn)對(duì)電機(jī)控制器相應(yīng)的操作。本發(fā)明可實(shí)現(xiàn)在線(xiàn)編程、調(diào)試以及單條命令執(zhí)行,便于工作人員的程序設(shè)計(jì)與調(diào)試。還可實(shí)現(xiàn)離線(xiàn)運(yùn)行功能,工作人員將應(yīng)用場(chǎng)景的邏輯程序流程寫(xiě)入控制器中,保存后斷開(kāi)與上位機(jī)的通訊連接,通過(guò)上電執(zhí)行或i/o的狀態(tài)變化去觸發(fā)和停止程序,以便適應(yīng)一些簡(jiǎn)單或固定邏輯的應(yīng)用場(chǎng)景。采用本發(fā)明方式,不需要特定且昂貴的上位機(jī),節(jié)省了成本,又不需要專(zhuān)業(yè)的編程知識(shí),電機(jī)控制器的編程簡(jiǎn)單、清晰且直觀。當(dāng)前第1頁(yè)12
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1