一个关于防干锅的装置-西门子PLC的模拟量控制

描述

程序

前几天自己在家哄孩子,给孩子做饭,由于自己不留神造成忘记关火,锅被干烧的事故,虽然事后发现得早,但是当时我就想做一个防止干烧的小装置.

因此我们需要了解西门子PLC时如何使用模拟量的输入的.

程序

模拟值的处理:

模拟量信号模块可以提供输入信号,或等待表示电压范围或电流范围的输出值。这些范围是 

±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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
也很棒 2021-05-23
0 回复 举报
看了半天,没看懂,也没有程序 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分