一种模块式控制器自动配置模块信息的系统及方法
技术领域
本发明属于电力电子领域,具体涉及一种模块式控制器自动配置模块信息的系统及方法。
背景技术
大中型自动化控制器由本地模块式控制器和远程I/O模块组成,CPU模块、I/O模块、电源模块以及各种功能模块构成的本地控制器和远程模块均通过基板上的背板总线组成,模块装在基板的插座上,本地模块和远程模块多达几十个甚至几百个,这种模块式PLC的特点是配置灵活,可根据需要选配不同规模的系统,而且装配方便,便于扩展和维修。主CPU模块获取后续各个模块地址、I/O数量、模块类型等信息至关重要,实现主CPU模块自动识别其他模块地址和建立主CPU模块与其他模块之间的通讯是个难点。
发明内容
本发明提供一种模块式控制器自动配置模块信息的系统及方法,解决主CPU模块与其他模块之间的通讯难题,实现模块信息自动配置。
本发明的技术方案:一种模块式控制器自动配置模块信息的系统,包括主CPU模块、第一模块、第二模块以及后续模块都依次插装在多口机架上,其特征在于:所述主CPU模块、第一模块、第二模块以及后续模块通过基板上的背板总线构成一个模块式控制器硬件平台,主CPU模块引出片选线连接第一模块,第一模块引出片选线连接第二模块,第二模块引出片选线连接后续模块,以此类推依次级联接在一起,后续模块引出存在线连接第二模块,第二模块引出存在线连接第一模块,第一模块引出存在线连接主CPU模块以此类推依次级联接在一起。
一种模块信息自动配置的方法,其特征在于:包括以下步骤,
1)控制器上电后主CPU模块的片选线置高电平,后续的第一模块、第二模块、后续模块的片选线均置低电平,后续第一模块与主CPU模块连接的存在线置高电平,使主CPU模块知道后续接有模块;如果后续没有模块时,主CPU模块的存在线一直是低电平;
2)主CPU模块向后续模块发出识别模块地址的S3类型初始化帧,由于后续第一模块的片选线输入信号是高电平,而其他模块的输入片选线是低电平且未进入正常通讯状态,所以只有第一模块与主CPU模块之间进行通讯,其他模块均不响应主CPU模块的请求,第一模块把它的模块类型、模块I/O数量、模块通讯地址信息组成一条响应帧,发送给主CPU模块,主CPU模块接收到这条响应帧后,再发一条S2类型ACK帧给第一模块并把输出片选线置低电平,第一模块接收到ACK帧后,回复一条ACK帧给主CPU模块并把它的输出片选线置高电平,第一模块由初始化状态进入正常通讯标志,之后不再对初始化帧做出响应,同时存在线置低电平;
3)后续第二模块根据已被置高电平的输入片选线,接收到主CPU模块发出的初始化帧,此时其他模块不做出响应,第二模块响应来自主CPU模块的初始化报文,其他后续模块依次建立与主CPU模块之间的通讯,最后一个模块的输入存在线一直是低电平,它给主CPU模块的响应帧有最后一个模块的标识,主CPU模块根据接收到此条响应帧就可以统计出模块数量,至此,主CPU模块获取了后续模块的类型、I/O数量、通讯地址和模块位置这些重要的信息,完成模块信息自动配置。
所述报文类型有三类,S1类型为发送/无回答、S2类型为发送/确认、S3类型为请求/响应。
所述主CPU模块与第一模块、第二模块、后续模块之间的通讯模式为PROFINET方式或串口方式或CAN方式。
本发明的技术效果:本发明实现自动配置模块式控制器的各个模块信息,引入片选线、存在线后,采用级联的方式实现识别各个模块所在的地址,主CPU模块通过背板通讯总线向后续各个模块发送S3类型初始化帧,后续各个模块根据片选线的高电平信号依次建立与主CPU模块之间的正常通讯,识别出各个模块所在地址、类型和IO数量,统计出插入的模块数量,一旦某个模块无法建立与主CPU之间的通讯,其片选线一直置高电平,并会点亮这个出问题的模块上的故障指示灯,提醒使用者及时查找问题原因或更换此模块。
附图说明
图1为本发明的模块式控制器结构示意图。
图中:1—主CPU模块,2—第一模块,3—第二模块,4—后续模块,5—片选线,6—存在线。
具体实施方式
一种模块式控制器自动配置模块信息的系统,包括主CPU模块1、第一模块2、第二模块3以及后续模块4都依次插装在多口机架上,其特征在于:所述主CPU模块1、第一模块2、第二模块3以及后续模块4通过基板上的背板总线构成一个模块式控制器硬件平台,主CPU模块1引出片选线5连接第一模块2,第一模块2引出片选线5连接第二模块3,第二模块3引出片选线5连接后续模块4,以此类推依次级联接在一起,后续模块4引出存在线6连接第二模块3,第二模块3引出存在线6连接第一模块2,第一模块2引出存在线6连接主CPU模块1以此类推依次级联接在一起。
一种进行模块信息自动配置的方法,其特征在于:包括以下步骤,
1)控制器上电后主CPU模块1的片选线5置高电平,后续的第一模块2、第二模块3、后续模块4的片选线5均置低电平,后续第一模块2与主CPU模块1连接的存在线6置高电平,使主CPU模块1知道后续接有模块;如果后续没有模块时,主CPU模块1的存在线6一直是低电平;
2)主CPU模块1向后续模块发出识别模块地址的S3类型初始化帧,由于后续第一模块2的片选线5输入信号是高电平,而其他模块的输入片选线5是低电平且未进入正常通讯状态,所以只有第一模块2与主CPU模块1之间进行通讯,其他模块均不响应主CPU模块1的请求,第一模块2把它的模块类型、模块I/O数量、模块通讯地址信息组成一条响应帧,发送给主CPU模块1,主CPU模块1接收到这条响应帧后,再发一条S2类型ACK帧给第一模块2并把输出片选线5置低电平,第一模块2接收到ACK帧后,回复一条ACK帧给主CPU模块1并把它的输出片选线5置高电平,第一模块2由初始化状态进入正常通讯标志,之后不再对初始化帧做出响应,同时存在线6置低电平;
3)后续第二模块3根据已被置高电平的输入片选线5,接收到主CPU模块1发出的初始化帧,此时其他模块不做出响应,第二模块3响应来自主CPU模块1的初始化报文,其他后续模块依次建立与主CPU模块1之间的通讯,最后一个模块的输入存在线6一直是低电平,它给主CPU模块1的响应帧有最后一个模块的标识,主CPU模块1根据接收到此条响应帧就可以统计出模块数量,至此,主CPU模块1获取了后续模块的类型、I/O数量、通讯地址和模块位置这些重要的信息,完成模块信息自动配置。
所述报文类型有三类,S1类型为发送/无回答、S2类型为发送/确认、S3类型为请求/响应。
所述主CPU模块1与第一模块2、第二模块3、后续模块4之间的通讯模式为PROFINET方式或串口方式或CAN方式。
主CPU模块1与所插入的其他模块建立正常的通讯,此时其他模块均由初始化状态进入正常通讯状态。主CPU模块发出的初始化帧,已进入正常通讯状态的后续模块均不响应其请求,主CPU重发三次初始化帧,进入超时。正常运行过程中,主CPU模块定时向各个模块广播带初始化功能码的心跳包,此时已进入正常通讯状态的模块不做出响应,而那些热拔插的同类型模块对接收到心跳包做出响应,逐步建立与主CPU模块之间的通讯。
在正常的通讯状态下,突然有一个模块出现问题,需要更换这个出故障的模块,此时,此故障模块的前一个模块根据主CPU的要求主动把片选线置高,热拔插同类型模块后,其接收到来自主CPU的带初始化功能码和模块类型、地址的心跳包,解析后与自身模块信息相符后,并向主CPU模块做出响应,逐步建立热拔插模块与主CPU模块之间的通讯,前一个模块再次根据主CPU的请求把其片选线置低电平。同时有一个以上模块出现故障时,在主CPU模块和故障模块的前一个模块及其片选线的配合下,能够依次实现热拔插功能。
本发明的技术效果:本发明实现自动配置模块式控制器的各个模块信息,引入片选线、存在线后,采用级联的方式实现识别各个模块所在的地址,主CPU模块通过背板通讯总线向后续各个模块发送S3类型初始化帧,后续各个模块根据片选线的高电平信号依次建立与主CPU模块之间的正常通讯,识别出各个模块所在地址、类型和IO数量,统计出插入的模块数量,一旦某个模块无法建立与主CPU之间的通讯,其片选线一直置高电平,并会点亮这个出问题的模块上的故障指示灯,提醒使用者及时查找问题原因或更换此模块。