在PLC中除了基本逻辑的编程,模拟量的应用也是非常广泛的。比如采集现场设备的温度、压力、流量、速度等都可以使用模拟量编程的方式。而在现场的设备又有可能有大量的传感器,这就对我们编程人员来说是一个重复性劳动。而S7-300的FB块中就能为我们减少这种数据量比较大而带来的重复性劳动。
一、控制要求1.使用温度传感器读取室内温度,当室内温度超过30℃报警指示灯以1HZ的频率闪烁;
2.当室内温度低于5℃时,电机停止运行;
3.使用温度传感器读取室外温度值。
通常我们会使用FC块或者FB块编程,然后在OB1块去调用FC或者FB块。而FC和FB块的编程方式都有带参数(图1)和不带参数(图2)的编程方法。
▲ 图1
▲ 图2
1.硬件组态
2.定义FB1块参数接口,分别为AI_input、Osh、Osl等
3.根据公式进行编写程序:[(Osh-Osl)*(AI_Input-Lsl)]/(Lsh-Lsl)+Os
4.在主程序OB1中调用两次FB1程序块:填入AI通道地址、Osh工程高值(查看传感器量程上限)、Osl工程低值(查看传感器量程下限)、Lsh数字量高值(10V电压对应27848)、Lsh数字量低值(0V电压对应0)
在模拟量编程时,我们可能会用到FB或者FC块的编程,编程时也可以根据公式然后用程序表达出来。而我们使用的是FB块的编程,当然可以达到模拟量采集的功能。但是程序给我们造成一种困扰,就是每调用一次FB块就需要分配一个DB块,这样对我们数据的监控不是很方便、而且也浪费DB块资源。所以我们可以利用多重背景的功能,你有想到吗?