面具厂家
免费服务热线

Free service

hotline

010-00000000
面具厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

基于嵌入式Linux的无纸记录仪通信设计

发布时间:2020-07-21 18:25:36 阅读: 来源:面具厂家

引言在工业自动化控制系统中,记录仪起着十分重要的作用,它可以实时采集、监测和记录一些影响工艺过程和产品质量的重要参数,被广泛应用于石化、冶金、电力、机械、医药、轻工业等行业。随着电子技术的不断发展,记录仪已从传统的有纸模拟式发展到如今的无纸数字式[1]。与传统的有纸记录仪相比,无纸记录仪无机械磨损、显示直观、使用方便、故障率低和设备耗材少,因此被越来越多的应用于工业控制领域。

本文引用地址:随着工业过程自动化的高速发展,企业对无纸记录仪提出了越来越高的要求,基于8位单片机的无纸记录仪的功能已远远达不到用户的要求。嵌入式ARM微处理核的32位RISC处理器以其强大的性能丰富的接口以及优异的性价比等诸多优势,而被越来越多的应用于无纸记录仪,随着硬件的改进,传统的串行通讯方法也迫切需要改进,因此本文提出了基于嵌入式Linux的串口通信方案。嵌入式Linux操作系统是在标准Linux的基础上针对嵌入式系统进行内核裁剪和优化后形成[2],它继承了Linux的开放源代码、多任务、稳定性高,内核可裁剪等诸多优点,其内核精简而高效,具有非常好的网络性能。本文将使用嵌入式Linux作为无纸记录仪上位机操作系统,并利用其多线程编程技术实现上位机与下位机的串口通信。

1 记录仪中的通信协议

由于无纸记录仪主要在过程控制现场或监控室中使用,与之进行通信的现场设备接口以串口居多,因此在该装置的开发过程中采用十分通用的MODBUS协议作为串口通信协议。MODBUS协议是MODICON公司于1979年为建立智能设备间的主从式通信而开发的一种通信协议,它规定在一个系统中,每次命令应由系统中主设备发起,从设备通过解析地址位决定是否应答[3]。该协议具有两种报文传送帧格式,ASCII和RTU报文帧格式,分别如图1和图2所示。

图1 ASCII报文帧格式

图2 RTU报文帧格式

将两种报文传送帧格式异同总结如表1。由表1可知,两种报文帧格式各有优劣:ASCII格式使用的字符是RTU格式的两倍,但ASCII格式数据的译码和处理更为容易一些;使用RTU报文帧格式传输数据时,报文字符必须以连续数据流的形式传送,而使用ASCII格式,字符之间允许长达1s的时间间隔。

表1 ASCII与RTU报文帧格式比较

通常情况下,在一个MODBUS网络中只采用一种报文帧格式进行数据交换。但在一些特殊情况下,同一系统中需要用到不同传输模式的控制器,即同时采用两种报文帧传输格式。为了使无纸记录仪具有更强的通用性,本文提出了一种新的可同时使用两种报文帧格式的串口通信方案。在以下阐述过程中, 以ASCII和RTU报文帧格式传输的数据将分别简称为ASCII和RTU数据。

2 记录仪的通信实现

2.1 整体设计

无纸记录仪主要通信对象为工业现场设备,因此通信过程中数据交换应快速、准确无误。在MODBUS协议中,ASCII与RTU数据打包与解码均不相同,数据读写方面需要独立起来。串口通信功能框架如图3所示。

图3 串口通信功能框架图

设备注册扫描模块主要负责设备地址表的维护,每间隔一定时间扫描在线设备,并记录下设备地址和使用的报文帧格式,同时根据扫描得到信息动态开辟ASCII和RTU数据缓存区。ASCII数据读写模块负责打包和解码ASCII数据,RTU数据读写模块负责打包和解码RTU数据。数据发送模块根据优先级排列好打包好的数据依次发送。数据接收模块仅解码下位机仪表每次传回数据的首位,判断是RTU数据还是ASCII数据,存入RTU或ASCII数据缓存区,以待处理。

为了实现ASCII与RTU数据的共存,首要问题是每次设备扫描注册时对使用ASCII和使用RTU数据的设备加以区分。由ASCII和RTU的报文帧格式可知,传输数据首位是判断数据类型的关键,所以使用RTU报文帧格式的设备地址需避开ASCII数据的起始位和结束符。在未知在线设备情况下,上位机将所有设备地址轮询一遍,解析接收数据首位,如果是ASCII的起始位,则ASCII设备注册,反之,则RTU设备注册。

2.2 编程实现

软件实现上,采用Linux的多线程编程技术,可以更好的满足工业现场的实时性要求。多线程程序采用多任务、并发的工作方式[4],可以提高应用程序响应时间并且改善程序结构。Linux操作系统中提供了Linuxthread 库[5],它实现了符合POSIX1003.1c标准的多线程支持,而且是内核级方式。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

青岛碧莲盛好吗

泉州碧莲盛植发

碧莲盛植发

乌鲁木齐碧莲盛医院