登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:关于西门子modbus通信协议的理解

点击:3901 回复:15

[size=4]各位大师们好,本人近期在学西门子modbus通信协议时有不懂,烦劳各位大师帮忙解答,感激。问题就是关于通信协议主站中的Dataptr对应主站中的&vb2000的含义,40001与它下面的count的关系。还有从站里hoidst~对应的&vb2000的含义。
主站中count对应的数字1指的是不是从40001开始的1个字节《也就是16位》40001-40016?或者是指vb2000开始的16位?还有就是主站的vb2000和从站的vb2000有什么关系?一定要设置的一样吗?今天听课听的一团雾水,望各位老师解惑,谢谢[/size]附图
附件 主站.jpg
15-05-28 00:53
从站
附件 从站.jpg
15-05-28 00:54
EN 使能
Mode 协议选择 0=PPI, 1=MODBUS
Baud 传输速率 kbps 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Parity 校验选择 0=无校验, 1=奇校验, 2=偶校验
Timeout 从站的最长响应时间 ms
Done “完成”标志位
Error 错误代码
MBUS_MSG
参数 意义
EN 使能
First 读写请求位
Slave 从站地址
RW "读" 或 "写" 0=读, 1=写
Addr 读写从站的数据地址 0001 .. 00128 = 数字量输出 Q0.0 .. Q15.7
                               1001 .. 10128 = 数字量输入 I0.0 .. I15.7
                               30001 ..30032 = 模拟量输入 AIW0 .. AIW62
                               40001 .. 49999 = 保持寄存器 2
Count 位或字的个数 (0xxxx, 1xxxx) / words (3xxxx, 4xxxx)
DataPtr V存储区起始地址指针
Done '完成' 标志位
Error 错误代码
15-05-28 16:08
从站
MBUS_INIT
参数 意义
EN 使能
Mode 协议选择 0=PPI, 1=MODBUS
Addr 从站地址
Baud 传输速率 kbps 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Parity 奇偶校验 0=无校验, 1=奇校验, 2=偶校验
Delay 延时时间 ms
MaxIQ 最大数字输入输出点数
MaxAI 最大模拟量输入点数
MaxHold 最大保持寄存器字数量
HoldStart 保持寄存器区起始地址(40001)
Done 完成标志位
Error 错误代码
MBUS_SLAVE
参数 意义
EN 使能
Done 完成标志位
Error 错误代码
15-05-28 16:10
你上面的图例实际就是:以波特率=9600,把主站VW2000写到3号从站的VW2000里面去
15-05-28 16:16
是从40001开始的1个字《也就是16位》,1个字节是8位。
这个字就是40001,不是40001-40016  这就是16个字了。
楼主可以在软件打开帮助帮助  输入MBUS 看看这些的用法
“主站的vb2000和从站的vb2000有什么关系?一定要设置的一样吗?”
不一定设置一样的。
15-05-28 18:05
那下面的&vb2000呢?读写的数据不是先存入vb2000这个字节吗?
15-05-28 18:57
就是说主站写入的程序都先预存到vb2000,然后再写入从站的vb2000开始的寄存器吗?那这40001跟主站的vb2000有什么关系?
15-05-28 19:01
应该是先存到主站的VW2000中,再写到从站的VW2000,40001是地址,VW2000中存的是该地址中的信息,我也是初学者,这就是我的理解。
15-05-28 19:55
那vb2000跟40001什么关系呢?
15-05-28 21:48

上一页下一页

工控新闻

更多新闻资讯