本发明专利技术公开了一种开关量信号的采集方法,该方法必须连续十六次采集代表DI接口的开关量信号值都必须为同一个值,才能更新表示开关量信号状态的值,故而能有效的避免因DI采集错误导致风力发电机组等工业控制系统的误判,达到有效采集开关量信号目的。
【技术实现步骤摘要】
本专利技术涉及一种开关量信号(DI信号)的采集方法,该采集方法可应用于风力发电机组开关量信号的采集。
技术介绍
在大型风力发电机组中,涉及到大量的工业过程信号的采集,其中DI信号占据了很大的一部分比例,由于DI信号多为开关、继电器等无源器件给出,而无源信号在断开的时候,由于DI接口为悬空状态,从而形成一条很长的天线。因此即便DI接口通常在硬件上采用了光电隔离和施密特触发器整形,但是在诸如风力发电机组这样严酷的工业环境中,存在着很多的瞬态干扰,而所述的瞬态干扰会随机地造成某一次读入DI接口信号发生错误,发生DI采集错误导致风力发电机组控制系统误判的现象仍时有发生。针对诸如风力发电机组这样严酷的工业环境,有必要提出一种可有效对开关量信号进行采集的方法。
技术实现思路
本专利技术的目的是针对上述
技术介绍
存在的缺陷,提供一种可避免因瞬态干扰而引起开关量信号采集错误的开关量信号采集方法。为实现上述目的,本专利技术,应用于16位的单片机系统,其包括 步骤I :当开关量信号采集方法的程序开始时,先行预置的16位缓冲字内容始终保持为0χ0000,所述先行预置的16位缓冲字内容为0x0000表示被采集的具有开关功能的无源器件输出的开关量信号为处于断开状态,对应输出电平为低电平,所述先行预置的16位缓冲字内容0x0000保存在单片机内部SRAM的I个字单元中; 步骤2 :单片机中的运算器将单片机内的SRAM中的缓冲字内容逻辑左移一位,并覆盖先行预置的16位缓冲字内容; 步骤3:单片机中的运算器访问单片机的数据总线,读取对应DI接口的IO寄存器一次并保存到CPU的通用寄存器中,得到对应DI接口的开关量信号; 步骤4:单片机的运算器将已逻辑左移一位的缓冲字与由DI接口读入的开关量信号进行一次或运算,并将进行或运算的结果保存到单片机内部的SRAM中; 步骤5 =CPU判断步骤4中单片机内的SRAM中的缓冲字内容是否为0xFFFF、0x0000或既不为0x0000也不为OxFFFF中的一种; 步骤6 :CPU根据步骤5中缓冲字内容对应更新DI输入状态为高电平或低电平的一种,开关量信号完成一次采集判断,如该缓冲字的16位内容更新为0xFFFF,则更新DI输入状 态为高电平,如该缓冲字的16位内容更新为0χ0000,则更新DI输入状态为低电平,如该缓冲字的16位内容更新为既不为0x0000也不为OxFFFF中的一种,则不进行更新,以后按照预定采集周期并按序重复步骤2到步骤6。综上所述,本专利技术必须连续十六次采集代表DI接口的开关量信号值都必须为同一个值,才能更新表示开关量信号状态的值,故而能有效的避免因DI采集错误导致风力发电机组等工业控制系统的误判,达到有效采集开关量信号目的。附图说明图I为本专利技术的采集流程示意图。具体实施例方式为详细说明本专利技术的
技术实现思路
、构造特征、所达成目的及效果,以下兹例举实施例并配合附图详予说明。请参阅图1,本专利技术一种开关量信号采集方法是基于单片机字寻址的方式来对开关量信号(DI信号)的进行有效地采集并作出相应的逻辑判断的方法。本专利技术一种开关量信号采集方法主要是针对16位的单片机系统,但也不排除其他位数的单片机系统应用本方法进行开关量信号的采集。针对业内普通技术人员,通常情况下开关量信号仅存在两种情况,其中,“0”表示具开关功能的无源器件处于断开状态,此时相对应的电平为低电平;“I”表示具开关功能的无源器件处于闭合状态,此时,相对应的电平为高电平。步骤I :当开关量信号采集方法的程序开始时,先行预置的16位缓冲字内容始终保持为=0x0000,所述先行预置的16位缓冲字内容为0x0000表示被采集的具有开关功能的无源器件输出的开关量信号处于断开状态,对应输出电平为低电平,所述先行预置的16位缓冲字内容0x0000保存在单片机内部SRAM的I个字单元中; 步骤2 :单片机中的运算器将单片机内的SRAM中的缓冲字内容逻辑左移一位,并覆盖先行预置的16位缓冲字内容; 步骤3:单片机中的运算器访问单片机的数据总线,读取对应DI接口的IO寄存器一次并保存到CPU的通用寄存器中,得到对应DI接口的开关量信号; 步骤4:单片机的运算器将已逻辑左移一位的缓冲字与由DI接口读入的开关量信号进行一次或运算,并将进行或运算的结果保存到单片机内部的SRAM中; 步骤5 =CPU判断步骤4中单片机内的SRAM中的缓冲字内容是否为0xFFFF、0x0000或既不为0x0000也不为OxFFFF中的一种; 步骤6 :CPU根据步骤5中缓冲字内容对应更新DI输入状态为高电平或低电平的一种,开关量信号完成一次采集判断,如该缓冲字的16位内容更新为0xFFFF,则更新DI输入状态为高电平,如该缓冲字的16位内容更新为0X0000,则更新DI输入状态为低电平,如该缓冲字的16位内容更新为既不为0x0000也不为OxFFFF中的一种,则不进行更新,以后按照预定采集周期并按序重复步骤2到步骤6。需要特别指出的是,本专利技术一种开关量信号采集方法在进行开关量信号(DI信号)采集时,至少需要按序重复步骤2到步骤6连续十六次才可以实现电平的第一次更新,即由低电平向高电平更新,前提是由DI接口读入的开关量信号(DI信号)始终是表示具有开关功能的无源器件处于闭合状态的“I”时,此时,先行预置的16位缓冲字内容相应的更新为OxFFFF。、其中,在较佳实施例中,CPU先行判断单片机内的SRAM的缓冲字内容是否为OxFFFF ;再判断缓冲字内容是否为0x0000 ;最后,对既不为0x0000也不为OxFFFF进行判断。具体的,步骤5中CPU先行对单片机内SRAM中的缓冲字内容是否为OxFFFF进行判断;如是,则将步骤6中先行预置的缓冲字内容更新为OxFFFF且同时更新开关量信号(DI信号)的状态为高电平。步骤5中CPU先行对单片机内SRAM中的缓冲字内容是否为OxFFFF进行判断;如不是,再对单片机内SRAM中的缓冲字内容是否为0x0000进行判断;如是,则保持步骤6中先行预置的缓冲字内容0x0000且同时保持开关量信号(DI信号)的状态为低电平。步骤5中先行对单片机内SRAM中的缓冲字内容是否为OxFFFF进行判断;如不是,再对单片机内SRAM中的缓冲字内容是否为0x0000进行判断;如不是,则CPU将得出缓冲字 内容为既不为0x0000也OxFFFF中的一种,将步骤4中得到的缓冲字内容存储到单片机内的SRAM中。步骤5中缓冲字内容OxFFFF表示缓冲字内容所包含的16个位全部为逻辑I。步骤5中缓冲字内容0x0000表示缓冲字内容所包含的16个位全部为逻辑O。步骤5中缓冲字既不为0x0000也OxFFFF中的一种表示缓冲字内容所包含的16个位不全为逻辑I且不全为逻辑O。综上所述,本专利技术必须连续十六次采集代表DI接口的开关量信号(DI信号)值都必须为同一个值,才能更新表示开关量信号(DI信号)状态的值,故而能有效的避免因DI采集错误导致风力发电机组等工业控制系统的误判,达到有效采集开关量信号(DI信号)目的。以上所述的技术方案仅为本专利技术一种开关量信号采集方法的较佳实施例,任何在本专利技术一种开关量信号采集方法基础上所作的等效变换或替换都包含在本专利的权利要本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:李泳林,
申请(专利权)人:成都阜特科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。