(完整版)S7-200模拟量详细教程
S7-200模拟量库使用说明

SCALE(V1.0)库文件的使用
以下公式由计算换算值的图表中得出: Ov = (Osh - Osl) / (Ish - Isl) * (Iv - Isl) + Osl
"Scale" 库的描述: "scale.mwl" 库包括从INTEGER(整数) 到REAL (S_ITR)(实数)、从REAL(实数)to REAL (S_RTR)(实数)及从REAL(实数)到INTEGER (S_RTI)(整数)类型数据的比例换算。
3.2 模拟量输入换算为REAL数据格式的输出值(S_ITR): S_ITR 功能块可用来将模拟量输入信号转换成0.0到1.0之间的标么值( 类型REAL )。
此调用为4-20MA的偏移量,读入模拟量转换为0.0-1.0之间的量程存入到VD100
3.3 REAL格式数据比例换算(S_RTR): S_RTR 功能块可用来转换在范围内的REAL 格式的值(例如将0.0 到1.0输入值转化为百分数输出)。
本子程序调用为前面读取来的0.0-1.0量程转换为百分比0-100数值转出到DV200
3.4转换为INTEGER格式数据的模拟量输出(S_RTI): S_RTI 功能块可用来将REAL 数转换为INTEGER数据类型的模拟量输出。
本子程序调用:把模拟量量程0.0-1.0数字转换成0-20MA的信号输出
,在不同量程下,读取或输出得到不同的结果。
一次函数表达示:Y=KX+b(不过原点),Y=KX(过原点)。
s7-200 smart 模拟量模块用法

当我们在实际的应用中需要对当前的温度或是压力进行采集显示的时候,我们需要用到模拟量模块来对模拟量信号进行采集,在这里我们以S7-200smart PLC的EMAE04模拟输入模块为例来说明如何使用这个模块来采集温度或是压力。
例如:现需要实时监控发电机机组的温度,假设变送器输出的信号为0到10V的电压信号,最大温度值为150。
最小温度值为0度。
要完成正确读取实际的温度值,需要进行以下三步操作:第一、正确的接线第二、正确的硬件组态第三、编写正确的程序1、按照变送器提供的信号输出接线方式进行正确的接线,对于EMAE04模块的信号接入如图所示:若变送器为三线制输出的变送器,则接线时,先把变送器的24V 电源接上,变送器上的信号输出接端0+,0-端子接24V电源负。
2、打开S7-200smart的编程软件,打开其系统块对其进行硬件组态。
如图所示:注意:对于信号类型的选择,通道0的设置对通道1的设置也有效,通道2的设置对通道3 也同样有效。
3、编写转换程序S7-200smartPLC来说其最大的数字量为27648。
我们可以根据其得到的数字量的大小转换成我们实际的温度值。
对其转换程序,我们可以使用S7-200中的scaling模拟量转换库,使用库移植的方法把其移植到S7-200smart的软件中。
其移植方法可以参考前面所介绍的内容。
Input :表示需要转换的数字量,即采样所的数字量Ish:换算对象的高限,即最大模拟量所对应的数字量值(27648)Isl: 换算对象的低限,即最小模拟量所对应的数字量值(0)Osh:换算结果的高限,即测量范围最大值Osl:换算结果的底限,即测量范围最小值。
VD100:换算结果所存储的值。
S7-200smart-PLC模拟量输入模块使用说明

S7-200smart-PLC模拟量输入模块使用说明1. 简介S7-200smart-PLC模拟量输入模块是一种数字信号转模拟信号的设备,可将其它设备发出的模拟量信号转化为PLC可读取的数字信号。
本模块广泛应用于工业生产中,可用于温度、压力、风速等物理量的检测和控制。
2. 特点S7-200smart-PLC模拟量输入模块具有如下特点:•通道数可选:根据需求,可选择4通道、6通道或8通道。
•精度高:采用16位高精度AD转换器。
•抗干扰能力强:采用隔离式设计,具有较强的抗干扰能力。
•通信速度快:通信速率可达1.5Mbps。
3. 硬件连接3.1 电源连接将模块的电源正、负极连通24V直流电源即可。
3.2 信号输入连接将模块的信号输入连接上相应的传感器即可。
其中,八个通道的引脚分别为:•CH1: 1号、2号•CH2: 3号、4号•CH3: 5号、6号•CH4: 7号、8号•CH5: 9号、10号•CH6: 11号、12号•CH7: 13号、14号•CH8: 15号、16号需要注意的是,不同的传感器信号输入时,需要匹配相应的信号输入范围。
如果输入的传感器信号超过所选通道的电压/电流量程,则不会被正确读取。
3.3 PLC连接将模块与PLC进行连接即可。
口与PLC相连的方式包含以下两种:•自带插头与PLC主机开关相连•模块采用梳式插头,与插座相连4. 编程配置在编程之前,需要在Step 7 micro/WIN中进行模块参数的配置。
步骤如下:1.打开微型PLC编程软件Step 7 micro/WIN,选择S7-200smart PLC 模板项目文件。
2.连接PLC和计算机,将PLC与计算机相连。
3.点击。
(完整版)S7-200模拟量详细教程

(完整版)S7-200模拟量详细教程模拟量比例换算因为A/D (模/数)、(D/A)数/模转换之间的对应关系,S7-200 CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。
这个关系就是模拟量/ 数值量的换算关系。
例如,使用一个0- 20mA的模拟量信号输入,在S7-200 CPU内部,0- 20mA对应于数值范围0- 32000;对于 4 - 20mA 的信号,对应的内部数值为6400 - 32000 。
如果有两个传感器,量程都是0 - 16MPa,但是一个是0 - 20mA 输出,另一个是4 - 20mA输出。
它们在相同的压力下,变送的模拟量电流大小不同,在S7-200 内部的数值表示也不同。
显然两者之间存在比例换算关系。
模拟量输出的情况也大致相同。
上面谈到的是0 - 20mA与4 - 20mA之间换算关系,但模拟量转换的目的显然不是在S7-200 CPU中得到一个0 - 32000 之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这是换算的最终目标。
如果使用编程软件Micro/WIN32中的PID Wizard(PID向导)生成PID功能子程序,就不必进行0 - 20mA 与 4 - 20mA 信号之间的换算,只需进行简单的设置。
通用比例换算公式模拟量的输入/输出都可以用下列的通用换算公式换算:Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl其中:Ov: 换算结果Iv: 换算对象Osh: 换算结果的高限Osl: 换算结果的低限Ish: 换算对象的高限Isl: 换算对象的低限它们之间的关系可以图示如下:图 1. 模拟量比例换算关系实用指令库在Step7 - Micro/WIN Programming Tips (Micro/WIN 编程技巧中)的Tip38 就是关于如何实现上述转换的例程。
S7-200的模拟量编程说明(易懂)

西门子S7-200模拟量编程本文以EM235为例讲解S7-200模拟量编程,主要包括以下内容:1、模拟量扩展模块接线图及模块设置2、模拟量扩展模块的寻址3、模拟量值和A/D转换值的转换4、编程实例模拟量扩展模块接线图及模块设置EM235是最常用的模拟量扩展模块,它实现了4路模拟量输入和1路模拟量输出功能。
下面以EM235为例讲解模拟量扩展模块接线图,如图1。
图1图1演示了模拟量扩展模块的接线方法,对于电压信号,按正、负极直接接入X+和X-;对于电流信号,将RX和X+短接后接入电流输入信号的“+”端;未连接传感器的通道要将X+和X-短接。
对于某一模块,只能将输入端同时设置为一种量程和格式,即相同的输入量程和分辨率。
(后面将详细介绍)量的单/双极性、增益和衰减。
时,模拟量输入为单极性输入,SW6为OFF时,模拟量输入为双极性输入。
SW4和SW5决定输入模拟量的增益选择,而SW1,SW2,SW3共同决定了模拟量的衰减选择。
6个DIP开关决定了所有的输入设置。
也就是说开关的设置应用于整个模块,开关设置也只有在重新上电后才能生效。
输入校准模拟量输入模块使用前应进行输入校准。
其实出厂前已经进行了输入校准,如果OFFSET和GAIN电位器已被重新调整,需要重新进行输入校准。
其步骤如下:A、切断模块电源,选择需要的输入范围。
B、接通CPU和模块电源,使模块稳定15分钟。
C、用一个变送器,一个电压源或一个电流源,将零值信号加到一个输入端。
D、读取适当的输入通道在CPU中的测量值。
E、调节OFFSET(偏置)电位计,直到读数为零,或所需要的数字数据值。
F、将一个满刻度值信号接到输入端子中的一个,读出送到CPU的值。
G、调节GAIN(增益)电位计,直到读数为32000或所需要的数字数据值。
H、必要时,重复偏置和增益校准过程。
EM235输入数据字格式下图给出了12位数据值在CPU的模拟量输入字中的位置图2可见,模拟量到数字量转换器(ADC)的12位读数是左对齐的。
(完整版)S7-200模拟量输入输出实例

对输入、输出模拟量的PLC编程的探讨及编程实例解析3134人阅读| 4条评论发布于:2011-12-29 9:03:42 对于初学PLC编程的人来说,模拟量输入、输出模块的编程要比用位变量进行一般的程序控制难的多,因为它不仅仅是程序编程,而且还涉及到模拟量的转换公式推导与使用的问题。
不同的传感变送器,通过不同的模拟量输入输出模块进行转换,其转换公式是不一样的,如果选用的转换公式不对,编出的程序肯定是错误的。
比如有3个温度传感变送器:(1)、测温范围为0~200 ,变送器输出信号为4~20ma(2)、测温范围为0~200 ,变送器输出信号为0~5V(3)、测温范围为-100 ~500 ,变送器输出信号为4~20ma(1)和(2)二个温度传感变送器,测温范围一样,但输出信号不同,(1)和(3)传感变送器输出信号一样,但测温范围不同,这3个传感变送器既使选用相同的模拟量输入模块,其转换公式也是各不相同。
一、转换公式的推导下面选用S7-200的模拟量输入输出模块EM235的参数为依据对上述的3个温度传感器进行转换公式的推导:对于(1)和(3)传感变送器所用的模块,其模拟量输入设置为0~20ma电流信号,20ma 对应数子量=32000,4 ma对应数字量=6400;对于(2)传感变送器用的模块,其模拟量输入设置为0~5V电压信号,5V对应数字量=32000,0V对应数字量=0;这3种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请见下图:上面推导出的(2-1)、(2-2)、(2-3)三式就是对应(1)、(2)、(3)三种温度传感变送器经过模块转换成数字量后再换算为被测量的转换公式。
编程者依据正确的转换公式进行编程,就会获得满意的效果。
二、变送器与模块的连接通常输出4~20ma电流信号的传感变送器,对外输出只有+、- 二根连线,它需要外接24V电源电压才能工作,如将它的+、- 二根连线分别与24V电源的正负极相连,在被测量正常变化范围内,此回路将产生4~20ma电流,见下左图。
S7-200西门子PLC基础教程-模拟量模块及触摸屏的应用

信号电压+共模电压(必须≤±12V)
20.4~28.8V DC(或来自CPU模块的+24V电源)
8
项目 隔离(现场与逻辑电路间)
输出信号范围
数据字格式
分辨率,全量程 精度:最差情况(0℃~55℃)
精度:典型情况(25℃) 设置时间
最大驱动 24V DC电压范围
续表
技术参数
无
电压输出
±10V
电流输出
2020/5/15
27
• (2)操作步骤
➢ ① 选择模拟量输入量程与精度。 ➢ ② 连接CPU模块与模拟量输入模块。 ➢ ③ 编写PLC程序。 ➢ ④ 测量干电池的电压值,填入表9-8中。 ➢ ⑤ 将两个干电池分别按极性接入模拟电压第1个输入通道A+、A-端,从
PLC的状态监控表中读出AIW0和VW0中寄存的数字量,填入表9-8中。
OFF
OFF
OFF
ON
OFF
OFF
OFF
OFF
OFF
ON
OFF
SW5
SW6
满量程输入 分辨率
OFF
OFF
±25mV
12.5μV
OFF
OFF
±50mV
25μV
OFF
OFF
±100mV
50μV
ON
OFF
±250mV
125μV
ON
OFF
±500mV
250μV
ON
OFF
±1V
500μV
OFF
OFF
±2.5V
• 10.良好的可维护性
2020/5/15
32
9.2.2 MCGS嵌入版组态软件的体系结构
• 1.MCGS嵌入版系统的构成
西门子S7200模拟量处理程序,经典模板,拿去直接编译使用

西门子S7200模拟量处理程序,经典模板,拿去直接编译使用一、开始之前献给大家普及一下S7200模拟量编程原理模拟量值和A/D转换值的转换假设模拟量的标准电信号是A0—Am(如:4—20mA),A/D转换后数值为D0 —Dm(如:*00—32000),设模拟量的标准电信号是A,A/D转换后的相应数值为D,由于是线性关系,函数关系A=f (D)可以表示为数学方程:A=(D-D0)×(Am-A0)/(Dm -D0)+A0。
根据该方程式,可以方便地根据D值计算出A值。
将该方程式逆变换,得出函数关系D=f(A)可以表示为数学方程:D=(A-A0)×(Dm-D0)/(Am-A0)+D0。
具体举一个实例,以S7-200和4—20mA为例,经A/D转换后,我们得到的数值是*00—32000,即A0=4,Am=20,D0=*00,Dm=32000,代入公式,得出:A=(D-*00)×(20-4)/(32000-*00)+4。
假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电信号是*00×16/25600+4=8mA。
二、模拟量经典编程案例源码,拿去直接编译使用SIEMENS S7-200系列模拟量算法程序,模拟量扩展模块EM231 ,温度传感器为1-5V 对应温度为-30-70度,此算法程序如下: LD AIW0, VW2012MOVD &VB2012, AC1MOVW *AC1, VW2024DIV +320, VD2022MUL +10, VD2020DIV +320, VD2020MOVW VW2022, VW2026MOVW +0, VW2022MUL +10, VD2022+I VW2024, VW2026-I +300, VW2026MOVW VW2026, *AC2 通过AC2显示温度值本程序已在工业应用中,可拷贝后直接粘贴到程序中使用.友情奉献.D SM0.0MOVW AIW0, VW2012。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟量比例换算
因为A/D(模/数)、(D/A)数/模转换之间的对应关系,S7-200 CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。
这个关系就是模拟量/数值量的换算关系。
例如,使用一个0 - 20mA的模拟量信号输入,在S7-200 CPU内部,0 - 20mA对应于数值范围0 - 32000;
对于4 - 20mA的信号,对应的内部数值为6400 - 32000。
如果有两个传感器,量程都是0 - 16MPa,但是一个是0 - 20mA输出,另一个是4 - 20mA输出。
它们在相同的压力下,变送的模拟量电流大小不同,在S7-200内部的数值表示也不同。
显然两者之间
存在比例换算关系。
模拟量输出的情况也大致相同。
上面谈到的是0 - 20mA与4 - 20mA之间换算关系,但模拟量转换的目的显然不是在S7-200 CPU中得到一个0 - 32000之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这是换算的最终目标。
如果使用编程软件Micro/WIN32中的PID Wizard(PID向导)生成PID功能子程序,就不必进行0 - 20mA 与4 - 20mA信号之间的换算,只需进行简单的设置。
通用比例换算公式
模拟量的输入/输出都可以用下列的通用换算公式换算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中:
Ov: 换算结果
Iv: 换算对象
Osh: 换算结果的高限
Osl: 换算结果的低限
Ish: 换算对象的高限
Isl: 换算对象的低限
它们之间的关系可以图示如下:
图1. 模拟量比例换算关系
实用指令库
在Step7 - Micro/WIN Programming Tips(Micro/WIN编程技巧中)的Tip38就是关于如何实现上述
转换的例程。
为便于使用,现已将其导出成为”自定义指令库“,可以添加到自己的Micro/WIN编程软件中应用。
在这个指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7-200内部数据的转换;子程序
Scale_R_I可用于内部数据到模拟量输出的转换。
其中scale_I_R程序段例:
将4 - 20mA模拟量输入转换为内部百分比值将内部百分比值转换为4 - 20mA模拟量输出
对于精度要求不高的地方,4-20ma转换成0-20ma 可按比例计算
公式=((ai-4)/16)*20
其程序段实例:
发贴者Memory Of Heart 时间:下午3:540 评论
S7-200 +TD400C显示系统时间、运行时间的程序
看见论坛上有些朋友对西门子TD文本显示器显示时钟的问题比较关心,在这个帖子里笔者给出一个已经应用于工程上的程序例子,并作出详细分析,希望对关心这个问题的朋友有些帮助。
这个程序是S7200+TD400C显示系统时间、当班运行时间、累计运行时间的例子。
以下是s7-200 S7200+TD400C显示系统时间、运行时间的程序详解:
系统硬件配置如下:
PLC:西门子S7-200 CN;CPU 226 CN REL
02.01;AC100~230V电源/DC24V输入/继电器输出;订货号6ES7 216-2BD23-0XB8;固件02.01 Build
2;ASIC:01.00。
文本显示器:TD400C;订货号6AV6 6640-0AA00-0AX0;自带9芯TD/CPU电缆;版本:1.0.0.3。
S7 -200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(因
为当TD400C与S7-200
CPU之间的距离小于2.5米时,采用TD/CPU电缆的方式进行供电;当TD400C与S7-200 CPU之间的距离超过2.5米时,使用外部电源供电并使用
PROFIBUS组件连接网络)。
系统软件配置如下:
S7-200参数设置:在“系统块”的“断电数据保持”中设置VW1600以后2000个单元为断电数据保持。
TD400C参数设置:
TD400C地址:1
CPU地址:2
参数块地址:0
波特率:9.6K
HSA:31
GUF:10
键盘声音反馈:开
屏幕保护时间:10分钟
S7-200的系统时钟调整为准确的北京时间。
下面先写一下该程序所用到的存储器的意义,以便于理解程序。
本班运行时间:小时VW1600、分钟VW1604、秒VW1608;
累计运行时间:小时VW1620、分钟VW1624、秒VW1628;
系统时间(BCD码字节):年VB2000、月VB2001、日VB2002、小时VB2003、分钟VB2004、秒VB2005、星期VB2007;
系统时间(整数):年VW1644、月VW1648、日VW1652、小时VW1656、分钟VW1660、秒VW1664;
本班设备开始运行时间:小时VW1680、分钟VW1684、秒VW1688;
本班设备最后运行时间:小时VW1700、分钟VW1704、秒VW1708;
上班时间设置:小时VW1720、分钟VW1724;
下班时间设置:小时VW1740、分钟VW1744;
本班运行时间复位:VW1760;
本班运行时间被复位的时间:年VW1764、月VW1768、日VW1772、小时VW1776、分钟VW1780;
累计运行时间复位:VW1800;
累计运行时间被复位的时间:年VW1804、月VW1808、日VW1812、小时VW1816、分钟VW1820;
EEPROM写入次数:VW3558
;
因为考虑到编程中可能会用到一些中间存储器,所以在TD400C中定义存储器时留了余量,每两个存储器之间都有1个字的存储器留作备用。
根据相关技术要求,先组态TD400C画面,达到预期目的。
“工具”——“文本显示向导”,先配置TD400C:
然后点击“用户菜单”,配置用户菜单。
因为该工程的界面要求很简单,所以每个菜单项只配置了1个屏幕(最多可以配置8个屏幕)。
第1个屏幕:
该屏幕中的第1个数据(这里的数据排列顺序为:先按第1排从左至右、再按第2排从左至右的顺序依次排列,下同):
因为版面的问题,该屏幕的其它PLC数据和其它屏幕中的PLC数据就不一一列举了。
这些数据都是VW、无符号数类型,具体对应情况请参阅3楼说明。
第2个屏幕:
第3个屏幕:
第4个屏幕:
第6个屏幕:
第8个屏幕:
下面是主程序部分:
首先在主程序中调用子程序:
下面是子程序:先调用TD向导生成的子程序:
TODR 指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,需要进行转换。
在网上也曾查阅过,一部分人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示。
笔者也这样试过一下,可能因为其它问题没有测试成功,而又突然想到——在程序的多处都需要用到这个实时时钟数据,所以转换为ASCII字符以后对程序其它地方没什么作用。
经过考虑,我的转换思想是:先用BTI指令把这个BCD字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个得到的整数用于显示。
在程序的其它地方也可以使用这些实时时钟变
量。
下面是该工程的TD400C显示画面:。