当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]PAC应用于某动力系统训练模拟器中

  摘 要:介绍了某型舰艇动力系统训练模拟器的组成与基本工作原理。详细介绍了I/O设备的选型依据,给出了ADAM5510-E/TCP 的基本性能,并详细介绍了其在模拟器中的硬件配置方法和主要软件的编制思想。实践证明,基于ADAM5510-E/TCP 所设计的训练模拟器运行稳定、扩展灵活,完全满足军事训练需求。
  0 引言

  上世纪九十年代以来,由于计算机技术、自动控制技术和仿真技术的飞速发展,训练模拟器在各个领域特别是航海、航天、军事领域得到了广泛的应用并取得了很好的应用成果。动力系统是舰艇的重要系统之一,其操作人员的操作水平对舰艇能否遂行各项战斗任务影响重大。因此,动力系统训练模拟器在我国海军已得到较广泛应用。这些训练模拟器大都采用半实物仿真的模式,模拟器在设备外观上与被仿真设备完全一致,但其内部为计算机控制,并没有真实设备。这种训练模式的优点是学员的操作手感与被仿真设备完全一致,学员完成训练后完全可以达到操作实际装备所需的操作技能,能显著提高军事训练的质量与速度。

  半实物仿真设备面板上有各类操作与显示部件,必须用数据采集设备采集操作人员操作开关等部件产生的数据,同时还要驱动指示灯、仪表等显示部件将计算结果进行输出。因此,设计一套可靠工作的数据采集与控制系统是研制半实物训练模拟器的关键技术之一。

  1 系统概述

  动力系统设备多而且关系复杂,笔者开发的模拟器包括37 台模拟设备,合计开关量输入点733 个,开关量输出点1115 个,模拟量输入点19 个,模拟量输出点149 个。系统的核心是仿真服务器(该服务器同时作为模拟器的教练员台)。服务器上运行SimuEngine 仿真引擎,系统中所有的数学模型都由仿真引擎调度。I/O 设备采集半实物设备上的操作,由通信程序将操作数据通过以太网上传至服务器上的实时数据库,服务器根据实时数据库对数学模型进行计算,计算结果也写入实时数据库。通信程序将最新计算结果发送给I/O 设备,I/O 设备驱动相应的指示灯或仪表进行显示。系统总体结构如图1 所示。

  2 设备选型

  接口系统的设计有四种方案可供选择:

  (1)基于某种型号的微处理器或单片机设计专用的接口硬件。该方案的优点是成本低,但设计周期长,可靠性难以保证,且开发调试困难。

  (2) 采用工业控制计算机以及配套的硬件接口。该方案的优点是成本较低,选型方便快捷、开发调试方便。但由于这种接口系统依赖于WINDOWS 操作系统运行,可靠性不高。

  图 1 系统总体结构[!--empirenews.page--]

  (3)采用可编程序控制器PLC 作为接口。该方案的优点是可靠性高、开发调试方便、模块化结构、易于维护;缺点是成本高,而且传统的中低端PLC 没有以太网接口,不易构成较为复杂的网络系统,最新推出的带以太网接口的PLC 价格昂贵。

  (4)采用可编程自动化控制器PAC(Programmable Automation Controller)。PAC 结合了PC 的处理器、RAM 和软件的优势,以及PLC 固有的可靠性和分布特性,是近年来在工控领域出现的新型控制器。 PAC 与传统PLC 的性能比较见表1。

  表 1 PAC 与传统PLC 的性能比较

  PAC 产品型号众多,经过多方比较,选择了ADAM5510-E/TCP。它采用模块化结构,其CPU 模块包括80188CPU、256KB FLASH ROM、256KB SRAM 和三个串行通讯口与一个10/100M 以太网接口。其底板有8 个扩展槽,可以安装不同类型的I/O 模块。系统内置ROM-DOS,与MS-DOS 操作系统兼容,提供了除BIOS 之外的基本MS-DOS 功能调用,允许运行用C 或C++等高级语言编译的应用程序。与PLC 相比,5510 运算能力和通讯能力更强,模拟量点价位低。与工控机相比,5510 系统更加紧凑,抗干扰能力更强,因此适合做模拟器的I/O 设备。

  本系统*选择了四种 I/O 模块:16 通道隔离数字量输出模块ADAM5056S、16 通道隔离数字量输入模块ADAM5051S、4 通道模拟量输出模块ADAM5024、8 通道高速模拟量输入模块ADAM5017H 等。另外,在某些操作台上有数码管显示器件。由于数码管的位数较多,为了节约输出模块,不宜用5056 的输出口直接驱动数码管的各段,因此选用了MAX7219 作为数码管的驱动芯片。通常,使用单片机等微控制器通过7219 的DIN、CS 和CLK 三根信号线控制它进行数码管的显示。该项目中由5056 的三个输出口模拟微控制器的三个口线对7219 进行控制。

  3 程序设计

  5510 没有显示界面,首先在PC 机上编写应用程序,编译好之后再下载到5510 内。5510采用了DOS 类操作系统,不支持多线程编程,每台5510 的程序随I/O 模块配置不同略有不同,但程序的总体流程均如图2 所示。


  图2 程序总体流程[!--empirenews.page--]

  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: //开始采集命令[!--empirenews.page--]

  SendCommand(CReplyCollectStart);//表示收到开始采集命令

  break;

  case Ssendgroupdata: //有效数据指令

  { for(CircleNum=0;CircleNum

  { switch (RECVITEMS.Items[CircleNum].Command) //判断子命令

  { case SsendoneDOdata: //server 发送的开关量单字节指令

  WriteOneDOChannel(RECVITEMS.Items[CircleNum]);

  break;

  case SsendoneAOdata: //server 发送的模拟量单字节指令

  WriteOneAOChannel(RECVITEMS.Items[CircleNum]);

  break;

  default: break;

  } } }

  default: break;

  } } }

  3.3 数据采集发送子程序

  为了降低网络传输的数据量,PAC 控制器只向服务器发送状态发生变化的数据,而状态没有发生变化的数据则不发送。同样,服务器通信程序SimuTrans 只向PAC 控制器发送模型计算后发生变化的数据。

  为了保证数据不会丢失,针对不同种类的数据采用了不同的发送、回送方式。在该模拟器中,输入的模拟量为艇员操作面板上的旋钮时带动内部的电位器产生0~10V 的模拟电压信号,由于其操作是连续过程,操作过程会产生一系列变化数据,因此5017H 采集到的变化数据直接发送到服务器即可。对于操作按钮、多位开关等部件产生的开关量数据,为了避免数据丢失采用了重复发送,并且服务器收到数据后要做应答,确保了数据传输的可靠性。

  4 结论

  该模拟器2007 年9 月通过了验收、鉴定。在动力系统管理人员及在校学员的学习与训练过程中发挥了重要作用,获得了良好的军事和经济效益。该半实物仿真训练模拟器的成功研制实践说明,将新型PAC 控制器应用于模拟器代替传统的工控机或PLC 不仅能缩短开发周期、使系统运行稳定可靠,而且系统开放性好,可以方便地与其他系统的模拟器连接组成更大规模的模拟器进行训练,是模拟器研制的一种新思路。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2022年10月14日 /美通社/ -- 2022年10月14日,亚马逊云科技举办一年一度的中国合作伙伴峰会。本届峰会以"价值成就 探索无限"为主题,面向合作伙伴推出"3+3价值成就体系...

关键字: 亚马逊 网络 AC MARKET

珀金埃尔默日前推出Cellaca PLX图像式细胞分析系统,这是业界第一款能让研究人员在单个自动化工作流中实现对细胞样本多个关键质量属性进行分析和评估的台式平台,包括对细胞性质、质量和数量的分析评估。拥有尖端技术的Cel...

关键字: AC EXCEL 硬件 自动化

加速简化细胞和基因治疗的研发及制造流程 Cellaca® PLX图像式细胞分析仪带来工作流程的革新,一站式满足多个关键质量属性的分析 上海2022年10月12日 /美通社/ -- 致力于以创新技术打造更健康世...

关键字: AC 自动化 NEX EXCEL

上海2022年10月11日 /美通社/ -- 全球领先金融科技公司Airwallex空中云汇今日宣布完成1亿美元E2轮融资。现有投资方Square Peg、Salesforce Ventures、红杉中国、Lone Pi...

关键字: AIR CK AC API

上海2022年10月8日 /美通社/ -- 2022年10月7日,第34次上海市市长国际企业家咨询会议(IBLAC)在线举办。作为深化全球合作的重要平台与展示上海形象的重要名片,本次会议汇聚了来自全球24个城市...

关键字: AC 可持续发展 MIDDOT 数字化

百龄哥"洋高参"为上海再献良策! 上海2022年10月8日 /美通社/ -- 10月7日,勃林格殷格翰全球执行董事会主席冯保和(Hubertus von Baumbach)先生应邀出席第34届上海市...

关键字: 可持续发展 AC DNA 可再生能源

利安德巴塞尔宣布将在其德国法兰克福工厂启动一家新的催化剂生产工厂。该项目直接关系到基础设施项目的投资、不断增长的人口(特别是在新兴国家和地区)对聚合物需求的增加,以及Hostalen ACP聚乙烯(PE)技术的价值。此项...

关键字: ST OS AC

上海2022年9月30日 /美通社/ -- 2022年9月30日,君实生物肿瘤免疫高峰论坛暨拓益®(特瑞普利单抗注射液)肺癌适应症全国上市会以线上形式顺利召开。大会汇集中外肺癌大咖学者,荟萃全球肺癌前沿...

关键字: PD CHOICE AC SHEET

(全球TMT2022年9月30日讯)TCL科技公告,前三季度预计实现营业收入1247亿元-1267亿元,净利润19亿元-20亿元,归属上市公司股东净利润2亿元-3亿元,三季度盈利环比改善。 合合信息将智能...

关键字: TCL 显示器 USB-C AC

上海2022年9月28日 /美通社/ -- 维亚生物投资孵化和以服务换股权(EFS)业务的核心部门——维亚生物创新中心致力于成为全球创新生物医药企业孵化及成长的开放式合作平台。维亚生物投资孵化生态圈近期动态更新...

关键字: AC GEN LINK OS

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭