常用通讯测试工具鉴于很多MCGS用户和技术人员对通讯测试工具并不很熟悉,本文档将针对实际的测试情况,对串口、以太网通讯调试过程中所涉及到的常用的测试软件进行相关的讲解。
1. 串口测试工具:串口调试工具:用来模拟上下位机收发数据的串口工具,占用串口资源。
如:串口调试助手,串口精灵,Comm等。
串口监听工具:用来监听上下位机串口相关操作,并截获收发数据的串口工具。
不占用串口资源。
如:PortMon,ComSky等。
串口模拟工具:用来模拟物理串口的操作,其模拟生成的串口为成对出现,并可被大多数串口调试和监听软件正常识别,是串口测试的绝好工具。
如:Visual Serial Port等。
下面将分别介绍串口调试助手、Comm、PortMon和Visual Serial Port的使用。
1.1. 串口调试助手:为最常用的串口收发测试工具,其各区域说明及操作过程如下:串口状态打开/关闭串口十六进制/ASCII 切换串口数据 接收区串口参数 设置区串口数据 发送区串口收发计数区发送数据功能区保存数据功能区 操作流程如下:• 设置串口参数(之前先关闭串口)。
• 设置接收字符类型(十六进制/ASCII 码) • 设置保存数据的目录路径。
• 打开串口。
• 输入发送数据(类型应与接收相同)。
• 手动或自动发送数据。
• 点击“保存显示数据”保存接收数据区数据到文件RecXX.txt。
•关闭串口。
注:如果没有相应串口或串口被占用时,软件会弹出“没有发现此串口”的提示。
1.2. PortMon 串口监听工具:用来监听上下位机串口相关操作,并截获收发数据的串口工具。
不占用串口资源,但在进行监听前,要保证相应串口不被占用,否则无法正常监听数据。
连接状态 菜单栏工具栏截获数据显示区PortMon 设置及使用:1). 确保要监听的串口未被占用。
如果串口被占用,请关闭相应串口的应用程序。
比如:要监视MCGS 软件与串口1设备通讯,应该先关闭MCGS 软件。
说明:PortMon 虽不占用串口资源,但在使用前必须确保要监听的串口未被占用,否则无法进行监视。
2). 运行PortMon,并进行相应设置。
• 连接设置:在菜单栏选择“计算机(M)”->“连接本地(L)”。
如果连接成功,则连接状态显示为“PortMon 于\\计算机名(本地)”。
如下图:•捕获设置:¾在菜单栏选择“捕获(C)”,并选中“捕获事件(C) Ctrl+E”(前面打钩表示选中)。
也可在工具栏中点击“”按钮,切换状态。
“”为选中,“”为未选中。
¾在菜单栏选择“捕获(C)”->“端口(P)”,并选中要监听的串口。
如:要监听串口1则选中“COM1 Serial0”。
•数据显示设置:¾数据显示方式:菜单栏选择“选项(O)”选中“显示16进制”,可使截获数据以16进制显示,否则为ASCII码显示。
¾“过滤/高亮”:菜单栏选择“选项(O)”-> “过滤/高亮(L)…” 。
弹出设置窗口 。
可进行过滤及高亮的设置,以便于数据的观查。
注: 过滤可按上图设置,如果不过滤,而要截获串口操作的所有过程,则包含中只填入“*”号,但不能为空。
•其它设置:¾“最大输出字节”:菜单栏选择“编辑(E)”->“最大输出字节”,弹出设置窗口 。
如数据显示不全时,可调整此项。
¾字体设置:菜单栏选择“编辑(E)”->“字体(N)”,弹出设置窗口 。
如数据显示过小时,可调整此项。
3). 数据监听:当上述设置完成后可对串口进行数据监听。
此时,可正常启动MCGS,组态工程,加入需要调试的驱动之后,并设置好相应参数后,可以切换到设备调试窗口或直接进入运行环境,嵌入版则可以进入模块环境测试驱动。
此时在PortMon数据窗口可以看到截获的收发数据包。
•数据监听步骤:¾启动MCGS。
¾组态工程,加入驱动¾设置串口参数¾设备调试窗口或运行环境调试(嵌入版可进入模拟环境测试)4). 数据观察:截获的数据实时显示在监听数据区中,可初步观察和判断。
数据长度及实际数据 (ASCII 码)结果提示操作时间 5). 数据分析:¾ 主从设备:一发一收收发对应,收(IRP_MJ_READ)、发(IRP_MJ_WRITE)数据帧在监听区可以明显的看到,为方便观察,可设置“过滤/高亮”选项,如果只有发没有数据收到,说明设备未正确响应,需要分析原因。
¾ 主动上送设备:只收不发,上位机只收取数据并进行处理,此时只有收(IRP_MJ_READ)数据,如果驱动有问题,最大可能就是数据解析不正确;如果未收到数据,需要分析设备原因。
6). 数据保存:¾ 保存(S):菜单栏选择“文件(F)”->“保存(S)”,数据保存到默认为本地计算机名的LOG 文件。
¾ 另存为(A):菜单栏选择“文件(F)”->“另存为(A)”,数据保存到用户命名的LOG 文件。
1.4. Virtual Serial Ports Driver XP串口模拟工具:用来模拟物理串口的操作,其模拟生成的串口为成对出现,并可被大多数串口调试和监听软件正常识别,是串口测试的绝好工具。
物理串口虚拟串口对操作流程:•增加虚拟串口对:在“Add/Remove ports”页中,分别在First、Second右侧的下拉列表中选中所增加的虚拟串口对的串口号名称(一般选择除物理串口外的其他串口号),然后点击右侧的“Add pair”按钮增加虚拟串口对,此时在左侧的虚拟串口中就会出现所增加的串口对,如上图所示。
之后关闭Virtual Serial Ports Driver XP程序就可以。
如果想删除虚拟串口对,则可以在左侧选中已增加的虚拟串口对,此时“Delete pair”按钮变为可用状态,点击则可删除。
或点击“Reset bus”删除所有虚拟串口对。
•使用虚拟串口对:用户串口工具分别打开已经增加虚拟串口的两个串口,就可以互相收发数据。
如下图所示:•在使用MCGS调试驱动时,可将串口父设备参数中串口设置为虚拟串口对中其一个串口(如COM2),而用Comm.exe或SmartCom.exe操作另一串口(如COM4),以虚拟串口数据操作,实现主从或主动上送驱动的模拟测试。
1.5. Comm串口调试工具:与串口调试助手相似的串口收发测试工具,其特点是可以设置为:接收到指定数据帧后,模拟设备回发数据帧,便于做设备的模拟测试:Comm设置及使用:此软件使用与串口调试助手基本相近,现将几点不同及注意事项说明如下:1). 操作过程:同串口调试助手一样,也要是先打开串口,再进行数据收发,但有一点要注意,其默认不显示接收数据,只有接收善栏中“接收”按钮按下后,才会显示接收的数据,再点击“停止”可停止接收数据。
2). 模拟设备:Comm可以接收到指定数据帧后,模拟设备回发数据帧,其使用方法为:在右侧测试栏中,在“在收到下列字符串后”输入框中填入接收的指定数据帧;在其下面的“发送”输入框中填入模拟回发的数据帧;然后点击启动,此时即可实现模拟设备的功能。
总共可以实现两组指定数据帧的模拟回发数据帧功能。
2. 以太网测试工具:以太网调试工具:用来模拟上下位机收发数据的以太网工具,占用以太网端口资源。
此类工具很多,在此不一一概述。
以太网监听工具:用来监听上下位机以太网相关操作,并截获收发数据的以太网工具。
不占用以太网端口资源。
典型的软件有:Sniffer.Pro, Ultra Net Sniffer等。
Ultra Net Sniffer主界面3. Modbus测试工具:Modbus Slave调试工具:用来模拟Modbus设备的工具,主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。
常用模拟实际设备进行调试。
典型工具如:Modbus Slave。
Modbus Master调试工具:做为Modbus主站,发送命令包,采集从站的数据,典型工具如:Modbus Poll。
3.1. Modbus Slave:Modbus Slave是Modbus子设备模拟工具,帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。
可以32个窗口中模拟多达32个Modbus子设备!与Modbus Poll的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22 和23,监视串口数据。
支持以下Modbus协议:RTUASCIIModbus TCP支持的MODBUS功能码:01: 读取线圈状态02: 读取输入状态03: 读取保持寄存器04: 读取输入寄存器05: 强置单线圈06: 预置单寄存器15: 强置多线圈16: 预置多寄存器22: 位操作寄存器23: 读/写寄存器。
3.1.1.Modbus Slave 使用1)、安装注册:此软件不需安装,解压缩附件中Modbus Slave.rar,双击执行mbslave.exe即可,如果是第一次运行,会弹出如下注册提示:(图1) 注册对话框此时,可以双击执行keygen.exe,如下图:(图2) 注册码获取程序中Name、Email、Reg Key顺序对应上面三个注册项,其中前两项可由用户填写,或直接按其默认即可,第三项Reg Key根据前两项自动生成。
将此三项填入表1所示对话框中按“OK”按钮即可完成注册。
然后直接进入主窗口,如图3所示。
2)、主窗口:软件主窗口如图3所示:(图3)主窗口此时处于“No connection”未连接状态,如果只测试“04输出保持寄存器”,则可直接点击跳到第3.步,直接进行连接即可。
3)、参数设置:点击菜单“Setup”中“Slave Definition.. F2”进行参数设置,会弹出如图5对话框。
(图4)设置菜单(图5)参数设置其中:A. Slave为Modbus从站地址,对应主画面中的ID值,默认为1。
B. Function 为寄存器功能码的选择,共四种,分别对应关系如下:序号 Function MCGS 地址举例1 01 COIL STATUS 0输出继电器 000012 02 INPUT STATUS 1输入继电器 100013 03 HOLDING REGISTER 4输出寄存器 400014 04 INPUT REGISTER 3输入寄存器 30001(表1) Modbus Slave与MCGS寄存器对应关系注:Modbus Slave 软件中03,04与MCGS的标注有所不同,使用时请注意。
C. Address 为寄存器起始地址。