29743477MODBUSRTU通讯协议在S7-200中的应用
S7-200使用Modbus协议
S7-200使用Modbus协议【工控老鬼】在使用Modbus协议时,计算机与S7-200之间通讯直接使用PPI通讯电缆即可。
但如果通讯距离较远,或者需要将多个S7-200连接到一个通讯总线上时,我们可以通过如下方法配制通讯链路。
选配一个计算机通讯端口由于S7-200通讯端口物理层使用的是RS-485通讯规范,因此我们需要在计算机端增加一个RS-485通讯端口,才能与计算机通讯建立通讯。
如果计算机闲置的串口,我们可以选配一个RS-232转RS-484转换器即可;如果没有闲置的串口,我们通过在计算机中增加一个RS-485通讯卡也可以;现在很多计算机都有USB口,我们也可以在计算机上外接一个USB转RS-485转换器。
连接通讯电缆S7-200的通讯端口是一个9孔(famel)D型插头,针脚分布如下所示:针脚信号1地线(RS-485 逻辑地)224 V 地线(RS-485 逻辑地)3信号B (RxD/TxD+)4RTS (TTL level)5地线(RS-485 逻辑地)6(空)724 V 电源8信号A (RxD/TxD-)9通讯选择S7-200通讯端口(端口0)与RS-485板卡或RS-485/RS-232转换器之间接线,如下图所示:S7-200编程及设置在缺省情况下S7-200的通讯端口是不支持Modbus协议的,要想实现Modbus通讯必需在PLC的主程序模块中调用Modbus通讯子程序。
Modbus通讯子程序可以从“STEP7-Micro/WIN Add-On: Instruction Library (STEP7-Micro/WIN附件:指令库)”中获得。
在安装了“STEP7-Micro/WIN附件:指令库”后,在导航树“指令/库”下面我们可以找到“ModbusProtocol”。
在其下面包含了MBUS_INIT和MBUS_SLAVE两个子程序,MBUS_INIT 用于对Modbus通讯进行初始化,MBUS_SLAVE用于在指定端口上提供Modbus从站通讯服务。
MODBUS RTU通讯协议在S7-200中的应用
MODBUS RTU通讯协议在S7-200中的应用1 引言工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。
工业控制器连网也为网络管理提供了方便。
Modbus就是工业控制器的网络协议中的一种。
Modbus 协议是应用于电子控制器上的一种通讯约规。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为主流的工业标准之一。
他为符合Modbus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控。
2 Modbus RTU协议在S7-200中的应用原理2.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做主站必须由用户自己用自由口模式,按相关协议编程。
在S7-200控制系统应用中,Modbus RTU从站指令库只支持CPU上的通讯0口(Port0)。
要实现Modbus RTU通讯,需要Step7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
2.2 Modbus RTU协议在S7-200中应用的基本过程(1) 首先检查S7-200控制系统中所用Micro/WIN的软件版本,应当是Step7-Micro/WIN V3.2以上版本。
(2) 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLA VE两个子程序。
485modbus通讯西门子s7-200读取巡检仪数据
巡检仪说明书(部分)概述本通讯协议采用标准Modbus协议,所用的传输模式为RTU模式。
Modbus协议是一种主-从式协议。
任何时刻只有一个设备能够在线路上进行发送。
由主站管理信息交换,且只有它能发起。
它会相继对从站进行轮询。
除非被主站批准,否则任何从站都不能发送消息。
从站之间不能进行直接通信。
协议帧中不包含任何消息报头字节或消息字节结束符。
它的定义如下:从站地址:- 地址必须在1到247之间。
- 每个地址在网络设备环境中必须唯一。
数据:以二进制代码传输。
CRC16 :循环冗余校验参数。
当间隔时间长于或等于3.5字符时,即作为检测到帧结束。
1、通讯口设置通讯方式异步串行通讯接口,如RS-485,RS-232,RS-422等波特率 2400、4800、9600、19200bps(可由设定仪表参数相互更改,默认9600)2、字节数据格式. 一位起始位. 八位数据位. 一位停止位. 无校验1位起始位 8位数据位 1位停止位3、仪表通讯帧格式下表给出由本公司数显仪工作在从机模式时的的Modbus功能,并规定其限值。
从站编号:本机仪表地址,地址必须在1到247之间,且同一总线上各仪表地址不可重复。
地址为0时用于广播功能,且此时只有写功能有效。
单字节。
首寄存器地址:要读取的第一个内部寄存器的地址。
双字节。
每个内部寄存器的值数据为双字节。
寄存器数:要读取或修改的内部寄存器个数。
双字节。
读取的字节数:被读取的内部寄存器的数据的字节总数。
单字节。
CRC16:循环冗余校验参数。
1) 读N个输出字:功能3注意:Hi = 高位字节,Lo = 低位字节。
此功能可被用于读取参数,而无论类型如何。
主站请求1 字节 1 字节2 字节 2 字节 2 字节从站响应1字节1字节1字节 2 字节 2 字节 2 字节例1:使用功能3读取从站1上的1个字Sn01(地址0003H,见附表),其中:·Sn01(第一通道信号输入类型)= 17(0x11)主站请求1 字节 1 字节2 字节 2 字节 2 字节从站响应1字节1字节1字节2字节2字节巡检仪内部参数对应地址表(范围:0--161):编号参数符号参数名称寄存器地址数据格式类型数值范围备注1 无仪表类型(巡检仪) 0000双字节无符号只读03定点数2 Addr 仪表地址0001 读/写1~2473 bAud 仪表通讯波特率0002 读/写0~994 CHn 巡检点数0003 读/写0~165 CHt 通道显示时间间隔0004 读/写0~999STEP7-Micro/WIN程序:MBUS_CTRL功能块按照巡检仪说明书参数设置,波特率9600,无校验,超时100ms,8位无需设置,详见STEP7-Micro/WIN手册MBUS_MSG:EN常通,First需用上升沿Slave设置站号,此仪表站号为4RW 设置0为读1为写,这里设置为0Count巡检仪表参数为1位,这里设置为1DataPtr为读取数据存放地址,这里设置为VB2000,前面要加&符号详见STEP7-Micro/WIN手册Addr设置为40002,读取以40001开头,对应功能码03(读),这里读取仪表地址,编号02,寄存器地址0001,应为40002(40000+地址编号)M5.0为on时触发。
S7-200PLC之间进行Modbus通讯实验
1、硬件组态:S7-200PLC CPU 224XP、S7-200PLC CPU 226、维控触屏LEVI 777T、S7-200PLC之间通讯用RS485通讯电缆、S7-200PLC与维控触屏通讯用RS485通讯电缆、编程用USB/PPI电缆。
主从站设定:CPU 224XP主站,CPU 226为从站。
2、通讯端口及设定:主站CPU 224XP PORT0用于Modbus通讯、PORT1用于连接编程电缆。
从站CPU 226 PORT0用于Modbus通讯、PORT1用于连接维控触摸屏COM1(PPI 协议)。
各端子对应接线如下图。
3、实验内容:①主站读从站输入点信号、V存贮区变量;②主站控制从站输出点、写入从站整数变量及浮点数变量并在触摸屏(与从站相连)上显示;③从站读取主站发送数据并处理。
4、CPU226从站通讯初始化编程如下所示。
从站地址规定为6,端口PORT0通讯波特率9600,无校验、无延迟,允许存取所有的I、Q(MaxIQ=128)、和AI(MaxAI=32)数值,保持寄存器的存贮空间为VB3000开始的1000个字。
5、为从站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。
6、在维控触屏中下载用于监控Modbus通讯结果的画面程序,如下图。
其中包括从站本机输入点I0.0~I0.7的状态、输出点Q0.0~Q0.7(受主上控制),以及从站Modbus通讯保持寄存器VB3000~VB3013内容、整数VW3000、浮点数VD3000和VD3008内容等。
7、准备好主站通讯程序。
为主站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。
程序如下所示(上电初始化程序实际应用时要放在网络1),其中主站输入点I1.0用于触发数据传送,VB3000用于存贮读从站输入点数据,VB5000用于存贮要写入从站控制输出点的数据,VB6000用于存贮要写入从站V存贮区的数据,VB7000用于存贮由从站读取的V存贮区数据(用于验证写从站结果)。
ModbusRTU通讯协议在S7-200 PLC中的应用
ModbusRTU通讯协议在S7-200 PLC中的应用摘要:本文介绍了用modbusrtu测试软件modscan32与西门子s7-200 plc之间的通讯建立与测试。
关键词:s7-200 modbusrtu 主站从站西门子s7-200 plc具有低成本、可靠性高、技术成熟、能适应各种恶劣的环境等特点在成套设备中得到广泛的应用。
随着工业控制的飞速发展,控制已经从分散控制发展向集中控制型的集散控制系统需要通过s7-200检测现场设备的运行数据并进行控制,采用modbusrtu协议是一个不错的选择,不用另外增加任何设备,只需要在s7-200中进行编程设置即可。
接下来我们通过实例来介绍modbusrtu测试软件modscan32与西门子s7-200 plc之间的通讯建立与测试。
一、modbus rtu协议与s7-200相互关系简介目前支持modbus通信的dcs、plc系统和过程仪表大都采用基于串行接口的modbus rtu模式,西门子公司提供了针对西门子plc modbus rtu的协议库。
极大的简化了modbus rtu通信的开发,以便快速实现二者的相关应用。
通过modbus rtu从站指令库,使得s7-200可以作为modbus rtu中的从站,以实现与modbus主站设备的通信。
二、软硬件准备1.软件:modscan测试软件、step7-microwin v4.0sp06编程软件、s7-200modbus指令库文件。
2.硬件:pc机、西门子s7-200plc(cup224xp cn rel02.01)、ppi编程电缆、usb-to-serial电缆、rs232转rs485模块。
3.焊接rs485通讯电缆一根(date+ →db9 3引脚、date- →db9 8引脚)、rs485通讯电缆连接200plc的port0端口。
三、使用modbus 指令库需要注意事项1.使用modbus指令库,对step7 micro/win软件版本的要求。
西门子S7-200--MODBUS通信协议和支持MODBUS-RTU协议的电磁流量计、超声波流量计的通信实例
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS通信协议,不过要添加MODBUS库文件(SP6版本的step7 micro/win 软件自带有MODBUS库文件)。
下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。
实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。
PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MODBUS程序块时,程序块内就已经设置好端口为自由口协议了)。
图1.MODBUS库文件图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图3是读取另一台流量计的,这两个流量计是不一样的。
这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。
西门子s7_200 modbus通信协议和支持modbusrtu协议的电磁流量计、超声波流量计的通信实例
西门子s7_200 modbus通信协议和支持modbusrtu协议的电磁流量计、超声波流量计的通信实例.西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS 通信协议,不过要添加MODBUS库文件(SP6版本的step7 micro/win 软件自带有MODBUS库文件)。
下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。
实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。
PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MODBUS程序块时,程序块内就已经设置好端口为自由口协议了)。
图1.MODBUS库文件....图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图..3是读取另一台流量计的,这两个流量计是不一样的。
这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢,这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。
通讯协议在S7 200 PLC中的使用
通讯协议在S7200PLC中的使用目录第一章 Modbus通讯协议............................................................................................................- 3 -1.1 Modbus 协议.................................................................................................................- 3 -1.2.1 Modbus网络传输..............................................................................................- 3 -1.2.2 其它类型传输...................................................................................................- 4 -1.2.3 查询回应周期...................................................................................................- 4 -1.3 传输方式.......................................................................................................................- 4 -1.3.1 传输模式特性...................................................................................................- 4 -1.3.2 ASCII模式........................................................................................................- 5 -1.3.3 RTU模式............................................................................................................- 5 -1.4数据校验方式................................................................................................................- 5 -1.4.1 CRC.....................................................................................................................- 5 -1.4.2 LRC.....................................................................................................................- 8 -1.5 功能码定义...................................................................................................................- 8 - 第二章 Modbus在S7 200 PLC中的应用............................................................................... - 10 -2.1 Modbus从站指令....................................................................................................... - 10 -2.1.1 MBUS_INIT指令............................................................................................. - 10 -2.1.2 MBUS_SLAVE指令........................................................................................... - 11 -2.2 Modbus主站指令....................................................................................................... - 12 -2.2.1 MBUS_CTRL指令............................................................................................. - 13 -2.2.2 MBUS_MSG指令............................................................................................... - 14 -第一章 Modbus通讯协议1.1 Modbus 协议Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
西门子S7-200用modbus协议控台达变频器
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
西门子Sபைடு நூலகம்-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
MODBUS-RTU通讯实例 :
不解释
西门子S7-200用modbus协议控台达变频 器
地址含 义
西门子S7-200用modbus协议控台达变频 器
根据台达VFD-EL变频器说明书
西门子S7-200用modbus协议控台达变频 器
重点解释这个,看 下图
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
S7-200PLCMODBUS-RTU协议控台达VFD-EL变频器
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
重点解释这个,看 下图
西门子S7-200用modbus协议控台达变频 器
西门子S7-200用modbus协议控台达变频 器
我们得到的值是变 频器值的100倍,所 以需要运算。 VD1000可用于触摸 屏读取
西门子S7-200用modbus协议控台达变频 器
接线 台达VFD-EL变频器端子图,这里我们用RS485通讯
西门子S7-200用modbus协议控台达变频 器
看说明书
西门子S7-200用modbus协议控台达变频 器
MODBUS RTU通讯协议在XX石化S7—200中的应用
MODBUS RTU通讯协议在XX石化S7—200中的应用作者:谷越来源:《中国科技博览》2017年第34期[摘要]本文主要是介绍了S7-200控制系统中MODBUS RTU通讯协议的应用,并且还就正确检验通讯协议的方法进行了分析与研究。
[关键词]MODBUS RTU通讯协议;S7-200;应用中图分类号:TE161 文献标识码:A 文章编号:1009-914X(2017)34-0271-01引言自改革开放以来,我国工业获得了迅猛的发展,随着不断的进步,工业控制已经由单机控制逐渐的走向了集中监控、集散控制,并且随着现代社会网络的不断发展以及在工业中的应用,工业已经进入到了网络集约制造时代,而且工业控制器的联网为网络的管理大大的提供了便利。
1、应用原理(1)相关的概述我们对S7-200进行分析和研究就会发现,S7-200 CPU上配置通讯口支持MODBUS RTU 通讯协议,在与ECS-700的MODBUS RTU通讯中,可将S7-200作为从站。
我们在对S7-200控制系统进行分析就会发现,在对S7-200控制系统的应用中,MODBUS RTU从站的指令库仅仅是支持CPU上面的通讯口,如果我们在这也过程中想要实现MODBUS RTU的通讯,我们将需要Step7一Micro/WIN32 V3 .2以上的编程软件的,而且我们还必须是要按装Step7一Micro/WIN32 V3.2 Instruction Library指令库。
而且我们想要发挥Modbus RTU 的功能主要我们是要通过指令库中预先编程好的程序功能来不断实现的。
2、基本的应用过程(1)首先是需要我们要检查S7-200控制系统中使用的Micro/WIN的软件版本,最好是要Step7-Micro/WIN V3.2以上版本,这样的版本才能够使得在过程中减少一些问题的出现。
(2)其次是需要我们检查Micro/WIN的指令树中是否有ModbusRTU从站指令库的存在。
基于Modbus RTU实现的LabVIEW与S7-200系列PLC的串口通信
I T 技术科技创新导报 Science and Technology Innovation Herald42L a bV IE W是美国国家仪器有限公司提供的一套软件开发平台,广泛应用于数据采集、监控、自动化测试测量领域[1]。
西门子S7-200系列PL C 具有紧凑的设计、丰富的扩展能力、极高的可靠性、便捷的操作性和强大的指令系统,广泛的应用于各种工业领域中。
M o d b u s 是一种串行通信协议,它已经成为工业领域的通信协议标准,并且是现在工业电子设备之间常用的连接方式。
M o d b u s 传输协议定义了控制器可以识别和使用的信息结构,而无须考虑通信网络的拓扑结构[2]。
M o d b u s 具有两种串行传输模式:A S CII和R T U。
它们定义了数据如何打包、解码的不同方式。
本文阐述的主要内容是以M o d b u s R T U 为基础实现的L a b V I E W 与S7-200系列PLC之间的串口数据通信。
1 系统架构该文以某企业数据采集与监控系统项目为背景。
该项目中,上位机为工控机运行L a bV IE W 软件,完成各个分系统的数据汇总和人机界面等功能;下位机PLC作为客户端,负责向上位机提供采集的数据,同时接收上位机控制指令。
S 7-200P L C 的通信口是R S -485串行接口,工控机是R S -232串行接口,之间通过RS485/RS232转换模块连接。
2 软件实现本方案,P L C 作为M o d b u s R T U 的从站,通过自由口通信模式实现。
2.1 配置RTU从站M o d b u s R T U从站功能是通过指令库中预先编好的程序功能实现的。
从站指令库只支持CPU上的通信端口0(Port0)。
从站指令库包括初始化程序M B U S _I N I T 和响应主站请求子程序M B U S _SLAVE。
M B U S _I N I T 子程序可以用S M 0.1调用,本方案配置如图1所示,M o d e 置1,A d d r取2,B a u d 设为9600,P a r it y置2,D e l a y 取默认值0,M a x I Q 取默认值128,M a x A I 为32,M a x H o l d 为1000, HoldSta rt设为“&VB0”,使用库存储器命令为M o d b u s从站协议指令所要求的V 存储器分配一个起始地址。
基于Modbus_RTU通讯协议在西门子PLC S7—200的应用
基于Modbus_RTU通讯协议在西门子PLC S7—200的应用摘要Modbus_RTU协议是应用于工业控制器的一种通迅协议。
以西门子PLC S7-200为例,对在Modbus_RTU协议下PLC与上位机实现通信作了详细阐述。
关键词Modbus_RTU协议;PLC;通信0 引言随着科技的发展,工业控制的发展走向集中监控、集散控制。
工业控制器连网为工业管理提供了很大方便。
Modbus_RTU协议已成为主流的工业通讯标准之一。
通过此协议,可以完成上位机与PLC控制器之间的通信,实现更好的集中监控管理。
1 主站和从站通讯网络构成Modbus_RTU协议是主站和从站进行实时通讯的协议,本次以西门子S7-200 PLC控制器作为从站,主站为和利时DCS控制系统的操作员站,和利时DCS控制网络为Profibus DP协议,西门子S7-200为MODBUS协议485设备,中间用网桥进行Modbus_RTU协议和Profibus DP协议转换,网桥采用鼎时的PROIBUS@MODBUS总线桥,可以实现MODBUS协议设备接入PROFIBUS总线网络的异构网络需求,网线采用RS485通讯电缆。
通讯网络连线完成后,需要进行通讯网络参数的设定,S7-200 PLC控制器的Modbus RTU协议通讯参数可以利用从站指令库中MBUS_INIT和MBUS_SLA VE功能块设置,如下图。
主要参数设置:Mode设置为1,启动Modbus从站通信。
Address设置为3,确定MODBUS从站地址。
Baud根据实际距离(大约100米)设置为9600,确定波特率。
Parity设置为无校验。
MaxHold 设置为1000,确定V存储器中的字保持寄存器数目。
HoldStart设置为&VB0,确定保持寄存器区起始地址。
如果有多台PLC作为从站与DCS系统进行通讯,单个PLC的从站地址各不相同,MODBUS从站地址设置范围为1-32。
变频器)Modbus RTU协议与S7(
西门子专门为Modbus RTU通信开发了指令库,极大地简化了Modbus RTU通信的开发,以便于快速实现相关应用。通过Modbus RTU指令库,使得S7-200可作为Modbus RTU中的主从站设备集成到Modbus网络中,以实现Modbus设备间的通信。下图为Micro/WIN的Modbus RTU指令库。
参数功能码×100=M×256+N+1十进制表示,其中0≤N≤255
高字节低字节寄存器地址
例如:
求参数P02.07的Modbus寄存器地址
2.07×100=0×256+206+1,那么M=0,N=206,转换为十六进制为高字节00H,
低字节CEH,即寄存器地址为00CEH。详细信息请参阅HD700用户手册。
4、HD700变频器与S7-200 PLC通信接线
图3HD700变频器与S7-200 PLC接线图
5、HD700变频器与S7-200 Modbus RTU通信程序设计
功能:HD700七喜变频器与西门子S7-200通讯例程(读与写);
适用:西门子S7-200P LC,在CPU 224XP上验证通过;
功能详解:本程序是HD700变频器与S7-200P LC通讯进行变频器运行、停止控制以及用通讯改写变频器的设定频率和读取其运行频率的例程。I0.0到I0.4均为按钮,其中:
图1指令树中的库指令
2.2、Modbus RTU主站协议指令
西门子Modbus主站协议库包括两条指令:MBUS_CTRL指令和MBUS_MSG指令。
MBUS_CTRL指令用于初始化主站通信,MBUS_MSG指令用于启动对Modbus从站的请求并处理应答。
西门子S7-200系列PLC的MODBUS通信功能(一)
西门子S7-200系列PLC的MODBUS通信功能(一)这段时间经常有学员问有关于S7-200系列PLC的MODBUS通信的问题,所以今天就写一遍文章,来跟大家聊聊S7-200系列PLC的MODBUS的通信功能如何使用。
MODBUS通信协议概述:MODBUS协议是一个通用的协议,在很多智能设备上都支持这个通信协议,如变频器,智能温控仪表等都支持MODBUS通信协议。
MODBUS通信协议有具有串行链路上的MODBUS ASCAII通信和MODBUS RTU通信,也有基于TCP/IP上的 MODBUS TCP通信。
这里我们主要介绍基于串行链路上的MODBUS RTU的通信。
MODBUS RTU的信息帧格式:Start:起始码,表示的是一个信息帧的开头,MODBUS RTU通信,使用时间来作为信息帧的开头,主要是检测传输线上的空闲的时间,长度为3.5个字符时长,一个字符的长度跟数据位,停止位、起始位、奇偶校验位,波特率有关。
Address:地址码(一个字节),表示的是从站的站号,从站站号有从站设备给定或是设置,如变频器,可以在变频器参数中设置变频器的站号。
Function:功能码(一个字节),描述对从站的读写操作,是对从站读取数据,还是写入数据到从站,常见功能码如下图所示:Data:数据区(N个字节),数据区主要有两部分构成,一部分称为数据区的地址,一部分称为数据区的内容,如需要控制变频器的运行,则变频器的运行代码称为数据区内容,运行代码需要写入的地方称为数据区地址。
CRC:校验码(2字节),对从站号到数据区的数据进行CRC校验,可以参考前面一篇对于CRC校验程序设计的内容介绍。
End:结束码,与起始码一样,也是通过时间进行判断。
接下来,我们以西门子S7-200SMART系列的PLC与深圳的海普蒙特的变频器为例,来说明使用MODBUS的通信方式来控制变频器的运行,频率的修改,及读取一些参数的程序首先,我们需要熟悉变频器说明书上所描述的通信的内容,从说明书上显示支持的功能码为03,06,和16这三种功能码(注意0X10表示的是16进制数10):提供的信息帧格式为:例如:运行命令控制,地址位十六进制数的3200,往地址3200中写入不同的代码表示不同的控制命令,如下图所示根据以上内容,我们可以写出控制变频器运行的信息帧的格式,假设变频器的站号设置为1,则可以得出如下图所示的信息帧的格式其他的命令的信息帧格式,参考变频器说明书,以相同的方式可以写出。
基于Modbus RTU实现的LabVIEW与S7-200系列PLC的串口通信
基于Modbus RTU实现的LabVIEW与S7-200系列PLC
的串口通信
王洪强
【期刊名称】《科技创新导报》
【年(卷),期】2015(0)21
【摘要】在大规模、复杂的工业应用中,常常会用到不同的软、硬件平台,如何实现不同平台的数据通信,是经常需要解决的问题.本文针对LabVIEW和西门子S7-200系列PLC这两种被广泛使用的软、硬件平台之间的数据通信问题,提出了一种基于Modbus RTU协议的解决方案,并阐述了具体的实现步骤.
【总页数】2页(P40-41)
【作者】王洪强
【作者单位】核工业理化工程研究院天津 300180
【正文语种】中文
【中图分类】TP336
【相关文献】
1.基于Modbus-RTU协议的串口通信软件实现 [J], 李慧静;刘慧文;李东敬
2.基于LabVIEW与S7-200系列PLC的串口通信研究 [J], 王大虎;孙一帆;张且且
3.基于Profibus-Modbus总线桥的Siemens S7系列PLC与Modbus RTU的通讯 [J], 邯朝辉;廖雪超
4.基于Modbus_RTU通讯协议在西门子PLC S7-200的应用 [J], 刘明;郑敏
5.基于Modbus RTU的PLC与LabVIEW通信液位监控系统设计 [J], 许兰波因版权原因,仅展示原文概要,查看原文内容请购买。
如何用 S7-200 实现 Modbus 通信
如何用S7-200 实现Modbus 通信?说明:用下面的例程你可以在S7-200 CPU 之间建立一个简单的Modbus 主-从通讯。
这个例子是关于Modbus 功能码 6 的(写从站保持寄存器),也可以作为其他所支持的功能码的基本参数设置步骤:1, 2, 3, 4, 5, 15 和16 。
要求:要使用Modbus 协议必须先获得并在STEP 7 Micro/Win 中安装指令库(条目17470979)。
Modbus 主站协议只被STEP 7 Micro/Win V4.0 SP5 及其以上版本支持。
∙ 1. 硬件设置∙ 2. 参数匹配∙ 3. 指令库的存储地址∙ 4. 保持寄存器变量传输1. 硬件设置例程中的Modbus 通讯是在两个S7-200 CPU 的0 号通讯口间进行的(最好每个CPU 都有两个通讯口)。
在主站侧也可以用相应库文件"MBUS_CTRL_P1" 和"MBUS_MSG_P1"通过1号通讯口通信。
通讯口 1 用Micro/WIN 与PG 或PC 建立连接,两个CPU 的通讯口0 通过Profibus 缆进行连接(电缆的针脚连接为3,3,8,8 -> 见图01)。
另外,需要确定逻辑地M相连。
图. 012. 参数匹配对于MODBUS 通讯,主站侧需要程序库"MBUS_CTRL" 和"MBUS_MSG",从站侧需要程序库"MBUS_INIT" and "MBUS_SLAVE"。
在Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。
必须要保证主站与从站的“Baud”和“Parity” 的参数设置要一致,并且程序块"MBUS_MSG" 中的"Slave" 地址要与程序块"MBUS_INIT" 中的"Addr" 所设置的一致(见图. 02)。
S7-200modbusRTU通讯经典应用
Modbus Master 指令库需要一个 284 个字节的全局 V 存储区。
关于 Modbus RTU 主站协议库的补充说明 此为西门子正式推出的标准库指令说明资料。 在 Modbus RTU Master 协议和 PPI 协议之间切换: Modbus RTU Master 协议指令库使通信口工作在自由口模式下,此时不能与 Micro/WIN 软件通信。要在切换回 PPI
•
中止自由口模式,可以将 CPU 上的模式开关从 RUN 拨到 STOP;或者保持处于 RUN 状态,用程序停止
指令库的 Modbus 模式(参见指令库应用)
如何理解 Modbus 地址与功能码的区别? Modbus 地址与 Modbus 的功能码是两个层次的概念。 根据 Modbus 通信协议,Modbus 数据的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式,分别表示数字量输出、 数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储
S7-200 存储区字节寻址
Modbus 保持寄存器地址 40001 12 34
S7-200 存储区字寻址 VW200 12 34
40002 56 78
VW202 56 78
40003 9A BC
VW204 9A BC
VB200 12 VB201 34 VB202 56 VB203 78 VB204 9A
b. Mode 模式: 为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议 c. Baud 波特率:支持的通讯波特率为 1200,2400,4800,9600,19200,38400,57600,115200。 d. Parity 校验: 校验方式选择
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MODBUS RTU通讯协议在S7-200中的应用
1 引言
工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。
工业控制器连网也为网络管理提供了方便。
Modbus就是工业控制器网络协议中一种。
Modbus协议是应用于电子控制器上一种通讯约规。
此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为主流工业标准之一。
他为符合Modbus协议不同厂商生产控制设备可以连成工业网络,进行集中监控。
2 Modbus RTU协议S7-200中应用原理
2.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做主站必须由用户自己用自由口模式,按相关协议编程。
S7-200控制系统应用中,Modbus RTU从站指令库只支持CPU上通讯0口(Port0)。
要实现Modbus RTU通讯,需要Step7-Micro/WIN32 V3.2以上版本编程软件,须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modbus RTU功能是指令库中预先编好程序功能块实现。
2.2 Modbus RTU协议S7-200中应用基本过程
(1) 首先检查S7-200控制系统中所用Micro/WIN软件版本,应当Step7-Micro/WIN V3.2以上版本。
(2) 检查Micro/WIN指令树中是否存Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
如果没有,须安装Micro/WIN32 V3.2 Instruction Library(指令库)软件包,如图1所示。
图1 指令树中库指令
(3) 编程时使用SM0.1—调用子程序MBUS_INIT进行初始化,使用SM0.0—调用研究MBUS_SLAVE,并指定相应参数。
参数详细说明,可子程序局部变量表中找到。
示例参见图2:
图2 调用MODBUS通讯指令库
图2中参数意义如下:
●模式选择:启动/停止MODBUS,1=启动;0=停止;
●从站址:MODBUS从站址,取值1~247;
●波特率:可选1200,2400,4800,9600,19200,38400,57600;
●奇偶校验:0=无校验;1=奇校验;2=偶校验;
●延时:附加字符间延时,缺省值为0;
●最大I/Q位:参与通讯最大I/O点数,S7-200I/O映像区为128/128,缺省值为128;
●最大AI字数:参与通讯最大AI通道数,可为16或32;
●最大保持寄存器区:参与通讯V存储区字(VW);
●保持寄存器区起始址:以&VBx指定(间接寻址方式);
●初始化完成标志:成功初始化后置1;
●错误代码:0=无错误。
(4) 注意问题
调用Step7-Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。
库指令数据区是相应库子程序和中断程序所要用到变量存储空间。
编程时不分配库指令数据区,编译时会产生许多相同错误。
由子程序参数HoldStart和MaxHold指定保持寄存器区,是S7-200 CPUV数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则运行时会产生错误,不
能正常通讯。
注意Modbus 中保持寄存器区按“字”寻址,即MaxHold规定是VW而VB个数。
3 Modbus RTU协议测试
包含Modbus RTU从站指令库项目编译、下载到CPU中后,编程计算机(PG/PC)上运行一些Modbus测试软件可以检验S7-200Modbus RTU通讯是否正常,这对查找故障点很有用。
测试软件计算机串口(RS-232)和PC/PPI电缆连接CPU。
(以ModScan32测试软件为例作以检测说明)
3.1 测试软件
测试软件ModScan32如图3所示。
图3 Modbus RTU测试软件:ModScan32
图3中,ModScan32测试软件画面中相关参数意义如下:
Address:ModBus中存储区起始址;
Device Id:PLC ModBus端口址;
Length:参与通讯V存储区字长度。
3.2 参数设置
对ModScan32测试软件通讯参数进行相关设置,要与S7-200Modbus RTU指令库MBUS_INIT中所设定参数相统一,这样即可进行通讯检测。
ModScan32通讯参数设置如图4所示。
图4 ModScan32通讯参数设置
4 MODBUS RTU址与S7-200址对应关系
MODBUS址总是以00001、30004之类形式出现。
S7-200内部数据存储区与MODBUS0、1、3、4共4类址对应关系如附表所示:
附表 MODBUS址对应表
说明:其中T为S7-200中缓冲区起始址,即HoldStart。
已知S7-200中V存储区址,推算MODBUS址公式如下:
MODBUS址=40000+(T/2+1)
其中T为偶数。
5 结束语
Modbus RTU作为一种工业控制器网络通讯协议,其如今众多控制器之间进行联网、监控、相互通讯等方面发挥着重大作用,本文以典型S7-200控制系统为例,详述了如何应用Modbus RTU通讯协议以及检测方法,使控制器之间通讯变更加简易和清晰。