S7-200与V20的MODBUS RTU通讯
S7-200-MODBUS通讯

1,根据查询到的资料,P1口只能做主站,P0口既可做主站,也可以做从站2,安装好的S7-200编程软件一般是不带库的,所以需要从网上下载MODBUS库,然后才能做Modbus通讯的子站,压缩包直接点安装后,库文件就安装到了编程软件里面了3,P1口不能做从站4,西门子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地址00####和01####使用的I和Q点数设为0至128之间的数值。
S7-200MODBUS_RTU通讯注意事项

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以上版本的编程软件,而且须安装S tep7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
2.2 Modbus RTU协议在S7-200中应用的基本过程(1) 首先检查S7-200控制系统中所用Micro/WIN的软件版本,应当是Step7-Micro/WI N V3.2以上版本。
(2) 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
西门子S7-200-SMART之Modbus-RTU-通信常见问题及错误代码含义

常见问题1.S7-200 SMART 是否支持Modbus ASCII 通信模式?STEP 7-Micro/WIN SMART 软件未提供Modbus ASCII 通信模式指令库。
S7-200 SMART CPU若用于Modbus ASCII 通信时,则需要用户使用自由口通信模式进行编程。
2. S7-200 SMART CPU 集成的RS485 端口(端口0 )以及SB CM01 信号板(端口1 )两个通信端口能否同时作为Modbus RTU 主站或者同时作为Modbus RTU从站?S7-200 SMART V2.2版本支持两个通信端口同时做MODBUS RTU主站,不支持同时做MODBUS RTU从站。
3. S7-200 SMART CPU作为Modbus RTU 主站如何访问Modbus 地址范围大于49999 的保持寄存器?通常Modbus 协议的保持寄存器范围在40001 到49999 之间,这个范围对于多数应用来说已经足够了,但有些Modbus 从站保持寄存器区的地址会超出该范围。
Modbus RTU 主站协议库支持保持寄存器地址范围为(40001 到49999)或者(400001 到465536)。
如果Modbus 从站地址范围为400001 –465536,只需在调用MBUS_MSG 子程序时给Addr 参数赋相应的值即可,如416768。
4.S7-200 SMART CPU作为Modbus RTU 主站,多次调用MBUS_MSG 指令时,为什么该指令会出现6# 错误代码?同一时间只能有一条MBUS_MSG 指令处于激活状态,如果激活多条MBUS_MSG 指令,将执行第一条MBUS_MSG 指令,所有后续MBUS_MSG 指令将中止执行并出现6# 错误代码。
多条MBUS_MSG 指令的执行需要采用轮询方式。
5.S7-200 SMART CPU作为Modbus RTU 主站,从站故障或者通信线路断开时,主站会尝试发送多次请求报文,从而导致通信时间过长。
S7-200SMART与V20变频器进行自由口通信

S7-200SMART与V20变频器进行自由口通信
前面以S7-200SMART与英威腾变频器进行自由口通信为例详细讲解了自由口通信的方法及步骤,本文再带大家一起来学习与V20变频器进行自由口通信的程序编写方法。
V20支持标准的modbusRTU 协议,真正使用时可以使用modbus通信,本文主要是教大家如何编写自由口协议程序。
总结了一下自由口通信的基本步骤如下:
1. 研究弄懂对方的通信协议。
自由口也称自由协议或无协议通信,即通信双方没有共同的通信协议,只能临时根据某一方的协议进行发送和接收数据,以达到交换数据的目的。
那么意味着每次书写的程序没有固定格式,不仅需要变成人员能掌握程序的编写,还要求编程人员能快速的读懂对方的通信协议。
查阅V20变频器手册得知,FC3 - 读保持寄存器读保持寄存器命令格式:
变频器响应反馈数据格式:
FC6 - 写单一寄存器命令格式:
变频器响应反馈数据格式:
FC10 - 写多寄存器命令格式:
变频器响应反馈数据格式:
2. 根据对方的协议编写发送和接收数据的程序。
编写程序前应找到关键通信地址,控制启停正反转的控制字地址为40100,频率地址为40101。
应转换成十六进制地址,转换方法将40100-40001=99,再将99转换成16#0063,同理40101转换成16#0064。
程序如下:。
【电气工控自动化】S7-200 SMART与V20变频器进行自由口通信

S7-200 SMART与V20变频器进行自由口通信学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:1)modbus RTU通信2)PPI协议通信3)USS协议通信4)自由口通信何为自由口通信呢?前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。
自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。
很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。
为此我总结了自由口通信的基本步骤:1)读懂对方的数据格式。
串行通信中,数据是一位一位的进行发送,也就是0和1。
为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。
图1-1我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。
Modbus RTU代码系统如下:·1个起始位。
·7或8个数据位,最小的有效位先发送。
·1个奇偶校验位,设成无校验则没有。
·1个停止位(有校验时),2个Bit(无校验时)。
数据格式的描述如下表:11-bit字符帧(BITl-BIT8为数据位):起始位Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8校验位停止位10-bit字符帧(BITl-BIT7为数据位):起始位Bit1Bit2Bit3Bit4Bit5Bit6Bit7校验位停止位通信中要保证通信双方要有相同的波特率,数据格式,奇偶校验位。
波特率:通信速度,每秒中发送的位的个数,单位为Bit/S或bps。
两分钟学会V20变频器的MODBUS RTU通讯

4.V20 常用寄存器说明 5. 上述准备工作完毕,接下来正式编写通信程序 1)初始化 ModbusMaster 端口: EN 使能: 必须保证每一扫描周期都被使能(使用 SM0.0) 。Mode 模 式: 为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议 。Baud 波特率: 支持的通讯波特率为 4800,9600,19200 。必须与变频器 一致。Parity 校验: 校验方式选择 (V20 采用偶校验) 0=无校验 1=奇较验 2=偶较验 Timeout 超时: 主站等待从站响应的时间,以毫秒为单位,典型的设置 值为 1000 毫秒(1 秒),只要保证从站有时间响应即可。Done 完成位: 初始化完成,此位会自动置 1。Error:初始化错误代码。 2) 调用 ModbusRTU 主站读写功能块 MBUS_MSG,发送一个 Modbus 请求:
器实际地址 。RW 请求方式: 0 = 读, 1 = 写 。Count 数据个数 通讯
的数据个数(位或字的个数) 。注意: Modbus 主站可读/写的最大数据量
为 120 个字(是指每一个 MBUS_MSG 指令)。DataPtr 数据指针: 如果是
读指令,读回的数据放到这个数据区中 ;如果是写指令,要写出的数据放到
两分钟学会 V20 变频器的 MODBUS RTU 通讯
1、本例程的系统配置: (1)安装 STEP 7-MicroWIN SMART 确保 modbus 库文件未丢失。(软件 安装后自带库文件,个别在安装时可能丢失库) (2)网线一根、S7-200SMART、24V 开关电源、单头带 DP 接头的通信 电缆。(3)V20 变频器一台。 2. 用通信电缆将 S7-200SMART 自带的 RS485 接口与 V20 的 RS485 接口 相连(注意端口连接规则:V20 的 P+对 3、N-对 8),如下图所示: 3.变频器参数设置: V20 可以通过选择连接宏 Cn011 实现 Modbus RTU 控制,也可以通过直 接更改变频器参数的方法来实现。参数设置如下表所示:
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存贮区数据(用于验证写从站结果)。
200smart 与V20变频器Modbus rtu通讯例子

200smart与V20变频器Modbus rtu通讯例子基于上次200smart与V20变频器的USS通讯验证之际,我就有心想测试一下Modbus rtu方式连接V20变频器,毕竟,硬件接线基本就绪着的,只是控制程序及V20变频器参数稍微有一些区别而已。
测试硬件:1)cpu200smart SR30;6ES7288-1SR30-0AA02)V20变频器;6SL3210-5BE23-0UV03)DP插头;6ES7972-0BB12-0XA04)编程软件,STEP7MicroWIN SMART V2.45)连接导线若干V20变频器参数设置:1)P0010=30P0970=21设置回工厂设置2)P0003=3(专家参数)3)设置V20Modbus rtu宏参数Cn0114)设置与变频器连接的电机参数P0100开始,省略5)其中:有关通讯参数部分P0700=5P2010[0]=69600bpsP2014[0]=100mS,修改为0mSP2021=1Modbus rtu从站地址P2022=1000应答超时P2023=2RS485通讯协议P2034=2偶校验P2035=1一个停止位设置好宏参数及修改部分参数后,给变频器重新断电再上电,使设置生效。
6)编辑熟悉了的Modbus rtu程序:7)初始化:轮询:V20控制字:其中,40100的控制字数据含义:16#047E:V20变频器准备16#047F:正转16#0C7F:反转16#057E:正向点动16#067E:反向点动16#04FE:故障确认40101,频率设置:VD10读V20变频器状态字及频率:读取实际频率:V20变频器的频率值,由16384对应P1082变频器最大频率(按50Hz计算获取)8)编译、下载用户程序,连接通讯,在线测试:V20变频器频率设置VD10的数据,由V20变频器反馈到40111=VW106,经过计算获得数据存放到VD14=24.99,基本接近频率设置VD10的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S7-200与V20之间的MODBUS RTU通讯
显示订货号
S7-200与V20的MODBUS RTU通讯
1、本例程的系统配置:
(1)安装Step7 Micro/Win software和Modbus协议库,西门子在Micro/WIN V4.0 SP5 中正式推出Modbus RTU主站协议库。
(2)PC/PPI电缆、S7-200、电源模块、通信电缆。
(3)V20驱动装置和一台PC机。
2、在使用MicroWin software 创建项目之前,确认Modbus Master 库文件已经安装:
3、创建一个例程:
3.1 设置通讯接口
本例程使用PC/PPI电缆。
3.2 建立PC和PLC之间的连接
“双击刷新”搜索到PLC后,点击”确认”。
3.3 用电缆将S7-200 Port 1端口与V20的RS485接口相连(注意端口连接规则:V20的P+对3、N-对8),如下图所示:
3.4 变频器参数设置:
V20 可以通过选择连接宏Cn011实现Modbus RTU控制,也可以通过直接更改变频器参数的方法来实现。
参数设置如下表所示:
参数描述
Cn011默认值实际设
置
备注
P0700[0] 选择命令源
5 5 RS485为命令源
P1000[0] 选择频率
5 5 RS485为速度设定值
P2023[0] RS485协议选择 2 2 MODBUS RTU协议
P2010[0] USS/MODBUS波特率 6 6 波特率为9600bps
P2021[0] MODBUS地址 1 3 V20的MODBUS 地址
P2022[0] MODBUS应答超时1000 2000 向主站发回应答的最大时间
P2014[0] USS/MODBUS报文间断时
间100 0
接收数据时间
3.6 初始化Modbus Master端口:
EN 使能:必须保证每一扫描周期都被使能(使用SM0.0)。
Mode 模式:为1 时,使能Modbus 协议功能;为0 时恢复为系统PPI 协议。
Baud 波特率:支持的通讯波特率为4800,9600,19200 。
Parity 校验:校验方式选择(V20采用偶校验)
0=无校验
1=奇较验
2=偶较验
Timeout 超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000 毫秒(1 秒),允许设置的范围为 1 - 32767。
注意:这个值必须设置足够大以保证从站有时间响应。
Done 完成位:初始化完成,此位会自动置1。
Error:初始化错误代码。
3.7 调用Modbus RTU 主站读写功能块MBUS_MSG,发送一个Modbus 请求:
3.7.1 写入控制字1和速度实际值:
EN 使能:同一时刻只能有一个读写功能(即MBUS_MSG)使能。
注意:V20对于写指令同一时刻只运行对一个保持寄存器操作;读指令同一时刻最大允许操作
125 个保持寄存器。
First 读写请求位:每一个新的读写请求必须使用脉冲触发。
Slave 从站地址:可选择的范围1 - 247 。
RW 请求方式:0 =读,1 =写。
Count 数据个数通讯的数据个数(位或字的个数)。
注意:Modbus主站可读/写的最大数据量为120个字(是指每一个MBUS_MSG 指令)。
DataPtr 数据指针:1. 如果是读指令,读回的数据放到这个数据区中;
2. 如果是写指令,要写出的数据放到这个数据区中。
Done 完成位:读写功能完成位。
Error 错误代码:只有在Done 位为1时,错误代码才有效。
常用的控制字:
047E :运行准备
047F :正转启动
0C7F :反转启动
04FE :故障确认
3.7.2 读取状态字1和速度实际值:
3.7.3 读取斜坡上升时间P1120:3.7.4 写入斜坡下降时间P1121:
3.8 通过状态表控制和读取变频器的状态:
对于斜坡上升时间P1120,从寄存器列表中可以看到40322的寄存器的定标系数是100,读取过来的值为:VW1310=1000,所以参数P1120=1000/100=10。
4 Modbus错误代码:
Done 完成位:读写功能完成位。