Modbus RTU常見問題匯總
十 觸摸屏modbus rtu怎么設(shè)置?
一般是通過宏指令自己編程實現(xiàn),當然也有支持RTU的,在通訊類型菜單
十一 MODBUS RTU協(xié)議中浮點數(shù)是如何存儲,讀到浮點數(shù)寄存器的數(shù)值如何轉(zhuǎn)換成所需的浮點數(shù)?
浮點數(shù)保存的字節(jié)格式如下:
地址 +0 +1 +2 +3
內(nèi)容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
這里
S 代表符號位,1是負,0是正
E 偏移127的冪,二進制階碼=(EEEEEEEE)-127。
M 24位的尾數(shù)保存在23位中,只存儲23位,最高位固定為1。此方法用最較少的位數(shù)實現(xiàn)了較高的有效位數(shù),提高了精度。零是一個特定值,冪是0 尾數(shù)也是0。
浮點數(shù)-12.5作為一個十六進制數(shù)0xC1480000保存在存儲區(qū)中,這個值如下:
地址 +0 +1 +2 +3
內(nèi)容0xC1 0x48 0x00 0x00
浮點數(shù)和十六進制等效保存值之間的轉(zhuǎn)換相當簡單。下面的例子說明上面的值-12.5如何轉(zhuǎn)換。浮點保存值不是一個直接的格式,要轉(zhuǎn)換為一個浮點數(shù),位必須按上面的浮點數(shù)保存格式表
所列的那樣分開,例如:
地址 +0 +1 +2 +3
格式 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
二進制 11000001 01001000 00000000 00000000
十六進制 C1 48 00 00
從這個例子可以得到下面的信息:
符號位是1 表示一個負數(shù) 冪是二進制10000010或十進制130,130減去127是3,就是實際的冪。 尾數(shù)是后面的二進制數(shù)10010000000000000000000
在尾數(shù)的左邊有一個省略的小數(shù)點和1,這個1在浮點數(shù)的保存中經(jīng)常省略,加上一個1和小數(shù)點到尾數(shù)的開頭,得到尾數(shù)值如下:
1.10010000000000000000000
接著,根據(jù)指數(shù)調(diào)整尾數(shù).一個負的指數(shù)向左移動小數(shù)點.一個正的指數(shù)向右移動小數(shù)點.因為指數(shù)是3,尾數(shù)調(diào)整如下:
1100.10000000000000000000
結(jié)果是一個二進制浮點數(shù),小數(shù)點左邊的二進制數(shù)代表所處位置的2的冪,例如:1100表示
(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=12。
小數(shù)點的右邊也代表所處位置的2的冪,只是冪是負的。例如:.100...表示(1*2^(-1))+(0*2^(-2))+(0*2^(-2))...=0.5。
這些值的和是12.5。因為設(shè)置的符號位表示這數(shù)是負的,因此十六進制值0xC1480000表示-12.5。
十二 RS-485的設(shè)備,遵守MODBUS-RTU協(xié)議。怎樣用的電腦讀取信息?
用電腦的串口,接個485轉(zhuǎn)換器,接到設(shè)備的485接口,再找個串口軟件,根據(jù)設(shè)備資料上的寄存器地址發(fā)送modbus報文,modbus報文通過串口軟件發(fā)送啊,報文格式:01 03 00 00 00 01 84 0A 讀寄存器命令。
十三 vb modbus給modScan32 rtu發(fā)送數(shù)據(jù)應(yīng)該怎么寫?
確定兩個軟件哪個是主,哪個是從。然后再確定通訊協(xié)議是RTU、ASCII還是TCP。如果是TCP,就用socket控件。RTUASCII就用COM控件。然后給對應(yīng)的口按照協(xié)議收發(fā)數(shù)并解析就可以了。
十四 ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別?
modbus 協(xié)議包括了MODBUS RTU
十五 modbus rtu通訊協(xié)議 如何判斷超時?
設(shè)置一個標志量用來表示是否超時;再用一個定時器,定時時長為發(fā)送3.5個字符的時間(當然為了保險時間可以長一些);在定時器中置超時標志;在串口中斷中每收到一個字節(jié)時定時器清零;主程序中根據(jù)超時標志做相應(yīng)處理。
十六 如何理解MODBUS協(xié)議RTU模式中的1.5和3.5字符間隔?
發(fā)送兩幀數(shù)據(jù)之間要有一定的時間間隔,以保證接收方UART能夠區(qū)分。這個時間間隔在MODBUS RTU模式中要求是1.5和3.5字符間隔,也即是傳輸1.5和3.5個字符的時間,它與設(shè)置的通信參數(shù)有關(guān),計算為:
若串口通信參數(shù)設(shè)置為(注:開始位固定為1):數(shù)據(jù)位8,奇偶校驗位1,停止位1,波特率9600bps,
則傳輸一個字符(即1個字節(jié))的時間為:(1+8+1+1)/9600=0.00114583s=1.1454583ms
1.5字符間隔=1.5x1.1454583ms=1.71818745ms
3.5字符間隔=3.5x1.1454583ms=4.00910405ms
十七 MODBUS RTU 測試軟件?
推薦:modscan32
十八 MODBUS RTU協(xié)議,上位機與儀表通信,讀寫數(shù)據(jù)都正確,為什么儀表掉電,寫入的參數(shù)又丟失了?怎么保存?
兩種可能:
看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
評論