1、基于嵌入式风力发电机组控制器研究与开发文丽, ()0 引 言为了适 应 不同的应用场合,同时考虑到计算机系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪的嵌入式操作系统随之诞生。这种嵌入式系统能适用于对功能、可靠性、成本、体积、功耗要求严格的应用系统。而在众多嵌入式操作系统中,Linux 以其体积小、可裁减、运行速度快、网络性能优良、源码公开等优点而被广泛采用。特别是 2.6 内核版本的 Linux 更是在实时性能方面有了很大的提高,因此在工业控制场合得到了越来越多的重视和应用。本文正是在这一背景下,为基于 S3C2410 的嵌入式平台(扩充了多种外围设备
2、,包括:LCD、AD、网络芯片等等) 构建出一个基于 Linux2.6.16 内核的嵌入式系统开发平台,以满足风力发电监控系统开发的需求。1 系统构架本系统的硬件平台是以 32 位高性能嵌入式处理器 S3C2410A 作为系统的 CPU,其工作频率最高为203 MHz,具有强大的处理能力。另外,还扩展有多种外围设备,如:分辨率为 640480 的 26 万色 TFT液晶显示屏、串口、USB 口、网口、64MB Flash、64MB SDRAM 等等。可以充分满足风力发电监控系统开发的需求。本硬件平台的软件构架主要分为以下几个部分:BSP 层、操作系统层以及应用层,图 1 所示是其软件构架图。本
3、系统的硬件平台是由嵌入式微处理器及其外围设备所构成的。硬件抽象层(BSP)是存储在硬件平台 ROM 或 Flash 上的负责与硬件底层交流的硬件驱动程序,主要负责对系统进行初始化,并将收集的硬件信息传递到接下来运行的操作系统内核中去。操作系统内核通过 BSP 来管理系统硬件资源,并为上层软件提供进程调度、内存管理、文件系统、设备驱动等服务。应用层主要负责与用户进行交流。在完成系统的构架设计以后,就可以针对硬件平台进行具体的构建了,其工作主要包括以下几个部分:BootLoader 移植、内核移植以及文件系统的建立等,其中内核移植包括网络设备、LCD 和 USB 等驱动的移植。文中针对本系统的设计
4、给出了相关程序的移植。2 BootLoader 移植BootLoader (引导加载程序) 是系统加电后运行的第一段代码。这段小程序用于初始化硬件设备和建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。目前,较流行的 BootLoader 主要有 U-boot 和 Vivi 等。本设计主要是以 S3C2410 为控制器的硬件平台,因此可以选用带有网络功能的 Vivi 作为系统的 BootLoader。作为引导程序的 Vivi 一般分为 stage1和 stage2 两大部分。stage1 主要是根据 CPU 的体系结构进行设备初始化等工
5、作,通常都用短小精悍的汇编语言来实现,而 stage2 则通常用 C 语言来实现,这样可以实现更加复杂的功能,且代码会具有更好的可读性和可移植性。为了使 Vivi 更适合本系统的硬件平台,设计时需要对其进行部分修改。(1)修改编译器首先要把 Vivi 中 Makefile 的有关编译的选项指向安装好的 3.4.1 版本的交叉编译工具链,将编译所需的 Linux 文件夹“UNUX-INCLUDE-DIR=”指向交叉编译器所在的文件夹“LINUX-INCLUDE-DIR=usrlocalarm3.4.1include”,并将“CROSS-COMPILE=”项修改为“CROSS-COMPILE=us
6、rlocalarm 3.4.1binarm-linux-”。(2)修改启动参数接着根据硬件平台的实际情况要修改 Vivi 中 Flash 分块情况。本系统将 Flash 划分成四个部分:第一部分用来存放系统的 Vivi:第二部分用来存放 Vivi 以及 Linux 操作系统的启动参数;第三部分用来存放嵌入式 Linux 操作系统;最后一部分用来存放文件系统。具体的地址及块大小分配如表 1 所列。修改完以上两项就可以对 Vivi 进行编译了,之后通过 JTAG 将生成的二进制代码烧写到 Flash 的第一部分,即完成了 Vivi 的移植。3 内核移植内核移植和 BootLoader 移植一样要根
7、据设计的硬件平台来进行。根据本嵌入式系统硬件平台的设计,需修改内核 Makefile 文件、设置 Flash 分区、配置与编译内核等,并完成网络设备、LCD 以及 USB 等驱动的移植,下面简单介绍一下针对本硬件平台的相关移植工作。(1)内核编译与移植在交叉编译内核之前,要先对编译选项进行配置。执行“make menuconfig”指令,进人 Syetem Type选项,选择对 S3C2410 系统板的支持,然后配置 File System 和 Block device,接下来使用“make dep”指令设置依赖关系,之后便可以使用“make zImage”指令进行编译。编译内核交叉编译时间相
8、对较长。最终会生成一个文件 zImage,这就是编译成功后的 ARM Linux 内核文件。将编译好的内核镜像文件写入到Flash 中,即完成了内核的移植。(2)网络设备移植系统中采用 CS8900A 作为网络芯片,最高支持 10 Mbs 的传输率,它使用 S3C2410 的 nGCS3 作为片选线,IRQ_EINT9 作为外部中断信号线。其驱动移植方法如下:1) 在 linuxdrivernetarm 目录下加入芯片的驱动程序文件 cs8900h 和 cs8900c:2) 在 SMDk2410_init 函数中完成相应寄存器设置;在 cs8900_probe()函数中对 S3C2410 的网
9、络控制寄存器进行设置:加入_raw_writel(0x221ldll0,S3C2410_BWSCON);和_raw_writel(0x1f7c,S3C2410_BANKCON3);两个语句;3) 将网卡的物理地址(0x19000000)映射到 vSMDK2410_ETH_IO 所指向的虚拟地址上去,即在archarmmach-s3c2410 mach-smdk2410c 文件中的 smdk2410_iodesc 结构数组中添加如下内容:vSMDK2410_ETH_IO,0x19000000,SZ_1M ,MTl_DEVICE;4) 配置网络设备驱动的 Makefile、Kconfig 文件,并
10、对头文件做部分修改。(3) LCD 移植在 2.6.16 内核中已经包含了 S3C2410 的 LCD 驱动程序,因此,移植的主要工作是要根据驱动程序及 LCD 屏的实际情况进行初始化。S3C2410 自带 5 个 LCD 控制器,每个控制器有不同的功能,必需对每个控制器的参数进行相应的设置才能顺利地启动 LCD,这些参数包括:液晶屏类型( TFT 屏或 CSTN 屏)、颜色位数、垂直度、水平度、控制信号线的极性以及液晶屏的分辨率等等。本系统采用的是 SHARP 8.0 英寸的 TFT 液晶屏。参考该液晶屏手册,根据实际情况设置各个寄存器的参数如表 2 所列。设置好液晶屏的参数后,再在平台初始
11、化函数 smdk2410_devices_initdata 中启动液晶屏。最后,修改 driversvideo 目录下的 Kconfig 和 driversvideo 目录下的 Makefile 文件。4 文件系统建立每种操作系统都有适合自己的文件系统,如:Windows 一般采用 FAT32 或 NTFS 文件系统格式,Linux 采用 EXT2 或 EXT3 文件系统格式,而嵌入式 Linux 操作系统是建立在一种称为 YAFFS2(YAFF 文件系统的改进版)的针对嵌入式 Linux 的文件系统之上。因此可根据本系统的硬件平台设计及所采用的Linux 内核。构建出 YAfTS2 文件系统
12、,步骤如下:(1)在内核中建立 YAFFS2 目录 fsyaffs2,并把下载的 YAFFS2 代码(可以从网上下载开源的YAFFS2 的源码)复制到该目录下面;(2)修改 Kconfig 和 Makefile,使其可以配置 YAFFS2;(3)在 YAFFS2 目录中生成 Makefile 和 Kconfig 文件;(4)根据表 1 在内核中修改 NAND 分区;(5)配置内核时,应选中 MTD 支持和 YAFFS2 支持;(6)编译内核并将其下载到开发板的 Flash 中;(7)制作根文件系统下载到 Flash 的指定地址( 地址如表 1 所示) 。至此,就搭建好了风力发电监控系统开发所需
13、要的软硬件平台。图 2 所示是基于搭建好的平台并使用QtEmbeded 开发的风力发电监控系统的截图。5 结束语本文根据一个特定的目标平台,介绍了如何构建基于 Linux 2.6.16 的嵌入式开发平台,介绍了移植的主要技术和整个流程,并在 QtEmbedd 下开发了风力发电监控软件。掌握这些移植和开发技术,对于开发嵌入式 Linux 应用系统十分重要,同时对于开发其它类型的嵌入式系统也具有一定的参考意义。什么是软 PLC 和硬 PLC作者:Free 文章来源:Free 点击数: 530 更新时间:2011-3-31 PLC 的实现分为硬 PLC 和软 PLC。 所谓硬 PLC 从严格意义上来
14、说是由硬件或者一块专用的 ASIC 芯片来实现 PLC 指令的执行而软 PLC 是用一些通用的 CPU 或者 MCU 来实现 PLC 指令的解释或者编译持行。 软件 PLC(SoftPLC,也称为软逻辑 SoftLogic)是一种基于基于 PC 机开发结构的控制系统,它具有硬 PLC 在功能、可靠性、速度、故障查找等方面的特点,利用软件技术可以将标准的工业 PC 转换成全功能的 PLC 过程控制器。软件 PLC 综合了计算机和 PLC 的开关量控制、模拟量控制、数学运算、数值处理、网络通信、PID 调节等功能,通过一个多任务控制内核,提供强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各
15、种 I/O 系统的及网络的开放式结构。所以,软件 PLC 提供了与硬 PLC 同样的功能,同时又提供了 PC 环境的各种优点。使用软件 PLC 代替硬件 PLC 有如下的优势:用户可以自由选择 PLC 硬件用户可以获得 PC 领域 技术/价格优势,而不受某个硬 PLC 制造商本身专利技术的限制用户可以少花钱但又很方便地与强有力的 PC 网络相连用户可以用他熟悉的编程语言编制程序对超过几百点 I/O 的 PLC 系统来说,用户可以节省投资费用软件 PLC 技术的形成背景20 世纪 90 年代后期,人们逐渐认识到,传统 PLC(本文简称硬 PLC)自身存在着这样那样的缺点:难以构建开放的硬件体系结
16、构;工作人员必须经过 较长时间的专业培训才能掌握某一种产品的编程方法;传统 PLC 的生产被几家厂商所垄断,造成 PLC 的性价比增长很缓慢。这些问题都成了制约传统 PLC 发展 的因素。近年来,随着计算机技术的迅猛发展以及 PLC 方面国际标准的制定,一项打破传统 PLC 局限性的新兴技术发展起来了,这就是软 PLC 技术。其特征 是:在保留 PLC 功能的前提下,采用面向现场总线网络的体系结构,采用放的通信接口,如以太网、高速串口等;采用各种相关的国际工业标准和一系列的事实上 的标准;全部用软件来实现传统 PLC 的功能。系统结构和应用特点(一)系统结构软 PLC 基于 PC 机,建立在一
17、定操作系统平台之上,通过软件方法实现传统 PLC 的计算、控制、存储以及编程等功能,通过 IO 模块以及现场总线等物理 设备完成现场数据的采集以及信号的输出。根据传统 PLC 的组成结构,软 PLC 系统由开发系统和运行系统两部分组成。也可分为编辑环境和运行环境两部分。编 辑环境与运行环境是客户服务器模式,二者之间采用 COMDCOM 通信机制,运行环境作为 COM 服务器,提供标准的通信接口;编辑环境作为 COM 客户端应 用,本地或远程访问存取这些接口,进行下载代码、读取运行环境的运行信息等操作。软 PLC 系统的整体框图如图 1 所示。图 1 软 PLC 系统的整体框图嵌入式系统通常由
18、EPC 或嵌入式控制器(也称智能控制器)和嵌入式软件组成,嵌入式软件又分为嵌入式操作系统和嵌入式应用程序,嵌入式操作系统的特 点是程序短小、所需内存少,Mi-crosoft 公司推出的 WindowsCE 就是一个嵌入式操作系统,而软 PLC 可以作为一个嵌入式应用程序运行在嵌入 式系统中。软 PLC 开发系统和运行系统是相互独立而又密不可分的两个应用程序,可以分别单独运行。1软 PLC 开发系统软 PLC 开发系统实际上就是带有调试和编译功能的 PLC 编程器,此部分具备如下功能:编程语言标准化,遵循 IEC61131-3 标准,支持多语言 编程(共有 5 种编程方式:IL,ST,LD,FB
19、D 和 SFC),编程语言之间可以相互转换;丰富的控制模块,支持多种 PID 算法(如常规 PID 控制算 法、自适应 PID 控制算法、模糊 PID 控制算法、智能 PID控制算法等等),还包括目前流行的一些控制算法,如神经网络控制;开放的控制算法接口,支持 用户嵌入自己的控制算法模块;仿真运行,实时在线监控,在线修改程序和编译;强大的网络功能。支持基于 TCPIP 网络,通过网络实现 PLC 远程监控, 远程程序修改。2软 PLC 运行系统这一部分是软 PLC 的核心,完成输入处理、程序执行、输出处理等工作。通常由 IO 接口、通信接口,系统管理器、错误管理器、调试内核和编译器组 成:IO
20、 接口,可与任何IO 系统通信,包括本地 IO 系统和远程 IO 系统,远程 IO 主要通过现场总 InterBus,ProfiBus,CAN 等实 现;通信接口。通过此接口使运行系统可以和开发系统或 HMI(或 MMI)软件按照各种协议进行通信,如下载 PLC 程序或进行数据交换; 系统管理器,处 理不同任务和协调程序的执行,而且从 IO 映像读写变量;错误管理器,检测和处理程序执行期间发生的各种错误;调试内核,提供多个调试函数,如重写、强 制变量、设置断点、设置变量和地址状态;编译器,通常开发系统将编写的 PLC 源程序编译为中间代码,然后运行系统的编译器将中间代码翻译为与硬件平台相 关的
21、机器可执行代码(即目标码)。(二)技术实现以西门子公司开发的软件 PLC 产品为例说明它的构成方式。第一种,在 PC 机上安装专用程序,使 PC 机用作为可编程控制器。该 PC 机上的操作系统是基于实时功能的,如:WindowsNT 或 WindowsCE 或 Linux 等,在西门子开发的应用软件 Pro-ToolPro 的支持下,实现控制和监视,在编程软件 STEP7 支持下,提供用户编程 环境。该 PC 机上还集成了现场总线 Profibus-DP 的通信协议及 Profibus-DP 接口,用以实现与分布式 IO 及其他现场设备的连接。第二种,将软 PLC 做成一块插板,安装在 PC
22、机的 PCI 总线插槽上。该 PLC 是可以独立工作的微机系统,与 PC 机无关,如有需要甚至可以用自身独立 提供的电源。PC 机可以容纳数个插槽式的 PLC,并把它们当作集成模块,在操作系统支持下既独立又协调地工作。这种软 PLC 对操作系统、控制软件和编程软 件的要求与第一种相同。在 PC 机的平台上,实现编程、运行、操作、监控数据存储及状态显示功能。当对实时控制的要求较低时,一般使用第一种结构,专用软件就直接安装在 WindowsNT 中,也可用带实时扩展子系统的软件,提高实时控制性能。如 果对控制器的可靠性和控制性能要求较高,可选择插槽式 PLC,因为它拥有自己的操作系统,有可靠的数据
23、存储和准确的重新启动功能。(三)应用特点应用特点为:体现了 IPC,PLC 和 DOC 先进技术的集成。可充分利用 PC 平台上的硬件和软件资源,使控制系统更具特色;系统更开放,应用更方 便。软件 PLC 通过自己开发工具提供的 OPC 功能和 Active 控件,既可连接 Office 软件,也可连接用 VB,VC 开发的软件;基于 PC+现场总 线+分布式 IO 的控制系统简化了复杂控制系统的体系结构,提高了通信效率和速度,降低了投资成本。技术优势及其发展的制约因素(一)技术优势软 PLC 解决了传统 PLC 的兼容性差、通用性差等问题,具有多方面的优势。软 PLC 的硬件体系结构不再封闭
24、,用户可以自己选择合适的硬件组成满足要求的软 PLC。传统 PLC 的指令集是固定的,而实际工业应用中可能需要定义算法。软 PLC 指令集可以更加丰富,用户可以使用符合标准的操作指令。PC 机厂家的激烈竞争使得基于 PC 机的软 PLC 的性价比得以提高。传统 PLC 限制在几家厂商生产,具有私有性,因此很难适应现有标准计算机网络,常常是 PLC 与计算机处在不同类型的网络中。软 PLC 不仅能加入到已 存在的私有 PLC 网络中,而且可以加入到标准计算机网络中。这使得现有计算机网络的很多研究成果很容易地应用到 PLC 控制技术中。软 PLC 的技术是基于 IEC61131-3 标准的,因此在
25、掌握标准语言后开发就比较容易。(二)发展的制约因素尽管软 PLC 技术具有很大的发展潜力,但是这项技术的实现需要解决一些重要的问题。其中主要是以 PC 为基础的控制引擎的实时性问题。软 PLC 首选的 操作系统是 WindowsNT,但是它并不是一个硬实时的操作系统。传统 PLC 具有硬实时性,正因为如此它才能提供快速、确定而且可重复的响应。而要让 WindowsNT 具有硬实时性,必须对它进行扩展,使得 PC 的控制任务具有最高的优先级,不因为 NT 的系统功能和用户程序的调用而被抢占。现在,我们可 以通过一些方法将实时性能加入到 NT 系统中去。比如,修改 NT的硬件抽象层,或者 NT 与
26、一种经过实用验证的硬实时操作系统组合。另外,WindowsCE 等操作系统具有了 NT 在硬实时性方面所不具备的特性。在实际开发中也可使用其他的操作系统作为平台。软 PLC 技术应用控制方案根据软 PLC 运行的硬件平台的不同,其控制功能的实现方案有以下三种。1基于 IPC 或 EPC 的控制方案在这种控制应用方案中,系统的软件平台可以采用 WindowsNT,WindowsCE 或 Linux 等,通用 IO 板卡和 IO 接线端子板(或现场总线 卡、现场总线以及远程 IO 模块)负责与工业控制现场打交道。采集上来的输入信号被软 PLC 运行系统处理,软 PLC 开发系统(编程器)编写的控制
27、应用程序也 被软 PLC 运行系统解释执行,最后将处理后的信号输出到本地(或远程)控制现场完成相应的本地控制(或远程控制)功能,及其控制方案和过程。2基于嵌入式控制器或智能控制器的控制方案嵌入式控制器是一个超小型计算机系统,一般没有显示器,其软件平台是嵌入式操作系统(如 WindowsCE)。在这种控制方案中,软 PLC 运行系统 可以作为一个固件被安装到嵌入式控制器中,开发系统编写的应用程序通过 RS232 或 TCPIP 协议下载到此控制器中,因此整个系统就如同一个黑盒子运行并 完成指定的控制功能。3基于传统 PLC 的控制方案。在这种方案中,传统 PLC 将只作为一个硬件系统平台,将软
28、PLC 运行系统安装到此传统 PLC 硬件中,然后将开发系统编写的 PLC 应用程序下载到此硬件系统并运行,即可实现PLC 的控制功能。软 PLC 技术相对于传统 PLC,以其开放性、灵活性和较低的价格占有很大优势。它简化了工厂自动化的体系结构,把控制、通信、人机界面及各种特定的 应用全都合为一体,运用于同一个硬件平台上。软 PLC 技术也存在着一些问题,例如,由于软 PLC 的运行环境是 Windows 操作系统,所以实时性不强;定 时器最大存在一个扫描周期的误差;扫描周期较长等。但是,这些问题可以通过改变运行环境、改进执行算法等方法加以解决。只要它们能实现控制的时间确定性, 即保证能以时间
29、高度一致的方式执行控制指令序列,并具有可预测的结果或行为。软 PLC 在未来的工业电气控制中定会占据重要的席位。成为继现场总线技术发展 的新亮点。开放式自动化解决方案应用于风力发电风能等可再生能源的广泛应用在全球能源供应体系中已取得良好的成效,全球都在致力于减少 CO2 的排放量,这也是推广风能在全球应用的重要动力。随着风能应用的发展,除了在这一领域占据主导地位的欧洲市场,近年来,中国、印度等新兴市场 包括美国在内 也渐渐崭露头角,以惊人的速度冲击风能开发前沿,这也对风力发电机及其自动化程度提出了全新的要求。这些需求具体体现在并网的条件差异和在更加宽泛的气候条件下运行的需要上。多年前,风力发电
30、机在北极地区或沙漠气候环境下的应用还未纳入研究课题,而现在,在极端气候条件下的应用已被提升为一项行业标准。因此,风力发电机制造商在面对不断变化的市场需求时,为了确保其产品的市场竞争力,必须保持最大的灵活性。目前,Beckhoff 基于 PC 的控制技术和自动化组件在风力发电机组中的应用规模已达到 5MW(包括诸如北部海角( North Cape)等寒冷地区和内蒙等极端气候地带),为满足上述要求做出巨大贡献。基于 PC 的控制技术显著提升系统的连续性和灵活性Beckhoff 实现开放式自动化系统是以基于 PC 控制技术的原理。这种开放性涉及到软件和硬件接口,风力发电机制造商可借助这种开放性让他们
31、的系统能够适应不断变化的需求,这些需求包括:初期的方案设计以及将来的低成本系统扩展或改造。可升级的控制技术Beckhoff 的产品范围包括工业 PC、I/O、现场总线组件和 TwinCAT 自动化软件,它们构成了一套集成式、可满足不同需求的模块化控制系统。为风力发电机中与处理能力、复杂性和成本等相关的每项任务提供合适的解决方案。针对其基于 PC 的自动化解决方案,Beckhoff 可为所有动力类型的风力发电机提供硬件平台。Beckhoff 解决方案应用于风力发电Beckhoff 的开放式、可分不同级别的 TwinCAT 自动化软件是一种专为 PC 设计的 PLC 软件。该软件符合国际编程标准
32、IEC61131-3,为风力发电机制造商的高投资回报率保驾护航。采用基于 Windows 操作系统的技术大大增加了扩展选项,让用户受益于计算机产业的快速发展。该项技术可通用于所有类型的风机。生产数据无论是从纵向(从机器到中央控制室)还是横向(在单个智能组件和风力发电机子系统之间以及风场内的风力发电机之间)来看,数据供应和数据管理在风力发电机性能控制和评价中都占据重要地位。本地数据库是更高级数据备份和数据编辑的基础,它适用于任何 PC。将所有功能都移植到 PC 硬件也大大简化了将数据传输(一般通过以太网)到生产数据库和 ERP 系统的过程。达到 I/O 级的最大性能Beckhoff 为所有通用的
33、输入输出信号和现场总线系统提供全系列现场总线组件。各种总线端子模块和 EtherCAT 端子模块囊括了与风电相关的各种信号类型和总线系统。XFC 技术 充分利用 EtherCAT 的通讯优势EtherCAT 是一种基于以太网的高速现场总线,它可为对时间有严格要求的应用提供最佳实时性能,而无需在中央处理器内配备特殊硬件。采用 XFC 技术(极速控制技术)后,利用时间戳技术可获得小于 100 ns 的时间分辨率。传感器信号可以在不到 10 微秒的采样时间内被扫描读入系统。利用 TwinSAFE 集成安全功能近年来,运行安全和工作安全在机器制造领域的地位越来越重要。通过 TwinSAFE,Beckhoff 提供了一种集成式系统解决方案,将自动化技术和安全技术完美结合在一起。TwinSAFE 将安全功能集成到现有控制架构中,显著降低了风力发电机中因建立更高级别硬连接方式的安全链而产生的接线成本。