基于CAN总线的烧结配料监控系统设计
扫描二维码
随时随地手机看文章
1 引言
烧结厂配料系统是整个烧结生产的源头,配料过程中对现场采集的数据进行有效的收集与传输直接影响着烧结生产的产量和质量,影响企业的劳动生产率和经济效益,而烧结配料现场环境有大量的变频器和电机设备并且布线与通信总线比较接近,这些设备在运行时会产生比较大的噪声作用于周边的信号线上,引起设备的误动作[1],严重影响了对现场信号传输的实时性、精确性。
本文针对烧结混合配料系统的以上问题,设计开发了一套基于CAN总线的烧结配料监控系统。CAN总线通信与其他总线相比信号传输的快速实时性更高、抗干扰更强、可靠性更高,组网灵活从而保证配料精度和稳定性。
2 整体概述
2.1 整体概述
本烧结配料系统由1个PC机,1个主控制器和16个配料控制器组成。它们之间采用CAN总线连接如图1所示。主控制器的主要作用对所有配料控制器进行全局的调动,如控制配料控制器的顺启,顺停和急停。配料控制器的主要作用是采集皮带秤的重量信号和给料装置的速度信号,通过PID运算得出相应输出频率信号到变频器,再由变频器去调节给料装置电机的转速,从而使得物料的流量保持在设定的范围内。由于电子秤配料现场环境复杂,基本的PID很难达到控制要求,如采用一般的PID算法,在开始配料或停止配料的瞬间和大幅度增加给定值时,由于偏差较大,在积分项的作用下,将会产生很大的超调,因此根据具体情况在基本 PID控制的基础上进行局部改进,采用积分分离PID控制算法。PC机通过监控画面监控系统的运行,主要负责各个配料控制器的参数设定、实时流量和累计流量显示、运行状态显示以及实时、历史数据查询等,并通过CAN总线与主控制器及各个配料控制器连接实现协同工作,完成对烧结配料的自动控制。
2.2 控制器设计
主控制器和16个配料控制器均选用意法半导体公司的STM32系列高性能32位处理器STM32F103ZET6,配料控制器使用STM32的ADC、 DMA外设采集速度传感器的速度信号和重量传感器的重量信号,使用DAC、DMA和TIM等外设控制输出0~3.3V电压,然后输入到变频器的模拟量输入端子,0~3.3V电压对应于变频器输出的0~50Hz,最终实现不同的电机转速,即皮带传送速度的调节。主控制器主要使用CAN外设和配料控制器和上位机进行通信进行全局的调动。
3 CAN总线通信协议设计
CAN(Controller Area Network)是一种有效支持分布式控制或实时控制的串行通信网络[2],CAN总线与其他总线相比技术优势明显,与RS485总线对比分析如下:
3.1 SAE J1939通信协议
本系统通信协议的定制是参照SAE J1939-21协议标准制定的,该标准采用CAN2.0B帧格式,即扩展帧格式包含29位标识符[3]。
3.2 协议制定
PC机处理的信息主要有接收并显示各个配料控制器的流量值及状态信息,配料控制器的参数设置信息等;主控制器处理的信息是控制各个配料控制器顺启、顺停和急停等信息;配料控制器处理的信息有给定流量信息,实时流量信息、当前状态信息及PC机下设参数信息等。配料控制器发送的信息协议制定如表1所示(下表仅为整个协议的一部)。
4 监控系统设计
监控系统软件采用Labview开发,硬件部分包括PC机和周立功的USBCAN模块,Virtual CAN Interface (VCI)函数库是专门为USBCAN设备在PC上使用而提供的应用程序接口[4]。函数库中共定义了5个数据结构用于数据交换。另外,函数库里共有用户函数14个,函数名称参看图5。库里的函数从ControlCAN.dll中导出,在 LabVIEW8.5中直接使用这些库函数编写上位机程序。VCI 函数的使用流程如图2所示。
4.1 VCI库函数的调用
库里的函数已经在VCI函数库中进行了声明,并且给出了函数名称及其参数,因此在调用函数时可以通过Labview中的Calling Library Function Node进行调用,如图3所示。在“函数名”下拉列表框中选择函数,在“参数”选项卡中添加相应的参数,单击“确定”按钮,即可完成不同函数的调用。
4.2 数据结构的建立
在使用V CI函数时要用到库中的5个数据结构进行数据交换。创建这些结构要使用Labview中的“簇”。一个簇就是一个由若干不同的数据类型成员组成的集合体。例如建立VCI_ERR_INFO数据结构,如图4,该数据结构用于装载VCI库运行时产生的错误信息。
4.3 USBCAN模块的控制及程序框图
程序框图当中有3个主要的While循环:主循环、发送数据循环和接收数据循环。如图5所示。这三个循环是并行运行的。其中,主循环处理与用户交互的界面,并通过用户事TREvent 与发送数据循环和接收数据循环通信。发送数据采取手动方式, 当设定按钮按下时, 配料控制器给定的流量,PID参数,控制器选中和开启等信息,将通过 VCI_TransmitObj 函数发送给STM32。接收端采用循环扫描的方式接收STM32发送过来的数据, 该数据包括配料控制器实时流量,累计流量,当前工作状态,主控制器工作状态等信息。
图5 控制程序框图
4.4 CAN报文的数据处理及程序框图
[!--empirenews.page--]USBCAN模块就作为节点完成CAN报文的接收。然后此报文通过USB口发送到计算机的内存缓冲区[5],最后由上位机节点控制软件读取缓冲区的数据,上位机节点控制软件读取数据后,对数据进行解析。
在程序中,首先使用条件结构对报文的 ID 部分进行识别与筛选,判断出该报文来自于哪个节点,如图6所示,然后对报文数据部分进行对应的格式转换,最后来驱动在软件的虚拟仪表系统主界面上对应的显示控件完成对CAN报文的显示,如图7所示。
4.5 监控界面的设计
上位机监控系统主要由四个界面组成:设定界面、工艺界面、状态界面和报警界面。设定界面主要作用是对配料控制器相关参数的设定,如物料名称,PID 参数,给定流量等。工艺界面主要作用是显示整个配料工艺及流程画面和显示各设备瞬时运行情况。状态界面主要作用是将整个系统的实时运行状况在监控界面上显示出来,如每个配料控制器实时数据曲线和历史数据曲线显示,并能以报表形式打印出来,工作状态显示,给定流量和累计流量显示等。状态界面如图8所示。报警界面的主要作用是系统发生故障时能及时通知工作人员尽快处理故障。