在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 模擬技術 > 設計應用 > PAC應用于某動力系統(tǒng)訓練模擬器中

            PAC應用于某動力系統(tǒng)訓練模擬器中

            作者: 時間:2009-07-20 來源:網(wǎng)絡 收藏

              3.1 初始化子程序

             ?。?)啟動看門狗。系統(tǒng)由于某種原因陷入死循環(huán)后能自動退出,使系統(tǒng)恢復正常。

             ?。?)初始化5024、5017。該兩種模擬量模塊在使用之前需要通過軟件進行設置。其中5024 設置為4~20mA 電流輸出,5017 設置為0~10V 輸入。

             ?。?)啟動網(wǎng)絡心跳包檢測定時器。網(wǎng)絡心跳包用于確認網(wǎng)絡連接是否正常。

              3.2 網(wǎng)絡連接子程序

              控制器首先建立 socket,然后與服務器連接。網(wǎng)絡連接子程序的主要部分為:

              void ConnectServer()

              { //首先進行相關變量定義

              if((SO_5510=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==

              INVALID_SOCKET) //建立socket 并設置為TCP 方式

              {//未能建立socket 的處理}

              pulArgp = 1;

              if(ioctlsocket(SO_5510, FIONBIO, pulArgp)) //將socket 設置為非阻塞模式

              {//未能設置socket 的處理}

              he=gethostbyname(172.18.55.1); //server address

              Server_addr.sin_family = AF_INET; //TCP/IP

              Server_addr.sin_port = htons(Server_Port);

              Server_addr.sin_addr =*((struct in_addr *)he->h_addr);

              memset((Server_addr.sin_zero), 0, 8);

              ConnectReturnFlag = connect(SO_5510, (struct sockaddr *)Server_addr,sizeof(struct

              sockaddr));//建立連接

              if( ConnectReturnFlag == 0)

              {//建立連接成功的相應處理}

              else

              {//建立連接失敗的相應處理}

              }

              3.3 接收數(shù)并處理子程序

              5510 接收到數(shù)據(jù)包后首先分析數(shù)據(jù)包內(nèi)的命令字。本系統(tǒng)中設計的命令字有開始采集、停止采集、檢查連接、有效數(shù)據(jù)等。如果是前三種命令則立即執(zhí)行,如果是“有效數(shù)據(jù)”命令則打開數(shù)據(jù)包后面的內(nèi)容(可能包含多個子包),子包內(nèi)包含開關量、模擬量等若干子命令,程序根據(jù)不同子命令執(zhí)行相應子程序。程序主體示意如下。

              void ReceiveAndProcess()

              { if ((numbytes = recv(SO_5510, (char *)RECVITEMS, sizeof(RECVITEMS), 0))==

              SOCKET_ERROR)

              {//沒有接收到數(shù)據(jù)的處理}

              if(numbytes>0)//收到數(shù)據(jù)后的處理

              { switch(RECVITEMS.Command) //判斷命令字

              { case Scollectstart: //開始采集命令



            評論


            相關推薦

            技術專區(qū)

            關閉