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

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

3天内不再提示

基于CANopen协议的智能液位遥测系统设计

电子工程师 来源:网络整理 作者:佚名 2019-11-18 15:34 次阅读

针对目前海事应用中液位遥测系统的现状,基于ARM9芯片的WinCE嵌入式开发平台,开发一套智能的液位遥测系统。

该系统采用CAN总线,遵循CANopen协议,在EVC开发环境下结合多线程技术和数据库技术实现遥测系统的通信和界面显示功能。实验结果表明,该系统稳定、实时、生动地实现了通信、显示、存储、打印等功能,具有很高的应用价值。

引言

液位遥测系统是油轮和化学品船的核心部分[1],直接关系到船舶在海上航行的安全性和可靠性。目前国内该行业还处于低技术的恶性竞争,要改变这种状况,只有通过提升技术水平才能实现。本系统就是在此背景下进行研究设计的。

该系统是以ARM9为内核,在WinCE操作系统平台下,以CAN通信为基础,CANopen协议为规范,综合应用EVC编程、CAN通信、数据库、多线程等技术设计的一个智能液位遥测系统。

ARM9的工作频率最高为200 MHz,微处理器内置彩色图像处理电路,因此可以直接外接TFTLCD/VGA显示屏。

CAN(Controller Area Network)总线是一种多主从结构,具有报文仲裁,错误自检测、处理机制,较强的通信能力,较强的短路保护能力,通信方式灵活多样等优点。船舶液位遥测系统是一个局域网控制系统,选用CAN总线更能满足其传输的高可靠性[2]。

1 CANopen协议

CANopen最初由从事工业控制的CiA会员开发,由于CANopen是一种公共、开放、通用的协议,而且精练透明、容易开发,如今已经被接受为CAN高层协议的标准之一。

基于CANopen协议的智能液位遥测系统设计

图1 CANopen设备模块

一个CANopen设备模块可分为3部分,如图1所示。通信接口和协议软件用于提供在总线上收发通信对象的服务;不同CANopen设备间的通信都是通过交换通信对象来完成的, 这一部分直接面向CAN控制器进行操作。对象字典描述了设备使用的所有数据类型、通信对象和应用对象;对象字典位于通信程序和应用程序之间,用于向应用程序提供接口。应用程序对对象字典进行操作,即可实现CANopen通信。它包括功能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen通信;而功能部分则根据应用要求来实现。

在CANopen网络系统中每个节点都有唯一的一个对象字典,而且每个节点的对象字典都具有相同的结构;但具体的内容要根据不同的设备而定,包含了描述该设备及其网络行为的所有参数。CANopen协议还定义了4种报文(通信对象),用于对不同作用的信息进行处理,分别为管理报文(NMT)、服务数据对象(SDO)、过程数据对象(PDO)和预定义报文或特殊功能对象。

2 液位遥测系统总体结构

液位遥测系统主要实现2项功能:

① 对各舱的液位、温度、压力等进行实时监测;

② 当监测高于报警值时发出报警信号

针对这2项功能,采用了CAN总线的网络拓扑结构,系统总体结构框图如图2所示。




基于CANopen协议的智能液位遥测系统设计

图2 液位遥测系统总体结构

由图2可知,整个系统以CAN总线进行通信,然而CAN芯片只提供了开放系统互连参考模型(OSI)中的物理层和链路层功能,一般用户必须直接用驱动程序操作链路层。不能直接满足控制网络的组态和产品互连要求。为了以CAN芯片为基础构成完整的工业控制现场总线系统,必须制定相应的应用层协议,实现系统的组态、设备互连和兼容功能。下面分别介绍各部分的功能。

2.1 分布式处理单元DPU

DPU是采用模块化设计、具有通信功能的智能化远程I/O单元。DPU单元分布在船舱各处,作为传感器和执行器的接口,直接与传感器和执行器相连。各个DPU单元可以用两根普通的双芯屏蔽电缆( 或双绞线等)连接到CAN总线上,将定时采集的各船舱液位高度、温度等各种实时数据发送到总线上。

目前,基于CANopen的DPU的各种模块(模拟量输入/输出、数字量输入/输出等)可以根据具体的监测点连接到网络中,完成液位、温度、压力等的监测。




基于CANopen协议的智能液位遥测系统设计



图3 上位监测点结构图

2.2 上位监测点

在本系统中,上位监测点主要实现通信和应用两个方面功能,具体结构如图3所示。

ARM9的开发平台已将CAN驱动嵌入,根据CAN2.0协议,可以直接完成物理层和数据链路层的通信,因此,在WinCE操作系统下,实现CANopen通信,解析通信对象,调用应用程序,完成整个上位系统的CANopen通信。

3 CANopen通信的实现

3.1 CAN通信

CAN通信通过调用底层封装的接口函数实现,主要包含:

端口CAN_StartChip;

关端口CAN_StartChip;

接收CAN数据CAN_GetNextReceivedFrame;;

发送CAN数据CAN_SendFrame。

具体通信流程如图4所示。

基于CANopen协议的智能液位遥测系统设计



图4 CAN通信流程

3.2 CANopen通信

CANopen协议是CAN通信应用层的协议。通信标准定义了不同的通信对象,这些通信对象通过标识符(COB_ID)来进行区分。

网络管理报文(NMT):提供网络管理服务,例如初始化、错误控制和设备状态控制。NMT对象映射到一个单一的带2字节数据长度的CAN帧,它的标识符为0。在本系统中主要用于系统启动的初始化。

过程数据对象(PDO):过程数据对象用来传递实时数据,数据传输被限制在1~8字节,每个PDO有一个唯一的标识符。标识符具有优先级,遥测系统主要是对实时的液位等信息进行显示,大量的PDO数据进行实时传送。

服务数据对象(SDO):SDO的传送是有证实的服务,可靠性比较高,主要用于对系统中各节点的配置或信息的设置。

以上4种对象都有不同的优先级。对于接收到的报文根据其COB_ID进行解析,分送各不同的应用变量,即可实现CANopen通信。

4 应用模块实现

4.1 系统配置

本系统中采用了配置文件的形式增强配置的灵活性,配置文件是根据下位DPU中各模块、通道的现场分布汇总成的txt文件。首先,利用移动磁盘或者Remote File Viewer在PC机上载入配置文件。其次是读取工作,通过函数GetProfileString,根据不同的字段获取需要的内容。最后,对所获得内容赋给相应的变量,并进行显示更新。

具体配置形式如图5所示。由图可知,可以对系统中模块的使用、舱名、信号类型、单位、范围、报警上下限、报警延时等进行设置。因此,在集控室就可完成基本的配制,大大减轻了工作人员的负担。



图5 系统配置

4.2 实时显示

为了实现实时、准确、生动地显示系统运行状况,在该模块中利用了文本加图形的方式。因为数据量较大,界面类型较多,切换频繁,故主要采用了动态创建控件的解决方法。

液位遥测系统主要完成各舱液位的实时显示。此外,还包括货舱的温度、压力,以及管路管道的压力等重要信息。

4.3 数据存储

在本系统中,数据存储主要完成的是对报警数据的存储和对舱容信息的监测,利用的是WinCE自带数据库系统。

系统存储的主要是报警数据,因此数据量比较小,采用自带数据库可以很方便地实现所需功能。此外,EVC4.0没有提供访问外部数据库ADOCE的接口。

4.4 实时打印

在本系统中实现了实时打印,即只要出现报警信息,立即将该信息进行打印输出;当故障排除后,重新进行打印,以便对数据进行保存分析。

5 结论

本文所研究的是基于CANopen协议,在ARM9的WinCE嵌入式开发平台上的船舶液位遥测系统软件。CANopen作为CAN总线的应用层协议,在船舶遥测系统中有着广阔的应用前景。

系统中CAN总线的应用大大提高了系统总体传输速率,双CAN机制更加增强了整个系统的容错能力,保证了船舶运行的安全性。整个软件系统实现了CANopen通信,完成了数据显示、存储、打印、报警,并使配置更智能,实验证明了其运行的可靠性。


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

    关注

    145

    文章

    1812

    浏览量

    129592
  • CANopen协议
    +关注

    关注

    0

    文章

    15

    浏览量

    11247
  • 液位遥测
    +关注

    关注

    0

    文章

    4

    浏览量

    6059
收藏 人收藏

    评论

    相关推荐

    Profinet协议转换为CanOpen协议来连接CanOpen伺服驱动器的应用

    局域网(CAN)网络的通信协议,被广泛应用于汽车和其他嵌入式系统中。对于将Profinet协议转换为CanOpen协议以链接台达B3系列伺服
    发表于 01-10 10:29

    CANopen协议

    CANopen协议,,
    发表于 09-16 17:56

    Canopen协议读后感想

    area位置中存放。PDO的映射就可以实现特定节点的功能。在CANopen协议集中,为常用的控制节点指定了标准的子协议规范,即IO控制节点拥有一个子协议规范,ADC数据采集
    发表于 09-21 12:58

    如何利用WinCE设计遥测系统软件?

    针对目前海事应用中遥测系统的现状, 利用WinCE设计
    发表于 08-01 07:12

    CAN总线在智能遥测系统有什么作用?

    针对目前海事应用中遥测系统的现状,基于ARM9芯片的WinCE嵌入式开发平台,开发一套智能
    发表于 10-11 06:08

    请问怎样去设计遥测系统软件?

    遥测系统总体结构是怎样构成的?怎样去设计遥测
    发表于 04-27 07:13

    基于STM32的CANopen通讯协议的实现

    1_【基于STM32的CANopen通讯协议的实现】 CANopen分为三部分: 1、通信部分:PDO协议,SDO协议,NMT
    发表于 08-20 08:12

    CANopen协议

    CAN 在 ISO 层级中的位置、通信协议需求、CANopen协议诞生、设备子协议CANOpen设备结构
    发表于 08-23 09:02

    CANOpen协议简析

    定义CAN报文中的11/29标识符和8字节数据的使用。CANopen协议的子协议——实时伺服驱动和运动控...
    发表于 09-09 08:32

    canopen协议与can特点

    canopen简单提要can总线    can特点:多主控制、高达1M通讯速度、通讯校验、 错误检测处理及恢复等,can总线通讯接口规定了CAN协议的物理层和数据链路层功能。 canopen
    发表于 09-15 07:10

    针对工业控制的Canopen系统Canopen system

    介绍了CAN总线的应用层协议CANopen;介绍了CANopen系统的应用;详细介绍了CANopen
    发表于 05-26 11:07 26次下载

    CANopen协议讲座(2)之CANopen协议简介

    CANopen协议讲座(2)之CANopen协议简介 CANopen协议是在20世纪90年代末
    发表于 03-26 17:29 73次下载

    CANOpen系列教程07 _CANOpen协议概述

    CANOpen系列教程07_CANOpen协议概述
    的头像 发表于 03-06 16:33 4866次阅读

    智能楼宇系统canopen协议与ModbusTCP协议进行通讯

    通过耐特森CANopen转ModbusTCP网关设备进行转换:可以使用一个CANopen转ModbusTCP网关设备,将CANopen协议转换为Modbus TCP
    的头像 发表于 01-03 15:17 204次阅读

    智能楼宇系统canopen协议与ModbusTCP协议进行通讯

    通过CANopen转ModbusTCP网关设备进行转换:可以使用一个CANopen转ModbusTCP网关设备,将CANopen协议转换为Modbus TCP
    的头像 发表于 01-03 15:20 173次阅读
    <b class='flag-5'>智能</b>楼宇<b class='flag-5'>系统</b><b class='flag-5'>canopen</b><b class='flag-5'>协议</b>与ModbusTCP<b class='flag-5'>协议</b>进行通讯