把转换程序写成了一个带参数子程序(Ai_Scale),方便随时调用。
演示程序和库文件下载:模拟量计算实例,西门子S7-200PLC实例
计算和反向计算演示
参数表:
Ai_In 【整数】:模拟量输入,可直接输入Aiw0的值
Ai_H和Ai_L【整数】: 过程量高低限
- 如果输入的是0-10V或者0-20mA,高低限分别是32000和0
- 如果是4-10mA或者2-10V,高低限则是32000和6400
- 如果是0-5V或者0-10mA则是16000和0。
- …其他类推
Scale_H和Scale_L【浮点数】:量程高低限
- 如果是0-5M的液位计,则高低是5和0
- 如果是0-1.6Mpa压力表,则高低限是1.6和0
- 如果是-50-100度的温度计则分别是100和-50
- …其他类推
子程序梯形图:
计算公式:
模拟量计算工程数值的公式
Value=[(Scale_H-Scale-L) * (Ai_In-Ai_L) / (Ai_H-Ai-L)] + Scale_L
工程数值反推模拟量的公式(Value_In为输入的值,比如温度值,Ai为输出的模拟量,可直接输出到AQW寄存器)
AI=[(Value_In-Scale_L) * (Ai_H-Ai-L) / (Scale_H-Scale_L)] + Ai_L
调用方法:
直接在主程序调用,输入相应参数即可。
以下参数为采集一个0-5M量程、0-10V输出的液位计。
数据测试:
直接把Ai_In设置一个值,分别设置为0,16000,32000,对应换算出的结果应该分别为0m,2.5m,5m