閱讀 | 訂閱
閱讀 | 訂閱
數控機床

世紀星標準Modbus協議設備初始化字設置技巧

星之球激光 來源:華中數控2012-07-10 我要評論(0 )   

過去,在我們(men) 為(wei) 客戶做技術支持時常會(hui) 發生這樣的情況,由於(yu) 儀(yi) 表支持的Modbus協議與(yu) 我們(men) 軟件所支持的有一些細微區別,就會(hui) 導致世紀星讀出的數據與(yu) 實際數據不符合。要解決(jue) ...

 

過去,在我們(men) 為(wei) 客戶做技術支持時常會(hui) 發生這樣的情況,由於(yu) 儀(yi) 表支持的Modbus協議與(yu) 我們(men) 軟件所支持的有一些細微區別,就會(hui) 導致世紀星讀出的數據與(yu) 實際數據不符合。要解決(jue) 這個(ge) 問題,就必須重新定製一個(ge) 驅動提供給客戶進行更新,這樣一來,對於(yu) 客戶或者對於(yu) 我們(men) 技術支持人員都會(hui) 耽誤一定的時間,而且,某些客戶的現場沒有條件上網進行驅動更新,這樣就給客戶造成了更大的不便。

為(wei) 解決(jue) 這一問題,我們(men) 在總結常遇問題的基礎上,對世紀星中的Modbus驅動進行了改善,可以通過Modbus設備初始化字設置直接解決(jue) 以下三個(ge) 問題:

1)16位整數的字節順序的調整;

2)32位整數(或實數)字順序的調整;

3)寫(xie) 單個(ge) 寄存器時所使用功能碼的選擇。

 

初始化字格式為(wei) (XXX),每個(ge) X的值為(wei) 1或者為(wei) 0,括號為(wei) 半角符號,當初始化字設置為(wei) 空時,係統默認為(wei) (000)。

第一,16位整數的字節順序的調整:

第一個(ge) X:值為(wei) 0時,表示16位整數傳(chuan) 送時高字節在前,低字節在後;值為(wei) 1時,表示16位整數傳(chuan) 送時低字節在前,高字節在後。

例:設備傳(chuan) 送的16位整數(即兩(liang) 個(ge) 字節):12H 34H。當X值為(wei) 0時,賦值給變量的數據為(wei) 1234H(十進製數為(wei) 4660);當X值為(wei) 1時,賦值給變量的數據為(wei) 3412H(十進製數為(wei) 13330)。

第二,32位整數(或實數)字順序的調整:

第二個(ge) X:值為(wei) 0時,表示32位數據低字在前,高字在後;值為(wei) 1時,表示32位數據高字在前,低字在後。當讀取的數據為(wei) 32位的長整型或浮點數時,要搭配第一個(ge) X和第二個(ge) X配置讀取數據的字節順序。

 

以長整型為(wei) 例:

設備傳(chuan) 送的32位整數(即四個(ge) 字節):12H 34H 56H 78H。

當XX值為(wei) 00時,賦值給變量的數據為(wei) 56781234H(十進製數為(wei) 1450709556);

當XX值為(wei) 01時,賦值給變量的數據為(wei) 12345678H(十進製數為(wei) 305419896);

當XX值為(wei) 10時,賦值給變量的數據為(wei) 78563412H(十進製數為(wei) 2018915346);

當XX值為(wei) 11時,賦值給變量的數據為(wei) 34127856H(十進製數為(wei) 873625686)。

第三,寫(xie) 單個(ge) 寄存器時所使用功能碼的選擇:

第三個(ge) X:X值為(wei) 0時,使用06(06H)號功能碼向設備寫(xie) 入單字整數數據;X值為(wei) 1時,使用16(10H)號功能碼像設備寫(xie) 入單字整數數據。

例如:上位機要將設備地址為(wei) 2,寄存器地址為(wei) 5的16位寄存器設置為(wei) 18(12H):

當X值為(wei) 0時,上位機發送的命令為(wei) :02 06 00 05 00 12 19 F5;

第一個(ge) 字節:02,表示設備地址;

第二個(ge) 字節:06,為(wei) 功能碼字節,06號功能碼的作用為(wei) 預置單個(ge) 16位寄存器;

第三第四個(ge) 字節:0005,表示的是上位機發送命令所預置的寄存器的地址;

第五第六個(ge) 字節:0012H,表示上位機要將地址為(wei) 5的16位寄存器設置為(wei) 18(12H);

第七第八個(ge) 字節:19 F5,為(wei) CRC校驗字節。

當X值為(wei) 1時,上位機發送的命令為(wei) :02 10 00 05 00 01 02 00 12 70 D3。

第一個(ge) 字節:02,表示設備地址;

第二個(ge) 字節:10H(十進製為(wei) 16),為(wei) 功能碼字節;

第三第四個(ge) 字節:0005,表示的是上位機發送命令所預置的多個(ge) 寄存器的起始地址為(wei) 0005H;

第五第六個(ge) 字節:0001,表示上位機要進行設置的寄存器個(ge) 數;

第七個(ge) 字節:02,表示後麵跟著的2個(ge) 字節數據是要預置到指定寄存器中去的;

緊跟在第七個(ge) 字節後的兩(liang) 個(ge) 字節便是要預置到指定寄存器中的數據了;

最後兩(liang) 個(ge) 字節:9C08,為(wei) CRC校驗字節。

當初始化字為(wei) 空或者三個(ge) X值都為(wei) 0時,世紀星采用原版的Modbus驅動解析數據的方式進行存取數據。因此用戶在使用Modbus驅動進行通信時,可以暫時不設置初始化字,當取出的數據與(yu) 實際的數據相差較大時,再參考這篇文章進行調試,或者可直接聯係我們(men) 世紀星的技術支持人員幫助您調試

轉載請注明出處。

免責聲明

① 凡本網未注明其他出處的作品,版權均屬於(yu) fun88网页下载,未經本網授權不得轉載、摘編或利用其它方式使用。獲本網授權使用作品的,應在授權範圍內(nei) 使 用,並注明"來源:fun88网页下载”。違反上述聲明者,本網將追究其相關(guan) 責任。
② 凡本網注明其他來源的作品及圖片,均轉載自其它媒體(ti) ,轉載目的在於(yu) 傳(chuan) 遞更多信息,並不代表本媒讚同其觀點和對其真實性負責,版權歸原作者所有,如有侵權請聯係我們(men) 刪除。
③ 任何單位或個(ge) 人認為(wei) 本網內(nei) 容可能涉嫌侵犯其合法權益,請及時向本網提出書(shu) 麵權利通知,並提供身份證明、權屬證明、具體(ti) 鏈接(URL)及詳細侵權情況證明。本網在收到上述法律文件後,將會(hui) 依法盡快移除相關(guan) 涉嫌侵權的內(nei) 容。

網友點評
0相關評論
精彩導讀