通訊網關軟件030——利用 X2Modbus實現(xiàn)Modbus RTU
本文介紹利用CommGate X2Modbus實現(xiàn)Modbus RTU訪問Mysql數(shù)據(jù)庫。CommGate X2MODBUS是寧波科安網信開發(fā)的網關軟件,軟件可以登錄到網信智匯(wangxinzhihui.com)下載。 【案例】如下圖所示,實現(xiàn)上位機通過Modbus RTU來獲取Mysql數(shù)據(jù)庫的數(shù)據(jù)。
【解決方案】設置網關機,與Mysql采用以太網通訊,與Modbus RTU Master上位機采用串口通訊,安裝CommGate X2MODBUS軟件。 1)MS SQL數(shù)據(jù)表結構要求:
a)?至少要求具備ID、name、value三個字段。 b)?name:標簽名稱,字符類型 c)?value:數(shù)值,可以是字符類型或浮點類型 d)?state:不是必須的,整型類型,1表示好值 0表示壞值 e)?time:不是必須,可以是datetime或bigint f)?以上字段名稱如不是name、value、state、time,需要在以下配置文件進行字段名稱的配置 ? 2)Mysql通訊調試:在網關機上運行Mysql調試工具,與Mysql服務器通訊調試。通訊正常后,記下通訊參數(shù)。 3)配置X2MODBUS 出口端參數(shù):在X2MODBUS安裝目錄Ini下編輯X2MODBUS.ini,修改出口端參數(shù)。
[OUT]
;通訊類型Modbus RTU,不做修改 Type=MODBUS_RTU ?;串口 Port=1 ;設備地址 DeviceID=1 ;波特率 Baud=9600 ;校驗位 NONE:無校驗 ODD:奇校驗 EVEN:偶校驗 Parity=NONE ;停止位?1、1.5、2 Stopbits=1 ;數(shù)據(jù)位 7、8 Databits=8 ;通訊超時,單位ms,一般不做修改 Timeout=300 ;響應周期,單位ms,一般不做修改 ResponeTime=10 ;響應錯誤計數(shù)器超過ResErrCount,重啟進程 ResErrCount=10 ;浮點/雙精度字節(jié)順序類型?0:ABCD/ABCDEFGH 1:CDAB/GHEFCDAB 2:DCBA/HGFEDCBA 3:BADC/BADCFEHG SwapFloat=2 ;整型/長整型字節(jié)順序類型?0:ABCD/ABCDEFGH 1:CDAB/GHEFCDAB 2:DCBA/HGFEDCBA 3:BADC/BADCFEHG SwapInt=1 [IN] ;輸入端配置文件名,不含后綴 INI = Mysql ? Type = ? 4)配置X2MODBUS 入口端參數(shù):在X2MODBUS安裝目錄Ini下編輯Mysql.ini,按照剛才記下的通訊參數(shù)修改入口端參數(shù)。
[IN]
?;輸入源類型:MYSQL Server,不做修改 Type=MYSQL ?;MYSQL Server IP ServerIP=127.0.0.1 ?;MYSQL Server用戶 UserName=root ?;用戶密碼 Pwd=123456 ?;數(shù)據(jù)庫名稱 DB=test ?;Port 0表示采用默認端口 port = 0 ?;讀取數(shù)據(jù)的SQL語句,如果不設置的話,將由以下字段名自動構造 ;表中至少包含name,value字段 ;state字段不是必須的,沒有state字段時,必須構造1個虛擬state字段,如select name, value, 1 as state from snapshot ;State值 = 1 好值?=0 壞值 ?ReadSQL=select name, value, state, time from snapshot ?;定義Name字段名,默認為name NameField = name ?;定義Value字段名,默認為value ValueField = value ?;定義State字段名,默認為state StateField = state ?;定義Time字段名,可以不定義,默認為空,表示沒有Time字段 TimeField = time ? 5)標簽配置:在X2MODBUS安裝目錄下編輯X2MODBUS.xls,配置標簽。
6)運行X2MODBUS.exe,啟動網關。 7)modbus通訊調試:在上位機上運行modscan,與網關機進行modbus rtu通訊調試。 8)詳細配置說明見《X2MODBUS?V4使用手冊》。 ?更多通信資源請登錄網信智匯(wangxinzhihui.com)。