




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PROFIBUS通信及应用一、PROFIBUS(DP)原理二、PROFIBUS数据传输三、PROFIBUS-DP从站智能节点的设计四、人机界面的数据交互一、PROFIBUS(DP)原理1.PROFIBUS总线概述西门子通信网络的中间层为工业现场总线PROFIBUS,它是用于车间级和现场级的国际标准,传输速率最高12Mbit/s,响应时间的典型值为1ms,使用屏蔽双绞线电缆最长通信距离9.6km,使用光缆最长90km,最多可以连接127个从站。PROFIBUS系统由主站和从站组成,主站能够控制总线、决定总线的数据通信。当主站得到总线控制权时,没有外界请求也可以主动发送信息。从站没有控制总线的权力,但可以对接收到的信息给予确认,或者当主站发出请求时回应主站信息。如图1所示。图1PROFIBUS系统一、PROFIBUS(DP)原理PROFIBUS主要有以下几个优点。(1)节省硬件和安装费用,减少硬件成份(I/O,终端块、隔离栅),更容易、更快捷和低成本的安装PROFIBUS减少40%的安装费用。(2)节省工程费用更容易组态(对所有设备只需一套工具)。更容易保养和维修,更容易和更快捷的系统起动。(3)更大的制造灵活性,改进功能减少故障时间,准确、可靠的诊断数据,可靠的数字传输技术。PROFIBUS由三个兼容部分组成,即PROFIBUS-DP、PROFIBUS-PA、PROFIBUS-FMS,以满足工业现场的多种要求,这三个部分在工厂网络中的应用层作用如图2所示。图2PROFIBUS的应用范围一、PROFIBUS(DP)原理(1)PROFIBUS-FMS(现场总线报文规范)已基本上被以太网取代,现在很少使用。(2)PROFIBUS-DP(分布式外部设备)特别适合于PLC与现场级分布式I/O设备之间的通信。主站之间的通信为令牌方式,主站与从站之间为主从方式。PROFIBUS-DP是PROFIBUS中应用最广泛的通信方式。(3)PROFIBUS-PA(过程自动化)可以用于防爆区域的传感器和执行器与中央控制系统的通信。PROFIBUS-PA使用屏蔽双绞线电缆,由总线提供电源。一、PROFIBUS(DP)原理2.PROFIBUS总线的通信协议PROFIBUS-DP、PROFIBUS-FMS和PROFIBUS-PA均使用一致的总线通信协议,介质存取控制必须确保在任何时刻只能由一个站点发送数据,PROFIBUS协议的设计要满足介质控制的两个基本要求:一是同一级PLC或主站之间的通信必须使每一个主站在确定的时间范围内能获得足够的机会来处理自己的通信任务;二是主站和从站之间应尽可能快速而准确的完成数据的实时传输。因此,PROFIBUS使用混合的总线存取控制机制来实现上述目标,包括用于主站之间通信的令牌传送方式和用于主站与从站之间通信的主从方式。在一个主站获得了令牌之后,可以拥有总线的控制权,而且此时在整个总线上必须是唯一的,在一个总线系统内,最大可以使用的站地址范围是0-126,也就是说一个总线系统最多可以有127个节点。这种总线控制存取控制方式可以有以下3种系统配置,即主-主系统(令牌传送方式)、纯主-从通信系统(主从通信方式)以及两种方式的组合。PROFIBUS的总线存取控制方式符合欧洲EN50170V.2规定的令牌总线程序和主-从程序,与所使用的传输介质无关。二、PROFIBUS数据传输1.PROFIBUS现场总线的传输技术现场总线系统的应用在较大程度上取决于采用哪种传输技术,既要考虑传输的拓扑结构、传输速率、传输距离和传输的可靠性等,还要考虑成本低廉、使用方便等因素;在过程自动化的应用中,为了满足本质安全的要求,数据和电源必须同在一根传输媒介上传输,因此单一的传输技术不可能满足以上所有要求。PROFIBUS提供了三种传输技术类型,用于DP和FMS的RS-485和光纤传输技术以及用于PA的IEC1158-2的传输技术。二、PROFIBUS数据传输2.PROFIBUS-DP系统的网络结构PROFIBUS-DP允许构成单主站或多主站系统,在同一总线上最多可以连接127个站点(站号从0-126,不包括中继器)。系统配置的描述包括:站数、站地址、输入/输出地址、输入/输出数据格式、诊断信息格式及所使用的总线参数。Profiubs-DP单主站系统中,在总线系统运行阶段,只有一个活动主站,如图3所示的PROFIBUS-DP单主站系统PLC作为主站。图3PROFIBUS-DP单主站系统二、PROFIBUS数据传输Profiubs-DP多主站系统中总线上连接有多个主站。总线上的主站与各自的从站构成相互独立的子系统。如图4所示,任何一个主站均可读取DP从站的输入/输出映像,但只有一个DP主站允许对DP从站写入数据。图4PROFIBUS-DP多主站系统二、PROFIBUS数据传输3.PROFIBUS-DP系统的工作过程PROFIBUS-DP系统从通电到进行数据交换的正常工作状态,分为4个阶段。(1)主站和从站的初始化系统上电后,主站和从站进入Offline状态并进行自检。主站需要加载总线参数集、从站需要加载相应的诊断数据等信息。(2)令牌环的建立初始化完成以后,主站开始监听总线令牌。主站准备好后进入总线令牌环,即处于听令牌状态。在一定时间内主站如果没有听到总线上有信号传递,就开始自己生成令牌并初始化令牌环;然后,该主站对全体可能的主站地址做一次状态询问,根据收到应答的结果确定LAS和本站所管辖站的地址范围GAP。GAP是指从本站地址TS到令牌环中的后继地址NS之间的地址范围,LAS的形成标志着逻辑令牌环初始化完成。二、PROFIBUS数据传输(3)主站与从站通信的初始化主站与DP从站交换用户数据之前,必须设置从站的参数并配置从站的通信接口。主从站通信初始化的流程如图5所示。在主从站通信初始化过程中,实际上交换了参数数据、通信接口配置参数以及诊断数据,交换过程如图6所示。参数数据包括预先给从站的一些本地、全局参数以及一些特征和功能。参数报文的长度不能超过244个字节,重要的参数包括状态参数、看门狗定时器参数、从站制造商的标识符、从站分组及用户定义的从站参数等。通信接口配置数据,DP从站使用标识符来描述输入/输出数据,标识符规定了用户数据交换时输入/输出字节或字的长度以及数据的一致刷新要求,在检查通信接口配置时,DP主站发送标识符给从站,来检查从站中实际存在的输入/输出区域是否与标识符所设定的一致,如果检查通过,则进入主从用户数据交换阶段。诊断数据,在启动阶段,DP主站使用诊断请求报文来检查是否存在DP从站和从站是否准备接收报文。从站提交的诊断数据包括符合EN50170标准的诊断及该从站专用的外部诊断信息。DP从站发送诊断信息告知主站它的运行状态、出错时间以及出错原因等。二、PROFIBUS数据传输图5主从通信初始化流程图图6数据交换过程二、PROFIBUS数据传输(4)交换用户数据通信在交换用户数据期间,DP从站只响应对其设置参数且通信接口配置检查正确的主站发来的用户数据,主从站可双向交换最多244个字节的用户数据。在此阶段,如果从站出现故障或其它诊断信息,中断正常的用户数据交换;DP从站将应答时的报文服务级别从低优先级改变为高优先级来告知主站当前有诊断报文中断或其它状态信息;然后DP主站发了诊断请求,请求从站的实际诊断报文或状态信息。处理后,DP从站和主站返回到交换用户数据状态。三、PROFIBUS-DP从站智能节点的设计1.PROFIBUS-DP从站智能测控节点的一般结构在基于PROFIBUS-DP现场总线的SCADA系统中,需要设计对工业现场实现测控的智能节点。PROFIBUS-DP从站智能测控节点的结构如图7所示。图7PROFIBUS-DP从站智能测控节点结构图三、PROFIBUS-DP从站智能节点的设计2.FBPRO-8DO八路数字量输出智能节点的设计(1)硬件结构FBPRO-8DO八路数字量输出智能节点的硬件框图如图8所示。在图8中,微控制器选用Philips公司的P87C51RD2,采用74HC273锁存器控制数字量的输出状态,通信控制器采用Siemens公司的SPC3,RS-485驱动器采用TI公司的65ALS1176。其余电路与CAN智能测控节点相同,其中DC/DC电源模块在图中未画出。图8FBPRO-8DO智能节点的硬件结构框图三、PROFIBUS-DP从站智能节点的设计在该智能节点的设计中,设定节点的口地址为7FFFH,SPC3的起始地址为1000H,控制数字量输出的口地址为0DFFFH。(2)数字量输出电路数字量输出电路如图9所示。图9数字量输出电路在图9中,输出为集电极开路。三、PROFIBUS-DP从站智能节点的设计(3)程序设计在FBPRO-8DO智能节点的设计中,主要包括主程序、数字量输出程序,SPC3初始化程序,SPC3数据输入输出等程序。程序清单从略。3.FBPRO-8DO从站的GSD文件4.PROFIBUS-DP上位机通信程序设计如果已经设计好了能完成某种功能的从站,就可以编写上位机测试程序来测试从站的性能。本节采用CP5611网络接口卡,以FBPRO-8DO八路数字量输出智能节点为例介绍PROFIBUS-DP上位机通信程序设计,编程环境使用VC++6.0。本程序能够完成应用程序的初始化,数据读入和数据输出和应用程序的复位等基本操作。三、PROFIBUS-DP从站智能节点的设计PROFIBUS-DP上位机通信程序设计步骤为:①在VC++6.0下创建一个应用程序;②将CP5611网络接口卡提供的DPN_USER.H和DPLIB.LIB两个文件拷贝到刚刚新建的项目根目录下,并且添加到应用程序中;③在VC++6.0环境下编写通信程序。下面介绍通信程序中用到的几个函数的使用方法。三、PROFIBUS-DP从站智能节点的设计(1)定义变量dpn_interfacedpn_ptr;//使用前必须首先定义dpn_interface的结构:structdpn_interface{structREFERENCEreference;
unsignedcharstat_nr;
unsignedcharlength;
unsignedshortinterror_code;
unsignedcharslv_state;
unsignedcharsys_state;
unsignedcharsys_event;
unsignedcharuser_data[MAX_DATA_LEN];};三、PROFIBUS-DP从站智能节点的设计(2)调用初始化函数dpn_init(&dpn_ptr)在使用该函数之前,必须对该函数做一些初始化操作,其它函数使用前也必须首先对变量初始化:dpn_ptr.reference.board_select=1;dpn_ptr.reference.access=(DPN_SYS_NOT_CENTRAL)|(DPN_ROLE_NOT_CENTRAL);//以上一般固定dpn_ptr.length=126;//length=PROFIBUS网络中最大的从站地址
intj=0;for(j=0;j<126;j++) //设置设备读写属性,{ if(“网络中存在该地址”) { dpn_ptr.user_data[j]=DPN_SLV_WRITE_READ; 三、PROFIBUS-DP从站智能节点的设计//如果网络中存在本地址,则将属性设置为//DPN_SLV_WRITE_READ,否则为0 } else dpn_ptr.user_data[j]=0;
} //FBPRO-8DO地址为7,应该设置 //dpn_ptr.user_data[7]=DPN_SLV_WRITE_READ; dpn_init(&dpn_ptr);//调用初始化函数三、PROFIBUS-DP从站智能节点的设计如果有错误,可以参考初始化函数的返回值来解决。interror=dpn_ptr.error_code;有以下几种:#define DPN_NO_ERROR 0x0000#define DPN_ACCESS_ERROR 0x0080#define DPN_APPL_LIMIT_ERROR 0x0081#define DPN_CENTRAL_ERROR 0x0082#define DPN_CLOSE_ERROR 0x0083#define DPN_LENGTH_ERROR 0x0084#define DPN_MEM_BOARD_ERROR 0x0085#define DPN_MEM_HOST_ERROR 0x0086#define DPN_MODE_ERROR 0x0087#define DPN_NO_DBASE_ERROR 0x0088#define DPN_OPEN_ERROR 0x0089#define DPN_RECEIVE_ERROR 0x008a#define DPN_REFERENCE_ERROR 0x008b#define DPN_REFERENCE_PTRFF_ERROR0x008c三、PROFIBUS-DP从站智能节点的设计#define DPN_SEND_ERROR0x008d#define DPN_SLV_STATE_ERROR 0x008e#define DPN_STAT_NR_ERROR 0x008f#define DPN_USER_DATA_ERROR 0x0090#define DPN_WRONG_BOARD_ERROR 0x0091#define DPN_SYS_STATE_ERROR0x0092#define DPN_GLB_CTRL_ERROR 0x0093#define DPN_BOARD_ERROR 0x0094#define DPN_WD_EXPIRED_ERROR 0x0095#define DPN_OPEN_LICENSE_ERROR 0x0096#define DPN_LOAD_L2_VXD_ERROR 0x0097#define DPN_OPEN_L2_VXD_ERROR 0x0098三、PROFIBUS-DP从站智能节点的设计只有当初始化正确后,才能进一步进行以下操作。如果出现错误,可能原因有以下几种:①已经调用了初始化函数,并且已经成功,还没有调用复位函数,又一次调用初始化函数。②对dpn_ptr.user_data[j]的值超出了以下范围:DPN_SLV_WRITE_READDPN_SLV_READDPN_SLV_NO_ACCESS③设置了DPN_SLV_WRITE_READ或DPN_SLV_READ属性的模块没有在配置软件中进行正确配置。④dpn_ptr.reference.board_select=1;dpn_ptr.reference.access=(DPN_SYS_NOT_CENTRAL)|(DPN_ROLE_NOT_CENTRAL);属性设置不正确。三、PROFIBUS-DP从站智能节点的设计⑤另外就是SetPG/PC设置不正确,也不能初始化成功,关于它的设置见6.11.5节。⑥没有正确安装CP5611网络接口卡的驱动程序。⑦在初始化前没有将配置好的参数文件正确下载到系统中。(3)数据输出dpn_out_slv(&ptr_ptr)dpn_ptr.reference.board_select=1;dpn_ptr.reference.access=(DPN_SYS_NOT_CENTRAL)|(DPN_ROLE_NOT_CENTRAL);ptr_ptr.stat_nr=m_ptradd; //从站地址ptr_ptr.length=8; //与从站的参数化数据必须一致,
//本例中8字节输出,8字节输入//以下是pc到从站的8个字节的输出数据ptr_ptr.user_data[0]=m_ptradd;ptr_ptr.user_data[1]=05;//功能号ptr_ptr.user_data[2]=00;三、PROFIBUS-DP从站智能节点的设计ptr_ptr.user_data[3]=01; //通道号ptr_ptr.user_data[4]=255;//开关量输出,00打开,0xff闭合ptr_ptr.user_data[5]=0;ptr_ptr.user_data[6]=0;ptr_ptr.user_data[7]=0;dpn_out_slv(&ptr_ptr);(4)数据读入dpn_in_slv(&dpn_ptr)dpn_ptr.reference.board_select=1;dpn_ptr.reference.access=(DPN_SYS_NOT_CENTRAL)| (DPN_ROLE_NOT_CENTRAL);dpn_ptr.stat_nr=m_ptradd;//从站地址dpn_ptr.length=255;//此处必须设置255dpn_in_slv(&dpn_ptr);//返回值三、PROFIBUS-DP从站智能节点的设计//以下是从站到PC的8个字节的输入数据a1=ptr_ptr.user_data[0];a2=ptr_ptr.user_data[1];a3=ptr_ptr.user_data[2];a4=ptr_ptr.user_data[3];a5=ptr_ptr.user_data[4];a6=ptr_ptr.user_data[5];a7=ptr_ptr.user_data[6];a8=ptr_ptr.user_data[7];intlen=dpn_ptr.length;//返回实际数据长度interror=dpn_ptr.error_code;//返回错误代码,没有错误返回0intslvstate=dpn_ptr.slv_state;//返回从站状态,有以下取值三、PROFIBUS-DP从站智能节点的设计#define DPN_SLV_STAT_OFFLINE 0x00#define DPN_SLV_STAT_NOT_ACTIVE 0x01#define DPN_SLV_STAT_READY 0x02#define DPN_SLV_STAT_READY_DIAG 0x03#define DPN_SLV_STAT_NOT_READY 0x04#define DPN_SLV_STAT_NOT_READY_DIAG 0x05intsysstate=dpn_ptr.sys_state;//返回系统状态,有以下取值#define DPN_SYS_OFFLINE 0x00#define DPN_SYS_STOP 0x40#define DPN_SYS_CLEAR 0x80#define DPN_SYS_OPERATE 0xc0三、PROFIBUS-DP从站智能节点的设计初始化函数的返回值没有错误后,可以进行其他函数的操作,但有时并不能达到我们期望的结果,比如数据不能读取到上位机,或者上位机的数据不能正确下载到从站中。初始化正确但是不能正常通信的可能原因有以下几种:从站没有工作。从站电源指示灯亮,但是电源电压低,微处理器没有工作。通信电缆没有连接好。通信电缆太长或通信速度太快。没有正确设置终端电阻。地址设置不一致。三、PROFIBUS-DP从站智能节点的设计(5)读取总线参数dpn_read_bus_par(&dpn_ptr)dpn_ptr.reference.board_select=1;dpn_ptr.reference.access=(DPN_SYS_NOT_CENTRAL)| (DPN_ROLE_NOT_CENTRAL);dpn_ptr.length=255;dpn_read_bus_par(&dpn_ptr);返回值,user_data为总线参数,总线参数的结构如下所示structdpn_buspar{unsignedshortintReserved;
unsignedcharFdlAdd;
unsignedcharbaudrate;
unsignedshortintTsl;三、PROFIBUS-DP从站智能节点的设计
unsignedshortintMinTsdr;
unsignedshortintMaxTsdr;
unsignedcharTqui;
unsignedcharTset;
unsignedlongTtr;
unsignedcharG;
unsignedcharHsa;
unsignedcharMaxRetryLimit;
unsignedcharBpFlag;
unsignedshortintMinSlaveInterval;
unsignedshortintPollTimeout;
unsignedshortintDataControlTime;};三、PROFIBUS-DP从站智能节点的设计(6)复位dpn_reset(&dpn_ptr)退出时程序要复位dpn_ptr.reference.board_select=1;dpn_ptr.reference.access=(DPN_SYS_NOT_CENTRAL)|(DPN_ROLE_NOT_CENTRAL);dpn_reset(&dpn_ptr);程序正确复位后error_code=0;三、PROFIBUS-DP从站智能节点的设计5.PROFIBUS-DP从站的测试过程下面以FBPRO-8DO八路数字量输出智能节点为例介绍PROFIBUS-DP从站的测试过程。(1)安装硬件和驱动程序将从Siemens公司购买的工具软件COMPROFIBUSV5.1、CP5611网络接口卡及CP5611驱动程序安装到PC计算机。(2)拷贝GSD文件将设备生产商提供的GSD文件REND0008.GSD拷贝到COMPROFIBUS安装文件的gsd文件夹中,一般在“C:\SIEMENS\CPBV51\gsd”目录下(3)启动COMPROFIBUS启动COMPROFIBUS。在开始菜单中选择:程序/SiemensCOMPROFIBUSV5.1/COMPROFIBUSV5.1,济南莱恩达网络仪表科技有限公司的从站设备便出现在DPSlave图10中。三、PROFIBUS-DP从站智能节点的设计图10COMPROFIBUS初始界面三、PROFIBUS-DP从站智能节点的设计(4)添加主站和从站添加主站和从站,如图11所示。网络接口卡使用CP5611,从站使用FBPRO-8DO智能节点,设置从站输入输出字节数为8字节输入8字节输出,地址为7(与从站的初始化值必须一致),设置网络的通信波特率(从9.6kbps到12Mbps)。具体操作方式参见COMPROFIBUS的帮助文件。图11添加主站和从站三、PROFIBUS-DP从站智能节点的设计完成上述工作后,导出NCM文件(File/Export/NCMFile),导出的文件路径为“C:\SIEMENS\CPBV51\ncm\COMPro2.ldb”。(5)启动SetPG/PC开始/SEMATIC/SIMATICNET/SETTING/SETPG/PC,选择访问点:CP_L2_1选择接口参数设置:CP5611(PROFIBUS-DPMaster),如图12所示。图12设置SetPG/PC属性三、PROFIBUS-DP从站智能节点的设计单击“属性”,出现如下窗口,从中选择刚才导出的NCM文件:C:\SIEMENS\CPBV51\ncm\COMPro2.ldb,如图13所示。图13导入数据库文件三、PROFIBUS-DP从站智能节点的设计单击“诊断”,可以对网络进行测试,如查看总线的参数和连接在网络上的节点(主站或从站),如图14所示。总线通信波特率是19.2kbps,主站地址为1,连在网络上的从站地址是7。图14查看总线参数三、PROFIBUS-DP从站智能节点的设计(6)软件测试完成以上工作后,就可以用自己编写的测试软件来测试数据的输入和输出了,DP95DEMO.EXE用于PROFIBUS从站节点的通信。①打开应用程序,出现如图15所示界面。图15测试窗口界面三、PROFIBUS-DP从站智能节点的设计②选择菜单DP-Slave/Sele
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床样品管理制度
- 临时休息管理制度
- 临时摆卖管理制度
- 临时薪酬管理制度
- 事务车辆管理制度
- 基于大概念的初中生物学教学设计与实施研究
- 面向功率集成的新型氮化镓二极管与晶体管研究
- 2024年甘肃陇南招聘城镇公益性岗位人员真题
- 南京城市职业学院《房地产前沿专题》2023-2024学年第二学期期末试卷
- 南充电影工业职业学院《医学心理学含伦理学》2023-2024学年第二学期期末试卷
- 2025年福建省龙岩市中考数学模拟卷(含答案)
- 高考英语读后续写:三大主题语境结尾金句
- 微信授权协议书范本
- 中国糖尿病足诊治指南(2024版)解读课件
- 场地合作分成协议合同
- 2025年中国高吸水性树脂行业市场发展现状研究及投资战略咨询报告
- 中职电子商务基础理论试题及答案
- 驾驶员保密管理制度培训
- 市政工程沟槽开挖与沟槽回填专项施工方案
- 2025年吉林长春市轨道交通集团有限公司招聘笔试参考题库含答案解析
- 制造业运营总监岗位职责
评论
0/150
提交评论