新聞中心

        Modbus RTU常見問題匯總

        作者: 時(shí)間:2016-12-16 來源:網(wǎng)絡(luò) 收藏
        十 觸摸屏modbus rtu怎么設(shè)置?
        一般是通過宏指令自己編程實(shí)現(xiàn),當(dāng)然也有支持RTU的,在通訊類型菜單
        十一 MODBUS RTU協(xié)議中浮點(diǎn)數(shù)是如何存儲(chǔ),讀到浮點(diǎn)數(shù)寄存器的數(shù)值如何轉(zhuǎn)換成所需的浮點(diǎn)數(shù)?
        浮點(diǎn)數(shù)保存的字節(jié)格式如下:
        地址 +0 +1 +2 +3
        內(nèi)容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
        這里
        S 代表符號(hào)位,1是負(fù),0是正
        E 偏移127的冪,二進(jìn)制階碼=(EEEEEEEE)-127。
        M 24位的尾數(shù)保存在23位中,只存儲(chǔ)23位,最高位固定為1。此方法用最較少的位數(shù)實(shí)現(xiàn)了較高的有效位數(shù),提高了精度。零是一個(gè)特定值,冪是0 尾數(shù)也是0。
        浮點(diǎn)數(shù)-12.5作為一個(gè)十六進(jìn)制數(shù)0xC1480000保存在存儲(chǔ)區(qū)中,這個(gè)值如下:
        地址 +0 +1 +2 +3
        內(nèi)容0xC1 0x48 0x00 0x00
        浮點(diǎn)數(shù)和十六進(jìn)制等效保存值之間的轉(zhuǎn)換相當(dāng)簡(jiǎn)單。下面的例子說明上面的值-12.5如何轉(zhuǎn)換。浮點(diǎn)保存值不是一個(gè)直接的格式,要轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù),位必須按上面的浮點(diǎn)數(shù)保存格式表
        所列的那樣分開,例如:
        地址 +0 +1 +2 +3
        格式 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
        二進(jìn)制 11000001 01001000 00000000 00000000
        十六進(jìn)制 C1 48 00 00
        從這個(gè)例子可以得到下面的信息:
        符號(hào)位是1 表示一個(gè)負(fù)數(shù) 冪是二進(jìn)制10000010或十進(jìn)制130,130減去127是3,就是實(shí)際的冪。 尾數(shù)是后面的二進(jìn)制數(shù)10010000000000000000000
        在尾數(shù)的左邊有一個(gè)省略的小數(shù)點(diǎn)和1,這個(gè)1在浮點(diǎn)數(shù)的保存中經(jīng)常省略,加上一個(gè)1和小數(shù)點(diǎn)到尾數(shù)的開頭,得到尾數(shù)值如下:
        1.10010000000000000000000
        接著,根據(jù)指數(shù)調(diào)整尾數(shù).一個(gè)負(fù)的指數(shù)向左移動(dòng)小數(shù)點(diǎn).一個(gè)正的指數(shù)向右移動(dòng)小數(shù)點(diǎn).因?yàn)橹笖?shù)是3,尾數(shù)調(diào)整如下:
        1100.10000000000000000000
        結(jié)果是一個(gè)二進(jìn)制浮點(diǎn)數(shù),小數(shù)點(diǎn)左邊的二進(jìn)制數(shù)代表所處位置的2的冪,例如:1100表示
        (1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=12。
        小數(shù)點(diǎn)的右邊也代表所處位置的2的冪,只是冪是負(fù)的。例如:.100...表示(1*2^(-1))+(0*2^(-2))+(0*2^(-2))...=0.5。
        這些值的和是12.5。因?yàn)樵O(shè)置的符號(hào)位表示這數(shù)是負(fù)的,因此十六進(jìn)制值0xC1480000表示-12.5。
        十二 RS-485的設(shè)備,遵守MODBUS-RTU協(xié)議。怎樣用的電腦讀取信息?
        用電腦的串口,接個(gè)485轉(zhuǎn)換器,接到設(shè)備的485接口,再找個(gè)串口軟件,根據(jù)設(shè)備資料上的寄存器地址發(fā)送modbus報(bào)文,modbus報(bào)文通過串口軟件發(fā)送啊,報(bào)文格式:01 03 00 00 00 01 84 0A 讀寄存器命令。
        十三 vb modbus給modScan32 rtu發(fā)送數(shù)據(jù)應(yīng)該怎么寫?
        確定兩個(gè)軟件哪個(gè)是主,哪個(gè)是從。然后再確定通訊協(xié)議是RTU、ASCII還是TCP。如果是TCP,就用socket控件。RTUASCII就用COM控件。然后給對(duì)應(yīng)的口按照協(xié)議收發(fā)數(shù)并解析就可以了。
        十四 ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別?
        modbus 協(xié)議包括了MODBUS RTU
        十五 modbus rtu通訊協(xié)議 如何判斷超時(shí)?
        設(shè)置一個(gè)標(biāo)志量用來表示是否超時(shí);再用一個(gè)定時(shí)器,定時(shí)時(shí)長(zhǎng)為發(fā)送3.5個(gè)字符的時(shí)間(當(dāng)然為了保險(xiǎn)時(shí)間可以長(zhǎng)一些);在定時(shí)器中置超時(shí)標(biāo)志;在串口中斷中每收到一個(gè)字節(jié)時(shí)定時(shí)器清零;主程序中根據(jù)超時(shí)標(biāo)志做相應(yīng)處理。
        十六 如何理解MODBUS協(xié)議RTU模式中的1.5和3.5字符間隔?
        發(fā)送兩幀數(shù)據(jù)之間要有一定的時(shí)間間隔,以保證接收方UART能夠區(qū)分。這個(gè)時(shí)間間隔在MODBUS RTU模式中要求是1.5和3.5字符間隔,也即是傳輸1.5和3.5個(gè)字符的時(shí)間,它與設(shè)置的通信參數(shù)有關(guān),計(jì)算為:
        若串口通信參數(shù)設(shè)置為(注:開始位固定為1):數(shù)據(jù)位8,奇偶校驗(yàn)位1,停止位1,波特率9600bps,
        則傳輸一個(gè)字符(即1個(gè)字節(jié))的時(shí)間為:(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 測(cè)試軟件?
        推薦:modscan32
        十八 MODBUS RTU協(xié)議,上位機(jī)與儀表通信,讀寫數(shù)據(jù)都正確,為什么儀表掉電,寫入的參數(shù)又丟失了?怎么保存?
        兩種可能:
        如果在儀表上設(shè)置參數(shù)掉電后都保存不了的話,基本可以確定是儀表問題;
        有些儀表寫入?yún)?shù)后還需要向固定的寄存器寫入確認(rèn)參數(shù),為了保證寫入?yún)?shù)真確,需要檢查儀表通信部分說明書。
        上一頁 1 2 下一頁

        關(guān)鍵詞: ModbusRTU常見問

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 渑池县| 莱西市| 塔河县| 西盟| 吉首市| 隆尧县| 原阳县| 溆浦县| 乐平市| 新丰县| 高青县| 理塘县| 黄梅县| 永川市| 茂名市| 集安市| 剑阁县| 建阳市| 前郭尔| 青州市| 平陆县| 云安县| 斗六市| 长垣县| 凤庆县| 林西县| 兖州市| 镇沅| 神池县| 寻乌县| 会昌县| 浠水县| 佛山市| 旬邑县| 汉阴县| 巴青县| 鹤山市| 松阳县| 武安市| 祁连县| 利川市|