西门子模块6ES7221-1EF22-0XA0诚信经营
随着Internet和后PC时代的到来,嵌入式系统的应用愈来愈广泛,嵌入式产品在人们的生活中无处不在。,嵌入式系统带来的工业年产值已超过1万亿美元,已经在IT产业中占有很大的比重。
通常,应用程序对嵌入式软件的基本要求是体积小、执行速度快、具有较好的裁减性和可移植性。嵌入式软件的灵魂是嵌入式操作系统。在特定的操作系统之上开发应用软件,可以让程序开发人员屏蔽掉很多低层硬件细节,使得应用程序调试方便、移植简单、易维护,开发周期也短。目前,实时操作系统很多,如VxWorks、bbbbbbCE、pSOS、QNX、LynxOS等等。这些操作系统都具有高可靠性、很强的实时性等特点,但它们都是商业操作系统,价格昂贵,人们往往很难接受。μC/OS-II的出现是对这些商业操作系统的一个很大的冲击。μC/OS-II是源码公开的实时操作系统,是一个自由操作系统。程序开发人员可以改写源代码,使之符合自己的要求。裁减掉不需要的部分,使操作系统变得小巧、灵活,并且能满足用户特定操作系统的需要。
1μC/OS-II简介
μC/OS-II并非一个完整的实时操作系统,它只是一个实时内核。μC/OS-II不像其它实时操作系统一样,提供给用户的是一个标准的API函数,程序开发人员利用操作系统提供的API函数进行应用程序的开发。要想在μC/OS-II内核上进行应用程序的开发,就需要程序开发人员在实时内核的基础上建立自己的实时操作系统。把μC/OS-II移植到自己的硬件目标板上,写出相应的驱动程序以及用户图形界面等等;在这些接口函数之上,加上用户自己的应用程序,就构成了嵌入式软件。
2μC/OS-II在EP7312上的移植
μC/OS-II的移植条件是:只要该处理器有堆栈,有CPU内部寄存器入栈、出栈指令;使用的C编译器支持内嵌汇编(inlineassembly)或者该C语言可扩展,可连接汇编模块,使得关中断、开中断能在C语言程序中实现。CirrusLogic公司生产的EP7312芯片内部采用的是ARM720T处理器,内部有37个寄存器。其中R13通常用作堆栈指针。堆栈寻址是隐含的,堆栈指针所指定的存储单元就是堆栈的栈顶,堆栈寻址通常有两种方式向上生长和向下生长。ARM处理器有ARM和Thumb两种指令集。每种指令集都有丰富的指令可以对堆栈进行操作。堆栈指针指向后压入堆栈的有效数据,称为满堆栈(fullstack);堆栈指针指向下一个数据项放入的空位置,称为空堆栈(emptystack)。根据堆栈的生长方向不同,可以生成4种类型的堆栈,即满递增、空递增、满递减、空递减。我们所使用的ARM SDT(ARMSoftware DevelopmentKit)开发系统内含的编译器,同样也支持内嵌汇编,μC/OS-II完全可以移植到EP7312上。
[NextPage]
μC/OS-II核心代码很小,程序开发人员要把它移植到自己的目标板中只需做少量的工作。图1是μC/OS-II硬件和软件的体系结构。
μC/OS-II大部分源代码是用C语言写的,完成和处理器一些有关的代码时,还是必须要用汇编语言来实现的。寄存器的读、写只能通过汇编语言的存储和加载指令来实现。要使μC/OS-II能够正常工作,处理器必须满足以下要求:
① 处理器的C编译器能产生可重入代码;
② 用C语言可以打开和关闭中断;
③ 处理器支持中断,并且能够产生定时中断(通常在10~100Hz之间);
④ 处理器能够支持容纳一定量数据的硬件堆栈;
⑤ 处理器有将堆栈指针和其它寄存器读出和存储到堆栈或内存中的指令。
μC/OS-II的移植包括以下几个部分。
(1)设置与编译器有关的代码[OS_CPU.H]
在不同的处理器中有不同的字长,必须定义一系列数据类型以确保移植的正确性。在μC/OS-II中,不使用C的short、int和long等数据类型,这些都是和编译器相关的。下面就是μC/OS-II定义的一部分数据类型。
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; /*无符号8位整数 */
typedef signed char INT8S; /*有符号8位整数 */
typedef unsigned int INT16U; /*无符号16位整数 */
typedef signed int INT16S; /*有符号16位整数 */
typedef unsigned long INT32U; /*无符号32位整数 */
typedef signed long INT32S; /*有符号32位整数 */
typedef float FP32; /*单精度浮点数 */
typedef double FP64; /*双精度浮点数 */
μC/OS-II需要先禁止中断访问代码的临界区,并且在访问完毕后重新允许中断。μC/OS-II定义了两个宏来禁止和允许中断:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。
#define OS_ENTER_CRITICAL() IRQFIQDE
#define IRQFIQDE __asm
{
mrs r0, CPSR;
stmfd sp!, {r0};
orr r0, r0, #NOINT;
msr CPSR_c, r0;
}
#define OS_EXIT_CRITICAL() IRQFIQRE
#define IRQFIQRE __asm
{
ldmfd sp!, {r0};
msr CPSR_c, r0;
}
#endif
(2)编写4个汇编语言函数[OS_CPU_A.S]
μC/OS-II的移植实例要求用户编写4个简单的汇编语言函数:
OSStartHighRdy()
OSCtxSw()
OSIntCtxSw()
UCOS_IRQHandler
详细内容见本刊网络补充版(http://www.dpj.com.cn)。
(3)用C语言编写6个与操作系统有关的函数[OS_CPU_C.C]
这6个函数是:
OSTaskStkInit()
OSTaskCreatHook()
[NextPage]
OSTaskDelHook()
OSTaskSwHook()
OSTaskStatHook()
OSTaskTickHook()
这6个函数只对OSTaskStkInit()编写代码,后5个函数必须声明,内部并没有代码。OSTaskCreate()和OSTaskCreateExt()通过调用OSTaskStkInit()来初始化任务的堆栈结构。这个函数的移植代码,可参考文献[3]。
3测试、编写驱动和应用程序
做完以上工作以后,就要测试移植的是否正确。测试一个μC/OS-II实时内核并不复杂,就是让这个实时内核在自己的目标板上跑起来。开始时,可以运行一些简单的任务和时钟节拍中断任务,如果调试成功就可以在上面添加应用程序。
μC/OS-II移植完成以后,就要在这个实时内核之上编写接口驱动程序。由于嵌入式操作系统体积更小,功能更强,且快速、稳定,更具有针对性,不像其它操作系统那样,对系统的所有接口设备都需要驱动、管理、调度和监视。由于嵌入式产品是针对特殊的用途而设计的,有很强的专一性,在编写驱动程序时内容更精简,更具有稳定性,编写出的驱动模块更小。编写驱动程序应完成以下基本功能:①对设备初始化和释放;②把数据从内核传送到硬件和从硬件读取数据;③读取应用程序传送给设备文件的数据和回送应用程序请求的数据;④检测和处理设备出现的错误。实现了以上功能以后,一个嵌入式操作系统就基本构成了。
完成了μC/OS-II的移植和驱动程序的编写以后,利用操作系统提供的API函数编写应用程序,调用μC/OS-II中与应用程序相关的系统服务。调试通过后,固化到目标板上,这个嵌入式应用软件就完成了。
为保证铁路交通系统的快速高效的运行,目前铁路交通系统对信号的电源系统的可靠性要求越来越高,铁路交通系统中信号的电源系统监控的实时监控变得更加重要,本项目为此提供的PLC解决方案使得客户的要求得到了满足。
1 引言
电源监控是铁路信号的重要的监控系统。在此之前信号的电源监控系统基本上是采用单片机作为信号采集系统的核心。单片机监控系统一方面存在采集速度慢、界面不友好、操作不方便等技术局限,另一方面由于其中的电源模块部分的监控相对独立,对电源系统带来了诸多不便,比如维护困难、界面显示繁琐等。基于以上原因本项目配套开发了基于台达PLC作为信号采集核心、台达HMI触摸屏作为操作和监视界面的电源监控系统。监控子系统与电源模块通过工业总线网络互连实现整合的经济实用、技术先进的铁路信号的电源监控系统。
2 硬软件系统设计
2.1硬件体系设计
图1 硬件体系设计
铁路信号电源监控硬件体系设计参见图1。系统规模:44个数字量输入;1个数字量输出;6个电源模块;39路模拟量输入。
控制系统配置如下:触摸屏:DOPA75CSTD;PLC:DV P16EH00T+1个DVP04AD-H+3个DVP16HM11N;电源模块通讯卡1块;分时采集电路卡1块。
[NextPage]
触摸屏主要是用来显示采集数据、报警、报警上下限设定、采集数据显示微调、报警数据显示、历史趋势图显示等。PLC主要是采集数据并计算,由于考虑系统对模拟量采集的速度要求不是很高,为了节省成本,系统中使用了1 个DVP04AD-H对39路模拟量进行了分时采集,为了实现这个功能我们与厂家共同实验开发了一个电子开关电路,对39路模拟量分了十组、每组4路,通过输出不同的组别进行采集。电源通讯卡主要负责把6块电源模块的数据汇总并且通过RS484接口以MODBUS协议与PLC通讯,使PLC采集得到6块电源模块的数据,为实现这个功能我们公司的电源研发部门做了大量的工作,终使PLC与电源模块的通讯卡实现了通讯,电源模块的信息得到了采集。
2.2软件体系设计
(1)系统功能设计:44个数字量采集显示,故障判断;6个电源模块的数据采集显示、显示电源模块的工作状态并判断报警;39路模拟量显示、并判断上下限报警;显示报警画面、报警信息、当前报警、报警频次;报警上下限设定;数据微调功能,并且显示微调值;
历史趋势图显示;不同画面开启权限设定;
以上有必要说明的是数据微调功能,由于现场的一次测量元件测量会有误差,此误差是固定的,短时间内是不变的,在程序当中增加这部分功能,使终显示出来的数值是消除误差之后的值;
(2)系统结构设计分为HMI人机对话界面部分和PLC现场监控部分。HMI部分主要构架参见图2。
[NextPage]
图2 HMI人机对话界面
PLC监控部分主要包括:电源模块通讯;分时采集40路模拟量,每次采集4路;对采集的模拟量根据量程进行计算得出显示值,显示电源模块的工作状态并判断报警;微调值计算,显示值微调,并做负值消除;故障和报警;数字量采集显示,故障判断;
3 工程调试
调试分时采集功能时需要注意分时采集的时间,过大会影响整体数据采集的时间,过小会造成采集数据混乱,需要在两次采集数据之间加一段间隔时间,避免两组数据的重叠。对采集的模拟量根据量程进行计算得出显示值。微调值计算,显示值微调,并做负值消除;注意微调时可能会出现负值情况,要考虑负值的消除。电源模块通讯注意电源通讯时的通讯协议一定要在通讯卡中设置好,包括站号设定,注意地址对应。故障和报警;因为报警点共有79个,很繁琐,需要思路清晰。
1 引言
提高薄膜收卷质量对塑料薄膜的二次加工至关重要;对于薄而易变形的薄膜的收卷,一个重要的方面就是要实现薄膜牵引和卷取过程当中的恒线速度控制。我们建立了牵引和卷取的恒线速度控制图,构成了由计算机、可编程控制器、变频器等组成的硬件系统,实现了计算机和可编程控制器、可编程控制器和变频器之间的通信。
2 恒线速度控制图的建立
2.1 异步电机在两相同步旋转(M、T)坐标系中的数学模型[1][2]
在同步旋转坐标轴系中,电压方程式可用右式表示:[μ]MT =[Z]MT [ī]MT (1) ,
同步旋转轴系上的数学模型为:
式中 分别为M、T同步旋转轴系的定、转子电压和电流;ω3 为M、T轴系的同步旋转角速度,即定子频率角速度; (转差角频率)。
M、T坐标轴系的力矩表达式为:
2.2 异步电机的状态方程[1][2]
研究一个三相系统时,采用同步旋转坐标轴系,其状态方程中的系统矩阵A和输入矩阵B与θr无关,可以简化求解过程。如果取定子和转子电流I(t),转速ωr(t)为状态变量,定子电压μ,频率ω3(t)及负载转矩TL(t)输入量,则异步电机在同步旋转轴系中的状态方程为:
由式(4)可见,在同步旋转坐标系中,异步电机调速系统在一般情况下也是一个非线性系统,应用线性多变量系统理论对式(4)进行线性化,可得线性化后的状态方程:
2.3 牵引和卷取恒线速度控制系统示意框图
根据吹塑薄膜牵引和卷取的实际情况[3][4],可画出恒线速度控制示意图,如图1所示。其中 为角速度计算值[5],保证电机按计算出的卷径调节转速并加入张力调节的影响;ω为终实际输出角速度,反馈至卷径计算单元参与卷径计算。为了镇定系统的张力,对△V 部分的运算,采用了PI计算(过程调节)。
由异步电机的状态方程可得异步电机的控制方块图,如图2所示。其中 是异步电机在同步旋转轴系中的状态方程,ω1为给定的定子角频率,ω为转子角频率,θμ为定子电压矢量与t轴的夹角。为了消除稳态误差,减少速度跟随误差,改善系统的动态特性,需加入比例、积分和微分校正环节。
[NextPage]
3 系统硬件设计
对于吹塑薄膜自动生产线,一方面电机的数目较多,另一方面电机分布距离不是很近。卷取部分的控制系统采用计算机为上位机,PLC为下位机来实现对整个系统的控制,PLC与变频调速器可构成多分支通讯控制网络[6][7]。利用通信技术,由计算机控制PLC,PLC直接控制变频器完成多电机调速,其方法是将通讯模块集成在变频器中或利用通讯模块与PLC连接,通过通讯接口控制变频器带动电机调速。PLC采用三菱公司的FX2N-64MR-001,变频器采用三菱公司的FR-A540,编码器采用增量型编码器。
计算机的通信接口RS232和PLC的通信功能扩展板FX2N-485-BD之间通过RS232C/PLC 变换接口FX2N-485PC-IF连接[8],如图3示。
PLC和下位器件之间关系如图4所示。变频器的通信连接单元为FR-CU03,符合RS-422/RS-485通信规范;3MD2系列PLC数字显示器可以实时的显示PLC中的数据。电机1、2转速的计算和比较,张力反馈的PI调节等都由PLC来完成。
由图3和图4构成整个控制系统硬件的连接,这样的连接可以实现计算机对PLC远距离的调试与监控、PLC的离线编程、PLC对变频器的远距离监控等操作,使对薄膜吹塑生产线的控制更灵活。
4 软件实现
考虑到使用的方便,采用基于bbbbbbs操作系统的软件包SWOPC-FXGP/WIN-C,可对FX全系列可编程控制器(FX0S、FX2N、FX0N、FX2、FX2C)进行编程和控制[9]。这种软件可以实现寄存器数据的传送、PLC存储器清除、串行口设置(D8120)、运行中程序更改、遥控运行或停止、PLC诊断、采样跟踪和端口设置等操作;可读取和显示可编程控制器中的程序,实现文件的发送和接收;可监控和测试可编程控制器,实现动态监视器、元件监控和显示监控数据的变化值(十六进制)等功能;可以实现梯形图、指令表和顺序功能图(SFC)程序的相互切换显示,显示多个功能窗口。
[NextPage]
要实现对薄膜牵引和卷取的恒线速度控制,需要PC与PLC之间点对点的串行通信和PLC与下位器件之间进行正确通信,这需要设定握手信号和数据传送格式。为了避免发送与接收的帧错,发送与接收采用相同的数据格式。
4.1 计算机和PLC的通信协议
为了使计算机和PLC进行正确地通信,必须对PLC的特殊寄存器作相应的设置[8]。D8120用来设置数据长度、校验形式、波特率和协议方式;D8121用来设置站号(设置范围为00H-0FH);D8122和D8123分别存储待传送数据和已传送数据的长度;D8124存储数据开始位(初始值:STX);D8125存储数据结束位(初始值:ETX);……D8129用来设置间歇校验时间。上位机和PLC的通信协议有多种格式,我们所使用的专用通信协议格式4如图5、6、7所示,图5和图6中的和校验码是从站号开始到数据结束的所有字节转化为ASCII码相加后的末两个字节。
主要控制字符含义如下:ENQ:计算机的请求信号(05H);ACK:无校验错误,PLC的应答信号(06H);NAK:检验到错误时,PLC的应答信号(15H);STX:信息帧开始标志(02H);ETX:信息帧结束标志(03H);ETO:传输结束(04H);LF:数据供给(0AH);CL:清空初始化(0CH);CR:传输开始(0DH)。
[NextPage]
4.2 PLC与变频器之间的通信协议
在PLC与变频器构成的1:2通信网络中,每个变频器为一个子站,其站号由参数设定单元设定。工作过程中,PLC通过FX2N-485-BD发有关命令信息后,各个子站均收到该信息,每个子站判断该信息的站号地址是否与本站站号一致。若一致则处理该信息并返回应答信息;若不一致则放弃该信息的处理。这样就保证了在网络上只有一个子站与主站交换信息。通信协议仍采用专用通信协议格式4,如图5、6、7所示。
4.3 PLC程序组成
PLC程序主要由主程序模块,通信组织子程序,接收数据帧处理子程序,发送数据帧处理子程序,电机速度的计算和比较、卷径计算子程序,故障处理子程序等组成。与PLC和PC机通信有关的主要功能指令如图8所示。
5 结论
本控制系统应用于吹塑薄膜生产线的牵引和卷取控制,避免了由于牵引速度和卷绕速度不同步而造成的薄膜在牵引辊上自卷或者薄膜厚度达不到要求等问题,使生产更加稳定,提高了薄膜收卷质量。