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,具体参考程序:(本例程中除了变频器外,还有多个从站的轮询)