0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手把手带你入门AWStudio运动控制编程

ZLG致远电子 2025-02-10 11:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导读

面对一台ZMC600E运动控制器与多台伺服电机,我们该怎样让它工作起来?本文带你了解PLCOPen,并详细讲解如何使用AWStudio控制电机运动。

在自动化领域,运动控制是一件很复杂的事情,包含了上位机通讯,工业现场总线通信协议,运动控制算法,伺服电机控制等领域知识。致远电子自主研发的AWStudio 的 AWPLC 解决方案可以快速实现运动控制编程。

AWStudio 的逻辑组态提供了符合 IEC61131-3 标准的 ST 语言编程环境,该开发环境和运行时均是由 ZLG 致远电子自主研发,提供了带智能提示的代码编辑器,以及多种程序调试手段,让用户可以轻松开发 PLC 程序。AWPLC 提供了 PLC 的运行时环境,可以运行用户开发的 PLC 程序(开发环境生成的二进制文件),进而控制硬件 IO 或电机伺服器等按程序逻辑进行工作。AWPLC 运行时环境是一个软 PLC 的引擎,需要在一个硬件载体上运行,比如 ZLG 致远电子的运动控制器,或者 PC 机等。PLCOPen 是总部在欧洲的 IEC61131-3 推广团体,目的是为了使得不同 PLC 厂家的产品应用编程通用化,消除产品技术差异和壁垒,在用户选用不同品牌 PLC 时,不必另外学习相应的编程方法。PLCOPen 对运动控制功能块 MC 的技术规格进行了约定,包括 MC 功能模块的命名、具体功能、输入输出变量定义、相关时序逻辑等,最大限度地保证用户编程技术的互通。AWStudio提供了支持PLCOPen规范的运动控制接口,包含了 MC_Power、MC_MoveAbsolute、MC_MoveRelative、MC_Reset等单轴功能块。接下来,我们介绍如何通过 AWStudio 快速地创建ZMC600E应用示例:控制 ZMC600E 打印字符,通过EtherCAT控制电机转动。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  编译环境搭建

首先需要搭建编译环境,准备硬件和软件。

1. 必备硬件

x86架构Windows系统的个人电脑

ZMC600E运动控制器;

支持EtherCAT 协议的电机驱动器和伺服电机。

2. 软件工具

电脑端安装 AWStudio 软件 ;

ZMC600E端安装 awplc运行时。

配置电脑与ZMC600E设备的连接:使用网线连接windows10电脑端网络端口与ZMC600E 运动控制器的NET2网络端口,在电脑上配置在同一个网络子网。配置ZMC600E设备与从站的连接,使用网线连接ZMC600E运动控制器的ECAT网络端口与从站网络端口。

77654bda-e760-11ef-9434-92fbcf53809c.jpg  新建工程双击AWStudio图标启动程序。

778009e8-e760-11ef-9434-92fbcf53809c.png

图1 AWstudio界面图接下来创建运动控制器解决方案。

778e9f3a-e760-11ef-9434-92fbcf53809c.png

图2 新建解决方案对话框图

  1. 单击工具栏的【新建】按钮。
  2. 选择【运动控制器】-【AWPLC编程】解决方案。
  3. 修改解决方案名称。
  4. 点击【确定】按钮。
778e9f3a-e760-11ef-9434-92fbcf53809c.png

图3 新建解决方案对话框图选择控制器型号为ZMC600E,点击【确定】按钮。

77ab34ba-e760-11ef-9434-92fbcf53809c.png

图4 选择运动控制器型号图打开了空白项目。

77bc9dfe-e760-11ef-9434-92fbcf53809c.png

图5 打开空白控制器项目


77654bda-e760-11ef-9434-92fbcf53809c.jpg  编写简单脚本

我们尝试编写一个简单的st脚本,脚本功能是打印字符串。新建一个整型变量。

  1. 单击main.st激活编辑页
  2. 单击变量新建的【+】按钮
  3. 输入变量名
  4. 单击类型选择下拉按钮
  5. 单击以选择类型
  6. 点击【确定】按钮
77d77304-e760-11ef-9434-92fbcf53809c.png

图6新建变量对话框

编写st脚本,包含两条语句:计数递增,打印计数。

PRINT_STR('cnt = ' + DWORD_TO_STRING(cnt));cnt := cnt + 1;

77ebb526-e760-11ef-9434-92fbcf53809c.png

图7 代码编辑图

POU调度程序会在每个周期调用main.st程序。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  仿真运行程序

AWStudio提供了仿真模式,无需连接目标设备,程序可以运行于windows系统的仿真器

780b9350-e760-11ef-9434-92fbcf53809c.png

图8 工程启动过程图

  1. 点击界面下方的【输出】按键。
  2. 选择【输出】-【启动Solution】子页。
  3. 点击工具栏的【启动】按钮,【启动】按钮切换成【停止】按钮。;
  4. 观察【输出】文本框,将会显示打印内容。
  5. 点击电机工具栏的【停止】按钮。

可以在输出-启动区域看到打印结果,计数每次累加1并打印到屏幕。77654bda-e760-11ef-9434-92fbcf53809c.jpg  在目标设备运行连接ZMC600E设备运行。

  1. 点击设备下拉按钮。
  2. 电机刷新搜索设备按钮。
  3. 单击选择设备。
782bd3e0-e760-11ef-9434-92fbcf53809c.png

图9 设备连接示意图

输入管理密码,登录到设备。

784441fa-e760-11ef-9434-92fbcf53809c.png

图10 登录对话框图登录成功时,下方状态栏会显示连接设备和对应的MAC地址。

在设备端运行st脚本。

78538138-e760-11ef-9434-92fbcf53809c.png

图11 设备端启动过程图

点击工具栏的【启动】按钮,【启动】按钮切换成【停止】按钮。

观察【输出】文本框,将会显示打印内容。

点击电机工具栏的【停止】按钮。

可以在输出文本框区域看到打印结果,计数每次累加1并打印到屏幕。

在电脑端编写代码,单击一个按钮就能编译程序并在设备端运行程序,非常方便。实际上 AWStudio在后台做了编译相关工作,把构建好的st程序打包发送到 ZMC600E设备,并通知守护进程启动st脚本程序。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  添加主站从站

ZMC600E控制器通过 EtherCAT 协议连接了从站设备(电机驱动器)。首先添加一个 EtherCAT 主站总线,如下图。

78755a9c-e760-11ef-9434-92fbcf53809c.png

图12 添加总线对话框图

ZMC600E充当主站控制器,需要配置总线网口。

78887c62-e760-11ef-9434-92fbcf53809c.png

图13 资源连接对话框图

接下来添加从站设备。打开添加从站对话框。

7896167e-e760-11ef-9434-92fbcf53809c.png

图14 打开添加从站对话框图搜索并添加从站。

78aed65a-e760-11ef-9434-92fbcf53809c.png

图15 添加从站图

从站添加成功,右边是从站详细配置页面。

78c0d738-e760-11ef-9434-92fbcf53809c.png

图16 从站详细配置图

从站编辑页可以配置从站子页,变量子页,FMMU/SM子页,邮箱子页,初始化命令子页,分布时钟子页。变量页包含了PDO详细信息,是从站的核心配置。AWStudio提供了自动映射机制,可以自动拆包解析PDO变量,避免了用户直接处理繁琐又容易出错的PDO。这里我们跳过配置流程,直接使用默认配置。如果有多个从站设备,需要重复上述流程添加从站。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  电机配置

打开电机配置页面。

78db9208-e760-11ef-9434-92fbcf53809c.png

图17 Cia402电机配置图

映射关系页面,可以查看或修改绑定的变量名。第一个从机的电机变量名称默认为“CiA402_AXIS_0”,该电机变量就是 PLCOPen 中的轴对象,后续我们写代码需要用到该变量。

78ebd2bc-e760-11ef-9434-92fbcf53809c.png

图18 电机映射关系配置页面

通用页面,可以编辑轴安全配置。

78f842ea-e760-11ef-9434-92fbcf53809c.png

图19 电机通用配置页面

轴的虚拟模式开关,支持在仿真模式下模拟轴运行,虚拟电机的控制模式和位置。仿真模式下能模拟EtherCAT主站和从站电机,便于用户不连接设备也能调试脚本。

切换到缩放/映射页面。默认脉冲比是1:1,不需要特别配置。

790bd544-e760-11ef-9434-92fbcf53809c.png

图20 电机缩放/映射配置页面

如果缩放比分子调的比较大,则后面的代码中的运动功能块的位置和速度和加速度就需要调小。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  电机编程

由于AWStudio提供了PDO映射,所以我们可以免于管理主站和解析变量。此外AWStudio提供了PLCOPen运动接口,用户可以方便地控制电机运动,避免直接管理电机控制和状态的字典变量。接下来我们使用PLCOPen接口编写电机使能代码和电机运动代码。

轴是对伺服电机的高级抽象,避免了直接处理从站电机的状态字、控制字、指令位置等对象字典项,支持轴使能、发布运动、轴状态查询等功能。

以下是轴控制功能块常用接口的简单介绍:

MC_Power 控制轴使能(核心功能块)。

MC_Reset 清除轴错误。

MC_ReadStatus 查询轴状态。

MC_ReadActualPosition 查询轴实际位置。

MC_MoveAbsolute 轴运动到指定的绝对位置。

MC_MoveRelative 轴基于当前位置按照偏移量运动。

操作要点:轴要先使能,才能驱动电机运动。电机存在错误时,要先清除错误,才能使能轴。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  电机使能

首先添加多个功能块:轴状态查询,轴位置查询,轴错误复位,轴使能功能块。

然后编写一个简单的脚本,执行上述的功能块。

程序每运行200个周期,打印一次当前计数、实际位置、轴使能状态标志。

793065d0-e760-11ef-9434-92fbcf53809c.png

图21 代码编辑框图

脚本代码如下:

rdst(Axis:=CiA402_AXIS_0,Enable := true);rdActPos(Axis:=CiA402_AXIS_0, Enable := true, Position => posAct);IF rdst.ErrorStop THEN rst(Axis := CiA402_AXIS_0, Execute := TRUE);END_IF;power(Axis:=CiA402_AXIS_0, Enable := true, bRegulatorOn := true, bDriveStart := true);IF MOD(cnt, 200) = 0 THEN PRINT_STR('cnt = ' + DWORD_TO_STRING(cnt) + ' pos=' + LREAL_TO_STRING(posAct)); PRINT_STR( 'Status ' + BOOL_TO_STRING(power.Status) + ' RegulatorOn ' + BOOL_TO_STRING(power.bRegulatorRealState));END_IF;cnt := cnt + 1;

查看打印过程。

7949c41c-e760-11ef-9434-92fbcf53809c.png

图22电机使能过程打印图

可以看到,轴使能标志位开始时为假,然后为真,并打印了电机实际位置。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  电机运动

电机使能成功,接下来就可以实际驱动电机转动。

首先添加绝对运动功能块,相对运动功能块对应的变量。

然后编写程序:

等待轴使能状态标志为真。

轴执行绝对运动。从当前位置运动到 100单位的位置。

绝对运动到达目标后,再执行相对运动。从当前位置,往前运动200的单位。

7967bcf6-e760-11ef-9434-92fbcf53809c.png

图23 代码编辑框图

代码中的位置,速度,加速度和减速度仅供参考,用户可以根据实际情况自行缩放。

脚本代码如下:

power(Axis:=CiA402_AXIS_0, Enable := true, bRegulatorOn := true, bDriveStart := true);if power.bRegulatorRealState THEN movAbs(Axis := CiA402_AXIS_0, Execute := TRUE, Position := 100, Velocity := 50, Acceleration := 100, Deceleration := 100, Jerk := 0); if movAbs.Done THEN moveRel(Axis := CiA402_AXIS_0, Execute := TRUE, Distance := 200, Velocity := 50, Acceleration := 100, Deceleration := 100, Jerk := 0); END_IFEND_IF
IF MOD(cnt, 50) = 0 THEN PRINT_STR('cnt = ' + DWORD_TO_STRING(cnt) + ' pos=' + LREAL_TO_STRING(posAct));END_IF;cnt := cnt + 1;

查看打印过程。

7979365c-e760-11ef-9434-92fbcf53809c.png

图24 运动轮廓打印图

查看打印过程,可以得到大概的运动轮廓:初始时轴在300单位位置,然后轴从300单位运动到100单位位置,再从100单位位置运动到300单位位置,然后停留不动。


77654bda-e760-11ef-9434-92fbcf53809c.jpg  ZMC600E运动控制器

ZMC600E是广州致远电子股份有限公司开发的最新一代高性能智能总线型控制器,是面向工厂智能化时代的机器人控制器。ZMC600E采用多核异构应用处理器为核心,其内核包括2个64位的ArmCortex-A53核,主频1.0GHz;4个Cortex-R5F内核,主频800MHz,同时板载1GB DDR4、4GB eMMC以及32KB FRAM。

ZMC600E 示意图及接口图如下所示:

7997061e-e760-11ef-9434-92fbcf53809c.png

图1 产品示意图

79b737f4-e760-11ef-9434-92fbcf53809c.png

图2 ZMC600E接口图

ZMC600E EtherCAT主站控制器为设备制造商提供多轴数、多IO点数控制的新一代可靠智能的运动控制解决方案,提供空间直线、圆弧插补算法,可以广泛应用于注塑行业、冲压行业、车床行业、搬运码垛、关节机器人、喷涂、玻璃机、压铸机、包装设备、3C设备、锂电池设备、纺织、流水线工作站、非标自动化装备、特种机床等高端设备应用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17637

    浏览量

    190164
  • 编程
    +关注

    关注

    90

    文章

    3707

    浏览量

    96735
  • 运动控制
    +关注

    关注

    5

    文章

    792

    浏览量

    34251
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    手把手教你学单片机之AVR入门视频教程

    `手把手教你学单片机之AVR入门视频教程AVR单片机软硬件设计视频教程-入门篇本视频是 力天电子 尹延辉 录制的 详情请登 力天电子第01讲-单片机及其开发工具简介_手把手教你学单片机
    发表于 03-02 11:04

    力天手把手教你学ARM入门版代码

    力天手把手教你学ARM入门版代码
    发表于 08-12 20:26

    原创手把手教你学习FPGA视频教程,不看后悔哟

    FPGA入门系列视频教程目前已经更新11篇,这是我们自己原创的FPGA教程,欢迎大家一块学习,共同进步,让我们一起踏出通往FPGA世界的第一步:1手把手教你学习FPGA入门系列视频教程
    发表于 08-14 16:24

    手把手教你学FPGA 编程规范篇

    手把手教你学FPGA 编程规范篇
    发表于 02-02 11:32

    手把手教程:各类数字电源设计实例(程序+原理图)

    本资料分享了数字电源设计实例,包含程序、原理图等资料,手把手带你独立设计属于自己的数字电源。
    发表于 07-07 15:13

    手把手教你学stm32

    手把手教你学stm32,STM32编程作为一项实操性很强的技能,所以要多实操。初学的话,我觉得书籍就暂时先不买吧,先考虑入手一块STM32开发板,然后跟着开发板的教程走。几年前,做STM32的教程有
    发表于 08-09 07:44

    【课程汇总】Hello HarmonyOS系列课程,手把手带你零基础入门

    汇总如下,精彩内容不容错过,快点开始学习吧!↓一、Hello HarmonyOS:手把手教你搭建开发环境课程介绍:超级适合零基础入门手把手教你配置IDE、创建HelloWorld工程,运行一个开源
    发表于 04-21 16:19

    手把手教你写批处理-批处理的介绍

    手把手教你写批处理-批处理的介绍
    发表于 10-25 15:02 69次下载

    美女手把手教你如何装机(下)

    美女手把手教你如何装机(下) 接著下来就是今天的重头戏,开核萝!~
    发表于 01-27 11:16 3115次阅读

    手把手教你安装Quartus II

    本章手把手把地教你如何安装 Quartus II 软件 ,并将它激活 。此外 还有USB -Blaster下载器的驱动安装步骤 。
    发表于 09-18 14:55 9次下载

    DSP开发软件及工具介绍--力天手把手教你学DSP之入门

    DSP开发软件及工具介绍--力天手把手教你学DSP之入门
    发表于 10-20 14:50 18次下载
    DSP开发软件及工具介绍--力天<b class='flag-5'>手把手</b>教你学DSP之<b class='flag-5'>入门</b>篇

    手把手教你如何开始DSP编程

    手把手教你如何开始DSP编程
    发表于 04-09 11:54 13次下载
    <b class='flag-5'>手把手</b>教你如何开始DSP<b class='flag-5'>编程</b>

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手
    发表于 03-06 01:41 3455次阅读

    手把手教你开关电源PCB排板

    手把手教你开关电源PCB排板(新型电源技术)-分享一下开关电源PCB排板的基本要点及分析,以及例子讲解。绝对的手把手
    发表于 09-18 12:27 67次下载
    <b class='flag-5'>手把手</b>教你开关电源PCB排板

    手把手教你学FPGA仿真

    电子发烧友网站提供《手把手教你学FPGA仿真.pdf》资料免费下载
    发表于 10-19 09:17 2次下载
    <b class='flag-5'>手把手</b>教你学FPGA仿真