异构PLC实现三菱伺服绝对位置值的读取
1 引言
1.1 三菱伺服绝对位置传输功能
三菱mr-j2s及mr-j3系列伺服系统内置绝对位置数据传输协议,通过驱动器三个输入和三个输出数字量端口与plc的三个输出三个输入口相配合,实现伺服电机绝对位置向plc的传输。plc读取伺服电机的绝对位置数据后,可方便地构成一个绝对位置系统。这在许多情况下,非常有实际应用价值。在这里要说明的是,以上所述的绝对位置传输协议并非是三菱伺服系统本身也具有的通讯协议。前者是通过伺服驱动器和plc的数字i/o口实现的,后者是通过在rs422通讯口实现的。
1.2 绝对位置读取
作为配合,三菱fx系列plc也内置了绝对位置读取指令(dabs指令),可方便地读取三菱伺服的绝对位置值。但是在三菱家族的a系列和q系列中并没有提供绝对位置读取指令,当然其它品牌的plc更没有与之配合的绝对位置读取指令了。尽管从三菱的产品线来说,其q系列plc提供了qd75m位置模块,使用b系列的伺服驱动器,通过sscnet总线来实现实时的绝对位置通讯。但是在一些低端应用场合及其它品牌plc作为控制器的场合使用其伺服驱动器绝对位置传输协议来构建绝对位置系统还是非常有意义的。换言之说,有必要对于fx系列之外的plc,开发并提供一种对三菱伺服绝对位置值读取的的方法。下面我们以三菱q系列plc为例就这一问题展开讨论。
2 三菱伺服绝对位置传输协议
2.1 位置传输协议的信号定义
图1是伺服驱动器与plc的信号连接图。在本传输协议中,以plc为主机,伺服驱动器为从机,既plc发出传输指令后启动传输过程。在plc输出的四个信号中,y0-y2参与了数据传输,y3并不参与传输。y3用于对所构建的绝对位置系统设置原点。在y0-y2中,y0用于给出伺服开启信号,y1用于对伺服发出abs传输模式指令,使伺服驱动器处于数据传输状态。这时伺服驱动器将改变某些输出端的定义(后述)。y2用于发出数据传输的请求,与“传输数据准备完毕”信号配合,完成伺服驱动器发送数据和plc接收数据的同步。plc的三个输入信号x10-x12接收来自伺服驱动器的输出信号,x10、x11是两位位置数据信号(bit0、bit1),x12为传输数据准备完毕信号,是一个同步信号。该三个信号原来在伺服驱动器内另有定义,伺服驱动器在接收y1给出的传输模式指令后自动切换成当前这种功能。
2.2 位置传输协议数据交换说明
在图2中,plc给伺服驱动器同时给出伺服开启信号sv-on和abs传输模式信号abs后,plc和伺服驱动器将按照下列顺序进行进行数据传输:
(1)伺服驱动器接到absm信号后,检测和计算绝对位置数据,切换do1、zsp、tlc的功能为bit0、bit1、数据传输准备完毕(trd)功能;并将trd置1。
(2) plc接到trd=1的信号后,将abs请求信号absr置1,送到伺服驱动器。
(3)伺服驱动器接到absr=1的信号后,在bit0、bit1上输出二位数据,并将trd置0,通知plc,二位数据已输出。plc可以读数据了。
(4) plc接到trd=0的信号后,读二位数据,然后将abs请求信号absr置0,送至伺服驱动器。
(5)伺服驱动器接到absr信号=0后,知道plc已将二位数据读取,于是又发出trd=1信号,准备下一次传输。然后重复(2)-(5),直至将全部32位位置数据和6位校验和数据传输完毕。
(6) plc收到校验和数据后,将abs传输模式absm信号置0。
在上述传输过程中plc和伺服驱动器的信号配合看似比较复杂 ,其实我们可简单地用图3表示。
2.3 位置数据和校验和数据结构
在传输的38位数据中,前32位数据是伺服电机的绝对位置数据,后6位数据是校验和数据。在表示绝对位置的前32位数据中,按读入的顺序排列为最低二位到最高二位。在表示校验和的后6位数据中,其读入顺序也是从低二位到高二位。该6位校验数据是伺服驱动器根据其所传输的绝对位置值计算出的校验和。plc对读入的32位位置数据进行校验和计算,计算的结果与读入的6位校验和数据相比较,若相等则说明传输正确;否则,则说明传输不正确。
为了实现校验,必须要了解该传输协议所规定的计算方法,也即伺服驱动器内部对位置数据的计算方法,这样才能在plc中按照同样的方法来计算读入位置数据的校验和。只有按同样的方法计算得校验和,其比较才有意义。
例如,伺服驱动器传输的位置数据是013acf76h,二进制是“00,00,00,01,00,11,10,10,11,00,11,11,01,11,01,10”。该协议规定校验和计算方法如下:将每2位数据相加得,11000b=18h。所以该位置数据的校验和为18h。伺服驱动器传输的数据32位位置数据013acf76h和校验和数据18h。
3 软件编制
根据上述对绝对位置传输协议的分析,我们可以编制相应的程序。在编
- SD卡Fatfs文件系统BMP文件读取显示(12-03)
- STM32驱动MAX6675读取温度(12-03)
- DS18B20-64位序列码读取程序(12-02)
- 单片机软件滤波方法(12-01)
- DS18B20温度传感器64位ROM地址读取(STC89C52)(11-26)
- 51单片机实现对24C02进行页写、顺序读取并显示验证(11-19)