中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

施耐德电气论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 施耐德电气PLC → 浏览主题: 建立一个自己的功能块
发表新帖 回复该主题
回帖:2个,阅读:707 [上一页] [1] [下一页]
* 帖子主题:

建立一个自己的功能块

分享到
38849
jint 管理员
文章数:20683
年度积分:359
历史总积分:38849
品牌积分(施耐德):782
注册时间:2007/8/30
发站内信
发表于:2022/5/24 9:14:37
#0楼
施耐德电气李工

一个功能块建立的案例

之所以建立功能块主要是为了在程序中重复使用,使编程效率提高。

比如,我们建立一个水塔水位的控制程序,这个程序只要是水塔水位控制都可以用,我们把这个程序定义成一个功能块,这样再遇到这种控制时,就不需要重复编程,直接调用这个功能块就可以了。

首先我们编这个控制程序。控制水塔,我们需要知道进水量i_diWaterIn, 我们还要知道设定的高水位 i_diSetHigh,和低水位 i_diSetLow, 然后我们测量出水塔水量 q_diValue和控制进水量的开关q_xOpenWaterIn。我们用一个开关K来代表用户打开水龙用水,这时水量会减少。我们设定这个水塔储水量为1000立方。初始水量为500,我们编一个增减程序来模拟水量增减。

这个程序如下:

IF k THEN

q_diValue:= q_diValue-2;

ELSE

q_diValue:= q_diValue+1;

END_IF

IF q_diValue>= i_diSetHigh THEN

q_diValue:= q_diValue-1;

END_IF

IF q_diValue >= i_diSetHigh THEN

q_xOpenWaterIn := FALSE;

ELSE

q_xOpenWaterIn := TRUE;

END_IF

IF q_diValue <= i_diSetLow THEN

q_xOpenWaterIn := TRUE;

ELSE

q_xOpenWaterIn := FALSE;

END_IF

IF q_xOpenWaterIn THEN

q_diValue:= q_diValue + 2;

ELSE

q_diValue:= q_diValue ;

END_IF

附件 1.jpg

初始数据

附件 2.jpg

仿真

附件 3.jpg

我们做好了这个程序,我们就可以拿这个程序控制其它的水塔。我们把它做成功能块。

附件 4.jpg

附件 5.jpg

选择功能块

附件 6.jpg

定义输入,输出,把程序拷贝进程序区

附件 7.jpg

第二个水塔用功能块

调入功能块

附件 8.jpg

附件 9.jpg

填入数据

附件 10.jpg

仿真情况

附件 11.jpg
温馨提示:
电话:0755-26546361
邮箱:blog@gkong.com
微信公众号:工控论坛;微信号gkongbbs;
不定期修改账号密码;不要在多个网站用同一账号密码
可随时站内信联系,工作日可拨打电话或发邮件咨询相关问题
1722
lingms
文章数:292
年度积分:50
历史总积分:1722
品牌积分(施耐德):114
注册时间:2013/10/5
发站内信
发表于:2022/5/25 9:10:43
#1楼
表情表情表情
2551
janrainy
文章数:547
年度积分:294
历史总积分:2551
品牌积分(施耐德):25
注册时间:2020/5/30
发站内信
发表于:2022/5/25 12:50:41
#2楼
就是变量参数不能太多。
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003