模拟量控制气缸升起和下降 点击:158 | 回复:0



今生缘

    
  • [版主]
  • 精华:45帖
  • 求助:22帖
  • 帖子:4835帖 | 10148回
  • 年度积分:78
  • 历史总积分:111147
  • 注册:2011年3月02日
发表于:2020-07-09 16:25:07
楼主

对于PLC的输入输出,分数字量和模拟量两种。数字量很好理解,就是在时间和数量上都离散的物理量,比如启/停按钮,行程开关,电磁阀通/断,这些都是数字量。数字量对应PLC存储就是1位,即1比特(binary digit,缩写bit),作为信息的最小单位,只有两种状态:0(低电平)和1(高电平),也表示为FALSE和TRUE。模拟量是在时间或数值上都连续的物理量,常见的如温度、氧含量、压力等。

模拟量使用起来不太方便,不是有多难,而是在程序上需要做必要的处理,本文通过实例,讲一讲如何通过模拟量控制气缸升起和下降。

通过模拟量输出控制运动对象动作,要先确定运动对象的信号类型和量程等参数。信号类型常见的有电流4~20mA和电压0~5V/10V等;量程是设备自身的参量,比如气缸控制阀流量开度为0~100%,K型热电偶测温范围0~1300℃等。

本文选用的气缸控制阀控制特性如图1所示,可以看出信号类型4~20mA,4~12mA对应的1通2,流量开度q对应100~0(%);12~20mA对应的1通4,流量开度q对应0~100(%);

西门子SCL编程——通过模拟量控制气缸升起和下降

图1 气缸控制阀控制特性

处理模拟量信号需要两个指令,NORM_X:标准化和SCALE_X:缩放指令。

NORM_X:标准化

使用“标准化”指令(参照图2所示),通过将输入 VALUE 中变量的值映射到线性标尺对其进行标准化。可以使用参数 MIN 和 MAX 定义(应用于该标尺的)值范围的限值。输出OUT( RET_VAL) 中的结果经过计算并存储为浮点数,这取决于要标准化的值在该值范围中的位置。

如果要标准化的值等于输入 MIN 中的值,则输出 OUT 将返回值“0.0”。如果要标准化的值等于输入 MAX 的值,则输出 OUT 需返回值“1.0”。

其中MIN 、 MAX和VALUE既可以是整数,也可以是浮点数。OUT( RET_VAL) 为浮点数。

西门子SCL编程——通过模拟量控制气缸升起和下降

图2 NORM_X

SCALE_X:缩放指令

使用“缩放”指令(参照图3所示),通过将输入 VALUE 的值映射到指定的值范围内以缩放该值。当执行“缩放”指令时,输入 VALUE 的浮点值会缩放到由参数 MIN 和 MAX 定义的值范围。缩放结果为整数,存储在 RET_VAL 输出中。

其中MIN 、 MAX和OUT( RET_VAL) 既可以是整数,也可以是浮点数。VALUE为浮点数。

西门子SCL编程——通过模拟量控制气缸升起和下降

图3 SCALE_X

接下来在FB中定义各变量,如图4所示。变量有升起和降落的指令rise_command、fall_command,数据类型均为Bool型;升起和降落的开度百分比rise_rate、fall_rate,此处数据类型均定义为Int型;以及标准化和缩放的变量,NORM_rise_rate(Real型)、NORM_fall_rate_1(Real型)、NORM_fall_rate_2(Real型)、SCALE_rise_rate(Int型)、SCALE_fall_rate(Int型)。

西门子SCL编程——通过模拟量控制气缸升起和下降

图4 定义变量

输出量AQ1(Int型)需要在PLC变量中定义,同时模拟量输出的地址要与实际的接线端子地址一致。

用SCL语言编程,如图5所示。

西门子SCL编程——通过模拟量控制气缸升起和下降

图5 SCL程序


1分不嫌少!


楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师