服务热线: 13472705338
新闻中心 news center

煤矿智能仓储系统研究与设计

伴随互联网、大数据、人工智能技术的迅猛发展,煤矿智能化相关技术与装备水平也在显著提升。同时,随着煤矿智能化程度...
联系我们 contact us
新闻中心
您当前的位置:首页 > 新闻中心 > 基于ARM9的仓储罐区参...

基于ARM9的仓储罐区参数监控系统

信息来源: 发布时间:2022-01-05 点击数:

0引言

“油气液体化工品”进出口仓储罐区是比较典型的“危险区与监管区”, 海关管理部门每天都需要掌握进出口仓库罐区罐内存储介质的液位、温度、体积和质量等重要数据, 既要保证数据的准确和及时, 又要确保储罐的安全, 防止意外事故的发生。海关“油气液体化工品物流监控系统”要求通过Internet与部署在海关的数据中心主机相连接。它以油气液体化工品进、出罐作业过程物流监控为主线, 基于“分罐管理、总量控制、动态监控”原则, 将物流数据通过管理系统获得的报关单、舱单等通关数据进行比对, 实现货物流与单证流相互印证, 达到高效通关与有效监管相统一。从而实现“有效监管、高效运作”快速通关的新型海关监管模式。

为了保证海关“油气液体化工品物流监控系统”的可靠运行, 需要设计仓储罐区被测参数的监控系统, 通过实现罐区参数的数据采集与处理、并将监控数据发送至海关监管数据中心的主机上, 实现仓储罐区的监控与管理[1,2]

1系统总体设计

系统主要实现仓储罐区参数的采集、处理, 然后通过通信电路送到数据中心的主机上, 其系统的总体结构如图1所示, 由ARM9组成的仓储罐区数据采集与处理器 (系统中称其为数据终端) 主要完成油库储油罐区储油罐体内油的压力、温度、液位, 管道的温度、压力、进出油库流量 (体积流量、质量流量) 的采集。其系统结构分为3层[3], 最上层由存放在海关监测中心的上位机实现, 显示油库储油罐区监测参数及油库油料的历史参数, 可以有选择地查看相关数据。上位机的数据来源于以AT91RM9200为核心的嵌入式数据终端。

数据终端为系统的中间层, 也是系统硬件设计的核心内容, 在Linux操作系统的软件平台上, 进行了裁减、移植和开发, 实现了现场测量数据的处理、存储、显示 (LCD) , 在线计算罐存容量的体积及质量, 短期数据可以缓存等, 并且可以完成储罐相关的软测量, 包括罐液的体积、质量和罐存质量等参数;通过RS-485总线实现了数据终端与现场测量节点的数据通信, 同时通过HTTP协议实现与上位机的数据通信。

图1系统结构图

图1系统结构图  下载原图


2系统硬件设计

2.1处理器的选择

根据项目的要求, 要实现现场多检测点的数据采集、处理、存储、管理及与数据中心的通信与数据管理及与测量仪表的连接, 鉴于ARM核处理器[4]的众多优点及其低廉的价格, 丰富的外围接口, 经过分析比较, 系统选用集成ARM920T核处理器的工业控制芯片AT91RM9200, 采用嵌入式Linux操作系统, 实现一个较为先进的数据终端控制器。中央处理器AT91RM9200, 属于工业级芯片, 主频180 MHz (可稳定超频到240 MHz) , 64M Bytes SDRAM, 作为系统程序运行的区域;16M Bytes Nor Flash和64M Bytes NandFlash, 可存放操作系统、用户程序或其系统掉电后需保存的数据, 其丰富的外围接口为系统设计提供了方便的条件。

2.2信号输入通道设计

海关油库监控系统涉及到油库油料的进出口业务, 涉及到货币结算, 因此, 对油库测量仪表的测量精度要求较高, 根据现场使用的需要, 必须采购使用维护方便, 测量精度高、质量好的测量仪表, 考虑到仪表与中央控制器的接口方便与提高测量精度的需要, 加上仪表使用在环境较差的现场, 因此, 选择了输出带有RS-485通信接口的仪表作为该系统的现场测量仪表。目前, 罐区液位仪表选用高性能高精度的ZYG-101电子智能光导液位计, 进行罐内油品液位和温度测量, 该仪表由二次表ZYG-A101和一次表ZYG-B101两部分组成。10个罐装有10台一次表ZYG-B101, 按内部协议方式传递液位、温度信号给一台二次表ZYG-A101 (每台最多可接30台一次表) , 二次表轮询显示10个罐的液位和温度, 并以标准RS-485总线协议输出结果。质量流量计选用LZLB-8系列的质量流量计测量管道流量, LZLB-8型质量流量计提供标准电流和脉冲输出, 为保证测量流量的准确性, 采用流量脉冲的频率和个数分别获得管道质量流量的瞬时值和累积值, 另外, 由于他们是含有微处理器的智能仪表, 还提供RS-485通信接口以提供数字量输出。

考虑到RS-485总线的负载能力, 系统在设计时数据终端连接的负载不超过32个。由于采用了RS-485接口的连接模式, 因此, 对于采集系统而言不需要附加的采集电路的设计, 直接将32个负载通过双绞线并联在一起就可以了, 由于采用的是通过AT91RM9200的USART0 (通用同步/异步收发器) 与485总线相连, 因此, 需要RS-485/RS-232的接口转换, 目前市场上RS-485/RS-232的转换接口比较多, 价格便宜, 质量稳定, 因此, 从市场上采购了RS-485/RS-232的转换接口直接使用。这样, 减少了采集电路设计的环节, 提高了系统的精度与可靠性。其示意图如图2所示。

图2现场仪表与AT91RM9200间通信连接示意图

图2现场仪表与AT91RM9200间通信连接示意图  下载原图


2.3存储器电路设计

系统设计时使用了数据宽度为8M×16bit的NorFlash芯片28F128J3A, 共16M字节作为程序代码存储器和主控模块运行时的非易失数据存储器。其NorFlash在系统中主要用于存放引导程序bootloader、操作系统内核镜像文件、根文件系统及掉电时需保存的系统参数等。系统上电或复位后从Flash中运行bootloader, 由bootloader初始化硬件并将操作系统拷贝到SDRAM中去执行。其28F128J3A与AT91RM9200的连接如图3所示。

图3NorFlash与CPU连接电路图

图3NorFlash与CPU连接电路图  下载原图


另外, 系统还外扩了64MbytesNandFlash用作数据文件的存取, 采用NandFlash—K9F1208U0C。NandFlash由于其自身结构的特点, 主要是通过数据命令配合控制线对NandFlash进行控制, 进行数据的擦除和存储。系统SDRAM采用216K45561632C芯片组成32位接口外扩实现。

2.4以太网通信电路设计

为了实现数据终端与海关数据中心的通信, 需要以太网的接口电路[5], AT91RM9200已集成了一个以太网MAC控制器, 可以在半双工或全双工模式10 Mbit/s/100 Mbit/s的速率下工作。只需外接一个物理层芯片, 就可提供以太网的接入通道, 系统选择工作在100BASE-TX模式下, 其接口芯片DM9161与AT91RM9200的接口电路连接如图4所示。

图4以太网电路图

图4以太网电路图  下载原图


2.5电源模块设计

系统电源的质量对系统工作的稳定性有很大的影响, 减少系统的功耗以及外接的干扰是该电源设计考虑的主要因素, 在设计时, 应对输入电压和电流、输出电压和电流、输出电压波纹、电磁兼容以及电磁干扰、体积、价格等方面进行综合分析。

根据系统各模块的供电电压的需要, 共需3路直流电源。一路是为主控板大多数芯片供电的+3.3 V电压;一路是为微控制器AT91RM9200内核电源VDDCORE供电的+1.8 V电压;还有一路是为LCD的显示模块供电的+5 V电压。因此, 系统在选择外接12 V的直流电压的情况下, 系统电源设计电路需选择能实现+12 V转+5 V, +5 V转+3.3 V和+1.8 V的直流电压调节器即可, 其详细电路如图5所示。

2.6显示与其他接口电路设计

图5电源模块

图5电源模块  下载原图


为了在仓储罐区显示测量参数, 现场配置了LCD显示器, 由于AT91RM9200处理器内部没有集成LCD控制器, 因而需要配备专用显示控制器, 系统采用了S1D13506作为显示控制器, 来实现LCD的显示。在硬件层S1D13506控制器直接挂接到了EBI总线上, 配置和驱动S1D13506, CPU通过总线与S1D13506通信, 将显示数据传送S1D13506显示控制器, 实现LCD的显示。另外, 根据系统要求, 系统还设计了相应的系统复位电路, 时钟电路等其他辅助电路。

3系统软件设计

系统针对ARM9处理器, 选择嵌入式linux操作系统, 经过裁剪移植, 开发基于嵌入式linux的应用程序, 以实现系统的软件开发[6,7]。系统中控制器的软件开发是在PC上建立集成开发环境, 在集成开发环境下, 编写应用软件源码并进行调试。集成开发环境和主要的开发资源主要是在Linux服务器上, 用串口或FTP或网口下载内核、根文件系统。开发环境用传统的Host/Target模式, 内部调试内核、驱动程序以及应用程序是采用远程开发模式。

在Linux服务器上建立交叉编译环境, 在远程开发端通过网络用Telnet方式登陆服务器, 把需要编译的内核或者驱动程序用TFTP协议传输到服务器上, 编译完成后把可执行代码用TFTP下载到自己的电脑, 最后通过串口或网口下载到开发板上进行调试。

在移植好操作系统、完成基本的裁剪后, 应编写设备驱动程序, Linux的驱动开发调试有2种方法:一种是直接编译到内核, 再运行新的内核来测试;另一种是编译为模块的形式, 单独加载调试。第一种方法效率较低, 但在某些场合是唯一的方法。模块方式调试效率很高, 它使用insmod工具将编译的模块直接插入内核, 如果出现故障, 可以使用rmmod从内核卸载模块。不需要重新启动内核, 这使驱动程序效率大大提高。

通常所说的设备驱动程序接口[8]是指结构体file_operation{}, 它定义在include/linux/fs.h中, 它是整个Linux内核的重要数据结构。在嵌入式系统的开发中, 一般仅仅实现其中几个接口函数:read、write、ioctl、open、release, 就可以完成应用系统需要的功能。open方法完成将驱动函数映射为标准接口, init_mod

ule () 调用函数devfs_registe () 和register_chrdev () 完成将驱动向内核注册;read方法完成将数据从内核复制到应用空间, write方法刚好相反, 将数据从应用空间复制到内核。

虽然模块作为内核[9]的一部分, 但并未被编译到内核中去, 他们被分别编译和链接成目标文件。Linux中模块可以用C语言编写, 用gcc命令编译成*.o模块, 在命令行里加上-c的参数和-D_KERNEL-DMODULE参数, 然后用命令使此模块成为可加载模块。模块加载命令insmod调用init_module () , 卸载命令rmmod调用cleanup_module () 函数, 还可以用insmod命令来查看所有己加载的模块的状态。系统设计中驱动程序的修改, 修改好的驱动程序基本上都是通过修改makefile加载到内核中, 然后开始制作内核。系统中主要编制了网络设备驱动程序, LCD驱动程序, 串口设备驱动程序设计, AT91RM9200芯片内部集成了通用同步异步收发器 (USART) , 提供一全双工通用同步异步串行连接。数据帧格式可编程 (数据长度、奇偶校验位、停止位数) 以支持尽可能多的标准。串口驱动源码是../drivers/net/arm/at91_serial.c, Linux内核使用结构体extern struct uart_driver at91_uart声明串口驱动描述, 它包含串口驱动的驱动名、设备名、设备号等信息。

系统通过嵌入式WEB服务器的原理设计[10], 在数据中心以Web的结果显示, 采用基于权限的多级用户管理, 严格的用户等级设置, 对各部门的访问权限进行严格控制, 做到相关资料保密与安全。

4结束语

系统采用嵌入式处理器与嵌入式Linux的操作系统实现了海关仓储系统监控系统设计, 通过嵌入式Linux的移植、裁剪、应用程序的开发, 大大提高了系统的可靠性与开发效率, 通过Web技术的应用程序设计, 丰富了数据中心显示效果, 经使用证明:系统运行稳定、可靠并具有明显的经济效益与社会效益。

上海阳合仓储管理
官方二维码

版权所有©:阳合仓储 公司地址:上海市嘉定区南翔嘉美路428号 联系电话:134-7270-5338 沪公网安备 31011402008347号 沪ICP备14036201号-1