Skip to Content
進階功能趨勢紀錄與圖表

趨勢紀錄與圖表

監看清單裡的值會變,而你常常想知道的是「它怎麼變的」:PLL 什麼時候鎖上、溫度走到哪、 計數器有沒有停。Nexus 在背景把每一筆監看的變化記成檔案,並且可以在監看清單面板裡直接畫成趨勢圖。 檔案是純 CSV,也可以交給 Excel。

記了什麼、記在哪裡

  • 一律記錄,沒有開關。 只要有監看項目在背景輪詢,就會記。沒有任何監看時不會建檔。
  • 檔案在程式資料夾的 logs\trend_<年月日_時分秒>.csv,每次啟動一個檔,所有監看寫在同一個檔裡。 第一筆帶值的事件出現時才建立檔案。
  • 只記變化點和事件:值變了才寫一列,兩個變化點之間值必然不變,所以檔案很小、也不會漏掉任何變化。 讀取失敗、poll off、監看新增與移除等「這段時間沒有資料」的情況也各有一種事件,圖表與 Excel 才不會把沒資料畫成值不變。
  • 只有終端機版與視窗版會記;--batch 不記。
  • 圖表只看本次啟動的資料;舊檔留給 Excel 等外部工具。
  • AI 工具可以用 MCP 的 get_trend 查本次啟動某個監看值的歷史(降採樣成最多 200 點,缺口不帶值),見MCP 工具一覽。
  • 寫檔失敗(磁碟滿、被鎖住)時會寫一筆 ERROR 到 Log,本次啟動停止記錄,圖表標題列顯示 REC ERR。不會重試。

圖表模式

在監看清單面板選一列,按 Enter(指令列要是空的),整個面板就變成那一筆的趨勢圖。 Esc 或再按一次 Enter 回到清單。滑鼠可以雙擊一列進入,或點面板標題列右側的圖表圖示(終端機版是 [~])。

視窗版監看清單的圖表模式,三條不同顏色的線疊在同一張圖,下方資訊列兼圖例
VAL 模式:三條線共用一條 Y 軸(視窗版)
終端機版監看清單的圖表模式,用方塊字元畫出三條線
同一張圖的終端機版

一張圖畫多條線

清單模式下,按 Ins(指令列為空)或按住 Ctrl 單擊某一列,就把那一列勾進「繪圖」,列首會出現一個彩色 ●。 Enter 畫出所有勾選的線;一條都沒勾就只畫選中那一列。

  • 最多 4 條。已經滿了再按 Ins 不會擠掉舊的,只會提示「最多 4 條」。
  • 顏色依勾選順序分配,取消勾選才釋放。
  • VAL 模式所有線共用一條 Y 軸,自動縮放到所有可見線的最小~最大值。
  • 資訊列同時是圖例:沒有游標時像 ●012=3C ●013=A1 1 s/col,同顏色的 ● 對應同一條線。 有游標時列出游標那一欄各線的值;縮小到一欄涵蓋多個值時顯示 3C~41,-- 表示那一欄沒有資料或是缺口。
  • 圖表開著時某條線的監看被移除,只會拿掉那一條;全部被移除才退回清單。

按鍵

按鍵清單模式圖表模式
↑ / ↓移動選中列放大/縮小
Enter(指令列空)進入圖表離開圖表
Esc—離開圖表
Ins(指令列空)、Ctrl+單擊勾選/取消「繪圖」—
← / →—平移一欄
Ctrl+← / Ctrl+→、PgUp / PgDn—平移一頁
Home / End—跳到本次啟動的開頭(暫停)/跳到最新並恢復 LIVE
Tab—切換 VAL/BIT
Shift+↑ / Shift+↓—切換焦點線(多條線時)
Shift+← / Shift+→—移動讀數游標

指令列有字的時候這些鍵都不攔,照常編輯指令列。

滑鼠:

操作效果
左鍵拖曳平移
滾輪縮放(LIVE 時以右緣為錨,暫停時以滑鼠所在欄為錨)
移動(hover)設定讀數游標
標題列圖示進入/離開圖表
標題列的 VAL/BIT 標籤切換模式

LIVE 與 PAUSED

停在最右端時圖表自動跟著新資料往右捲,標題列顯示 LIVE。往左平移就變成 PAUSED,畫面停住讓你慢慢看; 按 End(或平移回最右端)恢復。LIVE 時縮放永遠以右緣為錨,所以要看舊的尖峰,先往左拖一下(轉成 PAUSED)再縮放。 圖表不能平移到本次啟動之前,也不能超過現在。

縮放與 VAL/BIT

縮放階梯從每欄 50 ms 到每欄 1 小時,共 15 級,進入時預設每欄 1 秒。縮小時每一欄畫的是那段時間的最小~最大範圍, 所以短暫的尖峰不會被抹掉。

  • VAL:數值 0~255,Y 軸縮放到可見範圍的最小~最大。
  • BIT:把焦點線的 8 個位元畫成 8 條 0/1 通道,像邏輯分析儀。縮小時,一欄內曾經是 1 的位元畫成 1, 曾經是 0 的也會標出來。標題列的 ● 與位址告訴你現在看的是哪一條線;放不下 8 條通道時只畫放得下的,並標示如 bits 7..4。
視窗版 BIT 模式,焦點線的 8 條位元通道
BIT 模式:焦點線的位元通道,面板較矮時只畫放得下的(此圖標示 bits 7..1)(視窗版)
終端機版 BIT 模式
BIT 模式(終端機版)

缺口

讀取失敗、poll off、監看被移除的期間,圖表畫成淡色網點的整欄,絕不畫成持平線; 第一筆資料之前與未來的欄留白。面板內容區小於 24x6 格時只顯示 Chart needs 24x6。

CSV 格式

檔案開頭是 # 開頭的註解列(版本、啟動時間、Dongle、各 Tab 的位址),接著是欄位列,再來每列一個事件:

# nexus trend v1 # version=1.0.0.0 # started=2026-10-07 15:30:00.000 # dongle=mock # tab0 slave=0x58 plugin=(none) poll_ms=100 t_ms,time,tab,mount,addr,offset,event,value 0,2026-10-07 15:30:00.000,,,,,S, 0,2026-10-07 15:30:00.000,0,0,0x58,0x0011,A, 100,2026-10-07 15:30:00.100,0,0,0x58,0x0011,V,0x3C 2100,2026-10-07 15:30:02.100,0,0,0x58,0x0011,V,0x3F
欄位意義
t_ms從本次啟動算起的毫秒數
time本地絕對時間 YYYY-MM-DD HH:MM:SS.mmm
tab、mount、addr、offset這一列屬於哪一筆監看:Tab、Tab 內的掛載序號、7-bit slave 位址、位移(含 Bank)。與監看無關的列留空
event事件代碼,見下表
value十六進位值如 0x3C;G 列則是遺失的事件數;沒有值的事件留空
event意義帶值
V值變化是
E開始讀取失敗:這一筆從此刻起是缺口否
R恢復讀取:缺口結束,同時帶回恢復後的值是
P0 / P1該 Tab 的 poll off/poll on(只有 tab 欄,其餘留空)。P0 到 P1 之間該 Tab 全部監看都是缺口否
A / D監看新增/移除。移除到再次新增之間是缺口否
G事件佇列溢位:之前遺失了 value 筆事件,所有監看在此刻標為缺口遺失數
S / X本次啟動開始/結束否

要在 Excel 裡取一筆監看的值,事件要同時保留 V 與 R:R 也帶值,只留 V 會漏掉一次讀取失敗之後的第一個值。

範例檔(合成資料,不是真實 IC 的紀錄,包含讀取失敗、poll off 與一次溢位缺口): trend_sample.csv。裡面有三個監看:0x0010 狀態位元、0x0011 緩慢起伏的值、0x0012 每 500 ms 加一的計數器。 下面三節都用它,請先下載。

用 Excel 畫圖

需要 Excel 2016 以上或 Microsoft 365(桌面版)。最快的方法是用現成範本;後面三節是手做的步驟,給想自訂或想了解原理的人,由簡到精確;不同版本的功能表字樣略有差異,以下用大意描述。

最快:用範本

  1. 下載 trend_template.xlsx,和要看的 CSV 放在同一個資料夾。
  2. 打開範本,在 chart 工作表的黃色格 B1 填 CSV 的檔名(例如 trend_20261008_084512.csv);不在同一個資料夾就填完整路徑。
  3. 按 資料 → 全部重新整理。

上圖是所有監看疊在一起的精確階梯圖(十進位,一個監看一條線,換一份監看數不同的 CSV 時線條數自動跟著變); 下圖是一個監看的 8 個位元,在黃色格 B2 的下拉選單換監看,再按一次全部重新整理。 範本剛打開時顯示的是範例檔 trend_sample.csv 的資料;把範例檔也放進同一個資料夾,就能直接按重新整理試試看。

Excel 範本的階梯圖,三個監看各一條線疊在同一張圖上,值只在變化點垂直跳變
範本:所有監看疊圖,按一次重新整理就換成你的 CSV

要知道的限制:讀取失敗、poll off、事件佇列溢位的缺口,以及監看移除之後,在範本裡都會畫成持平線(沿用最後一個值,與下面第二節相同);每個變化點占兩列, Excel 最多 1,048,576 列,所以超過約 50 萬次值變化的 CSV 要先切短。 範本放在 OneDrive 同步的資料夾(常見的是桌面、文件)時,B1 只填檔名會找不到檔案,要填完整路徑。 若打開時 Excel 顯示「安全性警告:已停用外部資料連線」,按啟用內容再重新整理。

一、簡易版:XY 散佈圖

  1. 資料 → 從文字/CSV,選 trend_sample.csv。出現預覽時按轉換資料,開啟 Power Query 編輯器。 檔頭以 # 開頭的註解列會變成最上面的幾列資料。右側套用的步驟裡若除了「來源」還有別的步驟(例如「已變更類型」,有的版本還有「已將標頭升階」),先選取它們按 Delete 刪掉;再用常用 → 移除資料列 → 移除頂端資料列拿掉註解列(範例檔是 5 列),最後按常用 → 使用第一個資料列作為標頭。順序不能反過來,否則移除 5 列時會連真正的標題列一起刪掉。
  2. 篩選 event 欄(欄標題右邊的下拉鈕):取消「(全選)」,只勾選 V 與 R。
  3. 篩選 addr=0x58、offset=0x0011(要看別的暫存器就換 offset)。
  4. 確認 time 欄的型別是日期/時間(欄標題左邊的圖示);升階標頭時 Excel 通常會自動轉好,不是的話在欄標題左邊的圖示上改。
  5. 新增資料行 → 自訂資料行,名稱 dec,把十六進位的 value(0x3C 這種文字)轉成十進位數字,公式 Number.From(Binary.ToList(Binary.FromText(Text.Middle([value], 2), BinaryEncoding.Hex)){0})。 (Power Query 的公式是 M 語言,沒有工作表的 HEX2DEC。)按關閉並載入。
  6. 選取 time 與 dec 兩欄,插入 → 散佈圖 → 帶有直線的散佈圖(XY scatter with straight lines),time 當 X 軸。X 軸標籤擠成一團時,在 X 軸上按右鍵 → 座標軸格式 → 數值,自訂格式填 hh:mm:ss。
Excel 的 XY 散佈圖,單一暫存器的值隨時間起伏,變化點之間以斜線連接
簡易版:變化點之間用直線連起來

這張圖的限制要知道:斜線只是近似。實際上值在兩個變化點之間是不變的,直線卻把它畫成漸變; 而且缺口不會顯示(讀取失敗那段只是兩個點之間的一條線)。想看精確的形狀,用下一節。

二、進階:精確階梯圖

目標是讓值在每個變化點「垂直跳變」,變化點之間是水平線。做法是把每個變化點展開成兩列: (變化時間,上一筆的值)與(變化時間,新的值)。

  1. 延續上一節的查詢(已有 dec 欄):在查詢與連線窗格按兩下該查詢,回到 Power Query 編輯器。
  2. 新增資料行 → 索引資料行(按鈕右邊的箭頭)新增兩欄:一個選從 0、一個選從 1。預設欄名是「索引」「索引.1」,在欄標題上按兩下改名為 i0、i1。
  3. 常用 → 合併查詢:上面的表點選 i0 欄,下拉選單選同一個查詢(標示「(目前)」),下面的表點選 i1 欄(下面那列的 i1 等於上面的 i0,也就是前一列);聯結種類用預設的左方外部,範例檔會顯示「比對了 25 個資料列中的 24 個」(第一列沒有前一筆)。合併出來的資料行名稱是上一個步驟的名字(例如「已重新命名資料行」),選取它按轉換 → 展開,取消「(選取所有資料行)」、只勾 dec,展開後的欄(例如「已重新命名資料行.dec」)改名 prev。每一列就多了「上一筆的值」。
  4. 依 i0 遞增排序(Power Query 的合併不保證列的順序,而 XY 散佈圖是依表格順序連線)。
  5. 新增自訂資料行 pair,公式 {if [prev] = null then [dec] else [prev], [dec]}。
  6. 展開 pair:選取 pair 欄按轉換 → 展開(或欄標題旁的展開鈕選展開至新資料列)。每個變化點變成兩列:(變化時間,上一筆值)與(變化時間,新值)。
  7. 關閉並載入,對結果插入 XY 散佈圖(直線,無資料標記),time 當 X 軸。
Excel 的階梯圖,值只在變化點垂直跳變,其餘時間是水平線
精確階梯圖:每個變化點展開成兩個點

階梯圖忠實呈現「值在這個時間之前是多少、之後是多少」。讀取失敗的缺口在這張圖裡仍會被畫成持平線, 要標出缺口請另外依 E/R、P0/P1 列的時間範圍用色塊標示。

三、位元拆欄

位元模式在 Excel 的對應做法是用 BITAND 把一個暫存器拆成一個個位元欄。假設十進位值在 B 欄:

bit0 : =BITAND($B2,1) bit1 : =BITAND($B2,2)/2 bit2 : =BITAND($B2,4)/4

每個位元一欄,用階梯圖(上一節的兩列展開)分別畫。要讓多條通道上下排開像邏輯分析儀, 把第 n 條通道的公式加上 2*n,例如 =BITAND($B2,2)/2+2,再把圖表的 Y 軸固定在需要的範圍。

Excel 的位元圖,bit0 與 bit1 兩條通道上下排開
BITAND 拆出的兩條通道

多個暫存器畫在同一張圖

Excel 也可以:把篩選條件裡的 offset 放寬成多個值,各自輸出一個資料表(或用樞紐分析,以 offset 當欄位), 再把它們加成同一張散佈圖的多個數列。Nexus 圖表本身的多線疊圖見上面的「一張圖畫多條線」。

相關頁面