欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    S2013,串口程序編寫和調試;參照網文,整理。

    開發環境:VS2013

    串口控件

    電腦:win7,32版本

    準備:

    · 1、下載串口控件:

    鏈接:http://pan.baidu.com/s/1geD2AUf 密碼:yfxo

    壓縮包包含四個文件:MSCOMM.SRG、MSCOMM32.DEP、MSCOMM32.oca、mscomm32.ocx;

    解壓后拷貝到:

    C:\Windows\System32(WIN7、Win8、Win10系統);

    C:\WINDOWS\system32(XP系統)。

    注意:64位win7、8、10系統還需要將mscomm32.ocx文件復制到C:\Windows\SysWOW64\目錄下,否則后面注冊會出錯。


    2、在C:\Windows\System32里找到cmd.exe以管理員身份運行:

    Regsvr32 C:\WINDOWS\system32\MSCOMM32.OCX

    注冊成功如圖所示:


    3、修改注冊表:win+R組合鍵打開“運行”或者直接在開始菜單里找到“運行”;輸入regedit后回車,打開注冊表管理器,在其中找到HKEY_CLASSES_ROOT項下的Licenses項,添加主項命名為“4250E830-6AC2-11cf-8ADB-00AA00C00905”,并將鍵值修改為“kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun”

    4、新建MFC工程:在VS 2013中新建一個MFC項目,比如基于對話框的一個項目

    5、添加MSComm控件:在對話框上右擊選擇“打開ActiveX控件”,英文版“InsertActiveX Control”找到Microsoft Communications Control,version 6.0,此時在對話框中出現一個電話一下的按鈕,這個就是MSComm控件,軟件運行時是看不見的


    6、按你需要的,添加對話框控件:

    7、在電話控件上添加映射變量;完成后, 在工程中會自動生成mscomm.h 和mscomm.cpp兩個文件;

    8、在串口控件上右鍵,添加控件事件處理函數:



    11、打開串口按鈕回調函數編寫:

    CString portnums = _T("0");//定義串口編號,默認值串口編號為0

    void Cport_demonstrationDlg::OnBnClickedBottonOpen()

    {

    // TODO: 在此添加控件通知處理程序代碼

    Edit.GetWindowText(portnums);//獲取編輯框中的串口編號

    int flag = _ttoi(portnums);//將其轉化為數值類型

    if (flag)//如果輸入的串口編號為正整數,才執行下列命令

    {

    if (m_mscomm.get_PortOpen())

    {

    m_mscomm.put_PortOpen(FALSE);

    }

    一、ModBus RTU通訊協議與ModBus通訊協議有什么區別?

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


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

    1.以太網,對應的通信模式是MODBUSTCP。


    2.異步串行傳輸(各種介質如有線RS-232-/422/485/;光纖、無線等),對應的通信模式是MODBUSRTU或MODBUSASCII。

    3.高速令牌傳遞網絡,對應的通信模式是ModbusPLUS。

    二、關于ModBus RTU通訊協議的提問?


    ModBus主要由站地址(一個字節)+功能碼(一個字節)+首地址(兩個字節)+訪問字數(兩個字節)+校驗碼(CRC16或LRC兩個字節)總共8個字節組成。其實VB中編程很簡單從組建添加MSComm組建就行了,難的是校驗,


    三、ModBus、RTU、ModBus RTU分別是什么?


    ModBus協議是工控行業的標準協議,前身為莫迪康所寫,現已被施奈德收購。

    而ModBus分為兩種協議:即串口協議(ModBus rtu)和網口協議(ModBus tcp)協議,一般的工控機只支持rs232或者RS485的串口模式,這個時候工控機的協議棧里就只有modbusRTU協議,當他從串口接收到數據時,會直接根據報文中的數據進行控制,如果需要用modbusTCP協議進行傳輸,則需要使用帶有網口的PLC。

    具體的幀格式如下:

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

    ModBus TCP 目的地址協議id 長度單元號功能碼數據

    簡單的說 tcp是由RTU加工而來的,而RTU則是另外一種概念,不包含在ModBus協議內,是工控行業對監控設備的簡稱。


    四、關于modbus_RTU協議主機發送的命令的一些問題


    01 讀保持線圈狀態(Read coilstatus)

    02 讀輸入線圈狀態(Readinput status)

    03 讀保持寄存器(Readholding register)

    04 讀輸入寄存器(Readinput register)

    05 寫單個線圈(Forcesingle coil)

    06 寫單個寄存器(Presetsingle register)

    15 寫多個線圈(Forcemultiple coils)

    16 寫多個寄存器(Presetmultiple registers)


    這些都是什么意思

    答:01 讀取邏輯線圈組狀態

    02 讀取離散量線圈組狀態

    03 讀取一個或多個保持寄存器的二進制值

    04 讀取一個或多個輸入寄存器的二進制值

    05 改變邏輯線圈狀態

    06 改變單個寄存器的二進制值

    15 改變多個寄存器的二進制值

    16 指定多個操持寄存器的二進制值


    五、OPC轉modbusRTU方式我現在有一個OPC服務器,里面很多tag,tag是AB里出來的,怎么將tag連到ModBus?


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

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


    遵循的意思就是,你必須按照該廠家所支持的協議在PLC或者DCS硬件組態的時候按照該通訊協議設置硬件.其實這個很簡單.這里簡單指的是,你學編程,重點是編寫執行控制的動作的程序,硬件通訊協議不需要你自己動手寫。


    六、什么是ModBus RTU master?


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


    七、ModBus RTU 為什么沒有開始和結束標記?


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


    八、ModBus tcp 到RTU的轉換?


    請仔細查看幀格式:

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

    modbusTCP 目的地址協議id 長度單元號功能碼數據

    寫一個TCP轉RTU的程序放到設備里做modbus網橋即可


    九、ModBus RTU通訊線被燒?


    用萬用表量一下出來的通訊線,電壓不超過5V應該沒問題,一般不會燒東西,接的時候區分正和負。很多產品B是正,量一下看看。


    十、觸摸屏ModBus RTU怎么設置?


    一般是通過宏指令自己編程實現,當然也有支持RTU的,在通訊類型菜單


    十一、MODBUS RTU協議中浮點數是如何存儲,讀到浮點數寄存器的數值如何轉換成所需的浮點數?


    浮點數保存的字節格式如下:

    地址 +0 +1 +2 +3

    內容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM


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

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

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


    浮點數-12.5作為一個十六進制數0xC1480000保存在存儲區中,這個值如下:

    地址 +0 +1 +2 +3

    內容0xC1 0x48 0x00 0x00

    浮點數和十六進制等效保存值之間的轉換相當簡單。下面的例子說明上面的值-12.5如何轉換。浮點保存值不是一個直接的格式,要轉換為一個浮點數,位必須按上面的浮點數保存格式表所列的那樣分開

    例如:

    地址 +0 +1 +2 +3

    格式 SEEEEEEE EMMM MMMM MMMM MMMM MMMM MMMM

    二進制11000001 01001000 00000000 00000000

    十六進制 C1 48 00 00


    從這個例子可以得到下面的信息:

    符號位是1 表示一個負數 冪是二進制10000010或十進制130,130減去127是3,就是實際的冪。

    尾數是后面的二進制數10010000000000000000000

    在尾數的左邊有一個省略的小數點和1,這個1在浮點數的保存中經常省略,加上一個1和小數點到尾數的開頭,得到尾數值如下:

    1.10010000000000000000000

    接著,根據指數調整尾數.一個負的指數向左移動小數點.一個正的指數向右移動小數點.因為指數是3,尾數調整如下:

    1100.10000000000000000000


    結果是一個二進制浮點數,小數點左邊的二進制數代表所處位置的2的冪

    例如:1100表示

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

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

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


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


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


    十三、vbmodbus給modScan32rtu發送數據應該怎么寫?


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


    十四、ModBus RTU通訊協議與ModBus通訊協議有什么區別?


    modbus 協議包括了MODBUSRTU


    十五、ModBus RTU通訊協議如何判斷超時?


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


    十六、如何理解MODBUS協議RTU模式中的1.5和3.5字符間隔?


    發送兩幀數據之間要有一定的時間間隔,以保證接收方UART能夠區分。這個時間間隔在MODBUSRTU模式中要求是1.5和3.5字符間隔,也即是傳輸1.5和3.5個字符的時間,它與設置的通信參數有關,計算為:

    若串口通信參數設置為(注:開始位固定為1):數據位8,奇偶校驗位1,停止位1,波特率9600bps,則傳輸一個字符(即1個字節)的時間為:(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 還有最新得mobus poll


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


    兩種可能:

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

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


    ↓領取學習資料

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有