關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > Lonworks網絡虛擬監測系統研究

        Lonworks網絡虛擬監測系統研究

        作者: 時間:2011-07-20 來源:網絡 收藏

        when(io_in_ready(s_bus)) //并口有數據來

        {

        p_in.length=DATA_SIZE

        io_in(s_bus,&p_in); //從并口讀取數據

        //構造顯式報文

        msg_out.code=CONTRL_MSG //CONTRL_MSG是預定義的消息代碼

        memcpy(msg_out.data,p_in.data,3);

        msg_out.dest_addr.bcast.type=BROADCAST;

        msg_out.dest_addr.bcast.domain=0;

        msg_out.dest_addr.bcast.subnet=0;

        msg_out.tag=tag_out0;

        msg_send();

        }

        一般情況下,節點通過when(msg_arrives(CONTRL_MSG))接收該消息,然后判斷消息數據的第一個字節的節點信息,如果不是本節點,則不作處理,如果是本節點,再判斷第二個字節的通道號,然后作相應的處理并將選中通道的數據傳送出去。

        3.2 測量數據的傳輸

        在測控中,各個需要測量的參數每次需要采集的數據個數可能各不相同,少的可能只有一個數據,多的可能有上千個數據,因此節點收到儀器傳來的控制信號后,選中通道的數據要采用顯式消息報文傳輸。在LON網中,設計的接口卡也是一個節點,當其余節點收到發給本節點的控制信號后,會同時將相應通道的數據都發送到接口卡上。筆者采用的是消息標簽尋址。消息標簽是顯式消息的一個連接點。管理工具給輸入標簽和每個輸出標簽都會賦一個唯一的地址。這樣,利用捆綁器可將各個節點發送給接口卡的顯式報文的消息標簽與接口卡節點的消息輸入對象msg_in連接起來,這樣就可以實現點對點的數據傳送。下面以節點2收到要求發送給1號通道的數據,且該通道每次發送40個字節的數據為例,給出其發送程序:

        msg_tag LON_232;

        when(msg_arrives(CONTRL_MSG))

        {

        if(msg_in.data[0]==2)

        {

        switch(msg_in.data[1])

        { case 1: //通道1

        msg_out.tag=LON_232;

        msg_out.code=0x0c; //消息代碼,接口卡依此處理接收的數據

        msg_out.service=ACKD;

        memcpy(msg_out.data,ch1_buf,40);

        msg_send();



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临高县| 望都县| 清远市| 义乌市| 赤壁市| 江城| 西昌市| 邹平县| 法库县| 湘乡市| 黑山县| 德安县| 吉水县| 兖州市| 班玛县| 张家界市| 连州市| 新乡县| 东明县| 准格尔旗| 任丘市| 习水县| 富裕县| 阿勒泰市| 罗山县| 沂源县| 新化县| 玛纳斯县| 清远市| 岚皋县| 乌海市| 马公市| 射阳县| 老河口市| 河东区| 宣化县| 抚顺县| 宜昌市| 南部县| 台江县| 饶平县|