新闻中心

EEPW首页>测试测量>设计应用> 基于μC/OS―II操作系统的数据采集控制系统

基于μC/OS―II操作系统的数据采集控制系统

作者: 时间:2009-05-05 来源:网络 收藏

3.2/控制模块软件设计
RS一485标准只是一个物理的通信接口标准,要实现总线监控还要在此基础上建立自己的高层通信协议。Modbus协议是美国可编程控制器供应商Modicon公司制定的一种工业通讯协议,现在已经被许多工控厂商所支持,广泛的应用到只能仪表,总线监控等领域。
Modbus协议采用主从结构的通信方式,适用于半双工的RS一485总线。协议规定总线上有一个主机,多个从机,每个主机分配唯一的地址。工作时可采用命令/应答的通讯方式,主机向要从机发出命令帧,地址匹配的从机进行响应,并向主机发出与命令帧对应的应答帧。Modbus有两种通信模式:ASCII模式和RTU模式。在相同的情况下,RTU模式比ASCII模式能够传送更多的数据,因此在本系统中采用RTU模式。RTU消息帧典型格式如表l所示。

本文引用地址://m.amcfsurvey.com/article/195879.htm

在本采集中,核心模块作为主机,各个采集和控制模块作为从机响应主机发出的命令帧。当主机发送Ox03功能码时,从机会把模拟量的值或者状态量/频率量的值返回给主机。当主机发送0x16功能码时,会使控制模块开关量通断,并且控制模块会返回当前的状态。每个/控制模块有4路输入或输出通道。因此在每个采集/控制模块内部定义了4个寄存器,每个寄存器占两个字节。采集/控制模块按字节接收数据,每接收一个字节就进入一次串口中断。进入串口中断之后,对接收到的数据进行解析。解析数据的流程图如图5所示。首先判断地址是否与本机地址匹配,地址不匹配则放弃本次接受。地址匹配之后再保存功能码。当数据帧接收完之后,对接收到的数据进行CRC校验,并于接收到的CRC校验码进行比较。若CRC校验错误,则放弃本次数据。若CRC校验正确,主程序则根据保存的功能码,寄存器起始地址以及寄存器个数来响应主机。当功能码为Ox03时,采集模块根据接收到寄存器起始地址及寄存器个数将采集到的数据发送给主机。当功能码为Oxl6时,控制模块根据接收到的寄存器值打开或关闭继电器,并且将继电器状态返回给主机。

4 结束语
可以对模拟信号、状态量以及脉冲量进行采集和处理,并且能够根据采集的数据来控制继电器的开关。主机和模块之间通过RS一485总线以标准的Modbus协议传输数据。因此可以很容易的实现扩展和与其它厂商的检测仪表进行集成。该系统采用了实时,使系统优先级明确,提高了实时性,同时实现了大容量的数据存储和远程网络访问。因此本系统有很好的实用性,已经被我们应用到灌溉施肥中。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭