Modbus 數據模型:線圈、寄存器與功能碼詳解(二)

三、Modbus 功能碼詳解

3.1 功能碼分類與作用

Modbus 功能碼是 Modbus 通信協議中的關鍵組成部分,它如同一個 “指令指揮官”,在通信事務處理中扮演著核心角色。功能碼占用 1 個字節的空間,取值范圍為 1 到 255 (0x01 - 0xFF) ,其中 1 到 127(0x01 - 0x7F)為正常功能碼,128 到 255(0x80 - 0xFF)用于表示異常響應,通過在正常功能碼基礎上加 0x80 來標識。

Modbus 協議將功能碼細致地分為三類:公共功能碼、用戶自定義功能碼和保留功能碼,每一類都有其獨特的用途和特點。

  • 公共功能碼:這類功能碼定義清晰明確,就像是被官方 “認證” 的指令,具有唯一性。它們由權威的MODBUS.org社區嚴格驗證,并提供公開透明的文檔供開發者查閱。同時,還有專門可用的一致性測試來確保其可靠性。公共功能碼既涵蓋了已經被明確定義、廣泛應用的公共分配功能碼,也包含了為未來發展預留的未分配功能碼,以適應不斷變化的工業需求。在工業自動化生產線上,主設備通過發送公共功能碼請求,從從設備的寄存器中讀取設備的運行參數,實現對生產過程的實時監控和調整。
  • 用戶自定義功能碼:用戶自定義功能碼為開發者提供了一定的靈活性,它有兩個特定的范圍,分別是 65 至 72(0x41 - 0x48)和 100 至 110(0x64 - 0x6E)。用戶可以根據自身設備的特殊需求和功能,選擇并實現一個標準規范中未支持的功能碼。然而,使用自定義功能碼時需要注意,由于其是用戶自行定義的,所以無法保證唯一性。如果用戶后續希望將自定義功能碼轉變為公共功能碼,以便更廣泛地應用和共享,就必須發起一個 RFC(功能請求變更),經過相關流程將其引入公共類別,并分配一個新的公共功能碼。
  • 保留功能碼:保留功能碼主要是由于歷史遺留原因,某些公司在傳統產品中現行使用的功能碼,但這些功能碼并不作為公共使用,更多地是作為一種信息性注釋存在,對于大多數新的 Modbus 應用開發,通常不需要關注保留功能碼 。

在 Modbus 通信中,功能碼發揮著至關重要的作用。當主設備向從設備發送通信請求時,功能碼就像是一把 “鑰匙”,準確無誤地指示從設備執行特定的動作,如讀取線圈狀態、寫入寄存器數據等。從設備在接收到請求后,會根據功能碼的指示,迅速找到對應的操作,并返回相應的響應數據,從而實現主設備與從設備之間高效、準確的數據交互和設備控制。

3.2 常用功能碼解析

在 Modbus 協議豐富的功能碼體系中,有一些功能碼在實際應用中頻繁出現,它們是實現設備數據交互與控制的核心指令。下面,我們將深入剖析這些常用功能碼的具體功能、指令格式以及響應格式 。

  • 讀線圈狀態(01H):此功能碼用于讀取從設備的線圈狀態,也就是獲取離散量輸出(DO,Discrete Output)的 ON/OFF 狀態。在實際應用中,就好比我們要查看一組指示燈是否亮起,或是繼電器是否處于閉合狀態,都可以通過這個功能碼來實現。其指令格式如下:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 01H,表示讀線圈狀態

1

起始地址(高位)

要讀取的線圈起始地址的高字節

1

起始地址(低位)

要讀取的線圈起始地址的低字節

1

線圈數量(高位)

要讀取的線圈數量的高字節

1

線圈數量(低位)

要讀取的線圈數量的低字節

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x01 的從設備發送請求,讀取從地址 0x0010 開始的 10 個線圈狀態,其請求幀可能為:01 01 00 10 00 0A [CRC 校驗碼]。從設備響應時,數據字段中每個線圈占用 1 位(bit),狀態用 1 表示 ON,0 表示 OFF 。第 1 個數據字節的最低有效位(LSB)對應查詢報文中起始地址線圈的狀態,后續線圈狀態依次排列,若最后一個數據字節不滿 8 位,則用 0 填充。假設從設備返回的響應幀為:01 01 02 55 [CRC 校驗碼],其中數據字節 02(二進制為 00000010)表示前 8 個線圈中,第 2 個線圈為 ON,其余為 OFF;55(二進制為 01010101)表示接下來 8 個線圈的狀態。

  • 讀離散輸入狀態(02H):該功能碼用于讀取從設備的離散輸入狀態,即獲取離散量輸入(DI,Discrete Input)的 ON/OFF 狀態,常用于讀取外部開關、按鈕等設備的狀態。其指令格式與讀線圈狀態類似:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 02H,表示讀離散輸入狀態

1

起始地址(高位)

要讀取的離散輸入起始地址的高字節

1

起始地址(低位)

要讀取的離散輸入起始地址的低字節

1

輸入數量(高位)

要讀取的離散輸入數量的高字節

1

輸入數量(低位)

要讀取的離散輸入數量的低字節

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x02 的從設備發送請求,讀取從地址 0x0020 開始的 15 個離散輸入狀態,請求幀可能為:02 02 00 20 00 0F [CRC 校驗碼]。從設備響應時,數據格式與讀線圈狀態響應類似,每個離散輸入狀態占用 1 位,不足 8 位時高位補 0 。

  • 讀保持寄存器(03H):讀保持寄存器功能碼用于讀取從設備的保持寄存器數據,這些寄存器可讀寫,常用于存儲設備的配置參數、測量值等重要信息。其指令格式如下:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 03H,表示讀保持寄存器

1

起始地址(高位)

要讀取的保持寄存器起始地址的高字節

1

起始地址(低位)

要讀取的保持寄存器起始地址的低字節

1

寄存器數量(高位)

要讀取的保持寄存器數量的高字節

1

寄存器數量(低位)

要讀取的保持寄存器數量的低字節

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x03 的從設備發送請求,讀取從地址 0x0030 開始的 3 個保持寄存器數據,請求幀可能為:03 03 00 30 00 03 [CRC 校驗碼]。從設備響應時,每個寄存器數據占 2 個字節,按照先高字節后低字節的順序排列 。假設返回的響應幀為:03 03 06 12 34 56 78 90 AB [CRC 校驗碼],其中 12 34 為第一個寄存器數據,56 78 為第二個寄存器數據,90 AB 為第三個寄存器數據。

  • 讀輸入寄存器(04H):讀輸入寄存器功能碼用于讀取從設備的輸入寄存器數據,這些寄存器只能讀取,常用于存儲傳感器等外部設備采集的實時數據。其指令格式和讀保持寄存器一致:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 04H,表示讀輸入寄存器

1

起始地址(高位)

要讀取的輸入寄存器起始地址的高字節

1

起始地址(低位)

要讀取的輸入寄存器起始地址的低字節

1

寄存器數量(高位)

要讀取的輸入寄存器數量的高字節

1

寄存器數量(低位)

要讀取的輸入寄存器數量的低字節

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x04 的從設備發送請求,讀取從地址 0x0040 開始的 2 個輸入寄存器數據,請求幀可能為:04 04 00 40 00 02 [CRC 校驗碼]。從設備響應的數據格式也與讀保持寄存器相同。

  • 寫單個線圈(05H):寫單個線圈功能碼用于控制從設備單個線圈的狀態,實現對離散輸出設備的開關控制。寫 0xFF00 表示設置線圈狀態為 ON,寫 0x0000 表示設置線圈狀態為 OFF 。其指令格式如下:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 05H,表示寫單個線圈

1

線圈地址(高位)

要寫入的線圈地址的高字節

1

線圈地址(低位)

要寫入的線圈地址的低字節

1

寫入值(高位)

寫入線圈的值的高字節,ON 為 0xFF,OFF 為 0x00

1

寫入值(低位)

寫入線圈的值的低字節,ON 為 0x00,OFF 為 0x00

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x05 的從設備發送請求,將地址為 0x0050 的線圈設置為 ON,請求幀為:05 05 00 50 FF 00 [CRC 校驗碼]。從設備響應時,返回與發送指令相同的內容,以確認操作已成功接收。

  • 寫單個保持寄存器(06H):該功能碼用于向從設備的單個保持寄存器寫入數據,可用于修改設備的配置參數等。其指令格式如下:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 06H,表示寫單個保持寄存器

1

寄存器地址(高位)

要寫入的保持寄存器地址的高字節

1

寄存器地址(低位)

要寫入的保持寄存器地址的低字節

1

寫入數據(高位)

要寫入保持寄存器的數據的高字節

1

寫入數據(低位)

要寫入保持寄存器的數據的低字節

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x06 的從設備發送請求,將數據 0x1234 寫入地址為 0x0060 的保持寄存器,請求幀為:06 06 00 60 12 34 [CRC 校驗碼]。從設備響應時,同樣返回與發送指令相同的內容。

  • 寫多個線圈(0FH):寫多個線圈功能碼可一次性控制從設備多個線圈的狀態。數據區中每位對應一個線圈,1 表示 ON,0 表示 OFF 。其指令格式如下:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 0FH,表示寫多個線圈

1

起始地址(高位)

要寫入的線圈起始地址的高字節

1

起始地址(低位)

要寫入的線圈起始地址的低字節

1

線圈數量(高位)

要寫入的線圈數量的高字節

1

線圈數量(低位)

要寫入的線圈數量的低字節

1

字節數

實際寫入數據的字節數,(線圈數量 + 7)/ 8

1

數據 1

寫入的第一個數據字節,包含對應線圈狀態

1

...

...

...

數據 n

寫入的第 n 個數據字節,包含對應線圈狀態

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x07 的從設備發送請求,從地址 0x0070 開始寫入 15 個線圈狀態,假設數據為 0x01 0x02 0x04(表示第 1、5、7 個線圈為 ON,其余為 OFF),請求幀為:07 0F 00 70 00 0F 03 01 02 04 [CRC 校驗碼]。從設備響應時,返回包含起始地址、寫入線圈數量等信息的確認幀。

  • 寫多個保持寄存器(10H):此功能碼用于向從設備的多個保持寄存器寫入數據,可實現批量配置設備參數等操作。其指令格式如下:

字段

說明

長度(字節)

從設備地址

唯一標識從設備

1

功能碼

固定為 10H,表示寫多個保持寄存器

1

起始地址(高位)

要寫入的保持寄存器起始地址的高字節

1

起始地址(低位)

要寫入的保持寄存器起始地址的低字節

1

寄存器數量(高位)

要寫入的保持寄存器數量的高字節

1

寄存器數量(低位)

要寫入的保持寄存器數量的低字節

1

字節數

實際寫入數據的字節數,寄存器數量 * 2

1

數據 1(高位)

要寫入的第一個保持寄存器數據的高字節

1

數據 1(低位)

要寫入的第一個保持寄存器數據的低字節

1

...

...

...

數據 n(高位)

要寫入的第 n 個保持寄存器數據的高字節

1

數據 n(低位)

要寫入的第 n 個保持寄存器數據的低字節

1

CRC 校驗(低位)

循環冗余校驗碼低字節

1

CRC 校驗(高位)

循環冗余校驗碼高字節

1

例如,主設備向地址為 0x08 的從設備發送請求,從地址 0x0080 開始寫入 3 個保持寄存器數據,假設數據為 0x1122 0x3344 0x5566,請求幀為:08 10 00 80 00 03 06 11 22 33 44 55 66 [CRC 校驗碼]。從設備響應時,返回包含起始地址、寫入寄存器數量等信息的確認幀。

四、案例分析

4.1 實際項目中 Modbus 數據模型應用示例

某工業自動化控制系統主要負責對一條自動化生產線進行監控與控制,該生產線包含多個設備,如 PLC、傳感器、執行器等,這些設備通過 Modbus 協議組成一個通信網絡,實現數據交互與協同工作。

在這個系統中,PLC 作為主設備,負責協調各個從設備的工作,并對生產過程進行集中監控與管理。傳感器作為從設備,實時采集生產線上的各種數據,如溫度、壓力、流量等,并將這些數據存儲在各自的輸入寄存器中。執行器同樣作為從設備,根據接收到的控制命令,執行相應的動作,其控制狀態由線圈進行表示。

當生產線啟動時,PLC 會向各個傳感器發送讀取輸入寄存器的請求,功能碼為 04H。以溫度傳感器為例,假設其設備地址為 0x01,輸入寄存器起始地址為 0x0000,PLC 發送的請求幀可能為:01 04 00 00 00 01 [CRC 校驗碼],該請求表示讀取地址為 0x01 的溫度傳感器從地址 0x0000 開始的 1 個輸入寄存器數據,即當前溫度值。溫度傳感器接收到請求后,會返回包含溫度數據的響應幀,如:01 04 02 01 2C [CRC 校驗碼],其中數據字節 01 2C(十六進制)轉換為十進制即為當前溫度值 300(假設數據為整型,且經過一定的換算)。

在生產過程中,若需要調整某個執行器的工作狀態,PLC 會向對應的執行器發送寫線圈請求。例如,要控制一臺電機的啟停,電機對應的從設備地址為 0x02,線圈地址為 0x0001,若要啟動電機,PLC 發送的寫單個線圈請求幀為:02 05 00 01 FF 00 [CRC 校驗碼],功能碼 05H 表示寫單個線圈,FF 00 表示將線圈狀態設置為 ON,即啟動電機。執行器接收到請求后,會執行相應動作,并返回確認幀,確認電機已成功啟動。

此外,對于一些需要配置參數的設備,如變頻器,PLC 會通過寫保持寄存器的方式來設置其工作參數。假設變頻器的設備地址為 0x03,保持寄存器地址為 0x0002 用于設置頻率,要將頻率設置為 50Hz(假設頻率值以整型存儲,且經過一定的換算),PLC 發送的寫單個保持寄存器請求幀為:03 06 00 02 00 32 [CRC 校驗碼],功能碼 06H 表示寫單個保持寄存器,00 32 為要寫入的頻率值(十六進制)。

4.2 故障排查與問題解決思路

在該工業自動化控制系統運行過程中,可能會出現各種與 Modbus 數據模型相關的故障,影響生產線的正常運行。以下是一些常見故障及對應的排查和解決方法:

  • 通信錯誤:通信錯誤是較為常見的故障,可能表現為主設備無法與從設備建立連接,或者在通信過程中出現數據丟失、亂碼等情況。遇到這種情況,首先檢查物理連接,包括網線、串口線等是否插好,有無破損或接觸不良。使用萬用表測試線纜的連通性,確保線路正常。接著確認通信參數設置,檢查主從設備的波特率、數據位、停止位、奇偶校驗等參數是否一致。若參數不一致,需將其調整為相同值。如果是 Modbus TCP 通信,還要檢查 IP 地址和端口號是否正確,網絡是否暢通,可通過 ping 命令測試設備之間的網絡連通性。
  • 數據讀取異常:數據讀取異常通常表現為讀取到的數據與實際值不符,或者讀取失敗返回錯誤信息。此時,先檢查寄存器地址是否正確,不同設備的寄存器地址映射可能不同,需仔細核對設備手冊,確保主設備請求的寄存器地址與從設備實際存儲數據的地址一致。同時,查看功能碼是否匹配,不同的讀取操作對應不同的功能碼,如讀輸入寄存器用 04H,讀保持寄存器用 03H,若功能碼錯誤,將無法正確讀取數據。此外,還要考慮數據類型和字節順序的問題,有些設備在存儲和傳輸數據時可能采用不同的數據類型和字節順序,需要進行相應的轉換和處理。比如,有些設備以大端序存儲數據,而主設備按小端序解析,就會導致數據讀取錯誤,此時需要在主設備端進行字節順序轉換。
  • 寫入操作失敗:寫入操作失敗可能是由于線圈或寄存器狀態無法被正確設置,或者從設備返回錯誤響應。排查時,檢查寫入的數據是否在設備允許的范圍內,如寫單個線圈時,只能寫入 0xFF00(ON)或 0x0000(OFF),寫保持寄存器時,寫入的數據需符合設備的參數范圍。同時,查看從設備的狀態和錯誤信息,有些從設備會返回錯誤代碼,通過查閱設備手冊,可以了解錯誤原因,如設備忙、寫保護等。若是設備忙導致寫入失敗,可以增加重試機制,在適當的時間間隔后再次嘗試寫入操作;若是寫保護問題,需要解除寫保護后再進行寫入。
  • CRC 校驗錯誤:CRC 校驗錯誤表示數據在傳輸過程中可能被篡改或損壞,導致校驗和不一致。出現這種錯誤,首先檢查通信線路的干擾情況,工業環境中可能存在電磁干擾,影響數據傳輸的準確性。可以采取屏蔽措施,使用屏蔽線纜,并確保屏蔽層接地良好,減少干擾。另外,檢查設備的通信芯片和電路是否正常,如有損壞,需及時更換。同時,還可以考慮增加數據校驗的可靠性,如采用更復雜的校驗算法,或者多次校驗取平均值等方法,提高數據傳輸的準確性。

五、總結與展望

5.1 Modbus 數據模型要點回顧

Modbus 數據模型作為 Modbus 協議的核心,由線圈和寄存器組成,是實現設備通信與控制的關鍵。線圈以二進制位的形式存在,能夠精確控制設備的離散輸出,如同掌控設備的 “開關鑰匙”,在設備狀態監測與控制方面發揮著不可或缺的作用。寄存器則分為保持寄存器、輸入寄存器和離散輸入寄存器,各自承擔著不同的職責。保持寄存器可讀寫,是存儲設備配置參數、控制命令和測量值的重要場所;輸入寄存器只讀,專注于存放傳感器等外部設備采集的實時數據;離散輸入寄存器同樣只讀,用于反映設備的離散輸入狀態。這些寄存器共同構建了一個完整的數據存儲與交互體系,為設備的穩定運行和高效控制提供了堅實的數據基礎。

Modbus 功能碼是實現設備通信的 “指令集”,它分為公共功能碼、用戶自定義功能碼和保留功能碼三類。公共功能碼經過權威認證,具有明確的定義和廣泛的應用,是實現設備基本通信功能的核心指令;用戶自定義功能碼為用戶提供了根據特定需求定制功能的靈活性;保留功能碼則主要由于歷史原因存在,通常不用于公共應用。常用功能碼如讀線圈狀態、讀離散輸入狀態、讀保持寄存器、讀輸入寄存器、寫單個線圈、寫單個保持寄存器、寫多個線圈和寫多個保持寄存器等,通過特定的指令格式和響應格式,實現了主設備與從設備之間的數據交互與設備控制,是 Modbus 通信的關鍵實現方式。

5.2 未來發展趨勢與應用拓展

隨著工業 4.0 和智能制造的深入發展,工業通信領域正經歷著深刻的變革,Modbus 協議作為工業通信的重要組成部分,也將迎來新的發展機遇與挑戰。在未來,Modbus 協議有望在以下幾個方面實現突破與發展。

首先,在技術演進方面,Modbus 協議將不斷融合新興技術,以提升其性能和功能。隨著 5G 技術的普及,Modbus 通信將借助 5G 的高速率、低延遲和大連接特性,實現更高效、更實時的數據傳輸,進一步滿足工業自動化對實時性和可靠性的嚴格要求。在智能工廠中,通過 5G 與 Modbus 的結合,設備之間的通信速度將大幅提升,生產過程的實時監控和遠程控制將更加精準和迅速,有助于提高生產效率和產品質量。同時,物聯網技術的發展也將為 Modbus 協議帶來新的活力。Modbus 設備將更加緊密地融入物聯網生態系統,實現與其他物聯網設備的無縫連接和數據共享,為構建智能化、網絡化的工業環境提供支持。在智能家居領域,Modbus 設備可以與其他智能家電通過物聯網進行互聯互通,實現家居設備的統一控制和智能化管理。

其次,在應用領域拓展方面,Modbus 協議將在更多新興領域展現其價值。除了傳統的工業自動化領域,智能交通、智能電網、智慧城市等領域對 Modbus 協議的需求也在逐漸增加。在智能交通系統中,Modbus 協議可用于交通信號燈的控制、車輛檢測系統的數據傳輸以及公共交通調度等,通過實時監控和控制交通設備,優化交通流量,提高交通效率。在智能電網中,Modbus 協議能夠實現對電力設備的遠程監測和控制,如智能電表的數據采集、變電站設備的狀態監控等,有助于提升電網的智能化管理水平和供電可靠性。在智慧城市建設中,Modbus 協議可應用于環境監測、照明控制、樓宇自動化等多個方面,為城市的智能化運行和管理提供有力支持。

此外,隨著網絡安全問題日益受到重視,Modbus 協議的安全性也將成為未來發展的重點關注方向。未來,Modbus 協議可能會引入更強大的安全機制,如加密技術、身份認證、訪問控制等,以保護設備通信數據的安全,防止數據被竊取、篡改或惡意攻擊。這將有助于提升 Modbus 協議在關鍵基礎設施領域的應用安全性,推動其在更多對安全性要求較高的場景中得到應用。

Modbus 數據模型、寄存器與功能碼構成了 Modbus 協議的核心體系,在工業通信中發揮著不可替代的作用。隨著技術的不斷進步和應用需求的不斷增長,Modbus 協議將持續演進和拓展,為工業自動化和智能化發展注入新的動力,在更廣闊的領域中綻放光彩 。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86627.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多表連接查詢:語法、注意事項與最佳實踐

🔗 多表連接查詢:語法、注意事項與最佳實踐 多表連接是 SQL 的核心能力,用于關聯多個表的數據。以下是深度解析,涵蓋語法規范、性能陷阱及實戰技巧: 📜 一、多表連接語法大全 1. 顯式連接(推薦…

使用Calibre對GDS進行數據遍歷

在芯片的GDS數據里,使用Calibre對數據進行處理是非常常見的操作,但是GDS是一種和常規設計結構不太一樣的一種數據,這里,通過這個小小的科普文章,一起看看怎么樣在GDS里邊做數據漫游吧!閑言少敘,…

PyQtNode Editor 第二篇自定義可視化視圖

在第一篇博客中,我們已經完成了 PyQtNode Editor 的基礎環境搭建,并深入解析了自定義圖形場景QDMGraphicsScene的實現原理。那個帶有網格背景的場景就像一張空白的圖紙,現在我們要在這張圖紙上開始繪制真正的節點系統。 今天我們將聚焦于節點編輯器的核心數據結構設計,實現…

【擴歐應用】同余方程

與擴歐的聯系 在同余方程的求解過程中,我們通常需要將方程轉化為線性不定方程(Diophantine 方程)的形式,然后使用擴展歐幾里得算法(Extended Euclidean Algorithm, EEA)求解。 同余方程是怎么轉化為線性不…

結構化數據:NumPy 的結構化數組

文章目錄 結構化數據:NumPy 的結構化數組探索結構化數組的創建更高級的復合類型記錄數組:結構化數組的變體走向 Pandas 結構化數據:NumPy 的結構化數組 雖然我們的數據通常可以用同質數組很好地表示,但有時情況并非如此。本文將演…

phpcms 更換新域名更新欄目url和內容頁url無法更新解決方法

更換域名后更新欄目url和內容頁url還是無法更新為新的域名,手動把cache文件夾下能清除的緩存文件清除了還是不行,把數據庫的緩存表內容清空了還是不行,問題在于欄目緩存并沒有清除。 解決辦法: (1)、找到文件:/caches/configs/sys…

瑪哈特七輥矯平機:板材平整的精密衛士

在金屬板材加工領域,表面平整度是衡量產品質量的核心指標之一。無論是汽車覆蓋件、精密儀器外殼,還是建筑裝飾板材,任何彎曲、波浪或翹曲都將嚴重影響后續加工精度、產品強度及美觀度。七輥矯平機,憑借其獨特的輥系結構設計&#…

融合聚類與分類的退役鋰電智能分選技術:助力新能源汽車產業可持續發展

融合聚類與分類的退役鋰電智能分選技術:助力新能源汽車產業可持續發展 關鍵詞:退役鋰離子電池分選 | 聚類分類融合 | 電化學阻抗譜(EIS) | 動態時間規整(DTW) | 多模態分類模型 新能源汽車 | 電池梯次利用 | 增量學習 | 數字孿生 | 聯邦學習 | 雙流特征…

jenkins中執行python腳本導入路徑錯誤

🧾 問題一:ModuleNotFoundError: No module named jenkins 🔍 現象: 在本地運行正常,但在 Jenkins 中運行腳本時報錯,提示找不到 jenkins 模塊。 ? 原因分析: Python 默認只從當前目錄或已…

華為云Flexus+DeepSeek征文 | 華為云ModelArts Studio實戰指南:創建高效的AingDesk知識庫問答助手

華為云FlexusDeepSeek征文 | 華為云ModelArts Studio實戰指南:創建高效的AingDesk知識庫問答助手 前言一、ModelArts Studio介紹1. 華為云ModelArts Studio簡介2. 華為云ModelArts Studio主要特點3. 華為云ModelArts Studio主要使用場景 二、AingDesk介紹1. AingDes…

NLP基礎1_word-embedding

基于github項目:https://github.com/shibing624/nlp-tutorial/tree/main 自然語言處理任務 1) 簡單任務 拼寫檢查 Spell Checking 關鍵詞檢索 Keyword Search 同義詞查找 Finding Synonyms 2) 中級任務 解析來自網站、文檔等的信息 3) 復雜任務 機器翻譯 Ma…

ClickHouse系列--BalancedClickhouseDataSource實現

clickhouse-jdbc中負載均衡數據源的實現。 基本邏輯如下: 1.通過配置的url串,來切分構造url列表; 2.通過一個定時線程任務,來不斷的去ping url列表,來更新可用的url列表; 3.在可用列表中隨機返回一個可用ur…

Linux目錄說明

Linux Filesystem Hierarchy Standard(FHS) 1. /bin 全稱:Binary(二進制文件)功能:存放系統最基礎的可執行命令,所有用戶(包括普通用戶)都能使用,用于系統啟…

鴻蒙 Grid 與 GridItem 深度解析:二維網格布局解決方案

一、引言:網格布局 —— 多維度數據展示的黃金方案 在鴻蒙應用開發體系中,網格布局作為處理多元素有序排列的核心方案,廣泛應用于電商商品陳列、圖片畫廊、功能矩陣等場景。鴻蒙提供的 Grid 與 GridItem 組件通過聲明式語法構建靈活的二維布…

??Vue 開發環境配置:使用 devServer.proxy 解決跨域問題?-vue中文件vue.config,js中配置devserver做反向代理到后端

??Vue 開發環境配置:使用 devServer.proxy 解決跨域問題?? ??引言?? 在現代 Web 開發中,前端和后端通常獨立開發,前端運行在 http://localhost:8080,而后端可能運行在 http://localhost:8000 或其他端口。由于瀏覽器的 …

JVM 中的 GC 算法演進之路!(Serial、CMS、G1 到 ZGC)

引言 想象一下,Java 程序運行就像在一個巨大的圖書館里借書還書。這個圖書館(JVM 的內存堆區)為了高效運轉,需要一個聰明的“圖書管理員”來清理失效的書籍(垃圾對象)。這,就是垃圾回收器&#…

(9)python+playwright自動化測試-頁面(page)

1.簡介 通過前邊的講解和學習,細心認真地你可能發現在Playwright中,沒有Element這個概念,只有Page的概念,Page不僅僅指的是某個頁面,例如頁面間的跳轉等,還包含了所有元素、事件的概念,所以我們…

《自動控制原理 》- 第 1 章 自動控制的基本原理與方式

1-1 自動控制的基本原理與方式 自動控制是指在沒有人直接參與的情況下,利用外加的設備或裝置,使機器、設備或生產過程的某個工作狀態或參數按照預定的規律運行。自動控制的核心原理是反饋控制,即通過將系統的輸出量回送到輸入端,與…

DL00715-基于YOLOv11的水面漂浮物目標檢測含數據集

【論文必備】基于YOLOv11的水面漂浮物目標檢測——讓你的研究走在科技前沿! 在環境監測、海洋保護和水質管理領域,水面漂浮物的檢測一直是一個亟待解決的難題。傳統的人工巡檢方式不僅耗時費力,還無法覆蓋廣泛的水域范圍。如今,基…

權電阻網絡DAC實現電壓輸出型數模轉換Multisim電路仿真——硬件工程師筆記

目錄 1 基礎知識 1.1 運算放大器在DAC中的作用 1.2 常見的基于運算放大器的DAC電路 1.2.1 倒T形電阻網絡DAC 1.2.2 權電阻網絡DAC 1.2.3 開關電容DAC 1.3 運算放大器的選擇 1.4 設計注意事項 2 仿真實驗 2.1 權電阻網絡DAC實現數字0對應電壓輸出 2.2 權電阻網絡DAC實…