当前位置:文档之家› 通过西门子200 PLC自由口Modbus RTU通讯协议控制丹佛斯FC系列变频器

通过西门子200 PLC自由口Modbus RTU通讯协议控制丹佛斯FC系列变频器

?问题:

?怎样通过Modbus RTU控制FC系列变频器?

?回答:

?FC系列变频器通过内置的RS485接口,以Modbus

RTU格式进行通讯。参数设置如表

?电报结构(十六进制)

?

地址字段包含8位数据,有效的地址范围为0-247(十进制),0为广播模式;1-247对相应地址的从站进行寻址。

功能字段包含8位数据,有效地代码范围为1-FF,功能字段用于在主站和从站之间发送消息。当从主站向从站发送时,功能字段为主站的控制字;当从从站向主站传送时,功能字段为从站的状态字。

?数据字段,是由几组字节两个十六进制数字(00至FF)构成,根据不同的功能代码,数据字段包含的位长、作用不一,针对常用的功能代码,举例如下:

?1、功能代码=1,读取线圈状态

? 2、功能代码=5,写入单个线圈数值

? 3、功能代码=F,写入多个线圈数值

?线圈及位的意义。地址0-31为主站写入用控制位,32-63为从站返回的状态位,如下表所示:

?

例如,使电机启动并运转在50%*最大参考值的报文如下

?其中位的个数为 20H=32个位,也就是从00地址起始到31为止的位;

字节数,是指写入数值为4个字节;

写入数值 047C 对应00-16位,在传送时低位在前,因此为7C 04;

2000 对应16-31位,50%*最大参考值,在传送时低位在前,因此为00 20;

4、功能代码=3,读取保持寄存器状态,保存寄存器保持2字节(即16位)

? 5、功能代码=6,写入单个寄存器

? 6、功能代码=10,写入多个寄存器数值

?寄存器列表:

?例如,当要读取3-41,加速时间时,需要写的报文:

?计算参数3-41的地址3-41 → 341*10-1=3409 → D51(十六进制);

保持寄存器状态都为双字节,因此在字节数位置应该为 2 ;正常情况下,变频器返回的报文为,

?012C 为读出的加速度时间,转换成十进制并考虑到控制单位,得到加速时间为3秒。

?寄存器50000、50010和线圈00-31的作用相同,使电机启动并运转在50%*最大参考值的报文,使用寄存器写入的报文为:

?地址转换(50010-1)→ C3 59(十六进制);

写入信息20 00 对应50%*最大参考值;

?地址转换(50000-1)→ C3 4F(十六进制);写入信息04 7C 变频器运转的控制字;

?注:同传送线圈数据不同,这里写入的信息不需要高、低字节互换,这是由modbus RTU协议规定的。50000和50010因为不是连续的地址,不能使用写入多寄存器的功能码,只能使用单寄存器写入的功能码。

西门子指令解释

置位/复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。对于置位操作,一旦RLO为1,则被寻址信号(输出信号)状态置1,即使RLO又变为0,输出仍保持为1;对于复位操作,一旦RLO为1,则被寻址信号(输出信号)状态置0,即使RLO又变为0,输出仍保持为0。 语句表STL表示的置位/复位指令 ●R Reset 复位指令 ●S Set 置位指令 梯形图LAD表示的置位/复位指令 ●---( S ) Set Coil 线圈置位指令 ●---( R ) Reset Coil 线圈复位指令 ●SR Set-Reset Flip Flop 复位优先型SR双稳态触发器指令 ●RS Reset-Set Flip Flop 置位优先型RS双稳态触发器指令 位逻辑指令的运算结果用两个二进制数字1和0来表示。可以对布尔操作数(BOOL)的信号状态扫描并完成逻辑操作。逻辑操作结果称为RLO(result of logic operation)。 语句表STL表示的基本位逻辑指令 ● A And 逻辑“与” ●AN And Not 逻辑“与非” ●O Or 逻辑“或” ●ON Or Not 逻辑“或非”

●X Exclusive Or 逻辑“异或” ●XN Exclusive Or Not 逻辑“异或非” ●= Assign 赋值指令 ●NOT Negate RLO RLO取反 ●SET Set RLO (=1) RLO=1 ●CLR Clear RLO (=0) RLO=0 ●SAVE Save RLO in BR Register 将RLO的状态保存到BR。边沿信号识别指令。 位逻辑指令的运算规则:“先与后或”。 可以用括号将需先运算的部分括起来,运算规则为: “先括号内,后括号外”。 梯形图LAD表示的基本位逻辑指令 ●---| |--- Normally Open Contact (Address) 常开触点 ●---|/|--- Normally Closed Contact (Address) 常闭触点 ●---(SAVE) Save RLO into BR Memory 将RLO的状态保存到BR ●XOR Bit Exclusive OR 逻辑“异或”

关于西门子PLC的PPI通信协议的研究

关于西门子PLC的PPI通信协议的研究 摘要:本文结合西门子PLC的PPI通信协议的相关理论,主要研究了PPI协议的 通信过程、通信协议模型,并对PLC网络通信模式的构建进行了实例分析。 关键词:西门子PLC;PPI通信协议;通信程序 前言 PPI通信协议是一种特殊的通信协议,其协议本身是不公开的,只有西门子 S7-200的设备支持它。但掌握它也很重要,有时s7-200系列的设备之间只能通过PPI协议通信,例如上位机STEP7-Micro/WIN与S7-200PLC之间的基本通信;有 时只要通过一根电缆就可以实现S7-200PLC之间的简单通信,非常适用。但由于PPI通信协议不是公开的协议,因此一般现场设备是不支持的,限制了其作为标 准现场总线的应用,由此还需对协议内容、功能实现进行研究和分析。 1西门子PLC的PPI通信协议概述 1.1通信过程 在PPI网上,计算机与PLC通信,是采用主从方式,通信总是由计算机发起,PLC予以响应。具体过程如下: 1)计算机按通信任务,用一定格式,向PLC发送通信命令。 2)PLC收到命令后,进行命令校验,如校验后正确无误,则向计算机返回数 据E5H或F9H,作出初步应答。 3)计算机收到初步应答后,再向PLC发送SD(开始定界字符,为10H)、 DA(目标地址,即PLC地址02H)、SA(源地址,即计算机地址00H)、FC(功 能码,取5CH)、FCS(SA、DA、FC和的256余数,为5EH)、ED(结束分界符)确认命令。 如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E及16,6个字节的十六进制数据,以确认所发命令。 4)PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应 数据。 需要注意的是:如为读命令,情况将如上所述。但如为写或控制命令,PLC 收到后,经校验,如无误,一方面向计算机发送数据E5H,作出初步应答;另一 方面不需计算机确认,也将执行所发命令。但当收到计算机确认信息命令后,会 返回有关执行情况的信息代码[1]。 1.2 PPI协议模型 PPI通信协议的模型以OSI模型为基础,将其中的物理层、数据链路层和应用 层构成现场总线通信的三层模型,如表1所示。 其中PPI的应用层是通信模型的最高层,负责进行应用数据的读写操作。应用层是在数 据链路层之上的,接收数据链路层上传的数据,用来更新本站点的相关数据。当应用层需要 发送数据时,它只要将发送数据的目的站点、数据类型和数据本身等信息下载给数据链路层,由数据链路层去实现数据的发送。 PPI的数据链路层是位于通信模型的第2层,它介于物理层与应用层之间。一方面,它要 执行应用层的数据发送任务,生成数据和控制帧,并将这些帧下载给物理层,通过物理层实 现帧的发送;另一方面,数据链路层还要接收物理层的帧,根据帧进行校验等操作,若是数 据帧,则将其中的数据从帧中读出,上传给应用层。 一次数据写出操作的步骤包括:首先由本站(主站)向从站发出写入请求,从站作出正确接

西门子S7200与VLT2800 Modbus RTU通讯调试说明

Modbus Modbus , Modbus Modbus Modbus 1 Modbus Modbus RS-232C Modem Modbus Modbus 2 Modbus 3 1 03 2 ASCII RTU Modbus Modbus ASCII : 1 ... n LRC LRC RTU

1 ... n CRC CRC ASCII RTU Modbus MAP Modbus Plus Modbus 1 ASCII Modbus ASCII 8Bit ASCII 1 ASCII 0...9 A...F ASCII 1 7 1 1 2 Bit LRC( ) 2 RTU Modbus RTU 8Bit 4Bit ASCII 8 0...9 A...F 8 1 8 1 1 2 Bit CRC( ) Modbus ASCII RTU Modbus RTU 3.5 0...9,A...F 3.5

1.5 3.5 CRC CRC T1-T2-T3-T4 8Bit 8Bit n 8Bit 16Bit T1-T2-T3-T4 1 ASCII 8Bit RTU 0...247 ( ) 1 (247) 0 Modbus 2 ASCII 8Bits RTU 1 (255) ( ) 1 0 0 0 0 0 0 1 1 03H 1 0 0 0 0 0 1 1 83H 3 00...FF ASCII RTU 03 10 0 0B 4 Modbus ASCII ASCII ASCII LRC LRC RTU

RTU 16Bits ( 8 ) CRC CRC Modbus LRC CRC RTU CRC CRC CRC 16 CRC CRC CRC 1 16 8 8Bit CRC CRC 8 OR 0 LSB LSB 1 LSB 0 8 8 8 CRC CRC 1.2004 6 15 VLT6000 2.6X VLT2800 2.8X Modbus RTU 175Z3362 Modbus RTU VLT6000 VLT2800 Modbus RTU RS485 +/- 68/69 LCP 5XX 9600Baud, 19200Baud. 2.DANFOSS ANFOSS ANFOSS SIMATIC S7-200 PLC S7-200 PLC FreeportMode DANFOSS DANFOSS VLT2800 MODBUS RTU .S7

modbus_通讯协议_实例

上海安标电子有限公司 ——PC39A接地电阻仪通信协议 通信协议: 波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 字节号 1 2 3 4 5 6 7 8 意义ID Command 数据地址V alue CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,读:3或4,写:6 3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始 4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位) 5 CRC:计算出CRC 下位机(PC39A): 读数据,若正确 字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位) 4 V alue:N个字节,是返回上位机的数据 5 CRC:计算出CRC 写命令,若正确 返回收到的数据: 若错误 字节号 1 2 3 4 5 意义ID Command 数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令 错误指令 1:表示command不存在 2:表示数据地址超限 4 CRC:计算出CRC

例如读PC39A 电流数据: 机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12 3 100 1 CRC_H CRC_L 从机返回 如正确: ID Command 数据个数(以字节为单位) V alue CRC 16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3 2 1545 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制 12 131 2 CRC_H CRC_L 例如发PC39A 启动命令: 机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 从机返回 如正确: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12 134 2 CRC_H CRC_L 0011 10000110 错误码0x83 功能码0x06错误码0x86

几种通信总线详尽总结

微处理器中常用的集成串行总线是通用异步 接收器传输总线(UART)、串行通信接口(SCI) 和通用串行总线(USB)等,这些总线在速度、 物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。 微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C) 和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。为了说明方便起见,本文的阐述是基于微处理器的设计。 串行与并行相比 串行相比于并行的主要优点是要求的线数较少。例如,用在汽车工业中的LIN 串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。 另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。例如,可以很容易地去掉总线上旧器件并用新的来替代。

S7200_PPI通信协议

S7-200 PPI通信协议 PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从。通信开始由计算机发起,PLC予以响应。 1)、计算机按通信任务,用一定格式,向PLC发送通信命令。 2)、PLC收到命令后,进行命令校验,如无误,则向计算机发送数据E5H或F9H,作出初步应答。 3)、计算机收到初步应答后,再向PLC发送SD DA SA FC FCS ED确认命令。 这里,SD为起始字符,为10H;DA为目的,即PLC地址02H;SA为数据源,即计算机地址00H;FC为功能码,取5CH;FCS为SA、DA、FC和的256余数,为5EH;末字节ED为结束符,也是16H。如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E、及16,6个字节的十六进制数据,以确认所发命令。 4)、PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。 SD LE LER SD DA SA FC DASP SSAP DU FCS ED SD:(Start Delimiter)开始定界符,占1字节,为68H LE:(Length)报文数据长度,占1字节,标明报文以字节计,从DA到DU的长度; LER:(Repeated Length)重复数据长度,同LE SD: (Start Delimiter)开始定界符(68H) DA:(Destination Address)目标地址,占1字节,指PLC在PPI上地址,一台PLC时,一般为02,多台PLC时,则各有各的地址; SA:(Source Address)源地址,占1字节,指计算机在PPI上地址,一般为00; FC:(Function Code)功能码,占1字节,6CH一般为读数据,7CH一般为写数据 DSAP:(Destination Service Access Point)目的服务存取点,占多个字节 SSAP:(Source Service Access Point)源服务存取点,占多个字节 DU:(Data Unit)数据单元,占多个字节

modbus协议及modbus_RTU的C51程序

查看完整版本: [-- modbus协议及modbus RTU的C51程序--] 电子工程师之家-> 51单片机论坛-> modbus协议及modbus RTU的C51程序[打印本页]登录-> 注册-> 回复主 题-> 发表主题 一线工人2007-11-15 21:44 modbus协议及modbus RTU的C51程序 完整的程序请下载[attachment=1488] Modbus通讯协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus 协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU 协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。

Siemens PPI协议分析

Siemens PPI协议分析 大家好:我是山东临沂的郝金红,由于前段时间的疯狂的研究西门子PPI协议解密之故,所以无心插柳的研究出了较实用的西门子S7-200 PPI协议,今天奉献大家。我们经常要用于上位机、现场设备与S7-200CPU之间的通讯,但是西门子公司没有公布PPI协议的格式,用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。大家要知道国内的组态王、紫金桥、力控等等组态公司是花了多少钱才得到的PPI的深层协议吗?其实西门子工控产品的超高价垄断掠夺行为已经引起了我们国家及业内人士的抵制和抗议,他们的什么软件都需要授权且对于系统的霸道性是有目共睹的。 这样给用户自主开发就带来了一定的困难,特别是想用VB、VC等语言自行开发,根本没办法接入PLC,要么你大把掏钱给他们。洋为中用,最近在国外网站得到一个串口监视软件,带协议分析的相当不错,你吧!我就是通过此软件的数据监视、分析方法,找出了PPI协议的关键报文格式所在。 其实西门子S7-200 PLC之间或者PLC与PC之间通信有很多种方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC 中都要编写数据通信程序。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便。这也是我们之所以要研究、找出PPI协议的源动力! 下面我们就要说说分析的方法了! 西门子的STEP 7 MicroWIN 是用于S7-200系列PLC的开发工具,它使用PC机上的COM口通过一条PC/PPI编程电缆连到PLC的编程口上。这说明,PC实际上是可以通过串口同S7-200 CPU通讯。只是我们不知道通讯协议而已。通过截获PC机串口上的收发数据,对照Step 7软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过串口向PLC发送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。

Modbus RTU通讯协议

要实现Modbus RTU通信, 一、需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 Modbus RTU从站指令库只支持CPU上的通信0口(Port0) 基本步骤: 1. 检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。 2. 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当 包括MBUS_INIT和MBUS_SLAVE两个子程序。 如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包; 1. 西门子编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用 MBUS_SLAVE,并指定相应参数。 关于参数的详细说明,可在子程序的局部变量表中找到; 调用Modbus RTU通信指令库图中参数意义如下: a. 模式选择:启动/停止Modbus,1=启动;0=停止 b. 从站地址:Modbus从站地址,取值1~247 c. 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200 d. 奇偶校验:0=无校验;1=奇校验;2=偶校验 e. 延时:附加字符间延时,缺省值为0 f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128, 缺省值为128 g. 最大AI字数:参与通信的最大AI通道数,可为16或32 h. 最大保持寄存器区:参与通信的V存储区字(VW) i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式) j. 初始化完成标志:成功初始化后置1

基于Modbus协议实现单片机与PLC之间的通讯

基于Modbus协议实现单片机与PLC之间的通讯 来源:PLC&FA 作者:蔡晓燕赵兴群万遂人董鹏云 关键词:可编程控制器 Modbus 通讯协议 1 引言 HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。它有字母、汉字、图形和图片等不同的显示,界面简单友好。配有长寿命的薄膜按钮键盘,操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。 2 Modbus通讯协议[4] Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。 Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。 (1) 典型的RTU消息帧 典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。可能的从设备地址是0...127(十进制)。其中地址0是用作广播地址,以使所有的从设备都能认识。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代 码所定义的行为。这包括了像不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。 当选用RTU模式作字符帧时,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。 (2) 所有的Modbus功能码 Modbus的功能码定义如表2所示。

用西门子CP341实现Modbus RTU通讯

用西门子CP341实现Modbus RTU通讯 1 概述 CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接 4 CP341驱动配置 在您的计算机上首先安装STEP7 5.x软件和CP34x模板所带的软件驱动程序.模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件 组态界面下可以打开)、用于串行通讯的FB程序块。当系统上电,CP34x模板初始化完成后,CP34x上的sF灯点亮: 在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的硬件地址 以便在编程序时用到。双击CP341模板属性窗口中的protocol 协议图标进行协议参数设置,这里我们使用默认值:96oo bit,s, 8 data bits, 1 stop bit,even parity。对的硬件组态存盘编译,下载硬件组态.如果此时sF灯亮.请将通讯电缆与另一个通讯伙伴进行连接后.SF灯熄灭,说明硬件组态正确。 5 程序编写 (1)CP341发送模块的设计而发送程序主要是通过调用功能块FB8来实现,FB8 是基于上升沿触发工作的.来一个上升沿FB8工作一次向总线上发 送一个请求数据包,所以在程序中一定要设计一个触发代码段,来不断的使REQ:=M50.0循环往复的置“1”置“0”,这样FB8就可以正常运行了。 在设计程序时一定要注意FB8的参数SF:=‘S’及R_TYP:=‘X’的值都是大写否则程序调试不成功。FB8需要一个背景数据块.这一背景数据块一般由系统自动生成.以上程序中为DB3;对于通过CP34 1的Modbus Master驱动通讯的发送模块需要设计发送数据块DB块.用来对主站发送参数进行设置和初始化。 Modbus能够实现的功能代码共有10个.分别针对不同的寄存器读写功能设置.功能代码Initial value:B#16#4的功能是读从站的输出数据寄存器 整数型、状态字或浮点型数据:寄存器的起始地址Initial value:W#16#0是功能代码规定的寄存器的起始地址;读取寄存器的数目Initial value:4的意义是从起始地址开始总共读取4个寄存器。 (2)CP341接收程序的设计 接收程序是调用FB7来实现的,由于CP341可以处理接收程序的细节部分.因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。接 收程序同样也需要设计背景数据块本例中为Db44块和接收数据块本例中为DB5块。 (3)装载设计好的发送接收程序FC 1与FC2。 6 参数化远程从站RTU . 以上介绍的是Modbus主站的应用与程序设计,没有对远程终端RTU从站进行介绍.其实在进行程序调试时必须对从站进行一些参数设置使其参 数与主站要求的一致,包括协议类型、从站地址、寄偶校验、传输超时等,否则

什么是ModBusRTU通讯协议

什么是ModBusRTU通讯协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave 端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP 网络协议发送出去即可。 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与ModBusRTU通讯规约相兼容: 初始结构= ≥4字节的时间 地址码= 1 字节 功能码= 1 字节 数据区= N 字节 错误校检= 16位CRC码

(完整版)MODBUS通讯协议-RTU要点

Modbus 通讯协议 (RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。

第一章Modbus协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。 1.1 传输方式 传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以RTU 模式在Modbus总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议– RTU方式相兼容的传输方式。 代码系统 ?8位二进制,十六进制数0...9,A...F ?消息中的每个8位域都是一个两个十六进制字符组成 每个字节的位 ?1个起始位 ?8个数据位,最小的有效位先发送 ?1个奇偶校验位,无校验则无 ?1个停止位(有校验时),2个Bit(无校验时) 错误检测域 ?CRC(循环冗长检测)

MODBUS-RTU通讯协议简介

MODBUS-RTU通讯协议简介 2008-10-10 17:27 1.1 Modbus协议简述 ACRXXXE系列仪表使用的是Modbus-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。 Modbus协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。 1.2 查询—回应周期 1.2.1 查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 1.2.2 回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:如寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 1.3 传输方式 传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与Modbus 协议– RTU方式相兼容的传输方式。 每个字节的位: · 1个起始位 · 8个数据位,最小的有效位先发送 ·无奇偶校验位 · 1个停止位 错误检测(Error checking):CRC(循环冗余校验) 1.4 协议 当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应,或者返回一个错误指示帧。 1.4.1 数据帧格式 Address Function Data Check 8-Bits 8-Bits N x 8-Bits 16-Bits 1.4.2 地址(Address)域 地址域在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0~255,

西门子Port1接口定义

西门子的编程口都是口的。你用的接线方法做线肯定要失败。 图上的是的线,你还需要一个转的东西,可以参考德阳四星的转换器。 另外就是一根标准的线(自己做)。 此文原创为工控网“老菜鸟”希望吃水不忘打井人在工控上看到他记得 表示感谢。备注我不是老菜鸟。........下面先简单了解一下支持的通信 协议........比较详细的介绍请参阅《可编程控制器系统手册》第章通过 网络进行通信。........下面仅简单说明一下部分通信协议协议........该协议是西门子内部协议不公开。点对点接口是一个主从协议。主站向 从站发送申请从站进行响应从站器件不发信息不初始化信息只是等待 主站的要求并对要求作出响应。但当主站发出申请或查询时从站对其响应。主站可以是其他主机如等、编程器或文本显示器。网络中的所有都 默认为从站。系列中一些如果在程序中允许主站模式则在模式下可以作 为主站此时可以利用相关的通信指令来读写其他主机同时它还可以作 为从站来响应其他主站的申请或查询。........主站靠一个协议管理的共

享连接来与从站通讯。并不限制与任意一个从站通讯的主站数量但是在 一个网络中主站的个数不能超过。如果在用户程序中使能主站模式在运行模式下可以作主站。在使能主站模式之后可以使用网络读写指令来 读写另外一个。当作主站时它仍然可以作为从站响应其它主站的请求。 高级允许网络设备建立一个设备与设备之间的逻辑连接。对于高级每个设备的连接个数是有限制的。所有的都支持和高级协议而模块仅仅支持高级协议。协议是专门为开发的通信协议。的通信口、支持通信协议的一些通信模块也支持协议。与进行编程通信也通过协议。的网络通信是建立在网络的硬件基础上因此其连接属性和需要的网络硬件设 备是与其他网络一致的。之间的网络通信只需要两条简单的指令它们 是网络读和网络写指令。在网络读写通信中只有主站需要调用指令从站 只需编程处理数据缓冲区取用或准备数据。网络上的所有站点都应当有各自不同的网络地址。否则通信不会正常进行。........可以用两种方法编程实现网络读写通信.使用指令编程实现.使用中的指令向导中的向导。........使用通讯方式这是的专用通讯方式使用对中继器可以最远达到。支持的波特率有三种。这种方式是最容易实现的通讯只要编程设 置主站通讯端口的工作模式然后就可以用网络读写指令读写从站数据。 协议........该协议是西门子内部协议不公开。是多点通信的接口是一种适用于少数站点间通信的网络多用于连接上位机和少量之间近距离 通信。通过电缆和接头将控制器或的自带的编程口及自带的通信口相互 连接以及与上位机网卡的编程口口通过或电缆连接即可实现。网络中当然也可以不包括机而只包括。允许主主通讯和主从通讯。每个通信口

MPI协议和PPI协议有什么不同

竭诚为您提供优质文档/双击可除MPI协议和PPI协议有什么不同 篇一:通讯不同点 请教下大虾们,常说的总线有profibus、can、modbus、FF、devicenet等,这些是不是以走什么协议来命名的?那 我可以说:“它走can协议吗?”而常见的串口通信modbus,mpi, 据校验和。 在波特率一致、各站地址不同的情况下,ppi,mpi和pRoFibus可以同时在一个网络上运行,并且互不干扰。 这就是说如果一个网络上有s7-300、s7-200,s7-300 之间可以通过mpi或pRoFibus通信,而在同时在同一个网 络上的tp170如果在一个通信网络上存在其他主站(如td200,或者上位计算机等),同时需要进行micro/win的编程、监控,这就是多主站网络编程。 使用西门子的下列设备可以实现micro/win的多主站编程: micro触摸屏可以与一个s7-200cpu通信。 使用智能多主站电缆和micro/winV3.2sp4以上版本。

新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。 如果使用cp卡,如cp5511/cp5512(笔记本电脑pcmcia 卡)、cp5611(台式机pci卡),能够支持多主站编程通信。 如果通过cp卡编程时,选择了mpi协议,注意mpi主站不能访问作为ppi主站的cpu。如果有第三方的产品要连接到多主站网络上,用户需要咨询第三方产品提供商以了解是否支持西门子的s7-200多主站网络。要进行多主站编程,不但编程计算机要支持,网上的其他设备也要有多主站通信能力。 早期的多主站连接依赖于计算机硬件和windows操作系统。随着计算机技术的发展,多数情况下已经不能做到多主站编程通信。建议用户使用西门子的多主站编程电缆或者cp 卡配合micro/win实现多主站编程通信。 4.mpi(multipointinterface)是simatics7多点通信的接口,是一种适用于少数站点间通信的网络,多用于连接上位机和少量plc之间近距离通信。 通过pRoFibus电缆和接头,将控制器s7-300或s7-400的cpu自带的mpi编程口及s7-200cpu自带的ppi通信口相互连接,以及与上位机网卡的编程口(mpi/dp口)通过pRoFibus或mpi电缆连接即可实现。网络中当然也可以不包括pc机而只包括plc。

西门子S7200与变频器MODBUS通讯实例详解

西门子S7200与变频器MODBUS通讯实例详解 西门子S7200PLC简介 西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。一致的模块化设计促进了低性能定制产品的创造和可扩展性的解决方案。来自西门子的S7 - 200微型PLC可以被当作独立的微型PLC解决方案或与其他控制器相结合使用。 Modbus通讯协议简介 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。 ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。 ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。 1 MODBUS RTU协议在S7-200中的应用原理 1.1 MODBUS RTU协议与S7-200相互关系简介 S7-200 CPU上的通讯口Port0可以支持MODBUS RTU协议,成为MODBUS RTU从站。此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。 想在S7-200 CPU与其他支持MODBUS RTU的设备使用MODBUS RTU协议通讯,需要由有S7-200 CPU做MODBUS主站。S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。 2 从站指令的用法: S7-200控制系统应用中,MODBUS RTU从站指令库只支持CPU上的通讯0口(Port0)。要

很好的威纶通MODBUSRTU通讯协议与变频器通讯案例

很好的威纶通 M O D B U S R T U通讯协议与变频器通讯案例 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

本文研究的是触摸屏通过MODBUS RTU通讯协议与变频器通讯实现变频器的控制。触摸屏采用威纶通TK6070IP,变频器用汇川MD380通用系列。通过触摸屏编程软件,编辑控制画面实现变频器的启动、停止、速度调节、多段速速度设置,通过宏指令实现工程值与实际值的转换。 一、MODBUS RTU 简介: 为了在自动化系统之间、自动化系统和所连接的分散的现场设备之间进行信息交换,如今串行现场总线被主要用作通讯系统。成千上万的应用已经强烈地证明了通过使用现场总线技术,可以节省多至40%的接线、调试及维护的费用。仅仅使用两根电线就可以传送现场设备的所有相关信息,比如输入和输出数据、参数、诊断数据。过去使用的现场总线往往是制造商的特定现场总线,并且同其它现场总线不兼容。如今使用的现场总线几乎是完全公开和标准化的。这就意味者用户可以以最合理的价格选择最好的产品,而不用依赖于每个独立的制造商。Modbus RTU是一种国际的、开放的现场总线标准。作为一种很容易实现的现场总线协议,在全世界范围内,Modbus得到了成功的应用。应用领域包括生产过程中的自动化、过程控制和楼宇自控。MODBUS RTU通讯协议的报文如图1。 图1 MODBUS RTU 通讯协议的报文功能码如下: 01H 读取线圈状态。从执行机构上读取线圈(单个位)的内容; 02H 读取离散量输入。从执行机构上读取离散量输入(多个位)的内容; 03H 读取保持寄存器。从执行机构上读取保持寄存器(16位字)的内容; 04H 读取输入寄存器。从执行机构上读取输入寄存器(16位字)的内容; 05H 强置单线圈。写数据到执行机构的线圈(单个位)为“通”(“1”)或“断”(“0”); 06H 预置单寄存器。写数据到执行机构的单个保持寄存器(16位字); 0FH 强置多线圈。写数据到执行机构的几个连续线圈(单个位)为“通”(“1”) 或“断”(“0”); 10H 预置多寄存器。写数据到执行机构的几个连续的保持寄存器(16位字)。 二、威纶通编程软件介绍: EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有 3x_bit,4x_bit,6x_bit,0x_multi_coils等,下面分别说明这些设备类型在MODBUS协议中支持哪些功能码。 0x:是一个可读可写的设备类型,相当于操作PLC的输出点。该设备类型读取位状态的时候,发出的功能码是01H,写位状态的时候发出的功能码是05H。写多个寄存器时发出的功能码是0fH。

相关主题
文本预览
相关文档 最新文档