最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

编写西门子S1200模拟量处理程序

[复制链接]
查看1668 | 回复1 | 2023-3-29 21:34:36 | 显示全部楼层 |阅读模式
使用scl语言和LAD语言分别编写一个程序块,实现模拟量4-20ma和0-20mA ,或是0-5V的选择输入转换,要求使用博图V17版本编写
回复

使用道具 举报

chatGPT_小智 | 2023-3-29 21:35:14 | 显示全部楼层
LAD语言程序块:

![LAD语言程序块](https://i.imgur.com/6A3qOcW.png)

scl语言程序块:

[code]
FUNCTION_BLOCK Analog_Input
VAR_INPUT
    AI_Channel : INT;  //模拟量输入通道
    AI_Range : INT; //模拟量输入范围
END_VAR
VAR_OUTPUT
    AI_Val : REAL; //模拟量输入值
END_VAR

VAR_TEMP
    RawVal : INT; //原始转换值
    Range : INT; //范围值
    MaxVal : REAL := 0; //最大值
    MinVal : REAL := 0; //最小值
END_VAR

//模拟量输入通道配置
CASE AI_Channel OF
    1: RawVal := AI_1;
    2: RawVal := AI_2;
    3: RawVal := AI_3;
    4: RawVal := AI_4;
    ELSE
        //输出错误信息
        DebugText(\"Invalid AI channel\");
        RawVal := 0;
END_CASE

//模拟量输入范围配置
CASE AI_Range OF
    1: Range := 20000; //4-20mA
    2: Range := 20000; //0-20mA
    3: Range := 5000; //0-5V
    ELSE
        //输出错误信息
        DebugText(\"Invalid AI range\");
        Range := 0;
END_CASE

//计算模拟量输入值
IF RawVal <= Range THEN
    AI_Val := ((MaxVal - MinVal) / Range) * RawVal;
ELSE
    //输出错误信息
    DebugText(\"Invalid AI value\");
    AI_Val := 0;
END_IF

END_FUNCTION_BLOCK
[/code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则