最近小弟想学习 用VB和modbus的产品进行通讯方面的学习,
想要一个ModbusPoll程序,能作客户端用,
我用485通信截了断通信(是一个不知何厂家的温湿度仪)
客户端发送的是“19 04 00 00 00 02 72 13 ” 
温湿度仪返回的是“19 04 04 00 AD 01 9D 32 5D
19 04 04 00 AD 01 9D 32 5D
19 04 04 00 AD 01 9F B3 9C
19 04 04 00 AC 01 A0 A2 4C
19 04 04 00 AC 01 A2 23 8D
19 04 04 00 AC 01 A2 23 8D
19 04 04 00 AC 01 A2 23 8D”
按里说,第一位是地址。但有19,那是通过TCP发过来的,那第二位才是地址了,不懂,所以,请教大家
谢!

解决方案 »

  1.   

    http://download.csdn.net/detail/veron_04/2130863
      

  2.   

    modbus,我知道功能号01,02,03,05,06,08,0F,10H,04的功能号没有见过
      

  3.   

    我想,19应该是用TCP方式的一种型式,温湿度仪收到这个就原样返回,
    19后面跟的04应该就是仪表地址了,发送的最后两位应该是CRC。仪表返回的最后两位也是CRC。
    仪表返回的第二个04,我想应该表示的后面跟的数据字节个数。
    但发送端“00 00 02”这里好像少了点什么,不理解,请教了!
      

  4.   

    如果是Modbus
    01,02,03功能号:
    1B:目标机器地址
    2B:功能号
    3B: 目标地址高字节(机器内的地址)
    4B:目标地址低字节
    5B:读出数量高字节
    6B:读出数量低字节
    7B:CRC16 Lo
    8B:CRC16 Hi05,06功能号:
    1B:目标机器地址
    2B:功能号
    3B: 目标地址高字节(机器内的地址)
    4B:目标地址低字节
    5B/6B:FF00/0(05功能取值),数据高低字节7B:CRC16 Lo
    8B:CRC16 Hi08功能号0F,10H功能号:
    01,02,03功能号:
    1B:目标机器地址
    2B:功能号
    3B: 目标地址高字节(机器内的地址)
    4B:目标地址低字节
    5B:读出数量高字节
    6B:读出数量低字节
    7B:数据字节数
    8B:数据1 高字节
    9B:数据1 低字节
    10B:数据2 高字节
    11B:数据3 低字节
    。nB:crc Lo
    n+1B:crc Hi别的功能号的格式,我就不知道了
      

  5.   

    如果是Modbus
    01,02,03功能号:
    1B:目标机器地址
    2B:功能号
    3B: 目标地址高字节(机器内的地址)
    4B:目标地址低字节
    5B:读出数量高字节
    6B:读出数量低字节
    7B:CRC16 Lo
    8B:CRC16 Hi05,06功能号:
    1B:目标机器地址
    2B:功能号
    3B: 目标地址高字节(机器内的地址)
    4B:目标地址低字节
    5B/6B:FF00/0(05功能取值),数据高低字节7B:CRC16 Lo
    8B:CRC16 Hi08功能号0F,10H功能号:
    01,02,03功能号:
    1B:目标机器地址
    2B:功能号
    3B: 目标地址高字节(机器内的地址)
    4B:目标地址低字节
    5B:读出数量高字节
    6B:读出数量低字节
    7B:数据字节数
    8B:数据1 高字节
    9B:数据1 低字节
    10B:数据2 高字节
    11B:数据3 低字节
    。nB:crc Lo
    n+1B:crc Hi别的功能号的格式,我就不知道了