欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 机电一体化论文

智能开关柜操控装置Modbus-RTU通讯协议的设计_上位机-论文网

时间:2014-07-11  作者:刘生辉,王克英,廖颜深
对于相关系统和设备的调研表明,传统协议区分内部量和外部量的做法完全不适合于智能配电系统。因此本仪表采用兼容设计方案,不区分内部模拟量和外部模拟量,功能码03H和04H通用。同时,为了提高数据传输效率,本协议把每16位二进制开关输入量组织成为一个字寄存器,并使之与模拟量或系统参数的读取采用相同的功能码。

即功能码03H或04H为读寄存器,此功能允许主机获得仪表采集的模拟量数据、开关量数据以及系统参数。读寄存器个数不能超出允许地址范围。Modbus通讯规约允许主机一次请求的最大寄存器个数为60个。

功能码10H为写寄存器,主机利用此功能将数据(或系统参数)保存到仪表的寄存器。要求写入的寄存器必须可写,个数不能超出允许地址范围。Modbus通讯规约允许一次最多保存60个寄存器。同样,开关量输出、模拟量输出和系统参数的保存均采用相同的功能码,但每个开关量寄存器只控制一个开关设备以提高遥控可靠性。

1.3.3数据区

数据区随功能码不同而不同。

功能码03H/04H(读寄存器)的主机命令数据区包含要读取寄存器的起始地址(2个字节)及读取长度(2个字节),从机应答数据区包含数据字节量(1个字节)以及数据列表。

功能码10H(写寄存器)的主机命令数据区包含要写入寄存器的起始地址(2个字节)、写入长度(2个字节)以及写入数据列表,从机应答数据区包含写入寄存器的起始地址以及写入长度。

1.3.4校验码

校验码用于主机或从机判断接收到的数据是否出错,使系统通讯更可靠。Modbus-RTU协议采用CRC-16(16位循环冗余校验码)校验方法,包含16位二进制。CRC校验码由发送端计算,放置于发送信息的尾部。接收端重新计算接收到的信息的校验码,并与接收到的校验码相比较,如果二者不相符,则表明通讯出错。

CRC-16校验码的计算方法:

(1)预置16位寄存器全为1,即寄存器CRC=0FFFFH;

(2)把8位数据信息与CRC码的低8位数据进行异或,送回CRC寄存器;

(3)计算结果向右移一位,用0填补最高位;

(4)如果移出位为1,把CRC寄存器的内容与预置数(0A001H)相异或,如果移出位为0,不进行异或运算;

(5)重复第三步和第四步直到移位8次,处理完成一个字节;

(6)重复第二步至第五步直到所有字节处理结束。

2寄存器地址分配及出错处理

2.1寄存器地址分配

功能码采取简化兼容设计方案以后,寄存器的地址分配非常重要。根据开关柜运行和操作实际,把寄存器地址分为以下四类,其中每个寄存器存储16位二进制数。

地址0000H~00FFH为系统参数区,寄存器可读可写。内容主要包括仪表参数设置密码、加热控制上限、加热控制下限、湿度控制上限、湿度控制下限、排风控制上限、排风控制下限、仪表Modbus通讯地址和RS485通讯波特率选择等。

如果主机把数据(1~247)写入从机仪表通讯地址寄存器,从机正确执行该指令以后将以新的从机地址进行应答;如果主机把数据(0~4)写入从机波特率选择寄存器(0代表1200波特、1代表2400波特、2代表4800波特、3代表9600波特、4代表19200波特),从机正确执行该指令以后将以新的波特率进行应答。

地址0100H~01FFH为运行参数区,寄存器只可读取,不能写入。内容主要包括三相电压有效值及平均值、三相电流有效值及平均值、三相有功功率及总和、三相无功功率及总和、三相视在功率及总和、三相功率因数及总功率因数(定义为总有功功率与总视在功率之比)、频率、电能数据等电气参数,1#和2#温湿度传感器的温度和湿度测量值等非电气参数,以及开关量状态指示、高压带电指示、面板按键指示和加热状态指示等开关量参数。

地址0200H~02FFH为控制信息区,寄存器只可写入。内容包括断路器远方操控、远方强制排风降温、远方强制加热/排风除湿等控制功能。

地址0500H~05FFH为厂家保留区,用于标识仪表类别、型号以及仪表测试。

2.2出错处理

当仪表检测到了校验码出错以外的错误时,将向主机回送信息,功能码的最高位置为1,即从机返送给主机的功能码是在主机发送的功能码的基础上加128。从机返回的错误信息帧格式如表3所示。

表3从机返回的错误信息帧

Tab.3Errorinformationframeformslave

地址码

功能码

(最高位为1)

错误码

校验码

1字节

1字节

1字节

2字节

其中错误码定义如下:

01H—非法的功能码,表示接收到的功能码仪表不支持;

02H—非法的寄存器地址,表示接收到的寄存器地址超出仪表的范围;

03H—非法的数据值,表示接收到的数据值超出仪表允许的数值范围。

3通讯协议的上位机程序设计

VC++6.0程序设计语言有专门基于串口程序设计的MScomm控件。使用MScomm的查询法实现串口通信,具体设计步骤如下:

(1)初始化串口:用Settings设置串口参数,包括串口选择,波特率、数据位、奇偶校验位和停止位;

(2)读取运行参数:用SetCommPort打开串口,产生OnComm事件,定时器SetTimer每隔1秒产生OnTimer事件,发出一系列读取命令读取全部运行参数。

查看相关论文专题
加入收藏  打印本文
上一篇论文:高真空退火炉模糊自适应温度控制器的研究_模糊控制-论文网
下一篇论文:智能密度测量仪的研制_压力传感器-论文网
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关机电一体化论文
最新机电一体化论文
读者推荐的机电一体化论文