前几天自己在家哄孩子,给孩子做饭,由于自己不留神造成忘记关火,锅被干烧的事故,虽然事后发现得早,但是当时我就想做一个防止干烧的小装置.
模拟值的处理:
模拟量信号模块可以提供输入信号,或等待表示电压范围或电流范围的输出值。这些范围是
±10 V、±5 V、±2.5 V 或 0 - 20 mA。模块返回的值是整数值,其中,0 到 27648 表示电流的额定范围,-27648 到 27648 表示电压的额定范围。任何该范围之外的值即表示上溢或下溢。
在控制程序中,很可能需要以工程单位使用这些值,例如表示体积、温度、重量或其它数量
值。要以工程单位使用模拟量输入,必须首先将模拟值标准化为由 0.0 到 1.0 的实数(浮点)
值。然后,必须将其标定为其表示的工程单位的最小值和最大值。对于要转换为模拟量输出值的以工程单位表示的值,应首先将以工程单位表示的值标准化为 0.0 和 1.0 之间的值,然后将其标定为 0 到 27648 之间或 -27648 到 27648 之间(取决于模拟模块的范围)的值。
例如,假设模拟量输入的电流范围为 0 - 20 mA。模拟量输入模块返回的测量值介于 0 和 27648 之间。在此示例中,假设使用此模拟量输入值测量 50 °C 到 100 °C 的温度。几个采样值的含义如下:
0 ---50 °C
6192 ---62.5 °C
12384--- 75 °C
18576 ---87.5 °C
27648 ---100 °C
在 PLC 应用中,典型的方法是将模拟量输入值标准化为 0.0 至 1.0 之间的浮点值。然后,需要将得到的值换算为工程单位范围内的浮点值。为简单起见,以下 LAD 指令使用常数值表示范围;实际上可能选择使用变量:
比如我们在烘干炉程序中使用的FC106
UNSCALE功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。UNSCALE功能使用以下等式:
OUT = [ ((IN朙O_LIM)/(HI_LIM朙O_LIM)) * (K2朘1) ] + K1,并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。
BIPOLAR:假定输出整型值介于 -27648和27648之间,因此,K1 = -27648.0,K2 = +27648.0
UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0
如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。
实例:
编辑:jq
-
电流
+关注
关注
40文章
6850浏览量
132121 -
plc
+关注
关注
5010文章
13277浏览量
463109 -
电压
+关注
关注
45文章
5601浏览量
115712 -
程序
+关注
关注
117文章
3785浏览量
81009
原文标题:我想发明一个防干锅的装置-西门子PLC的模拟量控制
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论