[西门子] 模拟量万能公式,不管什么品牌的PLC都适用!

[复制链接]
查看53085 | 回复0 | 2024-3-3 17:21:49 | 显示全部楼层 |阅读模式


01LAD方法实现
(1)计算公式说明


[(IN0-IN1)/(IN2-IN1)]*(IN4-IN3)+IN3

    IN0:模拟量输入信号,数据类型为整数

    IN1:模拟量信号下限,数据类型为整数

    IN2:模拟量信号上限,数据类型为整数

    IN3:工程量数值下限,数据类型为实数

    IN4:工程量数值上限,数据类型为实数

(2)程序编写说明




















02SCL方法实现(1)计算公式说明


[(Raw-Dmin)/(Dmax-Dmin)]*(Emax-Emin)+Emin

    Raw:模拟量输入信号,数据类型为整数

    Dmin:模拟量信号下限,数据类型为整数

    Dmax:模拟量信号上限,数据类型为整数

    Emin:工程量数值下限,数据类型为实数

    Emax:工程量数值上限,数据类型为实数

(二)程序编写说明
FUNCTION FC1 : VOID //函数定义

VAR_INPUT           //输入变量定义

    Raw,Dmin,Dmax: INT;

    Emin,Emax: REAL;

END_VAR

VAR_OUTPUT          //输出变量定义

    OutReal: REAL;

    OutPercentage:REAL;

END_VAR

VAR_TEMP            //临时变量定义

    RawTemp: INT;

END_VAR

BEGIN

    IF (Emin < Emax) AND (Dmin < Dmax) THEN//判断上下限值是否设置合理

        IF Raw < Dmin THEN RawTemp := Dmin;//输入值超下限直接取下限

        END_IF;

        IF Raw > Dmax THEN RawTemp := Dmax;//输出值超上限直接取上限

        END_IF;

        IF (Raw >= Dmin) AND (Raw <= Dmax) THEN RawTemp := Raw;//输入正常直接读取输入值

        END_IF;

        OutReal := (INT_TO_REAL(RawTemp-Dmin)/INT_TO_REAL(Dmax-Dmin))*(Emax-Emin)+Emin;//数量类型转换和计算公式

        OutPercentage := (OutReal/(Emax-Emin))*100.0;

    ELSE   //上下限值设置不合理直接输出零

        OutReal := 0.0;

        OutPercentage := 0.0;

    END_IF;

END_FUNCTION

(文章来源网络,仅供参考。评论处大家可以补充文章解释不对或欠缺的部分)

有奖征稿

如果你在学习PLC过程中有自己的成长晋升的故事;

如果你对PLC、电工电气、自动化工控这块有自己的见解;

如果你在工作中遇到PLC等技术问题有解决之道。

欢迎来投稿,投稿作品只要“PLC发烧友”采用,就可获得技成内部教材2-4本(奖品视稿件内容质量而定)

投稿要求:

1.工控行业相关内容(不限于PLC、电工、触摸屏、变频器、机器人、伺服等内容),技术文章优选。

2.投稿作品必须为原创作品,不得抄袭、剽窃,不能侵犯他人权益

3.以word文档形式投稿,投稿时请备注联系方式(例如:微信、QQ、手机号以便我们与你联系)。

投稿邮箱:

354858790@qq.com

收到稿件后,不管是否采用,我们会在一周内给出答复

戳“阅读原文”,免费学习电工、plc等更多视频教程


你点的每个赞,我都认真当成了喜欢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则