智能闸机及交通信号控制装置设计
2018-06-22傅志宏
傅志宏
(上海交大高新技术股份有限公司,上海 200235)
0 引言
我国河流、湖泊众多,大大小小河流成千上万。为了便于交通运输,在河流两岸架起多种多样的桥梁,车辆和行人才能在桥面上通行。桥梁架设也有多种形式,其中虽常用的是铺设固定桥梁,造好后桥梁不能升降移动,但另一种形式是活动或称移动闸桥,根据河流船只的通行要求,可以实施桥梁的升降。当主桥升起时,桥面上禁止车辆通行和行人行走。只有在桥梁降下,桥面合拢时,车辆和行人才可以通行。为了实现车辆和行人能安全的通过活动桥,我们利用现代智能化控制技术和车辆交通信号灯显示LED屏显示技术及桥梁闸机设施的开启(升起)和关闭(降下)控制技术,有机组合成完整的闸机控制系统[1]。控制系统可以由三级控制组成,第一级为中央控制室监控系统运行状况;第二级为主控制器,实施系统的主要控制,包括闸机的升起和降下,发布各种控制指令给第三级分控制器,为了避免中控出错及调试方便,主控制器在中控的基础上还引入了调试模式;第三级分控制器实施闸机的升起和降下,交通信号灯红绿信号显示(红色为禁止通行,绿色为允许通行),同时LED显示屏则显示“禁止通行”或“允许通行”字样,以及发出禁止通行的声光报警信号[2]。为了避免主控制器出差错,方便桥一端的单独控制操作,分控制器在主控模式的基础上引入了人工控制模式[3]。目前我们研发的这种智能道闸及交通信号控制装置已实际应用在我国三峡大坝桥体的升降机系统中。
1 闸机控制系统控制策略
本设计提供一种智能道闸及交通信号灯/报警控制装置——即MIC-PC-F型闸机控制机。其主要用于活动桥梁闸机控制系统的第二、第三级控制器,它包括第二级的主控制器以及第三级的分控制器。
以下通过特定的具体实施举例说明本设计的实施方式,显示道闸控制及交通信号灯以及报警装置结构配置示意图。如图1所示。
主控制器可放置在控制桥的一端,也可放置在中控室中,在活动桥两端分别放置一个分控制器1和分控制器2。主控制器是第一级中控室和第三级分控制器之间的联系纽带,它可以把中控制室的控制指令发送给分控制器,也可以把分控制器的状态反馈给中央控制室。每一个分控制器可以控制活动桥一端的两个闸机,可对闸机进行开、关、停操作[4];分控制器1、分控制器2可分别对控制桥一端的一个交通信号灯进行亮红灯、亮绿灯、灭灯操作,对LED显示屏进行亮红色“禁止通行”字样或亮绿色“允许通行”字样操作,以及对声光报警器做开或关操作。
2 闸机控制模块设计
2.1 设计构想与硬件电路设计
2.1.1 系统在实际应用中的框图
系统框图,如图2所示。
图1 交通信号及报警装置图
图2 系统在实际应用中的框图
首先中央控制室通过无线或有线接收到升降桥梁请求信号,经过处理后向主控制机发出控制信号,主控制机同时向现场桥两端的分控制器发送控制信号,同时采集现场车辆与行人的状况(包括视频信息、检测信息及当前信号控制状态等),并通过主控制机反馈给中央控制室,从而构建一个中央控制机及闸机信号控制器之间的可靠控制系统[3]。
2.1.2 硬件选型
系统主要由以下几部分硬件构成:数据处理模块、通讯模块、人机交互模块。
数据处理模块:设计中需要对采集来的数据进行提取并处理,并将这些信息通过液晶屏显示给使用者。采用STM32 F407ZET6实现数据的处理、显示及控制数据的收发。
通讯模块:设计中采用3种通信模式,UDP模式采用MOXA MiiNePortE1-T通信模块,无线通信模式则采用Digi TransPort WR21通信模块,同时还预留开关量通信模式(用于PLC连接)。
人机交互模块:设计中通过数据处理模块片处理过的数据最终需要能直观的显示给使用者,我们通过按钮开关来控制输入,用LED显示各个状态及指令信息,同时选择了NT35510触摸显示屏来实现人机交互的系统显示。
2.2 软件功能设计
2.2.1 系统流程图设计
系统运行有两种运行状态。
状态一:公路桥升起,车辆禁止通行,如图3所示。
在活动桥计划升起时,中控室通过主控制器把指令传给分控制器1和分控制器2,先行开启交通信号灯控制按钮,交通信号灯红灯亮起,声光报警器开始报警,LED显示屏显示为红色“禁止通行”字样,在等待30秒后,在确保活动桥上没有车辆及人员通行时(摄像机监控或人工观察),关闭所有道闸机,禁止车辆及人员通过活动桥。在闸机闭到位、信号控制为禁止状态时,主控制器与分控制器柜内可升桥信息指示灯亮起,开始升桥操作。
图3 活动桥计划升起流程图
状态二:公路桥降下,车辆允许通行,如图4所示。
图4 活动桥下降后流程图
在确保活动桥下降的范围内人员安全(摄像机监控或人工观察),中控室开启活动桥下降按钮,声光报警器开始报警,在活动桥平稳下降到位后,中控室、主控制器、分控制器内允许通行按钮同时亮起,中控室开启通行按钮,道闸快速打开,在各个闸机都开到位时,LED显示屏显示绿色“允许通行”字样,同时交通信号灯切换至绿灯状态,车辆可安全通行。
上述实例为中控模式下的系统操作,而主控制器有两种控制模式:中控模式、调试模式。其中中控模式时,该控制器只接受中控室的指令来控制分控制器,主控制器操作无效;如果指向调试模式时,中控室的指令就无效了,此时,可以通过主控制器来控制分控制器。指令包括开红绿灯、开闭闸机。主控制器机柜内指示灯包括中控命令指示、分控制器的闸机状态指示和主控指令状态指示。
分控制器有3种控制模式:主控模式、人工模式、调试模式。在主控模式时,该控制器只接受主控制器的指令(可为主控指令或中控指令)来控制外接设备,人工指令则无效;如果指向人工模式时,主控制器的指令就无效了,此时,可以通过人工来控制一端的外接设备;调试模式为无效模式。指令包括开、灭红绿灯,开闭停闸机。逻辑箱的指示灯包括主控命令指示、各闸机状态指示和旋转开关状态指示。
2.2.2 串口通讯格式和数据协议
1、通讯协议格式组成:
信息头、信息长度、协议编码、信息体、校验码。
串口参数:
Rate:9600
Parity:Odd
Data Bits:8
Stop Bits : 1
Flow Control: None
2.2.3 串口数据读写及处理模块
串口数据初始化及读写部分程序:
void uart_init(u32 pclk2,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk2*1000000)/(bound*16);
mantissa=temp; //得到整数部分
fraction=(temp-mantissa)*16; //得到小数部分
mantissa<<=4;
mantissa+=fraction;
RCC->AHB1ENR|=1<<0; //使能PORTA口时钟
RCC->APB2ENR|=1<<4; //使能串口1时钟
GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);//PA9,PA10,复用功能,上拉输出
GPIO_AF_Set(GPIOA,9,7); //PA9,AF7
GPIO_AF_Set(GPIOA,10,7);//PA10,AF7
//波特率设置
USART1->BRR=mantissa; //波特率设置
USART1->CR1&=~(1<<15); //设置OVER8=0
USART1->CR1|=1<<3; //串口发送使能
if EN_USART1_RX //如果使能了接收
//使能接收中断
USART1->CR1|=1<<2; //串口接收使能
USART1->CR1|=1<<5; //接收缓冲区非空中断使能
MY_NVIC_Init(3,3,USART1_IRQn,2);//组2,最低优先级
endif
USART1->CR1|=1<<13; //串口使能
}
void USART1_IRQHandler(void)
{
u8 res;
if(USART1->SR&(1<<5))//接收到数据
{
res=USART1->DR;
if((USART_RX_STA&0x8000)==0)//接收未完成
{
if(USART_RX_STA&0x4000)//接收到了0x0d
{
if(res!=0x0a)USART_RX_STA=0;//接收错误,重新开始
else USART_RX_STA|=0x8000; //接收完成了
}else //还没收到0X0D
{
if(res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=res;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收
}
}
}
}
}
串口数据显示部分程序:
void inikeydis(void)
{
for(i=0;i<4;i++)//创建21个按钮
{
for(j=0;j<5;j++)
{
res=i*5+j;
c_btn[res]=btn_creat(j*95+5,i*95+420,90,90,0,2); c_btn[res]->bkctbl[0]=BLACK;//边框颜色
c_btn[res]->bkctbl[1]=0X4A49;//第一行的颜色
c_btn[res]->bkctbl[2]=0X4A49;//上半部分颜色
c_btn[res]->bkctbl[3]=0X3186;//下半部分颜色
c_btn[res]->font=24;
c_btn[res]->bcfucolor=WHITE;//松开时为白色
c_btn[res]->bcfdcolor=BLACK;//按下时为黑色
//c_btn[res]->caption=(u8*)calc_btnstr_tbl[res];
c_btn[res]->sta=0;
}
}
c_btn[20]=btn_creat(5,325,90,90,0,2);//创建圆角按
c_btn[20]->bkctbl[0]=BLACK;//边框颜色 c_btn[20]->bkctbl[1]=RED;//第一行的颜色 c_btn[20]->bkctbl[2]=RED;//上半部分颜色
c_btn[20]->bkctbl[3]=RED;//下半部分颜色
c_btn[20]->font=24;
c_btn[20]->bcfucolor=WHITE;//松开时为白色
c_btn[20]->bcfdcolor=BLACK;//按下时为黑色
c_btn[20]->sta=0;
for(res=0;res<21;res++) c_btn[res]->caption=(u8*)calc_btnstr_tbl[res];
for(i=0;i<21;i++)btn_draw(c_btn[i]);
gui_draw_arcrectangle(100,325,375,90,12,1,CALC_DISP_BKCOLOR,CALC_DISP_BKCOLOR);
POINT_COLOR=WHITE;
BACK_COLOR=CALC_DISP_BKCOLOR;
if((rdbuf[0]=='A')&&((rdbuf[1] & 0x7f)=='K'))
{x3=Show_Str(105,330,"显示指令:开启",16,0);}
else((rdbuf[0]=='A')&&((rdbuf[1] & 0x7f)=='B'))
x3=Show_Str(105,370," 显示指令:关闭",16,0);}
BACK_COLOR=WHITE;
}
3 总结
由于本人所在公司和江南重工公司的合作,在三峡大坝的升降机系统中得以测试实施,该设备已得到了实际应用。通过实际的应用,我发现系统的总体结构是结构化和模块化的,应具有很好的兼容性和可扩展性,这样才能让不同厂商的产品可以综合在同一个系统中,又能为以后系统扩张提供便利。
本文提供了基于在智能交通控制领域中的一种特殊情况下的控制应用,它也可以应用于轨道交通、无轨电车、桥梁、隧道等领域的通行控制。同时,它为智能交通控制应用于其它控制领域,以及如何和其它控制完善地连接集成,提供了一个很好的借鉴。
[1] 沈国江,张伟. 城市道路智能交通控制技术[M].北京:科学出版社,2015.
[2] 李瑞敏,章立辉.城市交通信号控制[M].北京:清华大学出版社.2015.
[3] 于泉. 城市交通信号控制基础[M].北京:冶金工业出版社.2011.
[4] 翟润平,周彤梅,刘广萍.道路交通控制原理及应用.中国人民公安大学出版社,2011.
[5] 自动道闸标准:Q/S003-2000-QB/440300L9100-2000[R].