現場總線水輪機組狀態監測系統
顯示報文的初始化和發送部分的實現程序如下:
初始化節點地址
#include所需頭文件
#include
#include
domain_structmydomain;//定義域結構
mydomain=*(access_domain(0));//讀節點域表
mydomain.subnet=0;//設置節點子網號
mydomain.node=5;//設置節點號
update_damain(mydomain,0);//寫節點域表
發送數據報文
msg_tagtest_out;//聲明報文標簽
msg_out.tag=test_out;//傳遞報文標簽
msg_out.dest_addr.snode.node=0;//定義目的地址節點號
msg_out.dest_addr.snode.subnet=0;//定義目的地址子網號
msg_out.code=0x0c;//定義報文碼
msg_out.service=ACKD;//定義報文服務類型
msg_out.dest_addr.snode.type=1;//定義目的節點類型
memcpy(msg_out.data,a0,nLength);//填充報文內容
msg_send();//發送報文
在初始化程序中,用數據結構domain_struct定義節點的子網號、節點號,即設置節點在LON總線上的地址。在發送程序中利用msg_out結構構造報文,其中,目的地址指向適配器。顯示報文的接收程序與發送部分類似,不再多述。
3.2上位機通信程序
上位機與現場節點通訊的數據通過適配器轉發,適配器的IP必須事先指定。上位機利用msg_out變量(如前所述)創建顯示報文,將目標節點的地址、需要改變的參數或要下達的命令填充到該變量中,然后用UDP封裝該變量,通過以太網發往適配器;適配器解析上位機發來的數據包,得到顯示報文,將該顯示報文直接向相應的節點發送。同樣,適配器也將現場節點發來的顯示報文通過UDP封裝后發往上位機,上位機解包后根據節點等信息將數據存入相應的數據庫,等待后后續的信號處理模塊和故障診斷模塊調用
評論