1、引言

CAN(ControllerArea 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驱动函数的不断调用,发送控制命令或参数设定命令给各伺服电机的伺服控制器,驱动伺服电机的启停运转;同时接收来自伺服控制器的伺服电机的速度、相位、转动方向、转矩等各种数据信息及状态信息,并进行分析处理,然后按照系统的实际控制需要再给伺服控制器发送相应的命令,去驱动电机,使伺服电机的运行始终按用户的要求进行变化,从而实现对伺服电机的管理与控制。

7、结束语

伦茨伺服电机CAN接口的引入,提高了伺服电机的自动化水平,使伺服电机在工业控制网络中的通信与控制更为方便、灵活和可靠。

CAN总线在现代工业控制系统中越来越广泛的应用,为带CAN接口的伺服电机提供了广阔的应用前景。

参考文献

[1]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.

[2]Lenze.Operating Instruction(Global Drive Mannuls 9300).(end)

sm总线控制器找不到驱动程序_技术 | 基于CAN总线的伺服电机通信控制相关推荐

  1. sm总线控制器找不到驱动程序_细说嵌入式系统下的驱动程序设计

    嵌入式系统驱动程序的开发有别于WIndows或Linux.后者除了必须了解新设备的硬件特性,把控制硬件的程序尽快完成之外,还需要设法让驱动程序符合Windows或Linux的规定(大且复杂的架构).但 ...

  2. sm总线控制器找不到驱动程序_【KHGEARS钧兴谐波 | 新品】埃斯顿发布总线伺服驱动系统 ProNet Summa...

    高工机器人CEO圈群招募中,欢迎感兴趣的朋友们加微信号:13632944360入群:添加微信时请备注单位-姓名-职务,通过审核后我们将邀请进群. 2019 年 3 月 6 日,以"创新设计 ...

  3. can总线报文是固定的吗_新能源汽车CAN总线Bus Off处理流程

    CAN总线由其高可靠和实时性被广泛应用于新能源汽车.轨道交通.医疗.工程机械等行业,本文介绍CAN总线关闭对新能源汽车的功能和安全性能产生的影响,并针对工程师关注的问题,提供有效的解决方案. 2020 ...

  4. 应用rs-485总线智能仪表实现计算机远程数据采集与监控,基于RS-485总线选矿厂电气控制系统的设计与实现本科毕业论文.doc...

    本科生毕业论文(设计) 基于RS-485总线选矿厂电气控制系统的设计与实现 2009 Annual Graduation Thesis (Project) of the College Undergr ...

  5. 应用rs-485总线智能仪表实现计算机远程数据采集与监控,基于RS-485总线选矿厂电气控制系统的设计与实现-电气工程及其自动化.doc...

    年度本科生毕业论文(设计) 基于RS-485总线选矿厂电气控制系统的设计与实现 院 - 系: 工学院 自动化系 专 业: 电气工程及其自动化 年 级: 学生姓名: 学生姓名: 导师及职称: 年6月 x ...

  6. pci串行端口找不到驱动程序_科普:PCI-E插槽都有哪些样子?

    主板上的扩展插槽曾经是多种多样的,例如曾经非常流行的组合就是PCI插槽搭配AGP插槽,其中AGP插槽主要用在显卡上,而PCI插槽的用途则更广一些,不仅有用在显卡上,还能用于扩展其它设备,如网卡.声卡. ...

  7. multiusb key找不到驱动程序_尤大-Vue中为什么不建议用index作为key?

    前言 Vue 中的 key 是用来做什么的?为什么不推荐使用 index 作为 key?常常听说这样的问题,本篇文章带你从原理来一探究竟. 阿里巴巴腾讯前端面试经验,最完整面试真题分享!​www.ji ...

  8. adb interface找不到驱动程序_打印机驱动程序无法使用怎么办 打印机驱动安装方法【介绍】...

    打印机 在我们的办公区域实用性是非常强的,不仅可以提高办公的效率,而且还能节省用户时间,是一款非常不错的办公小助手.长时间使用, 打印机驱动程序无法使用 ,怎么回事呢?用户一定要做出详细了解,是否需要 ...

  9. python开源ip代理池_[技术]基于python实现的短效代理ip池程序

    我们在写爬虫程序的时候,或者是抓取数据的时候,遇到一些发爬不是很厉害的网站,一般都是通过代理ip来实现绕过对方的反爬措施. 一般好的代理都是需要付费的,免费的代理速度慢,而且难找.市面上也有很多对应的 ...

最新文章

  1. ESI计算机排名2021年01月,喜忧参半!2021年5月ESI世界大学排行榜,21个学科排名数据分析!...
  2. 【bat脚本】使用ffmpeg工具剥离某一个声道
  3. java字节码指令简介(仅了解)
  4. 136. Single Number
  5. Python实现桶排序
  6. java update 8_版本任你发,我用Java 8!JDK的更新,改变了哪些你写代码的方式?...
  7. 【Linux】Linux的关机和虚拟机克隆、快照
  8. 测试基础-01-软件测试的定义与分类
  9. 什么决定了计算机的寻址能力_有问有答:寻址能力与CPU的位宽有关系吗?
  10. work summery(5)
  11. JSK-A1144 代码填空:阶梯三角形【水题】
  12. 使用Lua 局部变量来优化性能,同一时候比較局部变量和全局变量
  13. URLClassLoader使用方法及事例程序
  14. android投影到创维电视,创维Miracast,手机怎么投屏到创维电视,
  15. Fiddler抓包配置
  16. 独立访客数UV、访问量PV和IP数的区别
  17. 程序员必学电脑计算机专业英语词汇 04 (200 单词)
  18. python 渐变色_python – 用渐变颜色的散景散点图
  19. 【ISAR成像定标方法(3)—基于SGP4模型的空间目标定标方法MATLAB仿真】
  20. Xmanage远程连接Linux常用命令与常见问题(整理)

热门文章

  1. linux网卡热,linux网卡
  2. [BJDCTF 2nd]8086(异或脚本解题)
  3. Python基础入门:使用openpyxl读写Excel文件
  4. 学习Python一定要会的4个高阶函数
  5. python赋值、深浅拷贝
  6. 19道Python练习题
  7. Python制作植物大战僵尸小游戏
  8. Python爬虫不会?戳一下,小编一步步教你写一个简单的爬虫
  9. 电子计算机之父冯.诺依曼的主要贡献,约翰·冯·诺依曼,约翰·冯·诺依曼的生平,贡献等...
  10. 计算机无法加电,计算机无法加电是何故?