S7200+TD400C显示系统时间、运行时间的程序详解
- 格式:doc
- 大小:1.90 MB
- 文档页数:39
S7200+TD400C显示系统时间、运行时间的程序详解楼主??发帖时间:2007-7-21 15:46:00 ??????????看见论坛上有些朋友对西门子TD文本显示器显示时钟的问题比较关心,在这个帖子里笔者给出一个已经应用于工程上的程序例子,并作出详细分析,希望对关心这个问题的朋友有些帮助。
????这个程序是S7200+TD400C显示系统时间、当班运行时间、累计运行时间的例子。
??1楼回复时间:2007-7-21 16:02:00系统硬件配置如下:????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组件连接网络)。
??2楼回复时间:2007-7-21 16:12:00系统软件配置如下:????S7-200参数设置:在“系统块”的“断电数据保持”中设置VW1600以后2000个单元为断电数据保持。
????TD400C参数设置:????????TD400C地址:1????????CPU地址:2????????参数块地址:0????????波特率:9.6K????????HSA:31????????GUF:10????????键盘声音反馈:开????????屏幕保护时间:10分钟S7-200的系统时钟调整为准确的北京时间。
前言申菱飞机地面专用空调机组采用德国西门子S7 22X系列PLC控制器,人机界面为德国西门子TD-400C简体中文文本显示器。
在机身上可以看到文本显示器的外观如下图所示:TD400C文本显示器的面板上包括有10个功能按键(1~10),5个命令按键(11~15)及1个4 20的点阵液晶显示器(16)。
第1个功能键与键13配合可提供2种不同的功能组合:如直接按第1号键控制器将提供键上第一行说明的功能。
即为开机或停机,该键主要用于改变机组的运行状态,使正在运行的机组停机或令停止的机组运行。
按键13,在显示器右下角显示一个闪烁的S,然后再按键1,控制器将提供键1上第二行说明的功能即默认参数。
该键主要用于在控制器第一次上电时设定机组的运行参数,平时无用。
其它各键的功能如下:手动功能(键2)用于手动启/停该菜单中所显示出来的相关部件。
按下该键,显示器将切换到相应的手动画面,各手动画面与功能键(键8)配合使用,可以实现机组手自动模式切换和相关部件的手动启动和停止。
该菜单主要用于检修和调试机组时使用。
用户菜单(键3)用于显示与用户使用相关的菜单。
定时功能(键4)用于显示与定时功能相关的菜单。
机组配置(键5)用于显示与机组配置功能相关的菜单。
状态显示(键6)用于显示机组各输入输出点状态的菜单。
工厂菜单(键7)用于显示与运行参数设定相关的菜单,请用户不要随便更改里面的参数。
功能设置(键8)用于在相关的画面实现一些特殊功能的设定如数据清零,故障复位、机组配置的改变,手动启/停等等历史报警(键9)用于显示曾经发生过的故障信息。
最多可显示12条最近发生的历史报警信息。
当有多个历史故障时,可通过按键11或键12可查看前一条或后一条故障信息。
特殊功能(向右键)用于工厂实现一些特殊功能的设置,请用户不要随便操作。
ESC(键14)当按该键一下时,用于实现各个菜单之间的切换,当连续按下该键两下时,可以查看实时发生的报警,可通过按键11或键12可查看前一条或后一条故障信息。
S C显示系统时间运行时间的程序详解集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]S7200+TD400C显示系统时间、运行时间的程序详解楼主发帖时间:2007-7-21 15:46:00看见论坛上有些朋友对西门子TD文本显示器显示时钟的问题比较关心,在这个帖子里笔者给出一个已经应用于工程上的程序例子,并作出详细分析,希望对关心这个问题的朋友有些帮助。
这个程序是S7200+TD400C显示系统时间、当班运行时间、累计运行时间的例子。
1楼回复时间:2007-7-21 16:02:00系统硬件配置如下:PLC:西门子S7-200CN;CPU226CNREL;AC100~230V电源/DC24V输入/继电器输出;订货号6ES7216-2BD23-0XB8;固件Build2;ASIC:。
文本显示器:TD400C;订货号6AV6 6640-0AA00-0AX0;自带9芯TD/CPU电缆;版本:1.0.0.3。
S7-200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(因为当TD400C与S7-200CPU之间的距离小于米时,采用TD/CPU电缆的方式进行供电;当TD400C与S7-200CPU之间的距离超过米时,使用外部电源供电并使用PROFIBUS组件连接网络)。
2楼回复时间:2007-7-21 16:12:00系统软件配置如下:S7-200参数设置:在“系统块”的“断电数据保持”中设置VW1600以后2000个单元为断电数据保持。
TD400C参数设置:TD400C地址:1CPU地址:2参数块地址:0波特率:HSA:31GUF:10键盘声音反馈:开屏幕保护时间:10分钟S7-200的系统时钟调整为准确的北京时间。
3楼回复时间:2007-7-21 16:15:00下面先写一下该程序所用到的存储器的意义,以便于理解程序。
本班运行时间:小时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个字的存储器留作备用。
S7200高数计数器使用方法1学海无涯2008-11-22 21:02:27 阅读623 评论1 字号:大中小S7-200 CPU具有集成的、硬件高速计数器。
CPU221和CPU222可以使用4个30kHz单相高速计数器或2个20kHz的两相高速计数器,而CPU224和CPU226可以使用6个30kHz单相高速计数器或4个20kHz的两相高速计数器。
S7-200的新一代产品CPU224XP支持更高的计数速度。
高速计数器可以被配置为12种模式中的任意一种,但并不是所有计数器都能使用每一种模式。
在正交模式下,你可以选择一倍速或者四倍速计数速率。
对于操作模式相同的计数器,其计数功能是相同的。
计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。
表1.高速计数器的模式及输入点:∙高速计数器的实际输入要根据用户选择的高速计数器号和模式来确定,如上表。
例:如果你选择了HSC0的模式1,则你的外部高速计数输入点应接在I0.0,外部复位点应接在I0.2。
∙如果用户使用了多个高速计数器,则被某一高速计数器占用了的输入点,其它高速计数器不能再使用。
如HSC0的模式3已经占用了I0.1作为外部方向控制点,那么HSC3高速计数器就不能再使用了,因为它的计数输入点也是I0.1,与之冲突了。
(2) CPU 221/222 没有HSC1 和HSC2。
表2. 高速计数器的寻址高速计数器的具体编程及相关的中断和其它参数,请参见《S7-200系统手册》,上面有详细的阐述及例程。
STEP 7-Micro/WIN 提供了一个方便实用的高速计数器指令编程向导,用户可以简单快速地配置自己的高速计数器功能。
高速计数器模式12S7-200 CPU 从23 版以上开始支持高速计数器模式12。
只有HSC0 和HSC3 支持模式12。
HSC0 计数高速脉冲输出Q0.0;HSC3 计数高速计数脉冲输出Q0.1。
模拟量比例换算之杨若古兰创作(D/A)数/模转换之间的对应关系,S7200 CPU内部用数值暗示内部的模拟量旌旗灯号,两者之间有必定的数学关系.这个关系就是模个0 20mA的模拟量旌旗灯号输入,在S7200 CPU内部,0 20mA对应于数值范围0 32000;对于4 20mA的旌旗灯号,对应的内部数都是0 16MPa,但是一个是0 20mA输出,另一个是4 20mA输出.它们在不异的压力下,变送的模拟量电流大小分歧,在S7200内部之间存在比例换算关系.模拟量输出的情况也大致不异.20mA之间换算关系,但模拟量转换的目的明显不是在S7200 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可用来进行模拟量输入到S7200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出其中scale_I_R程序段例:将4 20mA模拟量输入转换为内部百分比值将内部百分比值转换为4 20mA模拟量输出对于精度请求不高的地方,420ma转换成020ma 可按比例计算公式 =((ai4)/16)*20其程序段实例:发贴者 Memory Of Heart 时间:下战书3:540 评论S7200 +TD400C显示零碎时间、运转时间的程序看见论坛上有些朋友对西门子TD文本显示器显示时钟的成绩比较关心,在这个帖子里笔者给出一个曾经利用于工程上的程序例子,并作出具体分析,但愿对关心这个成绩的朋友有些帮忙.这个程序是S7200+TD400C显示零碎时间、当班运转时间、累计运转时间的例子.以下是s7200 S7200+TD400C显示零碎时间、运转时间的程序详解:零碎硬件配置如下:PLC:西门子S7200 CN;CPU 226 CN REL02.01;AC100~230V电源/DC24V输入/继电器输出;订货号6ES72162BD230XB8;固件02.01 Build2;ASIC:01.00.文本显示器:TD400C;订货号6AV6 66400AA000AX0;自带9芯TD/CPU电缆;版本:1.0.0.3.S7 200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(由于当TD400C与S7200CPU之间的距离小于 2.5米时,采取TD/CPU电缆的方式进行供电;当TD400C与S7200 CPU之间的距离超出2.5米时,使用内部电源供电并使用PROFIBUS组件连接收集). 零碎软件配置如下:S7200参数设置:在“零碎块”的“断电数据坚持”中设置VW1600当前2000个单元为断电数据坚持.TD400C参数设置:TD400C地址:1CPU地址:2参数块地址:0波特率:9.6KHSA:31GUF:10键盘声音反馈:开屏幕呵护时间:10分钟S7200的零碎时钟调整为精确的北京时间.上面先写一下该程序所用到的存储器的意义,以便于理解程序.本班运转时间:小时VW1600、分钟VW1604、秒VW1608;累计运转时间:小时VW1620、分钟VW1624、秒VW1628;零碎时间(BCD码字节):年VB2000、月VB、日VB、小时VB、分钟VB、秒VB、礼拜VB;零碎时间(整数):年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个屏幕:第5个屏幕:第??个屏幕:??第??个屏幕:??TOD R指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,须要进行转换.在网上也曾查阅过,一部分人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示.笔者也如许试过一下,可能由于其它成绩没有测试成功,而又突然想到——在程序的多处都须要用到这个实时时钟数据,所以转换为ASCII字符当前对程序其它地方没什么感化.经过考虑,我的转换思想是:先用BTI指令把这个BCD字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个得到的整数用于显示.在程序的其它地方也能够使用这些实时时钟变量.上面是该工程的TD400C显示画面:。
西门子S7-200设备运行时间计算程序
西门子S7-200设备运行时间计算程序昨天一个同事向我反应说现场PLC的设备运行时间计算不准确,有时候一个小时能差一分钟,他经过分析认为运
行时间计算应该放到中断程序里处理。
我跟他说设备运行时间计算完全没有必要放在中断中执行,有误差肯定是编程有问题,然后我把我的算法给他
分享了,并且这个算法我用了很久没有出现过明显误差,今天也跟大家分享一下。
程序用到了系统时钟M0.5(设置时钟标记地址为M0)秒方
波。
具体算法是T_RT_M每秒加1,当它大于3600时表明记录时间超过1小时了,此时给T_RT_H加1,给T_RT_M减3600。
最后时间等于T_RT_H+(T_RT_M/3600),用实数表示。
因为是用上升沿计数,并且秒信号是保持0.5秒的方波,所以程序扫描时间不大于500ms的情况下肯定能捕捉到,不会丢失脉冲。
以前发现有的程序虽然也采用秒方波计数的方式,但是没用用到两级累计的方法,
而是每个脉冲给运行时间累计0.0002778小时,由于浮点数小数精度是不定的,当数据大到一定程度每次累加的小数就会被舍去,造成误差
偏大。
文档来源为: 从网络收集整理.word 版本可编辑.欢迎下载支持S7-200 与Smart 700 的时间同步以及从Smart 700 上修改S7-200 的系统时钟
Smart 700 的时钟是软时钟,掉电后会回到出厂设置状态,比如2004-1-1 12:00:00 。
如何让它同步显示S7-200 的时钟,并修改呢?这个小功能,一般很少用,所以,我做的时候,看了一些方法,总觉得不太详细。
在这里,想详细地说一下。
首先,先介绍一下同步。
了解PLC 和触屏的功能。
1、PLC 的时钟读写功能。
这个功能在PLC 的帮助里有详细的解释。
2、触屏的区域指针功能
区域指针连接用于访问控制器中外部变量的存储位置。
连接的用户数据区域用于在HMI 设备和控制器之间交换特殊数据。
这其中包括“日期时间”选项。
WinCC flexible 里面的设置如下:
这儿设置的地址VW200 , 一定要与下面PLC读取时钟的地址VB200 —致。
这样就可以读取
了。
在画面上添加一个日期时间域那么,我们如何去修改这个时间呢?
PLC程序如下
VB190 •••VB197中分别对应年月日时分秒伙周。
触屏上的画面我是这样做的
“确定”按钮的功能就“ setbit ”M8.2 即可。
输入框的设置
变量
这样就可以在触屏上显示PLC的当前时间,并修改了。
希望能帮到大家。
S7200指令集详解说明S7-200指令详解PLC在运行时需要处理的数据一般都根据数据的类型不同、数据的功能不同而把数据分成几类。
这些不同类型的数据被存放在不同的存储空间,从而形成不同的数据区。
S7-200的数据区可以分为数字量输入和输出映像区、模拟量输入和输出映像区、变量存储器区、顺序控制继电器区、位存储器区、特殊存储器区、定时器存储器区、计数器存储器区、局部存储器区、高速计数器区和累加器区。
3.1 S7-200的数据区1. 数字量输入和输出映象区(1) 数字量输入映像区(I区)数字量输入映像区是S7-200 CPU为输入端信号状态开辟的一个存贮区,用I表示。
在每次扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像区寄存器中。
该区的数据可以是位(1bit)、字节(8bit)、字(16bit)或者双字(32bit)。
其表示形式如下。
·用位表示I0.0、I0.1、…I0.7I1.0、I1.1、…I1.7…I15.0、I15.1、…I15.7共l28点。
输入映像区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“I”,字节地址为整数部分,位号为小数部分。
比如Il.0表明这个输入点是第1个字节的第0位。
·用字节表示IB0、IB1、…IB15共l6个字节。
输入映像区每个字节地址包括存储器字节标识符、字节地址两部分。
字节标识符为“IB”,字节地址为整数部分。
比如IB1表明这个输入字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示IW0、IW2、…IW14共8个字。
输入映像区每个字地址包括存储器字标识符、字地址两部分。
字标识符为“IW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,IW0中的IB0应该是高8位,IB1应该是低8位。
·用双字表示ID0、ID4、…ID12共4个双字。
S7200指令详解PLC在运行时需要处理的数据一般都根据数据的类型不同、数据的功能不同而把数据分成几类。
这些不同类型的数据被存放在不同的存储空间,从而形成不同的数据区。
S7200的数据区可以分为数字量输入和输出映像区、模拟量输入和输出映像区、变量存储器区、顺序控制继电器区、位存储器区、特殊存储器区、定时器存储器区、计数器存储器区、局部存储器区、高速计数器区和累加器区。
3.1 S7200的数据区1. 数字量输入和输出映象区(1) 数字量输入映像区(I区)数字量输入映像区是S7200 CPU为输入端信号状态开辟的一个存贮区,用I表示。
在每次扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像区寄存器中。
该区的数据可以是位(1bit)、字节(8bit)、字(16bit)或者双字(32bit)。
其表示形式如下。
·用位表示I0.0、I0.1、…I0.7I1.0、I1.1、…I1.7…I15.0、I15.1、…I15.7共l28点。
输入映像区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“I”,字节地址为整数部分,位号为小数部分。
比如Il.0表明这个输入点是第1个字节的第0位。
·用字节表示IB0、IB1、…IB15共l6个字节。
输入映像区每个字节地址包括存储器字节标识符、字节地址两部分。
字节标识符为“IB”,字节地址为整数部分。
比如IB1表明这个输入字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示IW0、IW2、…IW14共8个字。
输入映像区每个字地址包括存储器字标识符、字地址两部分。
字标识符为“IW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,IW0中的IB0应该是高8位,IB1应该是低8位。
·用双字表示ID0、ID4、…ID12共4个双字。
S7200+TD400C显示系统时间、运行时间的程序详解老菜鸟楼主发帖时间:2007-7-21 15:46:00 博客播客收藏回复加为好友发送消息建议删除该贴!!看见论坛上有些朋友对西门子TD文本显示器显示时钟的问题比较关心,在这个帖子里笔者给出一个已经应用于工程上的程序例子,并作出详细分析,希望对关心这个问题的朋友有些帮助。
这个程序是S7200+TD400C显示系统时间、当班运行时间、累计运行时间的例子。
1楼回复时间:2007-7-21 16:02:00系统硬件配置如下:PLC:西门子S7-200 CN;CPU 226 CN REL ;AC100~230V电源/DC24V输入/继电器输出;订货号6ES7 216-2BD23-0XB8;固件Build 2;ASIC:。
文本显示器:TD400C;订货号6AV6 6640-0AA00-0AX0;自带9芯TD/CPU 电缆;版本:1.0.0.3。
S7-200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(因为当TD400C与S7-200 CPU之间的距离小于米时,采用TD/CPU电缆的方式进行供电;当TD400C与S7-200 CPU之间的距离超过米时,使用外部电源供电并使用PROFIBUS组件连接网络)。
2楼回复时间:2007-7-21 16:12:00系统软件配置如下:S7-200参数设置:在“系统块”的“断电数据保持”中设置VW1600以后2000个单元为断电数据保持。
TD400C参数设置:TD400C地址:1CPU地址:2参数块地址:0波特率:HSA:31GUF:10键盘声音反馈:开屏幕保护时间:10分钟S7-200的系统时钟调整为准确的北京时间。
3楼回复时间:2007-7-21 16:15:00下面先写一下该程序所用到的存储器的意义,以便于理解程序。
本班运行时间:小时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个字的存储器留作备用。
4楼回复时间:2007-7-21 16:27:00根据相关技术要求,先组态TD400C画面,达到预期目的。
“工具”——“文本显示向导”,先配置TD400C:然后点击“用户菜单”,配置用户菜单。
因为该工程的界面要求很简单,所以每个菜单项只配置了1个屏幕(最多可以配置8个屏幕)。
第1个屏幕:该屏幕中的第1个数据(这里的数据排列顺序为:先按第1排从左至右、再按第2排从左至右的顺序依次排列,下同):因为版面的问题,该屏幕的其它PLC数据和其它屏幕中的PLC数据就不一一列举了。
这些数据都是VW、无符号数类型,具体对应情况请参阅3楼说明。
第2个屏幕:第3个屏幕:第4个屏幕:第5个屏幕:第6个屏幕:第7个屏幕:第8个屏幕:下面是主程序部分:首先在主程序中调用子程序:下面是子程序:先调用TD向导生成的子程序:31楼回复时间:2007-7-27 17:14:00TODR指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,需要进行转换。
在网上也曾查阅过,一部分人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示。
笔者也这样试过一下,可能因为其它问题没有测试成功,而又突然想到——在程序的多处都需要用到这个实时时钟数据,所以转换为ASCII字符以后对程序其它地方没什么作用。
经过考虑,我的转换思想是:先用BTI指令把这个BCD字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个得到的整数用于显示。
在程序的其它地方也可以使用这些实时时钟变量。
谢谢!收藏了,虽然我没有见过西门子的PLC,向你一样的人致敬。
谢谢楼主的好贴看了一下,乱七八糟的程序段太多了,我就不贴了,贴来麻烦,你们看来更嫌麻烦。
我已经把程序上传到资料库里面去了,正在等待审核。
下面是该工程的TD400C显示画面:西门子TD400C型文本显示器应用经验点滴老菜鸟楼主发帖时间:2008-1-28 9:33:00 博客播客收藏回复加为好友发送消息建议删除该贴!!TD400C与S7-200系列PLC的连接线是在买TD400C时随机附带的,不需要单独购买或自己去做:电控柜面板上的TD400C与柜内的S7-200系列PLC连接时,不需要另外连接DC24V电源:当TD400C与S7-200系列PLC的连接线需要重做时,就需要连接线的接线图,下面是连接图:TD400C随机附送的电缆就是这个带电源连接线的电缆。
如果要连接到网络,就需要不带电源连接线的电缆:博客播客引用加为好友发送消息回复老菜鸟1楼回复时间:2008-6-5 10:30:34PLC程序中可以不调用那2个向导生成的子程序,TD400C仍然可以正常显示。
如果选择默认显示画面为用户屏幕,在编辑用户屏幕时不勾选默认显示屏幕,那么默认会显示第一个菜单的第1个屏幕。
如果选择默认显示画面为报警屏幕,即使在编辑用户屏幕时勾选了默认显示屏幕,默认也会显示报警屏幕,不会显示勾选的用户屏幕。
当光标在修改的参数处(刚接通电源时,如果默认屏幕存在可编辑参数的话,也是这种状态)——也就是正在修改参数,那么当报警时那个报警指示器不会闪烁。
在通电后或用户不操作 30 秒后显示默认的用户屏幕或报警,此时报警指示器就会闪烁了。
屏幕保护时间:在该时间内没有操作TD400C时,屏幕背光灯关闭,显示非常暗。
除SHIFT+F1-8键以外,每次只能响应一个按键,不能同时响应多个按键。
建议TD400C的参数块尽量设置为VB0开头的连续存储区,这样的话当TD400C在特殊情况下(例如电池掉电等)丢失存储数据时仍然是默认的以VB0开头的存储区,设备没有任何影响,仍然可以正常工作。
居于TD400C可能占用2000个以上的字节(用户屏幕/报警屏幕越多,占用的存储区越大),所以PLC程序中的其它地方最好使用VB3000以上的存储器。
博客播客引用加为好友发送消息回复老菜鸟2楼回复时间:2008-6-5 10:32:30西门子自动化与驱动集团技术支持与服务热线:800-810-4288或0博客播客引用加为好友发送消息回复老菜鸟3楼回复时间:2008-6-5 11:20:21用向导组态时请注意显示结果是否正常,如果组态时不注意,可能会遇到显示乱码的情况。
下面是笔者遇到的一些情况。
不显示乱码的向导屏幕:显示乱码的向导屏幕:显示乱码的实际屏幕:关于TD400C报警画面的说明和应用实例老菜鸟楼主发帖时间:2008-6-5 9:56:42 博客播客收藏回复加为好友发送消息建议删除该贴!!去年的时候,就有很多朋友问到TD400C的报警画面问题,这些问题我也做了部分解答,但可能还不够详细。
在这里,我把这些问题汇总一下,并做出一些说明,最后把应用实例和大家一起分享一下。
博客播客引用加为好友发送消息回复老菜鸟1楼回复时间:2008-6-5 10:42:01首先需要说明的是:TD400C的报警画面不能弹出——也就是说,如果当前画面为菜单画面,当出现报警时,报警画面不能自动弹出来!为什么不能自动弹出来呢?这个问题很简单,因为西门子在这款产品中没做这样的功能。
这一点,在手册中就有说明,而且笔者也就该问题咨询过西门子800技术支持,得到的回答就是该产品没有自动弹出报警画面的功能。
手册上相关叙述是这样的:博客播客引用加为好友发送消息回复老菜鸟2楼回复时间:2008-6-5 11:29:44如果报警屏幕设置为TD400C的默认显示模式并启用报警,那么当报警出现时就马上会弹出报警画面。
不过这样平常显示的就是报警画面了,而不是用户界面,要看用户界面得通过按键去查找才可以——这样对用户操作和观察来说,更麻烦了!博客播客引用加为好友发送消息回复老菜鸟3楼回复时间:2008-6-5 15:42:40下面是相关程序实例:博客播客引用加为好友发送消息回复老菜鸟4楼回复时间:2008-6-5 15:50:57还要调用向导生成的子程序:博客播客引用加为好友发送消息回复老菜鸟5楼回复时间:2008-6-5 15:57:05下面是显示报警的屏幕(右侧中部有个小小的指示器):。