玉林西门子专业授权代理商
CANopen系统应用
CANopen协议应用可以分为下面2个层面:
操作应用层面:现场操作人员、现场设备检查人员等关注,关注可控性、易操作性和操作效率。
目标:监测控制,生产操作。 特点:关注CANopen协议的相关内容。
系统设置层面:系统集成技术人员、设备维护和改造人员等关注,通过**的方案,实现应用系统。
目标:工程实施、系统集成。 特点:关注CANopen协议整体。
从操作应用层面看,技术操作人员主要是通过已经形成的生产线,依靠CANopen系统完成既定的生产工作,也就是通过采集的信号的内容展示和分析结果,关注的是通过设备完成的生产操作。也就是,操作人员关注通过正确的操作方法,顺利完成生产任务。这个层面的用户是人机界面系统的*终使用者。工业人机界面系统的设计必须考虑这个层面应用的需求。
如图2.4所示,现场总线系统中,人机界面部分往往是体现操作应用层面。
从系统设置层面看,技术人员要对现场设备进行装配、设置,甚至编程。技术人员可以根据设备的说明文档,依据现场工程的需求,进行装配和设置。一般来说,每种设备都有测试或者配置软件,尤其逻辑控制设备,都配置编程软件,比如PLC,CANopen设备也是如此!这些软件都已经非常成熟,编程通讯往往有很多不开放的技术,我们必须借助于设备厂商提供的软件。这个层面的技术人员工作,往往是针对确定的I/O部分,依照明确的工艺需求,进行设备组态、系统集成等工作,关注系统集成部分,也就是根据操作应用层面的具体需求进行系统集成。
如图2.4所示,现场总线系统中,编码调试设备和软件往往体现系统设置层面。
对于人机界面的组态,我们主要是考虑操作应用层面的需求,也就是关注I/O状态、控制有关的参数设置、运行结果的记录等。这些为基于HMI的现场总线控制平台的协议通讯模式的实现提供了依据。
HMI组态关注的数据对象主要是过程数据对象(PDO)用于在CANopen节点间传送过程数据,如I/O模块的I/O状态的读取和设定、模拟量采集和模拟量输出等等。
Node节点-->HMI平台(TxPDO:发送过程数据对象)
Node节点<--HMI平台(RxPDO:接收过程数据对象)
系统配置关注的数据对象主要是服务数据对象(SDO:Server Data bbbbbb)服务用于读写节点的对象字典(bbbbbbDictionary)用来在设备之间传输大的低优先级数据,实现信息的下载/上传、请求/应答、分段/加速传送等操作,用来配置CANopen网络上的设备。
其他的数据对象,比如管理报文、预定义报文、特殊报文,系统配置时,一般会使用。而根据控制工艺,在操作应用层面,较少使用这些数据对象。
2.4.CANopen标识符和数据对象
为了减少简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。CANopen设备必须向它所支持的通讯对象的提供相应的标识符。
缺省ID分配表是基于11位CAN-ID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。如图4所示。
图2.5 [1] PDO数据对象11位ID的预定义格式
Node-ID:对应CANopen设备,由系统集成商定义,例如通过设备上的拨码开关设置。Node-ID范围是1~127(0不允许被使用)。
Function Code:确定CAN帧的类型,比如:PDO和SDO:对应CANopen设备的寄存器。在CANopen设备中,常用的PDO为0x180+Node-ID。其中0x180就是指FunctonCode。SDO 是用来在设备之间传输大的低优先级数据的服务数据对象,典型的功能是配置CANopen网络上的设备。
比如,PDO 用来传输8字节或更少数据,没有其它协议预设定(意味着数据内容已预先定义)。比如:某倾角传感器上传的为7个字符,它有8个PDO数据需要传到现场总线上。标识符的格式为TPDO=0X180+NODE_ID,发送的PDO可以表示为表3.1的描述。
表3.1 CANopen设备的PDO
3. 组态软件通讯
3.1.PC-based的CAN总线接入
组态软件与硬件设备组成的CAN总线系统,详细组成请见图3.1。
图3.1 CAN总线系统
3.2.基于HMI的CANopen系统描述
1)、简单系统:HMI + CANopen模块。
人机界面产品可以直接连接CAN从站模块,如图3.2所示。CAN从站模块主要是I/O模块,可以采集模拟量I/O数据或者控制数字量I/O,并通过总线方式扩展。比如,带CAN接口的HMI设备HMITECHTPC-CAN,直接连接芬兰Axiomatic单轴和双轴倾角传感器。
人机界面产品也可以直接连接CAN主站模块,如图3.3所示。CAN主站模块可以是现场总线通讯的可编程控制器,可以扩展直接I/O模块,也可以连接控制总线扩展模块。比如,HMITECHTPC-CAN连接EPEC 2020控制模块。
2)、复杂系统:HMI系统+CANopen站模块+诊断和配置节点。
HMI主要完成CANopen系统监视和存储、分析功能。人机界面的优势是友好的人机交互。同人机交互相关的CAN系统信息界面显示、总线数据存储、数据的初步分析等是CAN系统中人机界面所关注的重点。
CAN主站控制器注重实时性,HMI系统注重友好显示和数据存储。CAN主站控制器的逻辑也可以部分转移到HMI系统,我们还是建议客户根据控制工艺的要求,慎重考虑,合理的配置系统。
4.组态软件CAN驱动对于象龙门铣床这样的大型机械,需要用两个电机推动横梁或工作台,要求这两个电机完全同步的工作,在数控系统中,这一功能称为"伺服同期".三菱数控系统具有此功能,笔者*近采用三菱m64s系统+mds-r-v型驱动器配备在某客户的中型龙门铣上,采用了"伺服同期"功能,构成了半闭环系统,取得加工良好效果。
1.伺服同期功能的实现
图1. 编制伺服同期运行的程序
要实现伺服同期功能,必须在plc梯形图上编制相关程序:
在三菱m64cnc的接口中,r435是一确定伺服同期功能的数据寄存器.对r435设定不同的数值,可以指定任意两轴进入"伺服同期"模式.本文中指定第1轴和第4轴同期.第1轴为基准轴(x),第4轴为从动轴(a).
修正模式在调试初期经常用到.对于半闭环系统,当机械精度影响到两轴不平衡时,会引起"同期误差过大"报警,这时必须进入"修正模式",对其中某一轴进行调整.在"修正模式"下,只能用"手轮模式"进行操作.修正模式的接口是――y22a.
图2
2.相关的参数
参数#1068————————-该参数指定"从动轴的轴号".(必须在基准轴名下设置)
参数#2024——————————设定同期误差值(只在基准轴名下设置)
图3
3.原点的设置
对伺服同期的两伺服轴,其原点设置究竟该两轴分别设置原点还是只设置一个原点?从理论上来说当然应该每一轴各自设置原点.但从实际来看,两装在龙门铣床的横梁两端,在运行过程中,由于机械精度误差的影响,当某1轴的实际运行距离超前或落后另1轴2mm时,就会引起其中1轴的报警(电流过大)。
而如果每一轴分别设置原点,将給两个原点开关的安装,调整带来极大的困难.对于龙门铣,两伺服轴进退运动,其中1轴到达机床原点位置,另1轴到达的位置也可视为其原点位置.两轴的行程误差只要超过某一值就会产生"(电流过大)"报警.不会产生某1轴"虚假回原点"的问题。
在实际调试过程中,对两伺服同期轴只设置了一个原点信号,将该原点信号设置在基准轴一边。
4. 回原点过程中遇到的问题
只设置了一个原点,在执行回原点操作时仍然出现下列情况:当基准轴回到原点后,从动轴屡屡出现"(电流过大)"报警.无法完成两个轴回原点的操作.当然也就无法进入自动状态。
启动伺服同期功能后,在点动操作和手轮操作时,由于机械安装和丝杆精度的影响,每每只运行30――50mm,就会出现"(电流过大)"报警.现场调试时解决的办法是将参数#2213(电流限制值)调大(*大值是静态额定电流的500%).但如果该参数过大.有可能损害机械系统,特别是对新装配的机床而言,应该谨慎的调整#2213参数.根本的解决之道是在回原点操作完成后,马上执行机械精度误差补偿.使精度和实际精度相一致。
现在连回原点都遇到了问题……….
在显示屏上仔细观察,回原点的过程的报警现象是这样发生的:当基准轴(x)回到原点后,从动轴(a)继续运行1.6――1.8mm后发生报警.这说明两轴的电气原点之差至少达到2-3mm。
在仔细分析了回原点的各个参数后,可以看到参数#2028(栅罩量),#2027(原点偏移量)*为关键.其中参数#2027(原点偏移量)指"电气原点到实际原点之间的距离".现在两个轴之间的原点存在偏差.通过调整参数#2027,可以使其达到一致.参数#2027的单位是1/1000mm.设置基准轴(x)的#2027=3000, 再进行回原点操作,果然两轴回原点完成.证明以上的分析是对的。
图4
为了使两轴的原点达到相对的一致.利用显示器上的"伺服监视"画面,监视基准轴(x)的电流值,反复调节参数#2027,当基准轴(x)的电流值<20%时,可以认为达到基本要求了。
5. 机械精度误差的补偿
对于伺服同期的双驱动系统,在完成回原点操作后必须立即进行"机械精度误差的补偿",很明显,如果不做"机械精度误差的补偿",由于机械误差的原因,会经常引起"电流过大"报警.这可以认为是一次初期补偿,待磨合后,应该再进行一次补偿。
6. 软极限引起的问题
伺服同期的双驱动系统在运行中遇到的另一问题是当其中一轴运行到软限位时,一轴停止,另一轴继续运行,又产生"电流过大"报警.(两轴设定的软限位数值相同.).这种情况显然是机械精度累积误差引起.一旦产生报警,必须用手轮模式对报警轴进行调节.这对于操作工来说很麻烦.如何避免这种情况呢?
一个办法是加装一硬开关,用该信号切断自动和手动运行.但这会增加故障点。
另一办法是用ddb功能在软极限前取一点,用该信号切断自动和手动运行.这个办法不增加成本和故障点.方法如下:
图5. ddb功能的实现
将读出的第1轴和第4轴当前位置数据(d200/d204)与软极限前的一固定点做比较.当第1轴和第4轴当前位置超过该固定点位置时,即切断自动和手动运行.避免了机械碰上软极限.相当于又加上一道保护。
经过以上处理,两同期轴能够正常停止.没有报警出现。
这也是解决机械累积误差的一个有效办法。