7
6ES7331-7HF01-0AB0包邮
前言
可编程控制器(PLC)对机床开关量信号进行控制时性高,使用方便,在大多数数控机床,特别是经济型数控机床中,要求的输入输出点数不多的情况下得到广泛应用。在兼用PC 机系统资源的情况下,采用bbbbbbs 的分时性,没有考虑到实时环境的开发用途,其系统调用的效率不高,不能满足数控系统高实时场合PLC 控制的实时性要求。
VxWorks 作为一运行在目标机上的、可裁减的嵌入式实时操作系统,目前以其良好的性和的实时性被广泛地应用在通信、军事、航空、航天等技术及实时性要求高的领域。
本文基于 VxWorks 操作系统,提出了基于VxWorks 的嵌入式实时PLC 设计的方法与应用,利用VxWorks 的开放性、模块化和可扩展性的系统结构特性以及多线程/多任务的系统环境来达到高实时要求的PLC 控制,在保证实时性的同时,实现多点位、复杂功能的PLC系统控制目标。
1、传统 PLC 系统的结构
相比较传统的的基于通用工业 PC 的工业PLC,其数控系统嵌入式PLC 硬件包括:工控机及其外围设备,基于ISA 总线的开关量输入输出接口卡,光电隔离模块,继电器输出模块。
工控机采用 bbbbbbs 等非实时操作系统,数控系统的人机界面、数控代码处理、轨迹划、参数管理以及PLC 控制都通过工控机由软件来实现,不需要立的NC 控制器,减少了数控系统对硬件的依赖,有利于提高系统的开放性。I/O 输入输出信息通过PC 机I/O 接口卡实现主机与伺服接口模块和I/O 接口模块之间的信息交换,PC 机I/O 接口卡基于ISA或PCI 的总线。虽然其相较初的单片机的控制加入了工业PC 来拓展其开放性,但是由于没有充分利用PC 机系统资源,而开发和运行都采用的非实时多任务操作系统(如bbbbbbs,Linux)时,其设计没有考虑到实时环境的开发用途,其系统调用的效率不高,数控系统PLC控制不能满足一些场合的实时性要求。
2、基于嵌入式系统的实时PLC 系统结构
嵌入式实时 PLC 系统,一般由开发系统和实时运行系统两部分组成,是相互立而又密不可分的两个系统,可以分别单运行。开发系统基于PC 机,建立在bbbbbbs 操作系统平台之上,提供了PLC 应用程序的编写及其编译调试环境。开发系统与实时运行系统的通讯一般通过RS232 接口来实现。如果嵌入式操作系统提供网络服务,也可以通过以太网、Modbus 或CAN 总线进行通讯。应用程序编写完并编译调试无误后通过RS232 或TCP/IP 通信协议下载到嵌入式系统。实时运行系统则用于完成系统配置、输入信号处理、循环调用PLC 程序及控制信号输出等操作,并且可以通过现场总线或TCP/IP 通信协议与硬件层(I/O)实现通信。
为了好地支持实时运行系统,嵌入式系统一般要引入操作系统,嵌入式操作系统(如bbbbbbs CE,VxWorks 等)为实时运行系统提供了启动代码、串行通讯接口、内存操作(malloc/free)、ANSI 标准库、1ms 的时钟滴答、调试接口等服务。如果实时运行系统整合了相应的功能,系统也可以不引入操作系统。
了其通信性能,实时能力大大提高,同时此结构具有开放性,高度兼容性,的可扩展性,使得自动控制系统的设计不受硬件的限制,可以有效地提高PLC 的运行速度和性,并且支持多任务的控制策略。另外相应的从嵌入式处理的设计与和BSP 改造方面,也做了相应的优化处理。
3、基于PPC 的嵌入式处理器设计
VxWorks 系统运行在基于PPC 的MPC860 处理器上,并作了一些有关改造以适应实时PLC 的现场总线的通信要求。主要包括4 个主要模块: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 连接。不仅完成了以太网协议中的 控制功能,并且使用了突发传送DMA,从而减少了系统总线的负荷。而FEC内部接的收和发送FIFO 通过将所有的冲突碰撞局部化到FEC 内部而进一步减轻总线的负荷。FEC 采用立的发送缓存描述符和接收缓存描述符来完成具体的收发存取。可支持Modbus,CAN,EIP 等现场总线的应用。
4、BSP 的改造
BSP 即Board Support Package,通常指针对具体的硬件平台,用户所编写的启动代码和部分设备驱动程序的集合。BSP 是一个VxWorks 内核运行的基础。4.1 BSP 与VxWorks 的层次关系在 VxWorks 中,将BSP 简单描述成介于底层硬件环境和VxWorks 之间的一个软件接口。它的主要功能是系统加电后初始化目标硬件,初始化OS,及提供部分硬件的驱动程序如时钟、中断、串口驱动等。
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、总结与展望
嵌入式系统已经成为历史发展的必然,其的可扩展性,对多种硬件的支持,同时能够提高PLC 的运行速度和性,并且支持多任务的控制策略,对PLC 的性能有了很大的提高。新型的基于VxWorks 的嵌入式实时PLC 具有很高的性能价格比,具有市场竞争优势,有助于我国PLC 企业发展本国市场,发展自主产业的PLC。



1. 引言
在很多场合,我们需要对距离很远的控制器进行监测。当距离在几千米的情况下,我们可以使用有线连接,比如采用Profibus-DP总线连接。但当距离有几百千米,甚至远的情况下,采用上述连接方式的花费将会是惊人的,所以多采用廉价的电话通信进行。
2 .方案比较
通常情况下,每台控制器通过一台Modem和一条电话线连接到远程PC。远程PC与每台控制器之间占用一条通信线路,所以每次只能与一台控制器进行数据通信。
在该方案下,每个控制器占用一个电话号码资源、一条电话线路和一台Modem。远程PC通过电话线与每个控制器分别连接,当需要与某个控制器进行数据通信时,通过拨号连接该控制器,进行数据通信。在这种情况下,如果有多个控制器需要与远程PC通信,将会占用多条电话线路。远程PC不可能同时与多台控制器进行数据通信,只能依次轮询拨号每个控制器,不仅Modem每次建立连接会耗费大量的时间,而且浪费大量的通信费用。
针对以上方案存在的弊端,本文提出一种新的方案,只采用1条电话线路和一台Modem,即可实现远程PC与所有的控制器进行数据通信。
现场的控制器作为Modbus从站(可能是RS232接口的,也可能是RS485接口的,若是RS232接口,可以通过一个很的转换设备将RS232转换成RS485),将所有的控制器挂接到485总线上,Modbus主站采用和利时公司HOLLiAS LM系列PLC的40点CPU模块LM3108。LM3108的RS485口挂接到485总线上,LM3108通过RS485口采用Modbus协议将各个控制器内需要读取的数据分别读取上来,存储在PLC对应的地址中。
LM3108的RS232接口与Modem连接,Modem通过电话线与远程PC连接。当拨号建立连接后,远程PC与LM3108之间拨号连通以后同样采用Modbus协议,此时远程PC作为Modbus主站,LM3108的RS232口作为Modbus从站,远程PC只需要PLC中相对应的地址中的数据即可。
PLC与远程PC建立连接可以采用两种方式:
1)PLC主动呼叫远程PC,可以在PLC中设定时间,或者设定某个触发条件,当条件满足时主动呼叫远程PC建立连接,进行通信。
2)远程PC主动呼叫PLC,远程监控人员根据需要拨号,以采集各控制器的数据。
3. 具体案例
3.1 设备选型
1)PLC——LM3108
该PLC具备1个RS232端口和1个RS485端口,两者均可实现自由口通讯,可实现Modbus从站和Modbus主站功能。LM3108本体带有24点DI和16点DO,具有8k的自由存储空间,可以满足该方案的要求。
2)调制解调器——具备RS232接口的普通56K调制解调器。
3)远程PC
具备上位拨号并支持Modbus主协议软件的PC机,比如装有和利时公司SmartPro软件的PC机。
3.2 LM3108与Modem硬件连接
LM3108连接1, Modem与PC之间的连接线的PC端接2,将两个9的2、3、5直连,2的1、7、8短接,4、6短接。
3.3 LM3108与Modem软件设置
LM3108提供RS232口Modbus从站功能块(SET_LOCAL_ADDRESS)、RS232口通讯参数设置功能块(Reset_COMM_PRMT)、RS232口通讯自由口参数设置功能块(Set_COMM_PRMT)、RS232口通讯自由口数据发送功能块(COMM_SEND)、RS232口通讯自由口数据接收功能块(COMM_RECEIVE)。
物理连接PLC与Modem后,若采用远程PC主动呼叫PLC,只需编程调用SET_LOCAL_ADDRESS和Reset_COMM_PRMT这两个功能块即可,PLC侧再作其它 设置。
若采用PLC主动呼叫远程PC,则需要RS232口在自由通讯方式下使用COMM_SEND与COMM_RECEIVE同Modem进行会话。
3.4 应用效果
本文介绍的方案已经成功应用于国内外空调远程监控系统,从几套系统近一年的运行情况来看,系统、运行稳定、运行效果良好。相对传统方案,本文介绍的方案节省了大量电缆和硬件设备,具有较好的性价比,得到客户的。
4 结束语
本文介绍了使用小型PLC作为中转,实现远程PC服务器与多台现场设备之间的通信方案,并详细说明了其关键设备PLC的软硬件设置。该设计方案不仅可以应用于空调监控系统,也可广泛应用于其它行业的类似监控系统,具有广阔的应用前景。
PC与PLC之间使用PC ADAPTER USB(6ES7972-0CB20-0XA0)连接,CPU是315-2DP,在不插入MMC卡时,可以建立连接,但下载硬件时会报SDB过大的错误。但一插入MMC卡,立即就会变成无法连接。使用CPU上的复位键做过复位,但问题不能解决。