西門子內(nèi)存卡6ES7953-8LF31-0AA0優(yōu)質(zhì)產(chǎn)品
西門子內(nèi)存卡6ES7953-8LF31-0AA0
工作存儲器:
工作存儲器僅包含運行時使用的程序和數(shù)據(jù)。RAM 工作存儲器集成在CPU中, RAM中的內(nèi)容通過電源模塊供電或后備電池保持。除了S7 417-4 CPU可以通過插入的存儲卡來擴展工作存儲器外,其他PLC的工作存儲器都無法擴展。
3. 裝載存儲器:
裝載存儲器是用于存放不包含符號地址分配或注釋(這些保留在編程設備的存儲器中)的用戶程序。裝載存儲器可以是存儲器卡、內(nèi)部集成的RAM或內(nèi)部集成的EPROM.
4. 保持存儲器:
保持存儲器是非易失性的RAM,通過組態(tài)可以在PLC掉電后即使沒有安裝后備電池的情況下,保存一部分位存儲器(M)、定時器(T)、計數(shù)器(C)和數(shù)據(jù)塊(DB)。在設置CPU參數(shù)時一定要要保持的區(qū)域。(注意:由于S7-400 PLC沒有非易失性RAM,即使組態(tài)了保持區(qū)域,再掉電時若沒有后備電池,也將丟失所有數(shù)據(jù)。這是S7-300 PLC 與S7-400 PLC 的重要區(qū)別)
1) 當在step7 中執(zhí)行下裝(download)時,會把編程設備中的用戶程序下裝到CPU的裝載存儲區(qū),同時會把運行時使用的程序和數(shù)據(jù)寫入工作存儲區(qū)(如OB1和數(shù)據(jù)塊)。
2) 若CPU沒有后備電池,當系統(tǒng)斷電時,在工作存儲器中定義了保持特性的數(shù)據(jù)塊會把數(shù)據(jù)寫入保持存儲器中,上電后保持存儲器會把斷電時的數(shù)據(jù)寫入到工作存儲區(qū), 保證了運行數(shù)據(jù)斷電不丟失(過程如圖7-1中與箭頭所示)。
3) 若CPU沒有后備電池,當系統(tǒng)斷電時,系統(tǒng)存儲區(qū)中定義n的保持位存儲器(M)、定時器(T)和計數(shù)器(C))斷電時也會寫入保持存儲器,恢復上電時斷電時的數(shù)據(jù)重新寫入,保證了運行數(shù)據(jù)斷電不丟失(如圖7-1中與箭頭所示)。
按照CPU 的裝載存儲器來分類:新型S7-300 CPU、標準型S7-300 CPU、帶內(nèi)置EPROM 的S7300 CPU,具體描述如下:
新型S7-300 CPU是指使用MMC卡作為其裝載存儲器的CPU,此類CPU不用安裝后備電池,免維護。由于新型S7300-CPU它不含內(nèi)置的裝載存儲器,因此必須使用MMC卡。新型的S7-300 CPU包括緊湊型 (即CPU31xC系列)和由標準型更新的新型CPU。任何程序的下載方式都直接保存到卡中, 沒有MMC卡,是無法把程序下載到CPU中的
DEBUG調(diào)試串口方式
使用AHC工具(使用方法見本文下一節(jié))配置AppHelper輸出為DEBUG。連接板子的DEBUG串口,PC端使用任意串口工具,設置波特率115200,向DEBUG口輸出任意三個字符,即可獲得AppHelper打印的進程線程信息。
串口方式
將底板上引出,且客戶應用程序未使用的串口連接上PC。使用AHC工具(使用方法見本文下一節(jié))配置好串口號及波特率。PC端使用任意串口工具,用設定的波特率向該串口輸出任意三個字符,即可獲得AppHelper打印的進程線程信息。
AHC工具使用介紹
AHC工具即AppHelper Config工具,用于設置AppHelper打印信息的輸出位置。有兩種辦法進行設置。
控制面板方式
在板子控制面板中運行AHC工具。
選擇好輸出信息的串口及波特率(其中COM1為USBOTG),點擊OK鍵保存配置,板子重啟后配置生效。
telnet方式
通過telnet登錄上板子,執(zhí)行命令AHC port [baud]
參數(shù)port:串口號,值為0-6,0表示DEBUG串口,1表示USBOTG轉(zhuǎn)虛擬串口,2-6分別表示板子的COM2-COM6。
參數(shù)baud:波特率,可選參數(shù),如果不填表示保持原波特率,支持1200,2400,4800,9600,19200,38400,57600,115200。當port為0時,baud固定為115200,當port為1時,baud值不生效。
命令執(zhí)行后,DEBUG口可以看到打印提示信息。
打印格式說明
打印結(jié)果為數(shù)行,其中每行的格式均為:類型 ID號 占用情況 名稱
以下圖一次打印的部分截圖為例:
命名線程后再使用AppHelper查看,啟動接收線程后,就可以看到CommRecvTread這個線程,另外個沒有命名的線程為SerialPort程序的主線程。
計算原理及誤差說明
CPU占用時間是通過計算一段時間內(nèi)(AppHelper設置為2000毫秒)CPU空閑tick值與這段時間里CPU運算周期tick值得出。
CPU空閑tick值 = CPU空閑tick計數(shù)t2 – CPU空閑tick計數(shù)t1
CPU總周期tick值 = CPU總周期tick計數(shù)t2 – CPU總周期tick計數(shù)t1
CPU占用 = 1 – (CPU空閑tick值/CPU總周期tick值)×
進程或線程的CPU占用,是通過計算一段時間CPU運算周期tick值,和這段周期里Kernel或User運行線程或進程的tick值,通過相除得到。
進程/線程Kernel占用 = (進程/線程Kernel運行tick值/CPU總周期tick值)×
進程/線程User占用 = (進程/線程User運行tick值/CPU總周期tick值)×
進程/線程CPU占用 = 進程/線程Kernel占用 + 進程/線程User占用
打印結(jié)果可能會有少量誤差,可能由于以下原因:
1、實驗值計算到個位,小數(shù)部分四舍五入,所以可能產(chǎn)生細微的誤差。
2、理想中的測量情況如下圖
但是實際情況由于AppHelper本身也會產(chǎn)生系統(tǒng)消耗,所以測量情況為下圖
在Δt值不為0的情況下,如果在Δt期間各個tick值產(chǎn)生較大跳動時,測試結(jié)果可能產(chǎn)生誤差。
3、各個進程或線程的運行tick值并非*實時變化,而是在進程或線程完成一個時間片掛起后才加上,所以查詢函數(shù)獲得值不一定非常。
測試程序及說明
test_prc_thd是一個簡單的程序,用來測試AppHelper的進程線程監(jiān)視功能。
“添加線程"按鈕按下會創(chuàng)建一個新的線程。參數(shù)中傳入線程編號,線程ID等信息