RSS
当前位置 :| 主页>PLC技术文章>plc通信>

用西门子CP341实现Modbus RTU通讯

来源: 作者: 时间:2008-05-12 Tag: 点击:

1 概述
    CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。USS站等。CP341模块可以同时与多台串行通讯设备进行通讯。如同时连接多个变频器、连接多个智能仪表等。如果采用RS422/485 modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息。供CP341模块所连接的从站设备鉴别数据包是发给哪个站的。以及该数据包是对那个数据区进行的读或写的功能。
    Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已
经成为一通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程。如回应来自其它设备的请求,以及怎样侦测错误并记录等。它制定了消息域格式和内容的公共格式。MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换,Modbus可支持247个之多的远程从属控制器。但实际所支持的从机数要由所用通信设备决定。采用这个系统。各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。CP341插人MODBUS主站Dongle(狗)或插入从站Dongle,就可以作为MODBUS主站。或者作为MODBUS从站。在ModBus系统中有两种传输模式编码可选择,一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备),由这两种模式定义这两种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定。每个ModBus系统只能使用一种模式。不允许两种模式混用。

字串9


2 RTU帧结构
    使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在相同的网络波特率下采用多个的字符时间,这是最容易实现的。传输的第一个域是设备地址,可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到后,每个设备都进行解码以判断是否发往自己的,在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束.一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续,这将导致一个错误,因为在最后的CRC域的值不可能是正确的。一典型的消息帧如下所示:
起始位:T1-T2-T3-T4
设备地址:8 Bit
功能代码:8 Bit
数据:N个8 Bit
CRC校验:16 Bit
结束符:T1-T2-T3-T4
3 RS422/485网络工作过程
基于Modbus主从式工作的主站以广播式的向所有从站发送请求数据的数据包.其数据包中包含从站地址、功能代码(即读取的寄存器类型)、要读取
字串1

的寄存器的起始地址、该次要读取的寄存器个数。并等待从站的响应;挂在同一条RS485总线上的所有从站被动的接收到主站的广播包.然后解开这个广播包把这个包中的从站地址与自己的地址对照.如果地址相同.该从站马上把自己相应寄存器中的数据发送到总线上去:主站中的接收程序始终处于待命状态.等待总线上从站发送来的响应数据包,并把响应包中的数据序列化到自己的接收数据块中。从站检测到包中的从站地址与自己的地址不符时,则直接销毁该包.就不做任何响应。到此完成一个发送接收数据的过程。

上一页12 下一页
Google
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册