<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > PAC應用于某動(dòng)力系統訓練模擬器中

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

作者: 時(shí)間:2009-07-20 來(lái)源:網(wǎng)絡(luò ) 收藏

  3.1 初始化子程序

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

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

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

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

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

  void ConnectServer()

  { //首先進(jìn)行相關(guān)變量定義

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

  INVALID_SOCKET) //建立socket 并設置為T(mén)CP 方式

  {//未能建立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 接收數并處理子程序

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

  void ReceiveAndProcess()

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

  SOCKET_ERROR)

  {//沒(méi)有接收到數據的處理}

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

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

  { case Scollectstart: //開(kāi)始采集命令



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>