北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章530 浏览8072141

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

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

cover.png

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

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

CPU1.png

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

project.PNG

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

fb_motorControl.png

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

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

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

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

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

motorControl_variables.png

编写代码如下图所示:

motorControl_code.PNG

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

globalVariables.PNG

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

MAIN-offline.png

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

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

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

plc-login.png

plc-login2.PNG

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

writeValues.png

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

main.PNG

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

link_varaibles.PNG

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

下面是倍福(Beckhoff)嵌入式控制器/PLC的文章归档链接:

》》倍福(Beckhoff)嵌入式文章归档《《

我的微信视频号以视频的方式分享工控小知识,欢迎观看:

founderchip.png

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论