竭诚为您提供优质文档/双击可除串口通信协议modbus
篇一:使用modbus协议实现串口数据通信
使用modbus协议实现
串口数据通信
saptarshinaskar,krishnendubasuli和samarsensarma 计算机科学和工程部门,
universityofcalcutta,92,a.p.c.Road,
kolkata-700009,india
串行通信是在通信信道或计算机总线连续地发送数据,每一位数据占据一个固定的时间长度[5、6、7]。Rs-232是在数据终端设备(dte)和数据通讯设备(dce)之间进行串行
二进制传输的一个标准,通常用于计算机串口。
原Rs-232标准只定义了dtes与dces的连接关系,例如,调制解调器。零调制解调器是一种直接使用Rs-232串行电缆连接两个dtes沟通方法(电脑,终端、打印机等)。这个零调制解调器配置简化了计算机之间握手协议。在零调制解调
器模式下,由发送端、接收端,地线组成的最小三线Rs-232接口通常用于Rs-232设备不是全都必需的下[5、6、7]。
另一种常见的连接是一种dte-dte连接,例如连接两个人电脑,以便他们之间交换数据。对于这样的连接,所谓的零调制解调器连接是必要的,其实这个连接也被在这个项目中用到。
第三类是dce-dce连接。这里所谓的尾电路电缆是必要的,但这是一种非常罕见的连接。
其他的Rs-232规范[5、6、7]:(a)、信号电压:发送端-5V到-15V(逻辑1),+5V到+15V(逻辑0),接收端-3V-15V(逻辑1),+3V到+15伏特(逻辑0)。在pc机上通常为+/-12伏。
(b)、最大的电缆长度:50英尺(19200bps),3000英尺(2400bps),在大多数无干扰的情况下,可以更长。(c)、连接器:最常见的Rs-232连接器是db-9和db-25。每个连接器都有一个公头和一个母头。在大多数情况下公头接dte,母头接dce(尽管在其它情况下也可能不同)。(d)、各管脚信号见下表:
dcd,dtR,dsR,Rts和cts就是所谓的握手线,用于设备之间互相交换状态信息。
modicon控制器使用的公共语言是modbus协议[1,7]。这是一个开放的协议,它定义了信息结构,使得控制器能认
出和利用这些信息,不管它们在什么类型的网络上传输。它
描述了该控制器发送请求到其它设备,其它设备如何或者检测到错误并且回应错误信息。它为信息领域的布局和内容建立了一套共同格式。
modbus协议提供了modicon控制器用于分析信息的内部标准。通信的时候,协议决定每一个控制器如何知道它们的设备地址,认出传送给它的信息,采取什么动作,并且取出信息中的一些数据和其它内容。如果必须作出回复,控制器将构建一个回复信息并用modbus协议发送出去。在信息传
递过程中,嵌入到每个网络数据包结构中modbus协议提供
了可供设备交换数据的公共语言。
在modicon控制器上的标准modbus接口使用了Rs-232c 兼容使用串行接口,它定义pin-outs接头,电缆、信号电平,波特率、偶校验。控制器可直接或用调制解调器连接起来。控制器使用主从技术通信,即只有一个装置(主机)可以发起
处理(查询),其他设备(从机)回应请求所需的资料,或响应
主机请求的查询。典型的主机包括主机和编程面板。典型的从机包括可编程控制器。
主机可以与单个从机通信,也可以向所有从机发送广播。从机根据发送给它们各自的请求返回一个回复信息(响应)。但从机对于广播查询就不作回复了。
modbus协议规定主机请求格式为设备地址(或广播地址)、定义所请求行动的功能代码、要被发送的数据、一个
错误校验域。从机的响应消息也是用modbus协议。它包含查询消息中的功能代码的回应、要返回的数据、和错误校验域。假如从机收到发生错误的讯息,或从机不能完全响应请求时,从机将构建一个错误信息并回送到主机。
控制器能设置为两种传输模式(ascii或Rtu)中的任何一种在标准的modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个modbus网络上的所有设备都必须选择相同的传输模式和串口参数。因此,要对两种格式的传输模式进行了探讨。
在ascii模式,信息开始以一个冒号(:)字符(ascii3ah),最后以回车换行符结束(ascii码0dh,0ah)。允其它域可以使用的传输字符是十六进制的0...9,a...F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。一个典型消息帧如下所示:
使用Rtu模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在网络波特率下多样的字符时间,这是最容易实现的(如下图的t1-t2-t3-t4所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0...9,a...F 。网络设备不断侦测网络总线,包括停顿间隔时间内。
当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的cRc域的值不可能是正确的。一典型的消息帧如下所示:
项目的主要目标是在磁铁(磁铁具有空心圆柱形状)映射磁场[2,3,4,7]。在这个方案中,一个计算机主终端和另一个作为从机的终端被进行通信。主机为windowsxp操作平台,包括一个用borlandc(Var.4.5)设计的操作界面。这个从机为windows98操作平台,它实际上控制机械系统和获得由主机发出的数据译码。主机和从机通过对等的串行总线将它们的串行通讯端口(com端口)连接起来。从机又被连接到一个电压转频率模块,一个逻辑阵列块读出电路和一个通过
pcl812pc附加卡控制的电机控制电路。要映射的磁场,我们曾使用搜索线圈(10,000轮流)作为传感器的磁场。探察线圈沿磁铁正中平面径向轴移动形成的电压是供给了电压频
率转换器模块。这个模块中产生的脉冲频率的变化将取决于