今日項目

HIOKI LR8400

  • ch選擇
  • 量測取值
  • 斷線重新連線
  • 取消清除cache
  • 區間設定

ITECH

  • 電池mode
  • CC CV 盡量全用CC做
  • CC CV CP 模式指令
  • 根據測試解果顯示 還是需要協助將其他數值輸入完畢 因此要自動輸入其餘數值
  • 模式開發進度
    • CC
    • CV
    • CP/CW
    • 保護點設定
      • 已經測定 行為模式會立即斷電 多加寫復歸Func
    • 復歸func
  • 找時間給Rex哥先看一遍
  • 排程設定
  • 主頁面設計
  • Device Data Interface
  • 預接設備(防打火實作)
  • 單工步實作
  • 單工步加入保護點設定
  • 保護點讀取 從API設定
  • 單工步與預接防呆
    • 預接
      • 設置電壓、電流、功率大於保護點OVP OCP OPP
      • 設置電壓電流小於保護點UCP UVP
    • 單工步
      • 設置電壓、電流、功率大於保護點OVP OCP OPP
      • 設置電壓電流小於保護點UCP UVP
  • 單公布執行設定並開始後點回去要可以看說正在執行的條件是什麼
  • websocket斷線要解開設備控制 讓設備可以手動控制
  • 工步排程設計
    • 要可以存為JSON參考已有格式
    • 防呆 如:一開始就有END
    • 頁面仿造
    • DeviceCard綠色時按下進入設定
  • 解除Alarm要順便停下排程
  • 不能只有綠色才能看 藍色也要可以點進去看
    • 改成點下就可以進去排程頁
  • 點兩下進去讀取素梅派狀態與IP
  • current_step_config沒用
  • 額外 預接電池功能是否需要重新開發
	const submitSetValues = async () => {
	  if (!props.isOnline) return;
	
	  const validationError = validateProtectionRules();
	  if (validationError) {
	    errorMessage.value = validationError;
	    return;
	  }
	
	  isLoading.value = true;
	  errorMessage.value = '';
	
	  try {
	    const protectionPayload: ProtectionReq = {
	      ovp: Number(protectionsForm.value.ovp),
	      uvp: Number(protectionsForm.value.uvp),
	      ocp: Number(protectionsForm.value.ocp),
	      ucp: Number(protectionsForm.value.ucp),
	      opp: Number(protectionsForm.value.opp),
	      delay: Number(protectionsForm.value.delay)
	    };
	
	    await deviceStore.updateProtection(props.deviceId, protectionPayload);
	    // 等等看要不要改
	    await deviceApi.setValues(getBaseUrl(), {
	      voltage: Number(preConnectForm.value.voltage),
	      current: Number(preConnectForm.value.current),
	      power: Number(preConnectForm.value.power)
	    });
	
	    modalStage.value = 'CONFIRM_ON';
	  } catch (err: unknown) {
	    errorMessage.value = err instanceof Error ? err.message : '設定失敗,請檢查網路連線或參數';
	  } finally {
	    isLoading.value = false;
	  }
	};
  • SCPI 發出聲音代表命令下錯
  • 排查一下 直到命令都不會有聲音 跟Error
  • 預接功能改寫成 Barcode表對應
    • 保留原本介面 變成工程用 ctrl shift E 輸入密碼 1225
    • 保護點 都0 關閉保護
    • 輸入 GU2825^^^^^^^ 電壓 電流 自動算出功率
      • GU2825^^^^^^^ 是為了可以對上 GU2825 跟 str long
    • 存Pina 一樣永久化
    • 做匯入匯出 避免換電腦
    • 後面點下後是跑出輸入框 先輸入Barcode
    • 再跑出電壓電流功率數據
  • Step用什麼參數EC EV多少去跑寫清楚一點
  • RUN期間排程頁 All Disable 只剩停止排程 且可以看資料
  • 顏色狀態對齊 區分一下in排成跟out排程 用Step ; Finish 多寫一個狀態
  • 測試HIOKI API 並串接到網頁上 讓網頁可以設定通道量測
  • 多加測試看看有沒有Bug
    • HIOKI type對準
  • HIOKI 加上精準度設計
  • 串接ITECH與HIOKI讓他可以用數值去判斷
    • 預計作法 給ITECH的API 有哪些通道 要用多少判斷值判斷
  • LOG功能開發
    • 先可以記錄
    • 將間隔與存放區間放入伺服器
    • 可以看到有什麼資料夾
    • 可以看到有什麼檔案 可以預覽
    • 可以拉檔
    • 執行續時間timp統一
  • 開始時要跳出視窗輸入Barcode或工程版面
    • 先做工程版面:要讓使用者填入要上傳的Json位置、 Log name、Logpath
    • 做完後要想辦法讓他可以自動下載到指定位置
    • 要存在pinia 如果突然斷線回來後看到做完了要自己拉檔案
    • 要拉到指定logpath位置不能只是
  • 防呆邏輯
    • 保護點比截止還低或高
    • 切換工步的時候 這個工步有修改但未存要提示
    • 離開同上原理 離開前有修改要問是否要先上傳排程
  • 看看權限可不可以存 不然就是每次開始前要重新要 不然有時候會沒辦法寫入
  • 以下暫停 先做15kW
  • event_note移動到最後
  • 單工步資料被拉長的原因
  • vsr tsr要平舖 所以要先解析有什麼vsr/tsr然後把它展開
  • 要讓HIOKI記住是誰開啟的
    • 以後多通道可能是很多不同使用者使用 為了減少開關的問題 要讓API存取在HIOKI的伺服器內 讓他可以確認這次關閉會不會影響到其他使用者 簡單來說說 第一個開啟API才是開 最後一個關閉API才是關
  • 禮拜五除錯
    • STOP_? END 撌交郊嚗?蝔???”{""CH1_3"": -0.05}” 常常會有錯誤不知道為什麼
    • 有時候會多一秒
    • 編輯排程怪怪的
    • 判斷都會多0.3 0.4秒
    • Hioki如果未連線不准有人連進websocket

海辰容量計算方式修改

  • 改成累計的形式進行紀錄+=log interval/3600*c_val
		def get_raw(ioa):
            return client.data_store.get(ioa, 0)
 
        v_val = get_raw(cfg.m.TOTAL_V)
 
        if v_val != 0:
            charge_cap = get_raw(cfg.m.SINGLE_CHARGE_POWER) * 1000 / v_val
            discharge_cap = get_raw(cfg.m.SINGLE_DISCHARGE_POWER) * 1000 / v_val
 
        else:
            charge_cap = 0.0
            discharge_cap = 0.0
 
        if client.connected:
            client.data_store[99991] = charge_cap
            client.data_store[99992] = discharge_cap
 
        st.metric("單次充電容量", f"{charge_cap:.1f} Ah")
        st.metric("單次放電容量", f"{discharge_cap:.1f} Ah") 
		def get_raw(ioa):
            return client.data_store.get(ioa, 0)
 
        c_val = get_raw(cfg.m.TOTAL_C)
 
        if c_val >= 0.:
            charge_cap = user_pref['log_interval']/3600 * c_val
        else if c_va; <= 0:
            discharge_cap = user_pref['log_interval']/3600 * c_val
        else:
	        charge_cap = charge_cap
            discharge_cap = discharge_cap
	        
 
        if client.connected:
            client.data_store[99991] += charge_cap
            client.data_store[99992] += discharge_cap
 
        st.metric("單次充電容量", f"{client.data_store[99991]:.1f} Ah")
        st.metric("單次放電容量", f"{client.data_store[99992]:.1f} Ah") 

Gus 15kW 另加需求

明日預期


代辦事項

測Modbus Canbus通訊

  • 加入解析方式 與畫面呈現

伺服器讀取與呈現

  • 稍微再修正 讓伺服器讀取更直觀
  • 多加測試並跟彥瑋討論

GusBLE

  • 待阿傑這邊實驗測試完 並討論有無問題
  • 後續討論新版Spec 並跟Kevin確認內容

電動巴士Canbus

  • 測試log收集結果及壓差、溫差、門檻閘值

GusBuy

  • 商品類別對一個 Item 跟 Price 還有 Pic 跟 Spec
  • 通知客人到貨
  • 業務流程後續要加進來

永續發展課程

  • 注意上課時間
    • 客戶永續經營 (2026-08-21 13:00)
    • ESG 報告與 GRI 準則 (2026-09-04 13:00)
    • 永續分組 (2026-09-11 13:00)
    • 永續提案說明(2026-09-18 13:00)
    • 提案送審 (2026-09-18 10:00)
項次課程名稱上課日期上課時間主講人備註
1客戶永續經營8/2113:30~14:30策略長許志帆特助
2ESG 報告與 GRI 準則9/413:30~14:30永續發展室 Gary
3永續分組9/1113:30~14:30永續發展室 Gary
4永續提案說明9/1813:30~14:30永續發展室 Gary
5提案送審9/18~10/213:30~14:30永續發展室 Gary