关于ModBus!

wangtao2003new 2004-01-02 03:38:12
关于ModBus!经理让我用ModBus作串口,并给了一堆ModBus的英文资料让我看,看不懂,谁能给我资料啊!最好有这方面的例子!谢谢!
...全文
359 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangtao2003new 2004-01-12
  • 打赏
  • 举报
回复
晕~~~~~~~~~~~~~~~~~~~
azmao 2004-01-12
  • 打赏
  • 举报
回复
收到了,正在学习中...
wangtao2003new 2004-01-10
  • 打赏
  • 举报
回复
To:: azmao(azmao)

??????????????????
azmao 2004-01-09
  • 打赏
  • 举报
回复
不好意思。我没搞过ModBus /tcp/ip。你把英文资料寄给我好吧?
我是做仪表的,没有研究以太网传输。
wangtao2003new 2004-01-09
  • 打赏
  • 举报
回复
To:azmao(azmao)
非常感谢,我现在基本上将modbus在串口下传输的两种模式搞清楚了,现在我在看ModBus /tcp/ip
这块,好象比较难懂!!我前天做程序的时候做不下去了,所以用了两天时间仔细将英文的原版资料看了一下。所以没有来看真不好意思!麻烦你能不能将ModBus /tcp/ip这块的中文资料让我看看?
谢谢你!!!!!!

我这个号上就剩下30分了再加给你,不够了在用我的马甲给你加分 呵呵!!谢谢了!
wangtao2003new 2004-01-09
  • 打赏
  • 举报
回复
TO: azmao(azmao)
已经发过去了!
azmao 2004-01-09
  • 打赏
  • 举报
回复
xuruianhome@msn.com
wangtao2003new 2004-01-09
  • 打赏
  • 举报
回复
TO: azmao(azmao)
email?
azmao 2004-01-07
  • 打赏
  • 举报
回复
一两句话说不清楚,可以这样认为。在主机和从机各有一块存储器,分成两种类型:bit、byte。存储器的内容分别表示变送器的各种参数。modbus协议只是对这块存储器进行操作。
azmao 2004-01-07
  • 打赏
  • 举报
回复
对于ASCII模式:
1、判断冒号符(:)
2、判断地址
3、判断结尾符回车符(CR)和换行符(LF)
一切ok在判断数据栏和LRC。
解析功能代码和数据域并执行command,执行正确——继续,否——return error(给主机);
5、给主机返回执行结果
azmao 2004-01-07
  • 打赏
  • 举报
回复
3.1 ASCII模式消息帧
在ASCII模式,每个消息帧都包括一个起始符、一个地址栏、一个功能栏、一个数据栏、一个校验栏和一个结束符。
冒号符(:)作为起始符,回车符(CR)和换行符(LF)是结束符。
ASCII模式允许在两个字符之间有最长1秒的时间间隔。
下图举例说明一个ASCII模式消息帧:

3.2 RTU模式消息帧
在RTU模式,每个消息帧都包括一个地址栏、一个功能栏、一个数据栏和一个校验栏。
一帧消息传送完毕后,必须等待可发送3½个字符的时间,这一时间间隔用来同步MODBUS RTU通讯。
下图举例说明一个RTU模式消息帧:

azmao 2004-01-07
  • 打赏
  • 举报
回复
主控制器可以发出查询帧和广播帧。查询帧对应一个来自网络设备的响应帧。广播帧通知所有设备,不需要响应。每一帧均有一个地址栏、一个功能栏、一个数据栏和一个校验栏。

地址栏 功能栏 数据栏 校验栏

例如请求读17号从机寄存器40108-40110的状态
查询帧
区域名 数值(十六进制)
从机地址 11
功能码 03
起始地址高 00
起始地址低 6B
卷个数高 00
卷个数低 03
校验(LRC或CRC) -
响应帧
区域名 数值(十六进制)
从机地址 11
功能码 03
字节数 06
数据高(寄存器40108) 02
数据低(寄存器40108) 2B
数据高(寄存器40109) 00
数据低(寄存器40109) 00
数据高(寄存器40110) 00
数据低(寄存器40110) 64
校验(LRC或CRC) -

wangtao2003new 2004-01-07
  • 打赏
  • 举报
回复
我现在是在做仿真程序,现在如果我作为从机方,我要判断主机发送来的命令并且执行,如果我是主机方,我要判断从机回传来的消息,我的大概思路是这样的,不知道对不对,请指点:(以ACSII为例)
从机方:
1、判断接收到的字符是否为3AH,若是则进行下一步;
2、判断地址域是否发给自己,若是——继续,否——return;
3、判断LRC校验是否正确,正确——继续,否——return error(给主机);
4、解析功能代码和数据域并执行command,执行正确——继续,否——return error(给主机);
5、给主机返回执行结果。

请问这样可以吗?
在主机方,接收来自从机方的返回执行结果的时候,我要不要LRC校验?应该在什么时候?
wangtao2003new 2004-01-06
  • 打赏
  • 举报
回复
To:azmao(azmao)
谢谢你的提示,可是我没有做过仪表变送器之类的东西,而且对这些真的不懂,你能不能说的详细一点,最好能给我个例子或者源码之类的,在这先谢谢了!
azmao 2004-01-06
  • 打赏
  • 举报
回复
模拟一台仪表变送器,例如温度变送器。自己定义几个COIL和寄存器,代表温度等。显示出来。试验主机读从机的信息并显示出来。主机写信息到从机,从机显示出来。
wangtao2003new 2004-01-05
  • 打赏
  • 举报
回复
如果我只是考虑主机方的话,我好象只要按照协议的规定将命令发给从机就行了,这好象太.....呵呵,是不是太简单了点吧。(我对这些不是太懂,希望大家勿笑话我)谢谢!
wangtao2003new 2004-01-05
  • 打赏
  • 举报
回复
To:: billhuang1118(劲风飞扬)
谢谢你,这些我懂。因为我是今年刚毕业的,所以我想多学点东西,经理让我现在看这个东西,很快就要让我用这个协议来做东西了,一般都是给我几天时间看协议和文档,然后就开始做东西了,我想把主从机都了解一下,到时候做东西不至于太盲目,我想我最好是不是该自己做一个从机的仿真软件呢???
billhuang1118 2004-01-05
  • 打赏
  • 举报
回复
MODBUS分为主机方和从机方,采用的是查询方式,即主机发送命令给从机,从机才返回数据给从机。你如果是做主机的协议不用管从机方,因为返回的数据格式一定是标准MODBUS。
wangtao2003new 2004-01-05
  • 打赏
  • 举报
回复
To: billhuang1118(劲风飞扬)
很不好意思,经理就让我研究ModBUs至于从机我真的不太懂!我也不知道去用哪些从机了!
wangtao2003new 2004-01-05
  • 打赏
  • 举报
回复
To: azmao(azmao)
这个我懂,现在我的问题是编写一个什么样的从机程序,在ModBus协议里有很多的功能码,我想模拟一下。对于一台计算机我去读什么比较合适,在这里我还是不太懂的。
加载更多回复(20)

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧