資料庫資料轉ModbusTCP訪問

2021-10-07 09:55:07 字數 973 閱讀 1752

目標:編寫乙個程式將資料庫裡某個表的資料提取出來,轉換成能供支援modbustcp協議裝置讀取的值

編寫內容:資料庫值獲取、資料型別(進製)轉換、moubustcp從機建立、資料存入從機保持暫存器(4***x)、多執行緒處理

一、各內容部分特點:

1、 資料庫值獲取

資料 庫為遠端sqlserver 資料庫,嘗試了兩個python庫:pypyodbc和pymssql,只有pymssql能遠端連線資料庫,pypyodbc也是很不錯的。因此採用pymssql 庫。資料庫裡的資料內容如下:每個stationnum的值是唯一的,要求需要根據這個值計算存入暫存器的暫存器的位址段。

2、資料型別(進製)轉換

從資料庫裡除了stationnum外,其他值都是實數,因為每個暫存器的長度是16位,需要存實數的話,需要將實數(32位)轉化 成兩個16位的數存到兩個暫存器中,因此此處需要編寫 這樣的乙個方法。

3、moubustcp從機建立

採用modbus_tk庫,該庫功能比較豐富,modbusrtu等這些都可以採用該庫

4、資料存入從機保持暫存器(4***x)

前面提到需要根據stationnum計算存入暫存器的暫存器的位址段,因此也需要編寫這樣乙個計算暫存器位址的方法,同時以上的每個數經轉化後需要兩個暫存器來儲存。

5、多執行緒處理 

由於暫存器裡儲存的是資料庫裡實時的資料,因此需要把資料庫裡實時的資料及時更新到暫存器裡,此處採用生產消費者模型方式協調從資料庫裡讀數、資料存入暫存器這樣的一種方式,減少記憶體的負荷。

二、成果展示

用modscan測試完全 正常.(ps:溝通交流)

mongodb資料轉mysql資料庫

from pymongo import mongoclient import pymysql class mongo2mysql object defenable mysql self,mysql host,mysql port,database,username,password,charset ...

mysqldump資料庫轉儲

mysqldump是乙個對資料庫轉儲的命令,其附帶了很多功能的引數,下面將列舉一些比較常用的!首先你可以通過以下命令獲得mysqldump的引數的幫助文件 用法 usage mysqldump options database tables or mysqldump options database...

ArcSDE轉本地MDB資料庫

乙個轉換類,將arcsde上特定要素資料集轉到本地的mdb中 using system using system.collections.generic using system.io using system.threading using esri.arcgis.geodatabase usin...