S C显示系统时间 运行时间的程序详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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地址:1
????????CPU地址:2
????????参数块地址:0
????????波特率:
????????HSA:31
????????GUF: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:
??
??5楼回复时间:2007-7-21 16:34:00
然后点击“用户菜单”,配置用户菜单。

因为该工程的界面要求很简单,所以每个菜单项只配置了1个屏幕(最多可以配置8个屏幕)。

??
??6楼回复时间:2007-7-21 16:46:00 第1个屏幕:
该屏幕中的第1个数据(这里的数据排列顺序为:先按第1排从左至右、再按第2排从左至右的顺序依次排列,下同):
因为版面的问题,该屏幕的其它PLC数据和其它屏幕中的PLC数据就不一一列举了。

这些数据都是VW、无符号数类型,具体对应情况请参阅3楼说明。

??
??7楼回复时间:2007-7-21 17:00:00
第2个屏幕:
??
??8楼回复时间:2007-7-22 22:13:00 第3个屏幕:
第4个屏幕:
第5个屏幕:
第6个屏幕:
第7个屏幕:
第8个屏幕:
??
??10楼回复时间:2007-7-22 22:18:00
下面是主程序部分:首先在主程序中调用子程序:
??
??11楼回复时间:2007-7-22 22:21:00
下面是子程序:先调用TD向导生成的子程序:
??
??12楼回复时间:2007-7-22 22:41:00
??31楼回复时间:2007-7-27 17:14:00
TODR指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,需要进行转换。

????在网上也曾查阅过,一部分人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示。

????笔者也这样试过一下,可能因为其它问题没有测试成功,而又突然想到——在程序的多处都需要用到这个实时时钟数据,所以转换为ASCII字符以后对程序其它地方没什么作用。

经过考虑,我的转换思想是:先用BTI指令把这个BCD 字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个得到的整数用于显示。

在程序的其它地方也可以使用这些实时时钟变量。

??
??34楼回复时间:2007-7-27 17:55:00
谢谢!收藏了,虽然我没有见过西门子的PLC,向你一样的人致敬。

??
??35楼回复时间:2007-7-27 19:58:00
谢谢楼主的好贴
??
??36楼回复时间:2007-7-27 21:27:00
看了一下,乱七八糟的程序段太多了,我就不贴了,贴来麻烦,你们看来更嫌麻烦。

我已经把程序上传到资料库里面去了,正在等待审核。

??
??37楼回复时间:2007-7-27 22:12:00
下面是该工程的TD400C显示画面:
??
??38楼回复时间:2007-7-27 22:13:00
楼主??发帖时间: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:34
??????? PLC程序中可以不调用那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
用向导组态时请注意显示结果是否正常,如果组态时不注意,可能会遇到显示乱码的情况。

下面是笔者遇到的一些情况。

不显示乱码的向导屏幕:
显示乱码的向导屏幕:
显示乱码的实际屏幕:
楼主??发帖时间: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
下面是显示报警的屏幕(右侧中部有个小小的指示器):。

相关文档
最新文档