pc与触摸屏modbus通讯问题 点击:483 | 回复:3



iarsenal

    
发表于:2012-06-27 10:34:01
楼主

在做PC与触摸屏通过MODBUS传输数据,PC做主站,触摸屏做从站。

主站的程序是用C语言自己写的,但遇到一个问题请教大家。我要把PC上的数据传给触摸屏显示,但在我自己PC上写的程序里请求帧里的modbus地址该怎么写那?比如我要把数据传给触目屏的modbus地址40002,那我在程序里写40002还是写0001那?



楼主最近还看过



yexiaomeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 181回
  • 年度积分:0
  • 历史总积分:731
  • 注册:2005年12月19日
发表于:2012-06-27 14:02:46
1楼

modbus有2种表示,一种是从0开始的地址(叫zero-base),一种是从1开始的。具体用什么样的看你在人机街面上选择的协议是什么 .如果没有什么明确的概念,有一个办法可以的,就是把人机接到PC上,用人机发指令,pc用串口调试器之类的软件捕捉总线的数据,一看到数据就明白了。这里也大致讲讲MODBUS协议。

数据格式: 从机号(字节),功能码(如0x03,0x06), 字节数,起始地址,起始数据,CRC校验。

一般的数据格式都与上面差不多,根据功能码的不同,数据少有不同。所谓4x,0x指的就是功能码的区别,你可以查看一下modbus的手册,4x,0x只是各个厂家自己的定义,并非modbus标准定义

iarsenal

  • 精华:0帖
  • 求助:14帖
  • 帖子:14帖 | 12回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2012年6月06日
发表于:2012-06-27 15:21:26
2楼

回复内容:
对:yexiaomeng关于modbus有2种表示,一种是从0开始的地址(叫zero-base),一种是从1开始的。具体用什么样的看你在人机街面上选择的协议是什么 .如果没有什么明确的概念,有一个办法可以的,就是把人机接到PC上,用人机发指令,pc用串口调试器之类的软件捕捉总线的数据,一看到数据就明白了。这里也大致讲讲MODBUS协议。数据格式: 从机号(字节),功能码(如0x03,0x06), 字节数,起始地址,起始数据,CRC校验。一般的数据格式都与上面差不多,根据功能码的不同,数据少有不同。所谓4x,0x指的就是功能码的区别,你可以查看一下modbus的手册,4x,0x只是各个厂家自己的定义,并非modbus标准定义内容的回复:


非常感谢你的回复

MODBUS协议我已经看过了,只是对于HITECH的屏的MODBUS协议不很清楚,看了HITECH的资料,里面的MODBUS地址有40001——41024,是不是我写HMI的寄存器的时候就可以直接用这些地址啊,或者有个简单的转换?比如我要往40002里写数据,在我自己的程序里的地址是否4002-4001=1这个地址?还是直接写4002?

yexiaomeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 181回
  • 年度积分:0
  • 历史总积分:731
  • 注册:2005年12月19日
发表于:2012-06-27 17:22:51
3楼

你大可以不管什么40什么,对于恒泰的人机,你所有的地址减40001就是你自己的协议要读写的地址。比如40002就是1。

SSI ļʱ