亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4907 | 回復: 3
打印 上一主題 下一主題

[驅動] 精通modbus協(xié)議的高手請進 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-02-14 17:25 |只看該作者 |倒序瀏覽
大家好!
我正在做一個嵌入式設備通過rs485硬件接口控制modbus設備的設計,現(xiàn)在遇到一些問題,現(xiàn)在我詳細的描述一下:
1、我的原始設備(就是嵌入式設備)是一個數(shù)據(jù)集中器,上的是VxWork系統(tǒng),由于接口不是很夠,現(xiàn)在計劃通過外接一個ADAM 4055這么一個擴展模塊,搭建一個modbus的網(wǎng)絡環(huán)境,其連接原理圖如附件所示。
2、現(xiàn)在主要的問題是通過C、C++編程,是嵌入式設備能夠與ADAM4055建立起控制關系,ADAM4055也有自己內部的命令,我也仔細的查看了modbus rtu的命令格式描述及常見的功能碼等:
格式
從機地址 功能碼 寄存器地址 設置值 CRC 校驗
功能碼(HEX)        名稱        作用
01        讀線圈狀態(tài)        讀離散輸出位
02        讀輸入狀態(tài)        讀離散輸入位
03        讀保持寄存器       
04        讀輸入寄存器        讀16位寄存器,常用于讀取整數(shù)或者浮點數(shù)
05        寫單個線圈        寫數(shù)據(jù)使線圈On/OFF
06        寫單個寄存器        16位格式寫數(shù)據(jù)
08        回路診斷        檢測通訊端口
15        寫多個線圈        寫數(shù)據(jù)使多個線圈ON/OFF
16        寫多個寄存器        16位格式寫數(shù)據(jù)


但是我始終沒有找到ADAM命令與這個協(xié)議通信格式的聯(lián)系方式,我的編程實現(xiàn)如下:
        printf("Routine is running InitADAMModule()...\n");
//        char chCommand[]={'%','0','A','0','A','4','0','0','6','0','4',0x0d};   這ADAM內部的命令,以回傳結束
        fd_set Rs485Set;
        FD_ZERO(&Rs485Set);
        FD_SET(rs485Fd,&Rs485Set);
        struct timeval myTimeOut;
        myTimeOut.tv_sec=5;   //5s
        myTimeOut.tv_usec=0;
        char chCommand[]={'$','0','A','F',0x0d};
        int iTmp=0;
        printf("Read the return of command $AAF...\n");
        iTmp=rs485_write(rs485Fd,(Byte*)&chCommand,strlen(chCommand));
        printf("rs485_write return bytes :%d\n",iTmp);

        if((select(rs485Fd+1,&Rs485Set,NULL,NULL,&myTimeOut))!=0)
        {
                printf("Read the return of command $AAF...\n");
                char readbuf[50]={'0'};
                int iRead=rs485_read(rs485Fd,(Byte*)readbuf,50);
                printf("rs485_read return bytes :%d %s\n",iRead,readbuf);
        }
        else
                printf("outtime.\n");
        return 0;


但是,打印一直是outtime。請各位高手指導一下,我該怎么實現(xiàn)與這個擴展設備的通信,以及怎么將這個擴展設備的命令正確的送達!若能指導,我將不勝感激。謝謝

ModBus連接圖.JPG (50.47 KB, 下載次數(shù): 111)

ModBus連接圖.JPG

論壇徽章:
0
2 [報告]
發(fā)表于 2012-02-15 08:38 |只看該作者
沒玩過Modbus,樓主可以先確認好 “從機地址 功能碼 寄存器地址 設置值 CRC 校驗”這些東西發(fā)送的正確否。

論壇徽章:
0
3 [報告]
發(fā)表于 2012-02-27 11:25 |只看該作者
modbus 不是有個 c語言的 庫的嗎?

論壇徽章:
0
4 [報告]
發(fā)表于 2013-05-06 16:09 |只看該作者
建議你先用modbus poll 和 modbus slave將你的設備調試好,然后看通訊的數(shù)據(jù)。我看你直接發(fā)送的chCommand是不符合modbus RTU協(xié)議的。其實modbus有開源的軟件,項目是freemodbus,你可以下載下來,參考一下。個人不建議直接發(fā)送數(shù)據(jù)給modbus設備,最好把modbus移植到自己的系統(tǒng)中。


專注智能數(shù)字傳感器,提供數(shù)據(jù)采集、無線傳輸、數(shù)據(jù)存儲
上海左岸芯慧電子科技有限公司
www.zaxh.com.cn
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP