欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于soc的plc在線調(diào)試系統(tǒng)和方法

文檔序號:8921921閱讀:681來源:國知局
一種基于soc的plc在線調(diào)試系統(tǒng)和方法
【技術領域】
[0001]本發(fā)明涉及工業(yè)自動控制領域,具體地,涉及一種基于SOC的PLC在線調(diào)試系統(tǒng)和方法。
【背景技術】
[0002]隨著自動控制技術的發(fā)展,可編程邏輯控制器(PLC)已經(jīng)越來越多的應用在各個行業(yè)領域中,標準化水平越來越高。目前,已形成了 PLC控制器典型結構、編程語言、通信、用戶使用導則等系列國際標準(IEC61131)。其中,以編程語言標準(IEC61131-3)最為廣泛應用,大部分可編程控制器支持該標準的五種語言,包括IL、ST、LD、FBD和SFC,其中IL、ST為文本語言,LD, FBD, SFC為圖形化語言。
[0003]在實際應用中,要求在PLC控制系統(tǒng)調(diào)試時能模擬各種運行情況,檢驗程序設計的正確性及完備性。目前實現(xiàn)的PLC調(diào)試方案主要分為:離線調(diào)試和在線調(diào)試。
[0004]⑴離線調(diào)試
[0005]通常情況下,離線調(diào)試采用離線模擬仿真,并且離線模擬仿真功能一般只能在PLC后臺控制端實現(xiàn)。離線模擬仿真需要在PLC后臺控制端創(chuàng)建與該PLC具有類似功能的軟件模擬PLC。用戶將編寫的程序模擬下載到軟件模擬PLC,軟件模擬PLC按照指令功能模擬執(zhí)行用戶程序,在執(zhí)行過程中,用戶可以及時發(fā)現(xiàn)問題和修改用戶程序,達到調(diào)試的目的。
[0006]但離線調(diào)試存在如下缺點:
[0007]①離線調(diào)試需要PLC控制端創(chuàng)建與實際PLC功能完全相同的軟件模擬PLC,存在開發(fā)難度大、開發(fā)周期長和功能不完全一致的問題。
[0008]②軟件模擬PLC功能和真實的PLC產(chǎn)品功能存在同步問題。真實PLC產(chǎn)品功能升級或修改,軟件模擬PLC必須同步更新。如果沒有同步更新,在實際仿真過程中就會出現(xiàn)偏差或者錯誤,誤導用戶。
[0009]③離線調(diào)試的用戶程序還是需要在實際應用現(xiàn)場進一步的調(diào)試和修改。
[0010]⑵在線調(diào)試
[0011]在線調(diào)試通常是采用軟件斷點方式,通過在代碼中設置特征值的方式來實現(xiàn)的。當需要在某地址代碼處設置軟件斷點的時候,仿真器會先將此處代碼進行備份保護,然后將預先設定好的斷點特征值(一般為0x0000等不易與代碼混淆的值)寫入此地址,覆蓋原來的代碼數(shù)據(jù)。當程序運行到此特征值所在的地址時,PLC識別出此處是一個軟斷點,便會產(chǎn)生中斷。當取消斷點時,之前受保護的代碼信息會被自動恢復。
[0012]但此調(diào)試方法存在如下缺點:
[0013]①軟件斷點由于需要修改相應地址的值,所以一般只能設在RAM上。而隨著系統(tǒng)的代碼量越來越大,特別是在SOC系統(tǒng),擴充大容量的RAM勢必會增加產(chǎn)品的成本。
[0014]②現(xiàn)在很多系統(tǒng)直接在Flash上運行代碼,對于這種在Flash上運行代碼的系統(tǒng),若要設置軟斷點,則操作相當復雜,且耗時較大,還會折損Flash的壽命。

【發(fā)明內(nèi)容】

[0015]本發(fā)明的目的在于針對現(xiàn)有PLC調(diào)試系統(tǒng)實現(xiàn)方法的不足,設計一種資源少、易開發(fā)、速度快、可靠性高、適合SOC的在線調(diào)試系統(tǒng)和方法,實現(xiàn)PLC文本語言和圖形化語言的在線調(diào)試。
[0016]根據(jù)本發(fā)明提供的一種基于SOC的PLC在線調(diào)試方法,包括:
[0017]步驟I,上位機系統(tǒng)中的程序編譯模塊將待測試程序的代碼轉換成用戶程序的代碼輸出至SOC系統(tǒng)中的存儲器,所述用戶程序由預設的二進制代碼構成;
[0018]步驟2,上位機系統(tǒng)的第一調(diào)試模塊響應外部輸入向SOC系統(tǒng)中的嵌入式微處理器IP核發(fā)送調(diào)試指令或配置指令;
[0019]步驟3,所述嵌入式微處理器IP核響應所述配置指令對SOC系統(tǒng)中的PLC控制器IP核進行配置后返回步驟2,或響應所述調(diào)試指令在調(diào)試模式下控制所述PLC控制器IP核從所述存儲器中讀取并執(zhí)行所述用戶程序的二進制代碼,
[0020]執(zhí)行中遇到斷點或完成所述調(diào)試指令后所述PLC控制器IP核暫停執(zhí)行并向所述第一調(diào)試模塊發(fā)送反饋,返回步驟2 ;
[0021]其中,步驟3中所述PLC控制器IP核執(zhí)行所述用戶程序的二進制代碼時,同步與斷點信息列表中的斷點進行地址比對,若當前執(zhí)行的二進制代碼的地址與所述斷點信息列表中任一斷點地址相同,則暫停執(zhí)行并通過所述嵌入式微處理器IP核向所述第一調(diào)試模塊發(fā)送反饋。
[0022]作為一種實施例,所述步驟I之前還包括:
[0023]設置所述斷點信息列表,所述第一調(diào)試模塊輸出所述斷點信息列表至所述PLC控制器IP核的寄存器組中;
[0024]其中,所示斷點信息列表中每個斷點具有唯一的斷點地址。
[0025]作為一種實施例,所述配置指令包含增加/刪除斷點的指令,該指令中包含待增加/刪除的斷點所對應的斷點信息,
[0026]所述斷點信息包含該斷點的斷點ID和斷點地址;
[0027]所述步驟3還包括:
[0028]所述嵌入式微處理器IP核響應增加斷點的指令在所述PLC控制器IP核的地址列表中搜尋需增加的斷點的地址,若未搜尋到相同斷點,則將所述斷點信息增加至所述斷點信息列表,
[0029]所述嵌入式微處理器IP核響應刪除斷點的指令在所述PLC控制器IP核的地址列表中搜尋并刪除需刪除的斷點。
[0030]作為一種實施例,所述步驟3中所述反饋包含當前指針位置、當前斷點ID以及當前運行狀態(tài)。
[0031]作為一種實施例,步驟2中所述調(diào)試指令為執(zhí)行指令,或步越指令,或步入指令,或步出指令;
[0032]所述步驟3進一步包括:
[0033]所述嵌入式微處理器IP核響應所述執(zhí)行指令控制所述PLC控制器IP核從所述存儲器中讀取并執(zhí)行所述用戶程序的二進制代碼,直到遇到所述斷點或執(zhí)行完所述用戶程序的所有二進制代碼后停止執(zhí)行并向所述第一調(diào)試模塊發(fā)送反饋,
[0034]或,所述嵌入式微處理器IP核響應所述步越指令或步入指令執(zhí)行一個二進制級的單步,執(zhí)行完一個單步或遇到所述斷點后停止執(zhí)行并向所述第一調(diào)試模塊發(fā)送反饋,執(zhí)行所述步越指令時遇到調(diào)用函數(shù)直接越過,執(zhí)行所述步入指令時遇到調(diào)用函數(shù)則進入該調(diào)用函數(shù)中,
[0035]或,所述嵌入式微處理器IP核響應所述步出指令控制指針跳出所在的調(diào)用函數(shù)后,停止執(zhí)行并向所述第一調(diào)試模塊發(fā)送反饋;
[0036]其中,所述反饋均包含當前指針位置、當前斷點ID以及當前運行狀態(tài)。
[0037]作為一種實施例,所述配置指令包括復位指令,或暫停指令;
[0038]所述步驟3進一步包括:
[0039]所述嵌入式微處理器IP核響應所述復位指令控制所述PLC控制器IP核復位;
[0040]或,所述嵌入式微處理器IP核響應所述暫停指令暫停所述PLC控制器IP核的執(zhí)行,并向所述第一調(diào)試模塊反饋當前指針位置。
[0041]作為一種實施例,步驟3中所述反饋包含當前指針位置、當前斷點ID以及當前運行狀態(tài);
[0042]所述步驟2還包括:所述第一調(diào)試模塊根據(jù)所述反饋計算所述待測試程序的當前測試位置。
[0043]基于同一發(fā)明構思,本發(fā)明還提供一種基于SOC的PLC在線調(diào)試系統(tǒng),其特征在于,包括上位機系統(tǒng)和SOC系統(tǒng);所述上位機系統(tǒng)包括程序編譯模塊和第一調(diào)試模塊;所述SOC系統(tǒng)包括存儲器、嵌入式微處理器IP核、PLC控制器IP核;
[0044]所述程序編譯模塊用于:將待測試程序的代碼轉換成用戶程序的代碼輸出至SOC系統(tǒng)中的存儲器,所述用戶程序由預設的二進制代碼構成;
[0045]所述第一調(diào)試模塊用于:響應外部輸入向SOC系統(tǒng)中的嵌入式微處理器IP核發(fā)送調(diào)試指令或配置指令;
[0046]所述嵌入式微處理器IP核用于:
[0047]響應所述配置指令對SOC系統(tǒng)中的PLC控制器IP核進行配置,
[0048]響應所述調(diào)試指令在調(diào)試模式下控制所述PLC控制器IP核從所述存儲器中讀取并執(zhí)行所述用戶程序的二進制代碼,
[0049]所述PLC控制器IP核用于:
[0050]響應所述嵌入式微處理器IP核的控制從所述存儲器中讀取并執(zhí)行所述用戶程序的二進制代碼,
[0051]執(zhí)行中遇到斷點或完成所述調(diào)試指令后暫停執(zhí)行,并向所述第一調(diào)試模塊發(fā)送反饋;
[0052]其中,所述PLC控制器IP核執(zhí)行所述用戶程序的二進制代碼時同步與斷點信息列表中的斷點進行地址比對,在當前執(zhí)行的二進制代碼的地址與所述斷點信息列表中任一斷點地址相同的情況下,暫停執(zhí)行并通過所述嵌入式微處理器IP核向所述第一調(diào)試模塊發(fā)送反饋。
[0053]作為一種實施例,所述PLC控制器IP核包括一寄存器組;
[0054]所述第一調(diào)試模塊還用于:設置所述斷點信息列表,輸出所述斷點信息列表至所述PLC控制器IP核的寄存器組中;
[0055]其中,所示斷點信息列表中每個斷點具有唯一的斷點地址。
[0056]作為一種實施例,所述配置指令包含增加/刪除斷點的指令,該指令中包含待增加/刪除的斷點所對應的斷點信息,所述斷點信息包含該斷點的斷點ID和斷點地址;
[0057]所述嵌入式微處理器IP核用于:
[0058]響應增加斷點的指令在所述PLC控制器IP核的地址列表中搜尋需增加的斷點的地址,若未搜尋到相同斷點,則將所述斷點信息增加至所述斷點信息列表,
[0059]響應刪除斷點的指令在所述PLC控制器IP核的地址列表中搜尋并刪除需刪除的斷點。
[0060]作為一種實施例,所述反饋包含當前指針位置、當前斷點ID以及當前運行狀態(tài)。
[0061]作為一種實施例,所述調(diào)試指令為執(zhí)行指令,或步越指令,或步入指令,或步出指令;
[0062]所述嵌入式微處理器IP核用于:
[0063]響應所述執(zhí)行指令控制所述PLC控制器IP核從所述存儲器中讀取并執(zhí)行所述用戶程序的二進制代碼,直到遇到所述斷點或執(zhí)行完所述用戶程序的所有二進制代碼后停止執(zhí)行并向所述第一調(diào)試模塊發(fā)送反饋,
[0064]響應所述步越指令或步入指令執(zhí)行一個二進制級的單步,執(zhí)行完一個單步或遇到所述斷點后停止執(zhí)行并
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
香河县| 江北区| 吴江市| 东丰县| 田东县| 兴山县| 津南区| 泰宁县| 瓮安县| 滁州市| 广南县| 广德县| 迭部县| 额敏县| 长汀县| 新巴尔虎左旗| 凤山县| 郯城县| 新龙县| 綦江县| 石狮市| 阳城县| 洛阳市| 柳林县| 纳雍县| 漯河市| 临武县| 沙雅县| 四会市| 博湖县| 萝北县| 德江县| 巴楚县| 新化县| 霍州市| 尤溪县| 敦化市| 南陵县| 晋江市| 仙居县| 岚皋县|