1 引言
绝对值位置控制系统对于经常使用的点位控制系统来说,是一种非常方便实用的位置控制方式。一旦原点设置后,完毕每次停电后开机时,这种系统不需要回原点,大大方便了操作。三菱mr-j2s-a系列的伺服系统和三菱fx2n系列plc是在实际中经常用到的伺服系统和控制器,本文讨论在某些特殊的应用场合,如何应用它们来构建一个绝对值位置控制系统。
2 控制任务简介
这是一个实际使用的控制任务,参见图1示意。a点是设备的原始位置,b点是设备的工作位置。开始工作后,设备以位置控制方式移到工作位置b,然后,设备从b以速度控制方式点向a点移动。在移动过程中,执行一些其他的任务,当这些任务完成后在a与b之间的任一位置c点停止。然后以位置控制方式回到原始位置a点,这样整个工作循环结束。
图1 控制任务
2.1 控制平台
三菱j2s-a系列的伺服系统和三菱fx2n系列plc的功能和特性:三菱mr-j2s-a系列的伺服系统中伺服电机的编码器为每转为131072线的绝对值编码器,伺服驱动器能够在停电情况下记住伺服电机的当前位置。该伺服系统有位置控制、速度控制和转矩控制三种运行方式。同时该伺服系统内置绝对位置专用传输协议,如果菱mr-j2s-a系列的伺服系统工作在位置方式,则可配合fx2n系列plc的dabs(读绝对位置)指令,在伺服驱动器通电后伺服on(son信号)有效时,plc中读出伺服电机的当前位置。但仅在son信号接通时的上升沿开始传输当前伺服电机位置一次,在son信号接通以后将不再传输伺服电机的当前绝对位置。伺服电机的当前绝对位置由位置控制装置(如fx2n-1pg模块)根据发出的脉冲数来确定。这实际上是一个开环控制系统。在不发生报警或者脉冲传输不受到干扰的情况下,整个位置控制系统的位置将不会丢失。如果工作在速度控制方式则不能在son接通时读取伺服电机的绝对位置,在整个工作过程中,也无法确定取伺服电机的绝对位置。图2是典型的位置控制系统配置图。
图2 系统配置
2.2 任务分析
在本任务中,伺服驱动器将工作在位置控制和速度控制两种方式。a点和b点的定位操作,要求控制系统必需记住伺服电机的位置,但由于b点与c点之间的速度运行方式,使得传统的控制系统不能获知伺服电机的位置。因为尽管在位置方式位置控制器能确定伺服电机的位置,但在伺服驱动器从位置方式转变为速度方式后,位置控制器将不起作用,所以也无法确定伺服电机的位置。由于在整个控制过程中,既有位置控制方式,又有速度控制方式,所以典型的传统控制配置将不能满足本控制任务,必须采用一种新的控制方式来实现控制。
3 控制方案的硬件配置
上述问题的基本解决思路是通过plc与伺服驱动器的通讯方式,来实时读取伺服电机的当前实际位置,这样不管伺服系统处于位置控制方式,还是在速度控制方式,控制系统都能知道伺服电机的当前位置,从而使系统能正确地定位在a点和b点。通过查阅资料,我们了解到三菱j2s系列伺服系统除了内置绝对位置专用传输协议外,还内置了三菱伺服通讯协议;三菱fx2n系列内置了无协议通讯指令(rs指令),所以我们可使用rs指令根据伺服驱动器的通讯协议来读取电机当前位置。图3是控制系统框图。
图3 系统框图
在图3中,fx2n系列plc为主控制器,扩展特殊模块fx2n-1pg为定位模块,其输出为频率和脉冲数可控的定位脉冲。当plc主系统通过通讯方式获得伺服电机当前位置的前提下,能在定位指令的驱动下,驱动伺服电机到给定位置;扩展特殊模块fx2n-4da模拟量输出模块,其输出为0到正负10v的电压信号;fx2n-485bd为485通讯卡,它和mr-j2s-a伺服驱动器的rs-422相连;fx2n主机通过485bd-rs422口与伺服驱动器进行通信,读取伺服电机的当前绝对位置。当处于位置控制方式时,电机由fx2n-1pg定位模块发出的定位脉冲来控制,包括其运转速度和目标位置。当位置/速度切换信号有效时,伺服驱动器切换为速度控制方式,由模拟量模块输出的0到正负10v来控制其速度大小和运动方向。安装在plc主机上的485通讯卡与伺服驱动器上rs-422口进行通讯,随时读取伺服电机的当前绝对位置值。
4 控制软件编制
在本控制系统的软件中,主要是通讯程序的编制。其他一些如定位控制、位置速度控制方式的切换、模拟量速度控制等程序比较普通,在此不予介绍,我们着重介绍plc主机如何通过485通讯卡来读取伺服驱动器中伺服电机的当前绝对位置的控制软件。
4.1 三菱mr-j2s-a伺服系统通讯协议
该伺服系统具有rs422串行通讯功能,伺服系统作为从站,控制器作为主站。主控制器通过该通讯功能可实现对伺服驱动器的运行控制、参数的修改读取、伺服驱动器当前运动状态的读取等。我们在这里只需要读取伺服电机的当前绝对位置值。
(1)通讯格式:
(2)通讯协议:三菱j2s系列伺服系统的通讯协议大致分为四种格式:从控制器向伺服驱动器发送数据、控制器从伺服驱动器接送数据、通讯超时处理、通讯重试。在这里我们主要使用第二种格式的通讯协议,即控制器从伺服驱动器接送数据的通讯协议。该种格式的通讯协议:
在上述协议中,所有报文均以ascii码表示。在主站控制器发出的报文中,soh(通讯开始)、stx(报文开始)和etx(报文结束)的ascii码分别为01h、02h和03h。读绝对位置的指令为02,则对应的ascii码为30h、31h,绝对位置值(指令脉冲单位)对应的数据号为91,对应的ascii码为39h、31h。站号是在伺服驱动器中设置的站号,假如设置为0时,则对应的ascii码为30h。其校验和的计算范围为站号到etx,将其每一位数据的ascii码进行求和,得到结果的低二位即为校验和数据。在主站控制器收到的报文中,stx、站号、etx与前面一样,不再重复了。当通讯正常时,错误代码为a(伺服不报警时)或a(伺服报警时),当通讯不正常时,则错误代码不等于a或a,而是其他字符。数据即为绝对位置数据,长度为8帧。其校验和的计算范围也是为站号到etx,也是取每位ascii码计算和的低二位。
(3)相关的驱动器参数:p#16参数用于设置波特率、rs232/rs422通讯选择、通讯等待时间。我们选用波特率为19200pbs,rs422通讯口,通讯等待时间有效,则p#16=1101。
p#15参数用于设置站号,在本案中设为0。
4.2 fx2n系列plc无协议通讯指令(rs指令)
fx2n系列plc内置串行数据传送指令,可以通过rs-232或rs-422通讯口与其它设备进行串行通讯。其通讯协议可根据所要与其进行通讯的设备的通讯协议进行编制。
(1)通讯格式:串行数据传送rs指令的通讯格式通过plc的特殊数据寄存器d8120来设置。在最新的fx3u系列plc中可通过设置plc参数来设置,而在fx2n中只能通过plc程序来设置。本案中d8120的b15-b8只能设置为00001100,在此不作介绍。b7-b0用于设置传输的波特率、数据长度等,这些参数必须与j2s伺服驱动器的通讯参数相一致。当b7-b4=1001时,对应的传输波特率为19200
bps;当b3=0时,对应停止位为1位;当b2b1=11时,对应奇偶校验为偶校验;当b0=1时,对应的数据长度为8位。所以d8120=0000110010000111,即h0c97。
(2)串行数据传送rs指令:rs指令的指令格式为 rs d10 k10 d20 k14;其中d10为发送数据首地址,k10为
发送数据的个数(在本案中为10),d20为接收数据存放的首地址,k14为接收数据的个数(在本案中为14)。
4.3 plc和伺服驱动器的通讯程序
在了解了伺服驱动器的通讯协议和plc的通讯指令后,编制相应的通讯程序,目标是实时读取伺服驱动器的绝对位置。该通讯程序大致可分为通讯实现和通讯错误判断两个部分。
(1)报文构成:据前述的通讯协议,我们知道,读电机绝对位置时的协议格式为:
转换成ascii码,则为:
校验和的计算范围为站号到etx的7个帧,计算方法是将其转化成ascii码的数加起来取其低二位。具体计算如下:
30h+30h+32h+02h+39h+31h+03h=101h,取其低二位,则位01。再取其对应的ascii码,得30h、31h。该值即位发送报文中的校验和值。所以,读绝对位置要发送的报文即为01h 30h 30h 32h 02h 39h 31h 03h 30h 31h
(2)主通讯程序:图4是通讯主程序,通过这段程序可得到储存在d50中伺服电机绝对位置值。程序段a是在plc开始运行时,将根据伺服系统的通讯协议编制的报文写入发送数据块。程序段b选择8位数据模式。程序段c激活通讯指令。程序段d每100毫秒对发送标志m8122置位,发送完成后自动复位。在程序段e,当接收完成时,接收完成标志m8123置1,将接收到的数据送到d30—d43中,并同时将m8123复位。程序段f,将14帧接收数据中的位置数据(从第4帧到第11帧)通过转换指令hex转换成16进制数据,最后将位置数据送入d50。
图4 通讯程序
(3)通讯出错检测程序:为了保证读入的位置数据的正确性,必须对整个通讯过程进行出错检测。在这里我们主要核对读入数据的校验和的方法来进行通讯错误校验。前面我们介绍过,计算接收报文数据校验和的计算范围为stx之后的11帧数据。所以具体做法是,根据读入的数据计算stx之后的11帧的校验和,再与接收到报文中校验和(最后两帧)进行比较。在图5的通讯出错检测程序段中,指令h用于计算从伺服驱动器接收到数据的校验和。指令i用于取计算得到的校验的低二位,指令j用于将接收到的校验和转换成16进制。指令k用于比较实际计算得到的校验和与接收到的校验和进行比较,若不相等,则通讯出错。通讯出错后处理,限于篇幅,在此不作介绍。
图5 检测程序
5 结束语
通过上述硬件和软件两方面的结合,整个控制系统就能满足本文开始时所描述的控制任务要求。plc控制伺服系统进行定位控制是一种典型的控制模式,而应用通讯技术实现伺服系统的绝对位置检测和控制更是一种实用的技术。本文所讨论的三菱fx2n系列plc实时读取三菱mr-j2s-a系列伺服系统当前位置的实现方式,不仅对类似的控制场合具有借鉴意义,而且对plc与其他设备的通讯程序编制也有启发意义。