倍福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编程中常常不知道怎么编程,看看本文也许会对你有启发
数字量控制系统可根据经验或继电器电路来进行设计,但这种设计法没有固定的方法和步骤,具有很大的试探性和随意性,在简单的控制系统中是可行的,但对于一些较大的工程来说,这种方法难免会有很多的不足和遗漏,本文主要给大家分享下顺序控制法。
所谓的顺序控制法,就是按照生产工艺说明中规定的顺序,在各个输入信号的作用下,根据内部状态和时间顺序,在生产过程各个执行机构自动有序的进行操作。这里就要用到顺序功能图,顺序功能图是描述控制系统的控制过程、功能和特性的一种图形,在西门子PLC中有很多PLC(如200系统)没有配备顺序功能图的语言,但是可以用顺序功能图来设计程序。
步的概念:顺序控制最基本的思想是将系统的一个工作周期分为若干个顺序相连的阶段,每个阶段就是每一步(step),然后用编程元件(如m位)来代表各步。
顺序功能图主要由步、有向连线、转换、转换条件和动作组成。
举例说明:下图是个液压动力滑台的进给运动示意图
功能要求:设定动力滑台的初始位在左边I0.3的位置,I0.3为1,Q4.0~Q4.2是控制动力滑台运动的三个电磁阀,按下启动后,滑台的一个工作周期由快进、工进、暂停和快退组成,返回初始位后停止运动。
我们来画顺序功能图:如下图所示,图中的矩形方框代表步。
这里初始步:是系统等待启动命令的相对静止的状态,
有向连线:随着转换的条件的实现,将会发生不得活动状态的进展,这种进展按有向连线的规定路线和方向进行。
转换:步的活动状态的进展是由转换的实现来完成。并与控制过程的发展相对应。
转换条件:使系统由当前步进入下一步的信号。
基本结构:有单序列、选择序列和并行序列(如下图所示)
一、使用置位和复位指令的顺序控制梯形图的编程方法
还是上面的滑台的例子。顺序功能图我们已经画出来了,需要用到初始化组织块OB100,在PLC上电或由STOP切换到RUN模式时,CPU调用OB100,在OB100中将M0.0~M0.7复位,然后用置位S指令将M0.0置位。如下图所示
根据顺序功能图,我们来编写OB1程序。如下图所示
再做一个较为复杂的程序,在日常控制中需要有多种控制方式,例如手动方式和自动方式,手动方式较简单了,就按照功能要求直接编程即可,自动方式就用顺序功能图的方式来编程,方便使用。
工艺功能说明:
如上图,机械手用来将工件从A运到B,操作面板如右图所示,Q4.1控制加紧电磁阀,为1时加紧工件,工作方式选择开关有5个位置,操作面板的6按钮是手动按钮,为保证在紧急情况下能可靠的切断PLC的负载电源,设置了交流接触器KM(如下图所示),运行时按下负载电源按钮,使KM线圈得电并自锁,KM的主触点接通,给外部负载提供电源,当紧急情况时,按下紧急停车按钮来断开电源。
工作方式有手动、单周期、单步、连续和回原点5种方式,
1)在手动模式下,用操作面板上的6个单步按钮来分别控制。
2)在单周期方式下,按下I2.6,从初始步M0.0开始,按如下顺序功能图完成一个周期的动作,返回并停留在初始步。
回原点
3)在连续工作方式下,按下启动按钮,机械手从初始步开始工作一个周期后,反复连续的动作。
4)单步方式下,从初始步开始,按一次启动按钮,系统切换到下一步,完成该步后,自动停止并停留在该步。
5)原始状态:机械手在最上面和最左边,且加紧装置松开。
程序的主体结构
在OB1中调用对应的功能FC,共用程序FC1是无条件调用,供各个FC来使用。
符号表如下图
公用程序FC1,手动程序FC2,回原点程序FC4,单周期、单步、自动程序FC3
首先在OB100编写初始化程序,根据功能说明的初始条件编写,如下图所示:
编写公共程序:
用于处理各种工作方式都要执行的任务,以及不同工作方式之间的相互切换处理,
1)当从自动模式切换到手动或回原点方式时,用MOVE将顺序功能图中的除了初始步以外的各步对应的存储器为(即MB2)复位。
2)退出自动回原点方式时,用MOVE将M1.0~M1.5复位。以放置下次进入自动回原点方式时,可能出现同时有两个活动步的异常状况。
3)非连续工作方式,当选在I2.4为0时,将连续标志位M0.7复位。
编写程序如下:
编写手动程序
根据顺序功能图编写自动程序
自动回原点程序
OB1程序
怎么样?是不是有了一些了解,后面我会继续GRAPH的编程方法,主要大家要对顺序功能图的编程方法要有一定的掌握,在编程的过程中会觉得有很大的方便。
写文章不易,觉得对你有帮助的话,别忘记关注、点赞和转发,你们的支持是我前进的动力。
相关问答
plckm怎么输入?
老板,PLC是没这些东西的。你那些是电气符号:KM:接触器三菱PLC表示输出线圈YFU:熔断器PLC不表示FM:频率调制,为电路发射器、传感器FR:热继电器,起过载...
KA与KM区别?
一、性能不同1、KM(接触器)通断电流较大,用于直接驱动负载。2、而KA(中间接线器)因为过载能力比较小故拖动负载的能力较弱,只能用于辅助控制电路中二、...
plc中的tb是什么意思?
在PLC编程中,TB是指“触点表(TerminalBlock)”,也称为“端子板”。它是一种用于连接输入/输出(I/O)设备和PLC的电缆和线路的接口板。TB通常包括一组端子,...
请问PLC中以太网的传输距离?
光纤分为多模和单模,传送距离多模在2KM之内,单模在30KM(一说20KM)之内。传送带宽和光纤收发器有关。两个交换机超过100米还可以使用中继。光纤分为多模和单模...
plc编程常闭触点怎么用?
AN和ON两条逻辑运算指令分别与常闭触头的串联连接与并联连接对应,继电器控制线路能实现的功能均可在PLC控制系统中实现。例:电动机起停控制基本环节,编程元件...
plc三相异步电机正反转控制编程?
按下SB1,输入继电器X000动断触点断开,输出继电器Y000均复位,外接接触器KM1随之复位,电动机停止运转。按下SB3,继电器输入X002常开触点闭合,输出继电器Y00...
plc怎么控制马达?
用两个起保停电路来分别控制马达的正转和反转。按下正转起动按钮SB2,X0变为ON,其常开触点接通,Y0的线圈“得电”并自保持,使KM1的线圈通电,电机开始正转运行...
线圈的符号是?
在电气和电子工程中,线圈的符号通常是由一个大的实心圆或螺旋线,以及一个或多个小型的椭圆形或矩形(表示线圈的形状或尺寸)组成的。根据线圈的用途和性质,线...
各大机场的英文简写代码是什么?比如:北京国际机场PEK上海虹...
[最佳回答]太多了.全世界至少10000个机场有IATA机场代码,以下光列国内的.国内机场代码AAT(ZWAT)阿勒泰市阿勒泰机场AKA(ZLAK)安康市五里铺机场AKU...
新手如何快速掌握PLC使用方法?
1、认识梯形图和继电器控制原理图符号的区别。电器控制原理图中的元件符号,有常开触点、常闭触点和线圈,为了区别它们,在有关符号边上标注如KM、KA、KT...1、...