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 接手服務

 534 total views,  1 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

 192 total views

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(),那是全雙工用的功能

 899 total views,  6 views today