1 引言 plc和变频器是自动化设备上最常见的部件。其最初的控制型式大多是用plc的i/o点和模拟量模块直接控制变频器的启停和实现调速,但这种控制方式有两大弊端,最大的弊端是占用plc的i/o点和需要增加昂贵的模拟量模块,造成控制成本的增加。当被控制的变频器数量较多时,此弊端更是明显。第二个弊端是模拟量控制容易受干扰,传输距离也容易受限制。 近几年来自动化产品不断更新换代,性能不断提升,功能日益强大。在小型plc方面这个变化更加明显,现在的小型plc不仅执行速度大大提高,指令功能日益丰富,更重要的是大都支持多种通讯协议,并提供了更多的通讯接口。同时大多的变频器也具有了rs485接口,也能支持多种通讯协议,最常见的就是modbus协议。这种技术的进步为plc和变频器通讯的实现,提供了软件上的协议和硬件上的物理接口,从而为低成本高性能的通讯控制的实现打下了良好的基础。 2 通讯相关的基础知识 2.1 通讯协议communications protocol 通信协议是指通信双方的一种约定。这个约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程。 modbus协议是工业控制器中使用较普遍的一种网络协议。通过此协议,各种控制器之间(比如plc、变频器、伺服驱动器、各种智能仪表)、控制器通过其它网络(比如以太网)和其它设备之间都可以通信交换信息。该协议定义了一个控制器可以识别的信息架构,从而使不同厂商生产的支持此协议的各种工控产品可以连接到一个网络上进行集中控制和信息交换。 2.2 rs485接口的特点 rs485接口是在大家熟知的rs232接口的基础上推出的性能更优的一种串口。由于rs485接口具有良好的抗噪声干扰性,长的传输距离和多站功能等优点,它成为应用越来越广泛的串行接口。 此外,rs485接口组成的半双工网络一般只需二根屏蔽双绞电线,这为长距离的通讯线路节省了很多配线,降低了系统的成本。 3 台达plc和变频器通讯功能的特点 台达的dvp系列plc都具有两个通讯口,com1是rs232,com2是rs485,支持modbus ascii/rtu通讯格式,通讯速率最高可达115200bps,两通讯口可以同时使用。所以无需用任何扩展模块就可以实现既可连接用于参数设置的人机界面又可用通讯的方式控制变频器等其它设备。并且dvp系列plc提供了针对modbus ascii/rtu模式的专用通讯指令,这样在编写通讯程序时就可以大大简化,无需像用串行数据传送指令rs那样要进行复杂的校验码计算和遵循复杂的指令格式。 台达的vfd系列变频器内建有单独的rs485串联通讯界面,并且也遵循modbus ascii/rtu通讯格式(vfd-a系列除外)。基与以上特点,台达的plc和变频器之间可以有三种方式的通讯控制。一是用串行通讯rs指令,但这种通讯方式要遵守特定的指令格式和进行复杂的校验计算,比较繁杂,本文不作说明。二是利用dvp系列plc提供的modbus专用通讯指令实现,这个功能适用于全系列的dvp系列plc。三是利用dvp系列plc的easy plc link功能来实现,这个功能适用除es/ex/ss外的其它系列plc。本文就讲述以后两种方式的通讯功能的实现。 4 实现plc和变频器通讯时的准备工作 4.1 plc相关通讯口通讯格式的设置方法 台达dvp系列plc的每一个通讯口都对应有相关的特殊寄存器d和特殊继电器m,以进行通讯相关的参数设置和信息的传送。本文中要使用的com2对应的主要特d特m及其意义见表1。 表1 特殊寄存器和特殊继电器的意义
表1中的d1120是16位的寄存器,通过程序设置此寄存器的数值,以便使plc的通讯协议与待通讯的从机协议一致。d1120中各数据位代表的意义如表2所示,使用delta的专用modbus通讯指令时d1120高8位的数据可以不设置,可以看作全为0。比如我们要用的通讯格式为:7位数据长、偶数、1位停止位(亦即常说的协议为:7e1),通讯速率为9600,则通过此图表我们可以知道d1120中的数据为:0000 0000 1000 0110,即d1120=h86。这样在编通讯程序时把h86写入d1120,然后set m1120,就设定好了plc com2口的通讯协议。 表2 d1120中各数据位代表
4.2 进行通讯时变频器需要设定的相关参数及需要使用的通迅地址 变频器需要设定的参数及说明见图表3。如果进行变频器的通讯控制时必需设定这些参数,并且设定值要和plc的d1120值设置一致。 表3 变频器需设置参数表 当plc对变频器通讯进行数据的写入和读出时,就需要知道变频器所定义的相关功能的地址。然后依据这些地址进行数据写入和读出,才能实现对变频器的控制和得到变频器的当前信息。vfd-m系列变频器定义的本通讯实例中需用到的字址及其意义如表4所示。根据此表可以知道,当需要变频器以20hz正向运转时,就只需在变频器通讯相关的参数字址2000h写入:0000 0000 0001 0010,即十六进制的h12或十进制的k18;在2001h中写入k2000。 表4 变频器的通讯参数字址定义 4.3 plc和变频器间的通信线的连接 变频器通讯接口各脚分布及定义如图1所示。当与plc进行rs485通讯时,仅需使用编号为3和4的脚,其中3脚和plc的rs485接口的-相连,4脚与rs485口的+相连即可。变频器接口为rj-11接口,和常用的电话机的接口是相同的,而plc端是普通接线端子埠,因此通讯线的制作非常简单,无需用专用接口焊接通讯线。笔者曾用从电话机上拆下的一段电话线实现了plc与变频器间的通讯。 图1 变频器rs-485接口各脚定义 5 用modrw指令实现plc对变频器的通讯控制 modrw指令是dvp系列plc提供的modbus数据读写指令,此指令适于dvp全系列plc。因此可以利用低端的es主机完成与变频器的通讯控制,实现控制系统的最佳性价比配合。本通讯实例就以es系列plc控制vfd-m变频器,以实现多段速的调速操作。 modrw指令格式为:modrw s1 s2 s3 s n。s1为联机装置的地址,与变频器通讯时即为参数p88的设置值。s2为通讯功能码,此指令支持三个功能码,即h03(读取多笔命令)、h06(单笔数据写入命令)、h10(多笔数据写入命令)。s3为欲读写的通讯从机的地址。s为欲读写的数据的存储地址。n是欲读写的数据长度,es系列plc当为ascii 模式时此值设定范围是k1-k8,当为rtu模式时为k1-k16。 本通讯实例是利用plc对变频器进行多段速调速控制,以实现一个单轴定位操作。其实现过程是这样的,自动动作开始时,plc以通讯的方式让变频器带动电机高速运转,用plc的高速计数器接收机械运转的位置信息,然后通过对位置信息的判断,实现在接近设定位置时变频器带动电机减速运动,直到最后位置到达时停止,以实现定位功能。实现此功能的plc程序主要分三个部分,其一是高速计数程序及比较输出,其二是根据高速计数器的比较输出准备待通讯的数据,其三就是通讯程序。第一部分不是本文讨论范围,第二部分和第三部分的例子程序见图2、图3。 图2 待通讯数据写入程序 图3 通讯程序 6 用easy plc link功能实现plc与变频器的通讯 台达的plc link功能是以modbus通讯协议为基础来进行数据读写,其特点是进行数据读写时不需要特殊应用指令,只需用mov指令进行数据交换。eh/eh2/sv plc作主站时支持m1353=on,可启动32台link功能及超过16笔读写功能;sa/sx/sc主机仅支持16台link功能及16笔读写功能。但能控制16台主机的能力就足以应付大多简单控制系统。用plc实现 link功能时同样需要让主从设备的通讯口的通讯格式设置一致,所设置的方法同前文所述。 进行plc link读写从站数据时,作为主站的plc其它需要设置的项目如表5所示。 表5 plc link时需设置的寄存器 知道上述这些需要设置的数据,就可以编写plc与从机间实现link功能的程序了。本例以sa plc作主机控制vfd-m变频器实现上例所述之多段速控制功能。例子程序如图4、图5所示,变频器的设置及通讯线的连接和上例相同。图4为待通讯数据的写入,与上例一样,通过对高速计数器接收的位置信息的比较结果,写入相应数据,以调节变频器的输出频率和动作。图5为link 相关程序,其中m1351 on是启动link为自动模式,m1350 on为link功能开始。 图4 link时待写入数据准备程序 图5 link通讯程序 7 结束语 从两个通讯实例可以看出,台达的plc和变频器间实现高性能的通讯控制非常简单容易,且性价比极高,值得推广应用。但需要注意的是由于rs485口是半双工工作模式,因此当程序中有多条通讯程序段时,一定不能出现两个或以上的通讯程序同时被执行的情况。
|