基于单片机和Modbus协议的停车器控制系统

发布者:sigma28最新更新时间:2012-09-19 来源: 电子科技 关键字:停车器  控制系统  单片机  Modbus 手机看文章 扫描二维码
随时随地手机看文章
    道岔是一种常见的铁路配件,在铁路的正常运行中,起着至关重要的作用。作为道岔控制系统的执行机构,转辙机(switch machine)是组成铁路道岔系统的重要零件。在编组站中,为了减少中间环节,列车停车器借用转辙机控制系统。编组站上的列车停车器控制系统的可靠性、安全性和操作的方便性对于提高铁路系统的安全性和效率、降低人力成本具有重要意义。为了配合控制和监督集中化的趋势,应该采用集控式控制,并且通过协议实现和计算机的单主机多从机系统,最终并入主系统。Modbus是一种开放的、免费的通讯协议,具有数据的安全性、物理媒介的广泛适用性和网络互连的多样性等优势。因此,我们自行设计了一种居于单片机和Modbus协议的双机通信控制系统。采用主从模式,实现一台主机远程监视和控制多台从机。
    本文重点介绍了C8051通过Modbus协议与PC机进行串口通信以及单片机数据采集的硬件电路和软件编程,且应用了基于Modbus协议的报文结构,可以更有效地通信。

1 系统结构及工作原理
    系统的总体结构由两层组成:上层为数据监控层,称为主机,由显示终端PC机组成,用于控制和显示现场控制情况;下层为数据采集层,称为从机,由实现Modbus协议的单片机(Modbus协议模块)、实现控制的单片机(现场主控制模块)、输入输出模块、LCD、传感器、电源模块、复位模块和接口电路组成;Modbus协议不需要特别的接口,典型的物理接口是RS-485,而RS-485为半双工结构,现场中比全双工往往更接近于实用,在此采用只有2条信号线的简易型连接。因此两层之间通过RS232-485相连,在标准的Modbus协议下进行通信,如图1所示。

a.JPG


    上下层的通信方式为主从方式。首先,主机广播请求帧,而每个从机都有自己独立的地址,并且请求帧的首部是从地址,所有从机将请求帧的首部和白己的地址对比。如果相同,则自己是目的从机,并且向主机发送以自己地址开头的应答帧;否则不是。
    由于装置需要实现多任务。为了优化系统功能,采用了双单片机的系统结构设计方法。其中一个单片机模块负责实时采集现场信息和控制现场系统;另一个单片机模块负责数据处理并做相应的封装,通过Modbus协议和PC机通信,如图2所示。

b.JPG[page]

2 硬件设计
    因为主机就是PC机,所以这里的硬件设计就是从机的硬件设计。
    (1)控制和通信模块(见图3)

c.JPG


    控制和通信模块有现场主控制模块和Modbus协议模块组成,现场主控制模块是为了实现本地实时采集信息和控制输出。Modbus协议模块是为了实现更加安全有效地和PC机通信。
    现场主控制模块仅有一片单片机组成,分两个方向:控制采集方向和通信方向。控制采集方向也按控制和采集分为输出和输入两部分,实现根据输入的采集信息,实时输出相应的控制信息。通信方向通过主从机通信方式与Modbus协议模块进行通信。
    Modbus协议模块只有一片单片机和RSM-485系列隔离收发模块组成,也分两个方向:现场主控制通信方向和PC机通信方向。现场主控制通信方向通过主从机通信方式与现场主控制模块进行通信。PC机通信方向通过RSM485和PC通信,详情是单片机输出的TTL逻辑电平通过RSM485系列隔离收发模块转换为RS-485电平,经过RS-485跟PC机进行通信。有图3可知,当P0.6输出高电平时,CON使能,单片机一侧接收数据;当P0.6输出低电平时,单片机一侧发送数据。
    [注]:计算机上一般都没有RS-485接口(有些专业应用的工控机上有RS-485接口),一般来说电脑要具备RS-485的连接功能的话,可以有三个方法实现:1,使用ISA、PCI转RS-485的转接卡,直接像显卡、声卡一样插在插槽里,转出一个RS-485串口。2,使用RS-232转RS-485的转换器,将电脑的RS-232串口转为RS-485串口。3,使用USB转RS-485的转换器,也可以转接出RS-485串口。
    (2)其他模块
    外部电源提供直流24V输入,通过DC-DC电源模块AV10-24S05,输出直流3.3V。输入端发光二极管PWR24V的作用是指示24V直流电源是否正确输入。输出端发光二极管PWRVDD的作用是指示3.3V直流电源是否正确输出,如图4所示。

g.JPG

[page]

    通过输入模块,位置传感器将转辙机的行程信号输入到控制单片机中。先经过滤波以减小干扰,然后经过光电隔离以保护主控电路,最后通过输入到单片机端口上,通过发光二极管显示输入的电平高低情况,如图5所示。

d.JPG


    现场主控制模块单片机输出的TTL逻辑电平通过光电隔离后,经过三极管放大的输出,经过接24 V电源的上拉电阻和显示用的发光二极管,输出电压以控制继电器,选择正反两个连线方案,进而实现对转辙机电动机的控制,实现前进、后退和停止,如图6所示。

e.JPG



3 软件设计
    (1)主机程序
    主机程序流程图如图7所示。系统的初始化包括打开串口和设置串口。程序先检测是否有按键按下,如果有按键按下,则根据按键封装相应的数据并发送,否则继续检测是否有按键按下。然后检测串口是否收到来自从机的数据,如果有收到数据,则解析该数据并做相关处理,显示出来,然后继续检测是否有按键按下,否则继续检测串口是否有收到数据。

f.JPG

[page]

    (2)从机程序
    从机程序流程图如图8所示。系统的初始化包括打开串口和设置串口。程序先检测串口是否收到来自主机的控制数据,此时也包括检查数据是否发送给本机,如果有收到数据则解析该数据,并对电机做出相应的控制;否则继续检测串口是否有数据。然后封装并发送现场采集的信息,之后继续检测串口是否有数据。

h.JPG



4 结束语
    此系统整体成本相对较低安全性、可靠性和实用性较高,实现集中化监视和实时控制现场系统,节约成本,而且根据需要,可以在预留的端口上接入相关设备并增加相应程序便可并入主系统,比如增加视频采集设备和相关程序,便可以更方便地查看停车器现场的实时情况。

关键字:停车器  控制系统  单片机  Modbus 引用地址:基于单片机和Modbus协议的停车器控制系统

上一篇:基于单片机的16x64点阵LED显示屏的设计
下一篇:单片机二次表的软硬件设计简介

推荐阅读最新更新时间:2024-03-16 13:08

51单片机移植UCOS-II的方法与改进
约定:文中所写的硬件堆栈或系统堆栈是指51单片机SP指针所指向的堆栈空间,而用户堆栈或任务堆栈是指用来保存任务状态为每个任务分配的堆栈空间。 前一段时间一直在学习UCOS-II,看了一个月的源码感觉有了一个初步的认识,就开始着手找一个平台移植起来跑跑看,不然终究是纸上谈兵。先是看了公司的一个产品,用的UC是在ARM平台上移植的,费了好大力气终于把任务切换的过程看明白了。自以为对于UC的移植掌握的差不多了,于是拿出自己先前焊的51最小系统,想在51上面把UC跑起来,可是真正移植的时候却发现难度很大,不知如何下手,没办法只好找网上移植范例来学习。我找到的版本有两个,一个不知道是谁移植的,用的是KEIL小模式编译的;另一个是03年
[单片机]
51<font color='red'>单片机</font>移植UCOS-II的方法与改进
单片机产生扫频信号400Hz~3KHz-----占空比50%的方波
发一个产生扫频信号的程序,大家参考一下 //单片机晶振12MHz,这个程序如果要提高扫频信号输出的频率关键的一句是 //dataLoad=10000/(2*(4+i));//153个时钟周期 //记该指令的执行时间是N个时钟周期 //该程序可以输出地扫频信号的最高频率为fosc/(2*N*12) //如果想要提高扫频信号的最高频率使用时钟频率更高的芯片,或者可以 //更改这条语句,使之执行时间缩短 //这个程序的编程思路如下: //定时器0负责输出方波的定时,输入指定频率的方波 //定时器1负责0.1秒定时,如果时间到,则改变 //定时器0的控制的输出方波的频率 #include reg52.h sbit ou
[单片机]
51单片机学习:串口通信实验
实验名称:串口通信实验 接线说明: 实验现象:下载程序后,当串口助手发送数据给单片机,单片机原封不动转发给串口助手显示 注意事项:使用黄色跳线帽将CH340旁的P5端子的UTX和P30短接,URX和P31短接,出厂默认已短接好 ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; /***************************
[单片机]
基于STC89C51单片机的GPS智能塔钟控制系统的研究
本文研究的GPS自动校时塔钟控制系统是以STC89C51单片机为控制器,由GPS接收器、伺服电机、LED显示、语音报时等部分组成,具有自动校时、显示、报时等功能。通过GPS15XL-W接收芯片捕捉来自卫星的准确时间信息,以此为时钟源。利用单片机对接收到的时间信息进行提取和处理,并完成对单片机走时的校正。系统由单片机走时构成母钟,单片机向伺服电机发送脉冲驱动子钟走时。其优点是实现上电后的自动校时,改变了传统校时的不便,减少了机械误差,塔钟精度可达±1μs,没有累计误差。 随着经济社会的不断发展,人们生活的节奏逐步加快,人们对时间的精确度要求越来越高,尽管城市建筑物上的塔钟也越来越多,但大部分都是以传统塔钟为基础的传动、人
[单片机]
基于STC89C51<font color='red'>单片机</font>的GPS智能塔钟<font color='red'>控制系统</font>的研究
基于MTD2009J的步进电机细分控制系统
引言 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速和停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,以及步进电机只有周期性的误差而无累积误差等特点,使得在速度和位置等控制领域用步进电机来控制变得非常简单。 较常用的步进电机包括反应式步进电机、永磁式步进电机、混合式步进电机和单相式步进电机等。其中反应式步进电机的转子磁路由软磁材料制成,定字上有多相励磁绕组,利用磁导的变化产生转矩。 目前步进电机已广泛运用在需高定位精度、高分解能以及高响应性、信赖性等灵活控制性高的机械系统中,从生产过程中要求自动化、省人力
[工业控制]
使用单片机实现可预置可逆4位计数的详细资料说明
如图所示,AT89S51单片机 P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。 2. 电路原理图 图4.13.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的SP1端口上; 4. 程序设计内容 (
[单片机]
使用<font color='red'>单片机</font>实现可预置可逆4位计数<font color='red'>器</font>的详细资料说明
基于AT89C205l单片机的智能家居报警系统的设计
引言 随着电子信息技术和计算机网络技术的发展,实现家居信息化、网络化是当前智能家居系统发展的新趋势。报警系统作为智能家居系统的一个重要组成部分,其性能的好坏直接关系到整个智能家居系统的优劣。把无线网络技术应用到家居报警系统中,通过各种传感器实时采集家居的环境信息,通过无线的方式将信息传输给家居控制中心, 能够弥补有线设备的缺陷, 具有价廉、可靠性高、等优点。 笔者根据无线网络技术和智能家居的特点,设计了一种基于无线网络技术的家居无线报警系统。该无线报警系统可以对整个家居的安全环境进行实时监控。 系统结构 本报警网络采用了星型拓扑结构,由中心节点和无线报警网络节点组成。中心节点是一个与计算机相连的无线通信模块,可以和网络中的
[单片机]
家电MCU对于低能耗和安全的要求逐渐变高
过去的十年里,洗衣机、冰箱和洗碗机等白色家电的设计已经朝着积极的新方向发展。尽管“How clean? How fast? How cold?”等性能指标仍然重要,但现在家电的设计目标还要加入包括能源效率、安全性,以及在高端模型中,还包括互联网连通性。 欧盟、美国以及许多发达国家已经制定了能效标准,如按标准执行,例如洗衣机的年均能耗降低到约150千瓦时。每个子系统的优化在降低能耗方面都有作用,但MCU执行优化电机能源使用的复杂电机控制算法的任务至关重要。 无刷直流电机(BLDC)控制 对能效的积极目标正在推动电机从内置位置传感器向无传感器的无刷直流电机(BLDC)和永磁同步电机(PMSM)转型。BLDC电机控制涉及一些
[嵌入式]
家电<font color='red'>MCU</font>对于低能耗和安全的要求逐渐变高
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved