微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PROFIBUS总线在烟箱输送线上的应用

PROFIBUS总线在烟箱输送线上的应用

时间:12-21 来源:互联网 点击:
1 引 言

本文以烟箱输送系统介绍西门子profibus现场总线控制系统,输送系统实现四台封箱机后成品烟箱的合流、输送、提升,将烟箱输送至成品高架仓库入库分拣输送线上。使用s7-315-2dp作为dp控制器,本地机架安装2组数字量输入输出模块,15台丹佛斯vlt2800变频器及现场6组et200b远程io模块通过dp总线接入plc,使用10.4″彩色触摸屏tp270通过mpi总线与plc连接,系统组成参见图1所示。


图1 系统组成

打开硬件配置软件,插入cpu 315-2dp及profibus网络,设置dp主站参数:分配dp地址为2,诊断地址2047,波特率设为1.5mbps,操作模式设为dp主站模式。在dp网络上依次插入现场io模块et200b,分配总线地址(21~26),诊断地址(2028~2023),输入输出i(q)映像地址。在profibus网络上依次插入变频器vlt2800,分配总线地址(3~17),地址(2046~2032)。选择变频器ppo协议类型1控制字,过程映像piq地址由4ax和2ax两个id模块组成。现场io模块和变频器的dp地址设置必须与plc的硬件组态分配的地址一致,诊断地址用于诊断dp从站的工作状态。

2 ppo协议

ppo协议就是参数过程数据处理的简称,ppo协议实现dp主站和智能从站之间的快速数据交换,同时实现过程数据和参数数据存取。ppo协议由参数字pcv和过程字pcd组成,ppo类型1协议结构见表1。

表1中,pca:参数号;ind:参数索引;pva:参数值;ctw:控制字;stw:状态字;mrv:设定速度(单位为百分比);mav:实际速度。使用参数字pcv设定或读取变频器参数值;使用过程字pcd控制变频器的启停、速度设定、读取变频器的状态、获取输出频率。

丹佛斯vlt2800标准控制和状态字见表2。

3 dp从站诊断

当dp系统启动、或主站的故障组织块ob82(ob86)检测到dp从站发生错误(或使用手动诊断功能)时,主站必须及时获得从站的状态及故障信息。dp从站的诊断数据记录的0~2字节数据为从站的状态信息,字节3以后的数据为从站的主站号、制造商id、及该设备状态信息。

建立dp从站状态共享数据块db103,建立从站ng、ok状态及诊断数据记录rec数组变量,插入dp从站诊断程序功能块fb102和数据块db102。建立从站诊断dia_all、从站地址指针inx_sta、从站数目sta_qut、从站诊断首地址等变量,从站诊断请求dia_req、从站忙dia_busy、诊断返回值dia_ret、错误计数器err_cnt、从站诊断数据记录dia_rec等静态变量。

使用stl语言编写诊断程序,便于使用地址寄存器ar1(ar2)编写循环(条件跳转)程序,流程图见图2所示。执行从站诊断时,从站诊断标志置位,根据从站地址指针、从站诊断首地址计算出该从站的诊断地址,同时将错误计数器复位,从站诊断请求置位。调用系统功能块sfc13读取dp从站的诊断数据,dp诊断可能需要多次调用sfc13功能块才能完成。从站诊断完成,从站忙标志为0时,根据诊断返回值数值判断该从站诊断是否正确完成。当发生错误时,错误计数器加1,继续执行本从站诊断3次;当该从站诊断正确完成时,根据数据记录数据和上述dp从站状态信息表,判断该从站处于ok或ng状态,并将ok状态、ng状态、有用的诊断数据写入从站状态数据块db103相关的数组中。


图2 dp从站诊断流程图

当该从站诊断正确完成,或发生错误重新诊断3次时,从站地址指针加1,进行下一从站的诊断,所有从站诊断完毕后,复位从站诊断标志。
4 读写变频器智能从站

智能从站分配的地址为过程映像pi(或pq),是连续性数据,必须注意读写数据的连续性。对于4字节及以下的连续性数据,如上述组态图中的2ax模块,可以使用(双字)装载或(双字)传送指令读写。对于4字节以上的连续性数据,如上述组态图中的4ax模块,不能使用两个双字装载或传送指令分两步读写,只能使用系统功能块sfc14读取从站的连续性数据,sfc15写入连续性数据到从站。

变频器的过程字pcd(ppo类型1),使用双字装载指令[l pid432 md532],获取变频器的常用状态信息及实际输出频率;使用双字传送指令[t md632 pqd432],控制变频器的启停及设定频率,注意频率为最大频率的百分比,其数值为16384时,表示100%。

变频器的pcv参数字,如上述组态图中的4ax模块,使用系统功能块sfc14和sfc15读写。首先确定需要读写(如电机电流、电机电压、变频器温度、报警字、加速时间等)参数的参数pnu号及子索引ind号。依次为每个变频器创建数据块db41-55,建立读参数数据记录parr_rec、写参数数据记录parw_rec及参数数据存放par_data数组变量。

创建功能块fb100和数据块db100,建立变频器地址指针inx_vlt、变频器数量vlt_qut、变频器起始数据块db_int、变频器piq首地址piq_int,变频器piq地址piq_add、参数指针inx_par、参数条目数par_qut、错误计数器err_cnt等变量。建立读写参数命令组ary_cmd及正确响应信息组ary_rpok静态数组变量,将读写参数的命令数据赋值给参数命令组ary_cmd数组变量,将对应的正确响应信息赋值给正确响应组ary_rpok数组变量。建立sfc14正确响应信息变量par_rpok、sfc15写返回值ret_wrt、sfc14读返回值ret_read变量。

使用stl语言编写程序,流程图见图3所示。打开数据块db103,根据变频器地址指针,获取本从站的工作状态。如果该站工作正常,就读写该变频器参数;否则,变频器地址指针加1,读写下一台变频器参数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top