智能建筑现场控制器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能建筑现场控制器的设计
公共建筑物的内部有大量的电气设备,如空调设备、给排水设备、照
明设备等,这些设备多而散:多,即数量多;散,即这些设备分散在
各个层次和角落。
建筑智能化是通过安装于现场设备附近的现场控制
器对建筑内众多电气设备进行自动控制、监视、测量,实现综合协调、运行管理和维护保养工作,提升整个建筑内部设备运行的效率,减少
能源消耗,同时使管理者随时掌握设备状态运行情况、能量消耗情况
及各种参数变化情况[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芯片进行智能建筑现场控制器产品设计的应用提供了参
考方案。
智能建筑现场控制器的设计。