找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
假设要读取当前设定频率,变频器说明书上要求“主机发送” 01 01 00 01 91 D8(第一个数01为变频器地址,第二个为主机命令,第三个为辅助
索引,第四个为命令索引),然后“从机回应” 01 01 00 01 01 F4 6D DD(说明书没做说明前四位定义应该一样,第五、第六位是当前频率为
5HZ)。
我有几个问题不明白,请高手帮忙一一作答。
1、能否直接使用西门子的modbus rtu master协议库,与变频器通讯?
2、如果使用modbus rtu master协议库,子程序"MBUS_MSG"的“Addr”参数如何填写。变频器说明书没有给出从站的数据地址,请帮忙看
一下上面列出的“主机发送”,我该在“Addr”及“count”,对应什么数
3、设置的无校验,是不是“主机发送”的最后两个字节“91 D8”,不用发送
请高手指点下,在这里先谢谢了。尽量直接回答我的问题,不要粘贴资料,因为“找答案”内,有提供的资料,但我实在太笨,看好多遍看不懂。
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
楼上的几个不要忽悠楼主,如果楼主描述的没错的话,该通讯请求压根儿就不是标准的modbus请求格式。
modbus标准请求格式:
从站地址(1个字节)、功能代码(1个字节)、从站数据起始地址(2个字节)、读数据长度(2个字节)、CRC校验(2个字节)。
功能代码01代表:读单个线圈(0***地址)数据
而楼主说的变频器说明书上要求“主机发送” 01 01 00 01 91 D8(第一个数01为变频器地址,第二个为主机命令,第三个为辅助索引,第四个为命令索引),
1. 标准modbus协议的请求字节必须是8个,而楼主的只有6个字节,相当于没有CRC校验,如果没有CRC校验,通讯自动会把请求丢弃不处理,此时读不到任何数据。
2. 即便可能是楼主没有把CRC校验字节贴上来,但是功能代码代表读取开关量信息,读不到楼主需要的设定频率。
因此,楼主如果想与变频器通讯,根本不可能用modbus类库的功能块进行通讯,只能自己编写程序用自由口发送指令进行通讯。
楼主可以参考我以前写的《modbus通讯说明》
http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=3&a_id=849645&s_id=0&num=79#anch
http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0136.chm
中的例程。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!