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

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

3天内不再提示

如何编写一个简单的电机控制函数块?

汽车电子技术 来源:方正智芯 作者:北岛李工 2023-02-07 14:00 次阅读

今天这篇文章我们来编写一个简单的电机控制函数块,并将其下载到倍福CX5020控制器进行测试,以熟悉TwinCAT3环境下基本的编程步骤。

pYYBAGPh58OAWrkVAACOeO5z8Tg574.png

打开TwinCAT3(TC3),按照上一篇文章《倍福PLC学习:扫描EtherCAT I/O子站并测试模块》介绍的内容新建工程项目并扫描EtherCAT子站,项目名称为“motorControl”。

在左侧项目树的“PLC”节点下右键单击,选择“Add new item(添加新内容)”,添加新的PLC项目,命名为“CPU1”,如下图所示:

poYBAGPh59eAJgdhAADX2L42cYs314.png

添加完成后,“CPU1 Project”中会有POUs、GVLs、DUTs等文件夹。其中,POU是程序组织单元,GVL是全局变量列表,UDT是用户自定义变量。我们计划编写一个电机控制的函数块,因此在“POUs”文件夹右键单击,在弹出的对话框中选择“添加(Add)”→“POUs”,如下图所示:

poYBAGPh5_GAPXBXAABLT3SFNHU347.png

在弹出的“添加POU”对话框中,选择功能块(Function Block),命名为motorControl,编程语言选择ST语言,如下图所示:

pYYBAGPh6AWAOY6wAAAzgmLO7s0161.png

在函数块motorControl中声明变量,其中:

VAR_INPUT是输入变量,包含电机启动 、停止信号

VAR_OUTPUT是输出变量,包含输出信号(线圈);

VAR_STAT是静态变量,包含沿信号检测变量;

如下图所示(注意变量不区分大小写):

pYYBAGPh6BmAZqd1AABcK7PU8UY327.png

编写代码如下图所示:

pYYBAGPh6C-ALj1UAAF44ySBoxQ271.png

为了分配参数,我们新建全局变量列表:GVL1,并添加变量如下图所示:

poYBAGPh6EqAH467AAAwiE6YHSo288.png

接下来要在主函数(MAIN)中调用电机控制函数块。首先在变量列表中声明motorControl的实例,命名为“motorControl1”,编写控制代码如下图所示:

pYYBAGPh6GSAC5zSAAA4XMvGipc252.png

单击工具栏“Build”→“Build CPU1”编译PLC程序。

单击工具栏“PLC”→“Download”下载PLC程序。

单击工具栏“PLC”→“Login”登录到在线状态,或者工具栏的快捷按钮,如下图所示:

pYYBAGPh6HyAJIkpAAA4nhUy4os625.png

pYYBAGPh6I-AVCjfAAAcg97_x_w251.png

如果PLC处于未运行状态,单击“Start(启动)”使其运行。本例程为了给出电机启动信号,我们将全局变量“startBtn1”的“Prepared Value”设置为“TRUE”,并单击工具栏“Write Values”按钮将该值写入到PLC中,如下图所示:

pYYBAGPh6KSACH2OAAEJwk3qohY015.png

此时可以看到主程序MAIN中电机输出信号为TRUE,如下图所示:

pYYBAGPh6LWAHvDRAADqSVnlNmo676.png

如果想让函数输出对应到实际的输出模块,在“CPU 1 instance”→“PLCTask Outputs”→“GVL1.coilKM”,将其对应到“Linked to”指定的输出模块即可。

pYYBAGPh6MqAfCAPAAGq3J8EhTw290.png

好了,关于倍福PLC编写函数块及简单调试就先介绍到这里。

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

    关注

    112

    文章

    16334

    浏览量

    177813
  • 电机控制
    +关注

    关注

    3534

    文章

    1876

    浏览量

    268751
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62573
  • cx5020
    +关注

    关注

    0

    文章

    2

    浏览量

    1709
收藏 人收藏

    评论

    相关推荐

    基于FPGA创建简单电机控制程序

    FPGA 非常适合精密电机控制,在这个项目中,我们将创建简单电机
    发表于 08-11 09:06 1287次阅读
    基于FPGA创建<b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的<b class='flag-5'>电机</b><b class='flag-5'>控制</b>程序

    如何查看及更改函数/函数的调用环境

    模块化设计的思想是把些相似的功能(比如电机控制、阀控制)设计成函数函数
    的头像 发表于 11-17 09:08 938次阅读
    如何查看及更改<b class='flag-5'>函数</b>/<b class='flag-5'>函数</b><b class='flag-5'>块</b>的调用环境

    介绍使用SCL语言编写电机控制函数

      电机控制在实际项目中经常使用,般的电机控制程序都是具有启动、保持、停止的功能。  今天这
    发表于 03-09 17:02

    如何为Serial.printf() 编写简单的包装函数

    决定为 Serial.printf() 编写简单的包装函数。这个函数看起来像这样: 代码:全
    发表于 05-04 07:24

    简单的组合逻辑编写

    简单的组合逻辑编写 实验内容:完成实验内容:
    发表于 02-08 14:37 1009次阅读

    使用SCL函数编写计算保质期的应用程序

    在以下部分中,将创建 SCL 函数“SCL_Best_before_date” 。 可使用 SCL 函数计算保质期。
    的头像 发表于 10-18 15:15 1054次阅读

    倍福PLC学习:编写函数简单调试

    今天这篇文章我们来编写简单电机控制函数
    的头像 发表于 11-09 09:34 5262次阅读

    伺服电机简单控制方法

    伺服电机的最简单控制方法是使用脉冲/方向信号控制。这种方法使用脉冲信号控制电机的位置和方向。具
    发表于 03-01 15:49 3893次阅读
    伺服<b class='flag-5'>电机</b>最<b class='flag-5'>简单</b>的<b class='flag-5'>控制</b>方法

    分享使用SCL语言编写电机星三角启动的函数

    采用星三角转换电路启动是相对简单和节省成本的种方式,它是通过三接触器的配合,在电机启动初期使三相定子绕组构成星型连接(Y)。
    发表于 03-31 09:22 699次阅读

    简单的线激光控制电机驱动电路分享

    本文介绍了简单的线激光控制电机驱动电路,该电路通过响应由线激光水平仪设备生成的精密水平激光线来工作,并以极其完美和精确的方式自动调整连接
    的头像 发表于 04-29 17:00 2311次阅读
    <b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的线激光<b class='flag-5'>控制</b><b class='flag-5'>电机</b>驱动电路分享

    PWM输出控制电机

    PWM 输出控制电机电机系列 、PWM 输出控制电机 1 、相关 IO 介绍 2 、编写 PW
    发表于 05-06 11:03 5次下载
    PWM输出<b class='flag-5'>控制</b><b class='flag-5'>电机</b>

    QT|编写简单的上位机

    QT | 编写简单的上位机 时间 :2023-03-19文章目录QT | 编写
    发表于 05-08 10:12 3次下载
    QT|<b class='flag-5'>编写</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的上位机

    如何编写简单实用的气缸功能

    气缸是我们设备中使用频率非常高的部件,如果有功能完善的功能快,那我们用起来就简单方便很多,对程序的
    的头像 发表于 07-03 09:20 4168次阅读
    如何<b class='flag-5'>编写</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>实用的气缸功能<b class='flag-5'>块</b>

    python如何定义函数

    ()。但你也可以自己创建函数,这被叫做用户自定义函数。 二、定义函数 你可以定义
    的头像 发表于 11-14 11:26 710次阅读

    我们应如何查看某一次函数调用时的内部变量呢?

    模块化设计的思想是把些相似的功能(比如电机控制、阀控制)设计成函数函数
    的头像 发表于 11-17 09:09 471次阅读
    我们应如何查看某<b class='flag-5'>一次函数</b><b class='flag-5'>块</b>调用时的内部变量呢?