Hero Circle Shape
Hero Moon Shape
Hero Right Shape
比特派app官网版下载安装|ethercat master softmotion

比特派app官网版下载安装|ethercat master softmotion

  • 作者: 比特派app官网版下载安装
  • 2024-03-14 17:13:47

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)_codesys网关没有正确配置-CSDN博客

>

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)_codesys网关没有正确配置-CSDN博客

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

最新推荐文章于 2023-12-17 19:36:26 发布

孙姬被刘备家暴

最新推荐文章于 2023-12-17 19:36:26 发布

阅读量9.6k

收藏

49

点赞数

13

分类专栏:

总线控制器

总线驱动器

文章标签:

总线控制器

总线驱动器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/opencv_learner/article/details/97886185

版权

总线控制器

同时被 2 个专栏收录

2 篇文章

1 订阅

订阅专栏

总线驱动器

2 篇文章

0 订阅

订阅专栏

       在这个实例中,我会用CODESYS这个开发环境写一个简单的实例,我有一个总线控制器,用于控制两个松下总线伺服驱动器进而控制电机的运动,并写一个简单的控制界面。此外,这里还涉及到了驱动器相应的参数配置,这个不是今天的重点,下次有机会再说。

以下是主要的操作步骤及注意事项。

1、首先是CODESYS软件的安装,软件来源某度就有,按照提示直接安装就行,一般都没有问题的,安装完桌面便会有如下图所示的快捷方式。

2、安装控制器的设备描述文件。

双击打开安装好的codesys开发环境,进入“工具”菜单栏,选择“设备库”

单击右侧的“安装”按钮,选择这个控制器的描述文件,注意有两个,全部安装。

3、安装总线驱动器的设备描述文件。跟常见的脉冲型驱动器不同的是,总线型的驱动器要能被控制器识别,必须安装相应的驱动器设备描述文件,这个文件在购买驱动器的时候要供应商提供,尽量要最新的,和第二部的操作相同,找到驱动器对应的描述文件进行安装,如下图所示。

可以看到该文件夹里还有许多其他总线驱动器的描述文件,选择与自己驱动器型号对应的就好。

这个时候我们就可以在设备库里看到相应的设备了,可以看到专用设备里面多了一款控制器

再接着往下看,找到“现场总线”--“Ethercat”--“从站”,点开“从站”前面的“+”,可以发现里面多出了许多型号的松下驱动器

至此,设备的描述文件就安装完成了。接下来开始在这个开发环境中进行配置和编写控制程序。

4、新建工程,选择"Standard project"

单击确定,进入下一个选择界面,如下图所示

这里的设备选择我们之前安装的那个,这里用红色箭头标记了。

编程语言我这里选的是结构化文本,这个语言和C语言有些类似,工控领域相比梯形图那些,真是好太多了,不是吐槽梯形图,梯形图对于简单的控制,步数不太多的情况下用用还可以,复杂情况就用高级语言吧!如下图所示。

5、添加设备:总线控制器(主站)和总线驱动器(从站)

进入工程后,在左侧找到导航栏,右击“device”,选择“添加设备”

弹出如下的界面

选择专用设备下的IODrvMIC7001,单击“添加设备”进行添加

选择“现场总线”--“Ethercat”--“主站”--“Ethercat Master Softmotion”,单击“添加设备”进行添加

在左侧导航栏里可以看到多出了两个刚刚添加的设备

双击左侧导航栏中的“EtherCAT_Master_SoftMotion(EtherCAT_Master_SoftMotion)”,可以对主站进行相应的参数设置。

这里我修改了“网络名称”,单击“按名称选择网络”,并输入网络名称“eth0”,如下图所示

主站添加 完毕,接下来添加从站。当然,这个前提是已经有伺服驱动器通过超五类网线和控制器正常连接了,不然是没法通过扫描的方式添加从站驱动器的。

右击左侧导航栏的“EtherCAT_Master_SoftMotion(EtherCAT_Master_SoftMotion)”,选择“扫描设备”

可能会弹出如下界面

这说明没有选择网关,简要说说操作步骤:

首先电脑需要连接控制器,MIC7001控制器自身可以发出WiFi信号,电脑需要首先连接该WiFi

然后,双击左侧导航栏的“device”,出现如下界面,单击红色箭头标记的“scan network”,选择相应的控制型号即可

OK,连接到了网关了,再次进行从站的扫描,这次扫描到了两个从站,添加两个从站到网络中,右侧导航栏如下图所示,可以看到主站下面多出了两个我们刚刚添加的从站

分别给两个从站驱动器添加softmotion CiA402 Axis,如下图所示

给刚刚添加的轴进行重命名,对于弹出的窗口,直接按回车键确定就行:

SM_Drive_GenericDSP402(SM_Drive_GenericDSP402)修改为axis_0

SM_Drive_GenericDSP402_1(SM_Drive_GenericDSP402)修改为axis_1

如下图所示:

接下来还需要对电机的参数进行设置,双击导航栏中的“axis_0”,导航栏右侧弹出参数设置界面

“softmotion驱动:基本的”相关参数参考如下界面:

softmotion驱动:缩放/映射”相关参数参考如下界面:

“增量<=>电机转”左侧输入的是编码器的参数,编码器每转过一圈发出的脉冲数

“电机转动<=>齿轮输出转”左侧输入的是减速机的减速比

“减速机输出转<=>应用的单元”右侧输入360,这个参数跟电机转速有关系,具体含义待确定。

其他页面的参数默认即可。

至此,主站和从站的添加及参数的设置已经完成。

图有点多,显得比较长,第一部分就写到这里吧,第二部分将会写程序的开发部分。

优惠劵

孙姬被刘备家暴

关注

关注

13

点赞

49

收藏

觉得还不错?

一键收藏

知道了

3

评论

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

在这个实例中,我会用CODESYS这个开发环境写一个简单的实例,我有一个总线控制器,用于控制两个松下总线伺服驱动器进而控制电机的运动,并写一个简单的控制界面。此外,这里还涉及到了驱动器相应的参数配置,这个不是今天的重点,下次有机会再说。以下是主要的操作步骤及注意事项。1、首先是CODESYS软件的安装,软件来源某度就有,按照提示直接安装就行,一般都没有问题的,安装完桌面便会有...

复制链接

扫一扫

专栏目录

codesys 程序案例

08-25

以上是codesys V3编写的程序源代码,分享给有需要的人。

如何使用CODESYS V3.5 进行CFC编程.docx

05-21

如何使用CODESYS V3.5 进行CFC编程; 编程简介CODESYS入门,CODESYS编程简介;

3 条评论

您还未登录,请先

登录

后发表或查看评论

在Codesys用ST语言基于数组实现栈LIFO数据结构详细说明+代码实例

codesys01的博客

12-17

202

栈是一种后进先出(LIFO——last in first out)线性表,它只允许在表的后端(tail)进行插入(push)和删除(pop)操作。

codesys UDP Demo

03-08

codesys中UDP使用

Codesys case实例源码,带可视化视图

09-16

Codesys case实例源码,带可视化视图,供大家下载学习!

积分已修改适合新人使用

codesys用户编程收藏的

11-20

codesys V2.3工具PLC语言用户编程手册,有需要的人可以下载看看。

codesys教程

12-28

了解Codesys的编程方法,CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础上(如Visual C++)。

CODESYS Automation Server Connector

m0_69433009的博客

05-09

1232

简介

CODESYS 自动化服务器连接器是 CODESYS 开发系统的插件,用于同步 CODESYS 自动化服务器上的项目并配置 CODESYS 边缘网关。

产品描述

CODESYS 自动化服务器连接器适用于两种使用场景:

项目和应用程序的同步

借助“应用程序存储库”功能,可以在 CODESYS 自动化服务器上管理项目源代码和相关的应用程序。CODESYS 自动化服务器和 CODESYS 开发系统之间的连接由 CODESYS 自动化服务器连接器完成。它使项目可以作为本地工作副本检出,项目更改可以在

CODESYS开发教程4-总线伺服控制

halps的专栏

12-17

8562

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

Codesys冗余配置(基础)

guhvff的博客

10-19

2241

Codesys冗余配置的基础操作步骤

CODESYS开发教程2-设备添加

halps的专栏

12-04

8177

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

实例介绍COdesys程序结构

06-01

包含对CODESYS程序结构的讲解,和工程实例以及PPT,Ether_cat的简单配置实例。后期还会继续更新,希望大家关注我的博客,并提出录制意见。

codesys V3.5 sp18安装包-链接地址.txt

05-10

codesys V3.5 sp18安装包

CODESYS 3.5SP4Patch4 Release

01-23

CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Development System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的...

CODESYS 3.5 SP4.zip

04-07

CODESYS 3.5 SP4

如何使用CODESYS V3.5 进行ST编程.docx

05-21

如何使用CODESYS V3.5 进行ST编程; 编程简介CODESYS入门,CODESYS编程简介;

【尺寸检测】基于matlab机器视觉图像目标尺寸测量【含Matlab源码 4087期】.mp4

03-12

Matlab研究室上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白;

1、代码压缩包内容

主函数:main.m;

调用函数:其他m文件;无需运行

运行结果效果图;

2、代码运行版本

Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主;

3、运行操作步骤

步骤一:将所有文件放到Matlab的当前文件夹中;

步骤二:双击打开main.m文件;

步骤三:点击运行,等程序运行完得到结果;

4、仿真咨询

如需其他服务,可私信博主或扫描视频QQ名片;

4.1 博客或资源的完整代码提供

4.2 期刊或参考文献复现

4.3 Matlab程序定制

4.4 科研合作

HTML文件,一个网页特效

03-12

如果带到学校,一定会秀翻全学校。别不信,试试[偷笑]

STM32单片机FPGA毕设电路原理论文报告基于AT89C52单片机CAN总线节点的设计

最新发布

03-12

STM32单片机FPGA毕设电路原理论文报告基于AT89C52单片机CAN总线节点的设计本资源系百度网盘分享地址

codesys v3.5下载

11-08

CODESYS V3.5 是一款功能强大的编程软件,用于工业自动化领域的PLC(可编程逻辑控制器)开发。要进行CODESYS V3.5的下载,可按以下步骤操作:

1. 首先,访问位于官方网站(https://www.codesys.com)的CODESYS官方网页。

2. 在CODESYS官方网页上,选择版本和产品。CODESYS V3.5有多个版本可供选择,包括CODESYS Development System和CODESYS Control System等。根据自己的需求,选择适合的版本。

3. 单击所选版本的下载链接。在弹出的窗口中,可能需要填写一些个人信息,例如姓名、邮箱地址等。

4. 完成个人信息填写后,选择适用的操作系统(例如Windows、Linux等)和合适的软件类型(例如完整版、测试版等),然后点击“下载”按钮。

5. 完成下载后,双击下载的安装文件,按照安装向导的指示进行安装。安装过程中可能需要选择安装位置和接受许可协议等。

6. 安装完成后,打开CODESYS V3.5软件。根据需要,可以创建新项目或打开现有项目。

CODESYS V3.5下载完成后,可以使用软件进行PLC编程、调试和测试等工作。CODESYS V3.5具有友好的界面和丰富的功能库,能够帮助工程师高效地开发和管理PLC应用程序。同时,CODESYS官方网站上也提供了一些教程和示例,供初学者学习和参考。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

孙姬被刘备家暴

CSDN认证博客专家

CSDN认证企业博客

码龄8年

暂无认证

28

原创

38万+

周排名

143万+

总排名

20万+

访问

等级

1956

积分

107

粉丝

149

获赞

65

评论

418

收藏

私信

关注

热门文章

win10+ubuntu16.04双系统,开机出现“Minimal BASH-like line editing is supported”

44886

有关AutoCAD electrical2017启动时报错:缺少驱动程序AceRedist的解决办法

22435

C# 鼠标悬浮mouseHover事件的添加 实现鼠标悬浮在按钮或者控件 显示相关的帮助信息

20155

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

9665

halcon 外部函数如:disp_message()等外部函数在遇到多个hv_ExpDefaultWinHandle情况下出现调用不正常/错误的情况

9557

分类专栏

ros安装

1篇

树莓派

1篇

树莓派4b

HALCON

7篇

C#

18篇

Windowsform

4篇

ppicturebox控件

autocad electrical

1篇

工业机器人

1篇

cognex

2篇

操作系统安装

1篇

总线控制器

2篇

总线驱动器

2篇

最新评论

有关C#中重写按钮的onpaint函数,实现按钮形状的用户自定义

surperdao:

类库没有system.windows.Form

C# 多线程与委托的疑惑 InvokeRequired==true or false

m0_37677617:

第一次是在线程,不在主界面线程,执行一次 invoke,回到主线程执行 doAdd, 所以第二次是在主线程执行的

康耐视视觉库编程参考(1)Cognex.VisionPro.ToolGroup Namespace

南南11:

你好,想问一下,这个 相机可以哦那个python调用吗

一文读懂halcon 手眼标定的坐标转换

酱香拿钢:

Mx=M1*M2*M3^(-1) 眼在手外是推错了吧

康耐视visionPro 加密狗不在 视觉库就没法用了

orgone:

我也想用

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

CODESYS (V3.5 SP12 Patch)简单应用 第 2篇之单轴简单使用CFC+ST代码(硬件:长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

树莓派4b 4G内存版安装Ubuntu18.04.4+ros_melodic+kubuntu-desktop

康耐视visionPro 加密狗不在 视觉库就没法用了

2022年1篇

2020年1篇

2019年4篇

2018年25篇

目录

目录

分类专栏

ros安装

1篇

树莓派

1篇

树莓派4b

HALCON

7篇

C#

18篇

Windowsform

4篇

ppicturebox控件

autocad electrical

1篇

工业机器人

1篇

cognex

2篇

操作系统安装

1篇

总线控制器

2篇

总线驱动器

2篇

目录

评论 3

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

【CODESYS软件教程】EtherCAT通信下一体化控制器/伺服电机软件操作步骤 - 知乎

【CODESYS软件教程】EtherCAT通信下一体化控制器/伺服电机软件操作步骤 - 知乎切换模式写文章登录/注册【CODESYS软件教程】EtherCAT通信下一体化控制器/伺服电机软件操作步骤立迈胜(NiMotion)​已认证账号前文我们讲了【CODESYS软件使用教程】CANopen通信组态下一体化控制器/伺服电机连接软件操作步骤,今天来说下EtherCAT通信组态下一体化控制器/伺服电机连接软件操作步骤。本教程仅适用于立迈胜NIMC2000系列控制器、PMM系列一体化伺服电机EtherCAT通信下CODESYS软件操作使用。一、系统构成二、电路配线三、安装设备描述文件1.首先安装控制器描述文件,打开CODESYS软件,点击工具。2.点击设备存储库。3.在弹出的界面中,点击安装。4.选择控制器描述文件,点击打开。则设备描述文件安装完成。5.继续安装伺服电机描述文件,点击安装。6.选择电机描述文件,点击打开。则电机描述文件安装完成。四、新建工程1.点击文件。2.点击新建工程。3.选择标准工程,给工程命名并设置工程存储路径。4.点击确定。5.设备选择NIMC2000。6.然后选择使用的PLC语言,点击确定。五、工程组态1.右键点击Device。2.点击添加设备。3.选择EtherCAT Master。 4.点击添加设备5.点击EtherCAT_Master。6.点击NiMotion。7.点击添加设备。8.右键点击NiMotion。9.点击添加SoftMotion CiA402轴。10.双击打开EtherCAT_Master设置界面。11.选择按名称选择网络。12.在网络名称中输入eth0.13.双击打开NiMotion设置界面。14.选择启用专家设置。15.在选择DC框里,选择DC-Synchron.六、初始化参数设置1.打开专家过程数据界面。2.点击选择Max torque。3.点击删除4.选择Max motor speed5.点击删除6.点击打开启动参数 界面。7.点击添加。8.点击选择Max torque。9.点击确定。10.按照步骤7-9的方法,添加Max motor speed。11.填入初始值,如图所示。12.打开SM_Drive_GenericDSP402 设置页。13.打开SoftMotion驱动:缩放/映射。14.把电机旋转一圈,编码器增量设置为1000。七、程序编写1.打开PLC_PRG。2.鼠标点击变量声明区空白处,按F2键调出输入助手。3.点击文本搜索。4.输入使能功能块关键字:power。5.选择功能块SMC_Basic.MC_Power。6.点击确定。7.实例化MC_Power功能块。8.按照步骤1-7所示的方法,实例化MC_Jog功能块,如下图所示。9.点击程序编辑区,按F2 键,调出输入助手。10.点击实例调用11.选择实例fbMC_Power。12.点击确定。13.在调用的功能块中,填入相关变量,如下图所示。14.按照步骤9-13的方法,调用JOG功能块,并填入相关变量。程序如图所示。15.将PLC_PRG从MainTask任务中,拖放到EtherCAT_Task任务中,如图所示。八、程序下载和设备登录1.打开Device界面。2.打开通讯设置。3.点击扫描网络。4.选择NIMC2000。5.点击确定。6.点击如图所示图标,登录到设备,同时程序会自动下载至控制器。7.登录完成后,点击如图所示图标,启动控制器。8.启动完成后,如图所示。九、程序调试1.打开PLC_PRG窗口。2.更改JOG设定速度,双击lVel变量。3.在弹出的窗口中,输入JOG速度的准备值。4.点击确定。5.按Ctrl+F7 组合键,将准备值写入lVel变量。6.双击bPower状态,使准备值变为TRUE7.按Ctrl+F7 组合键,把准备值TRUE写入bPower,则电机使能。8.按照步骤6-7所示的方法,操作bForward或bBack变量,则可实现伺服电机的正反转运动。发布于 2021-07-16 14:20伺服电机上位机运动控制器​赞同 9​​1 条评论​分享​喜欢​收藏​申请

CODESYS开发教程4-总线伺服控制_codesys怎么添加设备-CSDN博客

>

CODESYS开发教程4-总线伺服控制_codesys怎么添加设备-CSDN博客

CODESYS开发教程4-总线伺服控制

最新推荐文章于 2024-03-13 08:56:08 发布

--莫名--

最新推荐文章于 2024-03-13 08:56:08 发布

阅读量8.5k

收藏

45

点赞数

20

分类专栏:

CODESYS开发

文章标签:

开发语言

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/halps/article/details/128357000

版权

CODESYS开发

专栏收录该内容

12 篇文章

188 订阅

订阅专栏

今天继续我们的小白教程,老鸟就不要在这浪费时间了。

前面一期我们讲了如何实现IO模块的添加和控制。这一期我们以合信的控制器和禾川的总线伺服驱动为例,主要给大家演示一下如何给控制器添加EtherCAT总线接口的伺服从站设备,以及如何使能和控制伺服电机运动。

一、总线伺服设备安装及添加

流程跟前面的教程一样,首先要找到设备描述文件,然后安装并添加到工程中。

1.设备文件下载及安装

由于手头只有禾川的X3E总线伺服,下面就以它为例来进行讲解。禾川的资料下载地址为:https://www.hcfa.cn/service/other.html

X系列伺服的设备描述文件下载地址:

https://www.hcfa.cn/ajax/download.aspx?id=4212&name=59714E0AFAFDE0D61A576AFD16F8A497

该文件解压后可以得到一个XML文件,需要在CODESYS编程环境的菜单栏“工具à设备存储库”中安装该描述文件。

安装完成后在“设备存储库”下方的“现场总线àEthercatà从站àHCFA Co.,Ltd-X3E-DRIVER”下面能够看对应的设备“HCFA X3E Servo Driver”。

注意,在使用大部分的第三方总线伺服驱动时,通常都需要按照以上步骤下载对应的设备文件并安装对应设备,所以需要确认设备文件跟控制器在型号是否是对应的,否则即使安装了后面也有无法正常连接和控制伺服。

2.伺服设备添加

我们仍然使用前面创建的“testCTH0”工程,添加总线伺服设备首先需要添加EtherCAT主站,在设备里面的工程名“testCTH0”上点右键,为该工程添加“EtherCAT Master SoftMotion”。

然后在设备树中的“EtherCAT Master SoftMotion”上点右键添加设备,在打开的窗口中选择刚才安装的设备“现场总线àEthercatà从站àHCFA X3E Servo Driver”。

伺服添加完成后如下图所示:

按照以上方式,可以依次添加多个伺服。请注意这里伺服在设备树下的顺序,即代表伺服的实际连接顺序,因此伺服的排列顺序和型号需要实际伺服的连线一一对应。另外,设备树下伺服的个数和实际连接的个数也必须要一样。d

二、伺服控制编程

下面我们用这个控制器来做一个简单的伺服电机正反转程序,给大家演示一下如何使能伺服并控制电机运动。

与第一期类似,首先需要通过在“Application”上点右键选择“添加对象”添加必要的模块,即任务配置和POU,POU的名字仍然用main,类型还是选择程序。然后在“任务配置àEtherCAT_Task”中添加对main程序的调用,这里间隔需要根据伺服支持的周期修改为4ms,添加后如下图所示:

这里需要注意的是,在添加总线设备“EtherCAT_Master_SoftMotion”时,会在任务配置中自动添加“EtherCAT_Task”任务,该任务用于EtherCAT主站与伺服从站通信。任务优先级通常为1,类型为循环,定时周期4ms。这里需要注意以下几点:

(1)如果还有其它任务,建议任务优先级要低于总线任务优先级,即优先级>1;

(2)“EtherCAT_Task”任务中不要执行耗时较长的程序,如文件读写,以免总线通信超时导致报错。

(3)“EtherCAT_Task”任务的定时周期必须是总线伺服支持的。大部分总线伺服支持的通信周期为:1ms、2ms、4ms、8ms。使用不支持的周期总线通信会报错。

1.伺服通信结构定义

首先需要定义一个用于和伺服通信的数据结构。在“Application”上点右键,选择“添加对象àDUT”。

在打开的“添加DUT”页面中,将名称改为“MotorAxis”,类型选“结构“。

结构中定义的数据其实是来自总线伺服的接口定义,双击打开前面添加的总线伺服设备“HCFA_X3E_Servo_Driver”,选择“过程数据”即可看到。

其中控制伺服需要用到的变量如下表所示。

输入输出 名称 变量类型 变量名 说明 输入 Control Word UINT Controlword 控制字 Modes of operation SINT Mode 伺服模式 Targetposition DINT targetPosition 目标位置 输出 Error Code UINT Errorcode 错误码 Status Word UINT Statusword 状态字 Position actual value DINT ActPosition 实际位置

MotorAxis结构定义如下:

TYPE MotorAxis :

STRUCT

       Controlword         : UINT;           //控制字

       Mode                   : SINT;           //模式

       targetPosition       : DINT;           //目标位置 pulse

       Errorcode             : UINT;           //错误码

       Statusword           : UINT;           //状态字

       ActPosition           : DINT;           //实际位置

       Digitalinputs         : UDINT;        //数字输入

       //内部使用变量

       iState                   : INT;             //内部状态切换

END_STRUCT

END_TYPE

2.伺服使能流程

这块涉及到EtherCAT总线伺服的启动流程,整个流程主要分为两部分,第一部分是检测所有连接的伺服是否进入可操作状态(OP状态),第二部分是对进行伺服使能处理以保证后续程序能够正常控制电机运动。

从站状态检测过程可以简单粗暴的直接用延时来替代,即程序启动后延时一段时间,等所有从站初始化完成进入OP状态后再开始进入使能流程。这里需要注意的问题是,连接的从站越多,等待从站完成初始化的延时时间越长,请朋友们根据自己连接的从站数量调整延时时间。

对于新建工程,要使用定时器TON需要为工程添加相应的CODESYS库,该功能位于库Standard中。在设备树中双击“库管理器”,在打开的页面中点击左上角的“添加库”,找到下面红框中的Standard库并加入。当你不知道所用函数具体在哪个库中的时候,可以在“添加库”打开的页面中直接输入函数或功能块名,如果名字没错的话包含该函数的库大概率是排在第一位的,直接选择加入即可。如果这样找不到,还可以到CODESYS的在线帮助中去搜索。

由于整个使能过程对新手来说比较复杂,这里先提供一个使能代码给大家使用,具体的流程在以后的文章中会详细的介绍。使能流程的代码如下:

FOR i := 0 TO AxisNum-1 DO

       IF bSetServOn THEN //使能

              IF (UINT_TO_DWORD(g_Axis[i].Statusword) AND 16#000F) = 16#0008 THEN

                     g_Axis[i].targetPosition := g_Axis[i].ActPosition;

              ELSIF ((UINT_TO_DWORD(g_Axis[i].Statusword) AND 16#004F) = 16#0040) THEN

                     g_Axis[i].targetPosition := g_Axis[i].ActPosition;

                     curPos[i] := g_Axis[i].ActPosition; //记录初始位置

                     g_Axis[i].iState := 1; //Switch on disabled

              ELSIF (UINT_TO_DWORD(g_Axis[i].Statusword) AND 16#002F) = 16#0021 THEN

                     g_Axis[i].iState := 2; //Ready to Switch on

              ELSIF (UINT_TO_DWORD(g_Axis[i].Statusword) AND 16#002F) = 16#0023 THEN

                     g_Axis[i].iState := 3; //Switch on

              ELSIF (UINT_TO_DWORD(g_Axis[i].Statusword) AND 16#003F) = 16#0037 THEN

                     g_Axis[i].iState := 4; //Servo on

              END_IF

              CASE g_Axis[i].iState OF

                     0: g_Axis[i].Controlword := 128; //reset

                     1: g_Axis[i].Controlword := 6;      //上电

                     2: g_Axis[i].Controlword := 7;

                     3: g_Axis[i].Controlword := 15;

                     4: bRegulatorState[i] := TRUE;

              END_CASE

       ELSE //掉使能

              CASE g_Axis[i].iState OF

                     3,4:

                            g_Axis[i].Controlword := 7;

                            g_Axis[i].iState := 5;

                     5:

                            g_Axis[i].Controlword := 6;

                            g_Axis[i].iState := 6;

                     6:

                            IF (UINT_TO_DWORD(g_Axis[i].Statusword) AND 16#0023) = 16#0023 THEN

                                   g_Axis[i].Controlword := 4;

                                   g_Axis[i].iState := 7;

                            END_IF

                     7:

                            bRegulatorState[i] := FALSE;

                            g_Axis[i].iState := 0;

                            //bSetServOn:=FALSE;

                            bServOndone:=FALSE;

              END_CASE

       END_IF

END_FOR

3.伺服运动控制

当伺服进入使能状态后,对伺服的控制主要是给每个伺服周期性发送目标位置,并检测伺服是否存在错误。由于采用的是绝对值伺服,因此不需要执行回零。下面的程序实现了伺服正反转的过程

程序如下:

PROGRAM main

VAR

       i                    : INT;

       delay             : TON;

       bSetServOn   : BOOL   :=FALSE; //开始使能标志

       bServOndone : BOOL;                       //所有伺服使能完成标志

       AxisNum       : INT:=2;

       g_Axis           : ARRAY [0..1] OF MotorAxis; //实轴定义

       HMI_bServon : BOOL:=FALSE;    //使能

       HMI_uiErrID   : INT:=0;               //报错标志

       bRegulatorState :ARRAY[0..1] OF BOOL:=[2(FALSE)];      //使能成功

       curPos           : ARRAY[0..1] OF DINT; //起点位置

       cmdPos         : INT:=150; //命令位置

       cnt                : DINT:=0;

END_VAR

//以下为程序部分

//正反转测试

IF bServOndone THEN

       FOR i:=0 TO AxisNum-1 DO

              IF bRegulatorState[i] THEN

                     IF    g_Axis[i].targetPosition-curPos[i]>500000 THEN

                            cmdPos:=-100;

                     ELSIF g_Axis[i].targetPosition-curPos[i]<-500000 THEN

                            cmdPos:=100;

                     END_IF

                     g_Axis[i].targetPosition:=g_Axis[i].targetPosition+cmdPos;

              END_IF

       END_FOR

       cnt:=cnt+1;

       IF (cnt MOD 49999)=0 THEN

              HMI_bServon:=NOT HMI_bServon;

       END_IF

END_IF

//伺服错误检测

IF g_Axis[0].Errorcode<>0 OR g_Axis[0].Errorcode<>0 THEN

       HMI_uiErrID := 1;

END_IF

二、总线伺服配置

伺服控制程序实现后,需要将控制程序中的变量与伺服的控制信号对应起来,这个过程通常称为映射,永固保证每个周期发送给伺服的目标位置能够传递给伺服并从伺服读取状态和数据。映射的方式和前面IO模块的映射类似。

双击设备树中的伺服模块“HCFA_X3E_Servo_Driver”,在打开的窗口中选择“EtherCATI/O映射”,然后在右边窗口中选择“Cotrol Word”对应的变量,双击下图椭圆红框中的空白处,在其右边会出现“…”。

点击这个省略号会弹出下图窗口。在该窗口中选择“Applicationàmainàg_Axis”,即前面在main程序中定义的代表伺服接口的变量。

完成后还需要在g_Axis后面增加“[0]”,表示数组的第0个结构对应设备树中的第一个伺服。其余的变量按照同样的方式一一对应,完成后如下图所示:

同样的方式完成第二个伺服的接口变量的映射,第二个伺服对应的接口变量是g_Axis[1]。

这样就完成了main程序中的伺服接口变量g_Axis与伺服驱动的对应。后续在程序中对g_Axis的操作会由总线任务“EtherCAT_Task”周期性的将更新到伺服并从伺服读取相应的状态,目前主站与伺服的通信周期为4ms。

三、运行测试

今天写到这里突然发现手头居然没有合信的控制器了,只有一个禾川的Q0,这是个什么情况?难道要把前面的图和文章都重新来一遍(作者一副满脑袋问号的傻相)?想想还是算了吧。说实话,运行测试其实也没有什么东西可看的,就是2个电机来回的转~~~~

为了证明这个程序是能用的,下面用禾川的Q0控制器来跑一下,顺便填一下前面没有具体写怎么连接控制器的坑。

1.连接控制器

禾川的Q0控制器的IP地址为192.168.88.100,因此连接控制器的上位机IP必须在同一网段内,这里设置为192.168.88.101。然后在工程是设备树中双击“HCQ0_1200_D”,在打开的控制器设备页面中,选择“通讯设置à扫描网络”,在之后弹出的窗口中,点右边的“扫描网络”按钮,只要设置和连接正确,就会在Gateway下面显示当前连接的控制器。

选择该控制器后,回到设备页面能够看到设备图片上会出现绿色圆点,表明控制器已经连接成功。

在连接禾川的EtherCAT总线伺服过程中,还有一个需要配置的内容,这就是指定“EtherCAT_Master_SoftMotion”使用哪个网络,即指定MAC地址,如下图所示。需要选择其中名为“ecat1”的这个MAC地址。

也可以在该配置页直接选择“按名称选择网络”,网络名称填“ecat1”。这部分每个公司的控制器可能有所区别,需要根据品牌来做相应的设置。

2.运行程序

首先按F11编译程序,在确认没有错误的情况下登录控制器(菜单栏“在线à登录到”),并下载程序。编程环境会提示是否下载最新代码,当然是选择是,不然我们要干啊?程序下载完成后,控制器默认是停止运行的状态。然后按F5启动程序。由于没有外部输入信号,这里可以直接使用强制方式将HMI_bServon置为TRUE,让程序能够开始运行。

运行测试感觉好像没什么可写的,因为程序的功能开发和测试实际上就是一个反复的迭代过程,需要大家自己通过反复实践来仔细体会~~~。

当你把这个过程重复2^10次以后,就能深刻体会为什么程序员被称为码农……^o^。

四、结论

总线伺服的使用相对于IO来说,不管是配置还是控制都要更加复杂一些。不过一步一步学到现在,有没有发现很多步骤其实都是类似的。只要对需要经常使用的功能有了基本的概念,用起来就感觉没那么难了。实际上,CODESYS开发环境的大部分功能对于我们来说都是干扰项,刚开始的时候不要管它就好了^-^。恭喜各位又离成为码农近了一步,继续加油~~~

------------------

原创不易,感兴趣的多支持!

优惠劵

--莫名--

关注

关注

20

点赞

45

收藏

觉得还不错?

一键收藏

知道了

14

评论

CODESYS开发教程4-总线伺服控制

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

复制链接

扫一扫

专栏目录

CoDeSys-SoftMotion-运动控制中文编程手册,codesys运动控制指令,PLC

09-10

从网上下载的Codesys相关的运动控制部分的编程手册,用于进一步了解Codesys

CODESYS连接第三方EtherCAT总线伺服配置.pdf

08-24

使用 CODESYS General DSP402 Axis 对第三方 EtherCAT 总线式伺服电机进行控制配置方式

14 条评论

您还未登录,请先

登录

后发表或查看评论

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

opencv_learner的博客

07-31

9672

在这个实例中,我会用CODESYS这个开发环境写一个简单的实例,我有一个总线控制器,用于控制两个松下总线伺服驱动器进而控制电机的运动,并写一个简单的控制界面。此外,这里还涉及到了驱动器相应的参数配置,这个不是今天的重点,下次有机会再说。

以下是主要的操作步骤及注意事项。

1、首先是CODESYS软件的安装,软件来源某度就有,按照提示直接安装就行,一般都没有问题的,安装完桌面便会有...

codesys 任务配置

xi_ri的博客

01-14

396

4状态:选一个BOOL量触发任务,bool为1一直执行,为0则不执行 (满足条件才执行的pou)3事件:可以选择一个变量来触发任务,比pou里面的BOOL变量 (可以用于停止程序)state 状态。codition 条件。同一个pou可以被不同任务类型的任务调用。coheretn 连惯。同一个变量名可以被不同的pou使用,configuration 配置。2惯性滑动:不能设定时间,一直循环。1循环:可以设定时间循环。

Codesys禾川Q1配置SV-X3EB实现单轴控制.zip

12-13

Codesys 禾川Q1配置SV-X3EB实现单轴控制例程

在CODESYS中通过EtherCAT总线驱动单个电机

热门推荐

weixin_45086497的博客

06-21

1万+

在CODESYS中同通过EtherCAT总线驱动单个电机

本文讲述了手上有个支持EtherCAT总线的驱动器和步进电机的情况下,如何通过CODESYS添加EtherCAT的主站从站,控制电机转动。

本文所用设备:普通PC、杰美康驱动器2DM556-EC、电机60J18100-440。

操作步骤:

1. 电机及驱动器接线

2.新建标准工程

打开codesys,新建标准工程,设备选择“CODESYS Control V3 ×64”,切记不要选择“SoftMotion”,编程语言选择结构化文本(ST)。

3.

CODESYS开发教程5-工程的基本组成

halps的专栏

12-23

4795

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

CODESYS开发教程2-设备添加

halps的专栏

12-04

8177

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

基于Linux RT+Softmotion+EtherCAT的多轴同步运动控制国产化方案

weixin_39926429的博客

06-16

281

基于LabVIEW的多轴运动控制和机器视觉优秀方案

codesys的设备树重点详解

weixin_45787652的博客

07-22

2176

codesys的设备树重点详解

1.设备树设备文件Western-ARM Cortex-VxWorks.devdesc.xml;帮助文档在开发包Western_0x1_ARM_VxWorks_V3.5.16.40_XsCZMASIHS路径下搜索chm即可打开。

>

4096

信捷CODESYS平台伺服电机转矩控制模式应用与切换

weixin_64614866的博客

06-14

3046

信捷CODESYS二次开发软件:XS Studio 在运动控制中的转矩控制案例

Codesys禾川Q1配置SV-X3EB实现单轴控制

qq_39455663的博客

12-13

3823

Codesys禾川Q1配置SV-X3EB实现单轴控制

基于CodeSys的伺服电机控制教程。

03-07

1、CodeSys电机运行代码

2、实现了电机的JOG运行、绝对位移、抓点

3、实现了实时显示电机的位置

CodeSys最好的中文教程

07-03

CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Development System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础上(如Visual C++)。

现在国内PLC用户使用的版本多为CoDeSys V2.3, 最新的版本是CoDeSys V3。V3 在软件架构上有了很大的改善,朝安全软件的方向发展,目前正在申请TUV关于EN 61508的SIL认证。

CoDeSys软件还可以编辑显示器界面(Visualization),具有很多的控制模块(Motion),可以放置图片等强大的功能,典型的用户有ifm等。

CoDeSys功能总览:如何构建一个工程、怎么样构建一个工程、怎么样测试工程、调试、附加联机功能。CoDeSys的附加功能、工具等。

ABB Bachmann,IFM易福门,EPEC派芬,HOLLYSYS和利时,intercontrol的PROSYD1131,赫思曼公司iFlex 系列、力士乐的RC系列,TT control 公司TTC系列 [1] 控制器等PLC厂家都是使用Codesys平台开发自己的编程软件的。

《如何使用C语言去下三子棋?》

一只不会编码的程序猿

03-13

1357

全站最详细通过【C语言】实现三子棋功能简介,欢迎批评指正!

AO3407A-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明

03-13

SOT23;P—Channel沟道,-30V;-5.6A;RDS(ON)=47mΩ@VGS=10V,VGS=20V;Vth=-1V;

pdf简中字体用户jspdf功能开发

最新发布

03-13

pdf简中字体

东北林业大学《工程估价与施工组织》2020考研专业课复试大纲.pdf

03-13

东北林业大学考研复试大纲

codesys如何控制4-5轴cnc

11-05

CoDeSys是一种先进的编程软件,可以用于控制CNC系统中的4-5轴。

对于4轴控制,可以使用CoDeSys编写程序来控制四个坐标轴的运动。通过编写适当的代码,可以实现基本的运动、定位和插补功能。例如,可以编写代码来控制主轴的转速和进给速度,同时控制X、Y和Z轴的位置和运动。

对于5轴控制,可以使用CoDeSys来编写更复杂的程序。在5轴CNC系统中,通常有一个附加的旋转轴(通常被称为A轴或B轴)。使用CoDeSys编程,可以控制这个附加轴的旋转角度,同时控制其他四个轴的位置和运动。可以编写代码来实现复杂的插补算法,以实现精确的工件加工。

使用CoDeSys编程控制4-5轴CNC系统需要了解CNC系统的硬件和输入/输出接口。然后,可以使用CoDeSys的功能块和指令来编写程序。这些功能块和指令可以用于控制电机、传感器和其他外部设备,以及处理输入信号和输出信号。

总之,CoDeSys是一种强大的工具,可以用于控制4-5轴CNC系统。通过编写适当的代码,可以实现精确的运动控制和复杂的工件加工。掌握CoDeSys编程技能可以帮助工程师更有效地控制和操作CNC系统。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

--莫名--

CSDN认证博客专家

CSDN认证企业博客

码龄22年

暂无认证

33

原创

29万+

周排名

6万+

总排名

15万+

访问

等级

795

积分

367

粉丝

287

获赞

103

评论

864

收藏

私信

关注

热门文章

AKShare量化接口简介

18803

CODESYS开发教程1-仿真运行

13229

CODESYS开发教程6-关键字及变量类型

10989

CODESYS开发教程8-定时、触发和计数

10068

CODESYS开发教程11-库管理器

8886

分类专栏

CODESYS开发

12篇

Python量化

16篇

嵌入式开发

5篇

优化方法

1篇

最新评论

CODESYS开发教程2-设备添加

远离颠倒梦想:

谢谢可以了,文中的链接复制进不去,评论里的链接可以了

CODESYS开发教程1-仿真运行

--莫名--:

主要是写这篇的时候下一篇还不知道在哪......

CODESYS开发教程1-仿真运行

--莫名--:

多支持!

CODESYS开发教程8-定时、触发和计数

--莫名--:

不会,实测的ET值最后跟PT值一样。至于为什么是这样,没看到有啥文档讲这个

CODESYS开发教程2-设备添加

--莫名--:

这个链接里面的第一个就是啊 https://www.co-trust.com/Download/index.html?D_Series=85

大家在看

一体化微气象传感器-微气象仪

电源模块测试常用设备与计算公式方法

179

数学新巅峰,微软&清华联合研究发现:7B级LLaMA-2模型数学能力惊人,准确率高达97.7%

Haproxy

964

提速电商效果图云渲染:优势与策略

283

最新文章

CODESYS开发教程12-任务配置

CODESYS开发教程11-库管理器

CODESYS开发教程10-文件读写(SysFile库)

2023年7篇

2022年24篇

2017年5篇

2012年1篇

2008年1篇

目录

目录

分类专栏

CODESYS开发

12篇

Python量化

16篇

嵌入式开发

5篇

优化方法

1篇

目录

评论 14

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

CODESYS EtherCAT 开发

CODESYS EtherCAT 开发

成长地图 概述 工业 4.0 简介 翼辉工业自动化 翼辉工业产品介绍 快速体验 体验路线简介 SylixOS 数据采集 环境准备 部署应用 运行效果 CODESYS 数据采集 环境准备 部署应用 运行效果 可视化场景体验 入门开发 SylixOS Modbus 开发 CODESYS Modbus 开发 基础开发 基础知识 SylixOS EtherCAT 开发 CODESYS EtherCAT 开发 IGC 控制器双机通讯 环境准备 VSOA Server 端 SylixOS 开发 VSOA Server 端 CODESYS 开发 VSOA Client 端开发 HMI 组态软件开发 环境准备 IGC 控制器通信开发 HMI 组态界面开发 运行效果演示 进阶开发 Hello EdgerOS EdgerOS 简介 第一个应用 EdgerOS 开发示例 电机数据可视化 环境准备 后端开发 前端开发 应用部署 远程 IO 输出控制 环境准备 后端开发 前端开发 应用部署 详细手册 基础开发CODESYS EtherCAT 开发CODESYS EtherCAT 开发更新时间:2023-12-13下载文档# CODESYS EtherCAT 开发本节主要介绍在 IGC 系列控制器上如何使用 CODESYS 对 EtherCAT 伺服电机进行控制。# 环境准备设备列表序号设备名称数量备注1IGC1503 控制器1必选2EtherCAT 伺服电机系统1必选[1 个伺控制器 + 1 个伺服电机]3交换机1可选说明:本节例程的代码适用于 IGC 系列控制器的 IGC1500、IGC1503。EtherCAT 伺服电机系统,本例使用 1 套汇川 EtherCAT 伺服电机系统(1 台 SV660NS2R8I 型伺服控制器和 1 台 400W 伺服电机);也可使用其他厂商的支持 EtherCAT 协议的伺服电机系统。软件列表序号软件名称数量备注1CODESYS 上位机1必选示例工程列表序号名称数量说明1basic_development.projectarchive1本章所有操作完成后的示例工程。下载列表IGC1500 设备描述文件下载open in new windowIGC1503 设备描述文件下载open in new windowCODESYS 3.5.17.30 软件下载open in new window# 控制电机转动案例使用 CODESYS 上位机,结合其 EtherCAT 协议栈与 SoftMotion 运动控制算法,对单个电机进行 CSP 模式控制,完成对单个 EtherCAT 伺服电机每秒旋转一圈的匀速运动控制。# 前提条件参照“入门开发”中 CODESYS Modbus 开发 操作,熟悉了 CODESYS 软件的基本操作,并已添加了 IGC 系列控制器的设备描述文件。# 步骤 1:连接硬件设备准备一台 IGC1503 控制器,一根网线。网线一端接入电脑,另一端接入控制器网口 X1,网口 X1 默认 IP 为 192.168.1.253。准备一套 EtherCAT 伺服电机系统,一根网线(也可使用 EtherCAT 专用网线)。网线一端接入 IGC1503 控制器网口 X2,另一端接入伺服控制器用于 EtherCAT 通讯的 IN 端口。把 IGC1503 控制器和伺服电机系统上电。# 步骤 2:安装依赖环境下载翼辉信息对 CODESYS EtherCAT 专属支持的 4.3.0.0open in new window 版本依赖包,并部署于 CODESYS 上位机开发环境。打开 CODESYS 上位机,在菜单栏中选择 Tools > Package Manager 打开 Package Manager 控件。在Package Manager界面中单击 Install,进行安装包。进入所下载的目录,选择下载的"CODESYS EtherCAT 4.3.0.0.package"文件,单击打开进行包信息的导入。当上位机检测信息完成后,会跳出确认弹框,单击 OK 确认添加,进行安装操作界面。勾选确认框,单击 Next 进入下一步。按照默认选择 Typical setup 安装方式,单击 Next 进入下一步。按照默认选项,单击 Next 进入下一步。单击 Finish,根据提示关闭 CODESYS 软件,依赖包开始更改 CODESYS 的环境变量,按照默认选择即可完成依赖包的导入安装。# 步骤 3:安装伺服 ESI 文件打开 CODESYS 上位机,进入主页面。单击 Tools > Device Repository,进入设备存储库界面。在设备存储库界面单击 Install,安装伺服 ESI 文件。说明:ESI(EtherCAT Slave Infomation)文件是 EtherCAT 协议中的一个概念,描述了 EtherCAT 从站的链路层 EtherCAT 特性与应用层特性,格式为 XML。伺服 ESI 文件由伺服厂家提供,本例环境使用的伺服为汇川 SV660NS1R6I,用户请根据自身环境自行联系相应伺服厂家获取文件。窗口显示如下信息后,表示 ESI 文件已正确安装,用户可关闭控件。# 步骤 4:创建 IEC 工程选择菜单栏 File > New Project 打开新建工程窗口。选择模板为 Standard project,并填入工程名及工程存放位置,单击 OK 进入下一步。如图 Device 选择为 IGC1503 型号,PLC_PRG 选择 LD 语言开发,单击 OK 完成新工程的创建。双击 Device 打开 Communication Settings 界面,双击编辑设备端输入框,输入 IGC1503 X1 网口默认 IP 地址 192.168.1.253,按下 Enter 键,测试与控制器的连接。# 步骤 5:添加主站设备右击 Device,选择 Add Device,进入添加设备界面。选择 Fieldbuses > EtherCAT > Master > EtherCAT Master Softmotion 设备,单击Add Device 完成添加。添加成功后,工程列表如下所示。说明:添加设备后,Task Configuration 任务列表下会自动挂载一个 EtherCAT_Task 任务。# 步骤 6:配置主站设备双击 EtherCAT_Master_Softmotion,进入 General 界面,单击 Select... 选择设备的 EtherCAT 通信网口。选择 _X2 网卡的 MAC 地址,单击 OK完成。展开 Distributed Clock 界面,将 cycle time 设定为 1000 us。说明:EtherCAT 是一种高速实时以太网,1ms 为典型的通讯周期,可以覆盖绝大多数的运动控制场景。# 步骤 7:扫描从站设备单击主菜单中的 Online > Login,登录到 IGC1503。在弹框中,单击 Yes 编译下载程序,将程序停留在 Stop 阶段。右击 EtherCAT_Master_Softmotion 设备,单击 Scan for Devices... 进行从站设备的扫描。单击 Copy All Devices to project,将扫描到的伺服设备添加至左侧工程设备树中。工程最终的设备树,如下图所示。# 步骤 8:添加电机轴单击 Online > Logout 退出在线模式。右击伺服设备 InoSV660N,单击 Add SoftMotion CiA402 Axis,添加一个电机轴。点击确定,完成工程设备树中电机轴的添加。工程最终的设备树,如下图所示。# 步骤 9:配置电机轴双击 Add SoftMotion CiA402 Axis 电机轴设备,进入 Scaling/Mapping 界面。配置电机轴的单位计量。设置脉冲增量 increments 为 16#800000,设置应用程序单位 units in application 为 1。此参数表示 1 个应用程序单位对应 16#800000 个脉冲,伺服电机可转动 1 圈。说明:单位计量是伺服编码器脉冲数与 IEC 编程中的应用程序单位的比例关系,它决定了 IEC 编程中一个应用程序单位(u)对应多少个伺服脉冲(p)。案例的目标伺服使用的是 23 位编码器(2^23 = 16#800000),即 16#800000 个脉冲增量预示电机转动 1 圈。# 步骤 10:编写逻辑代码双击 PLC_RPG,进入 IEC 编程界面。单击梯形图网络区域后右击,选择 Insert Box 添加一个功能块。在 Input Assistant 输入助手界面,切换到 Text Search 文本搜索,搜索 MC_Power(大小写不敏感)。选择 SM3_Basic.MC_Power 功能块,单击 OK,向梯形图网络中添加一个 MC_Power 功能块。如下图所示,在变量声明编辑区,声明刚添加的变量名和变量类型,完成功能块变量的实例化。选择 MC_Power_0 功能块的 Status 引脚后右击,单击 Insert Box 添加一个 MC_MoveVelocity 功能块。在 Input Assistant 输入助手界面,切换到 Text Search 文本搜索,搜索 MC_MoveVelocity(大小写不敏感)。 单击 OK,进行 MC_MoveVelocity 功能块的添加。声明 MC_MoveVelocity 变量。如下图所示,在变量声明编辑区,声明刚添加MC_MoveVelocity 功能块,完成功能块变量的实例化。如下设置各功能块的输入输出引脚参数。可通过输入助手进行选择,也可直接手动输入。右击 Main_Task,选择 Delete 删除该任务。右击 EtherCAT_Task,选择 Add Object > Program Call… 添加新任务。在弹框中,单击 … 设置 POU to Call 为 Application 下的 PLC_RPG POU。单击 Add 完成 EtherCAT_Task 任务下的 PLC_RPG 挂在。最终设备上结构如下图所示。说明:本操作目的是对齐电机轴数据的更新周期与 EtherCAT 任务循环周期。# 步骤 11:查看运行效果登录并下载 IEC 程序至控制器内,启动程序。CODESYS 上位机监控界面可实时观察伺服电机的各项数据,实际电机也以每秒1转(1 RPM)的转速匀速运行。上一篇SylixOS EtherCAT 开发下一篇环境准备文档内容是否对您有所帮助? 有帮助 没帮助 环境准备控制电机转动前提条件步骤 1:连接硬件设备步骤 2:安装依赖环境步骤 3:安装伺服 ESI 文件步骤 4:创建 IEC 工程步骤 5:添加主站设备步骤 6:配置主站设备步骤 7:扫描从站设备步骤 8:添加电机轴步骤 9:配置电机轴步骤 10:编写逻辑代码步骤 11:查看运行效果Copyright © 2024 ACOINFO. All Rights Reserved. 京ICP备20010248号京公网安备11010802043204号

干货!教您使用工业树莓派结合CODESYS配置EtherCAT主站 - 知乎

干货!教您使用工业树莓派结合CODESYS配置EtherCAT主站 - 知乎切换模式写文章登录/注册干货!教您使用工业树莓派结合CODESYS配置EtherCAT主站宏集工业物联网SCADA、网关、协作机器人、工业树莓派、PLC、传感器等前言工业树莓派可以结合CODESYS作为小型工控机,支持多种现场总线协议应用,例如EtherNET/IP、Profinet、EtherCAT等。其中,通过与CODESYS结合的方式实现EtherCAT,支持工业树莓派作为EtherCAT主站,控制EtherCAT IO模块或者EtherCAT伺服电机。本文将分享如何将工业树莓派配置为EtherCAT主站,并与伺服驱动器通讯。一、 所需工具1. 一个工业树莓派核心模块/控制器模块,本次测试使用 Connect+feat. CODESYS 模块2. 一个伺服电机3. CODESYS 多核授权(树莓派版本)二、 操作步骤1. 添加伺服电机描述文件点击“工具”->“设备存储库”,点击“安装”,选择伺服电机的设备描述文件2. 新建工程3. 工程类型测试使用的codesys授权是多核版本,所以选择CODESYS Control for Raspberry Pi MC SL;如果是单核版本请选择CODESYS Control for Raspberry Pi SL。4. 添加设备-控制器右击“Device”,选择添加设备,找到“其他项”,选择添加使用的控制器模块,点击“添加设备”。(本次测试使用的是Connect模块)5. 添加EtherCAT主站a. 右击“Device”,选择添加设备,找到“现场总线”,选择添加“EtherCAT”->“EtherCAT Master”。b. 右击“EtherCAT_Master”,添加伺服电机,即添加描述文件后出现的设备。c. 右击“EP3E_EC”,添加“SoftMotion CiA402轴”。d. 双击“EtherCAT_Master”,选择“通用”,选择“按MAC地址选择网络”,点击源地址的“浏览”,选择伺服电机与工业树莓派连接的以太网口的IP地址。(本次测试使用的是B口,即eth1)e. 双击“EP3E-EC”,点击“通用”,勾选“专家设置“,设置分布式时钟。f. 点击“启动参数”,点击“添加”,分别添加“Max torque”和“Max motor speed”。g. 分别设置“Max torque”和“Max motor speed”的值为1000和4000.h. 打开“SM_Drive_GenericDSP402 ”设置页。i. 打开SoftMotion驱动:缩放/映射。j. 把电机旋转一圈,编码器增量设置为1000。6. 程序编写a. 打开PLC_PRG,鼠标点击变量声明区空白处。b. 按F2键调出输入助手,点击文本搜索,输入使能功能块关键字:power,选择功能块SMC_Basic.MC_Power,点击确定。c. 实例化MC_Power功能块。d. 同样的方式添加MC_Jog功能块,并实例化MC_Jog功能块。e. 点击程序编辑区,按F2 键,调出输入助手,点击实例调用选择实例fbMC_Power,点击确定。f. 填写相关变量。g. 同样的方式配置MC_Jog功能块。h. 将PLC_PRG从MainTask任务中,拖放到EtherCAT_Task任务中,如图所示。7. 程序下载和设备登录8. 调试a. 尝试修改lVel的值,双击“lVel”,修改为100,点击确认,快捷键Ctrl+F7,确认写入。查看是否有变化。b. 双击“bPower”,查看是否有变化。9. 测试完毕。三、 总结工业树莓派结合CODESYS不仅仅支持EtherCAT主站,还可以支持Modbus TCP/RTU 主站/从站、CANopen主站/从站,之后也会逐渐分享给大家相应的配置文档。更多资讯 欢迎关注博主编辑于 2022-08-24 14:05树莓派(Raspberry Pi)工业物联网工业自动化​赞同 1​​添加评论​分享​喜欢​收藏​申请

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)_codesys网关没有正确配置-CSDN博客

>

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)_codesys网关没有正确配置-CSDN博客

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

最新推荐文章于 2023-12-17 19:36:26 发布

孙姬被刘备家暴

最新推荐文章于 2023-12-17 19:36:26 发布

阅读量9.6k

收藏

49

点赞数

13

分类专栏:

总线控制器

总线驱动器

文章标签:

总线控制器

总线驱动器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/opencv_learner/article/details/97886185

版权

总线控制器

同时被 2 个专栏收录

2 篇文章

1 订阅

订阅专栏

总线驱动器

2 篇文章

0 订阅

订阅专栏

       在这个实例中,我会用CODESYS这个开发环境写一个简单的实例,我有一个总线控制器,用于控制两个松下总线伺服驱动器进而控制电机的运动,并写一个简单的控制界面。此外,这里还涉及到了驱动器相应的参数配置,这个不是今天的重点,下次有机会再说。

以下是主要的操作步骤及注意事项。

1、首先是CODESYS软件的安装,软件来源某度就有,按照提示直接安装就行,一般都没有问题的,安装完桌面便会有如下图所示的快捷方式。

2、安装控制器的设备描述文件。

双击打开安装好的codesys开发环境,进入“工具”菜单栏,选择“设备库”

单击右侧的“安装”按钮,选择这个控制器的描述文件,注意有两个,全部安装。

3、安装总线驱动器的设备描述文件。跟常见的脉冲型驱动器不同的是,总线型的驱动器要能被控制器识别,必须安装相应的驱动器设备描述文件,这个文件在购买驱动器的时候要供应商提供,尽量要最新的,和第二部的操作相同,找到驱动器对应的描述文件进行安装,如下图所示。

可以看到该文件夹里还有许多其他总线驱动器的描述文件,选择与自己驱动器型号对应的就好。

这个时候我们就可以在设备库里看到相应的设备了,可以看到专用设备里面多了一款控制器

再接着往下看,找到“现场总线”--“Ethercat”--“从站”,点开“从站”前面的“+”,可以发现里面多出了许多型号的松下驱动器

至此,设备的描述文件就安装完成了。接下来开始在这个开发环境中进行配置和编写控制程序。

4、新建工程,选择"Standard project"

单击确定,进入下一个选择界面,如下图所示

这里的设备选择我们之前安装的那个,这里用红色箭头标记了。

编程语言我这里选的是结构化文本,这个语言和C语言有些类似,工控领域相比梯形图那些,真是好太多了,不是吐槽梯形图,梯形图对于简单的控制,步数不太多的情况下用用还可以,复杂情况就用高级语言吧!如下图所示。

5、添加设备:总线控制器(主站)和总线驱动器(从站)

进入工程后,在左侧找到导航栏,右击“device”,选择“添加设备”

弹出如下的界面

选择专用设备下的IODrvMIC7001,单击“添加设备”进行添加

选择“现场总线”--“Ethercat”--“主站”--“Ethercat Master Softmotion”,单击“添加设备”进行添加

在左侧导航栏里可以看到多出了两个刚刚添加的设备

双击左侧导航栏中的“EtherCAT_Master_SoftMotion(EtherCAT_Master_SoftMotion)”,可以对主站进行相应的参数设置。

这里我修改了“网络名称”,单击“按名称选择网络”,并输入网络名称“eth0”,如下图所示

主站添加 完毕,接下来添加从站。当然,这个前提是已经有伺服驱动器通过超五类网线和控制器正常连接了,不然是没法通过扫描的方式添加从站驱动器的。

右击左侧导航栏的“EtherCAT_Master_SoftMotion(EtherCAT_Master_SoftMotion)”,选择“扫描设备”

可能会弹出如下界面

这说明没有选择网关,简要说说操作步骤:

首先电脑需要连接控制器,MIC7001控制器自身可以发出WiFi信号,电脑需要首先连接该WiFi

然后,双击左侧导航栏的“device”,出现如下界面,单击红色箭头标记的“scan network”,选择相应的控制型号即可

OK,连接到了网关了,再次进行从站的扫描,这次扫描到了两个从站,添加两个从站到网络中,右侧导航栏如下图所示,可以看到主站下面多出了两个我们刚刚添加的从站

分别给两个从站驱动器添加softmotion CiA402 Axis,如下图所示

给刚刚添加的轴进行重命名,对于弹出的窗口,直接按回车键确定就行:

SM_Drive_GenericDSP402(SM_Drive_GenericDSP402)修改为axis_0

SM_Drive_GenericDSP402_1(SM_Drive_GenericDSP402)修改为axis_1

如下图所示:

接下来还需要对电机的参数进行设置,双击导航栏中的“axis_0”,导航栏右侧弹出参数设置界面

“softmotion驱动:基本的”相关参数参考如下界面:

softmotion驱动:缩放/映射”相关参数参考如下界面:

“增量<=>电机转”左侧输入的是编码器的参数,编码器每转过一圈发出的脉冲数

“电机转动<=>齿轮输出转”左侧输入的是减速机的减速比

“减速机输出转<=>应用的单元”右侧输入360,这个参数跟电机转速有关系,具体含义待确定。

其他页面的参数默认即可。

至此,主站和从站的添加及参数的设置已经完成。

图有点多,显得比较长,第一部分就写到这里吧,第二部分将会写程序的开发部分。

优惠劵

孙姬被刘备家暴

关注

关注

13

点赞

49

收藏

觉得还不错?

一键收藏

知道了

3

评论

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

在这个实例中,我会用CODESYS这个开发环境写一个简单的实例,我有一个总线控制器,用于控制两个松下总线伺服驱动器进而控制电机的运动,并写一个简单的控制界面。此外,这里还涉及到了驱动器相应的参数配置,这个不是今天的重点,下次有机会再说。以下是主要的操作步骤及注意事项。1、首先是CODESYS软件的安装,软件来源某度就有,按照提示直接安装就行,一般都没有问题的,安装完桌面便会有...

复制链接

扫一扫

专栏目录

codesys 程序案例

08-25

以上是codesys V3编写的程序源代码,分享给有需要的人。

如何使用CODESYS V3.5 进行CFC编程.docx

05-21

如何使用CODESYS V3.5 进行CFC编程; 编程简介CODESYS入门,CODESYS编程简介;

3 条评论

您还未登录,请先

登录

后发表或查看评论

在Codesys用ST语言基于数组实现栈LIFO数据结构详细说明+代码实例

codesys01的博客

12-17

202

栈是一种后进先出(LIFO——last in first out)线性表,它只允许在表的后端(tail)进行插入(push)和删除(pop)操作。

codesys UDP Demo

03-08

codesys中UDP使用

Codesys case实例源码,带可视化视图

09-16

Codesys case实例源码,带可视化视图,供大家下载学习!

积分已修改适合新人使用

codesys用户编程收藏的

11-20

codesys V2.3工具PLC语言用户编程手册,有需要的人可以下载看看。

codesys教程

12-28

了解Codesys的编程方法,CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础上(如Visual C++)。

CODESYS Automation Server Connector

m0_69433009的博客

05-09

1232

简介

CODESYS 自动化服务器连接器是 CODESYS 开发系统的插件,用于同步 CODESYS 自动化服务器上的项目并配置 CODESYS 边缘网关。

产品描述

CODESYS 自动化服务器连接器适用于两种使用场景:

项目和应用程序的同步

借助“应用程序存储库”功能,可以在 CODESYS 自动化服务器上管理项目源代码和相关的应用程序。CODESYS 自动化服务器和 CODESYS 开发系统之间的连接由 CODESYS 自动化服务器连接器完成。它使项目可以作为本地工作副本检出,项目更改可以在

CODESYS开发教程4-总线伺服控制

halps的专栏

12-17

8563

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

Codesys冗余配置(基础)

guhvff的博客

10-19

2241

Codesys冗余配置的基础操作步骤

CODESYS开发教程2-设备添加

halps的专栏

12-04

8177

这是一篇写给新手的关于CODESYS开发环境的小白教程,一看就懂......

实例介绍COdesys程序结构

06-01

包含对CODESYS程序结构的讲解,和工程实例以及PPT,Ether_cat的简单配置实例。后期还会继续更新,希望大家关注我的博客,并提出录制意见。

codesys V3.5 sp18安装包-链接地址.txt

05-10

codesys V3.5 sp18安装包

CODESYS 3.5SP4Patch4 Release

01-23

CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Development System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的...

CODESYS 3.5 SP4.zip

04-07

CODESYS 3.5 SP4

如何使用CODESYS V3.5 进行ST编程.docx

05-21

如何使用CODESYS V3.5 进行ST编程; 编程简介CODESYS入门,CODESYS编程简介;

【尺寸检测】基于matlab机器视觉图像目标尺寸测量【含Matlab源码 4087期】.mp4

03-12

Matlab研究室上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白;

1、代码压缩包内容

主函数:main.m;

调用函数:其他m文件;无需运行

运行结果效果图;

2、代码运行版本

Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主;

3、运行操作步骤

步骤一:将所有文件放到Matlab的当前文件夹中;

步骤二:双击打开main.m文件;

步骤三:点击运行,等程序运行完得到结果;

4、仿真咨询

如需其他服务,可私信博主或扫描视频QQ名片;

4.1 博客或资源的完整代码提供

4.2 期刊或参考文献复现

4.3 Matlab程序定制

4.4 科研合作

HTML文件,一个网页特效

03-12

如果带到学校,一定会秀翻全学校。别不信,试试[偷笑]

STM32单片机FPGA毕设电路原理论文报告基于AT89C52单片机CAN总线节点的设计

最新发布

03-12

STM32单片机FPGA毕设电路原理论文报告基于AT89C52单片机CAN总线节点的设计本资源系百度网盘分享地址

codesys v3.5下载

11-08

CODESYS V3.5 是一款功能强大的编程软件,用于工业自动化领域的PLC(可编程逻辑控制器)开发。要进行CODESYS V3.5的下载,可按以下步骤操作:

1. 首先,访问位于官方网站(https://www.codesys.com)的CODESYS官方网页。

2. 在CODESYS官方网页上,选择版本和产品。CODESYS V3.5有多个版本可供选择,包括CODESYS Development System和CODESYS Control System等。根据自己的需求,选择适合的版本。

3. 单击所选版本的下载链接。在弹出的窗口中,可能需要填写一些个人信息,例如姓名、邮箱地址等。

4. 完成个人信息填写后,选择适用的操作系统(例如Windows、Linux等)和合适的软件类型(例如完整版、测试版等),然后点击“下载”按钮。

5. 完成下载后,双击下载的安装文件,按照安装向导的指示进行安装。安装过程中可能需要选择安装位置和接受许可协议等。

6. 安装完成后,打开CODESYS V3.5软件。根据需要,可以创建新项目或打开现有项目。

CODESYS V3.5下载完成后,可以使用软件进行PLC编程、调试和测试等工作。CODESYS V3.5具有友好的界面和丰富的功能库,能够帮助工程师高效地开发和管理PLC应用程序。同时,CODESYS官方网站上也提供了一些教程和示例,供初学者学习和参考。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

孙姬被刘备家暴

CSDN认证博客专家

CSDN认证企业博客

码龄8年

暂无认证

28

原创

38万+

周排名

143万+

总排名

20万+

访问

等级

1956

积分

107

粉丝

149

获赞

65

评论

418

收藏

私信

关注

热门文章

win10+ubuntu16.04双系统,开机出现“Minimal BASH-like line editing is supported”

44886

有关AutoCAD electrical2017启动时报错:缺少驱动程序AceRedist的解决办法

22435

C# 鼠标悬浮mouseHover事件的添加 实现鼠标悬浮在按钮或者控件 显示相关的帮助信息

20155

CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

9665

halcon 外部函数如:disp_message()等外部函数在遇到多个hv_ExpDefaultWinHandle情况下出现调用不正常/错误的情况

9557

分类专栏

ros安装

1篇

树莓派

1篇

树莓派4b

HALCON

7篇

C#

18篇

Windowsform

4篇

ppicturebox控件

autocad electrical

1篇

工业机器人

1篇

cognex

2篇

操作系统安装

1篇

总线控制器

2篇

总线驱动器

2篇

最新评论

有关C#中重写按钮的onpaint函数,实现按钮形状的用户自定义

surperdao:

类库没有system.windows.Form

C# 多线程与委托的疑惑 InvokeRequired==true or false

m0_37677617:

第一次是在线程,不在主界面线程,执行一次 invoke,回到主线程执行 doAdd, 所以第二次是在主线程执行的

康耐视视觉库编程参考(1)Cognex.VisionPro.ToolGroup Namespace

南南11:

你好,想问一下,这个 相机可以哦那个python调用吗

一文读懂halcon 手眼标定的坐标转换

酱香拿钢:

Mx=M1*M2*M3^(-1) 眼在手外是推错了吧

康耐视visionPro 加密狗不在 视觉库就没法用了

orgone:

我也想用

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

CODESYS (V3.5 SP12 Patch)简单应用 第 2篇之单轴简单使用CFC+ST代码(硬件:长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

树莓派4b 4G内存版安装Ubuntu18.04.4+ros_melodic+kubuntu-desktop

康耐视visionPro 加密狗不在 视觉库就没法用了

2022年1篇

2020年1篇

2019年4篇

2018年25篇

目录

目录

分类专栏

ros安装

1篇

树莓派

1篇

树莓派4b

HALCON

7篇

C#

18篇

Windowsform

4篇

ppicturebox控件

autocad electrical

1篇

工业机器人

1篇

cognex

2篇

操作系统安装

1篇

总线控制器

2篇

总线驱动器

2篇

目录

评论 3

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

4 visu、softmotion、附加功能 - CODESYS应用指南

4 visu、softmotion、附加功能 - CODESYS应用指南

CODESYS应用指南

0 引言

1 软件安装

2 基础知识

3 总线的专用设置

4 visu、softmotion、附加功能

4.1 Visu结构组成

4.2 基础元素

4.3 界面框架

4.4 运动控制简介

4.5 轴、凸轮与插补

4.5.1 PTP控制

4.5.2 凸轮控制

4.5.3 插补控制

4.6 配方和报警

4.7 全局变量、保持变量和网络变量

4.8 日期、大小端、特殊功能

日期

大小端

关机

获取序列号

处理变量越界

自定义AXIS REF

共享内存

5 进阶调试

6 实战技巧

7 附录:电气基础

CODESYS应用指南

»

4 visu、softmotion、附加功能

4 visu、softmotion、附加功能

4.1 Visu结构组成

Visuallization字面意思即可视化,可以理解为内置的组态屏。visu可以直接操作plc变量,比外置组态屏方便很多。最常用的是WebVisu,可以通过浏览器本地访问或局域网内另一台PC远程访问。本地用chromium的kiosk模式打开即和TargetVisu效果一致,且配置更自由。故现在很少会用TargetVisu。

浏览器做visu的设置

推荐使用 ungoogled-chromium 作为Chrome的离线、免安装、去更新化方案。创建快捷方式并编辑属性中的目标栏。

若需要窗口模式,使用C:\ungoogled-chromium\chrome.exe --app=http://127.0.0.1:8080 --window-size=1040,808

若需要全屏模式,使用C:\ungoogled-chromium\chrome.exe --kiosk http://127.0.0.1:8080

在做visu前,建议各位读者先有一个设计思路。元素不要用太多的种类,颜色可以丰富一些并用浅色,字体应用黑体或宋体,背景可以用浅色纯色或白色90%透明度叠加的背景图片。不建议使用官方的指示灯、切换开关、码表等元素,因为图标风格不一致会有设计上的割裂感。按钮、指示灯、文字和框架都可以用矩形来做。Style选择Default或Flat Style。一般不建议在一个界面中挤满元素,而是通过分页、分框架的形式构建界面。下图中,从左至右依次为

优秀的设计:颜色搭配较协调,有背景图/背景色,有选单折叠,有用户管理,时间显示,特殊按钮有特殊实现,指示灯清晰,但字体有些小。

中等的设计:有菜单切换,框架架构,但色彩不协调,对比度过高,字体太细,一个框架内元素过多显得比较乱。

不好的设计:颜色较单一且刺眼,按钮分隔不明显,按钮与文本框样式接近无法区分哪些可被点击。

除此之外,您还可以参考 施耐德的HMI设计指南(英文) 。VISU实现起来有一定局限性,例如一般情况下按钮文字颜色是不变的,若变化需要 Color Variable 会增加复杂度。但只要思想不滑坡,还是有解决方案的。以按钮举例,设置为:

尺寸115*40,圆角特定值10像素,边框宽度2像素

Normal State中Frame color使用RGB色(159,160,164),Fill Color纯白。Alarm state分别是(135,210,0)和(159,160,164)。

使用渐变色(Use gradient color),颜色分别为(255,255,255)和(220,220,220),方向Horizontal

以下全部是使用圆角矩形实现,分别是普通按钮未触发、普通按钮触发、禁用按钮未触发、禁用按钮触发、指示灯未触发、指示灯触发。

我们可以在Application下添加Visualization页面,添加第一个visu时会自动添加Visulization Manager。添加visu时会有提示是否勾选VisuSymbols,这是系统内置的一些SVG图片库,可根据需求勾选。默认情况下visu不支持中文,下载后会出现乱码,可在Visualization Manager中勾选Use unicodestrings即可。

添加的Visu默认是一个Visualization,可以理解为一个页面。如果需要做对话框可以改变visu属性为dialog。在属性中也可以设置visu的页面大小,该大小为画布大小,建议使用特定值而不是默认的自动检测。实际显示画布还会根据缩放选项缩放,但一般建议WebVisu的缩放选项也设为固定大小(Fixed)。

visu编辑界面右侧会有Visualization Toolbox(没有的话可以在View中选出来),将元素拖放到画布上即可添加。用的最多的是Basic中的矩形、图片和框架。在制作背景、图片按钮或选框时,我们还要在项目中插入ImagePool和TextPool,它们用于给图片或文本分配ID,即可在Visu中静态或动态引用。

4.2 基础元素

矩形:矩形(或圆角矩形)是最常用的元素,它们既可以作为指示灯,又可以作为按钮,还可以显示文字、信息,亦可以作为分隔线和下拉菜单选框使用。

当作为双色切换的指示灯时,编辑Colors下的Normal state和Alarm state下的Fill color,建议一个改为LightGray,另一个改为LightGreen。并将Apperance下的Line style改为Invisible(或Hollow)。再在Color variables的Toggle color关联变量即可。之后所有的指示灯都可以复制这个元素,只修改关联的变量。

当作为按钮时,可将边框改大以与文本区分,在Texts中输入文字作为按钮标识,并在Input configuration中关联动作。默认指示状态关联Tap/Toggle,可在Color variables的Toggle color中取消关联。一般来说,特殊按钮使用矩形或图片来做,标准按钮使用Button来做。

当作为数值显示时,根据文本内容可以用%s(文字)、%d(整数)、%.2f(小数)并在Text variable中关联变量,即可作为变量显示框。此外,还可以关联Text list并使用Dynamic texts制作中文动态指示。关于文本占位符可以参考 Placeholders with Format Definition in the Output Text 。

当作为数值输入时,先创建一个数值显示,再在OnMouseClick中添加Write Variable即可,程序中可对输入内容二次校验及限制。数值输入也可以使用Text Field控件并使能阴影效果,与数字显示区分。

除了矩形外,常用的还有Button(按钮),Image(图片),Frame(框架),Group Box(组合框),Slider(滑动按钮),Line(分割线)等。

背景图片

背景图片可以在visu空白处右键-Background中选择,这样选出来的背景图片不可以被鼠标选中,避免误操作。在用图片做背景时,建议图片尺寸和visu尺寸一致以避免缩放。

4.3 界面框架

我们可以用多个相同尺寸visu切换的方式来架构应用,这适用于较少的页面。添加按钮后,在OnMouseClick中选择Change Shown Visualization即可。

在制作十多个页面以上的visu时,按钮切换的方式就会显得复杂了,这时候我们可以用框架(Frame)甚至是多个框架组合来做复杂的界面。作为frame时,建议预先规划frame尺寸,并在各个frame的属性中使用特定尺寸的画布大小。需要切换Frame时,我们可以创建一个变量关联到Switch frame variable中,然后就可以在程序里控制展示的Frame。具体到按钮上,可以选Execute ST-Code,然后将变量增加、减小或设置固定值即可。

4.4 运动控制简介

运动控制(SoftMotion)是CODESYS的一大特色,SoftMotion通过库中的功能块计算每个周期轴应当处在的位置,并通过总线发送给驱动器以达到实时控制的目的,驱动器工作在同步位置模式(CSP)下。除了标准的SoftMotion外,CODESYS还支持SoftMotion Light,发送非实时的指令控制,驱动器工作在PP、PV等模式下。SoftMotion Light还可以通过OpenSML库或自己写逻辑实现,不需要授权,故实际应用较少。

运动控制的授权会在各个授权中标明是否含有,例如树莓派的标准授权中不含运动控制,若需要使用轴或轴组功能则需要额外购买授权,但其可以通过自定义轴结构体并手动映射变量规避,需要一定的编程能力。详细请看这里。

通常情况下,我们谈论的SoftMotion都是控制EtherCAT总线伺服。也有少量伺服跑在CanOpen模式,它们的通信模式是一致的,操作类似。我们先添加一个EtherCAT_Master_SoftMotion总线设备,在其下添加 SGD7S-xxxxA0x EtherCAT(CoE) SERVOPACK Rev8.06_SM(安川EtherCAT总线伺服),即自动加上了一个轴对象。此外,还有一部分驱动器设备名后不带_SM的不会自动加轴对象,要手动在设备上右键-添加SoftMotion CiA402 Axis,例如汇川SV630N伺服。但一般来说,自动加轴和手动加轴使用上是一致的。

Online Config模式

Online Config模式适用于教学或轴的试运行,只需要添加完设备,物理接线连接好即可。通过点击 按钮,会自动编译一套带有基础运动控制功能和VISU的程序下载并运行。完成后,轴对象中的Commissioning页可用于手动上使能、移动等基础操作,可用于调试和诊断。

调试好基础运动后,我们就可以在程序中创建MC_Power、MC_MoveAbsolute等功能块的实例,并将程序放在EtherCAT Task任务下,即可控制轴的运动。

输入助手

在空白处右键-输入助手(Input Assistant)中的实例调用(Instance Calls)选择需要插入的功能块实例,即可自动插入所有功能块的输入输出变量。

4.5 轴、凸轮与插补

在上一小节中我们插入了 SM_Drive_ETC_Yaskawa_SGD_Sigma7_1 这个轴对象,我们可以对这个轴做上电、运动控制,运动控制主要分为以下三大类:

PTP控制:使用MC_MoveAbsolute、MC_MoveVelocity等功能块直接控制轴运动,例如旋转工作台、传送带等。

凸轮控制:使用MC_CamIn参考CAM表控制,使用MC_GearIn进行按比例的耦合传动控制,适用于凸轮、挺杆、物料传动等。

插补控制:使用SM3_CNC库中的功能块,读取NC文件并按照G代码运行,可用于简单的双、三、四轴插补数控系统,需要CNC授权。

插入轴对象后,可以在轴的Scaling/Mapping页设置速比,常用的设置是16#1000000(16777216脉冲/转)和16#40000(262144脉冲/转),这里的脉冲都经过驱动器换算,有的驱动器反馈实际编码器值,即对应24位编码器和18位编码器。有的驱动器还会除以一个常数比如除以16(16#10)变为16#100000(1048576脉冲/转),一般来说使用24位编码器都会除以16。设置好脉冲和电机转一圈的关系后,我们就可以根据电机转一圈实际移动的距离(由丝杆螺距或齿轮分度圆半径计算得出)来填具体的减速比。填完之后,轴对象的fSetPosition、fActualPosition等参数就是运动结构实际的位置,通常以毫米或度为单位。

圆形无限回转的设置

General页中可以选择轴的模式是旋转(Modulo)或线性(Finite),这部分翻译容易造成误解。当轴驱动的对象为旋转工作台或传送带时,通常仍选择运动模式为线性,这样不会有最短路径的问题。一般来说,只有使用凸轮或电子齿轮时会将轴的运动模式设为旋转。

4.5.1 PTP控制

在使用PTP控制之前,我先简单介绍一下控制轴运动的两种基本方式(CiA402标准)。

驱动器使用PP(Profile Position)、PV(Profile Velocity)等模式为驱动器控制,EtherCAT总线不需要实时性,只要能把报文发到即可。驱动器的Modes of Operation为1或3,具体的位置控制在驱动器内实现,速度曲线一般为梯形斜坡加驱动器内置的Smooth平滑功能。

驱动器使用CSP(Cyclic synchronous position mode),EtherCAT总线需要保证实时性,驱动器的Modes of Operation为8,位置控制主体在PLC内实现,速度曲线在CODESYS的轴对象上选择,默认为Trapezoid(一次斜坡,或称梯形)、SIN2(Sin2曲线,是S曲线的一种,不需要设定加加速度) 、Quadratic(二次曲线,标准S曲线,需要设定加加速度)三种。由于Sin2曲线或更高阶的速度曲线打断后可能会有加加速度的突变,一般用的最多的为梯形和二次。对于运动控制来说,阶数越高运动越平稳,但有个极限值,大多数运动到2次以上意义就不大了,因为驱动器控制还是会带来位置差异。实际应用中最常规的为2次(3阶导数)曲线,最高的的为5次(6阶导数)曲线。

我们常说的SoftMotion是用CSP模式,位置在PLC内计算并按照实时周期发送给驱动器,驱动器的位置反馈只用于判断跟随误差,不会带入到位置的计算中。即使是用MC_MoveVelocity控制速度的模式,实际发送给驱动器的还是下个周期的目标位置。

一个简化的位置控制代码如下,给定fTargetPosition,再给xExecute即可开始运动。对于频繁变更位置的场景,可以将xExecute不停取反:

VAR

mcp:MC_POWER;

mcm:MC_MoveAbsolute;

mcs:MC_Stop;

xExecute: BOOL;

fTargetPosition: LREAL;

rSpeed: LREAL:=30;

rAcc: LREAL:=20;

rJerk: LREAL:=100;

biEmergencyStop:BOOL:=TRUE;

END_VAR

mcp(Axis:=AxisT,Enable:=TRUE,bRegulatorOn:=TRUE,bDriveStart:=TRUE);

mcm(Axis:=AxisT,Execute:=xExecute,Position:=fTargetPosition,Velocity:=rSpeed,Acceleration:=rAcc,Deceleration:=rAcc,Jerk:=rJerk);

mcs(Axis:=AxisT,Execute:=NOT biEmergencyStop AND mcp.Status,Deceleration:=rAcc,Jerk:=rJerk);

4.5.2 凸轮控制

电子凸轮由一个虚拟主轴按一定速度做匀速运动,从轴按照设定的凸轮位置曲线做重复运动,凸轮曲线(Cam Table)可定义主轴在任意角度时从轴的位置、速度和加速度以达到一个平滑的运动曲线。凸轮曲线不止可用于凸轮,少数情况下也可以用挺杆功能来实现挺杆运动,但由程序判断凸轮主轴角度更易实现挺杆功能。此外,还可以将从轴也定义为虚轴,自定义缩放比例或自定义算法,再用SMC_FollowPosition直接控制轴的位置运动。

凸轮控制不同行业有不同的控制方法,此处不再示范代码。在实际应用中,需注意算法连续性、启停和异常时的加耦和解耦操作。

4.5.3 插补控制

CODESYS声称支持6轴插补,但大多实际应用只用到2轴、3轴插补,高于3轴需要做TCP程序,复杂度提升很多。这里简单说一下三轴龙门的程序结构。插补运动时,XYZ坐标根据G代码指示运动,选择不同的G代码文件即可做不同的复合运动。一个支持插补运动的PLC由以下部分组成:

文件选择和展示(PRG_FileProvider)

路径预规划(CNC_PreparePath)

路径执行(CNC)

M代码(PRG_MFunction)

主程序(PRG_Main)

其中,核心代码在路径预规划和路径执行中。当加载完程序并启动后,路径预规划模块开始执行。通过SMC_ReadNCFile读取文件,从ncprog输出可获取到原始程序的文字内容。紧接着,我们通过SMC_NCDecoder功能块对ncprog进行解码,获得poqDataOut输出,这是一个指向SMC_OUTQUEUE的指针,之后的数据处理都围绕poqDataOut来做,相当于一段数据从poqDataIn经过功能块实例流向poqDataOut。

之后,我们需要对路径进行粘合,否则每执行一行代码所有轴都会完整启停。通过SMC_SmoothPath功能块对SMC_NCDecoder的数据进行处理并写入到自己的poqDataOut中。最后,通过SMC_CheckVelocities检查路径中无法拟合的急转弯,将这些转弯部分的速度降至0。路径预处理即完成。

路径预处理和路径执行是可以同时做的,对于上千行的G代码文件,只要有一部分预处理完成的数据即可边处理边执行。在CNC程序中,我们首先使用MC_Power功能块对X、Y、Ys、Z各轴进行上电、复位等操作,当各轴状态均正常后,通过SMC_Interpolator插补器对poqPath进行插补,得到一组数据输出,该输出为实时的各轴预期位置。之后,通过SMC_TRAFO_Gantry3将各轴数据分解为X、Y、Z三个方向,再用SMC_ControlAxisByPos对各轴进行控制。

具体的G代码相关解释可以参考 DIN 66025 Fundamentals

4.6 配方和报警

配方(Recipe Manager)常用于存储多组可变参数表,相当于自定义一个结构体存在保持变量表里。但与保持变量不同的是,配方可以由程序控制加载、保存,并可以保存成多个文件,可以随意加载并修改。多用于参数较多且易变的设备中。一个项目中只能有一个配方管理器,但可以有多个配方。配方中的变量必须已在程序中被定义,一般会定义一个结构体并在保持变量中声明。在批量生产的设备中,配方还可以用于保持变量的文件形式导入和导出(使用LoadAndWriteRecipe从文件读取,ReadAndSaveRecipe写入到文件),相对于保持变量管理器来说更易理解和操作。

报警(Alarm Configuration)是大多数项目用不到的功能。在一些中大型或有记录需求的项目中很有用。通常勾选Archiving,并创建AlarmGroup后,可在AlarmStorage中定义保存路径,报警将会自动保存成SQLite文件,可用DB Browser for SQLite打开查看,但更常用的是直接登陆上设备,并在AlarmStorage上右键-CSV Export of Alarm Storage,后者会自动转换时间格式并添加Message信息。

Data Sources Manager可用于多个PLC的报警归纳,较少使用。我们更推荐使用NVL(Network Variable List)实现变量传递,有可控周期和更好的扩展性。

4.7 全局变量、保持变量和网络变量

编译修饰符

创建任意变量表时默认添加{attribute 'qualified_only'}修饰,该修饰会导致引用变量时要带着变量表名称,例如 GVL.iTest 或 PersistentVars.iTest2 。可根据需求移除,移除后不需要带变量表名称即可引用。

POU中VAR和END_VAR之间定义的变量为局部变量,可以在POU中读写,外部只可以读取不可以写入。如有少量写入需求,可以定义在VAR_INPUT、VAR_IN_OUT下。多数时候公共变量我们会创建一个全局变量表GVL(Global Variable List),可以从任意POU、FB中读写访问。

通过创建保持变量表(Persistent Variables),变量可以在每次关机时自动保存,并在下次开机时自动加载。CODESYS仅支持一个保持变量表,您也可以在POU里定义VAR PERSISTENT(注意这里两个单词间没有下划线),也可以自动保持变量。但该方式最终编译仍然是链接到PersistentVars中,故建议只在PersistentVars中定义保持变量。

保持变量还可以通过顶层模块(View-Module打开模块列表,添加库选择AC_Persistence,添加顶层模块PersistenceManager)来自定义保存路径、保存时间和保持变量的转入转出。但由于复杂度太高,一般采用配方Recipe或自己写CSV文件读写替代。

网络变量NVL(Network Variable List)适用于一个网段下两台或多台设备的通讯,由CODESYS实现底层协议,我们定义一个发送者和一个接收者即可。如果需要双向通讯,则需要在两个设备下各自创建发送和接收,多设备可以组环网。通常我们会在一个项目中创建多个设备,并在POU页定义公共结构体,再在网络变量中引用结构体,即可实现环网、自适应的网络变量。相对于Modbus TCP或其他基于TCP的总线来说,网络变量可以近乎无限制的创建任意变量表,没有大小端和地址问题,比较方便。

4.8 日期、大小端、特殊功能

日期

Codesys默认是从系统读取时间,系统依赖于RTC时钟。由于各厂家RTC时钟设置有差异,我们不去讨论设置时间,而是看看如何读取时间。需要在库管理器中添加SysTime和SysTypes2 Interfaces库。

VAR

udiUtcTime:UDINT;

Result:RTS_IEC_RESULT;

udiUtcTimeLocal:UDINT;

dtDateAndTime:DT;

sDateAndTime:STRING;

sDate:STRING;

sTime:STRING;

END_VAR

udiUtcTime := SysTimeRtcGet(Result);//获取时间

Result := SysTimeRtcConvertUtcToLocal(udiUtcTime, udiUtcTimeLocal);//转换为UTC时间

dtDateAndTime := UDINT_TO_DT(udiUtcTimeLocal);//将时间从udint转换为DT

sDateAndTime := DT_TO_STRING(dtDateAndTime);//将时间从DT转换为STRING,将自动补0

sDate := MID(sDateAndTime , 10 , 4);//获取当前日期,格式2001-01-01

sTime := RIGHT(sDateAndTime , 8);//获取当前时间,格式00:00:00

大小端

在和西门子或Modbus设备通讯时容易遇到大小端问题,一个32位的数据会拆分成4个byte,如果发送方是ABCD,则接收端可能是CDAB,这就是大小端问题。

大小端有很多种解法,例如创建数组关联每一位、创建联合体等,在这里我提出一个较简单的写法:

FUNCTION FUN_EC : DWORD

VAR_INPUT

dwInput:DWORD;

END_VAR

FUN_EC:=SHL(dwInput,16) OR SHR(dwInput,16);

该方法只适用于DWORD,如果您使用的变量是DINT或REAL,则外部还需要转换,例如:

aa := DWORD_TO_DINT(FUN_EC(bb));

cc := FUN_EC(DINT_TO_DWORD(dd));

关机

所有的带系统的PLC,如Linux、WES7、WIN10系统,都需要正常的关机流程或配备UPS模块。不带系统的或经过OEM厂商特殊优化的Linux除外。如果没有优化过系统断电,则需要手动关机。为了不破坏用户体验,一般会在界面上写一个按钮或关联UPS的输出变量来自动关机。

Windows系统(ControlWin和ControlRTE一致):在库管理器中添加SysProcess和SysTypes2 Interfaces库,在程序中使用:

VAR

xShutdown: BOOL;

Result: RTS_IEC_RESULT;

END_VAR

IF xShutdown THEN

SysProcess.SysProcessExecuteCommand('shutdown -s -t 0', ADR(Result));

xShutdown := FALSE;

END_IF

Linux系统:编辑配置文件,在[SysProcess]下改为Command=AllowAll,在库管理器中添加SysProcess和SysTypes2 Interfaces库,在程序中:

VAR

xShutdown: BOOL;

Result: RTS_IEC_RESULT;

END_VAR

IF xShutdown THEN

SysProcess.SysProcessExecuteCommand('sudo shutdown now', ADR(Result));

xShutdown := FALSE;

END_IF

获取序列号

如果系统对客户开放,则第三方也可以拷出来编译后的二进制文件运行(但不可修改)。若有加强保密的需要,可添加序列号校验。该方式不是绝对的安全,编译后的二进制文件只有CRC校验,没有混淆加密,相对于运行时更易被破解。在库管理器中添加SysTarget和SysTypes2 Interfaces库,在程序中:

VAR

Result: RTS_IEC_RESULT;

psSN: POINTER TO STRING(255);

sSN : STRING(255);

maxLen: DINT := 255;

END_VAR

IF psSN = 0 THEN

Result := SysTarget.SysTargetGetSerialNumber(ADR(psSN),ADR(maxLen));

END_IF

sSN := psSN^;

处理变量越界

单圈绝对值编码器转一圈读数会回零,在驱动中会用已记录的圈数乘以一圈脉冲量再加上当前脉冲量来获取位置。变量也是类似,一个32位的变量会越界,越界结果是回零或正/负极限。根据突变规律可以将32位扩展到64位,就不会越界了。同样的道理也可以应用在16位扩展32位上。

FUNCTION_BLOCK FB_PosCalc

VAR_INPUT

In:DINT;

xReset:BOOL;

END_VAR

VAR_OUTPUT

Out:LINT;

END_VAR

VAR

udiTemp:UDINT;

byTemp:byte;

byTempOld: BYTE;

diTemp:DINT;

udiOffset: UDINT;

END_VAR

//越界后正负不好判断,转为UDINT后判断越界

udiTemp:=DINT_TO_UDINT(In);

//正向越界(11xxx=>00xxx),当前值00,旧值11。反向越界(00xxx=>11xxx),当前值11,旧值00。

byTemp.0:=udiTemp.30;

byTemp.1:=udiTemp.31;

IF byTemp = 0 AND byTempOld = 3 THEN

diTemp:=diTemp+1;

ELSIF byTemp = 3 AND byTempOld = 0 THEN

diTemp:=diTemp-1;

END_IF

byTempOld:=byTemp;

//高位移位,正负依然有效(最高位)。低位借用当前值减偏置值

Out:=diTemp;

Out:=ROL(Out,32);

Out:=Out+udiTemp-udiOffset;

IF xReset THEN

udiOffset:=udiTemp;

diTemp:=0;

END_IF

自定义AXIS REF

SoftMotion包含很多内容,主要有MC_xxx功能块用来控制轴;轴设备用来修改减速比,限位等参数;visu用来online config以及通用的界面展示。SoftMotion的授权是基于轴这个设备的,即授权检测在设备上而不是在功能块中。这样,我们可以创建一个变量,类型为AXIS_REF_SM3,对于库中的程序来说是一个实轴对象。要让这个对象使能并正常运行,我们需要做一些操作,如下程序。

VAR

Axis1:AXIS_REF_SM3;

END_VAR

Axis1.bCommunication:=TRUE;

Axis1.bRegulatorOn:=TRUE;

Axis1.bDriveStart:=TRUE;

Axis1.bRegulatorRealState:=TRUE;

Axis1.bDriveStartRealState:=TRUE;

IF Axis1.nAxisState=0 THEN

Axis1.nAxisState:=3;

END_IF

Axis1.eRampType:=2;//速度曲线类型

Axis1.fSavePosition:=Axis1.fSetPosition;

Axis1.fCycleTimeSpent:=0;

Axis1.fTaskCycle:=0.001;//任务周期

之后,我们就可以用MC_MoveAbsolute等功能块的实例控制轴运动,此时相当于是创建了一个不需授权的虚轴。虚轴要和实轴连起来还需要做一些补丁,可以参考OpenSML,对驱动器上使能并工作在CSP模式,初始化位置等操作。需要注意的是,和标准的实轴对比,有以下几个缺点:

无法设定减速比,需要自己换算并应用到TargetPosition上。

需要自己写报警,没有位置反馈时检测不到跟随误差。

特殊操作如回参、力矩模式可能会有问题。

共享内存

共享内存 (Shared memory architecture)可以在本机,注意必须是同一CPU上,可以共享一段或多段内存地址,一般由PLC共享两段,一段只读,一段只写。C#或C++应用去访问,速度极快,瓶颈可以覆盖CODESYS的扫描周期,常用于外置算法处理。Shared Memory可以参考 CODESYS官方示例 。这里给出一个官方没有的树莓派(Linux)下C++的应用,若使用Geany,编译指令g++ -Wall -o "%e" "%f" -lrt;若使用Qt Creator,pro文件中LIBS += -lrt。请注意要用管理员权限运行Geany/QtCreator,否则报Segmentation fault。

#include

#include

#include

#include

#include

#include

#include

struct DataExchange {

int i1;

int i2;

};

int main()

{

struct DataExchange *pRead, *pWrite;

char sSharedMemReadName[100] = "_CODESYS_SharedMemoryTest_Write";

char sSharedMemWriteName[100] = "_CODESYS_SharedMemoryTest_Read";

int fdRead = shm_open(sSharedMemReadName, O_CREAT | O_RDWR, S_IRWXU | S_IRWXG);

printf("Shared Memory Read: %s %d\n\n",sSharedMemReadName, fdRead);

ftruncate(fdRead, sizeof(*pRead));

pRead = (DataExchange*)mmap(0, sizeof(*pRead), PROT_READ | PROT_WRITE, MAP_SHARED, fdRead, 0);

close(fdRead);

int fdWrite = shm_open(sSharedMemWriteName, O_CREAT | O_RDWR, S_IRWXU | S_IRWXG);

printf("Shared Memory Write: %s %d\n\n",sSharedMemWriteName, fdWrite);

ftruncate(fdWrite, sizeof(*pWrite));

pWrite = (DataExchange*)mmap(0, sizeof(*pWrite), PROT_READ | PROT_WRITE, MAP_SHARED, fdWrite, 0);

close(fdWrite);

do

{

sleep(1);

printf("pRead->i1: %d pRead->i2: %d pWrite->i1: %d pWrite->i2: %d\n",

pRead->i1, pRead->i2, pWrite->i1, pWrite->i2);

printf("Press 'Enter' to increment values or 'q' and then 'Enter' to quit\n");

pWrite->i1++;

pWrite->i2--;

} while (getchar() != 'q');

munmap(pRead, sizeof(*pRead));

shm_unlink(sSharedMemReadName);

munmap(pWrite, sizeof(*pWrite));

shm_unlink(sSharedMemWriteName);

exit(0);

}

Previous

Next

« Previous

Next »

CODESYS Softmotion(一)功能介绍_axis_ref_sm3-CSDN博客

>

CODESYS Softmotion(一)功能介绍_axis_ref_sm3-CSDN博客

CODESYS Softmotion(一)功能介绍

我什么都布吉岛

已于 2022-04-05 11:06:02 修改

阅读量1.6w

收藏

45

点赞数

10

分类专栏:

# PLCopen

文章标签:

CODESYS

Softmotion

于 2022-03-20 00:53:29 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_39258979/article/details/123578425

版权

PLCopen

专栏收录该内容

3 篇文章

16 订阅

订阅专栏

一、CODESYS Softmotion简介

可编程逻辑控制器负责逻辑控制。P西门子(SIMATIC)、罗克韦尔(Allen-Bradley)、ABB(AC500) 都是PLC;机器人控制器重点在于机器人运动控制,ABB 公司的IRC5、KUKA的KRC4、KEBA伺服控制器、FANUC的RobotR-30iA。

1.1 功能

POU(Programming Orignization Unit)是符合PLCopen的库,实现单轴和多轴横向协同运动电子凸轮传动CNC控制轻松开发多轴运动控制器支持PLCopen Part4标准功能块可通过集成凸轮编辑器对凸轮功能进行图形化规划

2.2 特点

运动控制变成独立于总线和驱动器支持多标准驱动器CODESYS编程环境中即可配置总线和驱动运动控制功能块POU库集成编辑器中设计电子凸轮支持G代码规划和编辑复杂动作PLCopen Motion Part4和轴组编辑器开发多轴机器人控制器库函数集。包括集合数据处理(路径预处理)、样条曲线和CNC刀具位置校正等包含丰富的交换库(用于备份和交换数据用),用以支持不同运动学的工业机器人的开发,例如Delta机器人,Scara机器人,Portal机器人以及龙门式机器人等。支持在线的CAM编辑器和CNC编辑器,机器操作员可以图形化的方式创建和编辑CNC程序

CODESYS将运动控制和逻辑控制合二为一,主要由编程系统和实时系统,形成了Softmotion(CNC)工具包,可以实现单轴运动到复杂CNC、机器人应用。

2.3 内容

CODESYS SoftMotion Basic:主站和从站的PLC POU库工具包及CAM编辑器和可视化编程模板CODESYS SoftMotion CNC+ Robotics:除了CODESYS SoftMotion 中一些可用的库外,还包含CNC功能的POU库和运动学交换库和对应可视化模板,还支持PLCopen part4编程,并提供三位CNC编辑器和轴组编辑器

2.4 应用

三足机器人:并联运动(转换功能块);并联可视化;EtherCAT伺服驱动配置。 标签机/凸轮应用:支持CAM编辑器;基于PLCopen的功能块;可视化功能;用作主引脚的虚拟轴;CANopen伺服驱动。 四轴码垛机器人(四个旋转轴,一个水平夹具装置)。 六轴通用机器人(六个旋转轴,末端TCP位姿控制)。

二、如何使用CODESYS SoftMotion?

使用Softmotion首先要解决设备实时性问题。这里我用了CODESY Control for Raspberry Pi SL设置树莓派为实时设备。 在Windows根据不同需求可以选择不同的Runtime:

2.1、CODESYS SoftMotion RTE SL产品

1.1 CODESYS Runtime SL 产品家族介绍

目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个现场总线: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。

1.2 SoftMotion 基本框架

最左边表示软件层别。最右边是其层别描述:

CODESYS层,运动设计与配置;用户程序层,规划运动与执行;编写运动程序时,可能需要用到库SM3_Basic SM3_CNC和SM3_Robotics,还有一个非常重要的轴接口AXIS_REF_SM3Runtime层,驱动器接口,虚轴、位置闭环,最底下是镜像CANopen等底层总线;

上图中,

SM3_Basi:所有SoftMotion应用程序基本库,符合PLCopen标准第1、2部分,可以控制单轴或者两个轴(电子凸轮和齿轮)的主动和从动运动。SM3_CNC:基于SM3_Basoc库。除了运动学变换功能块外,还提供了轨迹生成、路径预处理和执行所需要的所有POUSM3_Robotic:包含PLCopen第四部分有关机器人技术功能块,其中SM_Transformation库包含支持的运动学并转换

SM3_Basic中含有驱动器接口,负责IEC程序与驱动器之间的通信。对于支持的驱动器,CODESYS SoftMotion提供了此驱动器接口的库。

驱动器配置界面: 上图是用户驱动器配置界面,它用来设置驱动器硬件的结构和配置,CODESYS将会创建一个IEC功能块代表驱动器。用户无需任何额外操作就可以以驱动器通信。

上图是CAN编辑器,图形化或者表格形式描述凸轮,之后生成凸轮数据结构和实例,应用程序可以通过POU访问它。

上图是CNC编辑器。文本编辑器或者图形编辑器生成CNC路径。

上图是机器人轴组配置界面。轴组定义了几个机械相关轴之间的关系,使用轴组配置器,可以选择和配置使用的运动学,创建对应的机器人模型。

1.3 PLCopen简介

就和STL于C++一样,接口相同但是不同平台实现不同,CODESYS运动库就是其中的一个比较好的实现。

PLCopen定义轴的状态机: Synchronized Motion主从齿轮的时候会用上的东西。

下面是Codesys的符合标准实现的功能块: 同时,CODESYS还定义了电机轴接口:AXIS_REF_SM3,用户在界面上进行的操作其实就是在修改AXIS_REF_SM3实例,或者其派生。如。轴的类型、限位、速度曲线类型、动态限制和减速比等。

如设置减速比:

优惠劵

我什么都布吉岛

关注

关注

10

点赞

45

收藏

觉得还不错?

一键收藏

知道了

2

评论

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品1.1 CODESYS Runtime SL 产品家族介绍目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。对于Windows系统,根据需求选择对应的Runtime:RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议:还可以选择可选的功能(Single License):RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。1.2 RTE的下载和安装在官网http://codes

复制链接

扫一扫

专栏目录

CoDeSys-SoftMotion-运动控制中文编程手册,codesys运动控制指令,PLC

09-10

从网上下载的Codesys相关的运动控制部分的编程手册,用于进一步了解Codesys

CoDeSys_SoftMotion_运动控制中文编程手册

01-18

CoDeSys_SoftMotion_运动控制中文编程手册.pdf

2 条评论

您还未登录,请先

登录

后发表或查看评论

codesys 任务配置

最新发布

xi_ri的博客

01-14

396

4状态:选一个BOOL量触发任务,bool为1一直执行,为0则不执行 (满足条件才执行的pou)3事件:可以选择一个变量来触发任务,比pou里面的BOOL变量 (可以用于停止程序)state 状态。codition 条件。同一个pou可以被不同任务类型的任务调用。coheretn 连惯。同一个变量名可以被不同的pou使用,configuration 配置。2惯性滑动:不能设定时间,一直循环。1循环:可以设定时间循环。

codesys【虚轴】

cfqq1989的博客

09-21

1505

编码器,虚轴,实轴。

轴axis操作 举例

是鲤鱼啊

06-22

347

import numpy as np

a = np.random.randn(2,3,4) #(2,3,4)

b = np.expand_dims(a, 0) #(1,2,3,4)

c = np.append(1 - b, b, axis=0) #(2,2,3,4)

d = np.append(1 - b, b, axis=1) #(1,4,3,4)

e = np.append(1 - b, b...

codesys【CNC】SM3_CNC,数控,G代码解析

cfqq1989的博客

05-23

5547

中型PLC,且带库(3.5.6支持离线仿真)

运动控制很难搞,Codesys解烦恼-----softmotion实现单轴控制的编程及可视化

qq_19979629的博客

05-18

1万+

Codesys的softmotion可以实现运动控制,支持Ethercat,canopen等主流的总线,可以实现单轴运动控制,也能通过电子凸轮,CNC等功能实现复杂的多轴同步控制。本文主要介绍通过Codesys实现简单的单轴控制,理解和学习绝对定位和相对定位的控制方法。

axis(轴)

qq_44186052的博客

01-18

1738

若一个矩阵A的shape为[2,5,4]

axis=0 将2去掉,取A的[:,5,4]

axis=1 将5去掉,取A的[2,:,4]

axis=2 将4去掉,取A的[2,5,:]

axis=[1,2] 将2,5去掉,取A的[:,:,4]

在numpy与torch的求和函数,mean函数中经常用到axis与keepdims参数

keepdims(保持维度)参数解释:

1.keepdims=True; 将aixs中的维度改成1

ex:axis=0,keepdims=True,A取:[1,5,4].

汇川中型PLC使用ST语言基础

热门推荐

花开莫与流年错_的博客

07-02

3万+

中型PLC使用基础汇报:https://pan.baidu.com/s/1UmbaMECPd0oYZPm70rYKbg

初始化

// IO初始化

IO_point := ADR(START_IO);

// 当前指针类型每次复位8个位,复位START_IO开始的5*8个位

FOR i := 0 TO num_IO BY 1 DO

IO_point^ := 0;

IO_point :=...

TwinCAT3 PLC多轴编程的方法

woshigaowei5146的博客

07-16

5914

测试共有13个轴,前10个轴包含基本功能,后3个轴包含独有功能。

方法一

定义每个轴的基本功能,包括上电、下电、走相对、走绝对、读位置、读状态、复位、停止等。

在Axis_Base_PTP中定义变量:

FUNCTION_BLOCK Axis_Base_PTP

VAR

REF: AXIS_REF;

mcMoveRela: MC_MoveRelative;

mcPower: MC_Power;

mcStop: MC_Stop;

mcMoveAbs: MC_MoveAbsolute;

mcRese

倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何配置虚拟轴 TC3

acetaohai123123的博客

10-17

5059

在Motion上添加一个NC Task

 在Axis上右击添加一个轴,类型为Continuous Axis

 在PLC上右击添加新项,然后添加一个PLC项目

 在引用中添加TC2_MC2的库引用

 添加一个全局的变量,定义AXIS_REF变量类型

 重新编译一下,然后在Settings中Link To PLC,选择刚才的全局变量

codesys库函数说明

05-23

codesys编程常用库函数说明包括模拟,标准库,pwm库等五个库

CoDeSys_SoftMotion_V23_E.rar_CoDeSys_SoftMotion_codesys p_codesy

09-23

本文章介绍了codesys3.2的应用及样例等

03-08-07 CODESYS softmotion -吕鑫.pdf

09-08

CoDeSys Softmotion

CODESYS_SoftMotion运动轴函数手册

12-13

CODESYS_SoftMotion运动轴函数手册

CODESYS运动控制手册

05-30

CODESYS运动控制介绍,适用于该行业的应用工程师,深入了解SOFTMOTION相关参数。

codesys教程

12-28

CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言...

合信Comotion培训资料Codesys

09-20

合信许老师撰写的PPT资料,供学习分享,写的比较详细,如有侵权请联系我。

codesys softmotion

03-16

CODESYS SoftMotion是一种运动控制软件,用于控制机器人、自动化设备和生产线等。它提供了高级的运动控制功能,包括轴控制、插补、同步和多轴协调等。CODESYS SoftMotion还支持多种编程语言,如ST、C、C++和Python等,使用户可以根据自己的需求进行编程。它是一种功能强大的软件,可以帮助用户实现高效的运动控制。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

我什么都布吉岛

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

298

原创

3万+

周排名

2万+

总排名

75万+

访问

等级

5443

积分

497

粉丝

641

获赞

127

评论

3906

收藏

私信

关注

热门文章

Socket的学习(一)什么是Socket?

107358

(二)五次多项式轨迹规划

26541

关于C/C++的换行

23273

VSCODE(八)launch 调试与运行

19944

Socket的学习(二)AF_UNIX实现本地通信

17442

分类专栏

工业机器人

4篇

自动控制原理

2篇

机器人仿真

1篇

运动规划

10篇

ROS操作系统

15篇

PLCopen

3篇

解析几何与线性代数

高等数学

2篇

解析几何

5篇

线性代数

41篇

编程语言

3篇

Python

11篇

C++

66篇

Effective C++

5篇

Socket库

4篇

QT

15篇

线程库

13篇

进程间通信

5篇

Leetcode

2篇

设计模式

1篇

Linux操作系统

40篇

版本管理工具

5篇

编译工具

38篇

最新评论

Eigen库学习(三)Matrix和vector算术运算

wubing830426:

我想要2个vector中每个元素各自相乘返回一个新的vector,应该怎么操作?

如何画一个算法流图?

巨龙之路:

感谢作者

QCustomplot(五)QCPAxisRect进行子绘图

zwl773993221:

参考这篇,然后再按我说的,就搞定了【QCustomPlot 多个坐标系 - CSDN App】http://t.csdnimg.cn/5uCyX

QCustomplot(五)QCPAxisRect进行子绘图

zwl773993221:

已经实现,其实很简单,就有一点比较奇怪,最后我也没有弄明白,就是窗帘跟随的对象(比如label/text)要放在前面创建,其他的就是楼主说的,你先试下,多试试

(一)轨迹规划:贝塞尔曲线的python实现

LBMH:

很好很强大,感谢大佬

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

施密特正交化

C++中的双冒号(::) 使用小结

理解和创建Windows和Linux下的动态和静态库区别

2023年13篇

2022年54篇

2021年94篇

2020年90篇

2019年34篇

2018年24篇

目录

目录

分类专栏

工业机器人

4篇

自动控制原理

2篇

机器人仿真

1篇

运动规划

10篇

ROS操作系统

15篇

PLCopen

3篇

解析几何与线性代数

高等数学

2篇

解析几何

5篇

线性代数

41篇

编程语言

3篇

Python

11篇

C++

66篇

Effective C++

5篇

Socket库

4篇

QT

15篇

线程库

13篇

进程间通信

5篇

Leetcode

2篇

设计模式

1篇

Linux操作系统

40篇

版本管理工具

5篇

编译工具

38篇

目录

评论 2

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

开始调试 EtherCAT 网络

开始调试 EtherCAT 网络

Skip to main content

Deutsch

English

Français

Español

Italiano

Русский

日本語

中文

選單

搜索

Deutsch

English

Français

Español

Italiano

Русский

日本語

中文

Toggle navigationprintToggle navigationCODESYS EtherCAT开始调试 EtherCAT 网络上一页下一页开始调试 EtherCAT 网络要求使用时注意要求 CODESYS Control Win V3 和 CODESYS Control RTE V3.过程. 创建和扫描项目安装 EtherCAT 已部署设备的设备描述(ESI XML 文件)到设备存储库中。使用所需的控制器创建一个新项目。在 通讯设置 选项卡,在设备编辑器中设置与控制器的连接。插入 EtherCAT Master下面的控制器作为一个新设备。双击 EtherCAT 大师打开它的编辑器。点击 浏览 按钮。在下一个对话框中,选择网络适配器 EtherCAT 沟通。将项目下载到控制器,以便 EtherCAT 堆栈被加载到控制器上。提示如果不执行此步骤,则会出现错误消息“无法进行设备扫描:堆栈不可用。请先登录。”扫描设备时显示。扫描网络中的设备。为此,请选择 EtherCAT 掌握并点击 项目 → 扫描设备.提示当控制器处于停止状态和启动状态时,都可以读取连接的设备。扫描也可以在注销状态下工作。片刻之后,将打开一个对话框以显示连接的设备。如果对话框仍然为空,则没有与设备的连接。在这种情况下,请检查 1) 网线连接是否正确,2) 设备是否已上电,以及 3) 选择了正确的网络适配器。提示错误和消息显示在 PLC 的记录器中或 EtherCAT 大师帮助任何后续的诊断。如果缺少设备描述,则会在扫描对话框中显示(消息 注意力!在存储库中找不到该设备)。您可以直接在扫描对话框中安装缺少的设备描述。为此,请单击 安装缺少的描述 按钮。只有在安装了所有设备描述后,才能将设备完全插入项目中。否则 CODESYS 无法确定星形分支的拓扑。将所有检测到的设备复制到项目中。为此,请单击 将所有设备复制到项目.再次将更改的项目下载到控制器并启动它。几秒钟后,设备开始工作,并在设备树中显示为绿色箭头。注意 示例程序 EtherCAT: 开始调试 EtherCAT 网络要求Möchten Sie uns Feedback geben? Klicken Sie hier, um Änderungen vorzuschlagen.上一页下一页

top

CODESYS Group | We software Automation.

to software

['sɒftwɛər]

transitive verb

__softwared/softwaring

: to develop software

// to software automation: to develop software for automation purposes

The CODESYS Group is the manufacturer of CODESYS, the leading hardware-independent

IEC 61131-3 automation software for developing and engineering controller

applications.

CODESYS® is a registered trademark.

CODESYS GmbH

A member of the CODESYS Group

Memminger Straße 151, 87439 Kempten

Germany

Tel.:

+49-831-54031-0

info@codesys.com

Legal Notice

Privacy Policy

LinkedIn

Youtube

RSS

Downloads

Login

CODESYS Store

© 2022 CODESYS GmbH

| A member of the CODESYS Group

EtherCAT Master SoftMotion和EtherCAT Master有什么不同??? - 知乎

EtherCAT Master SoftMotion和EtherCAT Master有什么不同??? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册PLC 编程EtherCAT Master SoftMotion和EtherCAT Master有什么不同???关注者2被浏览225关注问题​写回答​邀请回答​好问题​添加评论​分享​1 个回答默认排序会飞​大学生​ 关注只要带伺服就选EtherCAT Master SoftMotion,不带伺服的话可以选EtherCAT Master。发布于 2023-12-01 19:44​赞同​​添加评论​分享​收藏​喜欢收起​​