4758866
级别: 略有小成
精华主题: 0
发帖数量: 121 个
工控威望: 264 点
下载积分: 854 分
在线时间: 345(小时)
注册时间: 2012-10-29
最后登录: 2024-06-02
查看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
发帖数量: 1184 个
工控威望: 1826 点
下载积分: 75562 分
在线时间: 501(小时)
注册时间: 2016-08-15
最后登录: 2024-06-03
查看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;
计算,赋值。
东隅已逝,桑榆非晚。