1、北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 1亚控公司驱动程序开发任务书开发任务: 开发光耀 XK3190-D2 的驱动项目负责人: 王选江程序员: 汤帮俊测试工程师:汤帮俊文档工程师: 任务开始时间:2002/07/08任务结束时间:2002/07/10开发任务量:50本资料属内部资料,未经允许,不得以任意形式外泄!北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 2驱动程序开发申请表申请人: 黄桂丽 申请时间 2002.7.8用户单位 胜利油田联系人 王崇德 联系方式 13864792711 要求完成时间 2002.7.12硬件
2、型号 称重设备 用户自备硬件用户等级 AA驱动程序功能简述:销售部经理意见:签字:产品部经理意见:签字:驱动程序组负责人意见:签字:开发人员意见: 签字: 汤帮俊 预期完成时间:7 月 11 号北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 3开始时间:2002 年 07 月 08 日 结束时间:2002 年 07 月 10 日任务描述:(项目经理填写)开发上海光耀 XK3190-D2 的驱动,实现各个指令的正确读取。参考资料:(文字资料、光盘、宣传品、联系人、实物)让客户和上海光耀联系硬件,也可以直接和上海光耀联系硬件。上海光耀:02158862570 5886
3、3788 50842876 58803188 50840806-807计划完成时间:编程:1测试:1文档:备注:项目经理:王选江设计报告:设备介绍:(本设备用于何种场所,具有哪些功能:DI/DO、AI/AO 及通讯方面)该设备检测重量参数和车号及货号。驱动名字:xk3190D2协议:(本协议有何特点)用户自定义协议,采取命令应答方式通讯。用户需求详细描述:实现协议规定的所有命令我们的实现方法:(概述)依据协议,构造通讯数据格式,和该设备进行通讯,实现读写功能功能列表:(寄存器的名称、范围、用途,即使寄存器数量有上千个,也要详细列出)寄存器名字 下限 上限 数据类型 寄存器的含义 值域“GROS
4、S“, 0, 0, FLOAT_DATATYPE, 毛重,只读“TARE“, 0, 0, FLOAT_DATATYPE, 皮重,只读“NET“, 0, 0, FLOAT_DATATYPE, 净重,只读“CNUM“, 0, 0, UINT_DATATYPE, 车号,只读“HNUM“, 0, 0, UINT_DATATYPE, 货号,只读“DEL“, 0, 0, BIT_DATATYPE, 清除全部记录,只写“ZERO“, 0, 0, BIT_DATATYPE, 置零,只写“FLAY“, 0, 0, BIT_DATATYPE, 去皮,只写北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化
5、软件科技有限公司 4具体实现方法:(详细写出在每个函数中要做些什么工作,ProcessPacket2( LPVOID lpPacket )函数和 ProcessPacket( LPVOID lpPacket )必须画出流程图,其他函数如果必要,也应画出流程图)ProcessPacket2( LPVOID lpPacket ):(画出流程图)失败成功失败成功失败成功SetTrans( LPVOID *lpHcomm ):得到通讯端口句柄,并返回 TRUESetInitialString(char* pDeviceName, LPVOID lpDevAddr,LPVOID InitialStrin
6、g):Return TRUE GetTrans( LPVOID *lpHcomm ) :Return TRUEGetRegisters( char *szDeviceName, LPVOID *ppReg, int *pRegNum ):判断设备的类型,如果是“XK3190D2”:取得定义的寄存器信息。返回该协议支持的寄存器种类,该函数成功时,ppReg 指向一个结构数组,其中每一个结构包含了一类寄存器的信息,pRegNum 所指向的整数代表了寄存器种类数。否则:返回设备错误。TryConnect( char* pDeviceName, int nUnitAddr, LPVOID lpDevA
7、ddr ):发送握手命令与 lpDevAddr 中指定的设备尝试通讯进行通讯, 用于恢复尝试,如果成功,return TRUE, 否则 return FALSE。ConvertUserConfigToVar( LPVOID lpDbItem, LPVOID lpVar ):调用 MyConvert( LPVOID lpDbItem, LPVOID lpVar, LPVOID lRegInfos ,int reg_type_num)函数,得到用户的寄存器设置开始得到命令串传输命令串预处理CaseHNUM结束处理错误TARE数据处理NET CNUM DELGROSS ZERO FLAY北京亚控自动
8、化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 5LoadDeviceInfo( const char *sProducer, const char *sDeviceName, int nSubType ) :Return TRUE OpenComDevice( int nDeviceType, LPVOID lpInitData ):调用 InitialComm 函数,初始化通讯串口。CloseComDevice() :关闭通讯串口,然后释放端口句柄。InitialDevice(char* pDeviceName, int nUnitAddr, LPVOID lpDevAd
9、dr ) :发送握手命令给 nUnitAddr 设备,以建立设备的通讯连接。AddVarToPacket( LPVOID lpVar, int nVarAccessType, LPVOID lpPacket) :根据包类型,判断是否可以把变量与包里的其他变量一起进行采集,以进行变量的打包,否则返回FALSE。读类型不打包。StrToDevAddr( const char * str, LPVOID lpDevAddr ):得到设备的地址和通讯方式。判断地址范围:AZ,判断连续或命令方式通讯。GetLastError():显示当前错误信息PreProcessData(PPACKET pPac,
10、unsigned char* pData, int nRecv, int& nData):预处理接收到的数据。判断数据格式;判断数据校验;如果正确,返回数据段; 否则返回错误码。InitialComm(LPVOID pcc):初始化通讯端口。MyConvert( LPVOID lpDbItem, LPVOID lpVar, LPVOID lRegInfos ,int reg_type_num):把用户在组态王中的变量设置对应为寄存器设置GetSendString(PPACKET pPac, unsigned char* buf, int& nSend):根据寄存器来获取参数读取和写入命令。Tr
11、ansmission(PPACKET pPac, unsigned char* buf, int& nSend, int& nRecv):通过通讯端口进行数据的传输。保证在超时时间内成功,否则返回 FALSE。在连续方式不进行写入命令操作。开发总结:(程序员填写)开始时间: 2002 年 8 月 24 日 结束时间: 2002 年 8 月 27 日 实现的功能描述:(注明未实现功能:)正确实现了读写设备的各参数。测试要点:1 注意设备的地址和通讯方式的设置北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 6开发中遇到的问题:开始设备没有传感器连接,后来通过客户的帮助
12、,有了模拟器才可以进行测试工作。程序员:汤帮俊测试报告 开始时间:2002 年 8 月 26 日 结束时间: 2002 年 8 月 26 日 第一次:地址输入错误,提示是否正确:是寄存器错误,提示是否正确:是寄存器序号错误,提示是否正确:是变量数据类型错误,提示是否正确:是信息窗口出现反常信息时,是否显示反常原因:是其它方面的报告:无软件是否存在错误: 否第二次:地址输入错误,提示是否正确:寄存器错误,提示是否正确:寄存器序号错误,提示是否正确:变量数据类型错误,提示是否正确:信息窗口出现反常信息时,是否显示反常原因:其它方面的报告:软件是否存在错误: 是 否 测试工程师 :汤帮俊文档工程师填
13、写 开始时间: 年 月 日 结束时间: 年 月 日文档和脚本的内容(附):培训讲义(附):测试工程(附):路径: 主要内容:北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 7文档工程师:北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 8检查人员填写: 时间:请检查硬件连接、与组态王通讯是否有问题请详细检查帮助文档中下列内容是否完整:概述(厂家、型号、基本性能)硬件配置与连接(接线图、设置)软件设置(波特率、地址、数据位)寄存器(寄存器范围、值的范围、数据类型、读写属性)文件版本(驱动程序*.dll 文件名、日期):备注检查人员签字日期
14、任务总结:(项目经理填写)1任务的完成情况,重点列出反复次数,耗时情况2如果工作进展不顺利,原因何在。3改进工作的建议(包括是否加强培训,增加设备等)项目经理:填写日期:驱动程序测试基本流程步骤一:基本功能实现测试测试目的:测试驱动程序是否能正确的读取、设置下位机变量。基本过程:设计测试画面,定义 I/O 变量,进行变量组态,运行检测。测试条件:此时与单台下位机连接,要合理的设计测试用例,各类寄存器应选取一些典型有代表性的地址进行测试,以期达到快速、高效的目的。北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 9测试记录驱动程序名: 测试人: 时间: 年 月 日工程
15、路径 画面名称:测试用例概述下位机: 台 串口: 个(COM )变量数: 个 下位机状态字: 个波特率: 最高采集频率: 毫秒可设置数据区: 已测试数据区:可设置数据类型: 已测试数据类型:测试用例设计思想:审阅人意见:测试结论审阅人意见是否发现错误: 是 否 步骤二:实际使用模拟测试(较理想情况)测试目的:测试在下位机网络结构时程序是否能正确的读取、设置各下位机变量。基本过程:设计测试画面,进行变量组态,运行检测。测试条件:此时可与一台下位机连接成 485 网络,不断更换下位机地址,模拟多个下位机的状态。测试结果驱动程序名: 测试人: 时间: 年 月 日工程路径 画面名称:测试用例概述下位机
16、: 台 串口: 个(COM )变量数: 个 下位机状态字: 个波特率: 最高采集频率: 毫秒可设置数据区: 已测试数据区:可设置数据类型: 已测试数据类型:测试用例设计思想:北京亚控自动化软件科技有限公司开发任务书 机密北京亚控自动化软件科技有限公司 10审阅人意见:测试结论审阅人意见是否发现错误: 是 否 步骤三:健壮性测试(实际情况)测试目的:测试程序在下位机出现故障时的自动检测和恢复能力。基本过程:设计测试画面,进行变量组态,运行检测。测试条件:多台下位机连接成 485 网络,各物理设备应有正常、故障等各种复杂情况。测试结果:驱动程序名: 测试人: 时间: 年 月 日工程路径 画面名称:测试用例概述下位机: 台 串口: 个(COM )变量数: 个 下位机状态字: 个波特率: 最高采集频率: 毫秒可设置数据区: 已测试数据区:可设置数据类型: 已测试数据类型:测试用例设计思想:审阅人意见:测试结论审阅人意见是否发现错误: 是 否
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。