回复:那位朋友手头也有CP341(RS485)以及MODBUS_MASTER硬件狗能否帮忙做个实验并解答我的问题??

工作真累

  • 帖子

    59
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2008-03-12

普通 普通 如何晋级?

发布于 2008-09-05 22:11:43

0楼


LEN是源数据块(例如DB1的数据长度),但不是CP341实际发送的MODBUS查询帧代码的长度。DB1.DBW4是真正控制实际发送数据长度的参数。

例: DB1保持同样数字,仅仅是DB1.DBW4变化,CP341发送的查询帧发生变化。
下面两行代码是DB1基本保持同样内容的数字(18个BYTE),仅仅是DB1.DBW4变化,CP341发送了不同长度的查询帧。
LEN=18,DB1.DBW4=6。CP341发送的查询帧:
02 10 00 00 00 06 0C 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F DC 7D
LEN=18,DB1.DBW4=3 。CP341发送的查询帧:
02 10 00 00 00 03 06 00 0A 00 0B 00 0C 0A 85

这段话有点问题
关于LEN:HELP原文是这样的:Data length of frame to be sent,frame是结构,我的理解就是soures(bytes)DB1的长度。所以才有FC15,FC16 LEN>6,而其他FC=6的情况.你前面FC16做不通,就是LEN长度不对,不是吗?
你最后的两个报文也有问题。LEN=18不变,你的Function code 10(H)应该是16吧,FC16的LEN长度根据写寄存器数量不同LEN长度肯定不同,不知道LEN=18一直不变是如何做通的。
感觉有点矛盾,真的有点迷惑。
FC16我下午刚做通,LEN=DB的长度。用ssmcom32能正确看到我的报文。相对于 source DB 只多了byte conter和CRC
最近被MODBUS搞的有点烦
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。