[西门子] 西门子S7-200系列PLC的MODBUS通信功能(一)

[复制链接]
查看17388 | 回复0 | 2024-2-21 08:20:11 | 显示全部楼层 |阅读模式
点击上方“ 技成培训 ”,选择“置顶公众号”

11万+工控人关注的微信平台:技术分享、学习交流、工控视频




这段时间经常有学员问有关于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,则可以得出如下图所示的信息帧的格式



其他的命令的信息帧格式,参考变频器说明书,以相同的方式可以写出。

信息帧的格式出来后,PLC那边可以按照信息帧的格式准备数据发送给变频器,下一篇文章中,我主要讲讲PLC那边的用于发送这些数据的指令。

作者:曾鑫
本文已获得授权,转载请联系作者

来源微信号:我爱学PLC

分享老司机经验之谈!

点击阅读原文查看西门子PLC学习教程

↓↓↓

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则