资讯库 厂家库 产品库 / 咨询专线:400-6668-369 / 服务时间:8:00-18:00(非节假日)
欢迎来到洛阳花都办公家具网,花都家具集团,中国最大的密集架生产厂家,中国十大钢制家具厂家!

基于CAN 总线的智能电动密集架控制系统的研究

CAN是一种有效支持实时控制的串行通信网络,区别于基于RS485构建的系统,它具有数据通信实时性强、传输距离远、安全性高、开发周期短等诸多优势。密集架是多列货架密集组合,可根据需要通过专用导轨移动、靠拢或分开的装置[1-3]。智能电动密集架系统,是现代化仓储的重要标志,因其空间利用率高,配置灵活,而被广泛应用于图书、档案等管理系统中。目前市面上大部分密集架控制系统均采用RS485方式控制,其实时性差、总线利用率低、软件控制复杂等缺点,已经限制了系统性能的提升。针对这个问题,本文阐述了一种基于CAN总线实现的密集架控制系统方案,该方案选取Freescale 的8位微处理器MC9S08DZ60作为主控芯片。该系统能够简化各个控制单元间的连线、提高通信速率、提升安全保障[4]。本文阐述的设计方法与控制策略也可为同类的其他应用开发提供参考。

1 系统概述

智能电动密集架系统主要包括基于单片机或PLC的电气控制系统、机械系统和用户终端管理软件。用户终端管理软件负责管理数据资料以及显示各种库房环境数据。电气控制系统负责控制密集架的架体移动。系统的核心是用户通过PC机管理软件或密集架上的触摸屏查询出要取/放的资料所在的位置,系统自动打开特定的密集架通道,并点亮相应位置的指示灯,供用户取/放资料,操作完毕,密集架架体自动归位,指示灯熄灭。

密集架一般按组划分,一个密集架系统包含多个组。一组密集架,包含1个主控列和N个移动列。主控列负责控制和协调组中各列的运动以及环境监测等,位置固定不动,也称为固定列。移动列负责本列的电气控制,允许左右移动、强制锁定、手动控制等。图1所示为一个初始状态为全关,共6列,主控列在右侧的一组密集架,每组密集架底部都装有一组导轨,用于移动。图1中主控列在最右侧,一般主控列编号为1,最靠近主控列的那一列编号为2,其余类推。主控列的位置也可能在最左侧或者正中央。

图1 一组密集架示意图

2 系统框架

基于CAN总线的密集架控制系统结构,如图2所示。

图2 密集架控制系统结构图

系统控制采用主从模式控制,主控列控制器作为主控CAN节点,移动策略部署在该节点上,负责调度移动列,同时负责信息的中转处理,把终端用户的指令转发到CAN通信子网中。移动列控制器,作为CAN子节点,负责接收并执行主控CAN节点发送的命令,并反馈结果到主控CAN节点。系统中需要处理的信息概括为以下几种:

(1) 按键事件:操作人员主动按下移动列的左/右键,请求移动,此时移动列向主控列发送请求移动命令。主控列接收移动请求帧,判断是否可以移动,如果不能移动,语音播报;如果能移动,广播发送移动命令,同时主控列控制器通过RS232向上位机发送移动信息。移动列接收移动命令,根据传感器信息和相邻列的信息进行移动。操作人员主动按下移动列的强制锁定键,强制系统硬件锁定,忽略任何移动指令。

(2) 运动控制:主控列要求移动列移动/停止移动/解锁等。

(3) 查询事件:主控列查询某个移动列的状态。

(4) 显示信息:主控列向移动列发送显示信息。

(5) 定位灯控制:主控列向移动列发送定位灯亮暗信息。

(6) 移动列参数配置:靠近主控列和远离主控列对应的正转还是反转,人体感应时长等参数。

(7) 紧急事件:例如某列检测到有物品坠落,发送广播帧。

(8) 到位事件:移动列发送的到位信息。

本系统在设计过程中,为了保障人员和资料安全,引入了多种传感器协同工作提供多重保护机制,主要包括:末列密集架上装有末列到位传感器用于移动过程中检测是否移动到最末端;任意两列之间都装有列间到位传感器,监测两列之间是否移动到位;每列上都装有防坠落传感器,监测物品是否坠落,如果有物品坠落要强制硬件锁定,密集架不能移动;每列上都装有强制锁定按键,人员进入时可按下强制锁定按键,强制硬件锁定,忽略任何移动指令;两列之间装有红外对射防夹传感器,人员操作时,进行系统锁定,提供双重保护;主控列上装有RFID读写器,操作人员刷卡认证之后,可以通过主控列上的触摸屏完成取放操作,为系统提供”脱机”控制功能,避免因意外的网络故障而无法获取资料。

3 硬件系统设计

Freescale公司的MC9S08DZ60内部集成了支持CAN 2.0A/B协议的MSCAN模块。MSCAN模块包含3个使用本地优先级的发送寄存器5个FIFO的接收寄存器,并提供了64 位的掩码寄存器用于标志符的识别,可灵活组合为2个32 位/4个16位/8个8 位的寄存器,且支持11 位标识符标准帧和29位标识符扩展帧,总线消息寻址十分灵活[5]。同时DZ60提供了2个SCISPIIICTPMA/DBDG等诸多功能模块,资源丰富,应用广泛,因此本系统选用该芯片作为主控MCU,进行硬件设计。系统的主控列与移动列控制器采用近似的硬件设计,部署不同的软件。

MSCAN模块需要配合CAN收发器使用,本文选用高速CAN收发器TJA1040[5],它适用于较高通信速率和干扰环境下的CAN总线通信,为良好的收发奠定基础。CAN总线收发器的电路连接如图3所示。为实现CAN总线各节点真正的电气隔离, CAN模块的RXDTXD经由高速光耦6N137之后再与TJA1040的RXD/TXD相连,且光耦部分的VCCA/VCCB通过带隔离输出的开关电源模块进行隔离,为加强保护系统中还添加了静电保护装置PESD1CAN

图3 CAN总线收发器电路连接

系统运用多种传感器进行状态检测,选用了单总线芯片DS18B20用于温度采集,电压式湿度传感器HIH-5030用于湿度采集,Kingsensor红外光幕用于人员检测和物品坠落检测,限位开关和超声波传感器用于辅助电机控制。

4 软件系统设计

4.1 CAN应用协议设计

CAN协议规定标准的数据帧有11 位标识符,扩展帧有29位标识符[6],但在实际的软件开发过程,开发人员需要针对特定的应用环境对标识符进行协议编制,以提升软件开发效率。

本系统中由于每组密集架不超过31列,因此地址码使用5位二进制进行编码,每个列分配一个唯一的地址码,在系统初始化时通过读取一组拨码开关的状态而设定[7]。为提高通信效率,本系统只使用标准数据帧进行数据传输,并将标准帧11位标识符中的ID10作为主从模式设置位。0代表主控列发送数据到移动列,1代表移动列发送数据到主控列。将标识符ID4-ID0用作目的地址,ID9-ID5用作源地址,子节点的目的地址设为0,表示广播帧[7]。由于CAN 协议中规定标识符高7位不能全为隐性位,源地址排除31,而0保留,主控列负责调度优先级较高,地址设置为1,因此实际可用的移动列地址为2~30。

CAN数据帧的发送需要将数据写入MSCAN数据缓冲区,MSCAN缓冲区结构与应用协议结构如表1所示。

表1 MSCAN缓冲区结构与应用协议结构

4.2 软件流程

鉴于CAN总线的数据传播方式为广播,因此总线上的每个节点都需要过滤无关数据,以提高数据处理效率。MSCAN模块提供了灵活的数据帧过滤功能,通过联合设置标识符验证模式寄存器、标识符寄存器和标识符掩码寄存器可以满足各种应用需求[8-9]。通过标识符掩码寄存器指定哪些位参与匹配检查,哪些位忽略不计,把接收到的数据帧标识符和标识符寄存器中的标识符进行匹配,如果匹配通过,则把该数据帧存入接收缓冲区中,否则抛弃该帧[10]。本系统中所有CAN模块均设置为只接受广播帧和发送给自己的帧,根据协议规定,MSCAN模块可接受的数据帧配置如表2所示。

表2 MSCAN模块可接受的数据帧配置

续表2

MSCAN的帧过滤机制,不但简化了软件处理的复杂度,而且为系统扩展提供了有利条件。本控制系统软件分为移动列控制部分和主控列控制部分,移动列核心为各种CAN命令帧的解析以及运动控制。主控列软件的处理流程与移动列类似,在此基础上添加移动控制策略和信息转发策略即可,这样可以有效提高软件开发与调试的效率。

5 技术要领

5.1 运动控制

(1) 原则上移动列在移动状态下,遵循边移动边检测的原则,一旦到位传感器检测到移动到位,则立即停止电机,并向主控列发送本列到位信息,但仅如此不足以应对复杂的实际应用场景中。出于安全考虑,系统中还添加了到位传感器失效保护功能,当传感器失效时,能在超过预设距离时自动停止并自动锁定架体,防止架体冲出轨道、发生碰撞或侧翻。失效保护通过使用可编程定时器模块TPM作为定时时钟源,启动定时,边移动边计时,精确控制时长,超时停止。此外移动装置上还装有阻力检测传感器,通过电流变化反映是否因意外障碍物而受阻。其他类型传感器也悉数添加冗余设计,防止部分传感器失效造成架体运行碰撞、侧翻。

(2) 当密集架通道打开时,多列电机会同时运动,即使是同一型号同一批次的电机,也存在自身速度差异,会造成列间距不均等的情况,而引发碰撞;而各个密集架体负载的资料数量不等,架体的重量也不均等,同样会导致速度差异。针对这个问题,硬件上为每列添加超声波传感器检测,软件上通过读取超声波的反馈,自动微调各个电机的速度,以屏蔽速度差异,维持等距。

(3) 由于密集架体较重,所以电机控制应遵循“高速启动,匀速前进,低速无碰撞着落”原则进行,速度参数的调整需要结合架体承重、运动距离等进行测算。

5.2 CAN控制

(1) 组建CAN通信网络时,CAN节点地址在系统初始化时通过读入一组外部拨码开关的状态来设置,设置简单灵活,方便系统扩展。

(2) CAN通信网络中所有的节点都必须使用统一的位速率。位速率大小主要取决于应用环境所需要的通信距离。本系统通信距离限定为两百米左右,位速率设定为250 kbit/s。该速率通信高效可靠,可及时发现系统隐患,方便故障定位和排查。故障监控可充分利用MSCAN模块的错误中断,通过跟踪错误计数,以决定是否需要进一步诊断,通过读取CRFLG寄存器标志位,可以判断错误/警告的类型[11]

(3) 为降低系统功耗,当系统状态机为Idle时,启用MSCAN休眠模式,并在总线上有数据时通过中断唤醒。

(4) 用户终端管理软件部署调度策略,以应对多个资料统一取/放问题。当开架请求涉及多组密集架时,需要首先根据组信息,按照距离入口由近及远的顺序加入命令处理队列。主控列也部署有移动策略,收到一组多列存取指令时,根据涉及到的列数、列序号以及固定列的位置,采用类似电梯调度的移动策略,尽量避免路径重复,有效提高效率。

6 实践结果分析

针对密集架控制系统,传统的RS485总线实现与本系统实现方式,各方面性能对比如下:

(1) 实时性:RS485是单主从结构,通信只能由主机发起,多从机通信必须经主机中转,而CAN是多主从结构,任意节点均可发送数据,互相通信,这在移动列运动时检测邻居列是否运动到位时,尤其重要。且由于系统中使用多种多路传感器,而传感器事件属于随机突发事件,随时可能上报数据。针对随机突发事件,RS485只能通过轮询来解决,而CAN的多主机制可直接实现,效率优劣显而易见。

(2) 总线利用率:当同时有多个节点同时需要上报数据时,RS485只能在轮询发现后,逐一进行通信。而CAN通过它独特的逐位仲裁以及重发机制,可以自动解决问题,总线利用率明显提升。

(3) 错误检测:RS485无法识别非物理错误,容易造成总线瘫痪,而CAN控制器拥有完善的错误检测机制,且如果节点发生严重错误则自动闭锁,脱离总线。

(4) 软件开发复杂度:CAN的广播与应答机制可以减少交互次数从而降低软件开发复杂度,系统中需要处理的交互归纳如表3,其中通信方向0为主控列发送数据到移动列,1反方向传输,N为移动列数量。

表3 软件开发交互次数对比

从表3可以看出,RS485需要接近N倍于CAN的交互次数,加上需要自定义确认重发机制,软件控制比较复杂。

(5) 通信速率与稳定性:主控CAN节点通过串口连接上位机,每隔50 ms查询各移动列的状态数据,并记录各移动列的应答编号、应答数据与时间,截取不间断1小时测试数据,如表4所示,其中t为时间,v为速率,r为正确帧数,w为错误帧数。

表4 测试数据

通过表4可以看出,数据帧数量随时间线性增加,没有出现错误帧。通过检查应答编号也没有发现丢帧,说明在两百米范围内可以实现接近250 kbit/s的稳定传输。在同等环境下,RS485通信在30分钟之内就出现了错误帧。

通过以上对比,不难发现,CAN相较于RS485在多个方面都更胜一筹。

7 结 语

CAN总线是目前唯一具有国际标准的现场总线,其高可靠性、低功耗、结构简单等特点,使其具有广泛的应用前景。本文工作受到国家自然科学基金项目(项目编号61202028)的部分资助,属于该项目中通信方式应用研究及现场总线的无线接入研究的一部分,也是该项目的横向延伸应用案例之一,对基于CAN总线的智能型密集架控制系统的设计与实现进行了研究,阐述了控制系统的软硬件设计方案,并对系统实现的核心技术要点进行了详细阐释。最后通过与RS485实现方式的全面比对,诠释了本系统在实时性、总线利用率、错误检测、软件复杂度等方面的绝对优势。经实践测试,该控制系统实时性强、可靠性高,打破了常规智能电动密集架控制系统带来的性能瓶颈,作为RS485总线应用的一种优化替代方案,本系统也可为同类的其他应用提供借鉴。

相关资讯