程序总体框图如下(图1是程序总体架构,图2是图1要实现的功能框图):
图1程序总体架构图
图2 推土机控制系统功能图(08YE没有松土器)
程序设计追求模块化标准,主线上(工作控制模块)实现了行走控制和工作装置控制的分离,易于分别调试。而在非工作控制模块中(service修参、输入量读取、显示、通讯和故障诊断等)又实现了行走和工作装置的整合。程序架构还是很清晰的。
程序可以分为如下几个模块:初始化、工作控制模块和分支模块。其中初始化和工作控制模块是一条主线,而service修参、显示、输入量读取、通讯和故障诊断等是一条分支。
一、初始化(init)
主要完成工程名、版本号的设置、控制器类型和版本、CAN通讯的波特率、初始化各个通讯数据包、对pwm和I/O端口进行初始化。
为了保证程序的易读性和可延续性,详细注释已经在程序中标明。
二、工作控制模块
此模块主要完成工作开始判断(start_condition)、行走和铲刀的控制(run and work )、控制器心跳(main)等功能。
1、start_condition主要判断工作控制模块是否执行,主要通过判断行走手柄是否在中位,在程序中加入了软件滤波限制(除抖),保证手柄在中位360ms,避免由于误通讯参数导致的危险(抖动)。力士乐程序中在这一块有错误,已经进行了修正。
2、main主要完成了控制器心跳的产生,心跳周期30ms*500。
3、RUN,主要完成了行走控制。全液压推土机控制系统的核心是行驶控制,其中包括:行驶操纵、行驶纠偏、原地转向和恒功率调节。打开RUN,包括work和drive两块,其中work中实现了行驶操纵、行驶纠偏、原地转向和恒功率调节等功能。Drive实现了六个pwm输出量(控制泵和马达)和两个数字量输出(刹车制动和发动机使能信号)的控制。
Work是整个控制行走控制系统的关键,控制推土机的行走方向、速度、转向、纠偏。