@21小跑堂 @21小管家 #申请原创#
从事产品硬件开发的小伙伴们,一定会经常遇到产品选型中性能测试的问题,从事硬件测试的小伙伴们,也一定会经常接到硬件产品的性能测试任务,那么问题来了,一个看似很简单的事,却不得不占用一个人几天的时间,枯燥乏味不说,对个人能力的提升也没什么作用。 今天与各位小伙伴们分享的是我之前测试配电终端产品遥控性能试验的一段经历。入职一段时间的某天,测试部副经理来找我,说近期据客户和现场技术人员反映,咱们的FTU(馈线终端装置,一种配电终端产品)的遥控出口时不时地不工作,怀疑是通讯问题或者继电器的问题,FTU连接公司的终端维护软件测试一下,抽十台FTU,每台做一千次继电器断开/闭合的操作,预计一周时间,看看结果。我一听,这不是累傻小子吗,每执行一次遥控,需要在终端维护软件上点击一次“选择”按钮,弹出对话框点击“确定”,再点击“执行”按钮,弹出对话框还得点击“确定”。测完这十台FTU,鼠标废不废我不知道,我的手肯定废了! 幸好,玩过一段时间LabVIEW,用它来做个遥控性能的上位机软件再适合不过了。先找到《配电自动化系统应用DL/T634.5104-2009实施细则》,看看配电产品的遥控命令报文结构,见图1。 图1 配电产品的遥控命令报文结构 看了三遍,这玩意写了个啥,不懂。还是用维护软件实操一把,研究关键报文吧: ① 发送:6804 0700 0000(启动激活) ② 接收:68 04 0B 00 00 00(启动确认) ③ 接收:68 0E 00 00 00 00 46 01 04 00 01 00 00 00 00 00(初始化结束) ④ 发送:680E 0000 0200 2D01 0600 0100 0160 0081(遥控选择) ⑤ 接收:680E 0000 0200 2D01 0700 0100 0160 0081(确认选择) ⑥ 发送:680E 0200 0400 2D01 0600 0100 0160 0001(遥控执行) ⑦ 接收:680E 0200 0400 2D01 0700 0100 0160 0001(确认执行) 那就简单了,在LabVIEW程序中,连续发送报文①、报文④、报文⑥,判断接收报文是否为报文⑦或者包含报文⑦中的关键字节就可以了。 简单介绍一下IEC104协议,它适用于厂站与调度主站间的以太网通讯(全双工高速),位于OSI体系中的应用层,其基本定义为端口号2404,终端产品为服务器,上位机为客户端,平衡式传输,协议类型是滑动窗口协议。 下面是我的报文发送程序,打开TCP连接后,依次报文①、报文④、报文⑥见图2。 图2 TCP发送 TCP接收程序,需注意先读取报文长度,按照该长度拼接完整报文,防止粘包现象的发生。由于连接FTU后,会有大量的突发报文自动上送,未避免突发报文的影响,直接过滤出长度为16字节的报文,同时截取第8字节、第15字节的数据,若分别为0x07和0x01,即代表客户单(上位机)通过依次执行报文①、报文④、报文⑥后,接收到了服务器(终端产品)发送的报文⑦,遥控正确执行一次。 图3 TCP接收 还得加个自动停止的功能,要不跑起来没完没了了,在图3中,没成功执行一次,成功次数加1,那么用这个数和设定的“遥控次数”做个比较就可以了,相等的话,弹出对话框“测试完成”,并清零“成功次数”,见图4。 图4 自动停止 本来功能做的差不多了,可转念一想,正常使用FTU时,继电器可能几秒才动作一次,太慢了,给它调调速吧,省的副经理找事。见图5,这里的周期最小是1秒,当然想更快的话小伙伴们可以自己小改,不过你的继电器可能会扛不住,上一次闭合完还没断开,又一个闭合指令到了,结果就是噼里啪啦乱响一通。 图5 周期控制 最后是遥控性能试验的前面板,见图6,没什么花里胡哨的东西。电脑IP设置为192.168.1.1,网线连接电脑和FTU,开始调试,功能正常。 图6 遥控性能试验前面板 接下来的事情就简单了,十台FTU摆好了,上电,连网线,设置好周期1秒,遥控次数1000,点击遥控性能试验的“开始按钮”,盯着看了一会,一切正常,歇着或者看会书吧,悠闲。最后,这个任务,我花了3个小时完成了这个遥控性能试验,然后花了4个小时完成了十台FTU的测试任务。下班之前找副经理汇报测试结果时,他的一脸的惊讶,表示不可思议。而后,我给他讲解了一遍过程,展示了测试方法,同时,这也意味着加班将近1小时了,对于反感加班的人来说,这怎么能忍,麻溜地回家了,有事明天再聊。
|