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 就是关于如何实现上述 转换的例程。 ;. . 为便于使用,现已将其导出成为”自定义指令库“,可以添加到自己的 Micro/WIN 编程软件中应用。 在这个指令库中,子程序 Scale_I_to_R 可用来进行模拟量输入到 S7-200 内部数据的转换;子程序 ;. Scale_R_I 可用于内部数据到模拟量输出的转换。 其中 scale_I_R 程序段例: . 将 4 - 20mA 模拟量输入转换为内部百分比值 将内部百分比值转换为 4 - 20mA 模拟量输出 ;. . 对于精度要求不高的地方对于精度要求不高的地方,4-20ma,4-20ma 转换成转换成 0-20ma0-20ma可按比例计算可按比例计算 公式=((ai-4)/16)*20 其程序段实例: 发贴者 Memory Of Heart 时间: 下午下午 3:54 0 评论评论 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 个屏幕: ;.