一台SR40和变频器MODBUS通讯,变频器说明书里给出的控制字地址是1E00,我换算成十进制是7680,再加上40001就是47681,这个47681(已经填到MSG的ADD管脚)就是变频器最终的控制命令字地址吗?顺便说一下我按照这个思路可以读取温控表的数值,但是给变频器发命令就是没反应,难道是地址计算错了?变频器是通讯参数设置检查没问题,启动命令源设置成由通讯控制,如果不是地址计算问题大概还有哪里没设置对?请老师指教!
最佳答案
1、控制字地址是1E00,我换算成十进制是7680,再加上40001就是47681,方法是对的;
你可以试着将地址偏移一下,比如 47680 或者47682;
如果有条件,用MODSCAN32进行测试确定其地址。
2、另外向保持寄存器写控制字,要仔细看变频器的说明书,控制字是什么值。能不能读回来,进行确认。
3、变频器启停方式要设为MODBUS RTU 方式,波特率与通讯口的一致,数据位必须是8位,校验方式也要一致、停止位必须是1位。
4、频率给定是什么方式?,如果不是MODBUS RTU通讯给定,先给定一个小一点的频率;
如果是通讯给定,给定是怎样标定的,给定的值又怎样对应变频器的频率,那还要进行换算的。比如有些变频是0 对应 0.0HZ,4000H 即16384(十进制)对应的是 50HZ。
5、MODBUS RTU主站程序一定要做成轮 循的。
6、关于编程方面可参考
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279815.html