1、近年来,随着电机控制技术的不断创新发展,多电机组成的系统应用场景也是越来越多。尤其是在工业生产上,单一电机组成的生产系统已经明显不能满足市场的要求1。但在工业现场对多个电机进行实时控制时,数据量吞吐量很大,需要较高的数据传输速率。而PCI总线的高速性和大带宽可以满足多电机控制在通信上的要求2。因此,本文利用PCI总线的高速并行传输特点,设计了基于PCI总线的多电机控制系统。1系统总体结构框架图1为本文所设计的基于PCI总线的多电机控制系统整体结构。系统整体组成包括Host PC、Target PC、安装在TargetPC上进行数据交互和运动控制的PCI总线板卡、电机驱动板以及作为被控对象的两个
2、永磁同步电机。图1控制系统架构图本文采用“Host PC+Target PC”的模式构建双机操作系统,在Host PC中安装MATLAB软件,在其中编写三环控制算法等多电机控制算法,同时在MATLAB中还需要编写驱动,主要包含数字量输出输入驱动以及模拟量输出输入驱动,这些驱动可以将编写好的模型的输入输出关联到硬件通道中,实现模型与实际被控对象间的交互。Host PC与Target PC之间采用TCP/IP的方式进行相互间的数据传输,主要就是Host PC生成的可执行文件通过以太网传输至Target PC中,并在其实时环境下运行。Target PC将运行的结果等通过以太网传输至HostPC中,由
3、其进行监控显示3。在Target PC上安装自制的运动控制卡,该卡主要实现与Target PC之间的PCI通信、与电机驱动板之间的控制信号传输等。电机驱动板主要实现对电机的驱动,将各相电压、相电流传输至运动控制卡。2PCI通信接口设计本文设计的重点与难点就是运动控制卡与Target PC之间的PCI通信设计。运动控制卡通过PCI接口与Target PC的CPU通信,同时需要在运动控制卡上进行数据输入输出的PCI总线传输逻辑设计。2.1 PCI总线通信协议PCI总线是一种复用型总线,分为主从两端,数据的传输需要控制信号来起作用,而控制信号需要主从两端通过握手的方式来确定信号的有效性,即若一端发出
4、总线请求信号,而另一端没有应答,那么此时总线是没有办法使用的。PCI总线通信协议的规范1和规范2中规定数据的位宽可以为32 bit和64 bit,又因为PCI总线的时钟频率为33 MHz,所以在这两种位宽情况下传输速率分别为1056 Mbps和2112 Mbps,即132 MB/s和264 MB/s4。基于 PCI 总线的多电机控制系统Multi-Motor Control System Based on PCI Bus邢磊袁畅包光旋黄家才(南京工程学院工业中心、创新创业学院,江苏 南京211167)摘要:针对工业现场多电机控制的需求,并在研究电机控制基本原理以及PCI总线通信机制后,设计了一
5、套基于PCI总线的多电机控制系统。该系统主要包括实时控制平台、运动控制板卡以及驱动模块。PCI总线可以保证实时控制平台与运动控制板卡之间数据交互的高速性,满足通信的带宽要求,为电机控制的实时性提供基础。实时控制平台采用RTW双机模式,宿主机主要完成在MATLAB中搭建控制模型的任务,目标机则负责让程序在实时环境下运行。运动控制板卡主要采用Zynq-7z020和PCI9054两款芯片来设计,可以让板卡在具有并行处理能力的同时还可与实时控制平台之间进行高速通行。实际运行表明,所设计的多电机控制系统运行平稳且实时性好。关键词:PCI总线;多电机;运动控制Abstract:According to t
6、he demand of industrial field multi-motor control,and after studying the basic principle of motorcontrol and PCI bus communication mechanism,this paper designs a set of multi-motor control system based on PCI bus.The system mainly includes real-time control platform,motion control board and drive mo
7、dule.PCI bus can ensure the highspeed of data interaction between the real-time control platform and the motion control board,meet the bandwidth require-ments of communication,and provide the basis for the real-time performance of motor control.The real-time control plat-form adopts RTW dual machine
8、 mode.The host machine mainly completes the task of building the control model in MAT-LAB,and the target machine is responsible for running the program in the real-time environment.The motion control boardis mainly designed with two chips,Zynq-7z020 and PCI9054,which can allow the board to pass thro
9、ugh the real-timecontrol platform at a high speed while having the ability of parallel processing.Keywords:PCI bus,multi-motor,motion control基于PCI总线的多电机控制系统32工业控制计算机2023年第36卷第2期目前实现PCI总线传输共有两种方法:其一是对可编程逻辑器件按照PCI总线协议进行编程,现在很多厂家都设计了应用在其生产的可编程逻辑器件上的PCI总线IP核,但是这种IP核价格昂贵;其二就是使用集成好PCI总线协议的通信芯片,比如国外的PCI90X
10、X系列、国内的CH365等,这种方法成本较低,且使用方便,只是硬件电路设计上稍微复杂一些5。2.2 PCI总线读写实现本文就采用PCI9054这款芯片来作为桥接芯片。PCI9054的端口基本上可以分为三个部分,一个是与PCI总线相关的控制、地址和数据端口,第二个是与Local Bus相关的控制、地址和数据端口,最后一个是连接配置芯片EEPROM的端口。从功能上来看,PCI9054表示为两个接口模块,PCIBusIn-terface采用PCI插槽供给的33 MHz时钟,建立PC数据与本地PCI寄存器的关联,LocalBusInterface采用板卡上的50 MHz时钟,建立Zynq-7z020与
11、本地Local寄存器的关联,这两个模块之间采用地址映射的方式进行数据关联。PCI9054片内PCI与Local数据空间的映射配置主要涉及的寄存器有PCIBAR2、LAS0BA、LAS0RR等,这些寄存器的配置信息存储在配置芯片EEPROM中,在系统上电时随其他基本配置信息一起写入到PCI9054中6。PCI9054有三种工作模式,分别为M模式、C模式、J模式,其中M模式用于与MCU进行数据交互;C模式用于与CPU进行数据交互,符合CPU的接口时序7。由于本系统中与运动控制卡进行数据交互的是Target PC,所以选择使用C模式。根据总线请求发起者的不同,PCI9054有三种不同的传输模式,分别
12、为主模式、从模式以及DMA传输模式,本设计采用的是C模式下的从传输模式。通信模块设计中最关键的环节是PCI9054与本地总线端LocalBUS的连接。本设计涉及的关键信号线为8:对外输出的申请占用Zynq-7z020Bus总线信号LHOLD;外部输入的应答信号LHOLDA;对外输出的表征新的总线访问有效地址开始的信号ADS#;BLAST#表示总线访问的最后一次传输,输出信号;LW/R#为读写信号,输出信号;LD31:0为32位数据线,LA31:0为32位数据线;外部输入的表征有效读数据或写操作已结束的信号READY。PCI9054的从模式单周期读、写时序是本设计的难点,其控制状态机如图2所示。
13、在程序中设计4种状态,其中状态0为空闲状态,状态1为总线保持状态,状态2为单周期读状态,状态3为单周期写状态,状态4为读写操作完成状态。这4种状态通过PCI9054的控制信号来进行转换,例如当PCI9054需要通过本地端总线传输数据时,会将LHOLD信号置高,以此来申请总线的控制权,此时就进入了状态1。若本地端应答信号LHOLDA置高,则表明本地端会分配总线给PCI9054,即这种情况下,PCI9054暂时获得了本地端总线的控制权9。系统采用Xilinx公司的可编程逻辑器件(Zynq-7z020),Zynq-7z020的I/O端口多,可通过硬件编程语言编程来自由支配、定义其接口功能,方便PCB
14、设计时的布局布线,程序内部对各功能模块的处理是按并行方式进行的,这样能实时、快速地传输处理高速数据流。通过Zynq-7z020实现PCI接口功能,板卡设计时需将相关信号引入Zynq-7z020引脚,方便控制,主要是LHOLD、LHOLDA、ADS、BLAST及地址线LA。本文选用WinDriver软件对所设计的PCI通信模块进行验证,同时利用Vivado的逻辑分析仪观察PCI相关信号工作时序是否正常、输入输出数据是否准确。打开WinDriver,选择PCI9054作为测试设备,如在执行本地读操作时,通过Vivado逻辑分析仪观察读到的数据,如图3所示;写操作时,实际波形如图4所示。对比读写时序
15、,可以看出上位机与Zynq-7z020本地端能够通过PCI9054完成数据传输。图3PCI9054读数据显示图4PCI9054写数据显示3试验研究与结果分析本文设计双电机双轴同步控制试验10来验证所设计的基于PCI总线的多电机控制系统的可行性与可靠性。试验采用主从控制结构形式,即主动轴的输出是从动轴的参考输入,任何施加在主动轴上的扰动都会引起从动轴上的跟随变化,试验结构如图5所示:图5双轴同步控制逻辑示意图试验中给定电机位置为500 rad,当主从电机运行0.5 s后,对主电机突加1 N*m负载,可以在Host PC中实时看到主从电机的位置误差,主从电机位置误差如图6所示。由图6可见,当给主动
16、轴一个扰动后,从动轴立马作出反应,主从轴之间位置最大误差为0.0033 rad,并且大约在3.5 s后与图2PCI9054从模式时序控制状态机33(上接第31页)结果也证明该RTU系统基本符合预期。1)基本功能测试:通过组态查看相关DIDO AI状态通过上位组态控制DO输出在基于边缘计算的智能RTU系统中配置DI、DO寄存器,了解RS485传感器设备关注的传感参数,再确定现场业务工作流程,最后进行PLC组态,并通过远程进行可视化监控。从而验证基本RTU功能,包括DIDO/AIAO等状态查询、控制和数据读取功能,以及上行支持组态的功能。2)规则联动测试:针对井站中检测温度超高或气压超高的仪器设备,通过规则联动来控制泄压预警并联动其他设备。主要通过RTU系统确定联动的条件和执行的联动输出、告警信息,联动条件及参数,编写联动的规则。从而验证边缘设备规则联动的实时性,可配置的、个性化的智能规则联动策略。3)数据清洗测试:主要是数据计算和数据聚合。数据计算是将大于某个值的压力数据或者温度数据清洗到平台大于某个值的数据,进行规则联动。数据聚合则是获取一段时间某个压力、温度的平均值。实现方法是针对策