西门子6ES7214-1BD23-0XB8型号含义
一、工程概述:
在我国电子行业及规范产品行业都需要,喷码,出货扫描及包装工艺,其大部分厂家还处人工作业,人工作业面临的不仅仅是效率问题还有扫描链接重扫出错而无法从良品中找到出错码制的产品。使用全自动流水线在大大提高效率的也提高生产质量。下面就来介绍UniMAT产品在整个自动化线上的应用。
二、工艺介绍及系统要求
1.工艺:喷码机喷码—扫描枪扫描条码—PLC识别条码信息—存储—传送上位机—出货扫描—自动装箱
2.硬件部分:多米诺喷码机、可进行二维码扫描扫描枪、SIEMENS CPU224、UniMAT扩展模块:UN221-1BL22(1)、UN222-1BL22(3)、UN232-0HB22(2)、CP243-1 IT、变频器、工控机及包装机结构,对射光纤及电磁阀等等;
3.喷码码制为34进制,喷码设备通过光电反射传感器感知产品,把喷码信息传送喷头,喷头通过高电压产生电弧,墨汁告诉喷出形成二维码制;
4.对条码的识别率高,检测速度快,可自动检测各种规格和大小的条码;
5.条码扫描具备网络通讯功能,可将一条产线的多套扫描器扫到的条码信息通过网络传送给产线数据采集电脑,统一进行数据收集;
6.系统提供漏扫报警,并可接手持条码扫描设备补扫条码;
7.提供条码自动识别功能,当条码出现时,可自动进行扫描记录,不用人为干预;
8.系统适应性广,针对不同类型条码、不同安装方式和安装位置,要能自动适应或经过简单调整适应;
9.提供计算机上微机自动条码记录与管理软件,将扫描到的信息根据时间和类型存储,供生产管理系统进行跟踪和管理;
10.提供网络功能,传输数据到产品数据库内;
11.完成出货扫描进入包装设备,包装效率问题。
三、系统配置与功能实现
1.条码扫描原理
该系统在物件运送的辊道上安装条码扫描器,当物件通过时自动识别物件上的条码标记,从而判断应采取的动作。系统根据读到的条码信息,按事先的约定进行处理,包括物件要存放的位置、是否放行、非正常情况的报警等、并和PLC、上位计算机进行数据交换。
物件的条码由条码扫描器读入并通过通讯转换送入PLC的通讯口,我们采用的PLC是S7-200系列的226PLC。它是西门子公司生产的性能价格比很高的可编程控制器,已广泛应用于工业控制的各个领域。
PLC采用自由通讯口方式读取条码的信息,主要用到3个寄存器SMB2、SMB3、SMB30。通讯接收字符缓冲器SMB2用于存放在自由口通讯方式下接收到的当前字符,它是一个暂存寄存器,一般应在下一步取走其中的内容。通讯校验结果寄存器SMB3,在作自由口通讯时,PLC的通讯接口按由SMB30规定的奇偶校验方式对所接受到的信号作校验。若检测到错误,PLC自动把SMB3.0置1,根据此标志位,可决定当前信息的取舍,还可在出错的情况下,将此错误信息发给对方,要求重发。控制字寄存器SMB30用于存储通讯方式控制字,由用户写入,属于可读写的特殊标志位寄存器,其格式如下:
上位PC机与PLC之间通过一个RS232/485转换器连接,上位PC机的监控程序采用北京亚控公司的组态王(Kingview)完成。组态王是国内使用较多的工控平台,具有良好的人机界面和网络功能。在组态环境下,设计人员对PLC进行参数、状态、条码设定;运行环境以人机界面的形式对条码信息监控,对PLC发出控制命令,对有关数据存储报表,利用Web功能使系统具有在线监控功能,即在上位机授权的情况下在任何一台联网的计算机上用标准的浏览器可远程监控。限于篇幅,监控程序不再详述。
(1) 条码自动扫描器:采用工业级高精度激光条码扫描器,条码适应性广,漏扫率低,带有丰富的接口功能,是扫描系统的核心设备;
(2) 光电开关:安装在PCB 板进出扫描区域的两端,用于界定条码扫描器的有效范围,超过有效范围后认为扫描过程结束;
(3) 报警装置:当条码在扫描范围内没有被识别,触发报警装置,提示产线人员补扫;
(4) 手持条码扫描器:自动扫描无法扫描时用手持设备补扫条码;
(5) 产线联动控制器:和条码自动扫描器建立联系,出现漏扫时,自动停止产线工作,等待补扫成功后再允许产线工作;
(6) 总线通讯网络和数据采集计算机:产线根据工位一般配置4-8 个条码自动扫描器,这些扫描器通过CAN总线连接,终连接到产线计算机上,进行扫描数据采集;
(7)条码数据记录与管理软件:一方面通过总线网络和产线的各台条码扫描器通讯,实时收集新的条码信息,存储在数据库中;另一方面将这些信息定时发送给企业生产监控管理系统,用于全厂级的生产管理;
(8)相关安装部件:为保证条码扫描设备的正常工作、更换条码时调整方便,设计了条码扫描专用安装部件,将上述的各设备组合在一起,保证系统稳定正常工作。
四、使用效果分析
该条码自动扫描流水线系统自投运以来,已在某大型电子厂安装50 余条产线,经过2年的连续工作,条码识别率高、漏扫率低,运行稳定可靠、调整维护方便,充分适应产品更换频繁、条码类型多样、条码位置不固定等各种情况。用户普遍反映,该系统可以满足生产需要。
它的主要功能是系统加电后初始化目标硬件,初始化OS,及提供部分硬件的驱动程序如时钟、中断、串口驱动等。其与内核、驱动程序及应用程序之间的关系如图4:
如图可见 BSP为上层软件与底层硬件之间进行交互的桥梁,为上层提供统一接口。BSP中包括的驱动程序与具体的硬件相关,在移植到不同的硬件系统的时候,要修改相关的驱动。
4.2 VxWorks BSP 的特点
在众多的商用嵌入式实时操作系统中,VxWorks是使用极为广泛的一种操作系统,它实时性强,占用空间小,提供丰富的网络协议,有众多的调试手段。
VxWorks 的BSP 可以按功能分为两大部分。
1)目标系统的系统引导部分:主要是目标系统启动时的硬件初始化,在目标系统上电后开始执行,主要是配置处理器的工作状态,初始化系统的内存等,这部分的程序一般只在系统引导时执行,为操作系统运行提供硬件环境。
2)目标系统的设备驱动程序:主要是驱动目标系统配置的各种设备,包括字符型设备、块存储设备、网络设备等,这些设备驱动程序完成对硬件的配置,操作系统通过设备驱动程序来访问硬件,从而完成读取数据和外界的交互等。
在实际应用中,为了获得更好的稳定性和执行效率,许多设备驱动程序会直接和应用程序捆绑在一起,而不是由操作系统来管理。
4.3 BSP 的设计与修改
WRS 提供了大量预制的,支持许多商业主版或评估板的BSP,减少了开发时间。
宏观来看,BSP 包括两部分:
初始化部分:CPU 初始化;目标板初始化;操作系统的初始化。
驱动程序部分:一般要包括时钟、中断、串口驱动。
具体来看,BSP 包括源文件、头文件、派生文件。主要需要修改VxWorks 源码中的以
下目录中:
/target/config/all
几个重要文件的功用如下:
1)bootConfig.c:引导ROM 映像的主要初始化和控制文件。
2)bootInit.c:引导ROM 映像的第二阶段的初始化代码。实现romStart 函数--romInit.s
中的romInit()函数执行完后跳转到romStart(),执行解压缩,代码/数据段从rom 拷到ram。
3)usrConfig.c:VxWorks 映像的主要初始化代码。
/target/config/comps/vxworks:实时内核基本模块描述(cdf)文件。
/target/config/comps/src:实时内核模块配置文件。供usrconfig.c 使用。
/target/config/bspname 该目录下的文件就是要编写的BSP 文件。
由于 BSP 系统开发的硬件相关性和处理器系列的多样性,不可能有一种通用的程序或
方法来解决每一种处理器的BSP 问题,必须具体问题具体分析,不断实践,才能使程
序运行达到比较高的效率。
5、其它
VxWorks 的多任务任务调度策略的实施也是实现嵌入式PLC的一个关键点,确保高优先级任务在确定的时间内能被执行,并对外部的异步事件作出及时响应。多任务环境允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。VxWorks系统提供了多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接字。并具有实时系统的另一关键特性是硬件中断处理。为了获得快速可靠的中断响应,VxWorks系统的中断服务程序(ISR)有自己的上下文。鉴于篇幅关系,在本文不做详细讨论。
6、与展望
嵌入式系统已经成为历史发展的必然,其的可扩展性,对多种硬件的支持,能够提高PLC的运行速度和可靠性,并且支持多任务的控制策略,对PLC 的性能有了很大的提高。通过现场运行调试,对现场I/O设备进行监控,达到了预期的实时性要求,实现了通过现场总线或TCP/IP通信协议与硬件层(I/O)高速的响应目标。新型的基于VxWorks 的嵌入式实时PLC具有很高的性能价格比,具有市场竞争优势,有助于我国PLC 企业发展本国市场,发展自主产业的PLC。
本文作者创新点:研究了于基于VxWorks 的嵌入式实时PLC 系统,并包含了处理器的优化和BSP 的改造,是对现行国内PLC设计技术的一种拓展和补充。
为了更好地支持实时运行系统,嵌入式系统一般要引入操作系统,嵌入式操作系统(如bbbbbbs CE,VxWorks等)为实时运行系统提供了启动代码、串行通讯接口、内存操作(malloc/free)、ANSI 标准库、1ms的时钟滴答、调试接口等服务。如果实时运行系统整合了相应的功能,系统也可以不引入操作系统。我们所采用的嵌入式实时系统体系结构如图2所示,其实时操作系统采用VxWorks。
了其通信性能,实时能力大大提高,此结构具有完全开放性,高度兼容性,的可扩展性,使得自动控制系统的设计不受硬件的限制,可以有效地提高PLC的运行速度和可靠性,并且支持多任务的控制策略。相应的从嵌入式处理的设计与和BSP 改造方面,也做了相应的优化处理。
3、基于PPC 的嵌入式处理器设计
VxWorks 系统运行在基于PPC 的MPC860 处理器上,并作了一些有关改造以适应实时PLC 的现场总线的通信要求。主要包括4个主要模块(如图3):PowerPC 核心,系统接口单元(SIU),通信处理模块(CPM)和快速以太网控制器(FEC)。
系统接口单元(SIU)集成几乎所有32-bit 处理器系统的常用功能。MPC860 采用32 位内部总线,可以支持8,16 或32位的外设和存储器,SIU 提供功耗管理、复位控制、PowerPC减法器、PowerPC时钟基准以及实时时钟等功能。其内存控制器可以控制多达8 个存储体,只需通过很少的电路就可实现与DRAM,SRAM,Flash以及其它外围设备的无缝连接,DRAM 接口支持8,16 和32 位的端口,DRAM 控制器提供页模式下的突发传送访问;
提供4 个16 位通用定时器或者2 个32位定时器;系统集成单元集成了总线监控、软件看门狗、系统节电模式、时钟合成、实时时钟、复位控制以及支持IEEE 1149.1调试方式JTAG等。
通信处理模块(CPM)具有更强大的通信处理能力,拥有独立的简单指令集通信处理器(RISC),能够完成低层次任务以及DMA控制,使得PowerPC 内核能够空闲出来处理高层次的实时任务,从而降低了系统频率,减少功耗。
内嵌的 FEC 模块与IEEE 802.3 兼容,支持10-和100-Mbps 连接。不仅完成了以太网协议中的MAC控制功能,并且使用了突发传送DMA,从而减少了系统总线的负荷。而FEC内部接的收和发送FIFO 通过将所有的冲突碰撞局部化到FEC内部而减轻总线的负荷。FEC 采用独立的发送缓存描述符和接收缓存描述符来完成具体的收发存取。可支持Modbus,CAN,EIP等现场总线的应用。
4、BSP 的改造
BSP 即Board Support Package,通常指针对具体的硬件平台,用户所编写的启动代码和部分设备驱动程序的集合。BSP是一个VxWorks 内核运行的基础。
4.1 BSP 与VxWorks 的层次关系在 VxWorks 中,将BSP 简单描述成介于底层硬件环境和VxWorks之间的一个软件接口
1. 引言
发电机是电力系统的重要组成部分,它的可靠运行对于保证电力系统的稳定具有重要意义。发电机故障录波装置所记录的数据为工作人员正确分析发电机故障原因,研究事故对策,及时处理事故提供了可靠的依据,根据故障录波数据还可以分析系统的故障参数、各电气量的变化规律,进行故障定位等,这些对于保证电力系统的安全可靠运行起着十分重要的作用。可编程控制器(ProgrammableLogicController,简称PLC)作为工业控制专用的计算机,由于其结构简单、性能优良,抗干扰性能好,可靠性高,在机械、化工、橡胶、电力等行业工业控制现场已日趋广泛地得到应用,成为工控现场进行实时控制的主要的控制装置。本文介绍一种利用可编程控制器和扩展模拟量模块实现发电机故障录波的方法。
2.系统的组成和工作原理
系统的组成框图如图1所示,由上位计算机和1套PLC测控系统组成。PLC通过外部变送器、互感器与发电机组相连,发电机机端电压U、定子电流I为三相交流电,分别经电压互感器(PT)和电流互感器(CT)转换成三相100V、5A的二次信号,发电机转子励磁电流经过分流器RS转换成75mV信号,再经过三相功率(含有功、无功)变送器、三相电压变送器、直流电流变送器转换成与其成比例的0~10V电压信号后输入到PLC的模拟量模块。模拟量经过A/D转换,根据互感器、变送器的变换比例计算出机端电压U、转子电流If、有功功率P和无功功率Q的等机组运行量。PLC每隔20毫秒采样一次,每40毫秒将采样的数据保存到故障数据区中。当发生故障后,PLC记录下故障发生以后的13秒数据,故障数据记录过程结束。当PLC接收到上位机发送来的传送命令时,PLC将记录的故障数据通过串口通讯传送给上位机。上位机将数据完整的接收下来,经过数据处理显示出机组运行量U、If、P、Q、Ug(电压给定)在故障前7秒、后13秒的波形曲线,这样就可以对发电机故障进行分析了。在本系统中,PLC选用SIMATICS7-226;模拟量模块选用与S7-226配套的产品EM235;PLC与计算机之间通过PC/PPI电缆连接以串行方式进行通讯。
图1 发电机故障录波系统框图
3.下位机程序设计
PLC属于下位机,其程序共分为3个模块,它们是初始化子程序、录波子程序和通信子程序。以下将分别说明各模块的设计思想。
3.1 初始化子程序
初始化子程序包括初始化自由口通信参数,设置接收命令RCV启动和结束条件,数据指针赋初值,连接20ms采样、接收和发送中断。
3.2 录波子程序
录波子程序在20ms采样中断中调用,负责记录机组运行量U、If、P、Q、Ug在故障前7秒、后13秒的数据。
在PLC中定义一个连续的数据区VW4000~VW8998,用来保存故障数据。每个运行量的数据占用1000字节的数据块,地址分配如下,U:VW4000~VW4998If:VW5000~VW5998 P:VW6000~VW6998 Q:VW7000~VW7998Ug:VW8000~VW8998。
录波子程序每隔40毫秒将采样的数据送到各自的数据块中。为每个数据块定义一个数据指针,其初始值分别指向各数据块的首地址。每传送一次数据,各指针向下移动2字节。故障前7秒数据(350字节)是循环记录的,即如果在故障到来之前数据已存满,各数据指针将重新指向数据块的首地址。定义指针index用来记录20秒故障数据开始的位置。当故障到来时,数据指针指向故障后13秒数据(后650字节),此时指针index将前7秒数据分为前后两部分,正确的顺序是将前后两部分交换过来。当后13秒数据记录完后,录波子程序结束。程序流程图如图2所示。
3.3 通信子程序
通信子程序负责与上位机通信,将存储在数据区的故障数据通过串口分批传送给上位机。上位机每发送一次传送命令(用整数255表示),PLC在接收中断程序中判断收到的字符是否为传送命令,如果是则将传送命令标志M6.0置位并且在主程序中调用通信子程序。
定义指针tran_pointer用来指向待传送数据的首地址,其初值为&VW4000,即指向数据区首地址。定义变量count用来记录传送的次数。在通信子程序中,停止自由口的接收,将以指针tran_pointer为首地址,大小200字节的数据传送到发送缓冲区中,接着用发送命令通过串口发送出去。每发送一次数据,将指针tran_pointer向下移动200字节,变量count值加1,M6.0复位。当上位机发送完第26次传送命令时,PLC中数据区VW4000~VW8998的5000个字节已发送完毕,再将额定电压、额定电流、额定有功功率、额定无功功率和指针index发送出去,count值清零,指针tran_pointer重新初始化,M6.0复位。至此,一次完整的故障数据传送过程结束。