基于TwinCAT和C#的扭矩传感器校准系统

2014-03-21 12:05满庆丰夏继强
仪表技术与传感器 2014年4期
关键词:报文通讯总线

李 响,满庆丰,夏继强

(北京航空航天大学机械工程及自动化学院,北京 100191)

0 引言

扭矩传感器的校准一般采用实验室校准和现场校准两种方式。相比实验室校准,现场校准的优点在于:(1)现场校准在实际应用的试验台或设备上进行,消除了工作现场多方面因素的影响,如传感器的安装误差、传动轴系的形变等;(2)实验室校准需要将零部件进行拆卸并运送到校准实验室,而现场校准可在工作现场随时进行,提高了工作效率。所以该系统采用现场校准的方式。

TwinCAT(The Windows Control and Automation Technology)平台是基于PC技术的控制平台,具有开放性好,速度快,运算能力强,易扩展的特点[1]。TwinCAT支持多种现场总线,如PROFIBUS、CAN、EtherCAT等,使用灵活,可以针对不同应用场合设计出不同方案。

C#是Microsoft开发的一种面向对象的程序设计语言[2],由C++衍生而来,综合了VB简单的可视化操作和C++的高运行效率,是.NET开发的首选语言。

1 扭矩传感器校准系统的总体设计

1.1系统概述

扭矩传感器校准系统用于对工业现场使用的扭矩传感器进行校准,以修正其测量输出值。系统由载荷控制、数据采集、数据处理三部分组成。其中,载荷控制部分用于根据校准工艺的要求,对机械轴进行指定多点的扭矩加载;数据采集部分用于采集在给定扭矩下,标准传感器和被校传感器对轴扭矩的测量值;数据处理部分用于对数据采集部分的数据进行分析处理,计算校准公式,绘制校准曲线,并保存校准参数。

1.2系统构成

根据系统集成多种现场总线的工作特点,选用TwinCAT软PLC做为中央控制单元,负责控制信号的下发和测量数据的采集。做为主控单元,TwinCAT运行于工业PC机,通过PCI总线集成PROFIBUS-DP总线卡和CANopen总线卡。现场设备通过总线与TwinCAT进行通讯,这样便实现了扭矩加载电机的控制和传感器信号的采集;同时,TwinCAT通过ADS(自动化设备规范)通信与C#设计编写的HMI进行数据交互,以获取设置的扭矩加载值并上传采集的传感器测量值。系统的总体构成如图1所示。

图1 系统总体构成图

1.2.1系统的硬件配置

(1)工控机选用IPC-610H 1台,根据需要配有2个PCI卡槽;

(2)PROFIBUS DP总线卡选用带有PCI接口的PROFIBUS MASTER CIF50-PB 1个;

(3)CANopen总线卡选用带有PCI接口的CANopen MASTER FC51xx 1个,双通道,同时支持CANopen协议和普通CAN协议;

(4)电机驱动系统选用 SINAMICS S120,根据需要可灵活组态;

(5)标准扭矩传感器选用精度较高的产品:TB1A-5000Nm扭矩测量盘和MP30工业测量放大器1套。MP30放大器可将TB1A测量盘的扭矩测量信号转换为CAN信号,并通过CANopen协议上传至TwinCAT;

(6)被校扭矩传感器选用测量精度相对较低的MANNER公司产品:MW-5kNm扭矩测量法兰、A8a-PCM无线接收天线和AW-P接收单元1套。测量数据来自MW扭矩测量法兰,通过A8a接收天线传送至AW-P接收单元,接收单元再将处理后的测量信号通过CAN总线,采用自定义的CAN协议上传至TwinCAT.

1.2.2系统的软件配置

(1)在工控机内安装Windows XP或Windows 7操作系统做为系统软件运行平台;

(2)安装Microsoft Visual Studio 2010做为C#语言的开发环境,用来编写和调试程序;

(3)选用TwinCAT平台做为运行于工控机的软PLC,包括TwinCAT PLC Control和TwinCAT System Manager等部分。

1.3系统工艺和工作流程

MANNER和HMB的扭矩传感器区别在于:MANNER的扭矩测量法兰和接收单元是采用无线通讯的方式进行数据的传输,便于动态测量旋转轴的扭矩;而HBM 的扭矩测量盘和测量放大器采用有线连接,不适宜测量动态的旋转轴扭矩。因此扭矩的校准采用静态校准方式,即在轴的一端连接加载电机,另外一端用销钉或其他锁紧装置固定,在轴保持静止的条件下进行扭矩的校准,如图1下端所示。

系统的工作流程如图2所示。

图2 系统工作流程图

2 扭矩传感器校准系统的实现

2.1HMI的设计

系统的HMI采用C#语言进行设计开发,可实现传感器的选择、扭矩加载值的设定、传感器测量值的实时动态显示、数据的分析处理等功能。HMI界面如图3所示。

图3 扭矩传感器校准系统HMI界面

其中,设置区域用于选择需要校准的传感器(可多个选项);控制区域用于输入扭矩给定值;采集区域用于实时显示当前传感器的测量值,包括HBM传感器上传的扭矩测量标准值和MANNER传感器上传的扭矩测量原始值;分析区域用于记录校准数据(共10组)、计算校准公式、绘制校准曲线。校准曲线以扭矩测量原始值为X轴,以扭矩测量标准值为Y轴,采用分段曲线的形式进行绘制,相应的校准公式格式如下:

式中:y为扭矩标准值;x为扭矩原始值;kn为第n段曲线的斜率;bn为第n段曲线的截距;x1~x10为校准表格中扭矩原始值一行的数据,作为校准公式分段区间的边界值。

在后期的数据处理过程中,软件会把校准公式和校准数据以xml配置文件的形式写入PC硬盘中做为备份。之后软件每次运行时,会自动读取xml文件中的参数,调用校准公式对MANNER传感器的测量值进行修正,实现了数据的记忆化存储,避免了重复操作带来的麻烦。

2.2C#与TwinCAT的通信

C#与TwinCAT软PLC的通讯主要是TwinCAT.Ads动态链接库的调用和数据流(datastream)技术的应用。

ADS是Automation Device Specification的缩写,即自动化设备规范,是TwinCAT系统内部实现数据传输的协议,主要用于管理数据交换。该协议建立在TCP/IP协议之上,可以实现TwinCAT内部与接入系统的设备实现通讯,在TwinCAT外部与其他应用程序进行数据交换[3]。

TwinCAT为.NET平台提供的信息路由是以动态链接库的形式给出的,即“TwinCAT.Ads.dll”。C#与TwinCAT通信的具体步骤为:

(1)在C#工程中引用“TwinCAT.Ads.dll”:工程->引用->添加引用->浏览->路径为“安装盘:TwinCATADS Api.NETv2.0.50727”;

(2)在C#程序命名空间处,引用“TwinCAT.Ads”和“System.IO”:

using TwinCAT.Ads;//用于ADS通信

using System.IO;//用于数据流读写操作

(3)定义使用的句柄及通讯端口号:

int hvar_O = new int();//定义“写”句柄变量

TcAdsClient tcclient = new TcAdsClient();//定义通信协议

tcclient.Connect(801);//定义通讯端口号

(4)C#读写TwinCAT变量分为两种形式:按变量地址或按变量名称,这里采用后者。在C#和TwinCAT中分别定义结构相同的Struct结构体,用于通讯:

假设有多个扭矩传感器需要校准。其中,变量ID用来指定当前正在进行校准操作的传感器;变量Cmd用来传递扭矩加载的设定值;变量Trigger用来做为触发变量,TwinCAT通过循环扫描Trigger来判断是否有C#指令下发。

(5)C#向TwinCAT进行写操作是在“加载”按钮的点击事件中完成:

TwinCATC#TYPEOutput:STRUCT  ID:BYTE;  Cmd:INT;  Trigger:BOOL;END_STRUCTEND_TYPEstructoutput{  byteID;  shortCmd;  boolTrigger;} 

{

//获取TwinCAT中Output结构体变量的句柄

hvar_O = tcclient.CreateVariableHandle(“.Output”);

//定义指定大小数据流,4byte = 1byte(ID)+2byte(Cmd) + 1byte(Trigger)

AdsStream datastream_out = new AdsStream(4);

//以二进制形式将C#output中的值写入数据流

BinaryWriter bw = new BinaryWriter(datastream);

//设置数据流的当前位置

datastream.Position = 0;

//赋值

bw.Write( output.ID );

bw.Write( output.Cmd );

bw.Write( output.Trigger );

//通过句柄将数据流写入TwinCAT的Output中

tcclient.Write( hvar_O,datastream );

//释放句柄

tcclient.DeleteVariableHandle( hvar_O );

}

(6)C#对TwinCAT进行读操作是在定时器响应事件中执行,用于不断刷新显示采集回的传感器测量值。读操作原理与写操作相同,只要将上述的bw.Write()函数改为bw.Read()函数即可,这里不再赘述。

2.3TwinCAT与S120的通信

SINAMICS S120典型结构如图4所示。

图4S120典型配置图

主控模块CU320是整个驱动系统的大脑,负责控制和协调整个驱动系统中的所有模块,完成电机的控制[4];电源模块即整流单元,它是将三相交流电整流成直流电;电机模块即逆变单元,它是将电源模块整流的直流电逆变为三相交流电,用于驱动电机。

CU320带有PROFIBUS-DP接口,可通过PROFIBUS总线和CIF50-PB DP总线卡与TwinCAT进行通讯,具体配置过程如下:

2.3.1S120的配置

(1)操作CU320前面板,设定PROFIBUS-DP地址。

(2)打开Starter软件对S120进行自动组态。由于要对加载电机进行扭矩控制,因此配置过程中,需要将电机类型设置为“Vector”(矢量),将控制类型设置为扭矩控制“Torque Control(with encoder)”,如图5所示。

图5 Starter组态S120界面

(3)对S120报文进行设置。打开Communication->Change->设置Vector为标准报文1->设置其他模块为自由报文[999],且长度为0,如图6所示。

图6 Starter配置S120报文类型界面

标准报文1(PZD2/2)原为简单的转速控制报文,接收方向的2个字分别为控制字STW和转速给定字,发送方向的2个字分别为状态字ZSW和转速反馈字。经过上述配置后,转矩控制方式被激活,且接收方向第二个字由P1070-转速给定变为P1053-转矩给定,如图7所示。

图7 Starter扭矩设定功能图

2.3.2TwinCAT的配置

要成功与S120通讯,必须正确配置PROFIBUS-DP地址和报文格式,步骤如下:

(1)将CU320的GSD文件拷贝至“安装盘TwinCATIoProfibus”目录下。

(2)将设备添加至TwinCAT工程:打开TwinCAT System Manager->新建项目->右键单击“I/O Devices”->选择“Scan Devices”。系统会自动扫描到PC机上的DP总线卡和与总线卡连接的设备。如果S120自动扫描失败,可采用手动添加的方式:右键单击“CIF50 PB”->选择“Append Boxes”->在Siemens AG 目录下选择“SINAMICS S120 V4.4”。

(3)添加PROFIBUS通信报文:右键单击“Box(SINAMICS S120 V4.4)”->选择“Append Module”->在报文目录下选择“Standard telegraph 1,PZD2/2”。这里需要注意,所添加报文的格式必须与S120中设置的格式保持一致。

(4)设置PROFIBUS-DP地址:左键单击“Box(SINAMICS S120 V4.4)”->选择“Profibus”标签->修改“Station No.”的值,使之与CU320面板上的DP地址保持一致。

完成设置后的效果如图8所示。

图8 TwinCAT System Manager S120配置效果图

在TwinCAT System Manager中加载一个PLC程序,把程序中的变量链接到标准报文中,这样便建立了TwinCAT中的变量与S120的直接联系。

2.4TwinCAT与传感器的通信

TwinCAT与扭矩传感器通过CAN总线进行通讯。HBM标准传感器符合CANopen高层协议,MANNER被校传感器为厂家自定义CAN协议。由于CANopen总线卡FC51xx的双通道同时支持CANopen协议和普通CAN协议,因此可以实现两种传感器与TwinCAT的通讯。

2.4.1TwinCAT与HBM传感器的通讯

TwinCAT与HBM CANopen设备的通讯设置如下:

(1)MP30的设置:操作HBM MP30工业放大器面板,设置CAN通讯的波特率、站地址。

(2)EDS文件的添加:将HMB MP30的EDS文件拷贝至“安装盘TwinCATIoCANopen”目录下。

(3)设备的扫描:如2.3节(2)部分b所述,通过自动扫描,将CANopen总线卡和MP30自动添加至TwinCAT System Manager中。

(4)CAN通信参数的设置:修改波特率和站地址,使之与MP30中的设置值保持一致。左键单击“FC51xx”->选择右侧“FC51xx”标签->修改“Baudrate”的值;左键单击“Box110(MP30)”->选择右侧“CAN Node”标签->修改“Node Id”的值。

(5)PDO参数的设置:通过CAN总线分析仪可监听TwinCAT与MP30通讯的CAN数据帧。通过查阅CANopen对象字典和MP30用户手册,分析帧数据可知,MP30规定了2个发送TxPDO和2个接收RxPDO。PDO的映射参数表明,TxPDO1帧长度为5个字节,前4个字节代表扭矩的测量值,最后1个字节代表测量状态;PDO的通讯参数指定了TxPDO1的COB-ID、传输类型、禁止时间等参数。根据以上分析,左键单击Box110(MP30)下的“TxPDO1”->选择右侧“PDO”标签->修改“COB”(帧ID)和“Trans.Type”(PDO传输类型)的值,使之上述查看到的参数保持一致。如图9所示。

图9 TwinCAT System Manager MP30配置效果图

同样,将TxPDO1中的VarIn-0变量(扭矩测量值)与TwinCAT中的变量进行链接,便实现了标准传感器测量数据的实时采集。

2.4.2TwinCAT与MANNER传感器的通讯

TwinCAT与MANNER自定义CAN设备的通讯设置如下:

(1)AW-P接收单元的设置:通过MANNER传感器配套软件对CAN通讯的波特率、站地址、帧COB-ID进行设置。

(2)设备的添加:右键单击“FC51xx”->选择“Append Boxes”->在Miscellaneous 目录下选择“CANopen Node”。

(3)参数的设置:左键单击“Box4(CANopen Node)”->选择右侧“CAN Node”标签-> 勾选“General CAN-Node”选项,设置为普通CAN节点;根据MANNER公司自定义CAN协议,定义6个字节的CAN帧与传感器进行通讯,并参照(1)部分设置COB-ID。其中,前2个字节代表扭矩值,中间2个字节代表转速值;最后2个字节代表测量状态。

同理,将TxPDO1中的前2个字节(扭矩测量值)与TwinCAT中的变量进行链接,便实现了被校传感器测量数据的实时采集。

3 结束语

该扭矩传感器校准系统已用于某型号直升机主减速器试验台工作现场,采用一个高精度扭矩传感器校准试验台上多个普通扭矩传感器,不但提高了试验数据的采集精度,而且节约了成本。实践证明,该系统界面友好、操作简便,运行稳定,数据处理智能化、记忆化,提高了工作效率。另外,系统中运用了多种现场总线技术和通讯技术,如第三方PLC与西门子S120的通讯、PLC与CANopen设备的通讯、高级语言和软PLC的通讯等,对类似工程项目的校准工作和通讯技术有一定的参考意义。

参考文献:

[1]彭铭,郑士富.基于TWINCAT平台的液位模糊控制系统的设计.仪表技术,2008(1):17-19.

[2]肯斯理-赫金斯.C#2005编程进阶与参考手册.施宏斌,译.北京:清华大学出版社,2007.

[3]郑青春,王文格.超高速卷接机控制系统实验研究平台构建及上位机通讯.仪表技术与传感器,2012(12):51-53.

[4]西门子(中国)有限公司.S120驱动器&伺服电机选型手册.北京:西门子客户服务部,2008.

猜你喜欢
报文通讯总线
《茶叶通讯》简介
《茶叶通讯》简介
基于J1939 协议多包报文的时序研究及应用
通讯报道
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
一种基于CAN总线的误码测试方法
通讯简史
ATS与列车通信报文分析
CAN总线并发通信时下位机应用软件设计