基于CAN总线的伺服电机通讯控制
时间:12-14
来源:互联网
点击:
1 引言
CAN(Controller Area Network)总线是一种有效支持分布式控制或实时控制的串行通讯局域网络,由于其高性能、高可靠性、实时性好及其独特的设计,已广泛应用于控制系统中的各检测和执行机构之间的数据通讯,在工控领域兴起应用高潮。
而伺服电机具有结构紧凑、控制轻易、运行稳定、响应快等优异特性,已越来越成为现代产业自动化系统中的一个重要执行元件。在自动化程度高、需精确控制速度、位置、力矩等的场合,如印刷机械、造纸机械、纺织机械、产业机器人、高速电梯、数控机床等重要行业中,得到了普遍的应用。
德国伦茨公司生产的伺服电机由于提供了CAN总线接口,使其很轻易挂接到CAN总线上,通过CAN总线进行数据传输与控制,拓展了伺服电机的功能与应用范围,使伺服电性能更好更灵活地应用于现代产业控制系统中。
2 CAN总线的特性
作为专门应用于产业自动化领域的网络,CAN总线具有以下优点:
(1)使用简单方便。很多CAN控制器芯片如SJA1000T、Philips 82C250等实现了CAN物理层及数据链路层的大部分,在使用时用户需要做的只是两件事:对CAN控制器进行初始化,对CAN总线上的数据进行收发操纵。
(2)高效可靠。CAN采用短帧结构,数据帧中的数据字段长度最多为8B,所以传输的速度快(最大通讯速率可达1Mbps),受干扰的概率低。同时,CAN总线作为多主节点,各节点通过总线仲裁获得总线控制权,并拥有完善的错误处理机制,保证了各种干扰环境下数据传输的安全可靠。
(3)系统可扩充性好。CAN总线是面向消息的编码,而不是面向设备的编码,故增添或删减CAN上的节点非常方便和灵活,易于系统的扩充。
3 伺服电机接进CAN网
伦茨伺服电机的伺服控制器由于提供了专门的CAN总线接口X4,可以象其他的CAN节点一样,用普通双绞线作为通讯介质,很方便地连接到基于CAN总线的产业控制系统上,如图1所示。伦茨的伺服控制器与伺服电机之间采用旋转变压器或光电编码器建立反馈,形成高精度的伺服控制系统,伺服电机实时地将其运行状态与运行信息上传给伺服控制器。作为CAN总线上的节点,伺服控制器不仅可以与上位主机进行通讯,通过CAN总线接收上位机的各种操纵、控制和参数设定命令;同时伺服控制器之间亦可以进行快速的数据交换,相互间建立一定的协调或控制关系。
上位主机通过接插支持CAN的通讯适配卡获得对CAN总线的支持,负责对整个系统的运行和工作状态进行监视治理。由于CAN总线在产业控制上的应用越来越广泛,很多公司都推出了支持CAN总线的接口适配卡,如研华的PCL-841通讯卡、北京华控的HK-CAN20通讯卡、北京三兴达公司的智能CAN-PC总线适配卡PCCAN等等,用户可以通过这些接口适配卡,来运行复杂的通讯任务,进行各CAN节点与上位主机之间的数字通讯和协调治理。
4伺服控制器的功能模块与基于CAN总线的数据通道
伦茨伺服电机的伺服控制器,具有丰富的内部功能模块库,如常见的逻辑功能模块、算术功能模块、信号类型转换模块、斜坡函数发生模块、相位积分模块以及较特殊的数频输进输出模块、数频处理模块、伺服控制处理模块、速度设定处理模块等等。用户利用这些功能块,可以自由配置控制器的信号流程,使控制器能很轻易地适应不同的实际应用。
为了实现基于CAN总线的应用,伺服控制器提供了专门的CAN总线功能模块组CAN-IN与CAN-OUT,作为过程数据通道,进行过程数据的传输。其中,功能块CAN-IN1与CAN-OUT1只用于伺服控制器与上位主机之间进行通讯与数据传输。输进功能块CAN-IN1用于接收上位主机的数据信息,CAN-IN1有8B的数据空间可供用户使用配置,可以向其他内部功能模块提供二进制信号、16位的模拟信号、16位的速度信号以及32位的相位信号等多种控制信号。上位主机通过向根据实际应用配置的CAN-IN1模块发送命令信息,能实现伺服电机的速度给定、电机快停、电机的正反转切换、电机正常模式转速与恒定低速的切换、电机使能、电机禁止等各种功能。同样,CAN-OUT1功能模块亦有8B的数据空间可供用户使用,可以通过配置向上位主机实时地提供电机的各种状态信息、电机的实际速度、电机的实际相位等信息。
功能块CAN-IN2、CAN-IN3与CAN-OUT2、CAN-OUT3用于伺服控制器之间进行快速数据交换。只要配置了某一伺服控制器的CAN-OUT2或CAN-OUT3与另一伺服控制器的CAN-IN2或CAN-IN3的对应关系,即可建立起伺服控制器间的数据传输通道,在电机运行过程中将1台伺服控制器的各种数据信息传给另1台伺服控制器,常见的如:将1台伺服控制器的速度给定经一定运算处理后作为另1台伺服控制器的速度给定信号,使2台伺服电机速度比例运行。该特性对于多台伺服电机之间的协调控制具有重要意义。上位主机亦可以监测到在CAN总线上传输的该类数据信息。
同时,伺服控制器还提供2路参数输进通道和2路参数输出通道。在CAN总线上,上位主机可通过2路参数输进通道,对伺服控制器内的各种参数进行设置修改,如伺服电机的加减速时间、齿轮箱变速比、级联系数等等;通过2路参数输出通道读取伺服控制器的各种参数,如伺服电机确当前温度、当前配置的加减速时间以及电机的实际电压电流等等,故只要是能在伺服控制器的参数代码表中找得到的参数,基本上都能够读取。
通过CAN总线接口与各个数据通道,伺服电机可将自己的相关数据信息发送到CAN总线上;同时亦可以接收来自总线的伺服电机所需的各种数据信息与控制命令。
5 CAN的通讯协议
作为实时性要求比较高的产业控制底层网络,CAN协议只分为3层:物理层、数据链进层和应用层。CAN通讯协议有4种不同的帧格式:数据帧、远程帧、错误帧和超载帧。
由于CAN通讯协议给出的只是共性要求,在实际应用中需要将协议具体化,建立适用的协议规则。根据伺服电机伺服控制器的特点,并遵循CAN通讯协议标准,制定了伺服控制器的通讯协议规则。伺服控制器的每个信息帧分为2部分:帧头和数据域。帧头占2B,其前11位为标识符,然后是一位RTR位,最后是4位的数据长度位DLC(即所发数据的实际长度,以字节为单位)。数据域占用8B。11位的信息标识符反应了节点的优先级别,总线仲裁就是通过它来实现的,信息帧的标识符越小,信息帧就具有越高的优先权。除总线状态等特殊信息外,伺服控制器对所传输信息的标识符有一定的计算公式:
信息标识符=基准标识符+设定的控制器的节点地址?
伺服控制器的节点地址可以在参数代码表中设定。而对信息的基准标识符,伺服控制器有同一的规定,如:同步触发信号的基准标识符为128,来自控制器CAN-OUT1通道的信息的基准标识符为384,而发送到控制器CAN-IN1通道的信息的基准标识符为512,通过参数通道1发送到控制器的信息基准标识符为1536,通过参数通道1接收的信息基准标识符则为1408。
对于8B的数据域,用户需要按照所要发送的具体信息来确定应遵循的使用原则。比如,要通过参数通道进行参数设定,第1个字节为命令码,第2、3字节为参数对应的索引号,第4个字节为参数对应的次索引,后4个字节是要设定的参数数据大小;而要发送信息到某伺服控制器的过程数据通道CAN-IN1,则直接是数据信息的发送,没有命令码,也没有索引号。
6 上位主机的软件设计
通过CAN总线进行通讯与控制的伺服电机,在针对实际的应用要求配置好伺服控制器的内部控制信号流,以及基于CAN的接口功能模块和数据通道后,剩下需要解决的是上位主机的软件设计题目。
由于上位主机所接插的CAN通讯适配卡一般都提供CAN的驱动函数,所以在上位机软件的编制过程中,实现与CAN总线的通讯部分可以直接调用相应的函数,如上位主机与CAN通讯的主要任务:对CAN适配卡的初始化、CAN信息包的发送、CAN信息包的接收等,都有现成的函数可以使用,为用户使用CAN进行通讯提供了方便。对CAN通讯适配卡的初始化主要是初始化适配卡的各个寄存器,设置中断向量、通讯卡的波特率以及中断屏蔽字等必要的参数,为正常通讯作预备。实现CAN信息包的发送,首先要确定信息包的11位信息标识符,填进帧头,并在数据域中填进需要发送的数据信息,通过发送函数发送给所有CAN节点或特定的CAN节点上。而对于使用接收函数所接收的CAN信息包,亦通过其11位信息标识符,判定其来源,对数据域的数据进行处理,取得有效的信息,进行显示或存储,并按照控制需要发送控制指令。其软件控制流程图,如图2所示。
CAN(Controller Area Network)总线是一种有效支持分布式控制或实时控制的串行通讯局域网络,由于其高性能、高可靠性、实时性好及其独特的设计,已广泛应用于控制系统中的各检测和执行机构之间的数据通讯,在工控领域兴起应用高潮。
而伺服电机具有结构紧凑、控制轻易、运行稳定、响应快等优异特性,已越来越成为现代产业自动化系统中的一个重要执行元件。在自动化程度高、需精确控制速度、位置、力矩等的场合,如印刷机械、造纸机械、纺织机械、产业机器人、高速电梯、数控机床等重要行业中,得到了普遍的应用。
德国伦茨公司生产的伺服电机由于提供了CAN总线接口,使其很轻易挂接到CAN总线上,通过CAN总线进行数据传输与控制,拓展了伺服电机的功能与应用范围,使伺服电性能更好更灵活地应用于现代产业控制系统中。
2 CAN总线的特性
作为专门应用于产业自动化领域的网络,CAN总线具有以下优点:
(1)使用简单方便。很多CAN控制器芯片如SJA1000T、Philips 82C250等实现了CAN物理层及数据链路层的大部分,在使用时用户需要做的只是两件事:对CAN控制器进行初始化,对CAN总线上的数据进行收发操纵。
(2)高效可靠。CAN采用短帧结构,数据帧中的数据字段长度最多为8B,所以传输的速度快(最大通讯速率可达1Mbps),受干扰的概率低。同时,CAN总线作为多主节点,各节点通过总线仲裁获得总线控制权,并拥有完善的错误处理机制,保证了各种干扰环境下数据传输的安全可靠。
(3)系统可扩充性好。CAN总线是面向消息的编码,而不是面向设备的编码,故增添或删减CAN上的节点非常方便和灵活,易于系统的扩充。
3 伺服电机接进CAN网
伦茨伺服电机的伺服控制器由于提供了专门的CAN总线接口X4,可以象其他的CAN节点一样,用普通双绞线作为通讯介质,很方便地连接到基于CAN总线的产业控制系统上,如图1所示。伦茨的伺服控制器与伺服电机之间采用旋转变压器或光电编码器建立反馈,形成高精度的伺服控制系统,伺服电机实时地将其运行状态与运行信息上传给伺服控制器。作为CAN总线上的节点,伺服控制器不仅可以与上位主机进行通讯,通过CAN总线接收上位机的各种操纵、控制和参数设定命令;同时伺服控制器之间亦可以进行快速的数据交换,相互间建立一定的协调或控制关系。
上位主机通过接插支持CAN的通讯适配卡获得对CAN总线的支持,负责对整个系统的运行和工作状态进行监视治理。由于CAN总线在产业控制上的应用越来越广泛,很多公司都推出了支持CAN总线的接口适配卡,如研华的PCL-841通讯卡、北京华控的HK-CAN20通讯卡、北京三兴达公司的智能CAN-PC总线适配卡PCCAN等等,用户可以通过这些接口适配卡,来运行复杂的通讯任务,进行各CAN节点与上位主机之间的数字通讯和协调治理。
4伺服控制器的功能模块与基于CAN总线的数据通道
伦茨伺服电机的伺服控制器,具有丰富的内部功能模块库,如常见的逻辑功能模块、算术功能模块、信号类型转换模块、斜坡函数发生模块、相位积分模块以及较特殊的数频输进输出模块、数频处理模块、伺服控制处理模块、速度设定处理模块等等。用户利用这些功能块,可以自由配置控制器的信号流程,使控制器能很轻易地适应不同的实际应用。
为了实现基于CAN总线的应用,伺服控制器提供了专门的CAN总线功能模块组CAN-IN与CAN-OUT,作为过程数据通道,进行过程数据的传输。其中,功能块CAN-IN1与CAN-OUT1只用于伺服控制器与上位主机之间进行通讯与数据传输。输进功能块CAN-IN1用于接收上位主机的数据信息,CAN-IN1有8B的数据空间可供用户使用配置,可以向其他内部功能模块提供二进制信号、16位的模拟信号、16位的速度信号以及32位的相位信号等多种控制信号。上位主机通过向根据实际应用配置的CAN-IN1模块发送命令信息,能实现伺服电机的速度给定、电机快停、电机的正反转切换、电机正常模式转速与恒定低速的切换、电机使能、电机禁止等各种功能。同样,CAN-OUT1功能模块亦有8B的数据空间可供用户使用,可以通过配置向上位主机实时地提供电机的各种状态信息、电机的实际速度、电机的实际相位等信息。
功能块CAN-IN2、CAN-IN3与CAN-OUT2、CAN-OUT3用于伺服控制器之间进行快速数据交换。只要配置了某一伺服控制器的CAN-OUT2或CAN-OUT3与另一伺服控制器的CAN-IN2或CAN-IN3的对应关系,即可建立起伺服控制器间的数据传输通道,在电机运行过程中将1台伺服控制器的各种数据信息传给另1台伺服控制器,常见的如:将1台伺服控制器的速度给定经一定运算处理后作为另1台伺服控制器的速度给定信号,使2台伺服电机速度比例运行。该特性对于多台伺服电机之间的协调控制具有重要意义。上位主机亦可以监测到在CAN总线上传输的该类数据信息。
同时,伺服控制器还提供2路参数输进通道和2路参数输出通道。在CAN总线上,上位主机可通过2路参数输进通道,对伺服控制器内的各种参数进行设置修改,如伺服电机的加减速时间、齿轮箱变速比、级联系数等等;通过2路参数输出通道读取伺服控制器的各种参数,如伺服电机确当前温度、当前配置的加减速时间以及电机的实际电压电流等等,故只要是能在伺服控制器的参数代码表中找得到的参数,基本上都能够读取。
通过CAN总线接口与各个数据通道,伺服电机可将自己的相关数据信息发送到CAN总线上;同时亦可以接收来自总线的伺服电机所需的各种数据信息与控制命令。
5 CAN的通讯协议
作为实时性要求比较高的产业控制底层网络,CAN协议只分为3层:物理层、数据链进层和应用层。CAN通讯协议有4种不同的帧格式:数据帧、远程帧、错误帧和超载帧。
由于CAN通讯协议给出的只是共性要求,在实际应用中需要将协议具体化,建立适用的协议规则。根据伺服电机伺服控制器的特点,并遵循CAN通讯协议标准,制定了伺服控制器的通讯协议规则。伺服控制器的每个信息帧分为2部分:帧头和数据域。帧头占2B,其前11位为标识符,然后是一位RTR位,最后是4位的数据长度位DLC(即所发数据的实际长度,以字节为单位)。数据域占用8B。11位的信息标识符反应了节点的优先级别,总线仲裁就是通过它来实现的,信息帧的标识符越小,信息帧就具有越高的优先权。除总线状态等特殊信息外,伺服控制器对所传输信息的标识符有一定的计算公式:
信息标识符=基准标识符+设定的控制器的节点地址?
伺服控制器的节点地址可以在参数代码表中设定。而对信息的基准标识符,伺服控制器有同一的规定,如:同步触发信号的基准标识符为128,来自控制器CAN-OUT1通道的信息的基准标识符为384,而发送到控制器CAN-IN1通道的信息的基准标识符为512,通过参数通道1发送到控制器的信息基准标识符为1536,通过参数通道1接收的信息基准标识符则为1408。
对于8B的数据域,用户需要按照所要发送的具体信息来确定应遵循的使用原则。比如,要通过参数通道进行参数设定,第1个字节为命令码,第2、3字节为参数对应的索引号,第4个字节为参数对应的次索引,后4个字节是要设定的参数数据大小;而要发送信息到某伺服控制器的过程数据通道CAN-IN1,则直接是数据信息的发送,没有命令码,也没有索引号。
6 上位主机的软件设计
通过CAN总线进行通讯与控制的伺服电机,在针对实际的应用要求配置好伺服控制器的内部控制信号流,以及基于CAN的接口功能模块和数据通道后,剩下需要解决的是上位主机的软件设计题目。
由于上位主机所接插的CAN通讯适配卡一般都提供CAN的驱动函数,所以在上位机软件的编制过程中,实现与CAN总线的通讯部分可以直接调用相应的函数,如上位主机与CAN通讯的主要任务:对CAN适配卡的初始化、CAN信息包的发送、CAN信息包的接收等,都有现成的函数可以使用,为用户使用CAN进行通讯提供了方便。对CAN通讯适配卡的初始化主要是初始化适配卡的各个寄存器,设置中断向量、通讯卡的波特率以及中断屏蔽字等必要的参数,为正常通讯作预备。实现CAN信息包的发送,首先要确定信息包的11位信息标识符,填进帧头,并在数据域中填进需要发送的数据信息,通过发送函数发送给所有CAN节点或特定的CAN节点上。而对于使用接收函数所接收的CAN信息包,亦通过其11位信息标识符,判定其来源,对数据域的数据进行处理,取得有效的信息,进行显示或存储,并按照控制需要发送控制指令。其软件控制流程图,如图2所示。
CAN总线伺服电机通讯控 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)