第一章串口、以太网通讯基础1、串口通讯基础具体讲解请参考串口通讯基础知识.doc2、以太网通讯基础具体讲解请参考以太网通讯基础知识.doc第二章常用通讯测试工具1.串口测试工具分类:串口调试工具:用来模拟上下位机收发数据的串口工具,占用串口资源。
如:串口调试助手,串口精灵,Comm等。
串口监听工具:用来监听上下位机串口相关操作,并截获收发数据的串口工具。
不占用串口资源。
如:PortMon,ComSky等。
下面分别介绍串口调试助手及PortMon的使用。
1.1. 串口调试助手:操作流程:• 设置串口参数(之前先关闭串口)。
• 设置接收字符类型(十六进制/ASCII 码) • 设置保存数据的目录路径。
• 打开串口。
• 输入发送数据(类型应与接收相同)。
• 手动或自动发送数据。
• 点击“保存显示数据”保存接收数据区数据到文件RecXX.txt 。
• 关闭串口。
串口参数 设置区串口状态打开/关闭串口串口数据 接收区十六进制/ASCII 切换保存数据功能区 串口数据 发送区发送数据功能区串口收发计数区1.2. PortMon串口监听工具:连接状态菜单栏工具栏截获数据显示区1.2.1. PortMon设置及使用:a. 确保要监听的串口未被占用。
如果串口被占用,请关闭相应串口的应用程序。
比如:要监视MCGS软件与串口1设备通讯,应该先关闭MCGS软件。
说明:PortMon虽不占用串口资源,但在使用前必须确保要监听的串口未被占用,否则无法进行监视。
b. 运行PortMon,并进行相应设置。
•连接设置:在菜单栏选择“计算机(M)”->“连接本地(L)”。
如果连接成功,则连接状态显示为“PortMon于\\计算机名(本地)”。
如下图:•捕获设置:➢在菜单栏选择“捕获(C)”,并选中“捕获事件(C) Ctrl+E”(前面打钩表示选中)。
也可在工具栏中点击“”按钮,切换状态。
“”为选中,“”为未选中。
➢在菜单栏选择“捕获(C)”->“端口(P)”,并选中要监听的串口。
如:要监听串口1则选中“COM1 Serial0”。
•数据显示设置:➢数据显示方式:菜单栏选择“选项(O)”选中“显示16进制”,可使截获数据以16进制显示,否则为ASCII码显示。
➢“过滤/高亮”:菜单栏选择“选项(O)”-> “过滤/高亮(L)…”。
弹出设置窗口。
可进行过滤及高亮的设置,以便于数据的观查。
注:过滤可按左图设置,如果不过滤,包含中只填入“*”号,但不能为空。
•其它设置:➢“最大输出字节”:菜单栏选择“编辑(E)”->“最大输出字节”,弹出设置窗口。
如数据显示不全时,可调整此项。
➢字体设置:菜单栏选择“编辑(E)”->“字体(N)”,弹出设置窗口。
如数据显示过小时,可调整此项。
c. 数据监听:➢当上述设置完成后可对串口进行数据监听。
➢此时,可正常启动MCGS,组态工程,加入需要调试的驱动之后,并设置好相应参数后,可以切换到设备调试窗口或直接进入运行环境,嵌入版则可以进入模块环境测试驱动。
此时在PortMon数据窗口可以看到截获的收发数据包。
•数据监听步骤:➢启动MCGS。
➢组态工程,加入驱动➢设置串口参数➢设备调试窗口或运行环境调试(嵌入版可进入模拟环境测试)c. 数据观察:➢截获的数据实时显示在监听数据区中,可初步观察和判断。
d. 数据分析:➢ 主从设备:一发一收收发对应,收(IRP_MJ_READ)、发(IRP_MJ_WRITE)数据帧在监听区可以明显的看到,为方便观察,可设置“过滤/高亮”选项,如果只有发没有数据收到,说明设备未正确响应,需要分析原因。
➢ 主动上送设备:只收不发,上位机只收取数据并进行处理,此时只有收(IRP_MJ_READ)数据,如果驱动有问题,最大可能就是数据解析不正确;如果未收到数据,需要分析设备原因。
e. 数据保存:➢ 保存(S):菜单栏选择“文件(F)”->“保存(S)”,数据保存到默认为本地计算机名的LOG 文件。
➢ 另存为(A):菜单栏选择“文件(F)”->“另存为(A)”,数据保存到用户命名的LOG 文件。
操作耗时 操作时间 程序名称 请求操作 串口端口结果提示数据长度及实际数据 (16进制)数据长度及实际数据 (ASCII 码)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.exe:此软件使用与刘振中之SmartComm功能相近,大家可参考使用。
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: 读/写寄存器。
Modbus Slave 使用1、安装:点击Modbus.Slave.v3.1.exe进入安装界面:依次选择NEXT,直至安装完成。
2、使用:点击桌面的,或者选择启动Modbus Slave,并进入操作界面:点击按钮的,打开一个新的监控窗口,然后:选择“Setup”菜单的“Slave Definition”进行子设备设置:其中:Slave,表示要监控的Modbus子设备的设备地址Function,表示Modbus功能码Address,表示Modbus子设备的寄存器的起始地址Length,表示要连续读取的寄存器个数设置完成点,模拟窗口将显示定义的寄存器列表:选择“Connection”菜单的“Connect”进行连接设置:其中:Port1,表示使用的串口(COM1),根据实际情况选择不同的串口或者TCP/IP进行连接 Mode,表示Modbus协议模式,使用串口时有效;使用TCP/IP时自动为TCP模式Flow Control,表示流控制,串口模式时有效;Ignore Unit ID,表示TCP模式时忽略无效的组编号设置完成点,模拟窗口将实时显示定义的寄存器列表:其中:ID,表示模拟的Modbus子设备的设备地址红字部分,表示当前的错误状态点击对应的寄存器,即可修改对应寄存器的值或者状态。
3.1. Modbus Poll:Modbus Poll是Modbus主设备模拟工具,帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于监控、测试、调试Modbus通讯设备。
可以多个窗口中同时监控多个Modbus子设备!与Modbus Slave的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22 和23,监视串口数据。
支持以下Modbus协议:RTUASCIIModbus TCP寄存器和线圈的读写:同时操作(读/写)127个寄存器、同时操作(读/写)2000个输入/线圈支持的MODBUS功能码:01: 读取线圈状态02: 读取输入状态03: 读取保持寄存器04: 读取输入寄存器05: 强置单线圈06: 预置单寄存器15: 强置多线圈16: 预置多寄存器22: 位操作寄存器23: 读/写寄存器。
Modbus Poll 使用1、安装:点击Modbus.Poll.v3.60.exe进入安装界面:依次选择NEXT,直至安装完成。
2、使用:点击桌面的,或者选择启动Modbus Poll,并进入操作界面:点击按钮的,打开一个新的监控窗口,然后:选择“Setup”菜单的“Poll Definition”进行监控设置:其中:Slave,表示要监控的Modbus子设备的设备地址Function,表示Modbus功能码Address,表示Modbus子设备的寄存器的启示地址 Length,表示要连续读取的寄存器个数Scan Rate,表示读取周期,单位为毫秒Auto Read Enable,表示联系读取Read Once,表示读取一次,每点击一次,将读取一次设置完成点,监控窗口将显示定义的寄存器列表:选择“Connection”菜单的“Connect”进行连接设置:其中:Port1,表示使用的串口(COM1),根据实际情况选择不同的串口或者TCP/IP进行连接 Mode,表示Modbus协议模式,使用串口时有效;使用TCP/IP时自动为TCP模式Respones Timeout,表示读取超时时间,如果在规定时间内资设备没有返回数据,认为通讯失败 Delay Between Polls,每次扫描的间隔时间Remote Server,表示TCP模式时的终端设备设置IP Address,表示TCP模式时终端设备的IP地址Port,表示TCP模式时终端设备的端口设置完成点,监控窗口将实时显示定义的寄存器列表:其中:Tx,表示通讯的次数Err,表示错误通讯的次数ID,表示监控的Modbus子设备的设备地址F,表示Modbus功能码SR,表示扫描周期红字部分,表示当前的错误状态点击对应的寄存器,即可修改对应寄存器的值或者状态。