[西门子] 西门子S7-200 SMART如何与变频器进行MODBUS-RTU通信,干货值得...

[复制链接]
查看144 | 回复0 | 2024-7-10 11:03:15 | 显示全部楼层 |阅读模式
>
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,具体参考程序:(本例程中除了变频器外,还有多个从站的轮询)




























免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

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

本版积分规则