一.建立子程序
使用STEP 7-MicroWIN SMART先建立两个子程序,分别命名S_ITR和S_RTI。
二.写程序
1. S_ITR程序及原理
用途是将输入范围中的整数缩放为输出范围中的实数。
此子例程首先会读取由调用POU传递的值:要缩放的输入、输入范围上限 (ISH)、输入范围下限 (ISL)、输出范围上限 (OSH) 和输入范围下限 (OSL)。
下一步是用 OSH 中减去 OSL,以确定存回 OSH 中的输出缩放范围。 接下来,该子例程会从输入中减去 ISL,并将所得的差先转换为双字,然后再转换为实数。 之后,下一条指令将该实数乘以输出范围。
再下一步是用 ISH 减去 ISL,以计算输入缩放范围,将计算所得的值转换为双字,并再转换为实数。
接下来,该子例程用输出缩放范围除以计算所得的实数,并将结果与输出范围下限值 (OSL) 相加,以确定最终输出值。 最后,该子例程会将此值移动到要由调用 POU 使用的子例程的输出。
公式如下:
输出 = [(OSH -OSL) * (输入 - ISL) /(ISH - ISL)] + OSL
表一.S_ITR变量表
以上图片是子程序S_ITR里的程序
2. S_RTI程序及原理
用途是将输入范围中的实数缩放为输出范围中的整数。
此子例程首先会读取由调用POU 传递的值: 要缩放的输入、输入范围上限 (ISH)、输入范围下限 (ISL)、输出范围上限 (OSH) 和输入范围下限 (OSL)。
下一步是用 OSH 中减去 OSL,以确定存回 OSH 中的输出缩放范围。 接下来,该子例程会从输入中减去 ISL,并将所得的差先转换为双字,然后再转换为实数。
下一步是用输入减去 ISL,然后用所得的差乘以计算所得的实数输出缩放范围。
再用 ISH 减去 ISL,以计算输入缩放范围,用输出范围除以计算所得的输入锁定范围,然后将商舍入为双字。
之后,该子例程将根据该数据类型的界限限制检查已舍入的输出值,以确保最终值的准确性。在界限检查后,子例程会将双字值转换为整数,用该整数加上输出范围下限(OSL),并将所得值移动到子例程输出。
公式如下:
输出 = [(OSH -OSL) * (输入 - ISL) /(ISL - ISL)] + OSL
表二.S_RTI变量表
以上图片是子程序S_RTI里的程序
3. 保存
三.建模拟量库
打开软件---文件----创建----对话框改名为:“模拟量”;存储路径建议默认,方便后期添加。
对话框---组件---程序块,选择刚刚保存的程序名称,依次添加。
添加完毕可以点创建。(保护,版本生成随个人意愿)
四.调用模拟量库
打开软件----左边的菜单树----库-----就可以看到自己创建的库了,无需添加,自动生成,前提是你得把你建的库放到系统默认的路径(上图有介绍)。
例1:读取变送器送来的液位信号,0~50m, 用VD0保存。
例2:把设定的阀门开度0~100%,AQW0输出控制。