基于ModbusRTU协议的同步电机数据通信系统的制作方法

文档序号:14060579阅读:939来源:国知局
基于ModbusRTU协议的同步电机数据通信系统的制作方法

本发明属于电力电子及交流传动系统的数据通信技术领域,具体涉及一种基于modbusrtu协议的同步电机数据通信系统。



背景技术:

modbusrtu协议是一种电子控制器上的工业通讯协议,它采用一主多从站的方式构建通讯网络,具有标准,开放和较高的可靠性。由于协议数据包短小,传输快捷,而被广泛应用于工各领域。

但modbusrtu主要采用查询式的交互方式在主系统和从机之间交换信息,每一次的查询请求遍对应每一次的回应消息。而这种交互方式容错性小,往往一台机器的一条查询请求由于断电,操作失误或是其他不可预估的的意外而导致出错,就会使其他从机收到影响,乃至于整个通讯系统的瘫痪。

slidingwindow机制是tcp协议一种应用,用于解决网络拥堵和由于其他因素导致的信息丢失和延迟的一种方法。由于slidingwindow机制不必让发送方每发一个数据包就停下来等待确认,因此可以加速数据的传输,提高通讯系统的吞吐量。



技术实现要素:

本发明的目的是提供一种基于modbusrtu协议的同步电机数据通信系统,解决了系统单一发送单一接收的问题;解决由于过多的系统同时以很快的速度发送大量的数据包,提高了触摸屏发送端的数据吞吐量,在其中一台或是几台通讯出问题的情况下,能够做出有效的判断,保护系统的安全和可靠。提高了通讯系统的信息吞吐量和其容错率。

实施本发明的主要技术方案如下:该数据通信系统实现了外部设备触摸屏与每台同步电机的主控制器ti公司的tms320f28335dsp之间的双向数据传递。具体实现是将4个dsp控制板的sci发送口通过双绞线分别并联起来,用一条双绞线引出信号,经由rs485转换芯片,通过一条rs485总线与触摸屏的rs485串口相连。

本发明包括:四台带有dsp控制板,蓝海微星触摸屏,rs485转换芯片,双绞线,rs485总线。将每个dsp控制板上的sci输出管脚由双绞线并联后,并由其中任意一个管脚用双绞线引入rs485转换芯片。将rs485转换芯片的输出端由一条rs485数据总线连接在触摸屏的rs485接口上。触摸屏端的系统在virtualstudio2010环境下基于wince6.0的系统中自主开发的通讯系统。该系统包括主站发送端(即触摸屏)的屏幕上的触摸和按键事件的识别环节、动作处理环节、命令产生环节、slidingwindow消息控制环节、消息发送和接受环节和接受端的命令识别环节,命令执行环节,回传消息回传。

上述触摸屏端的所有环节,通过c#visualstudio2010进行编程实现各个环节及其每个环节之间的数据交互。电机控制端使用dsp这一芯片做位电机控制的主要芯片。通过ccs3.0进行编程处理从触摸屏接受到的消息。

与以往modbus协议不同,在本系统中,一个从站使用多个地址来模拟slidingwindow系统中的ack码。在命令生成环节,主站依据命令的序列及其相应的从站产生地址码并放入slidingwindow的缓存队列中。

slidingwindow控制环节,触摸屏会依据设定好的窗口大小将队列中的数放入发送窗口。发送过程中,发送窗口中的所有数据包保存起来以防止由于数据传输导致的数据错误或其它问题。等待从机对传回消息进行确认,将数据提交。

在dsp接收端,通过串口读取报文,若是芯片空闲,处理报文,生成回传报文,并发送。若是正在运行,将其置于缓存队列,等稍后进行处理。主机端接受到dsp的回传报文,对其进行解析,判断回复报文的顺序与正确性。

若回文与主站所发报文的ack匹配,发送窗口下移对其中报文进行更新。若不匹配,找的最初不匹配的那一条报文,将此报文所对应的从机的窗口中的报文重新发送,若多次不成功,认为从机通讯出故障,判断其他机器知否可以继续运行。存在继续运行的条件,重启出错的dsp使得系统正常运行,反之,在保证其他从机安全正常的情况下,发出警示信号,并停机。

本发明相比于现有技术,其优点在于:

1、本发明的通信方法采用slidingwindow机制,解决由于过多的系统同时以很快的速度发送大量的数据包,而导致的数据包丢失,进而致使系统不能够正常的维持运行的问题。

2、这种利用地址位进行slidingwindowack序号验证的模式,在没有增加数据长度的情况下,合理利用了富余的下位机地址,提高了触摸屏发送端的数据吞吐量。

3、本发明形成了一套完善的工程化的多台电机控制系统的数据通信方法,在其中一台或是几台通讯出问题的情况下,能够做出有效的判断,保护系统的安全和可靠。

附图说明

图1触摸屏与单一dsp信息交互示意图。

图2slidingwindow机制在发送端和接收端的流程图。

具体实施方式

本发明包括:四台带有dsp控制板,蓝海微星触摸屏,rs485转换芯片,双绞线,rs485总线。将每个dsp控制板上的sci输出管脚由双绞线并联后,并由其中任意一个管脚用双绞线引入rs485转换芯片。将rs485转换芯片的输出端由一条rs485数据总线连接在触摸屏的rs485接口上。触摸屏端的系统在virtualstudio2010环境下基于wince6.0的系统中自主开发的通讯系统。该系统包括主站发送端(即触摸屏)的屏幕上的触摸和按键事件的识别环节、动作处理环节、命令产生环节、slidingwindow消息控制环节、消息发送和接受环节和接受端的命令识别环节,命令执行环节,回传消息回传。

在通信系统连接上,采用一个主站,四个从站通讯方式,将四台相同的dsp28335电机控制板的串口输与一条系统的数据总线进行连接,将数据总线触摸屏的串口进行连接。在通讯过程中,触摸屏通过数据总线将命令传输给四个从站,完成信息的交互。

在地址码的分配上,每一个dsp从站都会被分到32个连续的地址码;1-32是dsp1所分配的地址码,33-64是dsp2的地址码,以此类推,将128个地址码分别分给4个dsp,用在slidingwindow机制中模拟ack功能码。

在触摸屏中,每100ms会产生发给每一个dsp控制板的轮询命令,同时触摸屏输入会产生写命令,按钮的按下于抬起会产生线圈置0/1的写命令,这些命令通过命令生产环节转换成标准的modbus通讯报文。每一条报文地址码会在所对应的dsp地址码范围内按先后顺序依次递增,若是超出范围重新从第一个地址码开始。例如,给dps2发送的报文从地址码33开始依次递增,地址码64用完,新的报文的地址码重新从33开始依次递增。

这些生成好的命令会依次的传递给系统中的slidingwindow机制环节。在本系统中,slidingwindow的窗口数据量设定为31,这是为了防止窗口中有地址码相同的数据。窗口中的命令将会逐条的发送给数据总线做链接的4个dsp从机。

每一个从机接收到数据总线上的数据后,通过中断的方式对报文进行处理,首先通过与运算,判断报文的地址码是否是属于本从机的,则通过地址码继续判断该条报文是否是这一从机应该接受的下一条报文。例如对于dsp4上一条接收的报文地址码是113,当它接收到了一条新的报文则会判断该条报文的地址码是否为114。若这些判断通过,dsp则按照modbus所设定的功能码执行相应的功能并生成回传报文。回传报文的地址码与所接收的地址码相同。若是不同,所接收的地址码addr1小于应接收的地址码addr0,从缓存队列中剔除,执行下一条,直至与addr0相同为止。若是addr1>addr0,说明传输过程中,由于某种原因addr0的数据丢失,生成地址码为addr0-1的报错报文并回传。

当主站接收到从站回传的信息,也会通过地址码进行判断,若接收的地址码addr2小于的待接收的地址码addr0,重发所有窗口内所对应从机的报文。addr2=addr0,报文正常接收,窗口下滑,将缓存队列中的新的消息添加进窗口。若addr2>addr0,则分为两种情况,若功能码是读操作,数据丢失,需要重新发送获取数据,生成新的命令,放置在窗口最后,窗口下滑,等待重发,若是写操作,窗口下滑,待判断的地址码加1,重复这一过程,直至与addr2相等。

通过这样的主从交互方式,将slidingwindow中的ack功能码的作用添加进modbus地址码,能够保证每一条消息传输给了从站,主机也能够确认,每一条消息是否被从机执行。这样主机不用每一条都是等待到从机正确的回复报文才继续执行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1