Keepalived –

參考

安裝

Debian 11

設定

參考文件有關 virtual_router_id 的範圍是錯的,是 1 ~ 255

編輯設定檔

172.16.1.175

172.16.1.173

  • virtual_router_id 同一組必須設定相同
  • state MASTER/BACKUP 角色
  • priority 當故障時接手優先順序,數字越大越高
  • virtual_ipaddress 虛擬出來的共同 IP

啟動及使用

2 台電腦都使用

啟動後,順利的話 172.16.1.39 就會由 2 台中的其中一台設定為虛擬 ip,網路中斷另一台就會自動設定該 ip 接手服務

453 total views, no views today

MariaDB – Spider 分片

安裝 Spider 存儲引擎

查詢 SPIDER 存儲引擎是否支援

設定

172.16.1.175 – Spider 主機

更新

建立分表規則

172.16.1.170 – backend1

172.16.1.173 – backend2

從 Spider 主機執行資料庫讀寫,

刪除

Error 1429: Unable to connect to foreign data source

73 total views, no views today

Python – RS485 + Modbus UART 半雙工切換傳送、接收教學

RS485

雙線、半雙工,如果使用的是 TTL, UART 這類的訊號轉換器,需要自己控制傳送、接收切換,切換的好不好是關鍵

Modbus

RS485 大多使用 Modbus RTU,格式如下

Name Length (bits) Function
Start 28 At least 3½ character times of silence (mark condition)
Address 8 Station address
Function 8 Indicates the function code; e.g., read coils/holding registers
Data n × 8 Data + length will be filled depending on the message type
CRC 16 Cyclic redundancy check
End 28 At least 3½ character times of silence between frames

CRC 參考資源

Modbus 通訊第一個程式門檻就是計算 CRC,這裡有大大寫好的可以直接套用

原始範例

list 陣列版

Python 使用 list 資料型態程式會比較靈活,因此實務上使用都是直接使用 list

完整的 Modbus 範例

RS485 為半雙工通訊,讀取、寫入必須自己根據字元數計算後控制模式,時序控制非常重要,不能使用 .flush(),那是全雙工用的功能

325 total views, no views today