modbus协议通信的命令是字符串还是数据流? 点击:3740 | 回复:6



ytytao

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 6回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2002年3月18日
发表于:2002-07-16 17:27:00
楼主
主机从机相互发送的那一行命令到底是一个比较长的字符串 还是把字符串内容放到一个数组里,向串口连续的写数组的数据? 多谢!



晨思

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 21回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2004年1月20日
发表于:2004-12-31 11:31:00
1楼
我也想知道这种问题,有没有人可以告诉的。谢谢了

zzhhforever

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 20回
  • 年度积分:0
  • 历史总积分:37
  • 注册:2006年3月05日
发表于:2006-04-04 19:11:00
2楼
我想应该是后者

oasys

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2006年6月17日
发表于:2012-02-07 09:32:35
3楼
是16进制字符串,1个字节一组用\x分开的

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 2176回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2012-02-07 09:36:06
4楼

对于Modbus RTU而言,选择数组。

因为字符串遇到0x0就结束了,你无法发出完整的报文。

东北电

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 261回
  • 年度积分:0
  • 历史总积分:689
  • 注册:2003年3月31日
发表于:2012-12-27 16:16:51
5楼

是字符串,在里面就有数据流的

飘渺无踪

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 36回
  • 年度积分:0
  • 历史总积分:83
  • 注册:2005年7月03日
发表于:2013-01-10 21:20:09
6楼

发送的是16进制字符,如国产信捷PLC通信采用Modbus协义,举例如下;

  //读出D4000 -D4040 内容
            data1【0】 = 0X01;//地址
            data1【1】 = 0X03;//读出指令
            data1【2】 = 0X0F;//地址_h
            data1【3】 = 0XA0;//地十_l
            data1【4】 = 0X00;//个数高位
            data1【5】 = 0X1F;//个数低位
            data1【6】 = 0X07;//CRC_L
            data1【7】 = 0X34;//CRC_H

然后发送到串口

com1.Write(data1, 0, data1.Length);

然后再接收

 labUpLimet.Text= Con16_10( recivData.Substring(6, 4));//D4000
                        labDwLimet.Text =  Con16_10(recivData.Substring(10, 4));//D4001
                        labzhengQuan.Text = Con16_10(recivData.Substring(14, 4));//D4002
                        labfanQuan.Text = Con16_10(recivData.Substring(18, 4));//D4003
                        //转速设定值(双字)
                        string speed_1 = CON_16_2(recivData.Substring(22, 4));//D4004 转速低位值
                        string speed_2 = CON_16_2(recivData.Substring(26, 4));//D4005 转速高位值
                        labSpeedPv.Text = con2_10( speed_2+speed_1);
                        //良品停机设定值 (双字) d4006

如还有疑问,可发送信息到本人邮箱;205072@163.com


热门招聘
相关主题

官方公众号

智造工程师