回复:很菜的问题,csc校验码的计算?

Laohuai

  • 帖子

    6046
  • 精华

    18
  • 被关注

    71

论坛等级:至圣

注册时间:2004-10-11

普通 普通 如何晋级?

发布于 2011-04-30 13:05:52

9楼




首先把modbus协议搞明白,modbus协议具体到S7 200PLC是这样的:

功能1:读单个或多个数字量输出Q状态。

功能2:读单个或多个数字量输入I状态。

功能3:读单个或多个保持寄存器V。

功能4:读单个或多个模拟量输入寄存器AI。

功能5:写单个数字量输出Q。

功能6:写单个保持寄存器V。

功能15:写多个数字量输出Q。

功能16:写多个保持寄存器V。

以上功能涉及到4个地址:I Q AI和V,具体到modbus地址如下所示:

00001 - 09999:Q
10001 - 19999:I
30001 - 39999:AI
40001 - 49999:V

所以modbus地址加上是读还是写就可以确定功能码。


但数据在传输过程中,地址不是上述形式,实际发送的数据帧里反而包括功能码和直接地址。比如在上述的例子里的数据块就可以看到。
比如:某个从站设备地址设定为4,模拟量地址0为温度1,模拟量地址1为温度2,模拟量地址2为温度3,模拟量地址3为温度4,而我要读取这4个温度值,那么我直接发送以下8字节数据:16#04, 16#04, 16#0, 16#0, 16#0, 16#04, 16#F1, 16#9C,对方即将4个温度值传送给我,但是如果用modbus主站库来写,就这样这样:
RW=0
ADDR=30001
COUNT=4
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33297条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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