定时中断组织块OB35
西门子S7-300/400有9个定时中断组织块:OB30、OB31、OB32、OB33、OB34、OB35、OB36、OB37、OB38 。
CPU可以定时中断去执行这些模块中的程序,即:每隔一段时间就停止当前的程序,转去执行定时中断组织块中的程序,执行结速后再返回。相当于单片机的定时中断。 这9个组织块功能相同,你可以选择其中之一使用,区别是它们的中断优先级不同,如果程序中用到了多个定时中断组织块,应设好它们的执行优先级。
S7-300CPU 可用的定时中断组织模块是OB35,在300站点的硬件组态中,打开CPU属性设置可以看到其它的中断组织块为灰色。OB35默认的调用时间间隔为100ms 我们可以根据需要更改,定时范围是1-60000毫秒(ms) 设置中断时间间隔如下图所示
注意:设置的时间必须大于OB35中程序执行所花费的时间。
例如:如果中断时间间隔为50ms而OB35中的程序花费的时间是70ms,那么OB35中的程序还没执行完毕就产生第二次中断,程序就会出错,这显然是我们不想看到的结果。
以现在的技术,让你间隔一小时去月球拿一块石头你能做到吗??? 去月球所用的时间大于去月球的时间间隔,你做不到吧???
正确设置:中断时间间隔大于OB35中程序执行完毕一次所需的时间
使用FB41实现PID控制
在自动化领域中常常要用到PID控制,而常规仪表里一个控制器就只能实现一路的PID控制,如果要现实多路的PID控制成本就会变得非常高,而且不便于我们集中控制与管理。
经过学习西门子S7-300PLC,我们可以使用模块FB41来实现PID控制,FB41就相当于我们常规仪表里的控制器,既然是PID控制器就应该能够设定P、I、D参数。即:比例度、积分时间、微分时间。常规仪表的面板上可以更改PID参数,又有手动/自动切换按钮等。
今天我们要做的就是使用S7-300PLC 的FB41来代替常规仪表,如何使用FB41来实现PID控制的呢??
FB41是一个功能块,它所能实现的功能(PID)已经由专业人员设计好,我们只要调用它,并根据我们的需要来更改相应的参数即可使用。所以我们不用理会FB41是如何实现比例运算、积分运算、微分运算等等这些问题,只需要会调用就可以了。
现在我们已经知道FB41就相当于常规仪表里的一个控制器了,那么我们是如何使用FB41并给它设置相应的参数呢??
FB41相当于一个子程序,它是用来实现PID运算的,我们只需要每隔一段时间去调用这一“子程序”就可以实现PID控制。所以我们在OB35里调用FB41就可以了,调用的频率可以在属性里面设置。
我们是在OB35里调用FB41的所以在OB35里可以看到FB41的端口。因此可以直接在这些端口上直接设参数。 如下图所示
到这里有人会问,既然可以在OB35里面可以直接给FB41端口赋参数,为什么还要背景数据块DB呢???
其实PLC在运行过程中会先检查,用户有没有在OB35里给FB41的端口设参数,如果有就直接使用端口上的参数,如果没有就到背景数据表里面去取参数。
所以我们可以在两个地方设置参数,在数据表里面参数只能是一个固定值,不能是一个变量,所以当程序
下载到PLC之后就不能更改数据表里面的参数了。
给端口赋参数是一个变量,变量里面存有参数,当我们需要改变参数只需要改变相应的变量就只以了。
结合两种方法的优缺点,我们可以同时在两个地方设参数,有些参数不需要经常改变的,我们就直接在DB里面设定。要经常改变的参数就在FB41的端口上设定。
经过这一节我们已经对FB41有了一个基本的认识了,下一节我们讲如何使用,欢迎你观看下一节。
FB41背景数据块参数设置
使用FB41作PID控制时,设置参数非常烦琐,下面是单回路PID控制的参数设置实例,在表格第三列有的就是我们需要设置的,空白的我们就不用改变,按默认值就可以了。
参数 COM_RST MAN_ON PVPER_ON P_SEL I_SEL IN_HOLD I_ITL_ON D_SEL CYCLE SP_INT PV_IN PV_PER MAN GAIN TI TD TM_LAG DEADB_W LMN_HLM LMN_LLM PV_FAC PV_OFF LMN_FAC LMN_OFF I_ITLVAL DISV LMN LMN_PER QLMN_HLM QLMN_LLM LMN_P LMN_I LMN_D PV ER
描述
完全重启动 手动/自动 测量值选择 比例输出开关 积分输出开关 积分输出冻结 积分初始化 微分输出开关
采样量时,条件CYCLE>=1ms 给定值
测量值1 测量值2 手动值 比例增益
积分时间,条件TI>=CYCLE 微分时间,条件TD>=CYCLE 微分作用时滞时间, 条件TM_LAG>=CYCLE/2 死区宽度
控制器输出上限 控制器输出下限 过程变量因子 过程变量偏移 控制器输出因子 控制器输出偏移 积分初始化值
扰动量(前馈控制系统中才用到)
控制器输出值
控制器输出值(格式化后) 达到上限 达到下限
比例分量输出 积分分量输出 微分分量输出 测量值输出 实际误差
设置实例 FALSE FALSE TRUE TRUE 100ms 在引脚中设置 在引脚中设置
按默认 按默认
在引脚中设置
关于FB41块的各个管脚的功能
A:所有的输入参数:
COM_RST: BOOL: 重新启动PID:当该位TURE时:PID执行重启动功能,复位PID内部参数到默认值;通常在系统重启动时执行一个扫描周期,或在PID进入饱和状态需要退出时用这个位;
MAN_ON: BOOL:手动值ON;当该位为TURE时,PID功能块直接将MAN的值输出到LMN,这可以在PID框图中看到;也就是说,这个位是PID的手动/自动切换位;
PEPER_ON: BOOL:过程变量外围值ON:过程变量即反馈量,此PID可直接使用过程变量PIW(不推荐),也可使用 PIW规格化后的值(常用),因此,这个位为FALSE;
P_SEL: BOOL:比例选择位:该位ON时,选择P(比例)控制有效;一般选择有效;
I_SEL: BOOL:积分选择位;该位ON时,选择I(积分)控制有效;一般选择有效;
INT_HOLD BOOL:积分保持,不去设置它;
I_ITL_ON BOOL:积分初值有效,I-ITLVAL(积分初值)变量和这个位对应,当此位ON时,则使用I-ITLVAL变量积分初值。一般当发现PID功能的积分值增长比较慢或系统反应不够时可以考虑使用积分初值;
D_SEL : BOOL:微分选择位,该位ON时,选择D(微分)控制有效;一般的控制系统不用;
CYCLE : TIME:PID采样周期,一般设为200MS; SP_INT: REAL:PID的给定值;
PV_IN : REAL:PID的反馈值(也称过程变量);
PV_PER: WORD:未经规格化的反馈值,由PEPER-ON选择有效;(不推荐) MAN : REAL:手动值,由MAN-ON选择有效; GAIN : REAL:比例增益; TI : TIME:积分时间; TD : TIME:微分时间;
TM_LAG: TIME:和微分有关;
DEADB_W: REAL:死区宽度;如果输出在平衡点附近微小幅度振荡,可以考虑用死区来降低灵敏度;
LMN_HLM: REAL:PID上极限,一般是100%;
LMN_LLM: REAL:PID下极限;一般为0%,如果需要双极性调节,则需设置为-100%;(正负10V输出就是典型的双极性输出,此时需要设置-100%); PV_FAC: REAL:过程变量比例因子
PV_OFF: REAL:过程变量偏置值(OFFSET) LMN_FAC: REAL:PID输出值比例因子;
LMN_OFF: REAL:PID输出值偏置值(OFFSET);
I_ITLVAL:REAL:PID的积分初值;有I-ITL-ON选择有效;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库精心编制的 S7-300 PID 使用说明在线全文阅读。
相关推荐: