S7-300PLC模拟量输入输出量程转换教程
S7-300 PLC模拟量输入输出量程转换教程

S7-300/400 PLC模拟量输入/输出的量程转换SLC A&D CSMarch, 20051模拟量输入/输出量程转换的概念 (3)2S7-300/400 PLC模拟量输入/输出模板 (3)2.1需要使用的模板 (3)2.2涉及的信号类型 (3)3STEP 7中模拟量输入/输出的编程 (3)3.1FC105/FC106在哪里 (3)3.2FC105/FC106功能描述 (5)3.2.1FC105功能描述 (5)3.2.2FC106功能描述 (5)3.3FC105/FC106参数定义 (6)3.3.1FC105 的参数定义 (6)3.3.2FC106的参数定义 (6)3.4例子程序 (7)3.4.1FC105例子程序 (7)3.4.2FC106例子程序 (8)1模拟量输入/输出量程转换的概念实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。
传感器将输出标准电压、电流、温度、或电阻信号供PLC采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。
在PLC程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。
而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。
这样就需要在程序中调用功能块完成量程转换。
如一个压力调节回路中,压力变送器输出4-20mA DC信号到SM331模拟量输入模板,SM331模板将该信号转换成0-27648的整形数,然后在程序中要调用FC105将该值转换成0-10.0(MPa)的工程量(实数),经PID运算后得到的结果仍为实数,要用FC106转换为对应阀门开度0-100%的整形数0-27648后,经SM332模拟量输出模板输出4-20mA DC信号到调节阀的执行机构。
本文主要讨论S7-300/400 PLC编程中模拟量的量程转换。
300模拟量模块中间的调节

300模拟量模块中间的调节
模拟量输入通道的测量范围应当与从传感器或变送器上送来的信号相配合。
S7-300模拟量输入通道的测量范围调节有以下两种方法:
1、通过模块上的量程卡的方位变化和STEP 7的组态设置;
2、通过模块上的接线方式本身的变化。
具体采用哪种方法,由模块本身决定。
下面以第一种方法为例进行介绍。
量程卡是正方形的,可以有四个安装方向,四边分别印有A、B、C、D的标记,其含义如表8-4所示。
如果接人的是热电偶或热电阻,应当选择A。
通过量程卡选择量程范围是初选,最后还要通过STEP 7进行组态。
1、选择模块。
2、对于特定模拟量输入模块:使用量程卡设置测量类型和测量范围。
3、在SIMATIC S7系统中安装模块。
4、分配模块参数。
5、将测量传感器或负载连接到模块。
6、调试组态。
7、如果调试失败则分析组态。
西门子S7-300系列PLC模拟量输出的处理方法有哪些?

1、FC105SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。
将结果写入OUT。
SCALE 功能使用以下等式:OUT = [((FLOAT (IN)-K1)/(K2-1))* (HI_LIM-O_LIM)]+ LO_LIM常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置。
BIPOLAR:假定输入整型值介于7648与27648之间,因此K1 = -7648.0,K2 = +27648.0UNIPOLAR:假定输入整型值介于0和27648之间,因此K1 = 0.0,K2 = +27648.0如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。
如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。
通过设置LO_LIM 》HI_LIM可获得反向标定。
使用反向转换时,输出值将随输入值的增加而减小。
FC105参数参数说明数据类型存储区描述EN 输入BOOL I、Q、M、D、L 使能输入端,信号状态为1时激活该功能。
ENO 输出BOOL I、Q、M、D、L 如果该功能的执行无错误,该使能输出端信号状态为1。
IN 输入INT I、Q、M、D、L、P、常数欲转换为以工程单位表示的实型值的输入值。
HI_LIM 输入REAL I、Q、M、D、L、P、常数以工程单位表示的上限值。
LO_LIM 输入REAL I、Q、M、D、L、P、常数以工程单位表示的下限值。
BIPOLAR 输入BOOL I、Q、M、D、L 信号状态为1表示输入值为双极性。
信号状态0表示输入值为单极性。
OUT 输出REAL I、Q、M、D、L、P 转换的结果。
RET_VAL 输出WORD I、Q、M、D、L、P 如果该指令的执行没有错误,将返回值W#16#0000。
对于W#16#0000以外的其它值,参见“错误信息”。
错误信息如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。
2-3-S7-300模拟量模块使用

internal use only / © Siemens For AG 2009. All Rights Reserved.
模板选型 模拟值表示 更换量程卡 参数设置 接线 应用举例
2-3 S7-300模拟量模块使用
2---模拟值表示
输出范围为0 - 20 mA 和 4 - 20 mA的模拟值表示
2-3 S7-300模拟量模块使用
模板选型 模拟值表示 更换量程卡 参数设置 接线 应用举例
6---应用举例 6-1 压力检测
1 任务描述。
一个压力检测系统,压力传感器的量程为0-15MPa, 输出信号为4-20mA。使用S7-300的模拟量输入模块,输 入模块的量程设置为4-20mA,转换后的模拟值为027648。那么在0-27648内的任意一个模拟值代表的压力 值是多少?
6---应用举例 6-1 压力检测
4 编程步骤:FC1功能程序编写。
internal use only / © Siemens For AG 2009. All Rights Reserved.
模板选型 模拟值表示 更换量程卡 参数设置 接线 应用举例
2-3 S7-300模拟量模块使用
6---应用举例 6-1 压力检测
4 编程步骤:FC1功能程序编写。
internal use only / © Siemens For AG 2009. All Rights Reserved.
模板选型 模拟值表示 更换量程卡 参数设置 接线 应用举例
2-3 S7-300模拟量模块使用
6---应用举例 6-1 压力检测
4 编程步骤:FC1功能程序编写。
模板选型 模拟值表示 更换量程卡 参数设置 接线 应用举例
S7-200 S7-300 PLC 模拟量自动计算公式表格

已知模拟量通道数据值,计算模拟量输入值及对应工程量 输入类型 描述 代码 4-20mA 0-20mA
换算结果
工程量
换算结果
数据字
换算对象
工程量范围
输入类型范围
数据字范围
换算结果的高限 换算结果的低限 换算结果的高限 换算结果的低限 换算对象的高限 换算对象的低限
Ov2 20.0000 20.0000
Ov1 100.0000 100.0000
Iv 32000.00 27648.00
Osh1 100.00 100.00
Osl1 0.00 0.00
Osh2 20.00 20.00
Osl2 4.00 4.00
Ish 32000.00 27648.00
Isl 6400.00 0.00
已知工程量显示值,计算模拟量输入及对应的数据值 输入类型 数据字 工程量 工程量范围 输入类型范围 数据字范围
输入类型范围
数据字范围
换算结果的高限 换算结果的低限 换算结果的高限 换算结果的低限 换算对象的高限 换算对象的低限
Ov1 100.0000 100.0000
Iv 32000.00 27648.00
Ov2 20.0000 20.0000
Osh1 100.00 100.00
Osl1 0.00 0.00
用途:已知模拟量输入值(如检测到的电流值)、模拟量通道读数、工程值其中的一项,计算出另外两项的值。 使用说明:配置好EFGHIJ列,在D列输入数值,BC列自动计算出对应的数值。
模拟量的输入/输出都可以用下列的通用换算公式换算: Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl 其中: Ov:换算结果 Iv:换算对象 Osh:换算结果的高限 Osl:换算结果的低限 Ish:换算对象的高限 Isl:换算对象的低限
s7-300模拟量转换编程

/R //除以10,因为模板规范规定,采集值和实际温度比值为10
T DB1.DBW0 //保存 实际温度值.
所以,好好看看模版规范是你能正确使用模拟量的关键.
以上是最方便的模拟量采集
网站上很多人建议使用FC105做模拟量采集,其实是一样的,只不过
FC105将采集进来的信号做了一下线性话,通过FC105采集进来信号在你的问题中就是以V为单位的工程量,比如5V,这样的转换对于PLC来说其实没有什么意义,因为PLC运算完全以数字作为运算的,这样转换的作用是方便在HMI上显示而已.
s7-300模拟量转换编程
问题:测量是+/-10V,用的是12位A/D模块
回答:
L PIW256 //假设你的模拟量信号接在模块地址256上,由于电压信号占用2通道,所以需要PIW,此时你的ACCU1中就是通过A/D转换后相对于量程的整数
T DB1.DBW0 //保存一下,方便以后调用
例如wincc,已经有变量的线性标定功能,所以下位机采用线性转换是毫无意义,你应该如下编程:
L PIW256 //采集信号
ITD //转换为长整形,因为根据语法,整形转换为浮点数必须先转换为长整形.
DTR //转换为浮点数
西门子S7-300PLC模拟量输入输出

西门子S7-300PLC模拟量输入输出1、基本概况S7-300 的CPU 用16 位的二进制补码表示模拟量值。
其中最高位为符号位S,0 表示正值,1 表示负值,被测值的精度可以调整,取决于模拟量模块的性能和它的设定参数,对于精度小于15 位的模拟量值,低字节中幂项低的位不用。
S7-300 模拟量输入模块可以直接输入电压、电流、电阻、热电偶等信号,而模拟量输出模块可以输出0~10 V、1~5 V、-10 V~10 V、0~20 mA、4~20 mA 等模拟信号。
2、模拟量输入模块SM331 模拟量输入(简称模入(AI))模块SM331 目前有三种规格型号,即8AI 乘以l2 位模块、2AI 乘以l2 位模块和8AI 乘以l6 位模块。
SM331 主要由A/D 转换部件、模拟切换开关、补偿电路、恒流源、光电隔离部件、逻辑电路等组成。
A/D 转换部件是模块的核心,其转换原理采用积分方法,被测模拟量的精度是所设定的积分时间的正函数,也即积分时间越长,被测值的精度越高。
SM331 可选四档积分时间:2.5 ms、16.7 ms、20 ms 和l00 ms,相对应的以位表示的精度为8、12、12 和14。
SM331 与电压型传感器的连接,如图1 所示。
图1 输入模块与电压型传感器的连接SM331 与2 线电流变送器的连接如图2a)所示,与4 线电流变送器的连接如图2b)所示。
4 线电流变送器应有单独的电源。
图2 输入模块与2/4 线变送器电流输入的连接3、模拟量输出模块SM332 模拟量输出(简称模出(AO))模块SM332 目前有三种规格型号,即4AO 乘以l2 位模块、2AO 乘以12 位模块和4AO 乘以l6 位模块,分别为4 通道的12 位模拟量输出模块、2 通道的12 位模拟量输出模块、4 通道的16 位模拟量输出模块。
SM332 可以输出电压,也可以输出电流。
在输出电压时,可以采用2 线回路和4 线回路两种方式与负载相连。
s7-300模拟量(温度、压力、流量)的处理

s7-300模拟量(温度、压力、流量)的处理S7-300中温度、压力及流量的输入值,这样处理为PLC可以处理的数据,并实现数值的显示???匿名回复:调用FC105匿名回复:看AI模块的接线图和D/A转换的规则,自己编程嘛。
匿名回复:PLC可直接处理模拟量输入PIW XXX显示用触摸屏或工控机或智能显示仪表。
匿名回复:显示可以用捷通的DDM4A型PLC专用显示表,直接在表上显示PLC内处理好的模拟量数据(数字信号),不需要再进行模拟量的硬件电压电流转换。
/上有S7-300驱动32块DDM4A显示表的驱动程序例子。
匿名回复:用二点式将模拟量信号标定为有实际意义的值。
如0-10V对应0-100KN即0-27648对应0-10V对应0-100KN。
将模拟量通道数值如PIW30除以2727648再乘以100KN。
即转化为压力值了。
匿名回复:温度有EM231热电阻模块,流量及压力是不是只需要有开、关数据即可,若是这样,只需要有输入输出单元即可,通过编程就行,压力可以通过油压表实现匿名回复:用系统库啊,我吊用FC105的,输入显示上下幅度就行了,好用啊,程序是系统加保护的,要看算法,我有解保护软件。
elexxj@匿名回复:用系统库啊,我吊用FC105的,输入显示上下幅度就行了,好用啊,程序是系统加保护的,要看算法,我有解保护软件。
elexxj@匿名回复:那为大侠有西门子的关于configuring connections方面的资料。
中英都可。
中文最好呵呵。
那里可以下呀。
谢了。
匿名回复:易飞:解保护软件当然可以能解FB41\FB45!明明:不知你要config哪方面的connection?好许我可以帮你。
匿名回复:只要了解接线方法,外部模拟量和内部数值的对应关系,应该很容易,主要是数据的量化。
只要了解接线方法,外部模拟量和内部数值的对应关系,应该很容易,主要是数据的量化。
匿名回复:如果是热电偶,则把数值除10即可,其它调用FC105,注意单极性还是双极性,双极性就是有负值,单极性对应值0~27648,双极性对应-27648~27648匿名回复:压力和流量可以自己做个滤波变标,简单一点就调FC105。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S7-300/400 PLC模拟量输入/输出的量程转换SLC A&D CSMarch, 20051模拟量输入/输出量程转换的概念 (3)2S7-300/400 PLC模拟量输入/输出模板 (3)2.1需要使用的模板 (3)2.2涉及的信号类型 (3)3STEP 7中模拟量输入/输出的编程 (3)3.1FC105/FC106在哪里 (3)3.2FC105/FC106功能描述 (5)3.2.1FC105功能描述 (5)3.2.2FC106功能描述 (5)3.3FC105/FC106参数定义 (6)3.3.1FC105 的参数定义 (6)3.3.2FC106的参数定义 (6)3.4例子程序 (7)3.4.1FC105例子程序 (7)3.4.2FC106例子程序 (8)1模拟量输入/输出量程转换的概念实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。
传感器将输出标准电压、电流、温度、或电阻信号供PLC采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。
在PLC程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。
而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。
这样就需要在程序中调用功能块完成量程转换。
如一个压力调节回路中,压力变送器输出4-20mA DC信号到SM331模拟量输入模板,SM331模板将该信号转换成0-27648的整形数,然后在程序中要调用FC105将该值转换成0-10.0(MPa)的工程量(实数),经PID运算后得到的结果仍为实数,要用FC106转换为对应阀门开度0-100%的整形数0-27648后,经SM332模拟量输出模板输出4-20mA DC信号到调节阀的执行机构。
本文主要讨论S7-300/400 PLC编程中模拟量的量程转换。
2S7-300/400 PLC模拟量输入/输出模板2.1需要使用的模板使用西门子S7-300/400 PLC进行模拟量输入/输出需要使用的模板:S7-300系列PLC:SM331系列模拟量输入模板;SM332系列模拟量输出模板;SM334/335系列模拟量输入/输出模板。
S7-400系列PLC:SM431系列模拟量输入模板;SM432模拟量输出模板。
目前常用的模板规格型号参见模板手册,请链接到如下网址下载模板手册:S7-300: /WW/view/en/8859629S7-400: /WW/view/en/11177402.2涉及的信号类型电压,电流,温度,电阻。
3STEP 7中模拟量输入/输出的编程3.1FC105/FC106在哪里在编程界面下,在Program elements中的Libraries下的Standard Library下的TI-S7 Converting Blocks中就可以找到,见下图:注意:请不要使用S5-S7 Converting Blocks下的FC105, FC106,该路径下的功能是用于S5输入输出模板的,在S7输入输出模板上无法使用。
3.2FC105/FC106功能描述在编程界面下选中该功能块,按一下计算机键盘上的F1功能键,即可打开关于该功能块的在线帮助,包括该功能块的功能,管脚参数定义、例子程序等。
建议用户使用STEP 7在线帮助,可以提供全面的编程帮助。
3.2.1FC105功能描述SCALE(FC105)功能将一个整形数INTEGER(IN)转换成上限、下限之间的实际的工程值(LO_LIM and HI_LIM),结果写到OUT。
公式如下:OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM常数K1和K2的值取决于输入值(IN)是双极性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.2.2FC106功能描述UNSCALE(FC106)功能将一个实数REAL (IN) 转换成上限、下限之间的实际的工程值(LO_LIM and HI_LIM),数据类型为整形数。
结果写到OUT。
公式如下:OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1常数K1和K2的值取决于输入值(IN)是双极性BIPOLAR还是单极性UNIPOLAR。
¾双极性BIPOLAR:即输出的整形数为 –27648到 27648,此时 K1 = –27648.0 , K2 = +27648.0¾单极性UNIPOLAR:即输出的整形数为 0 到 27648,此时 K1 = 0.0 , K2 = +27648.0如果输入值在下限LO_LIM和上限HI_LIM的范围以外,输出 (OUT) 限位到与其相近的上限或下限值(视其单极性UNIPOLAR或双极性BIPOLAR而定),并返回错误代码。
3.3FC105/FC106参数定义3.3.1FC105 的参数定义参数类型数据类型存储区描述EN 输入BOOL I,Q,M,D,L 使能输入,高电平有效ENO 输出BOOL I,Q,M,D,L 使能输出,如正确执行完毕,则为1IN 输入INT I,Q,M,D,L,P,Constant要转换为工程量的输入值HI_LIM 输入REAL I,Q,M,D,L,P,Constant工程量上限LO_LIM 输入REAL I,Q,M,D,L,P,Constant工程量下限BIPOLAR 输入BOOL I,Q,M,D,L 1表示输入为双极性,0表示输入为单极性OUT 输出REAL I,Q,M,D,L,P 量程转换结果RET_VAL 输出WORD I,Q,M,D,L,P 返回值W#16#0000代表指令执行正确。
如返回值不是W#16#0000,则需在错误信息中查该值的含义错误信息:如输入的整形数大于K2,则输出(OUT) 限位到 HI_LIM,并返回错误值。
如输入的整形数小于K1,输出限位到LO_LIM,并返回错误值。
ENO端的信号状态置为0且返回值RET_VAL 为W#16#0008。
3.3.2FC106的参数定义参数声明数据类型存储区描述EN 输入BOOL I,Q,M,D,L 使能输入,高电平有效ENO 输出BOOL I,Q,M,D,L 使能输出,如正确执行完毕,则为1IN 输入REAL I,Q,M,D,L,P,Constant 要转换成整形数的输入值HI_LIM 输入REAL I,Q,M,D,L,P,Constant 工程量上限LO_LIM 输入REAL I,Q,M,D,L,P,Constant 工程量下限BIPOLAR 输入BOOL I,Q,M,D,L1表示输入为双极性,0表示输入为单极性OUT 输出INT I,Q,M,D,L,P 量程转换结果RET_VAL 输出WORD I,Q,M,D,L,P返回值W#16#0000代表指令执行正确。
如返回值不是W#16#0000,则需在错误代码表中查该值的含义错误信息:如果输入值在下限LO_LIM和上限HI_LIM的范围以外,输出 (OUT) 限位到与其相近的上限或下限值(视其单极性UNIPOLAR或双极性BIPOLAR而定),并返回错误代码。
ENO端的信号状态置为0且返回值RET_VAL 为 W#16#0008。
3.4例子程序3.4.1FC105例子程序如输入I0.0 为 1,SCALE功能被执行。
下面的例子中,整形数 22 将被转换成0.0 到100.0 的实数并写到OUT。
输入是双极性BIPOLAR,用 I2.0来设置。
执行前:IN----------------------MW10=22HI_LIM---------------MD20=100.0LO_LIM--------------MD30=0.0OUT-------------------MD40=0.0BIPOLAR------------I2.0=TRUE执行后:OUT------------------MD40=50.039785883.4.2FC106例子程序如输入I0.0 为 1,UNSCALE功能被执行。
下面的例子中,实数50.03978588将被转换成0.0到100.0的工程量,再转换成整形数并写到OUT。
输入是双极性BIPOLAR,用 I2.0来设置。
执行前:IN---------------------- MD10=50.03978588HI_LIM---------------MD20=100.0LO_LIM--------------MD30=0.0OUT-------------------MW40=0BIPOLAR------------I2.0=TRUE执行后:OUT------------------MW40=22注意:通常在一个项目都有不只一个模拟量需要转换,FC105和FC106在程序中都可多次调用,调用的方法同上述例子程序。