×
单片机 > 单片机程序设计 > 详情

基于CAN总线的橡胶生产监测系统的开发

发布时间:2020-06-12 发布时间:
|

1 引言

    在工业生产领域中往往对生产工艺要求严格。但是在实际生产现场有时候很难保证实际操作完全符合要求。例如橡胶的加工过程中,生产时间的控制非常重要。 在硫化和密炼等过程当巾,如果操作时问少于要求时间,将直接导致成品率降低,影响橡胶厂的效益。因此,必须对硫化和密炼的整个过程进行实时监测,对生产过程进行约束。但是在实际应用中往往生产厂区分散,组网困难。利用CAN总线组网能够满足上述要求。可以将整个工厂的硫化仪、密炼机等连接在一起组织成一个子网络,将各个子网络组成一个局域网,实现整个工厂设备的网络化和自动化。

2 系统介绍

2.1 CAN总线介绍

    CAN总线是一种有效支持分布式控制的串行通信网络,是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而设计的一种串行数据通信协议,历经技术规范2.0A、2.0B后已形成了CAN国际标准(ISO11898)。CAN遵从OSI模型,按照OSI基准模型,CAN结构分为2层:数据链路层和物理层。按照IEEE802.2和802.3标准,数据链路层义划分为:逻辑链路控制层(LLC)和媒体访问控制层(MAC);物理层又划分为:物理信令层(PLS)、物理媒体附属装置层(PMA)和媒体相关接口层(MDI)。由于CAN总线具有的独特的优点,其在工业领域中已得到相当广泛的应用。目前,基于CAN总线的获得广泛应用的应用层协议有:DeviceNet、CANOpen、CAL、CAN Kingdom等。CAN总线最大通信速率可以达到1 Mbps(40m);最大传输距离可以达到10 km(5 kbps)。CAN具有以下主要特点:

    多主战依据优先权进行总线访问;

    高可靠性,采用无破坏性的基于优先权的仲裁,发送期间若丢失仲裁或由于出错而遭到破坏的帧自动重发;完善的错误监测机制。采用短帧结构,硬件自动进行16位的循环冗余(cRc)校验及其他校验措施,使数据出错率极低;

    故障节点自动关闭,暂时错误和永久性故障节点的判断以及故障节点的自动脱离。

2.2 系统架构

    系统构成如图1所示。由数据采集处理单元、工控机、服务器、终端PC用户组成。

    数据采集处理单元完成数据的采集和预处理后将数据通过CAN总线发送到工控机。

    工控机通过CAN通信适配卡从CAN总线接收数据,处理后将数据传到服务器中。

    服务器负责监测结果数据的存储和报表的存储,同时向用户终端提供访问服务。

    PC终端运行客户端软件,通过因特网访问服务器上的数据并可以进行通信。

    本文重点研究数据采集处理单元以及其与工控机的通信机制。

图1 系统架构

3 硬件设计

    由于现场节点数超过110个,所以系统采用2条CAN总线,工控机端采用PCI双路智能CAN接口卡作为主节点。数据采集单元作为从节点,结构如图2所示。

图2 节点硬件结构

    数据采集单元MCU采用C8051F040,它包含8位、12位ADC,增益可调、8位ADC最大转换速率500 Kbps;2个12位DAc;64 KB的Flash,支持JTAG调试和在线编程,外部“KB数据存储器接口,4352 B内部数据RAM;8个8位宽端口I/O,耐5V;Bosch CAN2.0B控制器。C8051F040资源丰富,有利于提高整个系统的集成度。增加系统的抗干扰能力,尤其对于环境恶劣的工业领域,提高系统的集成度有很现实的意义。CAN收发器采用CTM1050,CTM1050是一款带隔离的高速CAN收发器,内部集成了CAN隔离及CAN收、发器件。设备类型开关用于选择区分被监测设备类型,温度传感器和压力传感器将现场的被测信号转化为电压信号传给MCU,接近开关和继电器将硫化仪的开合模信号转化成简单的开关信号送给MCU。由于系统只需要监测3个变量,而C8051F040的8位ADC包含8路外部输入,所以一个数据采集单元可以完成两个相同外部数据节点的采集工作,这样可以有效节省资源。

4 软件设计

4.1 会话层通信协议设计

    系统需要监测以下数据:硫化仪的开合模时间、橡胶机的工作电流变化情况、橡胶美化过程的温度,以上各数据都采用一个字节来传送。此外还需要一个字节来传送终端被监测设备的设备类型。这样对于每一个被测终端需要传送两个字节的数据,一个字节的测量数据和一个字节的设备类型。而每个数据采集单元完成两套数据的采集工作,所以每个数据采集单元每次需要传送4个字节的数据。CAN协议数据帧中的数据场可以包括0-8个字节,为了节省网络资源,数据帧中的数据场只用4个字节。这样在正常发送的数据帧中包括:帧起始1b、仲裁场12b(包括RTR位)、控制场6b、数据场32b、CRC场16b、ACK场2b、帧结束7b,一共76b。整个系统节点数超过110个,所以采用两条CAN总线,每条总线上设计节点数为70个,可以进一步扩展。CAN总线位速率随着总线长度的增加急剧下降。由于厂房之间的距离比较开阔,总线长度接近10 km,所以必须尽量降低总线传输速率,采用最边缘情况5 Kbps/l0 km。硫化仪的开合模时间需要精确到秒级;橡胶机的工作电流、橡胶美化过程的温度变化精确到半分钟即可,所以对采样间隔统一设为0.1s,通过软件对采样数据进行滤波处理。为了降低网络传输速率、增加总线的可靠传输长度,设计过程中在满足系统实时性的前提下降低数据传输量。如果按照硫化仪开合模的时间要求,需要每秒钟传输一次数据,这样每秒钟总线数据量为Dt=(1+12+6+32+16+2+7)×70=5320 b。这样就超过了总线的容量,所以需要对传输的数据进行分类处理。通过对系统的分析可以发现,橡胶机的工作电流、橡胶美化过程的温度以及设备类型数据变化缓慢甚至很少变化,采集的数据可以周期发送;而硫化仪的开合模时间变化是随机的,但是实时性要求高。鉴于以上分析。定义一种事件触发和时间触发相结合的用户层通信协议。[page]

    在CAN协议中数据的发送是基于事件的,即ET模式。在这种模式下,所有数据帧都要参与总线竞争,优先级由标示符ID确定。如果总线数据量大,必然导致总线竞争激烈,总线出错几率增加,当优先级低的节点长时间得不到总线会出现节点通信异常,最终导致该节点自动脱离总线。而TTCAN是一种基于时间触发的CAN高层协议,它通过系统时钟同步来实现发送、接收数据的静态调度。TTCAN可以有效避免总线竞争。本系统中对于工作电流、温度和设备类型可以周期传输的数据采用TTCAN静态调度机制,而对于开合模时间采用事件触发机制。将系统中所有周期发送数据的节点至少发送一次所需要的时间记为一个发送周期T,每个节点的发送时间记为基本周期t,每个发送周期T由n个基本周期t组成。在每个发送周期T开始时候,由主节点广播一个参考帧,参考帧中包括时钟同步信息。为了达到全局时钟的同步,每隔一秒主节点广播一帧参考帧。当从节点收到参考帧后CAN收发模块将本地参考时钟同步,等待发送。之后主节点广播带有从节点ID的数据请求帧,从节点收到数据请求帧后与本节点ID比较,当请求帧中包含本节点ID时,该节点根据其ID在数据请求帧的先后位置依次以周期t向总线发送数据。在一个节点向总线发送数据的专用周期t内,其他在调度范围内的节点是禁止报文重发的。但是对于采集硫化仪开合模时间的节点允许报文重发,其一直参与总线的竞争,并且将其ID设置较低,使其在总线竞争中可以获得较高的优先级。由于CAN数据帧最多只有8个字节数据,所以一个发送周期t内主节点需要多次发送请求帧来完成所有节点数据的传输,一个数据请求帧长度为108b。

    本系统中总线速率为5kbps,传输1b占用的总线时间为200μs,根据需求取T=5s。从节点发送一帧数据需要的时问设为t,主节点发送一帧请求帧需要的时间设为t’。

    t=76x200μs=15.2 ms

    t=108×200μs=21.6 ms

    每条总线设计节点数为70个,假设有n台是硫化仪,即n个节点参与总线竞争;那么由主节点调度的节点数为70-n。假设总线上每台硫化仪工作独立,硫化仪的开合模时间为1 min完成一次开合。在1min内硫化仪何时开合模是随机的,服从平均分布,则每个发送周期T内一台硫化仪发生开合模的概率为p,p=T/60=5/60。总体n个节点来说,在发送周期T内发生开合模的次数ζ服从二项分布,ζ~B(n,5/60)。那么在一个发送周期T内,发生开合模的次数期望值为E,E=n×5/60。为了避免由于没有参与总线调度节点产生的总线竞争引起调度失效,同时考虑到每个周期T内需要多次发送请求帧以及参考帧,因此取基本周期T+[E]T<,在基本周期t内除了完成调度数据的传输外还留有充足的时间用来传输开合模数据。通过以上分析可知,当总线上硫化仪节点增多时,参与总线竞争的节点数增加,此时基本周期增大,在基本周期t内除完成调度节点的数据发送外,还有相当长的时间供总线竞争;当总线上硫化仪节点数减少时,参与总线竞争的节点数减少,相应的基本周期减小,但是在基本周期t内需要传输的开合模数据的个数期望较小,总线的竞争不大,同样可以满足系统需求。

4.2 节点软件设计

    节电软件包括整个系统初始化、数据采集、CAN数据收发。系统初始化、数据采集以及CAN初始化程序都采用传统的框架。系统中对于硫化仪和非硫化仪数据采用了两种不同的发送方式,下面给出非硫化仪的CAN收发模块的程序框图和硫化仪设备的整体软件框图。图3为非硫化仪设备的cAN收发模块的程序框图,图4为硫化仪设备的整体框图。

图3 非硫化仪CAN框图

图4 硫化仪CAN框图

4.3 应用结果

    对所设计的通信协议以及整个系统进行了实际工作环境测试,本系统中n=33,取t=100 ms。在试运行的一小时内,硫化仪的开合模时间能够实时监测,橡胶机的工作电流变化情况、橡胶美化过程的温度也能够及时传输。整个系统未出现通信中断或者传输延迟。整个系统正式投入运行后,到目前为止已经实际运行半年时间,系统运行稳定,没有出现数据丢失或者由于总线冲突导致的节点自动脱离总线的现象。

5 结论

    本文设计的质量监测系统在某橡胶厂得到了应用,系统中采用的CAN与7rrcAN结合的通信协议经过长时间的测试和运行,其稳定性良好、可靠性高。在原厂中由于厂房设备类型、数量多,厂区较分散,不宜于质量监控,导致生产效率、成品率低。采用该系统以后,不仅使所有的设备都联网,而且生产效率以及产品成品率得到了很大的提高。另外该系统也可以应用于其他需要实时监控生产过程的领域中。

关键字:CAN总线  生产监测系统  通信协议  C8051F040

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机制作超级流水灯