本站小编为你精心准备了智能建筑现场控制器的设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
公共建筑物的内部有大量的电气设备,如空调设备、给排水设备、照明设备等,这些设备多而散:多,即数量多;散,即这些设备分散在各个层次和角落。建筑智能化是通过安装于现场设备附近的现场控制器对建筑内众多电气设备进行自动控制、监视、测量,实现综合协调、运行管理和维护保养工作,提高整个建筑内部设备运行的效率,减少能源消耗,同时使管理者随时掌握设备状态运行情况、能量消耗情况及各种参数变化情况[1]。智能建筑现场控制器为建筑物所有电气设备提供安全、可靠、节能、长效运行的保证,直接决定了整个建筑智能化的水平,因此设计一款具有功能可靠,通用性好,组网方便,传输速率高的智能建筑现场控制器有着重要的实际意义。
1智能建筑现场控制器的设计方案
智能建筑现场控制器是是安装于监控对象附近的小型专用控制设备,本文采用意法半导体推出的32位Cortex-M3结构的芯片STM32F107VCT6作为主控芯片,设计了智能建筑现场控制器,设计方案图如图1所示,设计了通过按键和液晶显示进行功能参数设定,并由数据存储电路保存设置的参数;设计了通过模拟/数字输入输出接口和RS485总线接口对现场普通I/O仪表和智能仪表的信号互连,完成信息数据的采集、传输、转换和设置,可针对现场设备的控制要求实现如PID算法,完成对现场设备的监测与调控功能;设计了可与远程监控PC机及其他现场控制器及以太网设备进行以太网数据通信,实现远程监控和系统组网。
2现场控制器与仪表接口电路的设计
由于智能建筑现场使用的仪表可分为普通I/O仪表和RS485智能仪表两种,现场控制器与现场仪表的信号接口电路也分为适用于普通I/O仪表的数字/模拟输入输出接口电路和适用于RS485智能仪表的RS485总线接口电路两类。本智能建筑现场控制器设计的模拟量输入接口(AI)电路,由于普通I/O检测仪表一般输出的模拟信号为0~10V模拟电压信号或者为4~20mA模拟电流信号,因此设计的模拟量输入接口(AI)电路分别可以接入0~10V模拟电压信号和4~20mA模拟电流信号,经过电阻分压、稳压二极管箝位和运放跟随之后均变为0~2V的电压信号输入到STM32主控芯片的AD引脚采集。本控制器设计的数字量输入接口(DI)电路,采用无源接点,外部输入开关量信号通过TLP781光耦进行隔离保护后接入STM32芯片I/O输入引脚。本控制器设计的模拟量输出接口(AO)电路,如图2和图3所示,采用STM32芯片的两路DA输出引脚分别产生0~2V电压信号,后经运算放大电路产生具有较大电流驱动能力的0~10V电压信号输出,如图2所示,并可产生4~20mA电流信号输出,如图3所示。本控制器设计的数字量输出接口(DO)电路,如图4所示,由STM32芯片的I/O输出引脚输出开关量信号经光耦隔离后,通过三极管驱动继电器产生无源接点数字量输出。本控制器设计的RS485智能仪表的RS485接口电路如图5所示,STM32的USART的Rx、Tx引脚连接到MAX485的RO、DI以进行RS485的数据收发;STM32的I/O口DIR与MAX485的接收使能端RE、发送使能端DE相连,对RS485半双工总线的通信方向进行统一控制;而MAX485的差分信号端A、B则通过插座与RS485智能数字仪表相连,同时为保证通信质量,消除总线上的信号反射,需在RS485网络终端的差分总线间串联120Ω的电阻。
3现场控制器与以太网通信接口电路的设计
STM32F107芯片的内部集成了以太网媒体接入控制器(MAC),MAC实现网络的数据链路层,数据链路层向网络提供标准的数据通信接口,提供构建数据帧、检查数据差错、传递控制等功能,物理层则负责与通讯相关的电信号部分,向数据链路层提供标准的通信接口,提供时钟信号、数据编码、线路状态以及相关的硬件电路等,物理层控制器是与外部信号接口的芯片。STM32F107并未集成物理层控制器,因此需要外接物理层控制器,本设计采用美国National公司的10/100M以太网物理层收发芯片DP83848和HR911105A接口设计以太网通信接口电路,相关原理图如图6所示。
4现场控制器软件的设计
本现场控制器移植了μC/OS-Ⅱ操作系统,实现了Mod-Bus协议和TCP/IP协议,实现了PID控制算法,完成了对建筑现场设备的控制要求,并可通过以太网与远程监控计算机实现远程监控。控制器软件流程如图7所示。
4.1μC/OS-Ⅱ操作系统的移植由于智能建筑现场控制器有较高的功能要求和较多的任务程序,为了提高程序运行的效率,并增加多任务协调管理的能力,就要进行实时操作系统的移植。μC/OS-Ⅱ是多任务操作系统,使用内核负责管理各个任务,每个任务都有其优先级,μC/OS-Ⅱ最多可以管理64个任务,其每个任务都拥有自己独立的堆栈。μC/OS-Ⅱ提供了非常丰富的系统服务功能,比如信号量、消息邮箱、消息队列、事件标志、间管理等,这些功能可以帮助用户实现非常复杂的应用[2]。μC/OS-Ⅱ作为操作系统,移植主要是处理与处理器相关的源文件,即os_cpu_c.c、os_cpu_a.s、os_cpu.h。其中os_cpu.h主要包含编译器相关的数据类型的定义、堆栈类型的定义以及几个宏定义和函数说明,为了便于移植,须重新定义数据类型,因为不同的编译器所提供的同一数据类型的数据长度并不相同[3]。os_cpu_c.c文件中主要实现任务堆栈的初始化函数OS-TaskStkInit,任务创建函数通过调用函数OSTaskStkInit初始化任务堆栈结构。在os_cpu_a.s文件中需要根据具体的硬件处理器实现几个汇编函数OSstartHighRdy、OSCtxSw、OSIntetxsw以及临界处理函数OS_CPU_SR_Save,OS_CPU_SR_Restore。
4.2ModBus协议的实现本现场控制器通过对FreeModbus程序的移植来实现ModBus协议主机功能。FreeModbus程序是一个针对嵌入式应用的开源的通用Modbus协议的程序。FreeModbus提供了RTU和ASCII传输模式支持,本控制器采用RTU传输模式。移植涉及到串口和定时器的移植,串口的移植文件位于portserial.c,定时器的移植文件位于porttimer.c。主函数部分。串口部分的代码编写比较常规,主要有三个函数,串口初始化xMBPortSerialInit,串口数据发送xMBPortSerialPutByte和串口数据接收xMBPortSerialGetByte。除了以上三个函数之外,还有串口中断服务函数USART1_IRQHandler。若进入串口中断服务函数,则要调用FreeModbus中断响应函数,串口接收中断服务函数对应prvvUARTRxISR。在主程序中有三个FreeModbus提供的函数,eMBInit,eMBEnable和eMBPoll。eMBInit为modbus的初始化函数,在程序中此函数设置的参数为:eMBInit(MB_RTU,0x01,0x01,9600,MB_PAR_NONE),表示为:初始化为RTU模式,从机地址为1,使用串口UART1,波特率为9600bit/s,无校验。eMBEnable为modbus的使能函数,而eMBPoll为modbus的查询函数,查询是否有数据帧到达,如果有数据到达,便进行相依的处理。Modbus通信中,总共有对四类的寄存器的操作,开关输入寄存器,线圈寄存器,保持寄存器和输入寄存器。所有的Mod-bus功能都围绕这些数据类型进行操作,实现功能需要调用如下Modbus数据处理回调接口函数:eMBMasterRegInputCB输入寄存器回调接口函数,eMBMasterRegHoldingCB保持寄存器回调接口函数,eMBMasterRegCoilsCB线圈回调接口函数,eMBMasterRegDiscreteCB离散输入回调接口函数。
4.3TCP/IP协议的实现LWIP是用于嵌入式系统的开放源码TCP/IP协议栈,其在保持TCP主要功能的基础上减少对RAM的占用,一般只需要几十字节的RAM和40KB左右的ROM就可运行,使LWIP适合在中低端的嵌入式系统中应用[4]。在LwIP中,structtcp_pcb包括了以太网数据最小传输单元的类型、IP地址、子网掩码、网关、当前端口号、目的端口号等重要属性,在创建好tcp_pcb之后,调用tcpAPI操作函数tcp_bind使指定的tcp数据单元属性生效。对于以太网数据的读写,设置以太网读写超时是非常重要的,LwIP_Periodic_Handle函数提供了这样的功能。配置好tcp后,用tcp_recv函数打开数据接收回调函数,通过回调函数体中第二个参数创建监听线程。在监听中无线程阻塞,当接收到远程数据报时,用tcp_send写数据。远程控制端对智能建筑现场控制器的监控是在监听线程tcp_echoserver_receive_callback中完成的,控制器根据不同的命令,决定要进行的操作功能。
4.4PID算法的实现由于设计的现场控制器将与现场仪表构成闭环控制系统,根据如温度、压力等参数完成对建筑设备调控的要求,将模拟量输出信号值的大小作为控制量。故采取数字PID增量型控制算法。例如,本设计的PID控制算法可以将温度调控的静态误差在0.2℃范围以内,最小区分度为0.1℃,满足空调设备对温度调控的需求。
5结束语
本控制器已经成功地进行了应用,通讯可靠,功能丰富,通用性好,为采用STM32芯片进行智能建筑现场控制器产品设计的应用提供了参考方案。
作者:高瑞 祝德忠 齐利晓 单位:天津城建大学控制与机械工程学院 天津二十冶建设有限公司电气设备安装工程分公司