本发明涉及一种养殖舍环境控制器的继电器驱动信号校验方法。
背景技术:
集约化养殖舍中都会配备环境控制器,在以微控制器mcu为核心的环境控制器中,继电器外围电路上存在众多元器件,存在因静电放电、过压、过流等各种异常电气状况而导致元器件各种情况的损伤和损坏,这时继电器的实际端口驱动信号就会存在异常,出现和环境控制器的输出信号不一致的情况,进而导致执行设备不按预期工作。
所以环境控制器自身需要采用一定的方法和手段来检测故障和提醒维护者,自己的硬件电路可能发生故障了,需要维护人员来处置。考虑到养殖领域对设备低成本的要求,检测方法和手段应用后控制器既不能增加明显的额外成本,更不能影响继电器驱动功能的正常运作。
技术实现要素:
本发明的目的在于提供一种养殖舍环境控制器的继电器驱动信号校验方法,该方法能够自主判断继电器端口的实际驱动信号与环境控制器的控制驱动信号是否一致,及时产生故障报警。
本发明解决其技术问题所采用的技术方案是:
一种养殖舍环境控制器的继电器驱动信号校验方法,包括以下步骤:
s1、在环境控制器的内存中使用n个比特位定义继电器线圈状态,a表示继电器线圈得电,b表示继电器失电;
s2、在环境控制器的内存中定义变量coil与变量temp_port,环境控制器将应当执行的继电器驱动信号写入coil,temp_port为继电器端口寄存器的缓冲区;
s3、当coil值等于a或b时,将“1”或“0”对应写入temp_port,temp_port的值被读入继电器端口寄存器;当coil值既不等于a也不等于b时,则终止校验并产生报警信号;
s4、在环境控制器的内存中定义变量real_port,继电器端口寄存器的值完成刷新后,将继电器端口寄存器的值读入real_port;
s5、比较temp_port值与real_port值,如果temp_port等于real_port,则表明继电器驱动信号正常;如果temp_port不等于real_port,则表明继电器驱动信号异常,产生报警信号。
本发明的有益效果是,利用环境控制器自身的内存资源,将环境控制器将应当执行的继电器驱动信号与继电器端口实际的驱动信号进行比较,进而判断出断继电器端口信号是否异常,及时发出报警,利于维护人员及时处理,避免造成严重的设备损坏。
具体实施方式
本发明提供一种养殖舍环境控制器的继电器驱动信号校验方法,包括以下步骤:
s1、在环境控制器的内存中使用n个比特位定义继电器线圈状态,a表示继电器线圈得电,b表示继电器失电;本实施例n=3、a=3、b=5;
s2、在环境控制器的内存中定义变量coil与变量temp_port,环境控制器将应当执行的继电器驱动信号写入coil,temp_port为继电器端口寄存器的缓冲区;本实施例中也即继电器线圈得电时coil=3、继电器线圈失电时coil=5;
s3、当coil值等于a或b时,将“1”或“0”对应写入temp_port,temp_port的值被读入继电器端口寄存器;当coil值既不等于a也不等于b时,则终止校验并产生报警信号;
本实施例采用负逻辑驱动,也即coil=3时,将“0”写入temp_port,coil=5时将“1”写入temp_port;
s4、在环境控制器的内存中定义变量real_port,继电器端口寄存器的值完成刷新后,将继电器端口寄存器的值读入real_port;对于本实施例,在继电器线圈得电时,real_port应当为“0”;在继电器线圈失电时,real_port应当为“1”;
s5、比较temp_port值与real_port值,如果temp_port等于real_port,则表明继电器驱动信号正常;对于本实施例而言,temp_port=real_port=0时,表明驱动信号正常;如果temp_port不等于real_port,则表明继电器驱动信号异常,产生报警信号。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围内。