sunnykmc
SunnyKMC
级别: 工控侠客
精华主题: 0
发帖数量: 285 个
工控威望: 3741 点
下载积分: 28848 分
在线时间: 412(小时)
注册时间: 2014-04-20
最后登录: 2024-03-18
查看sunnykmc的 主题 / 回贴
楼主  发表于: 2018-08-23 08:53
图片:
图片:
关于流量功能区块Function blocks,
之前的前辈写的程式中有Function blocks
我这块不是很熟
请问有人可协助解释下面程式中,转换程序内容?


IF IN_MAX >= IN_VALUE AND IN_VALUE >= IN_MIN OR IN_MAX <= IN_VALUE AND IN_VALUE <= IN_MIN THEN;

REAL_IN_MAX := INT_TO_REAL (IN_MAX);
REAL_IN_MIN := INT_TO_REAL (IN_MIN);
REAL_OUT_MAX := INT_TO_REAL (OUT_MAX);
REAL_OUT_MIN := INT_TO_REAL (OUT_MIN);
REAL_IN_VALUE := INT_TO_REAL (IN_VALUE);
REAL_T0 := REAL_IN_MAX - REAL_IN_MIN;
REAL_R0 := ABS(REAL_T0);
REAL_T1 := REAL_OUT_MAX - REAL_OUT_MIN;
REAL_R1 := ABS(REAL_T1);
REAL_T2 := REAL_R0 / REAL_R1;

IF REAL_T0 < 0.0 XOR REAL_T1 <0.0 THEN;
REAL_T3 := REAL_IN_MIN - REAL_IN_VALUE;
ELSE;
REAL_T3 := REAL_IN_VALUE - REAL_IN_MIN;
END_IF;
REAL_T4 := REAL_T3 / REAL_T2;
REAL_T5 := REAL_T4 + REAL_OUT_MIN;
REAL_X0 := REAL_T5;
OUT_VALUE := REAL_TO_INT (REAL_X0);

END_IF;
[ 此帖被sunnykmc在2018-08-23 09:14重新编辑 ]
sunnykmc
SunnyKMC
级别: 工控侠客
精华主题: 0
发帖数量: 285 个
工控威望: 3741 点
下载积分: 28848 分
在线时间: 412(小时)
注册时间: 2014-04-20
最后登录: 2024-03-18
查看sunnykmc的 主题 / 回贴
1楼  发表于: 2018-08-23 11:28
先看第一行,
IF IN_MAX >= IN_VALUE   AND   IN_VALUE >= IN_MIN   OR   IN_MAX <= IN_VALUE   AND   IN_VALUE <= IN_MIN THEN;

目前看起来是
当 IN_VALUE (AD CH01 2000) 有值时 他会去比较
如果 IN_MAX (类比输入&6000)流量器具显示最大值 大于等于 IN_VALUE 实际值 (AD CH01 2000) 并且, IN_VALUE 实际值(AD CH01 2000) 大于等于IN_MIN(类比输入&0)
, 或 ,                                     //在来下面看起怪怪的,好像实际值为负值
IN_MAX (类比输入&6000) 小于等于 IN_VALUE 实际值 (AD CH01 2000) 并且
IN_VALUE 实际值 (AD CH01 2000) 小于等于 IN_MIN(类比输入&0) ,
则执行下面动作
sunnykmc
SunnyKMC
级别: 工控侠客
精华主题: 0
发帖数量: 285 个
工控威望: 3741 点
下载积分: 28848 分
在线时间: 412(小时)
注册时间: 2014-04-20
最后登录: 2024-03-18
查看sunnykmc的 主题 / 回贴
2楼  发表于: 2018-08-24 09:56
所以会有负值可能为预留电压输入-10V~ + 10V  ?
目前是使用电流输入4mA〜20mA
[ 此帖被sunnykmc在2018-08-24 10:02重新编辑 ]
sunnykmc
SunnyKMC
级别: 工控侠客
精华主题: 0
发帖数量: 285 个
工控威望: 3741 点
下载积分: 28848 分
在线时间: 412(小时)
注册时间: 2014-04-20
最后登录: 2024-03-18
查看sunnykmc的 主题 / 回贴
3楼  发表于: 2019-02-27 16:59
沉下去了自推一下