西门子PLC300模拟量型号处理程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西门子PLC300模拟量型号处理程序在西门子PLC控制工业中,模拟量处理是很普片和多种的处理,当仪表采集到的信号通常为mA
10
~
~
0等常见的电
4、V
~
0、mA
20
20
信号;在PLC中必须经过转换才能处理。
现在主要针对mA
~
20
4模拟量进行编程,希望能对大家
20
~
0、mA
有所帮助,在梯形图之后我把STL的代码程序附加出来,方便仿真。硬件配置什么的我就不作展示,直接进行程序详解:
在一个系统中,模拟量存在很多了,因此为了批量处理,最好是建立一个模拟处理功能块来实现;
首先插入一个FC功能块,
在空白处右键—插入对象—功能
将其设置为FC600
打开FC600插入变量如下:
变量名称可以根据自己需要设置名称;
这三段程序主要的功能:
因为mA
~
20
4在PLC中0在PLC中对应的数值为0~27648,mA
20
~
对应的数值为5330~27648,如果你采集的信号是mA
4,那么在程
~
20
序段3中应该将0改为5330,这样输入的模拟量信号就是在采集的信号范围内,到此模拟量信号就被存入TEMP5中了。
将模拟量信号转换为实数,存入TEMP2中
将工程量的范围存入到TEMP3中,这里的工程量范围就是你检测仪表上的范围,例如你一个压力表的量程为0~3MPa ,那么你的高限就是3MPa ,你的底限就是0,;
TEMP2为西门子处理后的模拟量为实数,除以内部mA 20~0的范围,如果是mA 20~4那就应该除以22318,这部之后得到的是一个百分比,再用
这个百分比乘以工程量的范围,便得到模拟量的工程量值,这个工程量值加上工程量底限,便是工程量的实际值。
这个功能块就完成,之后就在OB1或者其它FC块中直接调用,在OB1中调用如下:PIW256为模拟量输入通道,将模拟量的值存入共享数据块DB1中。
同时PLC300也提供自己的功能块FC105和FC106来处理模拟量:
如果I0.0等于1,则激活,当信号为双极型的时,则I2.0要为1,当为单极性的话I2.0则为0,MW10为整型值,MD20、MD30为量程,MD40则为模拟量的工程量值,FC106则与他相反,将工程量转化为
整形值。
程序的STL
程序段1:
L #AI_IN
T #TEMP0
NOP 0
程序段2:
L #TEMP0
L 27648
>=I
= L 18.0
A L 18.0
JNB _001
L 27648
T #TEMP4
_001: NOP 0
A L 18.0
NOT
JNB _002
L #TEMP0
T #TEMP4
_002: NOP 0
程序段3:
L #TEMP4
L 0
= L 18.0
A L 18.0
JNB _003
L 0
T #TEMP5
_003: NOP 0
A L 18.0
NOT
JNB _004
L #TEMP4
T #TEMP5
_004: NOP 0
程序段4:
A(
L #TEMP5
ITD
T #TEMP1
SET
SAVE
CLR
A BR
)
JNB _005
L #TEMP1
DTR
T #TEMP2
_005: NOP 0
程序段5:
L #MAX
L #MIN
-R
T #TEMP3
NOP 0
程序段6:
A(
L #TEMP2
L 2.764800e+004
/R
T #TEMP2
AN OV
SAVE
CLR
A BR
)
JNB _006
L #TEMP2
L #TEMP3
*R
T #TEMP2
_006: NOP 0
程序段7:
L #TEMP2
L #MIN
+R
T #V
NOP 0
OB 调用程序:
CALL "_AI_CONVERTER_"
AI_IN:=PIW256
MAX :=1.600000e+003
MIN :=0.000000e+000
V :=DB1.DBD0
NOP 0
另外我在以前的一个项目用过STL 编程,那时候做的程序如下,各位有兴趣可以试试:
功能块FC31,设位置AIFC
程序段1:
A #MODLE //模拟量输入形式0:mA 20~4,1:mA 20~0 JC LP
L #ANALOG //模拟量输入值
ITD
DTR
L 0.000000e+000
>=R
JC LP3
L 0.000000e+000
JU LP4
LP3: L #ANALOG //模拟量输入值
ITD
DTR
L 2.764800e+004
/R
L #RANGE //传感器量程
*R
L #OFFSET //零点偏移量
+R
LP4: T #OU1 //计算结果
BEU