3.双机冗余电控系统软件
系统软件分为主控程序和监控程序。主控程序用来控制旋挖钻机的各种动作,采集系统的各个参数,保证钻机在不同工况下实现不同的功能。监控程序的主要任务是保证程序的正常运行,包括系统初始化、系统自检、双机通讯、主副切换等。双机冗余电控系统软件工作流程见图3。
(1)?建立双机相互同步通讯
如图4所示,因系统采用热备冗余结构,主机和副机必须随时知道对方的运行状态且要保证控制的一致性,所以要建立双机通讯协议并通过CAN总线发送进行实时通讯。控制器在一定的周期内循环通讯数据,对其运行状态、现场输入输出状态、系统设定参数等数据进行广播,另一控制器就可以通过CAN总线收听该控制器的所有广播区数据,采用热备冗余技术的双机控制系统就可利用广播区的数据判断对方控制器的运行状态,这就为控制器之间的热备切换奠定了基础。另外,当主机故障停机后重新恢复运行时,也要通过CAN总线读取大量有关现场的运行状态数据和控制指令,以保持主、副控制器之间运行过程的同步。
(2)?双机热备程序
双机热备程序流程如图5所示。初始化部分用于检测主要硬件状态和生成控制器“心跳”。“心跳”是控制器正常运行的标志,是控制器互相判断该控制器是否运行正常、广播数据是否有效的依据。副控制器将其“心跳”通过CAN总线发送给主控制器,主控制器接收到该“心跳”后立即送回给副控制器。由于通过CAN总线的周期性广播存在一定延时,主、副控制器之间根据对方发送和接收“心跳”值是否相等,就可判断出对方是否正常运行以及CAN总线是否存在故障。如果出现同步结束、PLC冷启动和主机离线时间过长等三种情况,则需对2个控制器的ID重新赋值,以便副控制器能够在线控制。处于工作状态的副控制器只有通过冗余监控程序发现主控制器出现故障,才可接管整个控制系统,同时输出状态由禁止变为允许;原主控制器切换为副控制器后,其输出由允许变为禁止状态。
(3)?软件的模块化
运用CoDeSys软件对每个控制要求采取模块化编程,降低了程序的复杂程度,方便了升级和修改。整个程序共由主程序模块、初始化程序模块、双机热备仲裁模块、故障报警模块、自动起落桅模块、桅杆手动/自动调垂模块、失稳自诊断模块、主副卷扬控制模块以及发动机功率匹配模块等9个模块组成。(来源:北京南车时代机车车辆机械有限公司)