单片机温度报警器的温度上下限按键调控的C语言程序怎么编?

单片机温度报警器的温度上下限按键调控的C语言程序怎么编?,第1张

温度报警器就是需要温度传感器不停地对监控的对象进行检测,例如pt100温度传感器,pt100传感器是不同温度下,阻值会不同,在同一温度下,阻值是相同的。根据这个原理通过电路转换成电压,然后模拟量转换成数字量输入到单片机,单片机根据读取到的电压值判断实际温度值,然后根据设定的报警值比较,如果超过 就进行报警动作。

在实际设计过程中那个报警温度的设定,可以直接对那个变量进行加正逗减的,例如

void actfuntion(unsigned char temp)

{

temp++

}

然后在检测到按键有电平跳变的时候,就调用这个含参子函数对定义的温度设定值进行加 *** 作瞎喊,减 *** 作也是一样,还可以在调用的后面进行最举神卖大值或者最小值的判断。

如果觉得这样一下一下的按太麻烦了,可以对按键进行长按连续触发进行判断,就是在定时器里进行判断按下时间,然后不停的调用这个子函数。

当然这个设定值是需要考虑掉电保存的,或者是按键保存。可以在设定好温度值之后,在按下其他的按键,进行把温度设定值 保存到单片机内部eeprom就可以了,不需要保存太多数据的情况下,现在市面上很多单片机都有的内部eeprom就够用的了,不需要进行外部扩展。

然后在单片机上电,也就是主函数的开头进行读取eeprom中保存的设定值。

在我们入门S7-1200时总会涉及到模数转换(AD转换)和数模转化。在这里先介绍如何在PLC中编写模数转化,俗称标定。

首先介绍下S7-1200系统中西门子自带的标定块---NORM_X(标准化)和SCALE_X(缩放)具体说明如下图所示

在程序中如何编写呢,接下来举个实例来说明下。已知:温度传感器量程0~50℃,输出信号4~20ma,目标:在PLC或触摸屏中读出0~50℃的温度。模拟量模块选6ES7 231-4HF32-0XB0 (8路模拟量输入)CPU选CPU 1214C DC/DC/DC 。如何编程:

1、在设备组态中组态PLC及相应模块,然后分配好对应地址 最后组态AI接物斗侍入点的输入类型,如下图所示

2、在OB1或者FC块里编写程序,首先要用标准化指令将模拟量4~20ma和PLC接收的数字量 0~27648关联并有以0~100%形式标准化,然后在使用缩放指令将标准化指令结果罩吵转换成温度传感器的实际量程如此就完成模数转化了。这里模拟量AI输入IW100用DB数据块里INT类型代替,方便模拟数据。具销友体程序见下图

​然后我们介绍另一种方法来标定传感器,也是西门子自带指令。CALCULATE:计算指令。具体如何使用就不多介绍了可以查看博图里帮助。

其实我们做传感器标定是有一个公式的,我们只要掌握了这个公式以后就不需要在求人或者去百度搜索或者去论坛里下载一个别人编辑好的块。别人的东西与自己的习惯终究不一样。接下来我们就介绍这个公式吧。 首先: 定义各变量名称传感器量程上限:HI 、下限: Lo ; PLC接收数字量: 上限 K1、下限 K2;模拟量输入:AI。 然后公式是:( AI-K2 )/(K1-K2)*(HI-Lo)+Lo。 最后让我们来验证下对不对。见下图模拟数据。

这期就介绍到这里,后续将介绍如何建一个通用模拟量标定块,可以反复调用。下期会以梯形图形式和SCL语言分别介绍。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12446115.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存