基于C8051F040的PROFIBUS-DP从站设计

2010-04-11 08:07刘诗林刘海涛
制造业自动化 2010年12期
关键词:缓冲区报文硬盘

刘诗林,许 晖,刘海涛

LIU Shi-lin, XU Hui, LIU Hai-tao

(西北工业大学 航海学院,西安 710072)

基于C8051F040的PROFIBUS-DP从站设计

An profi bus-dp slave designs based on c8051f040

刘诗林,许 晖,刘海涛

LIU Shi-lin, XU Hui, LIU Hai-tao

(西北工业大学 航海学院,西安 710072)

本文以某硬盘检测系统自动化改造工程为对象,针对该系统设备分散,数据传输信息量大,实时性和可靠性要求高等特点,设计一种可用于该系统的分布式控制基于PROFIBUS-DP协议的I/O从站。根据分布式控制系统的整体结构、工作原理及特点,对微控制器C8051F040和协议芯片SPC3开发I/O从站的硬件电路、软件设计流程进行了设计。给出基于PROFIUBS-DP的分布式控制系统网络组态与调试的方法,经测试表明,I/O从站与监控计算机和PLC通信正常、可靠,实时性满足了控制系统的要求。

C8051F040;PROFIBUS-DP;I/O从站;SPC3

0 引言

硬盘检测程序是硬盘出厂前不可缺少的步骤,检测的过程是批量进行的,而每块硬盘的检测耗时不一致,这对检测监控人员来说工作量非常大。因此通过自动化改造可以节省人力资源,同时提高检测系统的工作效率。

该系统主要由以下几部分组成:8组共32个测试机柜,4套装卸机械手,1套传送机构、1套分拣机构、控制主机和监视计算机。系统中存在大量的I/O信号,而且各套设备与控制主机之间需要满足实时通信的要求,为了使系统正常可靠的运行,可以采用以下两种方法:1)采用传统的PLC构成集散型控制系统(Distributed Control System,DCS);2)采用基于现场总线的分布式I/O系统[1]。

采用第一种方案存在系统不开放、硬件投资大、布线复杂和维修不便等缺点,具有明显的局限性。而采用第二种方案基本局限于国外产品,如西门子公司的基于PROFIBUS分布式I/O控制系统,WAGO公司基于CANbus、DeviceNET、PROFIBUS分布式I/O控制系统,但价格较高。因此,本文设计了基于C8051F040的PROFIBUS-DP I/O从站用于该系统的分布式控制。

1 硬盘检测控制系统的整体方案设计

硬盘检测控制系统由西门子PLC、内置PROFIBUS通信卡的监控计算机和自行开发的I/O从站构成,并由PROFIBUS-DP电缆连接构成分布式总线控制网络,总体结构如图1所示。

图1 硬盘检测分布式控制系统总体结构图

分布在现场的I/O从站连接各套设备,并通过PROFIBUS总线通信接口与总线网络相连;控制系统由西门子PLC作为一类主站,监控计算机作为二类主站编程和运行监控程序并通过总线适配卡与现场I/O从站进行实时通信,构成分布式控制,从而实现系统的分布式控制和集中监管监控功能。

控制系统中的监控计算机选用研华公司的工控机( IPC) ;PLC选用德国西门子的S7-300(CPU 315-2DP);总线适配卡选用西门子公司的CP5611,用来完成现场总线和监控计算机之间的协议转换。各个I/O从站之间通过专用屏蔽电缆互联构成PROF IBUS总线网络,总线两端连接PROFIBUS总线终端器,用来提高系统的稳定性,增强系统的抗干扰能力。

2 PROFIBUS-DP智能从站总体设计

PROFIBUS是作为德国国家标准DIN19245、欧洲标准EN50170,目前已成为中国唯一的现场总线国家标准GB/T20540- 2006。PROFIBUS作为一种不依赖于制造厂商的开放式现场总线标准,已广泛应用于制造加工自动化、过程自动化和楼宇自动化等领域中[1]。

原则上,PROFIBUS协议在任何微处理器上都可以实现,在微处理器内部或外部安装异步串行通信接口(UART)即可完成。基于上述特点,在开发PROFIBUS-DP从站时有以下两种方案可供选择:1)单片机+软件;2)单片机+PROFIBUS通信专用ASIC[2]。

比较两种设计方案:第一种方案硬件设计相对较简单,成本较低,但要求开发人员透彻了解PROFIBUS-DP的技术细节,传输速率低于500kbit/s,而且程序编写工作量较大,这样从站可靠性也不高。第二种方案利用硬件实现协议功能,传输速率可以到达12Mbit/s,虽然硬件成本有所增加,但可以降低开发难度、提高从站的可靠性。经综合考虑,本文采用第二种方案设计I/O从站。

2.1 I/O从站硬件设计

对于测试机柜,I/O从站的作用主要是监控硬盘检测是否结束并记录测试结果给分拣机构提供参考;机械手、分拣和传送机构由PLC通过I/O从站实现现场控制,其中包含有多个控制气缸的电磁换向阀、行程开关、步进电机驱动器以及传感器信号。

I/O从站除了满足如上控制要求外,还需要有PROFIBUS-DP通信接口,为了使从站具有较高的适应性和可靠性,本文采用功能模块化设计,系统由C8051F040单片机和完整封装了PROFIBUS-DP协议芯片SPC3构成其核心部分,其它还有16路数字量输入/输出、8路模拟量输入/2路模拟量输出、基于SPC3的PROFIBUS总线隔离驱动、RS232、开关设置地址及电源模块等部分组成,详如图2所示。

2.1.1 微处理器与SPC3的接口设计

微控制器和SPC3是I/O从站的核心,微处理应能够通过输入/输出接口与现场设备相连,并能够通过协议芯片SPC3与主站进行实时通信,本文选用的微处理是美国Cygnal公司C8051F040,其突出的优点是有与MCS-51指令集完全兼容的高速CIP-51内核(峰值速度可达25MIPS)、多达64位可编程I/O口线、片内集成看门狗定时器、64K可在系统编程的FLASH程序存储器、128B非易失性数据存储器、4352(4KB +256B)的片内RAM、支持JTAG调试等。C8051F040的片上资源很丰富,包括8组I/O端口、A /D和D /A转换器、多个中断源、增强型通用异步接收器和发送器(UART),非常适用于工业系统的自动控制,而且采用这种系统级SOC芯片,在很大程度上可以减少外围元器件的数量,从而减少元器件间的走线,提高系统的稳定性和可靠性。

协议芯片SPC3,包含有方式寄存器、状态寄存器、中断寄存器、各种缓冲器指针和缓冲区等。最大传输速率可达12Mbit/s,可以自动检测总线上传输速率。该芯片内部含有1.5KB的双口RAM作为SPC3与软件/程序的接口。此外,SPC3从初始化到正常工作,都由芯片内部集成的状态机来控制,不需要过多的人为干预。只要按正确方法对SPC3中的寄存器和数据区进行初始化后,对其双口RAM进行数据的读写操作即可完成从站与主站间的通讯。微控制器C8051F040与协议芯片SPC3的接口电路设计参考SPC3芯片手册的标准电路设计完成。

图2 PROFIBUS-DP从站总体结构框图

2.1.2 输入/输出接口电路设计

根据系统的要求, I/O从站具有16路数字量输入/输出,8路模拟量输入和2路模拟量输出。数字量输入接口用于连接各种限位开关、继电器、可控硅或电磁阀门等,输入信号一般为0~24V或0~12V直流电压信号,因此该通道的最主要问题是隔离问题,如隔离不好,较强的电磁干扰就会引入到系统中,影响系统的正常工作。所以数字量的输入需经过光电耦合器TLP521后接入C8051F040的输入接口,从而保证系统工作的可靠性。数字量输出接口,主要用于控制电磁阀门、继电器、指示灯、声光报警器等,一般只具有开、关两种状态的设备。根据所用器件的不同,有继电器输出、晶体管输出和晶闸管输出等多种形式,输出0~24V或0~5V直流电压信号。为提高从站的稳定性和抗干扰能力,输出接口也使用光电耦合器,将微控制器C8051F040输出接口与现场的负载完全隔离。在输出通道与光电隔离电路之后,通过使用输出驱动芯片ULN2803来增强输出接口的驱动能力。模拟量输入接口主要用于传感器信号的输入,由于C8051F040芯片引脚有8个专用于模拟输入通道,是8路12位分辨率的逐次逼近寄存器型ADC的输入端。基于这一点,该通道只需要经过I/V转换电路接入C8051F040模拟输入端口即可。另外C8051F040内部有两个12位的DAC转换器,每个DAC都具有灵活的输出更新机制,允许无缝的满度变化并支持无抖动输出更新。

2.1.3 总线通信接口电路设计

PROFIBUS-DP的数据传输是通过RS485接口实现的,为消除来自总线的干扰,需要采用双路电源供电,对通信信号的输入/输出通道进行光电隔离。协议芯片SPC3的数据发送请求(RTS) 、数据输入(RXD) 、数据输出( TXD)引脚经隔离后与总线驱动器相连。RS485总线驱动器一侧与9针D型插座相连,另一侧通过光耦HCPL7101与SPC3相连。在设计中采用能够满足12Mbps波特率的总线驱动芯SN65ALS1176,接收器在总线开路、断路和空闲时有故障安全保护功能。该部分电路设计可参考SPC3手册。

2.2 I/O从站软件设计

在从站设计中,硬件的选择和电路设计会直接影响从站性能的稳定和通信速度,I/O从站要完成与主站的通信任务和相关控制功能,还需要设计相应的配套软件。由于SPC3集成了PROFIBUSDP协议的状态机,使得C8051F040的主要任务在于初始化和启动SPC3、数据的发送和接收、诊断事务及中断事务处理等。这些功能可以通过KeilC51程序开发来实现,程序采用结构化设计,包括主程序、SPC3初始化程序、SPC3中断处理程序、I/O接口程序、和外部诊断程序等:

1)USERSPC3.C主程序。这部分主要完成SPC3的初始化、启动、发送和接收数据以及诊断等功能。

主程序首先对单片机和SPC3进行正确的初始化。单片机初始化包括端口配置和时钟初始化。SPC3初始化包括设置协议芯片的中断允许、写入从站识别号和地址、设置SPC3方式寄存器、设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区和初始化长度,并根据以上初始值得出各个缓冲区的指针和辅助缓冲区的指针。根据传输的数据长度,确定输出缓冲区和输入缓冲区及指针[2]。SPC3的初始化流程如图3示。

图3 SPC3的初始化流程

初始化正确后,启动SPC3,数据输入和输出(输入和输出相对于主站而言)放在主循环中。SPC3在接收到由PROFIBUS主站发送的不同输出数据时,会产生输出标志位(位于中断请求字单元),MCU通过轮循标志位来接收主站数据。向主站传送输入数据时,SPC3将实际采集到的应用数据不断地填入输入缓冲区,并通过主循环不断地刷新,以确保所有的输入数据是最新的。

2)INTSPC3.C中断模块。这个模块主要处理分配从站参数、组态数据检查和从站地址设定等功能。在PROFIBUS-DP中主要有以下的中断事件:新的参数报文事件,全局控制命令报文事件,进入或退出数据交换状态事件,新的配置报文事件,新的地址设置报文事件,看门狗事件。设计采用中断方式处理从站地址设定,检查组态和参数报文是否正确。采用外部中断INT0输入,其入口地址为0003H。主程序、中断程序流程如图4所示。

图4 主程序和中断程序流程

3)SPC3.C模块。主要根据组态数据计算输入输出数据长度,辅助缓冲区分配,缓冲区初始化,设置I/O数据长度,各缓冲区数据更新等功能。

4)USER.H模块。用来定义变量和宏接口,宏口使用户可方便地访问SPC3的寄存器。

3 从站调试

从站调试分为两个部分,首先是硬件电路的测试,检查电路是否正常,芯片是否正常工作,通过JTAG接口连接仿真器,编写测试程序对C8051F040的外围电路进行功能检查。当测试硬件电路达到设计要求后,然后就是软件的调试工作。调试I/O从站之前必须组建PROFIBUS-DP总线网络,并在计算机上进行网络组态。采用S7-300作为第一类主站,PC作为第二类主站进行编程和监控,通过PROFIBUS-DP专用电缆连接PLC与自行设计开发的I/O从站,构成现场总线的分布式I/O控制系统。总线系统网络结构如图1所示。I/O从站的调试分三步进行:第一步用德国西门子公司的ET200 I/O从站建立一主加一从的总线网络,编写PLC测试运行程序,利用RS485 -232转接模块与串口调试助手软件监测PROFIBUS总线上的报文,并记录;第二步用自行开发的I/O从站替换ET200,运行相同PLC测试程序并监测总线上的报文,与第一步监测到的报文进行对比、找出不同之处进行分析、修改I/O从站软件,直到总线上的报文与第一步监测到的报文相同;第三步把自行开发的I/O从站和ET200连接到同一总线网络中进行兼容性测试。

经测试表明,I/O从站与监控计算机和PLC通信正常、可靠,系统运行良好,实时性满足了硬盘检测控制系统的要求。

4 结论

PROFIBUS作为一种国际化的、不依赖于设备制造商的开放式现场总线,已广泛的应用于自动化领域。本文设计的I/O从站作为PROFIBUS-DP现场总线的I/O节点能有效地实现自动化系统的分布式控制,并具有一定的通用性。对于开发过程中所提出的技术方案和实现方法可以在类似的分布式控制系统中推广应用。

[1] 孙鹤旭,梁涛,云力军.Profibus现场总线控制系统的设计与开放[M].北京:国防工业出版社,2007:191-200.

[2] 王永华,A.Verwer.现场总线技术及应用教程——从PROFIBUS到AS-i[M].北京:机械工业出版社,2006:

[3] 潘琢金,施国君.C8051FXXX高速SOC单片机及运用[M].北京:航空航天大学出版社,2002.

[4] 曹晶,方康玲,廖焕柱.PROFIBUS-DP从站接口设计[J].计算机与信息技术,2009.

[5] SPC3 Siemens PROFIBUS Controller User Description[OL].Siemens AG,2000.

TH166

B

1009-0134(2010)11(上)-0042-04

10.3969/j.issn.1009-0134.2010.11(上).14

2010-07-03

刘诗林(1985 -), 男,江西武宁人,硕士研究生,研究方向为工业现场总线。

猜你喜欢
缓冲区报文硬盘
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
HiFi级4K硬盘播放机 亿格瑞A15
Egreat(亿格瑞)A10二代 4K硬盘播放机
浅析反驳类报文要点
服务器更换硬盘后的同步问题
基于ARC的闪存数据库缓冲区算法①
ATS与列车通信报文分析
一类装配支线缓冲区配置的两阶段求解方法研究
初涉缓冲区