0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ADAM5510-E/TCP实现动力系统训练模拟器的设计

电子设计 来源:微计算机信息 作者:杨占录;王宗亮; 2020-12-16 18:05 次阅读

作者:杨占录;王宗亮;刘海光

引言

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

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

1 系统概述

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

2 设备选型

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

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

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

基于ADAM5510-E/TCP实现动力系统训练模拟器的设计

图 1 系统总体结构

(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 程序总体流程

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: //开始采集命令

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 不仅能缩短开发周期、使系统运行稳定可靠,而且系统开放性好,可以方便地与其他系统的模拟器连接组成更大规模的模拟器进行训练,是模拟器研制的一种新思路。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5006

    文章

    13093

    浏览量

    461323
  • 仿真
    +关注

    关注

    50

    文章

    4016

    浏览量

    133317
  • 模拟器
    +关注

    关注

    2

    文章

    862

    浏览量

    43114
收藏 人收藏

    评论

    相关推荐

    金属带式CVT与动力系统的优化匹配及液压系统控制

    本文是国家九五科技攻关项目的一部分内容围绕汽车CVT 系统动力系统的匹配及液压系统的控制技术研究主要进行了以下几方面的工作1. 建立了EQ491 发动机数学模型给出了发动机与动力系统
    发表于 12-02 12:45

    汽车动力系统解决方案集锦

    汽车动力系统解决方案集锦  TOP1 LIN步进电机驱动解决方案  步进电机驱动系统是由步进电机和步进电机驱动构成的。步进电机驱动系统
    发表于 04-20 09:48

    汽车动力系统大盘点:助你设计绝佳方案

    本帖最后由 liuyongwangzi 于 2015-4-21 15:04 编辑 汽车动力系统就是指将发动机产生的动力,经过一系列的动力传递,最后传到车轮的整个机械布置的过程。本专题详细介绍了
    发表于 04-21 14:59

    RoboMaster发布M2006动力系统!体积小、性能强,助力高性能机器人开发

    M2006 动力系统由 M2006 无刷减速电机和 C610 无刷电机调速组成,具有控制精度高,输出功率大,体积小等特性,可广泛应用于机器人机构、驱动模块等等。 想了解电机知识的小伙伴,可以观看电机的视频
    发表于 05-11 10:26

    多功能发动机转速模拟器系统总体方案设计

    、价格昂贵等缺点,给动力系统工程人员外出调试和检修电控设备带来了不便。考虑到诸多因素,很有必要研制一种结构简单、携带和使用方便的多功能发动机转速模拟器。它能在不启动发动机的情况下,模拟产生并输出供现场
    发表于 06-18 07:19

    多功能发动机转速模拟器系统的工作原理是什么?

    电池供电,所以该多功能发动机转速模拟器的成功研制将给动力系统工程技术人员进行现场测试带来极大的方便,且具有较高的实用价值、经济价值。
    发表于 08-21 08:16

    半导体技术在汽车动力系统中的应用是什么?

    半导体技术在汽车动力系统中的应用是什么?
    发表于 05-18 06:09

    舰船动力系统训练模拟器的研究与实现

    介绍了一种基于PC 机与PAC 控制硬件平台、SimuWorks 仿真支撑软件平台和以太网技术的某型舰船动力系统训练模拟器的研制方法,阐述了该系统
    发表于 01-18 13:40 10次下载

    PAC在某动力系统训练模拟器中的应用

    介绍了某型舰艇动力系统训练模拟器的组成与基本工作原理。详细介绍了I/O设备的选型依据,给出了ADAM5510-E/TCP 的基本性能,并详细
    发表于 01-18 14:53 10次下载

    ADAM-5510KW中FPID/PID功能块之实现及应用

    ADAM-5510KW中FPID/PID功能块之实现及应用一、 ADAM-5510KW实现PID控制的方法1、ADAM-5510KW可以使用
    发表于 10-07 15:00 26次下载

    丰田普锐斯混合动力系统原理

    Prius是第一台装备新的高压/高量的混合协同驱动系统的丰田车。如同原来的用在当前款Prius上的丰田混合动力系统(THS),混合协同驱动系统被定义为是一个“完全混合动力系统
    发表于 03-14 11:33 7935次阅读

    基于容差控制的电动汽车动力系统动态负载模拟

    基于容差控制的电动汽车动力系统动态负载模拟_何承坤
    发表于 01-04 16:45 0次下载

    四轴飞行的“动力系统”:三相无刷电机的简介

    在整个四轴飞行(或其他多轴飞行)中还有一套“动力系统”。这套“动力系统”由电调、电机和桨片组成。本节,你将会了解到如何按照自己的需要选择一套四轴飞行
    发表于 08-01 10:05 4067次阅读

    环境模拟风洞高压动力系统设计方案

    环境模拟风洞高压动力系统设计方案
    发表于 06-19 16:21 19次下载

    某型舰艇动力系统训练模拟器的组成与基本工作原理

    动力系统设备多而且关系复杂,笔者开发的模拟器包括37 台模拟设备,合计开关量输入点733 个,开关量输出点1115 个,模拟量输入点19 个,模拟
    发表于 01-19 14:51 314次阅读
    某型舰艇<b class='flag-5'>动力系统</b><b class='flag-5'>训练</b><b class='flag-5'>模拟器</b>的组成与基本工作原理