西门子PLC300模拟量型号处理程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档