S7-200的MODBUS RTU主站协议库使用方法
S7-200Modbus协议使用详解

d. Parity 校验: 校验方式选择
0=无校验
1=奇较验
2=偶较验
e. Timeout 超时: 主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。
2. 如果是写指令,要写出的数据放到这个数据区中
h. Done 完成位 读写功能完成位
i. Error 错误代码: 只有在 Done 位为1时,错误代码才有效
0 = 无错误
1 = 响应校验错误
2 = 未用
3 = 接收超时(从站无响应)
4 = 请求参数错误(slave address, Modbus address, count, RW)
VX.0----10001
VX.1----10002
VX.2----10003
VX.3----10004
VX.4----10005
VX.5----10006
VX.6----10007
VX.7----10008
. .
1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对 Port 0 和 Port 1 有效。该指令库将设置通信口工作在自由口模式下。
2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
3. Modbus RTU 主站库对CPU的版本有要求。CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。
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从站通讯服务。
西门子S7-200-PLC-Modbus从站设置

西门子S7-200 PLC Modbus从站设置2013-01-27 11:43:43| 分类:PLC|举报|字号订阅西门子S7200做Modbus从站需要使用MBUS_INIT、MBUS_SLAVE即可。
MBUS_INIT指令被用于启用和初始化或禁止Modbus通讯。
在使用MBUS_SLAVE 指令之前,必须正确执行MBUS_INIT指令。
指令完成后立即设定"完成"位,才能继续执行下一条指令。
在每次扫描且EN输入打开时执行该指令。
应当在每次通讯状态改变时执行MBUS_INIT指令。
因此,EN输入应当通过一个边缘检测元素用脉冲打开,或者仅在首次扫描时执行。
"模式"输入数值选择通讯协议:输入数值1将端口0指定给Modbus协议并启用协议;将输入数值0指定给PPI,并禁用Modbus协议。
"波特"参数将波特率设为1200、2400、4800、9600、19200、38400、57600或115200。
"地址"参数将地址设为1和247之间(包括1和247)的数值。
"校验"参数被设为与Modbus主设备校验相匹配。
可接受的数值为:*0-无校验*1-奇数校验*2-偶数校验"时延"参数通过将指定的毫秒数增加至标准Modbus信息超时的方法延长标准Modbus信息结束超时条件。
该参数的典型数值在有线网络上应为0。
如果您在使用带有纠错功能的调制解调器,将时延设为50至100毫秒的数值。
如果您在使用扩展频谱无线电,将时延设为10至100毫秒的数值。
"时延"数值可以是0至32767毫秒。
MaxIQ参数将供Modbus地址00xxxx和01xxxx使用的I和Q点数设为0至128之间的数值。
数值0禁止所有向输入和输出的读取。
建议使用的MaxIQ数值是128,该数值可在S7-200中存取所有的I和Q点。
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两个子程序。
S7-200-modbus

Modbus RTU协议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)。
必须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
Modbus RTU协议在S7-200中应用的基本过程(1) 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
如果没有,须安装Micro/WIN32 V3.2 Instruction Library(指令库)软件包,如图1所示。
图1 指令树中的库指令(2) 编程时使用SM0.1—调用子程序MBUS_INIT进行初始化,使用SM0.0—调用研究MBUS_SLAVE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到。
示例参见图2:图2 调用MODBUS通讯指令库图2中参数意义如下:●模式选择:启动/停止MODBUS,1=启动;0=停止; 注意当: Port0用作Modbus从站协议通讯时,它不能再用作任何其它目的,包括与STEP7--Micro/WIN通讯。
MBUS_INIT指令控制Port0的设定是Modbus从站协议还是PPI。
●从站地址:MODBUS从站地址,取值1~247;●波特率:可选1200,2400,4800,9600,19200,38400,57600;●奇偶校验:0=无校验;1=奇校验;2=偶校验;●延时:附加字符间延时,缺省值为0;●最大I/Q位:参与通讯的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128;●最大AI字数:参与通讯的最大AI通道数,可为16或32;●最大保持寄存器区:参与通讯的V存储区字(VW);●保持寄存器区起始地址:以&VBx指定(间接寻址方式);●初始化完成标志:成功初始化后置1;●初始化错误代码;● MODBUS执行:通讯中时置1;●错误代码:0=无错误。
西门子S7-200系列PLC使用Modbus库的方法及注意事项

1.使用Modbus库指令,一定要分配库内存;
2.分配的库内存范围一定不要和可读取的内存范围有重复的地方,否则初始化不成功。
帮助:MaxHold参数设定供Modbus地址04xxx使用的V内存中的字保持寄存器数目。
例如,为了允许主设备存取2000个字节的V内存,将MaxHold设为1000个字的数值(保持寄存器)。
HoldStart参数是V内存中保持寄存器的起始地址。
该数值一般被设为VB0,因此HoldStart参数被设为&VB0(VB0 地址)。
其他V内存地址可指定为保持寄存器的起始地址,以便在项目的其他地方使用VB0。
Modbus主设备可存取V 内存MaxHold个字数,从HoldStart开始。
如果HoldStart设为&VB0,MaxHold设为1000,即Modbus主设备可存取V 内存从VB0开始,可存取1000个字,2000个字节。
则库内存的开始地址一定要从2000以上开始,否则初始化不成功,返回错误代码为5,即“保持寄存器与Modbus从属符号重叠”。
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注/。
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从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。