一种基于串口通讯的RTDS数据传输装置及方法
技术领域
本发明涉及一种基于串口通讯的RTDS数据传输装置及方法,属于数据传输技术领域。
背景技术
RTDS全称为实时数据仿真仪(Real Time Digital Simulator),由加拿大曼尼托巴RTDS公司开发制造,是一种专门设计用于研究电力系统中电磁暂态现象的装置,目前已广泛应用于国内外电力系统交流继电保护和直流控制保护的仿真研究及试验中。其通过建立与实际电力系统最接近的仿真模型,在大规模的DSP并行计算和运行的方式下实现电力系统的实时仿真,它与实际的控制和保护装置通过硬连线通讯形成一个闭环系统,即可以对相应的实际电力系统可能出现的各种工况进行仿真研究,也可以对控制和保护装置的功能和性能进行全面的检验。如上所述。当利用RTDS进行电力系统仿真研究和实验时,在RTDS和电力系统交流继电保护装置、直流控制保护装置以及计算机等终端设备之间需要大量的数据交换与传输,而目前RTDS与各终端设备之间的数据交换与传输主要是通过RTDS自带的各种板卡(如GPC、3PC、GTDI、GTDO、DOPTO、OADC等)经硬连线通讯来完成,RTDS的运算步长(即计算周期)为50,这也意味着此种硬连线通讯周期为50,而对于一些监控等慢速通讯(毫秒级),这种通讯方式显而易见存在大量无用通讯。以向上特高压直流工程试验监控平台为例,该试验需要对大量的开关和状态量进行监控,而由于RTDS的监控平台不能绘制主接线图,对开关的操作十分繁琐,也无法自动保存相关的动作报文,使试验操作出错率高,降低了试验效率。
发明内容
本发明的目的是提供一种基于串口通讯的RTDS数据传输装置及方法,以解决目前RTDS仿真系统与终端设备之间是通过RTDS自带的各种板卡经硬连接线连接导致接线复杂、传输效率低等问题。
本发明为解决上述技术问题而提供一种基于串口通讯的RTDS数据传输装置,该数据传输装置包括RTDS串口通讯仿真模块库、RTDS输入输出板卡和转换单元,所述的RTDS串口通讯仿真模块库包括输入单元、输入报文解析单元、输出单元和输出报文合成单元,
所述的输入单元用于从RTDS输入输出板卡读入电平信号,并将电平信号转变成一个完整的报文输出给报文解析单元;
所述的输入报文解析单元用于从输入元件获取标准格式的输入报文,通过报文的校验码和标志位判别报文数据的有效性和类型,将有效报文数据按类型分配到模型的不同位置;
所述的输出单元为输入单元的一个逆过程,用于从报文合成单元中获取报文数据,并将报文数据的全部数据按位依次从RTDS的输入输出板卡输出电平信号;
所述的输出报文合成单元为输入报文解析单元的逆过程,用于将RTDS仿真系统的实时数据按照规定报文格式合成输出报文,并将报文传送给输出元件进行输出。
所述的输出报文合成单元合成的报文包括四个字节共32位数据,其中高16位为数据位,16到22位为标志位,23到31位为校验位。
所述的输入单元是按位读取RTDS输入输出板卡所接收到的电平信号,将每位数据压入8位的存储堆栈,当8位存储堆栈存满后将其再压入4字节的字堆栈,直至4字节的字堆栈存储满从而完成一个输入报文的获取。
所述的串口传输的RTDS数据类型包括浮点型和整型,每个数据所占数据位为16位,标志位为7位,校验码为9位,及传输每个数据串口需完成四次读取或发送。
本发明为解决上述技术问题还提供了一种基于串口通讯的RTDS数据传输方法,该RTDS数据传输方法包括以下步骤:
1)当终端设备向RTDS仿真系统发送信息时,终端设备首先将终端发送的信号转换为标准的TTL电平并传输给RTDS输入输出板卡;
2)从输入输出板卡中读入电平信号,将电平信号转变为一个完整的报文输出;
3)对上述获得的报文的校验码和标志位进行判别得到报文数据的有效性和类型,并将有效报文数据按类型分配到模型的不同位置,完成终端设备到RTDS仿真系统的传输;
4)当RTDS向终端设备发送信息时,将RTDS仿真系统的实时数据合成相应格式的报文;
5)将合成的报文数据按位依次从RIDS的输入输出板卡输出电平信号;
6)将RTDS输入输出板卡中的输出的电平信号转换为与终端设备相应的信号,从而完成RTDS到终端设备的传输。
所述步骤4)中合成的报文包括四个字节共32位数据,其中高16位为数据位,16到22位为标志位,23到31位为校验位。
所述步骤2)中从输入输出板卡中读入的电平信号是按位读取的,将每位数据压入8位的存储堆栈,当8位存储堆栈存满后将其再压入4字节的字堆栈,直至4字节的字堆栈存储满从而完成一个输入报文的获取。
所述的串口传输的RTDS数据类型包括浮点型和整型,每个数据所占数据位为16位,标志位为7位,校验码为9位,及传输每个数据串口需完成四次读取或发送。
本发明的有益效果是:本发明通过在RTDS仿真系统和终端设备之间设置RTDS串口通讯仿真模块库,将RTDS仿真系统向终端设备发送的数据合成相应格式的报文后再通过RTDS输入输出板卡发送给终端设备,终端设备向RTDS仿真系统发送数据时现将数据以报文的形式发送给RTDS串口通讯仿真模块库,RTDS串口通讯仿真模块库通过报文的效验码和标志位判别报文数据的有效性和类型,并将有效报文数据按类型分配到RTDS模型的不同位置。本发明的串口通讯方式使RTDS仿真系统能够与监控平台、继电保护测控装置等终端设备进行灵活的通讯连接,解决了RTDS仿真系统只能通过硬连线连接终端的局面。且本发明通讯接线简单,占用RTDS机柜空间小;数据传输容量大,不受RTDS硬件板卡限制;对数据的采样率和记录方式能进行有效的控制;有助于后期通讯扩展及数据监控平台的灵活开发;可通过后续开发对所传输的数据进行直观的控制和监视。
附图说明
图1是本发明的基于串口通讯的RTDS数据传输装置的结构框图;
图2是本发明的基于串口通讯的RTDS数据传输装置中输入单元的工作流程图;
图3是本发明所采用的报文格式图;
图4是本发明的基于串口通讯的RTDS数据传输装置中输出单元的工作流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的说明。
本发明的一种基于串口通讯的RTDS的数据传输装置的实施例
如图1所示,本发明的基于串口通讯的RTDS数据传输装置包括RTDS串口通讯仿真模块库、RTDS输入输出板卡和转换单元,RTDS仿真系统通过RTDS串口通信仿真模块库、RTDS输入输出板卡和转换单元用于与终端设备通信连接,所述的RTDS串口通讯仿真模块库包括输入单元、输入报文解析单元、输出单元和输出报文合成单元。RTDS输入输出板卡用于计算数据的输入输出,有多种选择,其中3PC卡可以根据每个仿真步长(典型值为50us)改变输出电平。对于某些RTDS的输入输出板卡,其发送和接收的信号均是标准的TTL电平,而RS-232的电平不是+5V和地,而是采用了负逻辑,即将-5V~-15V规定为“1”,+5V~+15V规定为“0”,所以在用串口通讯时,必须进行电平转换,本实施例中采用MAX232的电平转换电路进行电平转换。
输入单元用于连续从RTDS输入输出板卡读入电平信号,并将电平信号转变成一个完整的报文输出给输入报文解析单元。输入单元按位读取RTDS的输入输出板卡接收电平信号(如5V表示逻辑“1”,0V表示逻辑“0”),并将每位数据压入8位的存储堆栈,当8位存储堆栈存满后将其压入4字节的字堆栈,直至4字节的字堆栈存满后完成一个输入报文数据的获取,其程序流程图见图2。
输入报文解析单元的主要功能是从输入单元获取标准格式的输入报文,通过报文的效验码和标志位判别报文数据的有效性和类型,并将有效报文数据按类型分配到模型的不同位置。如:收到的报文为“1011001100010101011100111100110,其中标志位为“0111000”表示此报文数据类型为“断路器”,效验码为“111100110”表示此报文有效,这时输入报文解析单元就会将报文数据中前16位数据分别送到模型中不同的断路器中去控制断路器的分合。具体的报文格式如图3所示。通过串口传输的RTDS数据类型有浮点型和整型两种。为保证传输数据的精度和可靠性,在串口通讯协议的基础上,我们规定每个数据所占数据位为16位,标志位7位,校验码9位,即传输每个数据需串口完成四次读取或发送。
输出单元是输入单元的一个逆过程,其主要功能是从报文合成单元中获取报文数据,并将报文数据的全部32位数据按位依次从RTDS的输入输出板卡输出电平信号(如数据位逻辑“1”输出5V电平,数据位逻辑“0”输出0V电平),其程序流程图见图4所示。
输出报文合成单元是输入报文解析单元的逆过程,其主要功能是将RTDS仿真系统的实时数据(电压、电流等模拟量以及开关位置节点、档位等开关量)按图3所示报文格式合成输出报文,并将报文传送给输出单元进行输出。
我们以特高压直流工程试验监控平台为例,该试验需要对大量的开关和状态量进行监控,而由于RTDS的监控平台不能绘制主接线图,对开关的操作十分繁琐,也无法自动保存相关的动作报文,使试验操作出错率高,降低了试验效率。采用本发明建立的一个含200多个开关量信号和74个模拟量信号的RTDS动模试验监控系统,可以对多达30个断路器,8个换流变的分接头位置、4条母线的电压及交直流场数十条支路电流进行控制和监视,只用了8根连接线,如果不采用本发明而采用硬连线连接,则需要至少274根连接线,由此可见本发明有效地简化了试验接线,缩短试验周期。
本发明的一种基于串口通讯的RTDS数据传输方法的实施例
本发明基于串口通讯的RTDS数据传输方法包括RTDS仿真系统向终端设备传输数据和终端设备向RTDS仿真系统传输数据两个过程。
当终端设备向RTDS仿真系统发送信息时,终端设备首先将终端发送的信号转换为标准的TTL电平并传输给RTDS输入输出板卡;按位读取RTDS输入输出板卡接收电平信号(如5V表示逻辑“1”,0V表示逻辑“0”),并将每位数据压入8位的存储堆栈,当8位存储堆栈存满后将其压入4字节的字堆栈,直至4字节的字堆栈存满后完成一个输入报文数据的获取;对上述获得的报文的校验码和标志位进行判别得到报文数据的有效性和类型,并将有效报文数据按类型分配到模型的不同位置。如:收到的报文为“1011001100010101011100111100110,其中标志位为“0111000”表示此报文数据类型为“断路器”,效验码为“111100110”表示此报文有效,将报文数据中前16位数据分别送到模型中不同的断路器中去控制断路器的分合,具体的报文格式如图3所示。通过串口传输的RTDS数据类型有浮点型和整型两种,为保证传输数据的精度和可靠性,在串口通讯协议的基础上,我们规定每个数据所占数据位为16位,标志位7位,校验码9位,即传输每个数据需串口完成四次读取或发送。
当RTDS向终端设备发送信息时,将RTDS仿真系统的实时数据(电压、电流等模拟量以及开关位置节点、档位等开关量)按图3所示报文格式合成输出报文,将RTDS仿真系统的实时数据合成相应格式的报文;将合成的报文数据按位依次从RID输入输出板卡输出电平信号(如数据位逻辑“1”输出5V电平,数据位逻辑“0”输出0V电平),其程序流程图见图4所示;将RTDS输入输出板卡中的输出的电平信号转换为与终端设备相应的信号,从而完成RTDS到终端设备的传输。