| 注冊(cè)| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
潯之漫智控技術(shù)(上海)有限公司>>技術(shù)文章>>西門(mén)子6ES7953-8LP31-0AA0型號(hào)介紹

西門(mén)子6ES7953-8LP31-0AA0型號(hào)介紹

閱讀:457        發(fā)布時(shí)間:2021-12-9

西門(mén)子6ES7953-8LP31-0AA0

工作存儲(chǔ)器:

工作存儲(chǔ)器僅包含運(yùn)行時(shí)使用的程序和數(shù)據(jù)。RAM 工作存儲(chǔ)器集成在CPU中, RAM中的內(nèi)容通過(guò)電源模塊供電或后備電池保持。除了S7 417-4 CPU可以通過(guò)插入的存儲(chǔ)卡來(lái)擴(kuò)展工作存儲(chǔ)器外,其他PLC的工作存儲(chǔ)器都無(wú)法擴(kuò)展。

3.    裝載存儲(chǔ)器:

裝載存儲(chǔ)器是用于存放不包含符號(hào)地址分配或注釋(這些保留在編程設(shè)備的存儲(chǔ)器中)的用戶程序。裝載存儲(chǔ)器可以是存儲(chǔ)器卡、內(nèi)部集成的RAM或內(nèi)部集成的EPROM.

4.    保持存儲(chǔ)器:

保持存儲(chǔ)器是非易失性的RAM,通過(guò)組態(tài)可以在PLC掉電后即使沒(méi)有安裝后備電池的情況下,保存一部分位存儲(chǔ)器(M)、定時(shí)器(T)、計(jì)數(shù)器(C)和數(shù)據(jù)塊(DB)。在設(shè)置CPU參數(shù)時(shí)一定要要保持的區(qū)域。(注意:由于S7-400 PLC沒(méi)有非易失性RAM,即使組態(tài)了保持區(qū)域,再掉電時(shí)若沒(méi)有后備電池,也將丟失所有數(shù)據(jù)。這是S7-300 PLC 與S7-400 PLC 的重要區(qū)別)

1)     當(dāng)在step7 中執(zhí)行下裝(download)時(shí),會(huì)把編程設(shè)備中的用戶程序下裝到CPU的裝載存儲(chǔ)區(qū),同時(shí)會(huì)把運(yùn)行時(shí)使用的程序和數(shù)據(jù)寫(xiě)入工作存儲(chǔ)區(qū)(如OB1和數(shù)據(jù)塊)。

2)     若CPU沒(méi)有后備電池,當(dāng)系統(tǒng)斷電時(shí),在工作存儲(chǔ)器中定義了保持特性的數(shù)據(jù)塊會(huì)把數(shù)據(jù)寫(xiě)入保持存儲(chǔ)器中,上電后保持存儲(chǔ)器會(huì)把斷電時(shí)的數(shù)據(jù)寫(xiě)入到工作存儲(chǔ)區(qū), 保證了運(yùn)行數(shù)據(jù)斷電不丟失(過(guò)程如圖7-1中與箭頭所示)。

3)    若CPU沒(méi)有后備電池,當(dāng)系統(tǒng)斷電時(shí),系統(tǒng)存儲(chǔ)區(qū)中定義n的保持位存儲(chǔ)器(M)、定時(shí)器(T)和計(jì)數(shù)器(C))斷電時(shí)也會(huì)寫(xiě)入保持存儲(chǔ)器,恢復(fù)上電時(shí)斷電時(shí)的數(shù)據(jù)重新寫(xiě)入,保證了運(yùn)行數(shù)據(jù)斷電不丟失(如圖7-1中與箭頭所示)。

按照CPU 的裝載存儲(chǔ)器來(lái)分類:新型S7-300 CPU、標(biāo)準(zhǔn)型S7-300 CPU、帶內(nèi)置EPROM 的S7300 CPU,具體描述如下:

新型S7-300 CPU是指使用MMC卡作為其裝載存儲(chǔ)器的CPU,此類CPU不用安裝后備電池,免維護(hù)。由于新型S7300-CPU它不含內(nèi)置的裝載存儲(chǔ)器,因此必須使用MMC卡。新型的S7-300 CPU包括緊湊型 (即CPU31xC系列)和由標(biāo)準(zhǔn)型更新的新型CPU。任何程序的下載方式都直接保存到卡中, 沒(méi)有MMC卡,是無(wú)法把程序下載到CPU中的。

MMC卡需要用戶根據(jù)程序大小單獨(dú)訂貨,選型時(shí)建議大于CPU工作內(nèi)存,CPU313,CPU314,CPU315-2DP,CPU317-2DP 系列CPU的可插拔MMC卡大支持8 MB

為保證系統(tǒng)穩(wěn)定運(yùn)行,系統(tǒng)CPU應(yīng)避免長(zhǎng)時(shí)間滿負(fù)荷運(yùn)作,應(yīng)用程序CPU占用不宜過(guò)高。客戶需要在調(diào)試階段監(jiān)測(cè)應(yīng)用程序各個(gè)進(jìn)程線程占用情況,對(duì)占用過(guò)高的進(jìn)程線程進(jìn)行優(yōu)化。因CE自身不帶進(jìn)程線程系統(tǒng)占用查看工具,我們?cè)黾恿薃ppHelper助手工具方便客戶使用。

  在之前的技術(shù)文章《CE應(yīng)用程序助手簡(jiǎn)介》中簡(jiǎn)單介紹過(guò)英創(chuàng)AppHelper應(yīng)用程序助手,本文將詳細(xì)介紹AppHelper的使用方法。

  AppHelper查看方法

  客戶在自制底板上只要引出了網(wǎng)絡(luò),USBOTG,DEBUG調(diào)試串口,或板子其它串口任意之一便可以查看AppHelper信息。

  網(wǎng)絡(luò)方式

  通過(guò)telnet登錄上板子,運(yùn)行命令sysinfo,即可獲得AppHelper打印的進(jìn)程線程信息。

  telnet模式打印示例圖

  USBOTG方式

  使用AHC工具(使用方法見(jiàn)本文下一節(jié))配置AppHelper輸出為COM1。連接上板子USBOTG口,板子將以虛擬串口形式被PC識(shí)別。使用任意串口工具向該串口輸出任意三個(gè)字符(任意波特率),即可獲得AppHelper打印的進(jìn)程線程信息。

  USBOTG,DEBUG及其它串口打印示例圖

  DEBUG調(diào)試串口方式

  使用AHC工具(使用方法見(jiàn)本文下一節(jié))配置AppHelper輸出為DEBUG。連接板子的DEBUG串口,PC端使用任意串口工具,設(shè)置波特率115200,向DEBUG口輸出任意三個(gè)字符,即可獲得AppHelper打印的進(jìn)程線程信息。

  串口方式

  將底板上引出,且客戶應(yīng)用程序未使用的串口連接上PC。使用AHC工具(使用方法見(jiàn)本文下一節(jié))配置好串口號(hào)及波特率。PC端使用任意串口工具,用設(shè)定的波特率向該串口輸出任意三個(gè)字符,即可獲得AppHelper打印的進(jìn)程線程信息。

  AHC工具使用介紹

  AHC工具即AppHelper Config工具,用于設(shè)置AppHelper打印信息的輸出位置。有兩種辦法進(jìn)行設(shè)置。

  控制面板方式

  在板子控制面板中運(yùn)行AHC工具。

  選擇好輸出信息的串口及波特率(其中COM1為USBOTG),點(diǎn)擊OK鍵保存配置,板子重啟后配置生效。

  telnet方式

  通過(guò)telnet登錄上板子,執(zhí)行命令A(yù)HC port [baud]

  參數(shù)port:串口號(hào),值為0-6,0表示DEBUG串口,1表示USBOTG轉(zhuǎn)虛擬串口,2-6分別表示板子的COM2-COM6。

  參數(shù)baud:波特率,可選參數(shù),如果不填表示保持原波特率,支持1200,2400,4800,9600,19200,38400,57600,115200。當(dāng)port為0時(shí),baud固定為115200,當(dāng)port為1時(shí),baud值不生效。

  命令執(zhí)行后,DEBUG口可以看到打印提示信息。

  打印格式說(shuō)明

  打印結(jié)果為數(shù)行,其中每行的格式均為:類型 ID號(hào) 占用情況 名稱

  以下圖一次打印的部分截圖為例:

  類型

  PID表示為process進(jìn)程。TID表示為上面進(jìn)程下的thread線程。

  ID號(hào)

  即進(jìn)程ID值或線程ID值。

  占用情況

  顯示格式為 K n% U m% total%

  n值為該進(jìn)程或線程在Kernel系統(tǒng)層的占用

  m值為該進(jìn)程或線程在User用戶層的占用

  total值為總占用,它應(yīng)當(dāng)?shù)扔趎+m的和

  進(jìn)程下各個(gè)線程total占用和應(yīng)當(dāng)?shù)扔谶M(jìn)程的total占用

  名稱

  進(jìn)程名即EXE的名稱,線程默認(rèn)沒(méi)有名稱,下一節(jié)會(huì)介紹如何給線程命名,從而能在AppHelper中顯示出來(lái)。

  進(jìn)程及線程監(jiān)視說(shuō)明

  AppHelper會(huì)打印系統(tǒng)下所有的進(jìn)程的CPU占用信息。

  只有在NandFlash目錄下的exe生成的進(jìn)程會(huì)額外打印出它下面所有線程的CPU占用信息。

  默認(rèn)情況下,生成的線程只有ID號(hào),沒(méi)有名稱,如果線程較多會(huì)不便于查看。我們可以通過(guò)簡(jiǎn)單代碼給線程命名。

  以光盤(pán)里的串口例程SPT_HEX為例:

  添加一個(gè)結(jié)構(gòu)體的定義

  typedef struct _THREAD_INDEX

  {

  DWORDdwSize;

  DWORDdwThreadID;

  TCHARszThreadName[32];

  _THREAD_INDEX*pNext;

  }THREAD_INDEX;

  在創(chuàng)建線程后給線程命名

  這里把串口接收線程命名為"CommRecvTread"

  hRecvThread = CreateThread(0, 0, CommRecvTread, this, 0, &m_dwTID);

  HANDLE hHLP;

  DWORD dwLen;

  hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

  THREAD_INDEXthreadIndex;

  wsprintf(threadIndex.szThreadName, L"CommRecvTread");

  threadIndex.dwThreadID = m_dwTID;

  threadIndex.dwSize = sizeof(THREAD_INDEX);

  WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

  CloseHandle(hHLP);

  在結(jié)束線程后取消命名

  線程結(jié)束后應(yīng)當(dāng)手動(dòng)將命名取消掉,避免不必要的顯示錯(cuò)誤,設(shè)置線程名為空,即可取消原命名。

  HANDLE hHLP;

  DWORD dwLen;

  hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

  THREAD_INDEXthreadIndex;

  wsprintf(threadIndex.szThreadName, L"");

  threadIndex.dwThreadID = m_dwTID;

  threadIndex.dwSize = sizeof(THREAD_INDEX);

  WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

  CloseHandle(hHLP);

  命名線程后再使用AppHelper查看,啟動(dòng)接收線程后,就可以看到CommRecvTread這個(gè)線程,另外個(gè)沒(méi)有命名的線程為SerialPort程序的主線程。

  計(jì)算原理及誤差說(shuō)明

  CPU占用時(shí)間是通過(guò)計(jì)算一段時(shí)間內(nèi)(AppHelper設(shè)置為2000毫秒)CPU空閑tick值與這段時(shí)間里CPU運(yùn)算周期tick值得出。

  CPU空閑tick值 = CPU空閑tick計(jì)數(shù)t2 – CPU空閑tick計(jì)數(shù)t1

  CPU總周期tick值 = CPU總周期tick計(jì)數(shù)t2 – CPU總周期tick計(jì)數(shù)t1

  CPU占用 = 1 – (CPU空閑tick值/CPU總周期tick值)×

  進(jìn)程或線程的CPU占用,是通過(guò)計(jì)算一段時(shí)間CPU運(yùn)算周期tick值,和這段周期里Kernel或User運(yùn)行線程或進(jìn)程的tick值,通過(guò)相除得到


收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼