当前位置:文档之家› S7200+TD400C显示系统时间、运行时间的程序详解

S7200+TD400C显示系统时间、运行时间的程序详解

S7200+TD400C显示系统时间、运行时间的程序详解
S7200+TD400C显示系统时间、运行时间的程序详解

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:

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

第1个屏幕:

该屏幕中的第1个数据(这里的数据排列顺序为:先按第1排从左至右、再按第2排从左至右的顺序依次排列,下同):

因为版面的问题,该屏幕的其它PLC数据和其它屏幕中的PLC数据就不一一列举了。这些数据都是VW、无符号数类型,具体对应情况请参阅3楼说明。

第2个屏幕:

第3个屏幕:

第4个屏幕:

第5个屏幕:

第6个屏幕:

第7个屏幕:

第8个屏幕:

下面是主程序部分:首先在主程序中调用子程序:

下面是子程序:先调用TD向导生成的子程序:

31楼回复时间:2007-7-27 17:14:00

TODR指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,需要进行转换。

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

C获取系统时间及时间格式

1、新建一个windows form 窗体应用程序。 2、在该窗体加载时,输入如下代码 [csharp] view plaincopy Thread P_thread = new Thread( () => //lambda表达式(参数列表)=>{执行语句} lambda表达式是比匿名方法更加简洁的一种匿名函数语法 { while (true) {//public Object Invoke (Delegate method)在(拥有此控件的基础窗口句柄的)线程上执行指定的委托。 //关于为何使用invoke方法,参见C#中跨线程调用控件的线程安全性方法一文 this.Invoke( (MethodInvoker)delegate()//methodinvoke 表示一个委托,该委托可执行托管代码中声明为void 且不接受任何参数的任何方法。 //在对控件的Invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托。 { this.Refresh(); Graphics P_Graphics = CreateGraphics(); // Control.CreateGraphics方法,为控件创建Graphics。 //public Graphics CreateGraphics () 返回值为控件的Graphics。Graphics 类提供将对象绘制到显示设备的方法 //public void DrawString( // string s, // Font font, // Brush brush, // PointF point //)在指定位置point并且用指定的Brush 和Font 对象绘制指定的文本字符串s。 P_Graphics.DrawString("系统时间:" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒"), new Font("宋体", 15), Brushes.Blue, new Point(10, 10)); });//this.invoke Thread.Sleep(1000); }//while

如何查看电脑使用记录完整版

如何查看电脑使用记录 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

一、如何查看电脑开机记录 1.打开“我的电脑”,C盘Windows目录下有很多文件,找到一个(或者开始-运行)。它是“计划任务”的日志,会忠实地记录电脑计划任务的执行情况,还有每次开机启动及退出Windows系统的信息。 2.通过“事件查看器”的事件日志服务查看计算机的开、关机时间。打开“控制面板”,双击“管理工具”,然后打开“事件查看器”,在左边的窗口中选择“系统”选项。单击鼠标右键,在弹出的快捷菜单中选择“属性”,在打开的“系统属性”窗口中选择“筛选器”选项卡,在“事件类型”下面选中“信息”复选项,并在“事件来源”列表中选择“eventlog”选项,继续设定其他条件后,单击“确定”按钮,即可看到需要的事件记录了。双击某条记录,如果描述信息为“事件服务已启动”,那就代表计算机开机或重新启动的时间,如果描述信息是“事件服务已停止”,即代表计算机的关机时间。 3.在运行框中输入cmd进入后直接输入systeminfo就可以看到你这次开电脑到现在共计多长时间了。 二、如何查看电脑文档记录 1.找到C:\WINDOWS\Prefetch下。里面有记录你曾经运行过什么程序,文件最前面的为程序名,后面的执行代码不用理他!如果你没有优化过的话~这里面保存的东西应该是非常有价值的!

2.看你最近打开过什么文件(非程序)和文件夹(最近打开文件的历史记录)! "我的电脑"-"C盘(操作系统所在盘)"-"Documents and Settings"-"Administrator (Administrator改成你的用户名)"-"Recent"(或开始-运行-recent)。可以看到在本地硬盘上的操作(包括打开的电影,word文档等)。 3.开始-运行-Local Settings,有个History的文件夹,里面的记录更详细。 4. 在开始-文档中可以看到最近使用过的文件。 5. 电脑日志记录:开始/控制面板/性能和维护(经典视图里去掉这个)/管理工具/事件查看器,看看里面的记录。 6. 查看最近删除了什么~呵呵这就要用到硬盘恢复工具。 三、如何查看电脑上网记录 1.开始-运行Local Settings,有个Temporary Internet Files的文件夹里面是记录上网的。 2.看你都打开过哪些网址,可以在IE里点击历史记录。

Matlab中计算程序运行时间的三种方法

Matlab中计算程序运行时间的三种方法 经常我们需要计算我们程序到底运行多长时间,这样可以比较程序的执行效率。当然这个对于只有几秒钟的小程序没有什么意义,但是对于大程序就有很重要的意义了。 下面我们就说说Matlab中计算程序运行时间的三种常用方法吧! 注意:三种方法由于使用原理不一样,得到结果可能有一定的差距! 1、tic和toc组合(使用最多的) 计算tic和toc之间那段程序之间的运行时间,它的经典格式为 1. tic 2. 。。。。。。。。。。 3. toc 复制代码 换句话说程序,程序遇到tic时Matlab自动开始计时,运行到toc时自动计算此时与最近一次tic之间的时间。这个有点拗口,下面我们举个例子说明 1. % by dynamic of Matlab技术论坛 2. % see also https://www.doczj.com/doc/1b10981383.html, 3. % contact me matlabsky@https://www.doczj.com/doc/1b10981383.html, 4. % 2009-08-18 12:08:47 5. clc 6. tic;%tic1 7. t1=clock; 8. for i=1:3 9. tic ;%tic2 10. t2=clock; 11. pause(3*rand) 12. %计算到上一次遇到tic的时间,换句话说就是每次循环的时间 13. disp(['toc计算第',num2str(i),'次循环运行时间:',num2str(toc)]); 14. %计算每次循环的时间 15. disp(['etime计算第',num2str(i),'次循环运行时间:',num2str(etime(clock,t2))]); 16. %计算程序总共的运行时间 17. disp(['etime计算程序从开始到现在运行的时间:',num2str(etime(clock,t1))]); 18. disp('======================================') 19. end 20. %计算此时到tic2的时间,由于最后一次遇到tic是在for循环的i=3时,所以计算 的是最后一次循环的时间 21. disp(['toc计算最后一次循环运行时间',num2str(toc)]) 22. disp(['etime程序总运行时间:',num2str(etime(clock,t1))]); 复制代码 运行结果如下,大家可以自己分析下 1. toc计算第1次循环运行时间: 2.5628 2. etime计算第1次循环运行时间:2.562

wincc系统日期时间获取

wincc系统日期时间获取 系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间 方法一: 在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了; 下面新建几个TAG: 名字:date, 数据类型:text tag 8-bit character set,地址设定为Function:date,format:"MM-DD-YYYY" 名字:time, 数据类型:text tag 8-bit character set,地址设定为Function:Time,format:"HH:MM:SS" 根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容 TAG建立完成了,就可以读到系统时间了。新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了. 方法二: 使用 C脚本获得系统时间 #include "apdefap.h" char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { time_t timer;

struct tm *ptm; char *p; time(&timer); ptm=localtime(&timer); p=SysMalloc(9); sprintf(p,"%04d:%02d:%02d",ptm->tm_year+1900,ptm->tm_mon+1,p tm->tm_mday); return(p); } 其中 //系统时间已经获得 //年: ptm -> tm_year+1900 //月: ptm-> tm_mon+1 //日: ptm -> tm_mday //星期: ptm -> tm_wday *注意这个,tm_wday返回的是整数,必须经过转换才能用来表示星期几

单片机C延时时间怎样计算

C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时 应该使用unsigned char作为延时变量。以某晶振为12MHz的单片 机为例,晶振为12M H z即一个机器周期为1u s。一. 500ms延时子程序 程序: void delay500ms(void) { unsigned char i,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--); } 计算分析: 程序共有三层循环 一层循环n:R5*2 = 81*2 = 162us DJNZ 2us 二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us 三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us

循环外: 5us 子程序调用 2us + 子程序返回2us + R7赋值 1us = 5us 延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms 计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5 二. 200ms延时子程序 程序: void delay200ms(void) { unsigned char i,j,k; for(i=5;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--); } 三. 10ms延时子程序 程序: void delay10ms(void) { unsigned char i,j,k; for(i=5;i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--);

查看系统操作日志

如何查看电脑使用记录 系统设置 : 怎样在日志里面记录用户地登陆、对文件地访问等信息? : "开始"—>"运行"—>""—>"计算机配置"—>"设置"—>"安全设置"—>"本地策略"—>"审计策略"—>...b5E2R。 .看计算机在哪天运行过运行了多久! (系统安装在盘) 找到:\\文件里面有你自这个系统产生以来曾经工作过地时间,包括哪天开了机开机时间关机时间! 也可以进入控制面版管理工具事件查看器系统可以看到开机和关机时间. .看你最近运行过什么程序: 找到:\\下.里面有记录你曾经运行过什么程序,文件最前面地及为程序名,后面地执行代码不用理他!如果你没有优化过地话这里面保存地东西应该是非常有价值地!p1Ean。 .看你最近打开过什么文件(非程序)和文件夹! 开始运行

.看最近在网上做了什么…………等等 显示所有文件个文件夹,找到:\ \\ 目录你慢慢探索一下这个文件夹吧如果没有进行过磁盘清理或相关优化你所有记录可全在这个里面哦(包括你上网干了什么坏事可能还能有视频,图片罪证呢!呵呵)DXDiT。 .查看最近删除了什么:这就要用到硬盘恢复工具啦把你曾经以为彻底删除掉地东西都给你翻出来哈哈!! 相关软件(以下软件较旧,可以找相关新版地软件,自己去百度搜索吧). 文件大小:更新时间:下载次数:次软件星级:★★★ 可以即时地监测你地电脑,当你地电脑有改变地时候,它会立刻提示你,从而让你作出选择. 软件分类:系统监视操作系统:授权方式:试用版RTCrp。 文件大小:更新时间:下载次数:次软件星级:★★★ 可说是地加强版,有别于地一次只可以监控一个文件,可以监控一个文件夹中下地所有文件. 软件分类:系统监视操作系统:授权方式:试用版5PCzV。

labView中如何获取windows当前系统时间

labView中如何获取windows当前系统时间 《labview8.2入门到精通》的PPT,第4章里面有个练习是“写一个VI获取当前系统时间,并将其转换为字符串和浮点数”。完成效果如图。我要怎么来获取当前系统的时间呢? 程序如下,还是比较简单的,用到的函数都在编程---定时和编程---数值---转换里 问题: 我从一个仪器当中读取到了GPS时间,并想在LabVIEW中以较高的分辨率设定Windows系统时间。我注意到LabVIEW的时间函数选版中有获取时间/日期的VI,但没有设定时间的VI。如何才能在LabVIEW中实现时间设定?

解答: LabVIEW中没有现成的VI用于系统时间设定,但可以通过Windows SDK来实现。参考以下的步骤,通过调用库函数节点的方式,调用kernel32.dll中SetSystemTime函数,可以设定系统时间: 1. 在程序框图中放置一个调用库函数节点。双击此节点打开调用 库函数对话框。 2. 点击浏览按钮并选择kernel32.dll (一般放置于 "C:\WINDOWS\system32\kernel32.dll")。 3. 在函数名下拉列表中选择"SetSystemTime" 。 4. 在调用规范下拉列表中选择"stdcall (WINAPI)" 。 5. 在返回类型中选择“数值”以及“有符号8位整数”。 6. 点击添加参数并在类型中选择“匹配至类型”,接着在数据格式 中选择“句柄指针”。 7. 点击确定按钮,完成对调用库函数节点的配置。 8. 这个函数以一个包含八个双字节(16位整数)的结构体作为参 数。在LabVIEW中,需要创建一个包含八个双字节的簇来传 递这个参数。八个双字节分别为年、月、星期、日、小时、分 钟、秒以及毫秒。将此簇连接至调用库函数节点的参数1。 9. 输入相应的值,并运行程序以设定系统时间。

c++程序计时

C++运行时间的代码 如何获取代码运行时间在调试中,经常需要计算某一段代码的执行时间,下面给出两种常用的方式: 第一种:使用GetTickCount函数 #include #include int main() { DWORD start_time=GetTickCount(); { //此处为被测试代码} DWORD end_time=GetTickCount(); cout<<"The run time is:"<<(end_time-start_time)<<"ms!"< #include int main() { clock_t start_time=clock(); { //被测试代码} clock_t end_time=clock(); cout<< "Running time is: "<(end_time-start_time)/CLOCKS_PER_SEC*1000<<"ms"<

如何查看电脑使用记录

一、如何查看电脑开机记录 1.打开“我的电脑”,C盘Windows目录下有很多文件,找到一个SchedLgU.txt(或者开始-运行SchedLgU.txt)。它是“计划任务”的日志,会忠实地记录电脑计划任务的执行情况,还有每次开机启动及退出Windows系统的信息。 2.通过“事件查看器”的事件日志服务查看计算机的开、关机时间。打开“控制面板”,双击“管理工具”,然后打开“事件查看器”,在左边的窗口中选择“系统”选项。单击鼠标右键,在弹出的快捷菜单中选择“属性”,在打开的“系统属性”窗口中选择“筛选器”选项卡,在“事件类型”下面选中“信息”复选项,并在“事件来源”列表中选择“eventlog”选项,继续设定其他条件后,单击“确定”按钮,即可看到需要的事件记录了。双击某条记录,如果描述信息为“事件服务已启动”,那就代表计算机开机或重新启动的时间,如果描述信息是“事件服务已停止”,即代表计算机的关机时间。 3.在运行框中输入cmd进入后直接输入systeminfo就可以看到你这次开电脑到现在共计多长时间了。 二、如何查看电脑文档记录 1.找到C:\WINDOWS\Prefetch下。里面有记录你曾经运行过什么程序,文件最前面的为程序名,后面的执行代码不用理他!如果你没有优化过的话~这里面保存的东西应该是非常

有价值的! 2.看你最近打开过什么文件(非程序)和文件夹(最近打开文件的历史记录)! "我的电脑"-"C盘(操作系统所在盘)"-"Documents and Settings"-"Administrator (Administrator改成你的用户名)"-"Recent"(或开始-运行-recent)。可以看到在本地硬盘上的操作(包括打开的电影,word文档等)。 3.开始-运行-Local Settings,有个History的文件夹,里面的记录更详细。 4. 在开始-文档中可以看到最近使用过的文件。 5. 电脑日志记录:开始/控制面板/性能和维护(经典视图里去掉这个)/管理工具/事件查看器,看看里面的记录。 6. 查看最近删除了什么~呵呵这就要用到硬盘恢复工具。 三、如何查看电脑上网记录 1.开始-运行Local Settings,有个Temporary Internet Files的文件夹里面是记录上网的。 2.看你都打开过哪些网址,可以在IE里点击历史记录。

vc++获取系统时间和程序运行时间

内容: Q:如何获取时间?精度如何? A: 1 使用time_t time( time_t * timer ) 精确到秒 计算时间差使用double difftime( time_t timer1, time_t timer0 ) 2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒 3 使用DWORD GetTickCount() 得到的是系统运行的时间精确到毫秒 4 如果使用MFC的CTime类,可以用CTime::GetCurrentTime() 精确到秒 5 要获取高精度时间,可以使用 BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)获取系统的计数器的频率 BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)获取计数器的值 然后用两次计数器的差除以Frequency就得到时间。 6 还有David的文章中提到的方法: Multimedia Timer Functions The following functions are used with multimedia timers. timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime timeGetTime/timeKillEvent/TimeProc/timeSetEvent 精度很高 Q:GetTickCount()函数,说是毫秒记数,是真的吗,还是精确到55毫秒? A: GetTickCount()和GetCurrentTime()都只精确到55ms(1个tick就是55ms)。如果要精确到毫秒,应该使用timeGetTime函数或QueryPerformanceCounter函数。具体例子可以参考QA001022 "VC++中使用高精度定时器"、QA001813 "如何在Windows实现准确的定时"和QA004842 "timeGetTime函数延时不准"。 Q:vc++怎样获取系统时间,返回值是什么类型的变量呢? GetSystemTime返回的是格林威志标准时间 GetLocalTime,和上面用法一样,返回的是你所在地区的时间,中国返回的是北京时间VOID GetSystemTime( LPSYSTEMTIME lpSystemTime // address of system time structure ); 函数就可以获得了,其中LPSYSTEMTIME 是个结构体 含:年,月,日,周几,小时,分,秒,毫秒。 以下是Time的MSDN文档: Compatibility in the Introduction. Libraries LIBC.LIBSingle thread static library, retail versionLIBCMT.LIBMultithread static library, retail versionMSVCRT.LIBImport library for MSVCRT.DLL, retail version Return Value time returns the time in elapsed seconds. There is no error return. Parameter timer Storage location for time Remarks

Qt系统运行时间差计算

Qt系统运行时间差计算 在网上查了很多资料,发觉网上很多用Qt写的系统运行时间差的例子写的都不是很全,今天自己研究了一下,可以成功得显示日时分秒,觉得不错,就与大家分享了 #include #include #include int main(int argc,char*argv[]) { QCoreApplication a(argc,argv); QDateTime now=QDateTime::currentDateTime(); QDateTime Moon_Festival; QDateTime xmas(QDate(now.date().year(),7,26),QTime(0,0)); //QDate(now.date().year()取当前的年分,可以自己设置,比如2012 Moon_Festival=xmas; //这里最大计数为天 //这里涉及到两个函数daysTo()和SecsTo(),他们分别返回差值的天数和秒数,如果有朋友需要精确到毫秒的,QDateTime还提供了一个msecsTo() qDebug()<start(1000);//设置更新时间间隔 timeFlag=1; } }

C#获取当前系统时间

C#获取当前系统时间 2010-01-02 16:24 --DateTime 数字型 System.DateTimecurrentTime=new System.DateTime(); 取当前年月日时分秒 currentTime=System.DateTime.Now; 取当前年 int 年=currentTime.Year; 取当前月 int 月=currentTime.Month; 取当前日 int 日=currentTime.Day; 取当前时 int 时=currentTime.Hour; 取当前分 int 分=currentTime.Minute; 取当前秒 int 秒=currentTime.Second; 取当前毫秒 int毫秒=https://www.doczj.com/doc/1b10981383.html,lisecond; (变量可用中文) 取中文日期显示——年月日时分 string strY=currentTime.ToString("f"); //不显示秒 取中文日期显示_年月 string strYM=currentTime.ToString("y"); 取中文日期显示_月日 string strMD=currentTime.ToString("m"); 取当前年月日,格式为:2003-9-23 string strYMD=currentTime.ToString("d"); 取当前时分,格式为:14:24 string strT=currentTime.ToString("t"); DateTime.Now.ToString();//获取当前系统时间完整的日期和时间DateTime.Now.ToLongDateString();//只显示日期 xxxx年xx月xx日,一个是长日期 DateTime.Now.ToShortDateString();//只显示日期 xxxx-xx-xx 一个是短日期 //今天 DateTime.Now.Date.ToShortDateString(); //昨天的 DateTime.Now.AddDays(-1).ToShortDateString(); //明天的 DateTime.Now.AddDays(1).ToShortDateString(); //本周(注意这里的每一周是从周日始至周六止) DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString(); DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString(); //上周,上周就是本周再减去7天 DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();

30天自制操作系统日志第3天

操作系统实验日志 一、实验主要内容 1、制作真正的IPL,即启动程序加载器,用来加载程序。 添加的代码关键部分如下: MOV AX,0x0820 MOV ES,AX MOV CH,0 ;柱面0 MOV DH,0 ;磁头0 MOV CL,2 MOV AH,0x02 ;AH=0x02:读盘 MOV AL,1 ;执行1个扇区 MOV BX,0 MOV DL,0x00 ; A驱动器(现在都只有一个驱动器了) INT 0x13 ;调用磁盘BIOS JC error 这里有JC指令,是一些特定指令中的一种,后面知识点收录有。JC就是jump if carry,如果进位标志位1的话,就跳转。就是成功调用0x13就会跳转到error处。 INT 0x13又是一个中断,这里AH是0x02的时候是读盘的意思,就是要把磁盘的内容写入到内存中。今天实验用到了4个软中断,都记在知识点里了。 至于CH\DH\CL\AL三个寄存器呢,就分别是柱面号、磁头号、扇区号、执行的扇区数。那么含有IPL的启动区位于:C0-H0-S1 (Cylinder, magnetic Head, Sector) 然后ES\BX和缓冲地址有关。

2、缓冲区地址0x0820 MOV AL,[ES:BX] ; ES*16+BX -> AL 说是原来16位的BX只能表示0~65535,后来就引入了一个段寄存器,用MOV AL,[ES:BX] ; ES*16+BX -> AL这样的方法就可以表示更大的地址,就够当时用了,可以指定1M内存地址了。那么这里我们就是将0X0820赋值给ES,BX为0,这样ES*16后就访问0X8200的地址,那么就是讲软盘数据转载到0X8200到0X83ff的地方。 3、试错以及读满10个柱面 MOV AX,0x0820 MOV ES,AX MOV CH,0 MOV DH,0 MOV CL,2 readloop: MOV SI,0 ; 记录失败的次数,SI达到5就停止 retry: MOV AH,0x02 MOV AL,1 MOV BX,0 MOV DL,0x00 INT 0x13 JNC next ; 没出错就跳到next ADD SI,1 ; SI加一 CMP SI,5 ; SI和5比较 JAE error ; SI >= 5 时跳转到error MOV AH,0x00 MOV DL,0x00 INT 0x13 ; 重置驱动器,看上面AH变为0X00和0X02功能不同 JMP retry next:

VC 获取当前时间

VC++中其实还是通过调用它自带的CTime类来完成的获取当前系统时间的,我们做一个小程序来了解这个过程吧!对话框里只有两个显示框和两个按钮,点下按钮显示当前时间。就这么一个小程序。 (1)建立应用程序外壳 创建一个新的AppWizard项目,命名为shiyan,选择Dialog based;其他都选用默认属性,单击Finish完成生成应用程序的步骤。进入对话框界面以后,按下图所示布置显示框和功能按钮。 (2)设置参数 其中上面的显示文本框设为CString型,命名为m_show,ID号为IDC_show。下面的显示文本框设为CString型,命名为m_show1,ID号为IDC_show1。 (3)编译程序 start键程序: void CDate1Dlg::Onstart() { //count=0; SetTimer(1,1000,NULL); // TODO: Add your control notification handler code here

} stop键程序: void CDate1Dlg::Onstop() { KillTimer(1); // TODO: Add your control notification handler code here } (4)增加计时器控件 View -> ClassWizard -> MessageMaps -> CUse progressDlg,加入WM_TIMER函数,编辑程序: void CDate1Dlg::OnTimer(UINT nIDEvent) { if(nIDEvent==1) { // count++; UpdateData(1); CTime mtime=CTime::GetCurrentTime();//获取当前时间 char i; CString w; i=char (mtime.GetDayOfWeek()); //获取当前时间的天数是这个星期的第几天,这里要注意了,系统上默认的一个星期的第一天是星期日,最后一天是周六,大家千万不要搞错了。我也是试了才知道的。 switch(i)//将数字状换成字符就不会出现星期7这种情况了 { case 2:

如何查看或删除电脑历史操作记录

如何查看电脑历史操作记录 如何查看电脑历史操作记录? 1.看计算机在哪天运行过~运行了多久! (系统安装在c盘) 找到c:\windows\SchedLgU.txt文件里面有你自这个系统产生以来曾经工作过的时间,包括哪天开了机开机时间关机时间! 2.看你最近运行过什么程序: 找到C:\WINDOWS\Prefetch下。里面有记录你曾经运行过什么程序,文件最前面的及为程序名,后面的执行代码不用理他!如果你没有优化过的话~这里面保存的东西应该是非常有价值的! 3.看你最近打开过什么文件(非程序)和文件夹! 开始--运行—recent可以看到在本地硬盘上的操作,(包括打开的电影,word文档等). 还可以运行Local Settings,有个History的文件夹,里面的记录更详细. 若要查看上网记录,运行Local Settings,有个Temporary Internet Files的文件夹里面是记录上网的. 4.看最近在网上做了什么…………等等~ 显示所有文件个文件夹,找到C:\Documents and Settings\xukunping\Local Settings目录~~你慢慢探索一下这个文件夹吧~如果没有进行过磁盘清理或相关优化~你所有记录可全在这个里面哦~(包括你上网干了什么坏事~可能还能有视频,图片罪证呢!呵呵) 5.查看最近删除了什么:这就要用到硬盘恢复工具啦~把你曾经以为彻底删除掉的东西都给你翻出来~~哈哈!! ---------- 6、开机到现在的总时间 运行---cmd----systeminfo 有一行为“系统启动时间”其描述的为开机到现在的总时间 另有计算机的其它信息,如系统型号;安装初始时间;产品ID号等; 在Windows XP中,我们可以通过“事件查看器” 的事件日志服务查看计算机的开、关机时间。 控制面板/管理工具/事件查看器, 1 1、打开“控制面板”,双击“管理工具”,然后打 开“事件查看器”,在左边的窗口中选择“系统” 选项。单击鼠标右键,在弹出的快捷菜单中 选择“属性”,

c++ 简单获取系统时间

C++获取时间方法有多种,其中比较实用的是localtime函数 我们来看下下面这个范例 struct tm t; //tm结构指针 time_t nowT; //声明time_t类型变量 time(&nowT); //获取系统日期和时间 t = localtime( &nowT); //获取当地日期和时间 printf("%4d年%02d月%02d日%02d:%02d:%02d\n", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec); //格式化输出本地时间 该方法是调用了localtime函数进行时间获取,使用时得包含time.h头文件 #include 但是在vs上不少人会遇到编译器的报错提示,要求把localtime换成localtime_s 解释是为了安全性 如果出现这种情况我们只要改一行代码即可 t = localtime( &nowT); 改为localtime_s( &t,&nowT); 如果想要一次性输出日期与时间,那我们就要用到asctime函数 struct tm t; //tm结构指针 time_t nowT; //声明time_t类型变量 time(&nowT); //获取系统日期和时间 t = localtime( &nowT); //获取当地日期和时间 char TIMET[32]; TIMET = asctime(,&t); printf("now is: %s\n",TIMET ); 如诺出现vs的编译器报错,那只需要改成这样既可 struct tm t; //tm结构指针 time_t nowT; //声明time_t类型变量 time(&nowT); //获取系统日期和时间 localtime_s(&t, &nowT); //获取当地日期和时间 char TIMET[32]; asctime_s(TIMET, &t); printf("now is: %s\n",TIMET);

PHP获取系统当前时间date函数

PHP获取系统当前时间date函数.txt偶尔要回头看看,否则永远都在追寻,而不知道自己失去了什么。男人掏钱是恋人关系,女人掏钱是夫妻关系,男女抢着掏钱是朋友关系。男人爱用眼睛看女人,最易受美貌迷惑;女人爱用心看男人,最易受伤心折磨。使用函式 date() 实现 显示的格式: 年-月-日小时:分钟:秒 相关时间参数: a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" D - 星期几,三个英文字母; 如: "Fri" F - 月份,英文全名; 如: "January" h - 12 小时制的小时; 如: "01" 至 "12" H - 24 小时制的小时; 如: "00" 至 "23" g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23" i - 分钟; 如: "00" 至 "59" j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31" l - 星期几,英文全名; 如: "Friday" m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12" n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12" M - 月份,三个英文字母; 如: "Jan" s - 秒; 如: "00" 至 "59" S - 字尾加英文序数,二个英文字母; 如: "th","nd" t - 指定月份的天数; 如: "28" 至 "31" U - 总秒数 w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) Y - 年,四位数字; 如: "1999" y - 年,二位数字; 如: "99" z - 一年中的第几天; 如: "0" 至 "365" 可以自由设定显示的内容,连接符号或是显示位置,例如date("m-d H") 或者date("dmY");?>等php中的日期处理 加入时间:2004-12-18 17:35:22 大小:12 KB 阅读次数:1405PHP中的日期处理 转贴:xiaxia 日期:2004-05-26 人气:9 我正打算用PHP编写一种帮助处理系统。我发现我必须知道处理完最后一位客户的问题后已经过去了多长时间?当我过去用ASP时解决这个问题相当简单,ASP有相应的函数 DateDiff 可以给出两个日期间间隔多少月、多少天和多少秒。当我搜寻完PHP手册后我发现PHP并没

查看系统日志

如果你已经用上了Windows XP,那么是否意识到不管你是否愿意,操作系统每天都在后台默默无闻地记录下所有的一举一动,相当于忠实的史官“铁笔写春秋”,这就是可以在“控制面板→管理工具”中找到的“事件查看器”,通过它可以了解系统的喜怒哀乐和一言一行,虽然都是一些流水账,但我们既可以从中品尝到成功的喜悦,也可以找到失败的原因,实在是一个忠实的系统助手。 事件查看器能看些什么 事件查看器相当于一本厚厚的系统日志,可以查看关于硬件、软件和系统问题的信息,也可以监视Windows XP的安全事件,下面笔者简单介绍: 提示:除了可以在“控制面板→管理工具”中找到“事件查看器”的踪影外,也可以在“运行”对话框中手工键入“%SystemRoot%\system32\eventvwr.msc /s”打开事件查看器窗口。 1.应用程序日志 包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。 2.安全性日志 记录了诸如有效和无效的登录尝试等事件,以及与资源使用相关的事件,例如创建、打开或删除文件或其他对象,系统管理员可以指定在安全性日志中记录什么事件。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。 事件查看器简介 无论是普通计算机用户,还是专业计算机系统管理员,在操作计算机的时候都会遇到某些系统错误。很多朋友经常为无法找到出错原因,解决不了故障问题感到困扰。事实上,利用Windows内置的事件查看器,加上适当的网络资源,就可以很好地解决大部分的系统问题。 事件查看器的启动:可以通过单击鼠标右键至我的电脑,在弹出的快捷菜单下选择管理,会弹出计算机管理菜单,选择菜单下的事件查看器即可,单击会出现三个选项,其中的系统可以帮助用户查看电脑的上次开关机时间。

计算程序运行时间 time t clock t

计算程序运行时间time t clock t 计算程序运行时间(time_t,clock_t) 转载我们有时需要得到程序的运行时间,但我们也要知道,根本不可能精 确测量某一个程序运行的确切时间,文献中说的很明白,现摘录如下。 我们平时常用的测量运行时间的方法并不是那么精确的,换句话说,想精 确获取程序运行时间并不是那么容易的。也许你会想,程序不就是一条条指令么,每一条指令序列都有固定执行时间,为什么不好算?真实情况下,我们的计算机并不是只运行一个程序的,进程的切换,各种中断,共享的多用户,网络 流量,高速缓存的访问,转移预测等,都会对计时产生影响。 文献中还提到:对于进程调度来讲,花费的时间分为两部分,第一是计时 器中断处理的时间,也就是当且仅当这个时间间隔的时候,操作系统会选择, 是继续当前进程的执行还是切换到另外一个进程中去。第二是进程切换时间, 当系统要从进程A切换到进程B时,它必须先进入内核模式将进程A的状态保存,然后恢复进程B的状态。因此,这个切换过程是有内核活动来消耗时间的。具体到进程的执行时间,这个时间也包括内核模式和用户模式两部分,模式之 间的切换也是需要消耗时间,不过都算在进程执行时间中了。 那么有哪些方法能统计程序的运行时间呢?通过查找一些资料并结合自己的实践体会,摘录和总结了下面几种方法。 一、Linux的time命令 Linux系统下统计程序运行实践最简单直接的方法就是使用time命令,文 献[1,2]中详细介绍了time命令的用法。此命令的用途在于测量特定指令执行 时所需消耗的时间及系统资源等资讯,在统计的时间结果中包含以下数据: 实际时间(real time):从命令行执行到运行终止的消逝时间; 用户CPU时间(user CPU time):命令执行完成花费的系统CPU时间,即命令在用户态中执行时间的总和;

相关主题
文本预览
相关文档 最新文档