首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
PAC应用于某动力系统训练模拟器中
来源:本站整理  作者:佚名  2009-07-20 10:40:13



  3.1 初始化子程序

  (1)启动看门狗。系统由于某种原因陷入死循环后能自动退出,使系统恢复正常。

  (2)初始化5024、5017。该两种模拟量模块在使用之前需要通过软件进行设置。其中5024 设置为4~20mA 电流输出,5017 设置为0~10V 输入。

  (3)启动网络心跳包检测定时器。网络心跳包用于确认网络连接是否正常。

  3.2 网络连接子程序

  控制器首先建立 socket,然后与服务器连接。网络连接子程序的主要部分为:

  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 接收数并处理子程序

  5510 接收到数据包后首先分析数据包内的命令字。本系统中设计的命令字有开始采集、停止采集、检查连接、有效数据等。如果是前三种命令则立即执行,如果是“有效数据”命令则打开数据包后面的内容(可能包含多个子包),子包内包含开关量、模拟量等若干子命令,程序根据不同子命令执行相应子程序。程序主体示意如下。

  void ReceiveAndProcess()

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

  SOCKET_ERROR)

  {//没有接收到数据的处理}

  if(numbytes>0)//收到数据后的处理

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

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

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:106,910.20000 毫秒