<big id="ferl7"></big>

        <label id="ferl7"><sub id="ferl7"><rt id="ferl7"></rt></sub></label>

          modbusRTU問(wèn)題匯總

          一、ModBusRTU通訊協(xié)議與ModBus通訊協(xié)議有什么區別?

          ModBus協(xié)議是應用層報文傳輸協(xié)議(OSI模型第7層),它定義了一個(gè)與通信層無(wú)關(guān)的協(xié)議數據單元(PDU),即PDU=功能碼+數據域。

               ModBus協(xié)議能夠應用在不同類(lèi)型的總線(xiàn)或網(wǎng)絡(luò )。對應不同的總線(xiàn)或網(wǎng)絡(luò ),Modbus協(xié)議引入一些附加域映射成應用數據單元(ADU),即ADU=附加域+PDU。目前,Modbus有下列三種通信方式:

          1.以太網(wǎng),對應的通信模式是MODBUSTCP。

          2.異步串行傳輸(各種介質(zhì)如有線(xiàn)RS-232-/422/485/;光纖、無(wú)線(xiàn)等),對應的通信模式是MODBUSRTUMODBUSASCII。

          3.高速令牌傳遞網(wǎng)絡(luò ),對應的通信模式是ModbusPLUS。

           

          二、關(guān)于MODBUSRTU通訊協(xié)議的提問(wèn)?

          modbus 主要由站地址(一個(gè)字節)+功能碼(一個(gè)字節)+首地址(兩個(gè)字節)+訪(fǎng)問(wèn)字數(兩個(gè)字節)+校驗碼(CRC16LRC兩個(gè)字節)總共8個(gè)字節組成。其實(shí)VB中編程很簡(jiǎn)單從組建添加MSComm組建就行了,難的是校驗,

           

          三、modbus、rtu、modbusrtu分別是什么?

               modbus協(xié)議是工控行業(yè)的標準協(xié)議,前身為莫迪康所寫(xiě),現已被施奈德收購。

          modbus分為兩種協(xié)議:即串口協(xié)議(modbusrtu)和網(wǎng)口協(xié)議(modbustcp)協(xié)議,一般的工控機只支持rs232或者RS485的串口模式,這個(gè)時(shí)候工控機的協(xié)議棧里就只有modbusRTU協(xié)議,當他從串口接收到數據時(shí),會(huì )直接根據報文中的數據進(jìn)行控制,如果需要用modbusTCP協(xié)議進(jìn)行傳輸,則需要使用帶有網(wǎng)口的PLC。

          具體的幀格式如下:

          modbusRTU  地址域功能碼數據差錯校驗

          modbusTCP  目的地址協(xié)議id 長(cháng)度單元號功能碼數據

          簡(jiǎn)單的說(shuō) tcp是由RTU加工而來(lái)的,而RTU則是另外一種概念,不包含在modus協(xié)議內,是工控行業(yè)對監控設備的簡(jiǎn)稱(chēng)。

           

          四、關(guān)于modbus_RTU協(xié)議主機發(fā)送的命令的一些問(wèn)題

          01 讀保持線(xiàn)圈狀態(tài)(Read coilstatus

          02 讀輸入線(xiàn)圈狀態(tài)(Readinput status

          03 讀保持寄存器(Readholding register

          04 讀輸入寄存器(Readinput register

          05 寫(xiě)單個(gè)線(xiàn)圈(Forcesingle coil

          06 寫(xiě)單個(gè)寄存器(Presetsingle register

          15 寫(xiě)多個(gè)線(xiàn)圈(Forcemultiple coils

          16 寫(xiě)多個(gè)寄存器(Presetmultiple registers

           

          這些都是什么意思

          答:01 讀取邏輯線(xiàn)圈組狀態(tài)

          02 讀取離散量線(xiàn)圈組狀態(tài)

          03 讀取一個(gè)或多個(gè)保持寄存器的二進(jìn)制值

          04 讀取一個(gè)或多個(gè)輸入寄存器的二進(jìn)制值

          05 改變邏輯線(xiàn)圈狀態(tài)

          06 改變單個(gè)寄存器的二進(jìn)制值

          15 改變多個(gè)寄存器的二進(jìn)制值

          16 指定多個(gè)操持寄存器的二進(jìn)制值

           

          五、OPCmodbusRTU 方式我現在有一個(gè)OPC服務(wù)器,里面很多tag,tagAB里出來(lái)的,怎么將tag連到modbus?

          Profibus、Fielbus、Modbus、CC-link等等是各中PLC硬件支持的通訊協(xié)議,這個(gè)是各廠(chǎng)商的硬件屬性一樣.只是現在計算機組態(tài)軟件都支持很多種協(xié)議的PLC.你理解反了。

          Profibus、Fielbus、Modbus、CC-link這些協(xié)議,是一種通訊協(xié)議,一般不需要你去編程,就好象你使用計算機,你不需要編寫(xiě)IP協(xié)議一樣,只是要遵循它。

              遵循的意思就是,你必須按照該廠(chǎng)家所支持的協(xié)議在PLC或者DCS硬件組態(tài)的時(shí)候按照該通訊協(xié)議設置硬件.其實(shí)這個(gè)很簡(jiǎn)單.這里簡(jiǎn)單指的是,你學(xué)編程,重點(diǎn)是編寫(xiě)執行控制的動(dòng)作的程序,硬件通訊協(xié)議不需要你自己動(dòng)手寫(xiě)。

           

          六、什么是modbusrtu master?

          就是選RTU模式,因為MODBUS分為ASCII模式和RTU模式,MASER就是設置為主站,一般為PLC端,變頻器設為從站,還要注意主站和從站地址的設置。

           

          七、Modbusrtu 為什么沒(méi)有開(kāi)始和結束標記?

          由于Modbusrtu幀的每個(gè)字節是16進(jìn)制數,數值范圍在00~FF,若像ModbusASCII那樣用02、03表示開(kāi)始和結束標記,則與數值2、3發(fā)生沖突,無(wú)法判斷其是標記還是數值,無(wú)法數據解包。

           

          八、modbustcp  rtu的轉換?

          請仔細查看幀格式:

          modbusRTU 地址域功能碼數據差錯校驗

          modbusTCP 目的地址協(xié)議id 長(cháng)度單元號功能碼數據

          寫(xiě)一個(gè)TCPRTU的程序放到設備里做modbus網(wǎng)橋即可

           

          九、MODBUSRTU通訊線(xiàn)被燒?

          用萬(wàn)用表量一下出來(lái)的通訊線(xiàn),電壓不超過(guò)5V應該沒(méi)問(wèn)題,一般不會(huì )燒東西,接的時(shí)候區分正和負。很多產(chǎn)品B是正,量一下看看。

           

          十、觸摸屏modbusrtu怎么設置?

          一般是通過(guò)宏指令自己編程實(shí)現,當然也有支持RTU的,在通訊類(lèi)型菜單

           

          十一、MODBUSRTU協(xié)議中浮點(diǎn)數是如何存儲,讀到浮點(diǎn)數寄存器的數值如何轉換成所需的浮點(diǎn)數?

          浮點(diǎn)數保存的字節格式如下:

          地址  +0         +1         +2           +3

          內容 SEEE EEEE   EMMM MMMM   MMMM MMMM    MMMM MMMM

           

          這里代表符號位,1是負,0是正

          偏移127的冪,二進(jìn)制階碼=EEEEEEEE-127。

          M24位的尾數保存在23位中,只存儲23位,最高位固定為1。此方法用最較少的位數實(shí)現了較高的有效位數,提高了精度。零是一個(gè)特定值,冪是0尾數也是0。

          浮點(diǎn)數-12.5作為一個(gè)十六進(jìn)制數0xC1480000保存在存儲區中,這個(gè)值如下:

          地址 +0    +1     +2    +3

          內容0xC1  0x48   0x00  0x00

          浮點(diǎn)數和十六進(jìn)制等效保存值之間的轉換相當簡(jiǎn)單。下面的例子說(shuō)明上面的值-12.5如何轉換。浮點(diǎn)保存值不是一個(gè)直接的格式,要轉換為一個(gè)浮點(diǎn)數,位必須按上面的浮點(diǎn)數保存格式表

          所列的那樣分開(kāi),例如:

          地址  +0          +1           +2            +3

          格式 SEEEEEEE  EMMM MMMM     MMMM MMMM     MMMM MMMM

          二進(jìn)制11000001  01001000    00000000     00000000

          十六進(jìn)制  C1        48         00        00

           

          從這個(gè)例子可以得到下面的信息:

          符號位是表示一個(gè)負數  冪是二進(jìn)制10000010或十進(jìn)制130,130減去1273,就是實(shí)際的冪。  尾數是后面的二進(jìn)制數10010000000000000000000

          在尾數的左邊有一個(gè)省略的小數點(diǎn)和1,這個(gè)1在浮點(diǎn)數的保存中經(jīng)常省略,加上一個(gè)1和小數點(diǎn)到尾數的開(kāi)頭,得到尾數值如下:

          1.10010000000000000000000

          接著(zhù),根據指數調整尾數.一個(gè)負的指數向左移動(dòng)小數點(diǎn).一個(gè)正的指數向右移動(dòng)小數點(diǎn).因為指數是3,尾數調整如下:

          1100.10000000000000000000

          結果是一個(gè)二進(jìn)制浮點(diǎn)數,小數點(diǎn)左邊的二進(jìn)制數代表所處位置的2的冪,例如:1100表示

          1*2^3+1*2^2+0*2^1+0*2^0=12。

          小數點(diǎn)的右邊也代表所處位置的2的冪,只是冪是負的。例如:.100...表示(1*2^-1))+0*2^-2))+0*2^-2))...=0.5。

          這些值的和是12.5。因為設置的符號位表示這數是負的,因此十六進(jìn)制值0xC1480000表示-12.5。

           

          十二、RS-485的設備,遵守MODBUS-RTU協(xié)議。怎樣用的電腦讀取信息?

          用電腦的串口,接個(gè)485轉換器,接到設備的485接口,再找個(gè)串口軟件,根據設備資料上的寄存器地址發(fā)送modbus報文,modbus報文通過(guò)串口軟件發(fā)送啊,報文格式:0103 00 00 00 01 840A 讀寄存器命令。

           

          十三、vbmodbusmodScan32rtu發(fā)送數據應該怎么寫(xiě)?

          確定兩個(gè)軟件哪個(gè)是主,哪個(gè)是從。然后再確定通訊協(xié)議是RTU、ASCII還是TCP。如果是TCP,就用socket控件。RTU\ASCII就用COM控件。然后給對應的口按照協(xié)議收發(fā)數并解析就可以了。

           

          十四、ModBusRTU通訊協(xié)議與ModBus通訊協(xié)議有什么區別?

          modbus 協(xié)議包括了MODBUSRTU

           

          十五、modbusrtu通訊協(xié)議如何判斷超時(shí)?

          設置一個(gè)標志量用來(lái)表示是否超時(shí);再用一個(gè)定時(shí)器,定時(shí)時(shí)長(cháng)為發(fā)送3.5個(gè)字符的時(shí)間(當然為了保險時(shí)間可以長(cháng)一些);在定時(shí)器中置超時(shí)標志;在串口中斷中每收到一個(gè)字節時(shí)定時(shí)器清零;主程序中根據超時(shí)標志做相應處理。

           

          十六、如何理解MODBUS協(xié)議RTU模式中的1.53.5字符間隔?

          發(fā)送兩幀數據之間要有一定的時(shí)間間隔,以保證接收方UART能夠區分。這個(gè)時(shí)間間隔在MODBUSRTU模式中要求是1.53.5字符間隔,也即是傳輸1.53.5個(gè)字符的時(shí)間,它與設置的通信參數有關(guān),計算為:

          若串口通信參數設置為(注:開(kāi)始位固定為1):數據位8,奇偶校驗位1,停止位1,波特率9600bps,則傳輸一個(gè)字符(即1個(gè)字節)的時(shí)間為:(1+8+1+1/9600=0.00114583s=1.1454583ms

          1.5字符間隔=1.5x1.1454583ms=1.71818745ms

          3.5字符間隔=3.5x1.1454583ms=4.00910405ms

           

          十七、MODBUSRTU 測試軟件?

          推薦:modscan32  還有最新得mobus poll

           

          十八、MODBUSRTU協(xié)議,上位機與儀表通信,讀寫(xiě)數據都正確,為什么儀表掉電,寫(xiě)入的參數又丟失了?怎么保存?

          兩種可能:

          1.如果在儀表上設置參數掉電后都保存不了的話(huà),基本可以確定是儀表問(wèn)題;

          2.有些儀表寫(xiě)入參數后還需要向固定的寄存器寫(xiě)入確認參數,為了保證寫(xiě)入參數真確,需要檢查儀表通信部分說(shuō)明書(shū)。

          国产AV无码专区亚洲AV|欧美色中文字幕在线|欧美a级毛欧美|亚洲国产激情一区二区|亚洲gv天堂gv无码男同
          <big id="ferl7"></big>

              <label id="ferl7"><sub id="ferl7"><rt id="ferl7"></rt></sub></label>