ENGLISH

TEL:0755 88840386

卓禾二级banner

您的位置:首页技术专题卓禾仪器—衡器知识专题

基于 dsPIC30F的电子皮带秤控制仪表的 PROFI BUS-DP从站实现

------------------------------------------------------------------------------------------
【卓禾仪器】微信线上分享互动更精彩。集聚称重自动化行业精英,每个工作日为您呈上最新、最前沿的技术称重解决方案及技术文档。点滴技术知识,凝聚称重自动化行业大智慧。如果您感兴趣,请关注【卓禾仪器】微信公众号,我们十分乐意与您分享称重技术世界里的精彩!!!

   分享改变世界,称重技术引领产业自动化升级,愿您每天从“卓禾仪器”收到一份好心情 !!!

-------------------------------------------------------------------------------------------

电子皮带秤控制仪表是针对生产过程控制的实际需要而开发的一种低成本专用仪表[1]。该仪表采用 dsPIC30F作为 CPU; 24 位的模数转换器AD7730采集压力传感器的模拟信号, 并通过 SPI口与 dsPIC30F相连; 皮带的速度信号通过光电编码器测量, 并经 QEI口输入 dsPIC30F; 控制信号经电流型数模转换器 AD420 输出, 控制变频器, 调节电机转速。仪表中设有两个独立的通信接口,一个配置成 RS232, 用于与系统机相连, 作为电子皮带秤系统调试、参数设置和代码下载的通道; 另一个则配置成 RS485, 其原理如图 1所示。

在电子皮带秤安装到现场使用后, 由于生产线是采用 SIEMENS S7-300PLC控制的, 希望皮带秤能够接受生产线控制主机发来的命令, 同时也能将物料流量等数据发送到主机, 因此要求电子皮带秤控制仪表具备有 PROFIBUS-DP的通信接口, 成为 PROFIBUS-DP从站。

虽然 PROFIBUS是一个开放的现场总线通信协议,任何人都可以获得这个标准并设计各自的软、硬件解决方案[ 2]。但该协议较为复杂, 而且通信过程中对时间响应的要求较为严格, 目前开发 DP从站的解决方案大多采用专用的协议芯片, SPC3[3]来实现的。采用专用的协议芯片的解决方案是一种省时省力的解决方案, 但要求在硬件上进行设计,将协议芯片直接与仪表控制 CPU总线相连, 需要占用较多的硬件资源。在所设计的电子皮带秤控制仪表中,控制芯片的硬件资源基本被用完, 除非重新设计,已不可能实现与专用的协议芯片的直接相连, 采用专门的串口 /PROFIBUS-DP转换器又要增加成本。为此只能探索一种软件解决方案,让现有的电子皮带秤控制仪表能成为 PROFIBUS-DP从站,满足生产线的控制需要。

在许多文献里都提到过利用单片机的 UART口可以通过软件来实现 PROFIBUS-DP的数据链路层协议[ 2], 但尚未见过实用的成功实例报告。笔者将在对 PROFIBUS-DP进行协议分析的基础上, 充分利用 dsPIC30F UART 功能, 实现一种纯软件的 PROFIBUS-DP从站解决方案, 并成功地运用于电子皮带秤控制仪表中。

 1  PROFIBUS-DP协议分析①

为了保证数据的高速传输, PROFIBUS只采用了物理层、数据链路层和用户接口,并通过数据链路层 FDL( Fieldbus Data Link)来实现大部分的总线协议。这种精简结构使得数据能高速、高效地传输, 特别适应于 PLC与现场 I/O设备间的通信。PROFIBUS的物理层采用 RS485双绞线电缆或光缆, 其中 RS-485传输是 PRIFIBUS总线中最常用的一种传输技术, 它既适应于需高速传输的系统,又适应于简单、廉价, 需快速铺设的场合。通信波特率为 9. 6 kbps~ 12. 0M bps

PRIFIBUS通常采用基于总线的主从结构, 可以有多个主站。主站之间采用令牌环网, 确保每个主站在一个确定的时间内得到总线存取权 (令牌 )。主站与从站之间采用主-从轮询方式完成信息传送。主站可以对从站进行赋值、配置、初始化和诊断。而从站一般是被动地等待主站的请求,并对主站的请求进行必要的响应。

PROFIBUS的数据链路层帧协议是很复杂的,要采用软件方式实现一个可以满足各种配置需要、能通过 PROFIBUS 认证的通用站点是很困难的。而本项设计的目的是在自行设计的专用仪表上增设一个可以作为 DP从站的 PROFIBUS总线接口,让专用仪表能和总线上的确定主站交换信息, 实现生产线的联动控制和数据采集。为此可以裁剪掉一些不必要的功能, 保证专用仪表可以顺利地接入PROFIBUS-DP总线, 并可靠地与主站实现数据交换。为此根据专用仪表功能和所需要交换的数据,编辑一个该仪表的 GSD文件,其中关键是设置好该设备的 ID、适应波特率、从站响应时间和数据交换模块。然后将该 GSD 文件安装到 PLC的主站中,让主站可以正确识别该设备。

在所 设计 的系统 , SIEMENS S7-300PLC作为主站。在安装了皮带秤控制仪表的GSD文件后, 通过实际测试和协议分析后, 得到该系统的主-从通信过程大致可以分为: 主站对从站的第 1次诊断、参数化从站、组态配置从站、主站对从站的第 2次诊断以及主站与从站之间的循环数据交换。

为了便于以下说明, 现将报文帧中的符号作简要说明: SD为报文起始符, SD= 0x68表示数据域长度可变的报文帧; LE为所有数据的长度; LEr LE的重复; SDr SD 的重复; DA为传输的目的地址; SA 为传 输的源地 ; FC 功能码域;DSAP为目标服务点; SSAP为源服务点; DU 为用户数据域, 最长为 246字节; FCS为所有数据的代数和; ED为报文帧的结束标志, 固定为 0x16

当控制仪表的 GSD 文件输入到 S7-300主站后, 主站首先会定期发出诊断帧来判断控制仪表从站是否在总线上, 当主站地址为 2, 从站地址为11, 测试到的帧格式见表 1

如果控制仪表从站已接到总线上, 从站必须在确定时间内响应主站请求, 即从站应发出一个诊断响应帧, DU 域应包含诊断信息数据。由于此时只是主站发出的第一个诊断, 其目的是判断从站是否在总线上, 因此数据域只需包含 6个字节的基本标准诊断信息, 其中数据域的第 1字节 0x02表示该从站未准备好交换数据; 2字节0x05表示该从站必须重新设置参数; 4 字节0xFF表示该从站未被任何主站控制或参数设置; 5、第 6字节表示该从站的 ID号为 0x000B, 其帧格式见表 2

在接到第一个诊断响应后, 主站将发出一个参数赋值帧给从站, 用于指定主站与从站的关系和从站的操作方式, 主要包括从站被主站锁定, 参数可以被接收; W atchdog启用; 设定 W atchdog时间; 定义从站延迟响应时间和确认设备 ID号等,其帧格式见表 3

从站收到参数赋值帧后, 响应报文非常简单,只需用一个字节来对主站的请求进行确认, 即发一个确认报文 SC= 0xE5

参数赋值完成后, 主站将发出一个组态请求报文给从站, 其作用是对 I/O 的类型及性质进行设定。本例 DU域中的 0x11 0x21表示从站应该有两个字节的输入模块和两个字节的输出模块, 其帧格式见表 4

从站收到组态请求帧后, 也只需要发一个确认报文 SC= 0xE5即可。

组态配置完成后, 主站将再次发出诊断帧来判断从站的初始化是否正确, 其帧格式见表 5

收到第 2次诊断帧后, 从站应发出一个响应帧, 报告自身的初始化状态。此时数据域也只需包含 6个字节的基本信息, 1字节 0x00表示该从站已 准备好交 换数据; 2 字节 0x0C 表示W atchdog启用; 4字节 0x02表示该从站的属主主站地址为 2, 其帧格式见表 6

当各项初始化过程结束, 且参数都正确, 就可以启动数据交换, 主站与从站开始正常的周期性数据交换。首先主站向从站发出输出数据, 其帧格式见表 7

在收到主站数据后, 从站需及时向主站发出输入数据, 其帧格式见表 8

至此将一直处于数据交换状态, 实现了主站与从站之间的通信。

 2  UART的通信实现与波特率自适应

微芯公司的 dsPIC30F是一款 16位的数字信号控制器, 具有单片机的控制功能和数字信号处理器的计算能力和数据吞吐量。 dsPIC30F有两个独立的 UART , 在电 皮带 秤控 制仪 表中,UART2被配置为 RS232, 用于与系统机相连, UART1则配置成 RS485 PROFIBUS-DP从站就是采用这个口 RS485来实现的。

UART由波特率发生器 ( BRG )、异步发送器和异步接收器组成。UxBRG 寄存器控制一个自由运行的 16位定时器的周期。其计算波特率的公式为:

式中: FCY--- 系统时钟。当 UxBRG= 0, UART可以获得最高的波特率为 FCY /16

由于 dsPIC30F 容许的最 高系统时 钟为 30MH z, 为了 使其 UART 产生 的波特率与 PROFI-BUS-DP , 控制仪 表的系统 时钟选 择为 24MH z。这样, UART 可产生 的最高波 特率为 1. 5M bps, 也就是说可能实现的 PROFIBUS-DP的最高波特率仅能达到 1. 5M bps。这个波特率虽然低了一些, 但足以满足 PLC控制生产线的 PROFIBUS总线组网要求。

PROFIBUS-DP总线系统中, 总线的传输速率是根据实际应用的需要, 由主站来设定的。为了实现设备的复位和重组, 要求从站能主动匹配事先定义的总线的传输速率, 一旦通信速率发生变化, 还能主动调整到新的传输速率, 也就是说从站应具有波特率自适应能力。

dsPIC30F芯片上拥有一个具备自动波特率检测能力的 UART 外设, UART 接收引脚 ( RX引脚 )上的信号能在内部传送至一个输入捕捉模块, 从而获得输入信号边沿的时序, 应用程序可根据此时序计算出 UxBRG寄存器的值, 实现波特率自适应。但这种自动检测的方法取决于接收到的数据, 通常要求主站首先发送一个同步字符, 0x55。然而本系统的主站是确定的 PLC, 主站只能按现场总线传输协议传送相关报文帧, 不可能加入所要求的同步字符, 很难保证波特率计算的精度, 经测试表明, 该方法无法完成 PROFIBUS-DP的波特率自适应, 实现稳定通信。

好在 PROFIBUS-DP协议只支持 9. 6~ 12. 0M bps 10级固定的波特率, 总线传输信号可能的工作频率已知且稳定。因此, 可以采用穷举法,在从站启动通信程序后, 逐个尝试以不同的波特率接收主站发出的字符, 直到能成功接收为止。在所设计的系统中, 考虑到主站只可能有 45. 4593. 75187. 55001. 5 * 103Mbps5个波特率, 所对应的从站的 UxBRG值分别为 3215720。以收到一个完整的帧为标准, 在从站初始化时自动进入波特率搜寻状态, 逐个轮询 UxBRG的值来实现波特率自适应。这种方法简单, 容易实现, 并且系统工作稳定。

PROFIBUS-DP总线在数据交换过程中, 有严格的报文帧的结构和相应的时序关系, 如果时序稍有差错, 交换就会终止[ 5, 6]。在主站发送每一报文帧前, 需加入一段总线休息的同步时间 TSYN, 其值固定为 33Tbit(Tbit表示传输一个数据位占用的时间, 为传输速率的倒数 )。在从站接收到主站请求后并非立即响应, 而是需要一定的时间间隔, 这个时间间隔定义为 TSDR, PROFIBUS规定此值的下限为 11Tb it, 上下限为 60~ 800Tb it。主站在接收到响应报文帧后, 要等待 TID I才能发送下一帧, TIDI固定为 75Tb it。此外, 在通信的主站一侧还定义了参数 TSL, 它表示从主站发出请求帧的最后一个 bit到收到响应帧的第一个 bit之间的时间间隔, 反映了一个系统的实时性好坏。如果实际时间超过TSL, 主站还未收到从站的响应, 就认为系统出错, 需做出相应的处理。

在设计一个从站时, 务必注意满足 TSDR TSL这两条件, 使从站的反应时间不能过快也不能太慢, 以符合总线时序关系。在从站接收到一个主站请求帧后都必须做一些必要的处理, 这些处理所花费的 CPU 时间通常都能达到 TSDR的下限要求, 如果不能满足 (如波特率太低, CPU 运行速度太快 )可适当加入一点延时, 以保证时序关系。为了保证整个系统的实时性, TSDR的上限和 TSL都不能定义得太长, 因此要求从站能对主站的请求及时做出响应。为此在从站控制器编程中采用了两项技术: 一是充分利用了 dsPIC30F UART接收寄存器和发送寄存器的四级缓存, 保证收入数据的及时接收和输出数据的连续发送; 二是为了避免被控制器其它任务的打扰, 影响响应时间, 在从站收到主站请求帧的最后一个字节时, 直接在接收中断中解析该请求帧, 并准备好响应数据, 开启发送中断。这两项技术是通过多次摸索后, 确保实现与主站稳定通信的关键。

 3  联网测试

为了验证所设计电子皮带秤控制仪表作为PROFIBUS-DP从站的性 , 采用西门 子公司的S7-300作为主站, 并采 STEP7 来配置相应的PROFIBUS-DP [ 3] SIMATICMANAGER下建立一个 PROFIBUS-DP项目; 然后将 S7-300插入总线中作为主站, 并将主站地址设置为 2; 在配置好通信传输速率 ( 1. 5M bps),就可以得到一个以 S7-300为主站的 PROFIBUS-DP总线。在硬件配置下添加自行编辑的 GSD文件后, 可以在 PROFIBUS-DP站点目录中找到电子皮带秤控制仪表 DP从站, 将其添加到 PROFIBUS-DP总线上并设置其地址为 11, 就完成了整个实验网络的组态。在将组态代码下载到 S7-300模块后, 用双绞线将该模块的 PROFIBUS-DP接口与电子皮带秤控制仪表的 RS485接口相连, 就构成了测试平台, 如图 2所示。

在组网结束后, 分别给 PLC、电子称上电, PLC模式开关选择 RUN 状态, PLC RUN(绿色 )指示灯闪烁几次后停止闪烁, 处于绿色点亮状态。指示灯 SF(红色 )BATF (红色 )FRCE(黄色 )STOP(停止 )闪烁几次后, 处于熄灭状态。此种状态一直持续下去, 说明通信在正常运行。更换其它波特率, PLC指示灯的状态与以上情况相同, 也说明通信正常。

PROFIBUS-DP 联通后, 就可以实现上位PLC与下位电子皮带秤控制仪表的数据交换。根据在 GSD文件中规定好的数据交换格式, PLC送给电子秤的信号为 PIW 310~ PIW 339, 30个字节。电子秤送到 PLC 的信号单元为 PQW 300 ~PQW 329 30 字节。经观察, 在各种波特率下, 上下位机之间均能实现正常的数据交换, 基本达到了生产过程控制的需求。

 4  结束语

PROFIBUS-DP现场总线是一种较为复杂的通信协议, 而且有严格的时序要求。要开发符合标准的通用 DP从站站点, 可采用专用的协议芯片来实现, 但这种解决方案需要占用较多的控制器硬件资源。在控制器硬件资源不够时, 还有一种解决 方案就是 采用串 /PROFIBUS-DP 转换器, 不过这种方式不仅增加了控制器成本, 而且还需开发与转换器相连的串口程序。

如果控制器的 CPU 芯片具有较高的性能, 16位以上的芯片; 并且具有足够高的系统时钟,能产生 1. 5 MHz以上的串口波特率; 串口的收发装置都具有相应的缓存, 能满足数据交换过程中的时序要求, 则可以采用软件方式来实现一个满足一般工业控制要求的 DP从站站点。只要对通信过程中的时序进行严格控制, 完全可以实现从站与主站间的数据交换, 满足 PROFIBUS-DP总线的实时性要求。这是一种经济实用的解决方案,对开发自主的 PROFIBUS-DP总线仪表有一定指导意义。

参考文献

[ 1] 张英华, 黎英, 彭娜等. 基于 AD7730的电子皮带称的设计与实现 [ J]. 仪器仪表学报, 2007, 8(28) (增刊 ): 226-229.

[ 2] 侯维岩, 费敏锐. PROFIBUS协议分析和系统应用 [M ]. 北京: 清华大学出版社, 2006.

[ 3] JosefW eigmann, GerhardK ilian. 西门子 PROFIBUS工业通信指南 [M ]. 闫志强等译. 北京: 人民邮电出版社, 2007.

[ 4] 刘成俊, 王善永, 周劲鹰. 一种增强 PROFIBUS-DP智能从站通信接口的研究和设计 [ J]. 工业控制计算机, 2007, 1( 20): 66-79.

[ 5] HE Fang, TONG W e-im ing. Estimation to the T ime Parameters of PROFIBUS Network System [ C ].2007 Second IEEE Conference on Industrial Elec-tronics andApplications. 2007: 873-876.

[ 6] TAO J, WANG Z L. Analysis of Profibus-DP Ne-twork Delay and Its Influence on the Performance of Control Systems[ J] . Wuhan University Journal of NaturalSciences-English Edition, 2005, 10( 5): 877-822.

 作者:黎  英, 庞兴胜, 王新宇

相关文章

相关标签