线下实训
HOME
线下实训
正文内容
博图plc模拟量输入编程 西门子 TIA 博途和 S7-1200 教程 :模拟量输入
发布时间 : 2025-01-20
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子 TIA 博途和 S7-1200 教程 :模拟量输入

在大多数PLC IDE中,对简单的线圈和触点命令进行编程是一件容易的事。连接和配置模拟输入对于各种位分辨率和转换命令可能更具挑战性。

在之前的教程中,我们研究了在西门子TIA博途中设计新项目的过程,然后将一个简单的程序连接并下载到S7-1200 PLC平台,说明了一些简单的线圈和触点命令。

工业系统很少完全依赖于离散的开/关信号,因此自然的第二层次理解应该包括模拟信号。

模拟输入从传感器获取数据,例如温度、压力或可变电阻器的设定点。

图1.西门子 S7-1200 PLC 包含许多内置 I/O 点,但可以使用各种模块进行扩展。

模拟输出在高速数字网络的现代世界中不太常见,但通常仍用于将特定的可变信号传输到运动驱动器和过程控制模块。模拟输出将在下一期教程中介绍。

模拟量输入

为了理解S7-1200平台的输入,我们将首先查看接线,然后讨论将端子电压解释为存储器映射变量所需的编程。

模拟量输入端子接线

在该 PLC 的内置模拟通道中,0-10 V 范围是输入的永久配置。如果所需的传感器或原始设备是 4-20 mA 电流信号,则有针对此类电流信号设计的模块和信号板。

位于 PLC 右上角的是一组三个模拟端子,2M、0 和 1。正如预期的那样,0和1是模拟电压信号输入,但2M是公共接地。如果输入相对于 (-) 24 V 电源轨进行测量,则此 2M 端子也应连接到公共 (-) 24 V 电源轨。

在本例中,一个简单的1 kΩ电位计(3端子可调电阻)配置了一个与24 V电源串联的1.5 kΩ电阻,以确保可变电压永远不会超过10 V。

图2. S7-1200 顶部的视觉表示,右上角是模拟端子(注意:并非所有数字终端都可以显示)。

敏锐的数学家可能会注意到,这个分压器不会精确地达到10 V,但幸运的是,我的旧电位计超过1 kΩ,所以最终结果是一个教程,必须解决校准问题才能实现正确的输出。

模拟量输入编程

按照上一教程,创建了一些标记来连接一些离散 I/O 点。

这一次,我们需要为模拟点创建标签,但它们不再是离散标签。为模拟输入创建的变量大小为 16 位;大多数情况下,这些将称为具有单个地址的整数 (INT)。但是,在 TIA 博途中,这些被构造为两个字节,占用两个连续字节的内存地址。这称为“单词”,因此我们必须创建一个 Word 数据类型。

由于模拟输入内置于硬件中,因此两个输入的内存分配也直接嵌入其中,但它们不仅仅是前两个地址,而是稍微复杂一些。

第一个模拟输入从内存地址 IW64 开始。由于它占用两个地址,因此第二个模拟输入从地址IW66开始。

S7-1200 中模拟量输入的内存地址是多少?

在您的项目中,双击“设备配置”。

图3. 设备配置。

如果选择了PLC,屏幕底部将打开一个“属性”窗口。选择模拟输入下的 I/O 地址,这将显示两个输入的开始和结束地址。

如下所示,第一个输入消耗地址 64 和 65,然后第二个输入消耗地址 66 和 67。

图4. S7-1200 模拟输入存储器地址。

这样,可以使用数据类型创建两个模拟输入标签:Word和起始地址,如下所示。

图5. 模拟量输入标签。

回到主程序模块,现在可以设计一个梯级来转换或存储模拟值以执行任何所需的任务。

当模数转换器(ADC)向PLC提供输出时,它被转换为0-27648的标准值范围,这意味着0 V显示“0”表示Analog_In_1,正好10 V显示“27648”。

此时,您可以连接并导航到监视表以查看值。可以在默认标记表中监视标记的值,但默认情况下它是十六进制值。此 16 位字将显示一个 4 个字符的十六进制数字。易于转换为二进制...但不像十进制值那么容易想象。在监视表中,添加输入标签,选择 DEC 显示格式,并确保您在线并监控。

在 TIA 博途中使用 NORM_X 命令

将10 V转换为27648值可提供很高的精度,但不是一个非常有用的值。相反,我们可以将该值更改为计算的输出值,或将其显示在HMI上以显示传感器的真实输出(实际上,可能是温度或压力)。

此扩展过程包括两个步骤。TIA 博途包含一个NORM_X和一个SCALE_X命令,其中“规范化”首先将整数值范围减少为 0 到 1 之间的单个十进制值。这需要在标签列表中创建一个 Real 标签来存储此规范化值。

我简单地称这个标签为“Norm_Val”,实际地址为 MD20(内存,IEEE 浮点构造的 32 位双整数大小,位置 20 肯定不会干扰任何以前创建的标签。您可以选择使用其他方法)。

图6.存储归一化模拟量输入的实际值。

最后,在所有构建模块到位后,我们可以创建一个梯形网络来检查输入模拟值的预期范围,并将其转换为等效的 0-1 十进制值。

图7. NORM_X用于将值规范化为 0-1 十进制值。

在此块中完成了几个步骤。

必须确定输入和输出数据类型。在这种情况下,输入是 Int(16 位,尽管我不知道为什么“Word”不作为匹配数据类型的选项呈现),输出是 Real。最小预期值为 0MAX预期值是通过在转动电位计时检查手表确定的,实际上超过了10 V,大约为30100。值是模拟输入的地址。OUT目的地是我们创建的Real标签。如果我们在此命令输出中使用整数值,它将被截断并始终显示为 0。

现在,您可以转动电位计并微调自己的值。也许它没有完全下降到 0 V,也许您使用了不同的电阻器,它不像我那样达到 30000。在整个输入值范围内,OUT 值应从 0 到 0.9999 摆动,或尽可能接近 1.0。

实际上,输入信号可能不会从0 V转换到10 V。它很可能是一个压力或温度传感器,它可能能够产生较大的值范围,但对于您的过程,只会看到一小部分变化。此NORM_X命令允许您标识实际的 MIN 和 MAX 期望值,从而为命令的 OUT 值提供更高的精度。

使用实际数据类型生成有意义的值

SCALE_X命令将在以下文章中完整解释,以说明其在提供模拟输出中的用法。但是,构造类似于NORM_X,并且在大多数情况下必须同时使用两者,因为 NORM 会将值减小到已知范围,然后第二个将其增加到第二个已知的更大范围。一些 IDE 将这两个过程组合成一个线性方程格式,同时提供输入和输出最小值和最大值,但此过程将其拆分为两个简单的步骤。

TIA 博途中的模拟量输入

模拟值的实际使用比离散信号更复杂,但由于模拟信号在现实世界中常见,因此必须了解它们。本指南可帮助您充分利用西门子 TIA 博途编程体验,无论您的模拟信号来自内置端子还是平台可用的众多附加模块或信号板之一

西门子PLC模拟量是如何编程的

在PLC编程中,模拟量是我们经常会用到的,比如压力传感器的模拟量反馈就要用到模拟量输入模块,给比例阀的设定就需要用到模拟量输出模块等等,模拟量编程的掌握也是PLC编程的必备技能,编程的基本思路其实也是非常简单,下面我们就先简单说说:

对于模拟量输入来说:只需要将反馈的电压或电流信号进行数字化处理,并对处理后的数字量进行标准化(也就是0~100%或-100%~100%)。然后就可以根据实际进行编程了。

对于弄你两输出来说:就需要将程序执行后的结果进行去标准化,比如就是将0~100%转化成0~27648(这里量程的范围主要看选择的模块支持的信号和范围),如下面这段程序:

下面我们就一步步看看到底是什么编程的,我们这里就以模拟量输出为例来进行编程:

需要在硬件组态中插入一个模拟量模块,本例中插入的是模拟量输出模块 SM 332; AO 8 x 12 位; (6ES7332-5HF00-0AB0) ,8个通道,每个通道可设置为电流或电压输出

也可以设置量程,如下图所示:

2、下面我们就要知道我们要用到模拟量精度及量程转换

模拟量转换的分辨率

分辨率是 A/D 模拟量转换芯片的转换精度,即用多少位的数值来表示模拟量。模拟量模块的转换分辨率用于反映模拟量变化的最小单位。精度 < 15 位时,将所有由"x"标识的位设置为"0"。

模拟量模块所支持的模拟值精度,如表1.1所示。

表1.1

单极性输入范围(例如,电压输入0~10V,对应值为0~27648),如表所示。

双极性输入范围(例如,电压输入-10~10V,对应值为-27648~27648),如表所示。

例如,下表中 12 位分辨率的模块,其数据从低字节的第四位(bit3)开始变化,其最小变化单位2的3次方= 8 ,bit0~bit2 则补" 0 "(红色图框为无效位)

设该模拟量通道类型为电压0~10V,满量程电压值10V对应数据27648,其能识别的最小电压值为:

3、STEP 7 V5.x中模拟量输入/输出的编程

1)FC105/FC106 在哪里?

在编程界面下,在 "程序元素"中的 "库——> Standard Library ——> TI-S7 Converting Blocks"中可以找到,见下图:

注意:请不要使用 "S5-S7 Converting Blocks"下的 FC105,FC106,该路径下的功能是用于 S5 输入输出模板的,在 S7 输入输出模板上无法使用。

2) FC105功能描述

SCALE(FC105)功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:

OUT = [ ((FLOAT (IN) - K1)/(K2 - K1)) * (HI_LIM - LO_LIM)] + LO_LIM

常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置。

● BIPOLAR:假定输入整型值介于 -27648与27648之间,因此K1 = -27648.0,K2 = +27648.0

●UNIPOLAR:假定输入整型值介于0和27648之间,因此K1 = 0.0,K2 = +27648.0

如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。

通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。

3) FC105的参数定义

故障信息:

如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。

4) FC105例子程序

上图中用MW20作为模拟量输入地址(正常编程中在IN中模拟量输入地址比如PIW256,这个值根据前面规则来的,也就是单极性27648对应100)

5) FC106 功能描述

UNSCALE(FC106)功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。UNSCALE功能使用以下等式:

OUT = [ ((IN - LO_LIM)/(HI_LIM - LO_LIM)) * (K2 - K1) ] + K1

并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。

● BIPOLAR:假定输出整型值介于 -27648和27648之间,因此,K1 = -27648.0,K2 = +27648.0

● UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0

如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。

6) FC106 的参数定义

故障信息:

如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。

7) FC106 例子程序

上图中就是MD作为设定,本例设定50,对应的输出就是13824,并将MW16(13824送至PQW256,控制对应设备,例如比例阀的开口度)。

那么TIA Portal博途中模拟量输入/输出的编程

1)SCALE/UNSCALE在哪里?

在TIA Portal中指令SCALE/UNSCALE的功能和STEP7中的FC105/FC106功能相同,用于模拟量输入/输出的编程。

编程界面下,在 "指令" 中的"基本指令 ——> 转换操作"中可以找到,

电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。

相关问答

博途pcstation组态步骤?

博途PCStation是用于进行PLC编程和组态的软件工具。下面是使用博途PCStation进行组态的基本步骤:1.打开博途PCStation软件,在主界面选择要进行组态的PLC型...

博途v15如何仿真?该怎么操作?

本人刚好做个一期V13的视频教程感兴趣可以去查看,V15一样的操作,下面还是用图文介绍下吧首先新建项目先添加PLC再添加触摸屏后添加完触摸屏有连接向导,选择...

如何实现PLC设备远程监控及远程调试?

这个问题,我来回答一下。这个解决方案,作者在现场实际使用效果比较好,使用也最多。具体可以看下面的介绍。PLC远程下载方案不仅可以流畅地下载调试各种主流...

学习plc用哪个软件比较简单,如何下载?

各种品牌的PLC与其编程软件各有千秋,不同的PLC编程软件是不能通用的,比如日系的PLC编程软件只能用在及其品牌的PLC上应用,像三菱的GXWORKS2编程软件只能用在FX...

怎样在电脑里写入plc编程?

PLC根据它的品牌、型号来选择编程软件,比如,西门子:S7-200系列PLC编程软件用STEP7-MicroWINV4.0SP9版本软件;S7-200SMART系列PLC编程软件用STEP7...

博途如何添加一个s7连接?

博途(Botou)是一款基于Python的自动化测试框架,主要用于测试Python脚本和模型的自动化测试。如果您想添加一个S7连接,以便在博途中运行S7脚本,您需...

博途中如何看plc的输入输出点状态?

是晶体管输出,最好是用2~10K的电阻连一个led灯...万用表可以检查继电器输出类型的输出,在电脑上运行软件,让某点强制输出,看某点与com之间有没有导通。如果...

博途中ouc库怎么更改?

修改plc中位寄存器的数据步骤:1.定位所要写入的寄存器;2.用编程软件在线环境下找到要赋值的寄存器;3.直接赋值。PLC简介:可编程逻辑控制器,它采用一类...

博途V13触摸屏的仿真和PLC的仿真是同一个软件吗?

触摸屏的仿真使用博图自带的功能,plc的仿真需要另外安装博图plcsim软件来实现。触摸屏的仿真使用博图自带的功能,plc的仿真需要另外安装博图plcsim软件来实现。

博途getput指令如何使用?

博途put指令适用于S7的单边通讯指令,只需要在客户端编程即可。在网络视图中不一定看得到远程的PLC,但是可以在PUT/GET指令组态中找到与之通讯的远程PLC。点击P...

 吴尊友母校安医大设立吴尊友奖学金  软饼干 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部