| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 博世力士乐控制器在移动机器人中的应用 -> 正文阅读 |
|
[嵌入式]博世力士乐控制器在移动机器人中的应用 |
1 简介 我们使用的博世力士乐(bosch rexroth)控制器是RC系列,具体型号是RC28-14/30(FLASH版),控制器的外形如下图所示。外壳是铸铝,端口接线通过防水的密封连接器引出。看它长的严严实实的就知道是给经常干脏活的移动机械设计的。 简单介绍一下这款控制器的基本组成,如下图所示。由英飞凌TriCore? TC1797 32位芯片和内存等组成的硬件之上运行着一个微型嵌入式操作系统,操作系统提供一些硬件抽象API给上面的运行时系统(相当于软PLC),编程上位机通过CAN总线以KWP2000协议的格式将用户的程序下载到运行时系统中执行。 TC1797芯片上有三个核,一个MCU控制核、一个DSP数字处理核、一个RISC控制核。所以,这款控制器的浮点数值计算应该还可以,能运行一些简单的算法。在数据存储方面,有4MB的pFlash用来存储程序代码,有64kByte的dFlash用来存储非易失数据,还有32kByte的外部EEPROM。 2 接线控制器供电的电压是DC12或者24V。供电必须接的线是:202、240、245。202接电源负极,240、245接正极。245和258接任何一个都行。接了这三根线,你就能向控制器下载运行程序了。如果你要让控制器带动负载,那还要接201。 这个控制器一共有4个CAN通信口,默认的程序下载口是CAN1,所以我们要接CAN1的两个接口,也就是215和216,如下图。因为控制器只有CAN口没有其它通信口,所以我们下载程序要通过CAN口,而电脑只有USB接口。所以我们需要一个CAN转USB的转换器。但是,不是所有厂家的转换器都可以用,博世力士乐控制器只支持德国的PEAK、Vector、Sontheim等厂家的,所以国产的肯定用不了了。 笔者使用的是PEAK的PCAN-USB,如下图。这么个小东西要3000多块,好贵啊。215口是高电平因此接PCAN-USB的7口。上图中间并联的120欧姆电阻是防干扰的,如果不用也可以。 PCAN-USB插入电脑是自动识别的,如果没有识别可以安装驱动程序,在这里下载。如果PCAN-USB的驱动安装正常,控制器接线也正常的话,打开PCAN-USB的上位机PcanView后可以看到控制器,如下图。PcanView也是在这里下载。控制器的CAN1波特率总是250kb/s,因此注意PcanView中的波特率设置要一样。 3 程序下载3.1 编程工具BODAS-design 接好线后我们就可以开始写程序了。博世力士乐控制器支持两种编程语言,一种是PLC领域用的IEC 61131-3语言(例如梯形图、ST),一种是计算机领域用的C语言。如果选择PLC编程语言,可以使用博世力士乐免费提供的BODAS-design 3.0软件进行程序开发。如果选择C语言,那要使用TriCore development suite编译器,编辑器推荐使用Eclipse,程序下载软件使用BODAS-service。 3.2 电脑连接控制器在BODAS-design 3.0软件中,点击Online—Communication Parameters,出现以下面板。Interface选择你使用的CAN工具,以PEAK厂家的CAN-USB工具为例。CAN Timeout可以设置小一点,让扫描速度更快,这里设为100毫秒。控制器默认的波特率是250K。 配置好后,点Scan就会开始扫描控制器,如下图。过一会就会扫到控制器,扫到后会在弹出的窗口中显示控制器的信息,如下图(如果看不到用鼠标点一下图中的红色箭头所指的地方)。与控制器标签上的序列号对比就知道是不是对应的。 3.4 程序下载写好程序后按快捷键F11开始编译程序,程序编译无误后,按快捷键Alt+F8或者点击Login下载程序,此时会弹出一个确认下载的窗口,过一会就会下载完毕。然后再按F5或者点击Run,程序就开始运行了,此时我们可以在BODAS-design中监视程序运行过程中变量的实时值。 3.5 帮助文档 想要了解控制器的编程方式,官方提供了一个比较基本的例子模板,在这里: 4 程序开发4.1 特点虽然博世力士乐控制器的编程语言和操作方式继承了Codesys,但是还是有些地方不一样。首先,在帮助文档中提到,PLC_PRG程序块只应该被用来初始化。但是在Codesys中,PLC_PRG可以执行任何循环任务。 4.2 任务 “任务”(Task)是完成一些具体功能的PRG程序,例如处理数据的计算任务、发送数据的通信任务等等。用户想实现的功能都体现为一个个的任务,围绕这些任务可以再拆分为一些更基础的函数(FB或者FC)。与函数(例如FB或者FC)相比,任务是可以相互之间并行执行或者调用的。熟悉计算机的同学应该知道,任务就相当于进程。 4.3 标准程序组成 一个标准的程序组成是这样的:
② 然后用户实现自己的任务程序(PRG类型),假设它叫MAIN_Task吧。
④ 然后在PLC_PRG中调用 4.4 输入输出 该控制器支持的输入输出类型非常丰富。在帮助文档 输入分为以下几种,其中, 输出分为以下几种,其中, 4.5 CAN通信设置 CAN通信的使用包括以下几个步骤:
② 然后配置帧头和邮箱数量,如下。
③ 到此为止就完成初始化了,然后我们就能接收和发送CAN消息了。接收消息的例子如下。第二个参数
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:30:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |