求助关于Modbus通讯协议编程问题!! 点击:2342 | 回复:13



sanleo

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2008年12月24日
发表于:2008-12-25 16:49:06
楼主

各位大虾,小女子遇到一道题目如下,要实现“ModBus通讯规约点表”点表的数据采集下载,即编写通讯程序读取点表数据。给出设计的流程图,写出代码实现的过程(编程语言不限)
偶是新手,以前没遇见过这方面的题目,请各位大虾帮帮忙,谢谢程序,或者指点一二,小女子在此谢谢!

“ModBus通讯规约点表”内容如下:

MODBUS通讯协议:
智能MCC控制保护装置提供了标准的RS-485通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。
通讯数据的类型及格式:
信息传输为异步方式,并以字节为单位。在主站和从站之间传递的通讯信息是11位的字格式:

字格式(串行数据)      11位二进制
           起始位                       1位
           数据位                       8位
       奇偶校验位                   1位:偶校验位
            停止位                      1位: 
             波特率                     9600
● 通讯数据(信息帧)格式
数据格式: 地址码      功能码       数据区         错误校检
数据长度:   1字节        1字节        N字节       16位CRC码(冗余循环码)

★ 注:1、1个字节由8位二进制数组成(既8 bit)。
             2、ModBus是Modicon公司的注册商标。
             3、“从机”在本文件中既为智能MCC控制保护装置。

一、通讯信息传输过程:

当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。如果CRC校验出错就不返回任何信息。

1.1 地址码:

地址码是每次通讯信息帧的第一字节(8位),从1到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。当从机回送信息时,回送数据均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。相应的地址码表明该信息来自于何处。
智能MCC控制保护装置地址的设定方法:
进入设置定值状态(详见使用手册),按“选择”键,当功能码为“P-”时
按“加”、“减”键改变地址,按“确认”键后,执行存储返回。(详见使用手册)
1.2 功能码:
是每次通讯信息帧传送的第二个字节。ModBus通讯规约可定义的功能码为1到127。智能MCC控制保护装置仅用到其中的一部分功能码。作为主机请求发送,通过功能码告诉从机应执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。

 
表8.1 MODBUS部分功能码 
功能码                              定 义                               操 作(二进制)
02                                 读开关量输入           读取一路或多路开关量状态输入数据
01                                 读开关量输出           读取一路或多路开关量输出状态数据
04                                 读输入寄存器  &




yjd159

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 312回
  • 年度积分:0
  • 历史总积分:417
  • 注册:2007年3月03日
发表于:2009-01-06 16:56:34
1楼
你要问他是modbus里的哪种。。。 modbus rtu modbus asc modbus tcp/ip 其中一般用的是1,3 知道了哪种后要做的就是格式化输入输出流的问题了,很简单

笨笨猫

  • 精华:1帖
  • 求助:3帖
  • 帖子:70帖 | 1517回
  • 年度积分:0
  • 历史总积分:2257
  • 注册:2008年6月15日
发表于:2009-01-07 22:16:32
2楼

刚接触这个东东,正在学习呢,呵呵,不能替你分忧了啊,不好意思,看看高手的解答吧,呵呵。

expressme

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2009年1月08日
发表于:2009-01-09 10:01:17
3楼

正在看协议,期待高手解决!呵呵!!

hub_

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 157回
  • 年度积分:0
  • 历史总积分:563
  • 注册:2006年12月26日
发表于:2009-01-12 10:57:27
4楼

我前几天也刚做了个和你类似的项目,不知道能否对你有些帮助,首先我想知道你用的什么作为主站?

contrlsos

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 22回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2001年6月17日
发表于:2009-04-11 21:12:14
5楼

我也正在做。用CP341的485做主站,能帮助我吗?要实现的功能码有03,04,05

中原龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 831回
  • 年度积分:0
  • 历史总积分:1291
  • 注册:2007年7月09日
发表于:2009-05-18 15:14:18
6楼
学习中。                         

zhangpf5365

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 22回
  • 年度积分:0
  • 历史总积分:85
  • 注册:2006年4月12日
发表于:2009-07-15 11:11:46
7楼
好好学习,天天进步。。。。。。。

alb

  • 精华:0帖
  • 求助:8帖
  • 帖子:90帖 | 1393回
  • 年度积分:13
  • 历史总积分:9574
  • 注册:2007年3月01日
发表于:2009-07-15 11:17:08
8楼

我们这有人用单片机做主站,与变频器通信,估计是这个东西

weikong32

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 77回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2009年5月03日
发表于:2009-07-22 13:06:00
9楼

应该是属于modbus RTU  吧   ,ASC模式下消息帧要有:为起始符 ASC(0D) ASC(0A)做为结束符,  而本例中没有提到这些

meibo123

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 33回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2009年7月22日
发表于:2009-07-23 15:24:29
10楼
出售西门子PLC编程电缆/PLC锂电池/PROFIBUS 总线连接器/总线电缆/CP5611卡Q:1048811647

yinxunchao

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2009年8月01日
发表于:2009-08-16 16:21:50
11楼

大哥们,小弟刚刚接触这些东西!

请问一下奇偶校验是这么回事吗?

奇偶校验是在传送字符的各位之外,再传送1位奇/偶校验位。
奇校验就是所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数。偶校验就是“1”的个数为偶数啦。接收时看1的个数是否符合设定的校验,可以判断是否有误码。

奇偶校验只能检错,不能纠错的。而且只能检测1位误码,检测出有错后只能要求重发,没法纠正的。

chenxiaohui033

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 49回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2006年6月23日
发表于:2009-09-03 09:55:50
12楼
我刚做了一个,s7-200做主站,自己写的指令,只支持功能码3和4.昨天刚测试过,很好用。

jxjxjxjxruian

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:222
  • 注册:2008年3月03日
发表于:2010-07-11 16:47:51
13楼

modbus rtu 模式消息帧

(至少3.5字符间隔 地址码——  功能码——   数据个数——  数据——  校验码——  至少3.5字符间隔)


热门招聘
相关主题

官方公众号

智造工程师