「PLC」编写一个模板程序,可用于控制泵、阀等一类设备的启停
系列视频《WinCC+PLC综合实战演练》已经累计发布了十余期了,鉴于有网友要求对一些关键知识点形成文字资料,因此,特别概括性的做一些总结,以弥补视频中遗漏的、未提到的部分,供有需要的小伙伴做参考。
前文总结了WinCC画面中,沉降池水位的动态跟踪及液位超限(太高或太低)时,如何在画面中实现报警。本文把启停控制程序捋一遍(泵的启停、阀的开合用的同一套程序)。
"启停"程序(on_off)写在FC1中,其调用时的管脚图如图1所示,其中定义输入管脚4个,输入/输出管脚3个,输出管脚4个。为什么要这样定义呢?接下来我们细细道来。
一、程序体分解释疑
为了方便说明,我们先逐段说明一下程序,再解释为何要将接口定义成图1那种方式(
如图2所示,"程序段1"中的程序为"启停控制程序"。
"#order"为启停命令,其为图1中输出接口的一个,信号最终与Q点相连; "#start"为启动信号、"#stop"为停止信号,其指令来自画面(如图3所示),用于启动或停止泵(阀); 当"#order"为1时,通过"复位"指令,复位"#start"的信号,这样做的目的是使"#start"端的信号变为一个脉冲信号,方便信号处理。而由于"#start"既作为输入接收来自画面的指令,又作为"线圈"被"复位"指令复位,因此要将该信号接口定义为"输入/输出接口"; "#fault"为故障信号,当其为1时,停泵、关阀。2、"#start"、"#stop"、"#ack"信号的脉冲化处理
"#start"、"#stop"及"#ack"指令均来自WinCC画面(如图3所示),画面侧通过点击相应的按钮,发过来一个高电平信号,为了简化信号处理,统一在程序使其"脉冲化",如图4所示。
逻辑也很简单:
当泵(或阀)启动命令发出后("#order"上升沿),复位"#start"; 当泵(或阀)停止命令发出后("#order"下降沿),复位"#stop"; "#ack"为故障确认信号,当"#ack"发出确认指令且故障清除后("#fault"下降沿),复位"#ack"。3、状态反馈"响应时间"监控
"#T_no"是定时器的形参地址,实际调用该FC块时,需要关联一个实际的定时器号。(1)"程序段4"的逻辑是,当"#order"为1时,启动定时器;
"程序段5"的逻辑是,在定时器计时完成(计时完成后,常闭触点"#T_no")前检测到运行反馈信号"#fbk",此时说明泵(或阀)启动正常,则复位定时器。
故障确认指令"#ack"也会复位定时器。
4、"运行信号"判定
"程序段6"和"程序段7"用于判定泵(或阀)是否正在运行。
当有输出命令("#order"=1)且有反馈信号("#fbk"=1)时,说明泵(或阀)正在运行; 当无输出("#order"=0)或有故障("#fault=1")时,认为泵(或阀)处于停止状态。5、"故障"判定及确认
当以下情况发生时,认为泵(或阀)有故障:
在正常运行("#running=1")时,反馈信号("#fbk")突然丢失,此时系统判定主回路由于某种原因失电,从而触发故障; 在启动命令发出后,规定的时间内(定时器"T_no"计时完成)未检测到反馈信号("#fbk"),系统认为泵(或阀)启动失败,触发故障。"#ack"接入"SR触发器"的复位端,用于做故障确认。
6、状态字
"状态字"定义的核心指令为:MOVE指令。满足不同条件时,将不同的值送给状态字"#status"。
二、接口定义
经过前面对程序的"逐段"分析,我们对"接口"为什么做如是定义,也有了基本的了解,再补充以下几点:
"#start"、"#stop"和"#ack"之所以定义为"输入/输出"接口类型,是因为它们既接受外部的信号,在程序中又作为"线圈"输出。 "定时器号"的形式参数的数据类型为"Timer"。 "#sim_on"是预留的仿真用接口,目前的程序中,它是没用的。 FC中定义的接口变量,在本块中寻址方式为:"#+符号名",如"#start"、"#status"等。相关视频:
《PLC编程实现“泵”的启停控制,如何自定义运行状态及状态字》
《程序“pumb1_FC"的勘误和优化,完善故障的类别信息》
上一篇《「视频随手文档」WinCC实现“液位”的动态跟踪以及超限报警》
从零开始学PLC之程序设计实例搅拌机控制
大家好我是达达老师,今天继续讲解实例,搅拌控制系统程序设计,之前讲过使用的数字量,今天我们用模拟量来进行讲解,有不明白的欢迎评论留言,达达老师会耐心解答。
搅拌控制系统程序设计——使用模拟量。
控制要求如下:
此搅拌控制系统,由一个模拟量液位传感器-变送器来检测液位的高低,并进行液位显示。现要求对A、B两种液体原料按等比例混合,请编写控制程序,控制要求如下:按起动按钮后系统自动运行,首先打开进料泵1,开始加入液料A→当液位达到50%后,则关闭进料泵1,打开进料泵2,开始加入液料B→当液位达到100%后,则关闭进料泵2,起动搅拌器→搅拌10s后,关闭搅拌器,开启放料泵→当液料放空后,延时5s后关闭放料泵。按停止按钮,系统应立即停止运行。
1.创建S7项目
使用菜单【File】→【“New Project”Wizard】创建搅拌控制系统的S7项目,并命名为“FC与FB”。
2.硬件配置
在“FC与FB”项目内打开“SIMATIC 300 Station”文件夹,打开硬件配置窗口,并按图下完成硬件配置。
配置好后,将模拟量地址修改为256。
3.编辑符号表
4.规划程序结构
OB1为主循环组织块;OB100为启动组织块;FC1实现搅拌控制;FC2实现放料控制;FB1通过调用DB1和DB2实现液料A和液料B的进料控制;DB1和DB2为液料A和液料B进料控制的背景数据块,在调用FB1时为FB1提供实际参数,并保存过程结果。
5.创建无参功能(FC1、FC2)
FC1
FC2
6.创建无静态参数的功能块(FB1 )
定义FB1的局部变量声明表
编写FB1控制程序
7.建立背景数据块(DB1、DB2)
在“FC与FB”项目内选择“Blocks”文件夹,执行菜单命令【Insert】→【S7 Block】→【Data Block】,创建与FB1相关联的背景数据块DB1和DB2。STEP 7自动为DB1和DB2构建了与FB1完全相同的数据结构,如下图所示。
8.编写控制程序,在OB1中调用FC1、FC2和FB1
至此八个步骤,程序编写完毕,编译保存,将程序下载仿真即可
以上是今天的实例讲解,明天继续,关注达达老师,每天进步一点点
相关问答
plc编程步骤方法?
常用的PLC编程方法有经验法、解析法、图解法。经验法:即是运用自己的或别人的经验进行设计,设计前选择与设计要求相类似的成功的例子,并进行修改,增删部分功...
plc用c语言怎么进行编程?
你好,PLC(可编程逻辑控制器)可以使用多种编程语言进行编程,其中包括C语言。以下是使用C语言编程PLC的一般步骤:1.确定PLC型号和规格:PLC有多种型号和规格...
plc编程程序开头要写什么?
1PLC编程程序开头一般需要写入程序的版本号和作者等基本信息,用于标识程序的属性和归属。2这些信息不仅方便程序管理和协同开发,还有利于程序的维护和更新。...
plc触摸屏一体机怎么编程_?
要是西门子的,那直接编触摸屏的程序,画面什么的,里面的输入输出点要和PLC的输入输出对应。之后把触摸屏和PLC通讯线连上。这样就实现触摸屏控制PLC了。也可以...
ls-plc怎么编程?
你好,LS-PLC的编程可以使用以下三种方式进行:1.使用LS-PLC专用编程软件:LS-PLC专用编程软件是一种针对LS-PLC开发的编程软件,可以通过官方网站下载并安装。...
plc编程步骤?
(1)根据控制要求进行I/O分配,(2)根据控制要求设计控制流程(3)画出PLC外围接线图,(电气原理图和气路原理图)(4)布置好元件;装好线槽,固定好...(1)根据...
大型生产线plc编程思路?
大型生产线PLC系统编程,建议模块化:1.首先要对整个工艺非常熟悉,根据工艺将整个设备区分为不同的模块;2.各模块的控制程序则根据工艺实际需求,分别进行PLC...
plc怎么改字体?
plc字体调更改方法步骤如下:1.首先把GXWORKS3打开。2.然后点视图。3.点击颜色及字体。4.点击梯形图编辑器下面。5.再点击字体设置改为用户设置。6.你就...
西门子plc编程软件怎样设置中文-ZOL问答
对于S7-200编程软件MicroWinV4.0来讲中文设置如下:1、首先打开编程软件,点击Tools,找到options选项。2、进入到该选项后,出现如下画面按照图中要求操作后...
欧姆龙plc编程软件使用?
PLC编程软件的使用一般有以下几点:运行软件,新建PLC工程,选择好您所使用的PLC型号配置好编程电缆的通信参数,点击在线模式,保证PC可以正常连接PLC组态...P...