用西门子CP341实现Modbus RTU通讯_第1页
用西门子CP341实现Modbus RTU通讯_第2页
用西门子CP341实现Modbus RTU通讯_第3页
用西门子CP341实现Modbus RTU通讯_第4页
用西门子CP341实现Modbus RTU通讯_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、冶金动力METALLURGICAL POWER 2006年第1期总第113期1概述CP341模块是西门子S7-300/400系列PLC中的串行通讯模块,该模块具有1个串行通讯口(RS232C或TTY或RS485/422,RS422/485的通讯最大距离位1200m。支持以下协议ASCII,Modbus RTU远程终端,Data Highway(DF1协议,电气接口为15针D型孔接头。可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换,例如打印机、扫描仪、仪表、Modbus主从站、Data Highway 站、变频器,USS站等。CP341模块可以同时与多台串行通讯设备进行通

2、讯,如同时连接多个变频器、连接多个智能仪表等,如果采用RS422/485modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息,供CP341模块所连接的从站设备鉴别数据包是发给哪个站的,以及该数据包是对那个数据区进行的读或写的功能。Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网和其它设备之间可以通信。它已经成为一通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如

3、回应来自其它设备的请求,以及怎样侦测错误并记录等。它制定了消息域格式和内容的公共格式。MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换,Modbus可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。CP341插入MODBUS主站Dongle(狗或插入从站Dongle,就可以作为MODBUS主站,或者作为MODBUS从站。在ModBus系统中有两种传输模式编码可选择,一种模式是ASCII(美国信

4、息交换码,另一种模式是RTU(远程终端设备,由这两种模式定义这两种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定,每个ModBus系统只能使用一种模式,不允许两种模式混用。2RTU帧结构使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在相同的网络波特率下采用多个的字符时间,这是最容易实现的。传输的第一个域是设备地址,可以使用的传输字符是十六进制的用西门子CP341实现Modbus RTU通讯刘立新,张西中,王利民(安阳钢铁公司安钢动力厂,河南安阳455004【摘要】简要介绍了西门子CP341通讯模块的构造和Modbus RTU串行通讯原理和编程方法,通

5、过程序例子详细说明了在CP341上实现Modbus RTU通讯的过程。【关键词】通讯;Modbus RTU;程序【中图分类号】TP27【文献标识码】B【文章编号】1006-6764(200601-0060-03Using SIEMENS CP341to Realize Modbus RTU CommunicationLIU Li-xin,ZHANG Xi-zhong,WANG Li-min(Power Plant,Anyang Iron&Steel Co.,Anyang,Henan455004,China【Abstract】The structure of SIEMENS CP341c

6、ommunication module and the serial com-munication principle and programming method of Modbus RTU are presented briefly.Takinga program for example,it explains in detail the realization procedure of Modbus RTU com-munication on the CP341.【Key words】communication;Modbus RTU;program60冶金动力METALLURGICAL

7、POWER2006年第1期总第113期0.9,A.F 。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域接收到后,每个设备都进行解码以判断是否发往自己的,在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束,一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续,这将导致一个错误,因为在最后的CRC 域的值不可能是正确的。一典型的消息帧如下所示

8、:起始位:T1-T2-T3-T4设备地址:8Bit 功能代码:8Bit 数据:N 个8BitCRC 校验:16Bit结束符:T1-T2-T3-T43RS422/485网络工作过程基于Modbus 主从式工作的主站以广播式的向所有从站发送请求数据的数据包,其数据包中包含从站地址、功能代码(即读取的寄存器类型、要读取的寄存器的起始地址、该次要读取的寄存器个数,并等待从站的响应;挂在同一条RS485总线上的所有从站被动的接收到主站的广播包,然后解开这个广播包把这个包中的从站地址与自己的地址对照,如果地址相同,该从站马上把自己相应寄存器中的数据发送到总线上去;主站中的接收程序始终处于待命状态,等待总线

9、上从站发送来的响应数据包,并把响应包中的数据序列化到自己的接收数据块中。从站检测到包中的从站地址与自己的地址不符时,则直接销毁该包,就不做任何响应。到此完成一个发送接收数据的过程。4CP341驱动配置在您的计算机上首先安装STEP75.x 软件和CP34x 模板所带的软件驱动程序,模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件组态界面下可以打开、用于串行通讯的FB 程序块。当系统上电,CP34x 模板初始化完成后,CP34x 上的SF 灯点亮;在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的

10、硬件地址以便在编程序时用到。双击CP341模板属性窗口中的protocol 协议图标进行协议参数设置,这里我们使用默认值:9600bit/s,8data bits,1stop bit,even parity 。对的硬件组态存盘编译,下载硬件组态,如果此时SF 灯亮,请将通讯电缆与另一个通讯伙伴进行连接后,SF 灯熄灭,说明硬件组态正确。5程序编写(1CP341发送模块的设计而发送程序主要是通过调用功能块FB8来实现,FB8是基于上升沿触发工作的,来一个上升沿FB8工作一次向总线上发送一个请求数据包,所以在程序中一定要设计一个触发代码段,来不断的使REQ :=M50.0循环往复的置“1”置“0”

11、,这样FB8就可以正常运行了。在设计程序时一定要注意FB8的参数SF:=S 及R_TYP:=X 的值都是大写否则程序调试不成功。FB8需要一个背景数据块,这一背景数据块一般由系统自动生成,以上程序中为DB3;对于通过CP341的Modbus Master 驱动通讯的发送模块需要设计发送数据块DB 块,用来对主站发送参数进行设置和初始化。Modbus 能够实现的功能代码共有10个,分别针对不同的寄存器读写功能设置,功能代码Initial value :B#16#4的功能是读从站的输出数据寄存器整数型、状态字或浮点型数据;寄存器的起始地址Initial value :W#16#0是功能代码规定的寄

12、存器的起始地址;读取寄存器的数目Initial value :4的意义是从起始地址开始总共读取4个寄存器。(2CP341接收程序的设计接收程序是调用FB7来实现的,由于CP341可以处理接收程序的细节部分,因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。接收程序同样也需要设计背景数据块本例中为Db44块和接收数据块本例中为DB5块。(3装载设计好的发送接收程序FC1与FC2。6参数化远程从站RTU以上介绍的是Modbus 主站的应用与程序设计,没有对远程终端RTU 从站进行介绍,其实在进行程序调试时必须对从站进行一些参数设置使其参数与主站要求的一致,包括协议类型、从站地址、寄偶校验

13、、传输超时等,否则通讯很难成功。7总结随着仪表自动化技术的提高,带各种通讯接口设备和现场总线设备将被大量应用到工业现场领域,使全数字化、串行、双向、互操作(下转第64页61冶金动力METALLURGICAL POWER 2006年第1期总第113期(上接第61页多快好省的远距离大数据量通讯成为可能,为数据监控和管理中心监控现场数据及现场设备工作状态和分析挖掘数据关系提供了方便。Modibus RTU通讯是现场总线实现的一个简单例证,成功的解决了现场仪表数据和PLC通讯问题,节省了因标准仪表信号布线所需的大量电缆,并且可靠性得到了大幅度提高。是我们今后现场信号采集通讯值得借鉴的一个典型代表。收稿

14、日期:2005-09-21作者简介:刘立新(1968-,男,毕业于北京科技大学,硕士研究生,仪表自动化高级工程师,现从事智能控制研究工作。焊机处有3个光电管,第一个PH,PH-WDR-242(线上PLC信号WELD-STEDG,正对着入口剪切位,线上PLC用它来确认带头、带尾定位的。即当带尾停止时,1#PH应检测无钢;接着带头到位,1#PH 应检测到有钢。当不正常时,带尾停止时尾部走过了焊机,PH检测无钢,程序据此给出CRT报警:“尾部出焊机”;或是头部未到位,PH检测无钢,给出报警:“头部未到焊机”。此PH在定位中也对带尾、带头起校正作用,以2#线为例,当头部通过此PH时,将头部进焊机的位置

15、值校正为9.695m。第二个PH,PH-WDR-241,距入口剪切位置100mm,焊机PLC用此信号确认,入口剪切位置有大于100mm的剪切量,主线PLC用此信号校正带头、帯尾位置,当带头通过时将头部进焊机的位置值校正为9.795米。带头最终停在9.895米处。第三个PH,PH-WDR-240,焊机PLC用此信号确认,出口剪切位置有大于100mm的剪切量。用MICA TRACE跟踪软件存储跟踪相关信息,并对带头位置曲线进行分析,反复比较发现每次定位不对时,带头位置的累加L在最后都有个跃变,而正常时位置的累加则无此跃变,此跃变约有1m,造成带头计算立刻到位并停止。是什么原因造成约1 m的跃变量?

16、将焊机处和定位有关的两个PH,放在TRACE里,跟踪了几次,发现焊机入口剪切量光电管PH-WDR-241(线上PLC信号WELD-EPH-ON有不稳定的信号。定位过程如下,先启动带尾进焊机,当带尾过了2#转向辊前的光电管时,光电管检测到无钢的信号,则启动另一条线的带头进焊机,带头、带尾相差约1 m,一前一后向焊机处前进,当带尾位置值到减速位时,减速,接着带尾位置值到停止位时,带尾制动,停止,由于焊机移动(入口机架和固定(出口机架间是空的,故带尾出焊机入口机架后,尾部即悬空,就可能使得带尾低速通过焊机入口剪切位置PH时,带尾有小抖动,造成PH检测除了有有钢到无钢的下降沿信号外,还有无钢到有钢的上升沿信号,正是此误信号误校正了带头的位置。问题找到了,也就好解决了,来自焊机的入口剪切量PH,其在主线PLC中的作用仅是对带头、带尾的定位起校正作用,考虑到它对定位的误作用,且与前一个PH仅隔100mm,很近,试着屏蔽掉此PH 信号,试后,很有效,带头定位立刻好许多,报警次数减少至原来的10%。再用TRACE软件看,这些不准,是由于带尾通过前一个PH即确认带头、带尾停止位置PH时,带尾抖动造成的误

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论