实例要求:现有压力传感器量程-100—100mpa,类型为4-20ma,使用1200plc编写程序段实现:当测量压力在-70—90mpa时,点亮压力指示灯。
一、首先了解下西门子几个特殊数值的含义:65536、32767、27648、16384。
二、这里我们需要用到的数值27648,然后我们还需要掌握模拟量转换的公式:实时测量=(量程上限-量程下限)/(模拟量上限-模拟量下限)*(aiw-模拟量下限)+量程下限。
三、下面我们用scl语言编写上述案例; 1、首先搭建硬件与组态新建项目,插入cpu1212,模拟量输入模块ai,这里测量类型选择:电流;
电流范围:这里需要特别注意一下:Ø 选择4-20ma时,对应的plc工程量数值即为0-27648,因为模块已经组态,会自动给你转换,所以不需要再去换算;Ø 若选择0-20ma时,因为我们案例中传感器类型是4-20ma的,所以这里plc工程量数值需要转换一下,即为5530-27648(27648*4/20=5530)。
2、创建一个db全局数据块;变量说明:amax:模拟量上限;amin:模拟量下限;rmax:量程上限;rmin:量程下限。
3、添加两个fb块,分别命名为anaglog_in_1/anaglog_in_2,创建两个fb块的原因:
本案例我们用两种方法给大家展示模拟量的转换:
Ø 一种是用博途软件自带的指令:标准化norm_x与缩放scale_x来实现;
“标准化”指令通过以下公式进行计算:out = (value – min) / (max –min)“缩放”指令将按以下公式进行计算:out = [value ∗ (max– min)] + min
具体的含义与应用大家可以看下博途软件f1帮助文档,这里就不展开说明了。Ø 另一种是用传统的数学计算,即利用公式实时测量=(量程上限-量程下限)/(模拟量上限-模拟量下限)*(aiw-模拟量下限)+量程下限 来实现。
4、下面我们一一来展示下程序的编制:a、首先看下第一种方法在fb_anaglog_in_1中编写,变量声明如下:
b、程序编写
c、第二种方法在fb_anaglog_in_2中编写,同样声明如下变量:
d、程序编写
· 主程序调用:完成fb程序编写后,开始主程序段编写,为了方便观看这里就用lad语言展示;
· 指示灯程序:
5、程序与监控与hmi画面演示
西门一级代理商,西门子代理商,西门子变频器,西门子PLC,西门子伺服电机