4758866
级别: 略有小成
精华主题: 0
发帖数量: 124 个
工控威望: 268 点
下载积分: 863 分
在线时间: 352(小时)
注册时间: 2012-10-29
最后登录: 2024-09-17
查看4758866的 主题 / 回贴
楼主  发表于: 2019-11-01 22:38
sngX1 := UINT_TO_REAL (uintX1);
sngX2 := UINT_TO_REAL (uintX2);
sngY1 := UINT_TO_REAL (uintY1);
sngY2 := UINT_TO_REAL (uintY2);
sngX := UINT_TO_REAL (uintX)*EXPT (10.0, uintDecPtDiff);

IF sngX <= sngX1 THEN
    uintY := REAL_TO_UINT (sngY1);
ELSIF sngX >= sngX2 THEN
    uintY := REAL_TO_UINT (sngY2);
ELSE
    uintY := REAL_TO_UINT (sngY1+(sngY2-sngY1)/(sngX2-sngX1)*(sngX-sngX1));
END_IF;
apei2014
工控的世界,我不懂
级别: 论坛先锋
精华主题: 0
发帖数量: 1191 个
工控威望: 1834 点
下载积分: 77019 分
在线时间: 511(小时)
注册时间: 2016-08-15
最后登录: 2024-09-28
查看apei2014的 主题 / 回贴
1楼  发表于: 2019-11-02 08:29
我没用过欧姆龙的,不过这个看起来也不难理解吧。
sngX1 := UINT_TO_REAL (uintX1);这个是数据类型转换,整型转换成浮点型,
IF sngX <= sngX1 THEN
    uintY := REAL_TO_UINT (sngY1);
ELSIF sngX >= sngX2 THEN
    uintY := REAL_TO_UINT (sngY2);
比较,转换,赋值。
ELSE
    uintY := REAL_TO_UINT (sngY1+(sngY2-sngY1)/(sngX2-sngX1)*(sngX-sngX1));
END_IF;
计算,赋值。
东隅已逝,桑榆非晚。