1、三菱变频器与西门子PLC通讯的实现三菱变频器与西门子PLC通讯的实现变频器由于其应用简便和性能可靠,已成为工业传动装置中首选的电机控制器,现代变频器采用微计算机数字控制技术构成,并提供了标准的工业通讯接口和内置协议如profibus、cclink等,为变频器的远程监控提供了必要的根底。profibus-dp做为现场总线profibus标准中一种,是一种高速数据传输率为9.6kb/s12mb/s、经济、可靠的现场级网络,已经在工业控制得到了广泛的应用。本文以三菱公司的fr-a740变频器为根底,研究了simenz s7-300 plc与fr-a740在profibus-dp网络中通讯的实现,它在
2、笔者所参与的胎面挤出消费线中得到了理论论证。为后续建立变频器的集中监控打下了根底。2 基于profibus-dp控制系统构造的构建fr-a740与profibus-dp网络的连接是通过安装a7np通讯卡来实现的,其典型配置如图1所示,我们可以把系统分为三层构造,分别为监控层、控制层、执行层。ipc作为监控层,采用mcgs组态软件,用于对系统进展监控,plc做为控制层,它作为工控机与变频器之间的桥梁,一方面,它对变频器进展控制,另一方面将消费线上信息如变频器的速度、报警等传达给工控机,其中ipc与plc采用mpimultipoint interface。变频器作为执行层,将plc下达的指令执行,
3、实现对电机的控制。图1 基于profibus-dp控制系统构造图3 变频器数据通讯的实现3.1 参数设置在进展设备通讯之前,必须对变频器的相关参数进展设置,首先在a7np卡上设置网络节点地址,必需要与step 7硬件组态中设置的地址完全一致,这个设置主要通过a7np上sw3,sw1两个旋钮开关来调节的,另外其他主要参数设置如表1所示,它们是在fr-a740的操作面板设置的。3.2 profibus通讯协议对于调速驱动装置,根据变速驱动行规,在周期型通道中传输的数据构造被定义为参数过程数据对象pp0(parameter process object)。这个通道经常被称为标准通道,其中包含有用的用
4、户数据。可用的数据构造分为两个局部且能用报文分别传送:过程通道pzd局部、参数通道pkw局部,详细的协议报文构造如图2所示。图2 profibus-dp报文中有效的数据构造变速驱动行规对ppo的构造、长度作了更详细的规定,常用的参数过程数据对象ppo一共有5种类型,按照可用数据有无参数通道及过程通道的数据字的多少来划分:(1)可用数据有数据区而无参数区,有两字或六个字的过程数据,如ppo3和pp04。(2) 可用数据有参数区和数据区,且有两个字、六个字或是个字的过程数据,如ppo1、ppo2、ppo5。常用的ppo类型如表2所示。选用那种类型的 pp0,取决于在硬件组态中的设置。过程数据在传动
5、系统中总是以最高优先级进展传送和处理,它主要传送传动装置的状态信息和控制信息。参数数据运行存取传动系统的所有参数。因此,它可以在不影响过程数据传输性能的情况下,从上一级系统调用参数值、诊断值、故障信号等。pkw 区说明参数数值pkw的数据接口处理方式。pkw接口并非物理意义的接口,而是一种通讯机理。这一机理确定了参数在两个通讯伙伴之间(如plc和变频器之间)的传输方式。pkw参数区一般包含4个字。前两个字pke和ind的信息是关于主站恳求任务任务识别标记id和从站应答响应应答识别标记id的报文。pkw的后两个字pwe1和pwe2用来读写详细的参数数值。pkw参数通道的第一个字是参数标识符pke
6、。位0到10pnu包括所恳求的参数号,它决定所要执行的参数读写任务访问的是数组参数中的哪一个元素。位11spm是用来参数变更报告的触发位。位12到位15ak包括任务标识id和应答标识id.pkw参数通道的第二个字变址ind的位12到15位是参数号pnu的扩展页号,它和参数标识符根本参数号pnu共同产生完好的传动装置参数号。变址ind的0到7位为带数组的参数寻址提供数组下标,决定访问数组参数的哪一个元素。第三和第四字为参数数值pwe。参数值总是以双字来传送,在ppo报文中,一次只能传送一个参数值,由pwe1(高位字)和pwe2低位字共同组成一个32位参数数值。当用pwe2传送一个16位参数值,必
7、须在dp主站中设置高位字pwe1为零。利用pkw参数通道修改驱动装置参数必须遵守以下规那么:1一个任务或一个应答仅能涉及一个参数。2主站必须重复地发送任务报文直到从从站那里得到相应的应答报文。主站通过对应答识别id、参数号、变址下标和参数值的处理识别任务的应答。3完成的任务必须送出一个报文,对于应答也一样。4在应答报文中重复的实际值总是当前的最新值。5假如在周期工作中不需要pkw参数通道的信息而只需要pzd过程通道的信息,那么任务id被发布为“无任务(用0表示)。过程通道pzd区是为监测和控制调速驱动装置而设计的,在dp 主站和从站中收到的pzd报文总是以最高的优先级处理,即处理pzd过程通道
8、的优先级高于处理参数通道pkw的优先级,而且pzd过程通道总是传送调速驱动装置受骗前最新的有效数据。通常dp主站给传动装置的任务报文中,第一个pzd字为控制字,第二个字为主设定值;传动装置给dp主站的响应报文中,第一个pzd字为状态字,第二个字为主实际值。本文中fr-a740采用pp03的数据传输构造,即使用过程通道pzd控制和监测变频器的工作,而没有使用参数通道pkw修改变频器的内部参数。pp03的数据构造如表3所示。主站给fr-a740的pzd任务报文的第一个字pzd1是变频器的控制字(stw),其每一位的含义如表4所示。对于变频器收到的控制字,其中位10必须设置为1。假如位10是0,变频
9、器将以从前的控制方式继续工作。主站给变频器的pzd任务报文的第二个字pzd2字是变频器的主设定值hsw,即主频率设定值,以十六进制发送,最小单位是0.01hz。变频器给主站的pzd应答报文的第一个pzd字是变频器的状态字zsw,其每一位的含义如表5所示。pzd应答报文的第二个字是主要的运行参数实际值hiw。通常,把它定义为变频器的实际输出频率。4 plc程序的编写在编写变频器通讯程序时,首先应该读取变频器的状态字,判断变频器是否准备就绪,假如没有就绪那么判断是否存在故障,假设有故障要判断故障的类型,给出相关的故障提示信息。然后根据操作指令组装控制字,设定主频率值,同时实时读取从站的应答报文,完
10、成运行状态的在线显示。其程序构造框图如图3所示。图3 变频器通讯程序流程图plc 作为总线主站读pzd应答报文是通过调用s7系统功能sfc14(dprd_dat)来实现,sfc14用于从一个标准的profibus-dp从站读取一串连续的数值,读取数值的长度取决于cpu的类型,它有三个形式参数:dp从站的读数据区的首地址、存放数据变量的首地址、存放错误代码的地址。假设能正确读取数据,错误代码返回0000(hex);假设读取出错,错误代码为非零值。同理,写pzd报文是通过调用系统功能sfc15(dpwr_dat)来实现的,它也有三个入口参数:dp从站写数据区的首地址、存放待写入数据变量的首地址、存
11、放错误代码的地址。假设正确写人,错误代码返回0000hex;假设写入出错,错误代码为非零值。以下是局部程序代码。call dprd_dat /调用sfc14 读取pzd应答报文laddr :=#addres_iw /dp从站读数据区的首地址ret_val:=#error_code_i-n/存储错误代码的返回变量record :=#bpq_in /存放应答报文的首地址l w#16#fl #bpq_in.state_pzd1 /pzd1字aw /判断变频器是否就绪jn nr /没有准备就绪clr= #fault /清内部故障标志位l #control_word1t bpq_out.control_
12、pzd1 /写从站固定控制字spee: l #speed_iwt bpq_out.control_pzd2 /写主频率给给定数值call dpwr_dat /调用sfc15写pzd任务报文laddr :=#addres_qw /dp从站写数据区的首地址record :=#bpq_out /存放任务报文的首地址ret_val:=#error_code_-out /存储错误代码的返回变量nopcall dprd_dat /调用sfc14读取pzd应答报文laddr :=#addres_iwret_val :=#error_code_inrecord :=#bpq_inl #bpq_in.state_pzd2t #actual_speed /读取主频率实际运行值ju endnr: l w#16#8l #bpq_in.state_pzd1 /pzd1字aw /判断变频器是否有故障jz endset= #fault/添加判断错误和故障的代码,并将相应的错误类型写入存储区end: be4 完毕语本文讨论了fr-a740在profib-us-dp网络中通讯的实现方法,该方法已经在作者的工程中通过调试,实际运行说明设备通讯控制良好、可靠。