Visual C++调试方法大全

Visual C++调试方法大全
Visual C++调试方法大全

Visual C++调试方法大全

一、调试基础

调试快捷键

F5:开始调试

Shift+F5: 停止调试

F10:调试到下一句,这里是单步跟踪

F11:调试到下一句,跟进函数内部

Shift+F11: 从当前函数中跳出

Ctrl+F10: 调试到光标所在位置

F9:设置(取消)断点

Alt+F9: 高级断点设置

跟踪调试

1、尽量使用快捷键时行调试

2、观察调试信息

3、高级中断设置

异常调试

重试->取消->调试

函数堆栈,用variables或者call stack 窗口

Release调试

1、经常测试你的Debug和Release版本

2、不要移除调试代码,如用ASSERT, TRACE等。

3、初始化变量,特别是全局变量,malloc的内存,new的内存

4、当你移除某个资源时,确保你移除了所有跟这个资源相关的申明(主要是在resouce.h文中)

5、使用3或者4级的警告级编译你的代码,并确保没有警告,

project->setting->c/c++->warninglevel(中文版是项目->属性->C/C++->常规->警告等级) 6、 _debug改成NDEBUG进行调试,project->setting->C/C++->Preprocessordefinitions(中文版是项目->属性->C/C++->预处理器->预处理定义)(这里是debug和Release编译的重要不同之一)

7、在Release中调试源代码,project->setting->C/C++->debug info选择programDataBase (中文版是项目->属性->C/C++->常规->调试信息格式->用于“编辑并继续”的程序数据库),project ->setting->link选上Generate debug info(中文版是项目->属性->链接器->调试->生成调试信息) 8、走读代码,特别关注堆栈和指针

二、TRACE宏

当选择了Debug目标,并且afxTraceEnabled变量被置为TRUE时,TRACE宏也就随之被激活了。但在程序的Release版本中,它们是被完全禁止的。下面是一个典型的TRACE语句:

int nCount =9;

CString strDesc("total");

TRACE("Count =%d,Description =%s\n",nCount,strDesc);

可以看到,TRACE语句的工作方式有点像C语言中的printf语句,TRACE宏参数的个数是可变的,因此使用起来非常容易。如果查看MFC的源代码,你根本找不到TRACE宏,而只能看到TRACE0、TRACE1、TRACE2和TRACE3宏,它们的参数分别为0、1、2、3。

个人总结:最近看网络编程是碰到了TRACE语句,不知道在哪里输出,查了一晚上资料也没找出来,今天终于找到了,方法如下:

1.在MFC中加入TRACE语句

2.在TOOLS->MFCTRACER中选择“ENABLE TRACING”点击OK

3.进行调试运行,GO(F5)(特别注意:不是执行…!?以前之所以不能看到TRACE内容,是因为不是调试执行,而是…!?了,切记,切记)

4.然后就会在OUTPUT中的DEBUG窗口中看到TRACE内容了,调试执行会自动从BUILD窗口跳到DEBUG窗口,在那里就看到TRACE的内容了,^_^

以下是找的TRACE的详细介绍:

==============================

TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消失了,从而帮助你调式也在RELEASE的时候减少代码量。

使用非常简单,格式如下:

TRACE("DDDDDDDDDDD");

TRACE("wewe%d",333);

同样还存在TRACE0,TRACE1,TRACE2。。。分别对应0,1,2。。个参数

TRACE信息输出到VC IDE环境的输出窗口(该窗口是你编译项目出错提示的哪个窗口),但仅限于你在VC中运行你的DEBUG版本的程序。

TRACE信息还可以使用DEBUGVIEW来捕获到。这种情况下,你不能在VC的IDE环境中运行你的程序,而将BUILD好的DEBUG版本的程序单独运行,这个时候可以在DEBUGVIEW的窗口看到DEBUGVIE 格式的输出了。

VC中TRACE的用法有以下四种:

TRACE1 ,就是不带动态参数输出字符串, 类似C的printf("输出字符串");

TRACE2: 中的字符串可以带一个参数输出 ,类似C的printf("...%d",变量);

TRACE3:可以带两个参数输出,类似C的printf("...%d...%f",变量1,变量2);

TRACE4 可以带三个参数输出,类似C的printf("...%d,%d,%d",变量1,变量2,变量3); TRACE 宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能了解程序的一些状态。但有一点不同的是:

TRACE 宏只有在调试状态下才有所输出,而以前用的Printf 函数在任何情况下都有输出。和Printf 函数一样,TRACE函数可以接受多个参数如:

int x = 1;

int y = 16;

float z = 32.0;

TRACE( "This is a TRACE statement\n" );

TRACE( "The value of x is %d\n", x );

TRACE( "x = %d and y = %d\n", x, y );

TRACE( "x = %d and y = %x and z = %f\n", x, y, z );

要注意的是TRACE宏只对Debug 版本的工程产生作用,在Release 版本的工程中,TRACE宏将被忽略。

三、ASSERT宏

如果你设计了一个函数,该函数需要一个指向文档对象的指针做参数,但是你却错误地用一个视图指针调用了这个函数。这个假的地址将导致视数据的破坏。现在,这种类型的问题可以被完全避免,只要在该函数的开始处实现一个ASSERT测试,用来检测该指针是否真正指向一个文档对象。一般来讲,编程者在每个函数的开始处均应例行公事地使用assertion。ASSERT宏将会判断表达式,如果一个表达式为真,执行将继续,否则,程序将显示一条消息并且暂停,你可以选择忽视这条错误并继续、终止这个程序或者是跳到Debug器中。下面一例演示了如何使用一个ASSERT宏去验证一个语句。

void foo(char p, int size )

{

ASSERT( p != 0 ); //确认缓冲区的指针是有效的

ASSERT( ( size >= 100 ); //确认缓冲区至少有100个字节

// Do the foo calculation

}

这些语句不产生任何代码,除非—DEBUG处理器标志被设置。Visual C++只在Debug版本设置这些标志,而在Release版本不定义这些标志。当—DEBUG被定义时,两个assertions将产生如下代码://ASSERT( p!= 0 );

do{

if( !(p !=0) && AfxAssertFailedLine(—FILE—,—LINE—) )

AfxDebugBreak();

}while(0);

//ASSERT((size 〉= 100);

do{

if(!(size 〉= 100) &&AfxAssertFailedLine(—FILE—,—LINE—))

AfxDebugBreak();

}while(0);

Do-while循环将整个assertion封装在一个单独的程序块中,使得编译器编译起来很舒畅。If语句将求取表达式的值并且当结果为零时调用AfxAssertFailedLine()函数。这个函数将弹出一个对话框,其中提供三个选项“取消、重试或忽略”,当你选取“重试”时,它将返回TRUE。重试将导致对AfxDebugBreak()函数的调用,从而激活调试器。

AfxAssertFailedLine()是一个未正式公布的函数,它的功能就是显示一个消息框。该函数的源代码驻留在afxasert.cpp中。函数中的—FILE—和—LINE—语句是处理器标志,它们分别指定了源文件名和当前的行号。

AfxAssertFailedLine()是一个未正式公布的函数,它的功能就是显示一个消息框。该函数的源代码驻留在afxasert.cpp中。函数中的—FILE—和—LINE—语句是处理器标志,它们分别指定了源文件名和当前的行号。

四、VERIFY 宏

因为assertion只能在程序的Debug版本中起作用,在表达式中不可以包含赋值语句、增加语句(++)或者是减少语句(--),因为,这些语句实际改变数据。可有时你可能想要验证一个能动的表达式,使用一个赋值语句。那么就到了用VERIFY宏来替代ASSERT。例如:

voidfoo(char p, int size )

{

char q;

VERIFY(q = p);

ASSERT((size 〉= 100);

//Do the foo calculation

//Do the foo calculation

}

在Debug模式下,ASSERT和VERIFY是一回事,但是在Release模式下,VERIFY宏仍然测试表达式而assertion却不起任何作用。可以说,在Release模式下,ASSERT语句被删除了。

请注意,如果你在一个ASSERT语句中错误地使用了一个能动的表达式,编译器将不做任何警告地忽略它。在Release模式下,该表达式就会被无声息地删除掉,这将会导致程序的错误运行。由于Release版的程序通常不包含Debug信息,这类错误将很难被发现。

五、VC高级调试方法-条件及数据断点的设定

(一)位置断点(LocationBreakpoint)

大家最常用的断点是普通的位置断点,在源程序的某一行按F9就设置了一个位置断点。但对于很多问题,这种朴素的断点作用有限。譬如下面这段代码:

void CForDebugDlg::OnOK()

{

for(int i = 0; i < 1000; i++) //A

{

intk = i * 10 - 2; //B

SendTo(k); //C

inttmp = DoSome(i); //D

Trace0("这里要输出的内容”);//在这里可以输出一些有用的信息,你也可以输出I的值,都是可以的

intj = i / tmp; //E

}

}

//其实我们还可以用其他方法调式也是一样的,你可以用TRACE0宏来输出循环中的每一个结果,我们也可以在debug中看见输出的结果,当出现问题时,输出的结果可能就不一样了,我们可以分析一下debug 中的结果找出问题的所在

执行此函数,程序崩溃于E行,发现此时tmp为0,假设tmp本不应该为0,怎么这个时候为0呢?所以最好能够跟踪此次循环时DoSome函数是如何运行的,但由于是在循环体内,如果在E行设置断点,可能需要按F5(GO)许多次。这样手要不停的按,很痛苦。使用VC6断点修饰条件就可以轻易解决此问题。步骤如下。

1 Ctrl+B打开断点设置框,如下图:

Figure 1设置高级位置断点

2 然后选择D行所在的断点,然后点击condition按钮,在弹出对话框的最下面一个编辑框中输入一个很大数目,具体视应用而定,这里1000就够了。

3 按F5重新运行程序,程序中断。Ctrl+B打开断点框,发现此断点后跟随一串说明:...487 times remaining。意思是还剩下487次没有执行,那就是说执行到513(1000-487)次时候出错的。因此,

我们按步骤2所讲,更改此断点的skip次数,将1000改为513。

4 再次重新运行程序,程序执行了513次循环,然后自动停在断点处。这时,我们就可以仔细查看DoSome是如何返回0的。这样,你就避免了手指的痛苦,节省了时间。

再看位置断点其他修饰条件。如Figure 1所示,在“Enter the expression to be evaluated:”下面,可以输入一些条件,当这些条件满足时,断点才启动。譬如,刚才的程序,我们需要i为100时程序停下来,我们就可以输入在编辑框中输入“i==100”。

另外,如果在此编辑框中如果只输入变量名称,则变量发生改变时,断点才会启动。这对检测一个变量何时被修改很方便,特别对一些大程序。

用好位置断点的修饰条件,可以大大方便解决某些问题。

(二)数据断点(DataBreakpoint)

软件调试过程中,有时会发现一些数据会莫名其妙的被修改掉(如一些数组的越界写导致覆盖了另外的变量),找出何处代码导致这块内存被更改是一件棘手的事情(如果没有调试器的帮助)。恰当运用数据断点可以快速帮你定位何时何处这个数据被修改。譬如下面一段程序:

#include "stdafx.h"

#include

int main(int argc, char* argv[])

{

charszName1[10];

charszName2[4];

strcpy(szName1,"shenzhen");

printf("%s\n",szName1); //A

strcpy(szName2,"vckbase"); //B

printf("%s\n",szName1);

printf("%s\n",szName2);

return0;

}

这段程序的输出是

szName1: shenzhen

szName1:ase

szName2:vckbase

首先我给你分析一下为什么会是这样的结果呢!首先你在strcpy(szName1,"shenzhen");这个地方F9设置一个断点,然后F5运行程序,这是程序会断到我们设置的断点,如下图

看到了吧,问题出现的原因就在这里,系统给szName2分配的地址是0x0012ff70这里是4个字节,然后呢,在0x0012ff70后面4个字节处,开始分配szName1这10个字节,也就是在0x0012ff74处开始分配10个字节,

F10单步跟踪,来到printf("%s\n", szName1)这一行,如下图

szName1分配的空间已经附上了值.

F10走到下一个printf("%s\n", szName1) 看下图,

因为szName1 和szName2分配的空间是连续的,所以给szName2赋值超过所容纳的字节时就开始覆盖szName1的内容了,所以说当我们在输出结果的时候就出现我们想不到的结果了,

那么怎么去调试呢,下面是具体的方法

szName1何时被修改呢?因为没有明显的修改szName1代码。我们可以首先在A行设置普通断点,F5运行程序,程序停在A行。然后我们再设置一个数据断点。如下图:

Figure 2数据断点

F5继续运行,程序停在B行,说明B处代码修改了szName1。B处明明没有修改szName1呀?但调试器指明是这一行,一般不会错,所以还是静下心来看看程序,哦,你发现了:szName2只有4个字节,而strcpy了7个字节,所以覆写了szName1。

数据断点不只是对变量改变有效,还可以设置变量是否等于某个值。譬如,你可以将Figure 2中红圈处改为条件”szName2[0]==''''y''''“,那么当szName2第一个字符为y时断点就会启动。

可以看出,数据断点相对位置断点一个很大的区别是不用明确指明在哪一行代码设置断点。

(三)其他

1 在call stack窗口中设置断点,选择某个函数,按F9设置一个断点。这样可以从深层次的函数调用中迅速返回到需要的函数。

2 Set Next StateMent命令(debug过程中,右键菜单中的命令)

此命令的作用是将程序的指令指针(EIP)指向不同的代码行。譬如,你正在调试上面那段代码,运行在A行,但你不愿意运行B行和C行代码,这时,你就可以在D行,右键,然后“Set Next StateMent”。调试器就不会执行B、C行。只要在同一函数内,此指令就可以随意跳前或跳后执行。灵活使用此功能可以大量节省调试时间。

3 watch窗口

watch窗口支持丰富的数据格式化功能。如输入0x65,u,则在右栏显示101。

实时显示windows API调用的错误:在左栏输入@err,hr。

在watch窗口中调用函数。提醒一下,调用完函数后马上在watch窗口中清除它,否则,单步调试时每一步调试器都会调用此函数。

4 messages断点不怎么实用。基本上可以用前面讲述的断点代替。

六.VC调试环境设置

为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。

为了增加调试信息,可以按照下述步骤进行:

打开Projectsettings对话框(可以通过快捷键ALT+F7打开,也可以通过IDE菜单Project/Settings 打开)

选择C/C++页,Category中选择general ,则出现一个Debug Info下拉列表框,可供选择的调试信息方式包括:

命令行Project settings 说明

无None 没有调试信息

/Zd Line Numbers Only 目标文件或者可执行文件中只包含全局和导出符号以及代码行信息,不包含符号调试信息

/Z7 C7.0- Compatible 目标文件或者可执行文件中包含行号和所有符号调试信息,包括变量名及类型,函数及原型等

/Zi Program Database 创建一个程序库(PDB),包括类型信息和符号调试信息。

/ZI Program Databasefor

Edit and Continue 除了前面/Zi的功能外,这个选项允许对代码进行调试过程中的修改和继续执行。这个选项同时使#pragma设置的优化功能无效

选择Link页,选中复选框"Generate DebugInfo",这个选项将使连接器把调试信息写进可执行文件和DLL

如果C/C++页中设置了Program Database以上的选项,则Link incrementally可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译),而不必每次都从头开始编译。

电子秤标定方法大全69476

电子秤标定方法 佰仕利:268.97 79去皮-市斤 268.97 78去皮-公斤 三、耀华 (1)XK3190-A12 XK3190-A10 开机初始过程中按(#)进入标定状态(去皮)选择(#)确认 1.(d xx)选择分度值 2. (p xx)小数点 3. (full )最大称量 4. (noload )空秤确认 5.(ad load)放砝码(000000)输入砝码值(置零)增加1,去皮右移光标 (#)确认 6.(end) (2.)xk3190-A1+ 将大屏幕接口指针少的一端朝上,右手两端短接,屏幕出现提示, 按输入直到出现 noload 空秤确认,adload 加砝码输砝码值,确认。(3)XK3190-A7 1. 正常称重状态,仪表后端打开标定开关,显示(n xxxx) 清除进入下一步切换选择去皮确认 2.(e xx )设分度值 3. (d 0.0)设小数点 4. 按去皮,直到显示(CAL)空秤确认 5. (000.000)加码,(累计)右循环,(切换)加1 去皮确认。 6. 关开关。 (4)XK3190-C2 将大屏幕接口短接(14 15脚) (输入) 确认 1.称重状态下,按功能显示 PASS 2.输密码 920728 按输入 3. (DC ) 小数点位数 4. (E )分度值 5.(F )最大称量 6. (r )保存原有零位 7. (NO LAOD)零位确认 8. (AD LOAD)加码,(00000)输码值,按输入 (5)耀华YH-T3校正资料 开机归零后同时按一次“清除”和“F”键进入参数设置 “保持“键为确认键,“回零”键是输入键,“扣皮”键是移位键 菜单一为分度值设置 菜单二为小数点设置 菜单三为满量程设置:注,每次校正都必须重新输入满量程,输入后按“保持”键屏幕显示零点校正,按“保持”键,此时屏幕显示空载码,稳定后会自动跳到

如何用VC6.0调试代码(入门)

概述 调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。 本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的 Configuration中增加调试信息,包括Release版本。 为了增加调试信息,可以按照下述步骤进行: 打开Project settings对话框(可以通过快捷键ALT+F7打开,也可以通过IDE菜单Project/Settings打开) 选择C/C++页,Category中选择general ,则出现一个Debug Info下拉列表框,可供选择的调试信息方式包括: None 没有调试信息 Line Numbers Only 目标文件或者可执行文件中只包含全局和导出符号以及代码行信息,不包含符号调试信息 C 7 Compatible 目标文件或者可执行文件中包含行号和所有符号调试信息,包括变量名及类型,函数及原型等 Program Database 创建一个程序库(PDB),包括类型信息和符号调试信息。 Program Database for Edit and Continue 除了前面/Zi的功能外,这个选项允许对代码进行调试过程中的修改和继续执行。这个选项同时使#pragma设置的优化功能无效 选择Link页,选中复选框"Generate Debug Info",这个选项将使连接器把调试信息写进可执行文件和DLL 。 如果C/C++页中设置了Program Database以上的选项,则Link incrementally可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译),而不必每次都从头开始编译。 断点 断点是调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。断点是最常用的技巧。调试时,只有设置了断点并使程序回到调试器,才能对程序进行在线调试。 设置断点:可以通过下述方法设置一个断点。首先把光标移动到需要设置断点的代码行上,然后按F9快捷键弹出Breakpoints对话框,方法是按快捷键CTRL+B或ALT+F9,或者通过菜单Edit/Breakpoints打开。打开后点击Break at编辑框的右侧的箭头,选择合适的位置信息。一般情况下,直接选择line xxx就足够了,如果想设置不是当前位置的断点,可以选择

全品牌电子秤调试方法

全品牌电子秤调试方法大全 志瑜电子秤调试方法 开机回零后,输入⑨⑦⑤再按《去皮》键。二、然后再输入①或⑦⑨①⑥⑧再按《去皮》键。 三、等待几秒后,加1/3的砝码,再按《去皮》键。四、输入所加砝码的重量值。再按《去皮》键。五、输入满量程的重量值,再按《去皮》键。六、输入分度值⑤,再按《去皮》键。 七、电子秤回到称重状态,即完成调试。 大河电子秤调试方法 按“⑨⑦⑤⑤”键,单价窗显示一个“0”。再输入②⑧①②③,按“去皮”键几秒后,显示“0.000 LOAD———”。加1/3砝码。再按“去皮”键,显示“0.000 LOAD 0”。输入砝码重量值,再按“去皮”。输入砝码的满程值。再按“去皮”。几秒后完成调试。 本熙电子秤调试方法 开机归零后输入3658,再按“去皮”键。单价栏显示一个“0”。再输入密码1。再按“去皮”键。再加1/3砝码。再按“去皮”键。输入砝码的重量值。再按“去皮”键。输入砝码的满程值。再按“去皮”。即标定成功。 大河电子台秤的调试 按“⑨⑦⑤⑤”键,按“去皮”键单价窗显示一个“0”。再输入②☉①②③,按“输入”键几秒后,显示“0.000 LOAD———”。加1/3砝码。再按“输入”键,显示“0.000 LOAD 0”输入砝码重量值,再按“输入”。输入砝码的满程值。再按“输入”。几秒后完成调试。 宏马电子秤调试方法(永州电子秤方法相同) ⒈打开机盖,插上短路环。开机进入调试状态。稳定后,加1/2砝码。按“去皮”键。重量窗显示1/2砝码值。按“清除”键回到称重状态。拨回短路环,完成调试 ⒉按《累计》键开机,回零后再按《累计》键一下,输入③①⑤⑧。按《累计》进入调试状态。加1/2砝码后,再按《去皮》键,回到称重状态。调试完成。 3. 打开机盖,插上短路环。按《去皮》键,按《1》,再按《去皮》键,加15.00KG砝码。再按《去皮》键,输入砝码值。再按《去皮》键,输入满程值。再按《去皮》键,输入分度值5,再按《去皮》键。调试完成。 世伟电子秤调试方法 打开机盖,插上短路环。开机进入调试状态。稳定后,加1/2砝码。按“去皮”键。重量窗显示1/2砝码值。按“清除”键回到称重状态。拨回短路环,完成调试 中银电子秤调试方法 打开机盖,插上短路环。开机。按“3579”键,单价窗显示一个“0”。再输入15908,按“去皮”键几秒后,显示“0.000 LOAD-—”。加1/3砝码。再按“去皮”键,显示“0.000 LOAD 0”。输入砝码重量值,再按“去皮”。输入砝码的满程值。再按“去皮”。几秒后完成调试。

软件调试技巧

软件调试技巧 一、软件调试方法 软件调试有很多种方法。常用的有4种,即强行排错法、回溯排错法、归纳排错法和演绎排错法。 1.强行排错法 这种方法需要动脑筋动的地方比较少,因此叫强行排错。通常有以下3种表现形式: ●打印内存变量的值。在执行程序时,通过打印内存变量的数值,将该数值同预期的数值进行比较,判 断程序是否执行出错。对于小程序,这种方法很有效。但程序较大时,由于数据量大,逻辑关系复杂,效果较差。 ●在程序关键分支处设置断点,如弹出提示框。这种方法对于弄清多分支程序的流向很有帮助,可以很 快锁定程序出错发生的大概位置范围。 ●使用编程软件的调试工具。通常编程软件的IDE集成开发环境都有调试功能,使用最多的就是单步调 试功能。它可以一步一步地跟踪程序的执行流程,以便发现错误所在。 2.回溯排错法 这是在小程序中常用的一种有效的调试方法。一旦发现了错误,可以先分析错误现象,确定最先发现该错误的位置。然后,人工沿程序的控制流程,追踪源程序代码,直到找到错误根源或确定错误产生的范围。 3.归纳排错法 归纳法是一种从特殊推断一般的系统化思考方法。归纳法调试的基本思想是,从一些线索(错误的现象)着手,通过分析它们之间的关系来找出错误,为此可能需要列出一系列相关的输入,然后看哪些输入数据的运行结果是正确的,哪些输入数据的运行结果有错误,然后加以分析、归纳,最终得出错误原因。 4.演绎排错法 演绎法是一种从一般原理或前提出发,经过排除和精化的过程来推导出结论的思考方法。调试时,首先根据错误现象,设想及枚举出所有可能出错的原因作为假设。然后再使用相关数据进行测试,从中逐个排除不可能正确的假设。最后,再用测试数据验证余下的假设是否是出错的原因。 二、调试的原则 调试能否成功一方面在于方法,另一方面很大程度上取决于个人的经验。但在调试时,通常应该遵循以下一些原则。 1.确定错误的性质和位置的原则 用头脑去分析思考与错误征兆有关的信息,避开死胡同。调试工具只是一种辅助手段。利用调试工具可以帮助思考,但不能代替思考。通常避免使用试探法,最多只能将它当作最后的手段,毕竟小概率事件有时也会发生。 2.修改错误的原则 在出现错误的地方,很可能还有别的错误。修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身。当新修正一个错误的同时又引入新的错误。 三、有效减少调试时间 1.绘制程序流程图 一些程序员认为,绘制程序流程图是件繁琐的事,而且浪费时间。其实不然,当读者对着偌大的程序一筹莫展时,面对纷纭复杂的关系理不出头绪时,使用程序流程图绝对可以事半功倍。 因此建议在编制程序前先绘制流程图,这样编程的思路有条理,调试时同样会有条不紊。若编制程序之前没有绘制流程图,当排错没有进展时,可以马上编写流程图。你会发现,程序中某些分支或细节被忽略了,这些细节可能就是程序出错的地方。 2.不要过多地依赖单步调试 有些程序对时间很敏感。数据只在那么一瞬间有效,可谓稍纵即逝。所以等到单步执行到那里时,

软件测试的定义及常用软件测试方法介绍

软件测试的定义及常用软件测试方法介绍 一、软件测试的定义 1.定义:使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满 足规定的需求或弄清预期结果与实际结果之间的差别。 2.内容:软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给 出其概念: 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件以正确的方式来做了这个事件(Do it right) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程 2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程 3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否 和规定的需求相一致进行判断和提出报告。 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。(Do the right thing) 1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性 2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。 软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。 二、软件测试常用方法 1. 从是否关心软件内部结构和具体实现的角度划分: a. 黑盒测试 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据和输出数据的对应关系出发进行测试的,很明显,如果本身设计有问题或者说明规格有错误,用黑盒测试是发现不了的。

vc++6.0_调试详细教程(17种方法)

vc++6.0 调试详细教程 Step into Step over Step out Run to cursor Watch Variables Registers Memory Stop Debug Call stack Disassembly Restart Debugger 2、调试的一般过程 调试,就是在程序的运行过程的某一阶段观测程序的状态。在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。我们所做的第一项工作就是设立断点;其次再运行程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。

程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向。 下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。 3、设置断点 在VC中,可以设置多种类型的断点,根据断点起作用的方式把这些断点分为三类: 1、与位置有关的断点; 2、与逻辑条件有关的断点 3、与WINDOWS消息有关的断点。 主要介绍前面两种断点。 4、设置位置断点 最简单的是设置一般位置断点: ?把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的; ?然后按工具条上的add/remove breakpoint 按钮或按快捷键F9。 将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这里设立了一个断点

5、设置位置断点-图示 6、设置逻辑断点 有的时候可能不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下来,这时就需要设置一种与位置有关的逻辑断点。 从EDIT 菜单中选中Breakpoints命令,这时Breakpoints对话框将会出现在屏幕上。选中Breakpoint对话框中的Location标签,使Location页面弹出。 如下页图所示。

电子秤安装调试步骤马

电子秤安调培训 一、100T电子秤现场联机安调流程 1、电子秤运到安装位置后固定支脚。 2、通常安装电子秤的设备都把电机侧作为进口,这样增加了进口的 长度。顶屏显正对着进口方向。 3、打开100T电控箱侧顶罩板,把穿墙式航空插头固定在顶罩板的圆 孔上。 4、联线:电子秤引出线6条,加一条W14线缆共计7条。W18接入 设备穿墙式插头的下端;W17连接D型插座的屏显; W4接电器控制箱的K1M接口;白线9针D型头接W14并用扎带绑扎固定避免松脱;W14(接工控机)接工控机串口卡的P2;电源线接入外电源(上电时);W5脚踏开关放在操作台下面; 5、安装2个屏显:带航空插头的屏显用M4×50的螺钉固定在设备进 口顶端,航空插头和穿墙式插头对插;W17线缆连接的屏显用M4×30的螺钉固定随机配送的钢板后立在桌面上; 6、拆除电子秤两侧不锈钢罩板,松开并取下上下秤体固定垫木的螺 栓用随机附带的千斤顶从4角顶起上秤体,取出垫木,使上秤体平行下秤体落在称重传感器上。上电后,任意取一重物分别放在电子秤上表面的4个角上,称重显示应该一致。 7、安装电子秤外罩板,注意:外罩板不能碰触下秤体,否则会影响 称重数值的准确。

8、登录OIS管理员用户,在高级管理中打开电子秤功能,OIS软件 界面出现电子秤操作窗口。调整进出口方向和按键方向使电子秤、主机传送带方向、出图方向、键盘按键方向一致。 9、称重显示:OIS软件称重显示和2个屏显显示数据应该一致。 附图: 电子秤:

2个屏显: 穿墙式插头:

电子秤线缆: 桌面屏显固定板:

上下秤体间的垫木: 主机:(带航插的屏显安装到电控箱侧的顶板上) 电控箱:

3-2节 程序调试的方法

3-2节程序调试的方法 编程是一件需要认真和细心的工作。通过让学生从李明同学学习程序设计时所遇到的困难和他情感上所表现出来的“窘态”故事开始,道出程序调试不但需要技巧、更需要有耐心和毅力的道理,从而激发学生学习程序调试的兴趣和热情,拉开了本节的充幕。 接着,布置任务,让学生输入课本P83四段有错误的程序,要求学生自己探究,并改正程序。 最后分析程序运行的情况,总结出程序运行出错的四种类型: 一、拼写错误 1)在工程窗口中,看到红色文字显示的程序是有拼写错误的。 2)同时还要检查其它的拼写错误 Pring改为print Integr改为integer 2、编译时出现的错误 S应该改为a 3、运行时出现的错误 运行时的错误是指编译通过后,在执行程序时出现的错误,如用0作除数等。

例如:a=0的时候,将会出现0作除数的情形 4、逻辑错误 程序运行后,得出的结果不是正确的。这说明程序存在逻辑错误。逻辑错误产生 的原因很多,运算符使用不正确、语句次序不对、循环的设置不对等都可以产生 逻辑错误。 如这里的程序的出口应该是tree>=100 任务: P85 马上行动:

你和同学们能解决以上的问题吗?以合作、交流的方式大胆尝试一下,你会有意外的收获! 一、本节小结: 本节主要通过任务驱动、探究的形式,介绍了程序的错误类型,分析了产生错误的原因,程序的调试与排错的方法,让学生“从做中学”,进一步体验了程序调试的方法和技巧,培养了 学生调试程序的耐心和毅力,提高了学生程序设计的素养。 五、课外练习 编写一个程序,将从键盘输入的一个自然数进行因数分解,输出结果并上机验证。

vc debug 方法

了解调试,首先要知道"断点"这个概念.断点就是程序运行中可能会中断的地方,方便开发者在程序运行的过程中查看程序当前的运行状态,比如变量的值,函数的返回值等等.究竟怎么使用断点呢? 1.调试快捷键 F9——在当前光标所在的行下断点,如果当前行已经有断点,则取消断点. F5——调试状态运行程序,程序执行到有断点的地方会停下来. F10——单步执行程序. F11——和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面. CTRL+F10——运行到光标所在行. SHIFT+F11——跳出当前所在函数. 特别说明: a.有的地方不能下断点.比如空行,基本类型定义语句(不初始化),等等非执行语句.比如 int i; // 此行不能下断点字串7 int j = 0; // 这里可以下 CString str; // 这里可以下 int k = Max(i, j); // 这里可以下 b.不是所有断点都会(断).比如下断点的语句在程序里面没有被执行. c.此外,ALT+F9还可以下条件断点,不过这个不常用,有兴趣的可以自己研究:) 2.如何调试Release版的程序? 有些程序在debug下运行的很好,但在release下却总是失败,默认情况下release是不能调试的.怎么解决呢? 其实"debug"和"release"都只是一个代号而已,各自对应一组不同的编译选项. 在release的默认设置下,ALT+F7 ,调出工程设置对话框,切换到link选项卡,勾选"Generate debug info",然后再切换到C/C++选项卡,在"Optimizations"里面选"Disable(Debug)",在下面的"Debug info"里面选"Program Database for Edit and Continue".然后点OK保存设置,重新编译程序,下断点即可.

寺岗电子称设置(方式)

寺岗电子称设置(方式) R—交易模式(处理所有的销售) X—报表打印模式(打印销售报表) S—编程模式(编制预设数据,如商品、店名) Z—清空报表模式(清除储存的销售数据) X—(闪烁)-密码设置模式(设置X、S、和Z模式下的密码) 用户功能设置(141)(初始化操作) 按“方式” 键四次(显示z1.0 reset sales daily) 按住“置零”键不放,再输入141 显示:全 第一步:0X4,按[打印]:(设置条形码格式,标准格式:F1F2CCCCCXXXXXCD) 第二步:3X28,按[打印]:(设置条码前导位,如21) 第三步:24X16, 按[打印]:(设置标签格式,标准格式:F1) 第四步:41X0, 按[打印]:(称重和非称重自动转换) 第五步:42X0,按[打印]:(调出PLU码后可改价) 第六步:49X2,按[打印]:(做联网设置) 第七步:50X1, 按[打印]:(做联网设置) 第八步:64X1, 按[打印]:(禁止设置密码) 第九步:135X18,按[打印]:(设置秤号:即IP地址第四位)[前三位IP设置参考d]按[#]键保存,再按[方式]键退回到称重状态 称重与计量的设置(142)称 第一步:按“方式”键四次(显示z1.0 reset salet daily) 第二步:按住“置零”键不放,再输入3752(显示:TO CIEAR DAIL Y TRANS) 第三步:按住“置零”键不放,再输入142 第四步:输入628 X 1,按打印 第五步:输入629 X4,按打印(表示:第一位价格的四舍五入) 第六步:输入645X1,按打印 第七步:输入646X1,按打印 第八步:输入621x1,按打印(调用商品时去皮)按[#]健保存。再按[方式]键 IP地址的设置 第一步:按“方式”键四次(显示z1.0 reset salet daily)

联贸电子称校准方法

联贸电子称校准方法 (1)UWA-15kg 1.按扣重+开机,出现CAL 2.按扣重,出现d12000—按扣重,出现C15—按扣重,出现数字—按零 点校正,屏幕回零,放砝码(10kg),按扣重,出现5,10,15 依次闪烁,出现10时,按扣重,完成。 (2.)UWA-H 按零点校正+开机,直到屏幕出现F0—-按零点校正,直到屏幕出现FC(12次)—按累计(2次),出现164FF (可能出现数值不一样)—按单位选择,出现内码—必须放最大称量砝码,按累计,出现FC—按设定清除,完成 (3)UD6188 仪表 按累加+开机,出现EP—4,倒计时,出现0000.00—按记忆消除移位,―记忆‖输值—加码,按累加确认,倒计时,完成。 (4)BSWE BWSI仪表 归零+开机,自检后屏幕归0—按※,出现CAL.5P—按→,出现‖CAL.00‖–按※,出现该秤最大称量,–按→,出现‖000.00―—按→移位,按↑输入数字,加砝码按※确认,完成。 (2)TCS-150 电子台秤 按扣重+开机出现CAL—按扣重显示d30000—按扣重,显示C150—按扣重,出现数字,按归零,归零,加码,按扣重,依次显示1/3,2/3,MAX,当显示的值与砝码值一样时,按扣重,完成,屏幕显示称量。 (4)老式UAC校正方法(联贸) 1.开机归零按住‖记忆清除‖不放当字幕显示SETUP为止. 2.按‖清除‖显示‖1‖ 3.按‖.‖显示‖CAL-― 4.按‖清除‖显示‖1‖

5.按‖记忆清除‖显示CAL-1,再按记忆清除 6.再按‖记忆清除‖显示‖0‖ 7.放上全称量砝码 8.待稳定后,连续按两次‖记忆清除‖ 9.秤子倒数归零,拿下砝码,校正结束。 (5)联贸UCA计数称 按住4开机,出现CAL,再按4,总重栏显示增益值,再按零点/校正,总重栏归零,输入要校正砝码重量,放码,稳定后,先按单重设定不放,再按数量设定,然后先放单重设定,再放数量设定。OK。 (6)联贸UNA电子秤,厦门联贸: 按住―扣重‖开机显示―CAL‖按―扣重‖显示―cL3000‖CAP.30kg按―扣重‖显示 ―C30‖按―扣重‖显示内码值按―零点校正‖显示―0‖放上砝码按―扣重‖显示10、20、30在相应的砝码值上按―扣重‖即可。 (7)联贸电子秤校正方法 1、按―U‖键不放开机,会显示―CAL‖; 2、按―T‖键会显示一组数字(初期值)约3000左右,如果偏差太大,可打开秤壳左边的橡皮塞,调整可调旋纽将显示值调到3000左右(顺时针方向为减少,逆时方向针为增加)。 3、按住―→0←‖使其归零。 4、放上校正砝码,按2/3量程或满量程秤量放砝码。 5、待显示COUNT值稳定后按―%/※‖键,此时会依次显示校正砝码重量值,当出现与所放砝码重量相等的值时按―%/※‖键,即完成校正。移去砝码,即可正常使用。 按―U‖开机,再按―U‖,即可进入参数设定,再按F可选择下一参数。其参数含义如下: g ——单位 Ao z ——零点追踪 A off 0 ——自动关机时间 bl 2 ——背光 ln 0 ——线形校正 Pr 0 ——打印 Br 2400 ——波特率 再按―F‖键显示―CAL D‖,按―T‖即可完成设定。 (8)UTE联贸

VC6常用调试方法

VC6常用调试方法.txt什么叫神话?请听男人向你表达爱意;什么叫传说?请听男人对你的承诺;什么叫梦境?请看你自己听到前两者时的反应。 1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To Defition Of …),如果没有建立Browse files,会出现提示对话框,确定,然后就会跳到定义那些东西的地方。 3.格式化一段乱七八糟的源代码 选中那段源代码,按ATL+F8。 4.在编辑状态下发现成员变量或函数不能显示 删除该项目扩展名为.ncb文件,重新打开该项目。 5.如何整理ClassView视图中大量的类 可以在classview 视图中右键新建文件夹(new folder),再把具有相近性质的类拖到对应的文件夹中,使整个视图看上去清晰明了. 6.定位预处理指定 在源文件中定位光标到对称的#if, #endif,使用Ctrl+K. 7.如何添加系统中Lib到当前项目 在Project | Settings | Link | Object/library modules:输入Lib名称,不同的Lib之间用空格格开. 8.如何添加系统中的头文件(.h)到当前项目. #include ,告诉编译到VC系统目录去找;使用#include "FileName.h",告诉编译在当前目录找. 9.如何在Studio使用汇编调试 在WorkBench的Debugger状态下按CTRL+F7. 10.怎样处理ClassZiard找不到的系统消息 如果要在ClassWizard中处理WM_NCHITTEST等系统消息,请在ClassWizard中Class Info 页中将Message filter改为Window就有了. 11.如何干净的删除一个类 先从Workspace中的FileView中删除对应的.h和.cpp文件,再关闭项目,从实际的文件夹中删除对应的.h和.cpp文件与.clw文件。

系统软件测试方法

测试计划 引言 编写目的 本测试计划的具体编写目的,指出预期的读者范围。 背景 说明: a.测试计划所从属的软件系统的名称; b.该开发项目的历史,列出用户和执行此项目测试的计算中心,说明在开始执行本测试计划

测试工具

利用有效的和无效的数据来执行各个用例流,以核实以下内容: ?在使用有效数据时得到预期的结果 ?在使用无效数据时显示相应的错误消息或警告消息。 条件 陈述本项测试工作对资源的要求,包括: a.设备所用到的设备类型、数量和预定使用时间; b.软件列出将被用来支持本项测试过程而本身又并不是被测软件的组成部分的软件,如测试驱动程序、测试监控程序、仿真程序、桩模块等等; c.人员列出在测试工作期间预期可由用户和开发任务组提供的工作人员的人数。技术水平及有关的预备知识,包括一些特殊要求,如倒班操作和数据键入人员。 测试用例模板 单一界面测试的参考表格如下:

访问了 如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。 用户界面测试 用于核实用户与软件之间的交互是否正常。 目标 核实下列内容: ?确保各种浏览以及各种访问方法(鼠标移动、快捷键等)都使用正常 ?确保窗口对象及其特征(菜单、大小、位置、状态和中心)都符合标准等。 条件 陈述本项测试工作对资源的要求,包括: a.设备所用到的设备类型、数量和预定使用时间;

b.软件列出将被用来支持本项测试过程而本身又并不是被测软件的组成部分的软件,如测试驱动程序、测试监控程序、仿真程序、桩模块等等; c.人员列出在测试工作期间预期可由用户和开发任务组提供的工作人员的人数。技术水平及有关的预备知识,包括一些特殊要求,如倒班操作和数据键入人员。 是核实性能需求是否都已满足。 目标 核实下列情况下的性能行为: ?正常的预期工作量 ?预期的最繁重工作量 条件 陈述本项测试工作对资源的要求,包括: a.设备所用到的设备类型、数量和预定使用时间; b.软件列出将被用来支持本项测试过程而本身又并不是被测软件的组成部分的软件,如测试驱动程序、测试监控程序、仿真程序、桩模块等等; c.人员列出在测试工作期间预期可由用户和开发任务组提供的工作人员的人数。技术水平及有关的预备知识,包括一些特殊要求,如倒班操作和数据键入人员。

各款电子秤标定方法

各款电子秤标定方法 超人电子磅标定说明(新款):先短路,去皮----3----去皮----放砝码(59kg)---去皮---输入砝码重量(50.00)---去皮---输入总秤量---去皮. 超人电子磅标定说明(新款):658---去皮----3----去皮----放砝码(59kg)---去皮---输入砝码重量(50.00)---去皮---输入总秤量---去皮. 耀华电子磅标定说明: 先短路,功能----放砝码(59kg)---功能---输入砝码重量(50.00)---输入总秤量---功能---分度值---功能. 友声电子计价磅标定:先短路,开机归零---总计---0---累积---累清---总计 ---7---放砝码----总计---输入砝码重量----累清---总计----9. 超人计价秤/健牌秤标定(1): 16699—去皮—16699—去皮---放砝码---去皮---输入砝码重量---去皮—输入总秤量—去皮.

超人计价秤标定说明(2): 储存—8.918—储存---放砝码---输入砝码重量—储存---输入总秤量—储存. 超人计价秤标定说明(3): 16699—去皮—321---去皮—放砝码—去皮—输入砝码重量—去皮---输入总秤量—去皮. 超人计价秤标定说明(4): 166.99---去皮—放半量程砝码---置零---去皮. 永州计价秤标定说明(1): 储存—3.278---储存---放砝码---储存---输入砝码重量---储存---输入重秤量---储存. 永州计价秤标定说明(2): 8818—去皮---1—去皮---放砝码—去皮---输入砝码重量---去皮---输入重秤量---去皮. 永州计价秤标定说明(3): 储存---0.567---储存---放砝码---输入砝码重量---储存---输入重秤量---储存.

VC调试技巧

VC调试篇 难怪很多前辈说调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 我以前接触的程序大多是有比较成形的思路和方法,调试起来出的问题都比较小,最近这个是我自己慢慢摸索调试,接触了很多新的调试方法,并查了很多前辈的总结,受益匪浅,总结以前的和新的收获如下: VC调试篇 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。 为了增加调试信息,可以按照下述步骤进行: ?打开Project settings对话框(可以通过快捷键ALT+F7打开,也可以通过IDE菜单Project/Settings打开) ?选择C/C++页,Category中选择general ,则出现一个Debug Info下拉列表框,可供选择的调试信息方式包括: ?选择Link页,选中复选框"Generate Debug Info",这个选项将使连接器把调试信息写进可执行文件和DLL ?如果C/C++页中设置了Program Database以上的选项,则Link incrementally可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译),而不必每次都从头开始编译。

调试方法: 1、使用 Assert(原则:尽量简单)assert只在debug下生效,release下不会被编译。 2、防御性的编程 3、使用Trace 4、用GetLastError来检测返回值,通过得到错误代码来分析错误原因 5、把错误信息记录到文件中 位置断点(Location Breakpoint) 大家最常用的断点是普通的位置断点,在源程序的某一行按F9就设置了一个位置断点。但对于很多问题,这种朴素的断点作用有限。譬如下面这段代码: void CForDebugDlg::OnOK() { for (int i = 0; i < 1000; i++) //A { int k = i * 10 - 2; //B SendTo(k); //C int tmp = DoSome(i); //D int j = i / tmp; //E } } 执行此函数,程序崩溃于E行,发现此时tmp为0,假设tmp本不应该为0,怎么这个时候为0呢?所以最好能够跟踪此次循环时DoSome函数是如何运行的,但由于是在循环体内,如果在E行设置断点,可能需要按F5(GO)许多次。这样手要不停的按,很痛苦。使用VC6断点修饰条件就可以轻易解决此问题。步骤如下。 1 Ctrl+B打开断点设置框,如下图:

电子秤相关参数调节方法

电子秤相关参数调节方法 1、调WEIGHT的字体大小 按“方式”三次显示PLU文件,输入11,按“*”,输入1,按*后显示WEIGHT:, 按平台上的“V4”,C调总价显示,G1到G6的大小确认后,按“*”在按“#”保存, 按“方式”退出.。 2、调KG字体的大小 按“方式”三次显示PLU文件,输入11,按“*”,输入2,按*后显示KG:,按平台上的“V4”,C调总价显示,G1到G6的大小确认后,按“*”在按“#”保存,按“方式”退出。 3、调文本的上下左右: 按“方式”三次显示PLU文件,输入12,按“*”,输入1,按多次*后显示PLU代码, 输入“26”(表示要设的文档1),按“*”出现“X”坐标(表示左右)后输入所要设置的参数(毫米),按“*”出现Y坐标后输入参数,按“*”在按“#”保存,按“方式”退出.,emark:26表示文本1 27表示文本2 28表示文本3 依次类推. 如文本:26,X坐标32,按“*”,Y坐标0,按“*”,宽35,按“*”,宽6按“*”,打印状态7, 按“*”在按“#”保存,按“方式”退出.。 按“方式”三次显示PLU文件,输入12,按“*”,输入1,按多次*后显示PLU代码,1、输入4,在按“*”键进入显示重量(11.233)“X”坐标(表示左右)调整,按“*”键“#”键保存,按“方式”退出。 2、输入12,在按“*”键进入条形码出现“X”坐标(表示左右)调整,按“*”键“#”键保存,按“方式”退出。 3、输入26,在按“*”键进入文本1(WEIGHT:)出现“X”坐标(表示左右)调整,按“*”键“#”键保存,按“方式”退出。 4、输入27,在按“*”键进入文本2(KG)出现“X”坐标(表示左右)调整,按“*”键“#”键保存,按“方式”退出。注:“X”坐标(表示调整左右),“Y”坐标(表示调整上下) 4、IP地址的设置 按“方式”三次,按住“置零”不放同时输入“3752”,松开“置零”,再按住“置零”同时输入“0416”后会出现IP地址.显示出来的IP地址要和主机的IP地址一致,方可双击打开TOP2000,工具,水平设置查看网络IP地址是否和电子秤地址一致,单击“确定”。 5、设0000100XXXX 按“方式”三次,输入“1”,输入“*”,输入“10.00”,依次输入* * 10 #,退出.。 6、设开头25 按“方式”四次,按住“置零”不放同时输入“141”出现(项目条码),输入“3X”,显示F1和F2(13位机PLU条码),输入所需要的参数设置如(025,000等),按“*”,按“#”,按“方式”退出.。

PLC程序现场调试的方法

P L C程序现场调试的方法 Prepared on 24 November 2020

PLC程序现场调试的方法——【非常重要】 02-04 16:42更新林慧玲分类:围观:625人次微信二维码 1、要查接线、核对地址 要逐点进行,要确保正确无误。可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计的目的。 2、检查模拟量输入输出 看输入输出模块是否正确,工作是否正常。必要时,还可用标准仪器检查输入输出的精度。 3、检查与测试指示灯 控制面板上如有指示灯,应先对应指示灯的显示进行检查。一方面,查看灯坏了没有,另一方面检查逻辑关系是否正确。指示灯是反映系统工作的一面镜子,先调好它,将对进一步调试提供方便。 4、检查手动动作及手动控制逻辑关系 完成了以上调试,继而可进行手动动作及手动控制逻辑关系调试。要查看各个手动控制的输出点,是否有相应的输出以及与输出对应的动作,然后再看,各个手动控制是否能够实现。如有问题,立即解决。 5、半自动工作 如系统可自动工作,那先调半自动工作能否实现。调试时可一步步推进。直至完成整个控制周期。哪个步骤或环节出现问题,就着手解决哪个步骤或环节的问题。 6、自动工作 在完成半自动调试后,可进一步调试自动工作。要多观察几个工作循环,以确保系统能正确无误地连续工作。 7、模拟量调试、参数确定 以上调试的都是逻辑控制的项目。这是系统调试时,首先要调通的。这些调试基本完成后,可着手调试模拟量、脉冲量控制。最主要的是选定合适控制参数。一般讲,这个过程是比较长的。要耐心调,参数也要作多种选择,再从中

选出最优者。有的PLC,它的PID参数可通过自整定获得。但这个自整定过程,也是需要相当的时间才能完成的。 8、完成上述所有的步骤 整个调试基本算是完成了。但最好再进行一些异常条件检查。看看出现异常情况或一些难以避免的非法操作,是否会停机保护或是报警提示。进行异常检查时,一定要充分考虑到设备与人身的安全! 整个调试基本算是完成了。但最好再进行一些异常条件检查。看看出现异常情况或一些难以避免的非法操作,是否会停机保护或是报警提示。进行异常检查时,一定要充分考虑到设备与人身的安全!

软件开发过程中常用的软件测试方法

软件开发过程中常用的软件测试方法 2010-3-29 10:09:22 作者:佚名 一、目前项目中所使用的测试方法我目前所在的项目中(目前项目是一套C/S架构的系统),所使用的软件测试方法为:单元测试,集成测试,功能测试,回归测试,验收测试。 下面就上面的三种软件测试方法,分别做一下说明: (1)单元测试 这个步骤主要是开发者针对开发过程中,程序内部的函数、类、变量等等数据进行正确性的测试。 开发人员根据需求,在经过详细设计之后,开始着手编写代码。一般情况下,每完成一个函数(类、变量……)之后,就要进行单元测试,以验证编写的函数能完成详细设计说明中的功能。 举个例子:一个函数需要把一些重要的数据插入到数据库中。那在编写完这个函数之后,就要进行测试,以验证①函数能正确带出需要插入数据库的数据变量②带出的数据可以正确的插入需要插入的数据库。 在上述测试通过之后,再接着按照详细设计说明进行接下来的开发工作。 (2)集成测试 集成测试是在单元测试的基础上,将所有模块按照详细设计的要求组装成子系统或系统,进行集成测试。集成测试侧重于模块间的接口正确性以及集成后的整体功能的正确性。 举个例子:等一个个函数或者功能模块的单元测试完成之后,就需要测试这些函数或者模块之间的整体的数据流是否正确。 (3)功能测试 等开发人员开发完之后就要把最后开发、测试(单元测试,整合测试)完的requirement release给内部QA人员去做功能测试。因为开发人员的单元测试、集成测试只能保证release给QA的新的requirement的开发是可以正常运行的,执行起来的效率是最高的,一些基本的功能(如:数据库操作,通信,显示,error handing,信息反馈……)可以正常使用。但是对于特定需求的业务逻辑还不能完全保证其正确性,所以需要更加详尽的功能测试过程。

各款电子秤校正方法

各款电子秤校正方法内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

各款电子秤校正方法 科迪计价秤:换校正短接头—开机—置零—置零—置零—放砝码—输入砝码值—置零—关机换回校正短接头OK 奋进:开机归零---按(16880/15998)去皮---按1(15KG/39KG按2)----放砝码-----输入砝码值----按累计OK 广州白云山的ACS记数称标定方法: 单价单价进入 上海英菲计价TCS-C的校正方法: 老式秤短接输,新式258去皮。1去皮。 志愈和泰德ACS-30的校准方法:975去皮,1去皮其余按照正常标定。 凯丰TCS_60KG的标定: 输入52411(或57660 有小数点的按或)--去皮---反复按1到06-03----再按3---放砝码---输入砝码值---置零---关机OK (近期生产的要先短路,液晶的,短接头在液晶片那面)

用脚踩在秤盘上,开机,出现“-----”时输入2400,去皮---反复按1到06-03----再按3---放砝码---输入砝码值---置零---关机OK 输入2400后重量窗口显示 0,单价窗口显示 CAL,单价窗口显示 CALT0 ,金额窗口显示 0 ,继续按 1 还是不变 输入2400后重量窗口显示 0,单价窗口显示 CAL,单价窗口显示 CALT0 ,金额窗口显示 0 ,放砝码,输入砝码值,按置零 OK 凯丰:开机—输入52411(或57660)—去皮—输入1选量程—放满量程砝码—置零—关机 O0 大红鹰电子计价称的标定: 打开上盖,接通标定开关,重量窗为0,按去皮键使单价窗为0,输入1,按去皮键此时金额窗为------,按去皮键加载 北京宇权GAC计数秤校正方法:按单位设定不放,再同时按开关/归零键开机,显示CAL时放开按键,再按单重设定,显示YES 后再显示LOAD、*****OR *****两种重量,放上标准法码值,待稳定后显示DONE,校正完成 北京宇权1706L校正资料:1、按住单重设定键不放,同时按开/归零键,等显示“CAL.”时放手。? 2、再按单重设定键,显示出现“YES”后,再显示“LOAD”“XXXXg”or “XXXXg”两种重量循环显示。此两种重量

相关文档
最新文档