西门子200SMART Modbus RTU通讯实例,附程序详解
西门子S7-200SMART与变频器MODBUS-RTU通信例程
西门子S7-200SMART与变频器MODBUS-RTU通信例程S7-200 SMART CPU 自带一个 RS485 端口(端口0),标准型CPU 额外支持 SB CM01 信号板(端口1),信号板可通过 STEP 7-Micro/WIN SMART 软件组态为 RS232 通信端口或 RS485 通信端口。
本例程是以CPU自带的端口0为MODBUS主站,变频器为从站的通信。
1,接线方式CPU自带的端口定义:我们只用3脚和8脚注意,西门子的A,B与变频器的定义是反的,所以西门子8脚A 要与变频器B-对应,西门子3脚 B与变频器A+对应。
接线图如下:2,在与变频器通讯前,最好是先用MODBUS调试助手先测试PLC与调试助手之间的通信。
通过测试我们可能发现,调试助手中一个寄存器的长度与一个VW对应。
变频器MODBUS寄存器地址是16进制的表达方式。
所以我们PLC程序中的地址也最好用16进制表表达,这样方便直观。
变频器如下:但我们的调试助手助手的寄存器地址是十进制的。
所以要转换一下。
以上面的40100为例,转换成16进制为9CA4.所以我们如果要用调试助手与变频器通信调试,要注意将变频器16进制地址转换成10进制的地址在调试助手中监控。
查看变频器参数地址表变频器中部分参数(只读)读取变频器输出频率:7203H。
PLC程序中也按16进制的表达方式,读取从站1中16#7023地二的值。
先用调试助手模拟测试7203H,测试如下我们监控发现报警,代码为4:请求参数错误(slave address,Modbus address,count,RW)。
报这个错误的原因是,寄存器地址超出SMART200的MODBUS寄存器地址范围。
SMART200的寄存器地址范围为40001到49999和 400001 至 465535。
注意这里指的是10进制地址。
对于上面变频器7203H也就是10进制的29187 地址29187超出PLC中40001到49999和 400001 至 465535允许范围了,怎么处理呢?对于没超出范围地地址,可以直接用,对于超出范围的地址,我们就要加上400000,所以以上寄存器地址在PLC中就要用429187 3,PLC与变频器连接通信特别注意:PLC与变频器通信时,超出范围的寄存器地址,要加400001才会对应正确4,具体参考程序:(本例程中除了变频器外,还有多个从站的轮询)。
实用西门子PLC(Modbus RTU)通讯
PLC主站1、Modbus RTU 主站初始化(MBUS-CTRL 指令)ENEN :使能端,要一直接通;Mode:1=Modbus RTU通信0=PPI通信;Baud :波特率4800 9600 19200 38400 ;Parity:0=无校验、1=奇校验、2=偶校验;Port :通讯端口选择0=本身集成端口、1=扩展信号板端口;Timeout:通讯最大等待回复时间,单位ms ;Done :完成标志位;Error :错误代码。
2、读写指令MBUS-MSGEN:使能端,一直接通;First:读写触发,需配合沿指令使用;Slave:从站地址;RW:0=读、1=写;Addr :读写从站的Modbus首地址;Count:读写数量;DataPtr:数据指针(用于存储将要读取或写入的数据);其他同上。
PLC从站1、Modbus RTU 从站初始化(MBUS-INIT)EN:使能端,使用SM0.1激活;Mode:1=Modbus、0=PPI ;Addr:从站站地址;Baud:波特率;Parity:奇偶校验0=无、1=奇校验、2=偶校验;Port:通讯端口选择0=集成端口、1=扩展端口;Delay:一般填0;MaxIQ:允许主站读写的最大IO点数;MaxAI:允许主站读取的最大AI字数;MaxHold:允许主站读取的最大V区字数;HoldStart:允许主站读取的V区首地址(Modbus地址为40001);其他同上。
2、处理主站通讯请求指令(MBUS-SLAVE)变频器从站1、西门子变频器2、三菱变频器硬件接线。
200SMART MODBUS RTU通讯指令介绍
200SMART MODBUS RTU通讯指令介绍
主站指令1(PLC自带485通讯口)
主站指令2(信号板SB CM01)
从站指令
(1)MBUS—CTRL:主站参数定义
(2)MBUS—MSG:主站读写指令
(3)MBUS—INIT:从站定义指令
(4)MBUS—SLAVE:从站应答
主站定义指令
EN:使能;为1时指令有效,为0时指令不执行
Mode:模式选择;为1时为modbus,为0时为
PPI
Baud:波特率,数据传输速率9600、19200等
Parity:奇偶校验0=无校验1=奇校验2=偶校验
Port:端口;0=PLC自带串口1=信号板CM01
Timeo:通信超时
Done:完成位
Error:错误字节
注:1、此条指令写在主站,写一天即可;
2、波特率和奇偶校验和从站应保持一致,不然无法通信;
主站读写指令
first:触发;需要用沿触发
slave:从站地址
RW:读写0=读取、1=写入
Addr:从数据区
Counl:数据范围
Dataptr:主站数据存放位置
从站定义指令
EN:使能,sm0.1初始化
Mode模式:1=modbus 0=禁用modbus
Buand:波特率
Parity:奇偶校验
Port:端口
Delay:默认为0,表示立即应答
Maxiq:通信最大I/O总数
Maxai:通信最大模拟量通道
Maxhold:通信最大v区
Holdstart;v区起始地址
从站应答指令。
西门子smart200通讯说明文档
TPC和西门子SMART200 PLC通讯说明S7-200 SMART CPU 模块本体集成1个以太网接口和一个RS485接口,通过扩展CM01信号版,其通讯端口数量最多可增到3个。
串口支持下列协议:PPI、ModbusRTU、USS、自由口通讯通讯连接方式:<1>采用标准串口型号的西门子PC/PPI电缆。
<2>采用RS232/485转换器连接,RS485的A正B负与PLC编程口3正8负连接。
<3>TPC触摸屏的RS485接口的A正B负与PLC编程口3正8负连接。
注意:1.只支持串口型号的PPI电缆,不支持USB型号的PPI电缆,使用时请注意。
2.TPC触摸屏的DB9针的口里面7、8脚为RS485的正和负。
1 PPI协议通讯SMART200通讯参数设置:SMART200 PLC可以通过西门子STEP 7-MicroWIN SMART配置波特率和PLC地址。
当为SMART200修改参数后,需要将改动参数的系统块下载至SMART200。
每台SMART200 CPU的默认波特率为9.6 kbps(即: 9600 bps),默认PLC地址为2(数据位,停止位,校验位固定为8位、1位,偶校验)。
通讯参数设置方法:1、将电脑本地网卡的IP 设置和PLC的IP在同一个网段内,PLC默认IP为192.168.2.12、通过网线连接好电脑和PLC连接好,运行西门子STEP 7-MicroWIN SMART软件,双击通讯,更新可访问的设备,找到所连接PLC的IP,选择后点击确认。
3、双击系统块,打开通讯部分,设置RS485端口的通讯参数,设置地址和波特率,默认波特率为9.6 kbps(即: 9600 bps),默认PLC地址为2。
4、MCGS添加西门子PPI驱动,通用串口父设备使用默认参数设置,如下图“西门子_S7200PPI”子设备参数设置如下:设备地址:PLC设备地址,可设定范围1-31,默认值为2。
与西门子PLC实现Modbus-RTU通信实例
与西门⼦PLC实现Modbus-RTU通信实例⼀、准备⼯具及材料1.台式电脑⼀台,笔记本电脑⼀台;2.西门⼦200smart PLC⼀台,3.多功能电表DW9L-RC38或DS9L或DS7L⼀台,温控表TE系列⼀台,4.仪表说明书及通讯协议,5.9针接⼝通讯线⼀根,6.USB转RS485转换器⼀台,7.电源线,⽹线、⽹络交换机等。
⼆、软件安装软件名称:STEP 7-MicroWIN SMART,可从西门⼦⽹站下载。
三、梯形图编程1.主要编程思路PLC使⽤⾃带的RS485接⼝与仪表进⾏通信连接,PLC作为主站,仪表为从站,使⽤标准Modbus-RTU通讯协议。
调⽤编程软件⾃带的Modbus协议库,实现与仪表的数据通信。
2.MBUS_CTRL 和 MBUS_MSG 指令介绍本⽰例使⽤单个主站及 MBUS_CTRL 和 MBUS_MSG 指令。
同⼀理念对使⽤第⼆个主站及 MB_CTRL2 和 MB_MSG2 指令的⽰例同样适⽤。
3.电⼒仪表通信协议:4.梯形图编程(1)设置PLC型号(2)设置库存储器的地址分配(系统已分配VB0~VB285⽤于modbus通信使⽤,我们就从VB286开始)(3)编辑符号表(4)编辑状态图表(5)编制第⼀、⼆段:置位标志位及通讯初始化:波特率Baud=9600,Parity=0⽆校验,Port=0集成CPU内RS485⼝,Timeout从站响应超时50ms。
Done初始化完成返回"TURE",Error输出错误结果。
(6)程序3-4:当MBUS_CTRL初始化完成后,M0.0 从关闭变为接通时,延时T33=10mS时间后,置位第⼀条 MBUS_MSG 指令的启⽤标志 (M2.0)=1。
(7)程序5:读第⼀台从机设备,地址1,型号DW9L或DS9L或DS7L。
当第⼀个启⽤标志 (M2.0) 接通后,调⽤ MBUS_MSG 指令。
只需为启⽤该指令的第⼀次扫描设置 First 参数。
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的数据。
西门子200SMART Modbus RTU通讯实例,附程序详解
通讯材料:1)、PLC2台,分别是200SMART 的CR60和SR20;2)、2个DP插头(6ES7972-0BX12-0XA0)3)、连接导线若干(plc电源及通讯)验证内容:令:CR60PLC为主站,发送PLC系统时钟(8个字节的信息)给SR20从站;SR20从站发送一个双字的循环移位数据给主站,并由通讯数据VD100接收输出到QD0。
主站程序:在验证过程中曾经出现一个错误,使MSG指令始终显示为6,表示从站无响应。
我验证时,由于连接2台plc之间的3+、8-没有确认,造成接线错误,使MSG的error错误信息为6,检查后找到原因,重新接线后仍然报警6。
最后检查为控制程序不完整,主要原因是没有给MB0一个初始化操作,造成错误值没有得到有效的刷新。
于是,在程序段1中加入初始化操作得到解决。
主站MSG指令主要理解Addr地址的应用,下面有描述。
从站程序:从站通讯地址设置为1#从站自VB31开始为读取主站VB11开始的8个字节主站系统时钟数据,指定VB31的起始地址是由Addr地址40011定义的,从站循环指令VD11运行结果,将由Mbus_init的Holdstart 定义的起始地址发送和接收。
编写小结:自简而深进行编写Modbus RTU通讯程序,相对从站通讯程序比较简单,仅仅只是指定通讯种类由Mbus_init管脚指定maxIQ/maxAI/maxHOLD/Holdstart定义,其它管脚根据主站定义匹配进行,相对主站需要根据从站地址偏移量来确定。
通讯数据:Modbus通讯程序相对的难点是通讯映射的地址关系。
主站读取从站的数据,起始地址是根据从站Holdstart管脚定义的起始地址开始算,而不是指从站的V区物理地址。
在验证程序中,从站的Mbus_init起始地址为VB11,那么,主站MSG指令的Addr 40001,应该是指从站的VB11地址。
同理,从站读取主站系统时钟,主站的MSG指令的Addr 40011,对应到从站的地址相当于偏移了10个字(偏移量10word + 11byte = 31byte),即为VB31开始的8个字节中存放,Modbus通讯地址计算是40001开始的。
西门子S7-200SMART和变频器的MODBUS无线通讯实例测试
西门子S7-200SMART和变频器的MODBUS无线通讯实例测试本案例详细介绍了通过PLC的MODBUS RTU命令远程控制变频器的编程方法,借助DTD434M西门子等欧美系PLC专用无线通讯终端,非常方便地实现了PLC与变频器的远距离无线操控,解决了工业现场布线不便,移动设备无法拉线以及滑束线磨损断线的难题这里我们选用西门子PLC型号为S7-200 Smart和台达的变频器为例,并结合西安达泰的DTD434M系列无线通讯终端来说明PLC与变频器之间的无线通讯过程。
其他变频器和S7-200Smart的无线MODBUS通讯都是一样的,最大的区别就是通讯代码是各厂家自行定义的,查说明书就行。
我们的硬件测试环境如下 ▼系统硬件件接线表如下▼变频器通讯格式选择如下▼首先我们打开STEP7编程软件,在库里面找到我们要用到的MODBUS协议库文件如下图所示▼1初始化Modbus 主站通信EN:使能:必须保证每一扫描周期都被使能(使用SM0.0)Mode:模式:常为1,使能 Modbus 协议功能;为0 时恢复为系统 PPI 协议Baud:波特率:设为9600,要与从站波特率对应。
Parity :校验:校验方式选择 0=无校验,1=奇校验,2=偶校验。
Timeout:超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000毫秒(1秒),允许设置的范围为 1-32767。
注意:这个值必须设置足够大以保证从站有时间响应。
Done:完成位:初始化完成,此位会自动置1。
可以用该位启动 MBUS_MSG 读写操作。
Error:初始化错误代码(只有在 Done 位为1时有效):0=无错误,1=校验选择非法, 2=波特率选择非法,3=模式选择非法。
详细程序如下图▼2读写从站保持寄存器的数据EN;使能:同一时刻只能有一个读写功能(即 MBUS_MSG)使能。
First:读写请求位:每一个新的读写请求必须使用脉冲触发。
实例:S7
实例:S7本实例我们介绍下西门子S7-200 SMART PLC如何通过Modbus-RTU协议读取温湿度传感器的数值。
实例使用的硬件如下:1.S7-200 SMART CPU ST20;2.温湿度传感器(支持Modbus-RTU协议);本文包括如下几个主题:1、温湿度传感器外观、接线及通信参数介绍2、CPU ST20与温湿度传感器的接线;3、CPU ST20的编程;1、温湿度传感器外观、接线及通信参数介绍本例程使用的温湿度传感器能检测的温度范围为:-40℃~120℃,湿度范围为:0%~100% rh,其外观如下图所示:该温湿度传感器有四条线,颜色分别是:红、黑、黄、绿,各线的定义如下:温湿度传感器接线定义线色定义备注红色电源正极电压范围:DC 5~24V黑色电源负极黄色RS485-A RS485-信号A线(+)绿色RS285-B RS485-信号B线(-)该温湿度传感器支持Modbus-RTU协议,相关通信参数如下:1.支持的波特率:1200bps、2400bps、4800bps、9600bps、19200bps,默认为9600bps;2.通信设置:起始位1位,数据位8位,停止位1位,无校验位;3.支持站地址范围:1~247,默认为1;4.支持Modbus功能码0x03读取数据,数据格式如下表所示:读取温度/湿度数据格式数据起始地址数据内容字节数单位0 温度值 2 0.1℃1 湿度值2 0.1rh支持Modbus功能码0x10或者0x06修改传感器的站地址或者波特率,数据格式如下表所示:修改地址/波特率数据格式数据起始地址数据内容字节数范围100 站地址 2 1~247101 波特率 2 0~4①①0=1200bps;1=2400bps;2=4800bps;3=9600bps;4=19200bps;2、CPU ST20与温湿度传感器的接线本例程使用CPU ST20本体集成的串口(编号:Port0)连接温湿度传感器。
S7-200 SMART PLC与smart line触摸屏进行modbus rtu通讯连接 1
西门子S7-200 SMART PLC与smart line触摸屏进行modbus rtu通讯连接,含源程序!本文章会详细介绍西门子S7-200 SMART PLC与smart line触摸屏进行modbus rtu通讯连接的步骤。
一、硬件连接1、smart line触摸屏485端口脚位定义如图1所示:图12、200 SMART PLC 485端口脚位定义1) 200 SMART PLC本体端口200 SMART PLC选择可以选择CPU 集成的RS485 通信端口和标准型CPU 额外支持SB CM01 信号板。
CPU 集成的RS485 通信端口的引脚分配如图2所示,CPU 额外支持SB CM01 信号板图22) 200 SMART 信号板标准型CPU 额外支持SB CM01 信号板,该信号板可以通过STEP 7-Micro/WIN SMART 软件组态为RS485 通信端口或者RS232 通信端口。
SB CM01 信号板的引脚分配,如图3 所示。
图33、PLC与触摸屏连接1) CPU 集成的RS485 通信端口与触摸屏连接PLC端口引脚3连接触摸屏端口引脚3,PLC端口引脚8连接触摸屏端口引脚8,如图4所示。
2) SB CM01 信号板与触摸屏连接SB CM01 信号板Tx/B连接触摸屏RS-485端口引脚3,SB CM01 信号板Rx/A连接触摸屏RS-485端口引脚8,如图4所示,本文章为200 SMART PLC本体端口进行通讯连接。
图4二、 WinCC flexible SMART软件设置1、通讯参数设置1) 打开WinCC flexible SMART软件在文件菜单栏中新建项目选择Smart 700 IE V3这款触摸屏,如图5所示;图52) 在项目栏中的通讯—连接,进行通讯参数设置,modbus rtu通讯可以有三种选项,如图6所示。
注意:200 SMART PLC与smart line触摸屏连接要勾选“更改word order”。
西门子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,则可以得出如下图所示的信息帧的格式其他的命令的信息帧格式,参考变频器说明书,以相同的方式可以写出。
西门子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-200SMART使用MODBUS方式控制变频器
S7-200SMART使用MODBUS方式控制变频器一、MODBUS通信概述MODBUS协议分为串行链路上MODBUS协议和基于TCP/IP协议的MODBUS 协议。
串行链路上MODBUS协议有MODBUS ASCAII(字符串)和MODBUS RTU两种 200SMART所提供的MODBUS协议库能够支持MODBUS RTU 通信 MODBUS RTU 是以16进制的数值进行发送 MODBUS ASCAII 是以ASCAII码的方式进行发送,一个数据采用RTU方式发送只需要一个字节,而用ASACII码发送需要两个字节,发送时间PLC与变频器串口通信有很多通信方式,但常用的、首选的就是MODBUS通信方式,在实际的工业控制中应用非常广泛;这一期我们向大家一起分享变频器如何与PLC通过MODBUS RTU的方式进行控制二、、MODBUS库指令详解库指令分两种,一个是主站库,一个是从站库主站是PLC作为MODBUS的主站主动去读取其他设备的数据;从站是PLC作为MODBUS的从站,其他设备来读取数据;本期我们分享的是PLC作主站,变频器做从站STEP7-MinWIN SMART软件自带MODBUS通信库指令初始化指令:控制指令:三、MODBUS RTU的通信格式(协议)通信协议有:站号、功能码、数据地址、数据内容、校验位、结束符组成校验:N=None无校验 E=Even偶校验 O=Odd奇校验判断数据位中为1的个数是奇数还是偶数(选择偶校验如16#03中如果为1 的个数是偶数时,校验位为1 ;如果为1 的个数是奇数时,校验位为0 。
选择奇校验时,为1的个数是偶数时,校验位为0 ;为1的个数是奇数时,校验位为1)功能码指定了对从站设备读操作还是写操作,同时也指定了MODBUS寄存器地址的类型,常用功能码有:四、PLC与变频器通信硬件的连接在变频器上面涉及通信的端子标记有A/B RS585+/RS485-或RJ11的网口;找到相关变频器的说明书查看通信端口的接线定义,以下是台达VFD-M系列的变频器通信口接线定义五、变频器通信参数的设置1、要实现变频器或仪表和PLC能正常通信,彼此的接口和协议需要一致,除此之外参数的设置也必须一致P00 设03(频率指令)P01 设03(运转指令)P88 设03 (通讯地址,0-254之间)P89 设02(波特率选择)P92 设04 (数据格式,200SMART不支持2个停止位,因此只能选04/05任意一个参数)P157 设01 (变频器默认的就是MODBUS模式)2、查看说明书的启停、频率给定、运行频率、电压电流等反馈参数的地址信息帧格式说明表示读2103 2104两个地址的数据放在17 70 和00 00的地址里通信协议的参数地址定义: 运行命令地址2000H 频率命令地址2001H 输出频率地址2103H 输出电流地址22104H 输出电压地址2106H 变频器温度地址 210DH六、MODBUS通信程序的编写在程序的开始可以加一段初始化对所有的位进行复位End文章来源:PLC技术,本文系网络转载,版权归原作者所有。
S7-200SMART MODBUS通信介绍与实例编程
S7-200SMART MODBUS通信介绍与实例编程西门子smart200PLC的详细结构图一. 西门子S7-200 SMART作为modbus从站1.检查Micro/WIN SMART Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT 和MBUS_SLAVE两个子程序。
西门子smart200的modbus从站库文件图1. 指令树中的库指令2.编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;西门子smart200的modbus从站详细分析图2.调用Modbus RTU通信指令库图中参数意义如下:a.模式选择:启动/停止Modbus,1=启动;0=停止b.从站地址:Modbus从站地址,取值1~247c.波特率:可选1200,2400,4800,9600,19200,38400,57600,115200d.奇偶校验:0=无校验;1=奇校验;2=偶校验e.端口:0=CPU中集成的 RS-485,1=可选信号板上的RS-485 或 RS-232。
f.延时:附加字符间延时,缺省值为0g.最大I/Q位:参与通信的最大I/O点数,S7-200 SMART 的I/O映像区为256/256(目前只能最多连接4个扩展模块,因此目前最多I/O点数为188/188)h.最大AI字数:参与通信的最大AI通道数,最多56个i.最大保持寄存器区:参与通信的V存储区字(VW)j.保持寄存器区起始地址:以&VBx指定(间接寻址方式)k.初始化完成标志:成功初始化后置1l.初始化错误代码m.Modbus执行:通信中时置1,无 Modbus 通信活动时为 0。
n.错误代码:0=无错误3.在CPU的V数据区中分配库指令数据区(Library Memory)Modbus Slave 指令库需要一个781个字节的全局 V 存储区。
配合西门子SMART_200 MODBUS例程
RW:当RW=0执行读操作,当RW=1执行写操作
Addr:起始MODBUS地址,400001+从站寄存器地址。例如0x6040=24640,写入数据424641。
错误输出(Error):包含指令执行的结果。另请参见Modbus RTU主站执行错误代码。
示例程序
详细请参考MODBUS例程
通信参数设置
从站参数:数据位8,停止位1,无奇偶校验,波特率根据实际需求调整。
写入数据
当启用标志V500.0接通时,该指令会给MODBUS从站1写入数据,以从站地址24640=0x6040为起始地址,写入VB1000-VB1011中的数据。
参数超时(Timeout):设为等待从站做出响应的毫秒数。“超时”(Timeout)值可以设置为1 ms到32767 ms之间的任何值。典型值是1000 ms (1 s)。“超时”(Timeout)参数应设置得足够大,以便从站设备有时间在所选的波特率下做出响应。
“超时”(Timeout)参数用于确定Modbus从站设备是否对请求做出响应。“超时”(Timeout)值决定着Modbus主站设备在发送请求的最后一个字符后等待出现响应的第一个字符的时长。如果在超时时间内至少收到一个响应字符,则Modbus主站将接收Modbus从站设备的整个响应。
VD、ID、QD、MD、SD、SMD、LD、AC、常数、*VD、*AC、*LD
Count
INT
VW、IW、QW、MW、SW、SMW、LW、AC、常数、*VD、*AC、*LD
西门子smart200通过modbusRTU与绝对值编码器通信
西门子smart200通过modbusRTU与绝对值编码器通信硬件预备1、西门子plc(smart200)2、肯定值编码器3、装有STEP7-MicroWIN SMART软件的电脑4、网线1、进入编程软件2、首先需要选好PLC型号3、接下来编程插入指令:4、给MODBUS指令安排库寄存器5、编译、下载,可以在状态图表里监控VD200数据PLC读到的编码器数据存放在VD200里注:这里的编码器值是长度值还是角度值需要可以通过easyPro软件来设定假如是角度值需要除以100,有2位小数点与西门子smart 200 连接的编码器是GAX60 R13/12E10LB该编码器有强大的EasyPRO?软件设置功能,设置功能和参数如下:1、测量功能,能选择有:角度测量、长度测量、速度测量,出厂默认的是长度模式。
2、长度测量模式和角度测量模式相比,多了“每圈对应的测量值”填充框,可以对圈进步行设置。
3、速度测量模式可以对输出速度模拟量进行设置,如图最小转速0时输出4mA,最大转速1440转/分钟时输出20mA,假设当前转速是720转/分钟时则输出是12mA,以此类推。
4、正转方向选择顺时针:面对编码器转轴端面,顺时针旋转,编码器数值增大。
出厂默认值是顺时针。
逆时针:面对编码器转轴端面,逆时针旋转,编码器数值增大。
5、循环、往复测量模式循环测量模式:编码器转轴,转到最大值时,数据从0 开头循环输出。
数据输出形式如下:角度测量模式:0--90--180--270--360(0)--90-180--270-360......长度测量模式:0-1024-2048-4096(0)--1024---2048----4096.....往复测量模式:编码器转轴,旋转至(4-20 毫安)最大值时或者最小值的,数据固定不变。
出厂默认是往复测量模式数据输出形式如下:角度测量模式:0--90° --180° --270° --360° ,连续旋转编码器转轴,数字没有变化,保持在360)。
S7-200Smart通过Modbus RTU通信实现V90内部位置控制的MDI功能
S7-200Smart通过Modbus RTU通信实现V90内部位置控制的MDI功能SINAMICS V90固件版本1.05以上开始,伺服驱动器提供了Modbus RTU 通信功能。
PLC可以通过Modbus 的FC3及FC6功能代码读取或写入伺服驱动的寄存器,S7-200 Smart可通过标准的Modbus功能块完成发送伺服驱动器的控制指令及读写驱动的参数。
本文详细描述了S-200 SMART PLC 通过Modbus RTU 通信连接SINAMICS V90实现内部位置的MDI功能。
目录1 概述2 必备条件2.1 使用的硬件2.2 使用的软件2.3 通信连接3 通过Modbus通信实现V90内部位置控制的MDI功能3.1 V90 Modbus 寄存器说明3.2 V90参数设置3.3 PLC的编程1概述SINAMICS V90固件版本1.05以上开始,伺服驱动器提供了Modbus RTU 通信功能。
PLC可以通过Modbus 的FC3及FC6功能代码读取或写入伺服驱动的寄存器,S7-200 Smart可通过标准的Modbus功能块完成发送伺服驱动器的控制指令及读写驱动的参数。
本文详细描述了S-200 SMART PLC 通过Modbus RTU 通信连接SINAMICS V90实现内部位置的MDI功能。
表2-1使用的硬件表2-2使用的软件2.3通信连接SINAMICS V90 伺服驱动通过RS485 电缆与PLC 连接,使用标准Modbus 通信协议进行通讯。
通过Modbus PLC给V90发送伺服使能和停止命令并且可以读取伺服驱动器的状态及故障代码。
SINAMICS V90 伺服驱动通过RS485 接口(X12)使用MODBUS 协议与PLC RS485(端口0)进行通讯,接线如图2-1所示。
图2-1 S7-200 SMART CPU 与V90通讯线连接3通过Modbus通信实现V90内部位置控制的MDI 功能3.1V90 Modbus 寄存器说明V90内部控制的控制数据寄存器如表3-1所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通讯材料:1)、PLC2台,分别是200SMART 的CR60和SR20;2)、2个DP插头(6ES7972-0BX12-0XA0)3)、连接导线若干(plc电源及通讯)
验证内容:令:CR60PLC为主站,发送PLC系统时钟(8个字节的信息)给SR20从站;SR20从站发送一个双字的循环移位数据给主站,并由通讯数据VD100接收输出到QD0。
主站程序:
在验证过程中曾经出现一个错误,使MSG指令始终显示为6,表示从站无响应。
我验证时,由于连接2台plc之间的3+、8-没有确认,造成接线错误,使MSG的error错误信息为6,检查后找到原因,重新接线后仍然报警6。
最后检查为控制程序不完整,主要原因是没有给MB0一个初始化操作,造成错误值没有得到有效的刷新。
于是,在程序段1中加入初始化操作得到解决。
主站MSG指令主要理解Addr地址的应用,下面有描述。
从站程序:从站通讯地址设置为1#
从站自VB31开始为读取主站VB11开始的8个字节主站系统时钟数据,指定VB31的起始地址是由Addr地址40011定义的,从站循环指令VD11运行结果,将由Mbus_init的Holdstart 定义的起始地址发送和接收。
编写小结:自简而深进行编写Modbus RTU通讯程序,相对从站通讯程序比较简单,仅仅只是指定通讯种类由
Mbus_init
管脚指定maxIQ/maxAI/maxHOLD/Holdstart定义,其它管脚根据主站定义匹配进行,相对主站需要根据从站地址偏移量来确定。
通讯数据:
Modbus通讯程序相对的难点是通讯映射的地址关系。
主站读取从站的数据,起始地址是根据从站Holdstart管脚定义的起始地址开始算,而不是指从站的V区物理地址。
在验证程序中,从站的Mbus_init起始地址为VB11,那么,主站MSG指令的Addr 40001,应该是指从站的VB11地址。
同理,从站读取主站系统时钟,主站的MSG指令的Addr 40011,对应到从站的地址相当于偏移了10个字(偏移量10word + 11byte = 31byte),即为VB31开始的8个字节中存放,Modbus通讯地址计算是40001开始的。