S7-200 SMART CPU 自带一个 RS485 端口(端口0),标准型 CPU 额外支持 SB CM01 信号板(端口1),信号板可通过 STEP 7-Micro/WIN SMART 软件组态为 RS232 通信端口或 RS485 通信端口。本例程是以CPU自带的端口0为MODBUS主站,变频器为从站 的通信。
1,接线方式
CPU自带的端口定义:
注意,西门子的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,具体参考程序:(本例程中除了变频器外,还有多个从站的轮询)