找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于S12X双核微控制器的染色自动化控制器

[复制链接]
admin 发表于 2013-3-28 20:26:29 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 提出了基于S12X双核微控制器的染色自动化控制器的设计方案,重点介绍了XGATE协处理的编程方法以及在染色控制流程中的应用。通过实例验证了该方案完全能满足染色工艺过程的控制需要。
关键词: CAN;XGATE;染色工艺
       在纺织工业中,染色工艺过程是纺织品上色的一个重要生产环节。布料染色要求在不同的升温、降温过程中严格按照一定的升温速率或降温速率进行,而且对于不同的染料、不同的纺织品,所要求的染液温度变化曲线也不同[1]。图1所示为实际生产中的一个典型阶梯升温工艺示意图。该工艺分为3段:第1段保温温度为80 ℃,保温时需要正反转的次数(道数)为1道;第2段保温温度为90 ℃,道数为1道;第3段保温温度为135 ℃,道数为2道。
    2012110704460359935934.gif
       长期以来,染色工艺过程都是由通用型温度控制器配合人工操作来完成。这种基于通用型温度控制器的人工控制染色方式很难保证工艺上所要求的严格的升、降温变化速率,而且不同的工人在操作同一种工艺要求时也会产生差异,从而影响产品的质量和产量。同时染色车间温度高、湿度大,操作人员的劳动条件十分恶劣,也在一定程度上影响了产品的质量。为了提高产品的质量并降低工人劳动强度,设计了一套染色自动化控制器,主要用于实现染色工艺的单机控制,完成阶梯升温染色工艺的设置和显示、自动化控制等功能,并为接入现场总线控制系统预留接口。
1 方案设计
     在染色工艺过程中,染缸内、外缸的温度检测采用PT100温度传感器;阶梯升温工艺采用PID算法控制电磁阀对染液实现温度的控制;在保温阶段,利用固态继电器控制卷筒直流电机正反转动,实现布料的均匀染色。
     染色自动化控制器采用MC9S12XDP512微控制器作为控制核心,其系统框图如图2所示。该系统分为人机交互单元、现场控制单元和CAN总线单元三部分。其中,人机交互单元由数码显示、LED显示和键盘输入部分组成,用于染色工艺的设置、显示以及运行状态的显示、报警。现场控制单元采用并行总线,扩展了12位高精度A/D转换器,采样由PT100检测、经过调理过的温度信号,采用PID算法控制染液温度;同时完成织物正反转,实现染色工艺过程自动化控制。CAN总线单元采用MC9S12XDP512内置CAN模块,实现了现场总线控制系统的构架。
    2012110704460366185935.gif
   2 硬件设计
2.1 MC9S12XDP512

     MC9S12XDP512是Freescale公司生产的新一代16位微控制器,以增强型HCS12内核为基础,集成了外设协处理器XGATE[2]。
     XGATE是一个独立于HCS12X主CPU的可编程RISC内核,可作为高效的DMA控制器,在外设与RAM之间自主地进行高速数据传送,并在数据传送过程中进行灵活的数据处理。
     XGATE精简指令集内核中有8个16位通用寄存器R0~R7,1个程序计数器PC,1个4位的条件码寄存器CCR。XGATE共有72条独立指令,指令时钟最高可达100 MHz,是HCS12X主CPU总线速度的2倍;可访问64 KB的片内空间,包括2 KB的片上外设寄存器、30 KB的片上FLASH和最大32 KB的片内RAM。
2.2 XGATE的编程
     XGATE的代码执行是由事件(中断)驱动的,图3所示为S12X系统微控制器的典型中断处理过程。其中,中断的配置寄存器INT_CFGDATAx决定了该中断的处理内核及中断优先级。如果RQST位置为1,则选择XGTE协处理器处理当前中断;反之则选择HCS12X主处理器。当XGATE的中断服务程序处理结束后通知HCS12X,并将处理结果提交给HCS12X。这样HCS12X只需关注上层的控制算法,而与底层密切相关的硬件操作由XGATE处理,极大地提高了系统性能[3]。
    2012110704460367747936.gif
   3 软件设计
       在染色工艺过程中,染缸内、外缸阶梯升温工艺的PID控制以及工艺过程控制最为重要。同时,人机交互单元需完成染色工艺参数的设置和运行状态的显示,非常繁琐。而CAN总线单元主要用于现场数据的上传下达,实现印染工艺、数据的集中管理控制。
     所以在本系统中,现场工艺控制与数据传递分别用两个不同的内核完成,从而保证了现场控制的实时性、准确性和可靠性。其中,人机交互单元和现场控制单元由MC9S12XDP512中功能强大的HCS12X主处理器来实现。CAN总线单元由XGATE协处理器实现,其中工艺参数的上传由软件中断触发XGATE中断服务程序,而上位机的控制指令(如运行状态控制、工艺参数下传)由CAN发送中断触发。
3.1 工艺流程控制
     在染色工艺过程中,各参数的变化过程比较缓慢,所以在控制过程中以100 ms为一个控制周期,其控制流程如图4所示。
    2012110704460369309937.gif
   
     在每个控制周期中,首先进行温度采样,获得内、外缸的温度,然后调用温度控制子函数实现快速升温或保温;接着判断织物是否已到头,如到头则一道工艺结束,置转动到位标志,准备反转;然后调用工艺过程子函数,确定当前工艺状态,完成工艺控制。上述流程由HCS12X完成,工艺过程中需上传的工艺参数(如温度、道数、电磁阀的状态、转动方向、左右计数器的计数值)存储在数据共享区。最后置软件中断位,触发XGATE的软件中断。当XGATE进入软件中断服务程序后,首先初始化、清相关标志位,然后将所有数据从共享区复制出来,再做数据解析,最后通过MC9S12XDP512内置的CAN模块将现场工艺参数发送到现场总线控制系统。
3.2 数据共享的实现
     本系统基于双核处理方式,HCS12X与XGATE之间需进行数据通信,其最基本的方式是内存空间的数据共享。由于两个内核都能独立异步地访问该共享空间,所以必须保证共享数据的完整性。S12X双核微控制器集成了8个硬件互斥信号量,在访问共享数据时,首先必须将特定信号量锁定后才能操作,访问结束时必须释放该信号量。
     (1)数据定义
     工艺过程中需上传的工艺参数有温度(内、外缸)、道数、电磁阀的状态、转动方向、左右计数器的计数值。本系统将所有工艺参数定义在如下结构体中:
     struct TechPara{
         float VatTemp,DyeTemp;//内、外缸温度
         unsigned char TempNum;//道数
         unsigned char Status;//电磁阀的状态、转动方向
         unsigned int LeftCout,RightCount;//左右计数
     };
     (2)互斥信号的处理
     XGATE用SSEM指令加上一个3位立即数来锁定该信号量;若锁定成功则XGATE的进位标志C置位,否则C被清零。同时XGATE用CSEM指令加上一个3位立即数来释放该信号量。其具体操作宏定义如下:
     #define SET_SEM(x)  (XGATE.XGSEM=0x0101&lt;<(x))
//锁定互斥信号
     #define TST_SEM(x)  (XGATE.XGSEM &amp; 0x0001<<(x))
//测试锁定是否成功
     #define REL_SEM(x)  (XGATE XGSEM = 0x0100<<(x))
//解锁互斥信号
     阶梯升温染色工艺的控制过程分快速加热过程和保温过程。考虑到染缸系统的特性,通过设定低于保温温度下的某个阀值将一段快速升温和保温分为3段,即快速升温的前期、后期、保温期。对每个升温期分别采取不同的控制策略:(1)染缸快速升温的前期实行数字PD控制;(2)染缸快速升温的后期和保温期间运用数字PI控制。
     某印染厂染色车间采用自动化控制器完成印染生产,经3个月实际运行后发现,在设定温度低于100 ℃时,快速升温阶段有微量过冲,过冲量小于2 ℃;在保温阶段温度控制得比较好,控制精度小于&plusmn;0.5 ℃;设定温度高于100 ℃时,其控制精度小于&plusmn;0.5 ℃,完全满足温度控制要求。其控制过程完全符合染色工艺要求。
参考文献
[1] 江枫.基于CAN的印染机分布式控制系统的实现和算法研究.东南大学硕士论文,2005.
[2] MC9S12XDP512 Data Sheet[EB/OL].http://www.freescale.com,2006.
[3] 高磊.S12X MCU外设协处理器的配置及编程[J].电子产品世界,2008(1):107-109.
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-1-3 00:50 , Processed in 0.060425 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表