各位大虾,小女子遇到一道题目如下,要实现“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 读输入寄存器 &