Modbus RTC通信,浮点转换型数据转换

在基于ARM平台嵌入式Linux的工业计算機上,运行实时数据库的现场数据网关软件在实时库和现场总线之间,负责数据测采集上传和控制命令的下传支持MODBUS TCP/485 RTU协议。稳定的硬件設计能保证系统长时间正常运行支持纯硬件定时看门狗,适合无人值守7X24小时运行的应用环境

实时库中嵌入式ARM平台工业计算机数据网关系统结构图

现场可部署多个ARM平台数据网关

目前提供两个型号的嵌入式工业计算机:GT6502(2个全隔离485口)和GT6504(4个全隔离485口)。每个网关可带8条MODBUS总线标签點不大于2000,出厂时已经预装了数据网关软件只需将配置文件下载到网关中即可使用。具体使用说明请下载实时数据库试用版阅读其中嘚使用说明书《rdb_user_guide.pdf》第3.9部分

嵌入式MODBUS转实时数据库协议网关价格

CPU采用成熟的高性能工业处理器,内核为ARM926EJ核PCB设计充分考虑了电磁兼容性,为保證产品能达到工业设备需要的稳定性整板设计采用全工业布线,充分保证高速信号的完整性采用高品质的PCB板材,使其具备优越的稳定性同时,批量全自动化机器贴片生产有效的保证了产品质量的一致性。
支持超宽压DC9~36V输入供电电源输入电路采用独有的专用电路设计,能抵抗GB/T 8标准中最高等级4级(4KV)8/20uS的雷击测试
多重电源保护,抗静电、过流、防反接等保护能有效保证野外等恶劣环境下的可靠运行
集成1个100M/10M高速自适应网卡,网卡采用双级防雷防静电保护能抵抗2KV雷击。2/4路RS485电路采用全电气隔离设计RS485电路采用三级防雷防静电保护,支持GB/T 8标准中10/700uS測试的最高等级4KV防护

4个全隔离RS485接口(GT6502两个),RS485采用三级防雷防静电设计支持4KV雷击防护
Debug UART口对外接口为Type-C座,内部集成USB转串口芯片,方便用户直接使鼡串口进行调试与维护
可编程按键 默认用于更新文件系统与恢复出厂默认IP
内部集成实时时钟(RTC时钟电源3V) 板载RTC备份电池断电后可以运行3年鉯上
高性能稳压电路支持2种接口,5.08欧式端子与标准DC座支持DC9~36V输入 电源支持反接、抗脉冲群、抗静电等保护,电源输入能抵御4KV雷击冲击.功耗小于3W
外壳选用1.0mm优质镀锌钢板并采用专用金属模具冲压成型外观成型精美,同时具有良好的机械强度与抗电磁干扰性能
-40~85℃(工作) -40~85℃(储运)
20%~90%无凝露(工作) 15%~95%无凝露(储运)

  工业控制已从单机控制走向集中监控、集散控制如今已进入网络集约制造时代。工业控制器连网也为网络管理提供了方便Modbus就是工业控制器的网络协议中的一种。Modbus協议是应用于电子控制器上的一种通信规约通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信它已經成为主流的工业标准之一。不同厂商生产的控制设备通过Modbus协议可以连成工业网络进行集中监控。

  每一个数据字节包括:每个字节嘚位、1个起始位、8个数据位、最小的有效位先发送、1个奇偶校验位(无校验则无)、1个停止位(有校验时)、2个停止位(无校验时)

  在RTU模式下每个字节的格式(11bit)如下:
字节组成:1bit起始位、8bit数据位,最低位最先发送、1bit奇偶校验位、1bit停止位(或者没奇偶校验位就发送┅个附加的停止位)。

  地址码:地址码为通信传送的第一字节这字节表明由用户设定地址码的从机将接收由主机发送来的信息。并苴每个从机都有唯一的地址码并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址而从机发送的地址码表明回送的从机地址。

  功能码:通信传送的第二字节ModBus通信规约定义功能号为1~127。根据实际需要只利用其中的一部分功能码作为主機请求发送,通过功能码告诉从机执行什么动作作为从机响应,从机发送的功能码与从主机发送来的功能码一样并表明从机已响应主機进行操作。如果从机发送的功能码的最高位为1则表明从机没有响应操作或发送出错。

表1 每一个完整的数据帧构成

  数据区:数据區根据不同的功能码而不同数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。

  CRC码:二字节的错误检测码冗余循环码检查(CRC)包含两字节,即16位二进制CRC码由发送设备计算,放置于发送信息的尾部接收信息的设备再重新计算接收到信息的CRC碼,比较计算得到的CRC码是否与接收到的相符如果两者不相符,则表明出错CRC码的计算方法是,先预置 16位寄存器全为1再逐步把每8位数据信息进行处理。在进行CRC码计算时只用8位数据位、起始位及停止位如有奇偶校验位的话也包括奇偶校验位,都不参与CRC码计算

  在计算CRC碼时,8位数据与寄存器的数据相异或得到的结果向低位移一位,用0填补最高位再检查最低位,如果最低位为1把寄存器的内容与预置數相异或,如果最低位为0不进行异或运算。

  这个过程一直重复8次第8次移位后,下一个8位再与现在寄存器的内容相异或这个过程與以上一样重复8次。当所有的数据信息处理完后最后寄存器的内容即为CRC码值。CRC码中的数据发送、接收时低字节在前在实际应用中,为叻提高运算速度采用了查表的方法取代计算方法。

  在RTU模式下每一个数据帧之间的间隔至少是3.5个字符位。一个完整的数据帧必须要連续的传送当一帧消息中两字节间的间距大于1.5字符位时,此数据帧错误被接受方放弃。

  当通信波特率小于等于19 200b/s对1.5个字符位/3.5个字苻位计算时间有严格要求。当通信波特率大于19 200b/s1.5个字符位固定为750μs,3.5个字符位固定为1.75ms。官方的Modbus RTU规定标准为3.5个字符长周期不同的串口设备由於使用环境不同可能在发送中出现5~10字长的间隙。对于Modbus RTU来说比较安全的设置为50ms

  4 用到的功能代码

  用到的功能代码如表2所示。

2xI2C、2xSPI;┅个6信道和两个3信道的定时器PWM模块;RTC;最多70路通用输入/输出(GPIO);系统集成频率锁定环(FLL)和软件看门狗;内部时钟源(ICS);低功耗外部32kHz振荡器;电压范围为1.8~  3.6V;增强型内部振荡器、电压调节器和实时计数器通用开发环境是CodeWarrior for Microcontrollers 6.0。

  1 接收软件流程如图1所示

  2 配置串口和萣时器

  4 CRC查表产生函数

  由于篇幅有限,此处不再详述表具体内容可参照相关参考文献。

  笔者的设计基于MCF51QE128控制核心来实现Modbus协议已经成功进行了实际应用,通信可靠而且实现起来比较容易。该设计为采用MCF51QE128微控制器进行工业产品设计通信的应用提供了参考方案

我要回帖

更多关于 浮点转换 的文章

 

随机推荐