课程中心
HOME
课程中心
正文内容
plc函数输出编程 倍福PLC学习:编写函数块及简单调试
发布时间 : 2025-01-20
作者 : 小编
访问数量 : 23
扫码分享至微信

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

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

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

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

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

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

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

VAR_INPUT是输入变量,包含电机启动 、停止信号;VAR_OUTPUT是输出变量,包含输出信号(线圈);VAR_STAT是静态变量,包含沿信号检测变量;

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

编写代码如下图所示:

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

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

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

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

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

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

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

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

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

三菱PLC ST语言编程合并类指令函数的用法解析

前面我们说到三菱PLC ST语言编程的触点类函数的一些简单的用法,现在我们来分享一下合并指令函数的一些用法。三菱ST语言合并类函数一共有六条指令,分别是INV 、MEF、 MEP 、 MPP 、MPS 、 MRD。 我们先看前三条具体的含义和操作数怎么填?INV 是逻辑取反指令,现在借用一下西门子喜欢用“能流”这个词,INV就是对它之前都能流取反,前面能流是通电,那结果是没有输出,前面能流没有接通,结果反而有输出。相当于梯形图的这个功能,

它的表达方式是INV(?BOOL_EN?),很明显括号里面填的是一个布尔量,就是取反之前的条件。例如,Y0:=INV(X0 AND X1);X0和X1两个不接通的时候,Y0有输出,X0和X1都接通时反而没有输出。 MEP(?BOOL_EN?):能量流的上升沿检测,相当于梯形图的这个功能。

MEF(?BOOL_EN?):,能流的下降沿检测,相当于梯形图的这个功能。

这两条指令放在一起来说,他们在ST语言中的意思是对能流的上升沿或下降沿进行检测,接通一个扫描周期,触点类的指令中的LDP和LDF很像,很多时候都可以通用。MEP(?BOOL_EN?)括号里面填的是单个触点,或者是多个触点的逻辑关系,它的作用就是对它括号里面逻辑关系导通时接通一个扫描周期,MEF(?BOOL_EN?)也是同样的道理,只不过它是括号里面的逻辑关系不导通时接通一个扫描周期。三菱PLC ST 语言编程中,合并类函数除了前面说到的三个,还有后面的三个函数,他们分别是;MPS(?BOOL_EN?);MRD(?BOOL_EN?);MPP(?BOOL_EN?); 这三个函数主要用于多重输出,MPS进栈,MRD是读栈,MPP是出栈,遵循先入后出的逻辑原则,把信号压入栈堆,最多可以储存11个。这样表述起来就有点繁杂,不符合电气人的理解习惯,换句话说。MPS就是储存中间运算的结果,相当于西门子S7-300的中间输出指令,而MRD就是读取这个运算结果,如果为TRUE表示接通,反之亦然。MPP就是对中间运算结果复位,就是出栈了。下面举个例子来说明他的用法。 Y0:=MPS(x0) AND NOT X1;Y1:=MRD(TRUE) AND X2;Y2:=MRD (TRUE)AND X4;Y3:=MPP(TRUE)AND X5 AND NOT X6;

梯形图编程

这就是ST语言编程的合并输出,前面有多少个条件,那么MPS括号里面就要写多少条件,你们了解了吗?

相关问答

plc开关量怎么发脉冲?

要在PLC开关量输出上产生脉冲,可以使用定时器函数。首先,需要将PLC开关量输出设置为定时器的开关量输出端口。然后,设置计时器的时间间隔和计数器的初始值。...

西门子1200plc编程函数块能多次调用吗?

没用1200,不过正常来看对FB和FC的调用都是可以多次的,这些在300系列中都是允许的。没用1200,不过正常来看对FB和FC的调用都是可以多次的,这些在300系列中都是...

西门子plc函数和函数块区别?

在西门子的PLC编程中,函数(Function)和函数块(FunctionBlock)是两种不同的程序组织方式:1.函数(Function):函数是一种可以重复使用的子程序,在PLC编...在...

PLC信号靠什么发出?

PLC信号是通过数字信号处理器的输出端口来发出的。PLC数字信号处理器从输入端口接收数字输入信号,并将其转换为相应的数字输出信号,这些数字输出信号将在PLC控...

plc计数器的数值怎么传送?

你好,PLC计数器的数值可以通过以下几种方式进行传送:1.通过PLC内部的数据传输功能:PLC通常提供了一些特定的指令或函数来实现数据的传输,可以将计数器的数...

三菱PLC怎么完成小数加减运算-懂得

首先需要明确,三菱PLC默认情况下只能进行整数运算,如果需要进行小数运算,需要购买带有模拟量输入输出模块的PLC。假设使用了模拟量输入输出模块,以...

西门子主从站编程实例?

西门子主从站编程是指在西门子PLC控制系统中,编写主站和从站之间的通信程序,实现数据的传输和共享。下面是一个简单的主从站编程实例:主站PLC编程:```DATA...

信捷PLC的C语言功能怎么编程?

信捷PLC的C语言编程步骤如下:打开信捷PLC的编程软件“XDPPro”,就会看到在左侧目录树下,有“函数功能块”这一栏。通过在上面单击右键,就可以添加功能块。第...

s7-1200plc编程程序块类型分为哪四种?

S7-1200中程序块分为组织块(OB),函数块(FB),函数(FC),数据块(DB)。不严谨的说,组织块(OB)可以相当于主程序,函数块(FB)和函数(FC)可以相当于...S7-1200中程序....

step7的编程方式?

Step7可以使用不同的编程方式实现,具体取决于您使用的编程语言和环境。以下是几种可能的编程方式:1.命令行编程:在命令行界面中编写和运行代码。可以使用文...

 店长助理  胶盒 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部