gk-auto 发表于 2019-1-23 22:08:36

S71200PLC模拟量编程方法与计算原理

前几天有个朋友问了个有关于S7-1200PLC中的模拟量的转换问题,他跟我说S7-300中有FC105和FC106用于做模拟量的转换过程,S7-200 中也有scaling转换库指令,可以用于模拟的转换。但在S7-1200中为什么就没有相应的库去做转换呢?

对于S7-1200的PLC来讲,并没有S7-300中使用到的FC105和FC106这两个块的,但是做法有要几种,这里跟大家说两种方法:
(方法一)S7-1200中提供了两条指令供大家使用,大家在使用者两条指令时,就可以用于完成模拟量的转换过程。(1)NORM_X:标准化(2)SCALE_X:缩放
(1)NORM_X:标准化
“标准化”指令,通过将输入 VALUE 中变量的值映射到线性标尺对其进行标准化。 可以使用参数 MIN 和 MAX 定义范围的限值。 输出 OUT 中的结果经过计算并存储为浮点数,这取决于要标准化的值在该值范围中的位置。 如果要标准化的值等于输入 MIN 中的值,则输出 OUT 将返回值“0.0”。 如果要标准化的值等于输入 MAX 的值,则输出 OUT 需返回值“1.0”。如果是用于模拟量的转换,则MIN和MAX表示的就是我们模拟量模块输入信号对应的数字量的范围,而VALUE表示的就是我们的模拟量模块的采用值。如下图所示:


http://p5.qhimg.com/t01d07f2c462f2cdd62.jpg?size=640x563(2)SCALE_X:缩放
“缩放”指令,通过将输入 VALUE 的值映射到指定的值范围来对其进行缩放。 当执行“缩放”指令时,输入 VALUE 的浮点值会缩放到由参数 MIN 和 MAX 定义的值范围。 缩放结果为整数,存储在 OUT 输出中。
http://p8.qhimg.com/t0141089ded28c8e838.jpg?size=583x368所以通过这两个指令,我们就可以实现模拟量的转换过程。如下图所示:
http://p1.qhimg.com/t01eac1c81a93414280.jpg?size=640x131

(方法二) 可以自己通过转换指令(CONVERT)及数学函数中的计算指令(CALCULATE),按照模拟量的转换公式编写这个计算指令。
http://p4.qhimg.com/t0121c5ae34311e133c.jpg?size=640x202
模拟量转换公式:
http://p3.qhimg.com/t01eea37705dfc81041.jpg?size=478x526
编写计算公式时,首先定义好各个管脚所对应的公式中的名称,IV:IN1Ish:IN2Isl:IN3Osh:IN4Osl:IN5OV:OUT
http://p1.qhimg.com/t015a728a92b13fb709.jpg?size=640x232在生产的指令上面输入相应的参数即可:
http://p3.qhimg.com/t01d5011eaa128a6bd3.jpg?size=640x184当然在会用的过程中,也可以直接使用带参数的FC按照模拟量的转换公式去编写相应的程序。
若有不对之处请指正,谢谢

Abercormfus 发表于 2019-1-23 22:08:37

{forum}这个类目最活跃了!赞一个!

在人间 发表于 2019-1-23 22:09:02

我只是路过打酱油的。

云淡风轻 发表于 2019-1-23 22:12:52

激动人心,无法言表!

wx_yhiWL2TT 发表于 2019-1-23 22:15:54

绝对干货,楼主给力,支持了!!!

探索.足迹 发表于 2019-1-23 22:29:45

真是难得给力的帖子啊。

tody0427 发表于 2019-1-23 22:31:16

淡定,淡定,淡定……

dp19980902 发表于 2019-1-23 22:34:18

看到这帖子真是高兴!

312215855 发表于 2019-1-23 22:35:00

在遇到你之前我对人世间是否有技术大佬保有怀疑,现在我是彻底被你征服了

大鹏 发表于 2019-1-23 22:36:20

看了楼主的帖子,不由得精神一振,豁然开朗,牛掰
页: [1] 2 3 4
查看完整版本: S71200PLC模拟量编程方法与计算原理