1、 做神州工控先锋 创民族软件精华 - 1 - 常用通讯测试工具 鉴于很多 MCGS 用户和技术人员对通讯测试工具并不很熟悉,本文档将针对实际的测试情况,对串口、以太网通讯调试过程中所涉及到的常用的测试软件进行相关的讲解。 1. 串口测试工具: 串口调试工具:用来模拟上下位机收发数据的串口工具,占用串口资源。如:串口调试助手,串口精灵,Comm等。 串口监听工具:用来监听上下位机串口相关操作,并截获收发数据的串口工具。不占用串口资源。如:PortMon,ComSky 等。 串口模拟工具:用来模拟物理串口的操作,其模拟生成的串口为成对出现,并可被大多数串口调试和监听软件正常识别,是串口测试的绝好工
2、具。如:Visual Serial Port 等。 下面将分别介绍串口调试助手、Comm、PortMon和 Visua l Serial Port 的使用。做神州工控先锋 创民族软件精华 - 2 - 1.1. 串口调试助手: 为最常用的串口收发测试工具,其各区域说明及操作过程如下: 串口状态 打开/关闭串口十六进制/ASCII 切换 串口数据 接收区 串口参数 设置区 串口数据 发送区 串口收发计数区 发送数据功能区 保存数据功能区 操作流程如下: 设置串口参数(之前先关闭串口)。 设置接收字符类型(十六进制/ASCII 码) 设置保存数据的目录路径。 打开串口。 输入发送数据(类型应与接收相
3、同)。 手动或自动发送数据。 点击“保存显示数据”保存接收数据区数据到文件 RecXX.txt。 关闭串口。 注:如果没有相应串口或串口被占用时,软件会弹出“没有发现此串口”的提示。做神州工控先锋 创民族软件精华 - 3 - 1.2. PortMon串口监听工具: 用来监听上下位机串口相关操作,并截获收发数据的串口工具。不占用串口资源,但在进行监听前,要保证相应串口不被占用,否则无法正常监听数据。 连接状态 菜单栏 工具栏 截获数据显示区 PortMon 设置及使用: 1). 确保要监听的串口未被占用 。 如果串口被占用,请关闭相应串口的应用程序。比如:要监视 MCGS 软件与串口 1 设备通
4、讯,应该先关闭 MCGS软件。 说明:PortMon 虽不占用串口资源,但在使用前必须确保要监听的串口未被占用,否则无法进行监视。 2). 运行 PortMon,并进行相应设置。 连接设置: 在菜单栏选择“ 计算机(M) ”-“连接本地(L)” 。如果连接成功,则连接状态显示为“PortMon 于计算机名(本地) ”。如下图: 做神州工控先锋 创民族软件精华 - 4 - 捕获设置: 在菜单栏选择“ 捕获(C)” ,并选中“ 捕获事件(C) Ctrl+E ”(前面打钩表示选中)。也可在工具栏中点击“ ”按钮,切换状态。 “ ”为选中,“ ”为未选中。 在菜单栏选择“ 捕获(C)” -“端口(P)
5、 ”,并选中要监听的串口。如:要监听串口 1 则选中“ COM1 Serial0”。 数据显示设置: 数据显示方式:菜单栏选择“ 选项(O)” 选中“ 显示16 进制 ”,可使截获数据以 16 进制显示,否则为 ASCII码显示。 “过滤/高亮” :菜单栏选择“ 选项(O)” - “过滤/高亮(L) ” 。弹出设置窗口 。可进行过滤及高亮的设置,以便于数据的观查。 注: 过滤可按上图设置, 如果不过滤,而要截获串口操作的所有过程,则包含中只填入“*”号,但不能为空。 其它设置: “最大输出字节” :菜单栏选择“ 编辑(E)” -“最大输出字节” ,弹出设置窗口 。如数据显示不全时,可调整此项。
6、 字体设置:菜单栏选择“ 编辑(E) ”-“字体(N) ”,弹出设置窗口 。如数据显示过小时,可调整此项。 做神州工控先锋 创民族软件精华 - 5 - 3). 数据监听: 当上述设置完成后可对串口进行数据监听。此时,可正常启动 MCGS,组态工程,加入需要调试的驱动之后,并设置好相应参数后,可以切换到设备调试窗口或直接进入运行环境,嵌入版则可以进入模块环境测试驱动。此时在 PortMon 数据窗口可以看到截获的收发数据包。 数据监听步骤: 启动MCGS。 组态工程,加入驱动 设置串口参数 设备调试窗口或运行环境调试(嵌入版可进入模拟环境测试)做神州工控先锋 创民族软件精华 - 6 - 4).
7、数据观察: 截获的数据实时显示在监听数据区中,可初步观察和判断。 数据长度及实际数据 (16 进制 )请求操作 程序名称 操作耗时 串口端口 数据长度及实际数据 (ASCII 码 )结果提示 操作时间 5). 数据分析: 主从设备:一发一收收发对应,收(IRP_MJ_READ)、发( IRP_MJ_WRITE)数据帧在监听区可以明显的看到,为方便观察,可设置“ 过滤/高亮 ”选项,如果只有发没有数据收到,说明设备未正确响应,需要分析原因。 主动上送设备:只收不发,上位机只收取数据并进行处理,此时只有收(IRP_MJ_READ)数据,如果驱动有问题,最大可能就是数据解析不正确;如果未收到数据,需
8、要分析设备原因。 6). 数据保存: 保存(S):菜单栏选择“ 文件(F) ”-“保存(S) ”,数据保存到默认为本地计算机名的LOG 文件。 另存为(A):菜单栏选择 “文件(F) ”-“另存为(A) ”,数据保存到用户命名的 LOG 文件。做神州工控先锋 创民族软件精华 - 7 - 1.4. Virtual Serial Ports Driver XP串口模拟工具 : 用来模拟物理串口的操作,其模拟生成的串口为成对出现,并可被大多数串口调试和监听软件正常识别,是串口测试的绝好工具。 物理串口 增加虚拟串口对 虚拟串口对删除虚拟串口对 操作流程: 增加虚拟串口对: 在“Add/Remove
9、ports”页中, 分别在First、Second右侧的下拉列表中选中所增加的虚拟串口对的串口号名称(一般选择除物理串口外的其他串口号),然后点击右侧的“Add pair”按钮增加虚拟串口对,此时在左侧的虚拟串口中就会出现所增加的串口对,如上图所示。之后关闭 Virtual Serial Ports Driver XP程序就可以。如果想删除虚拟串口对,则可以在左侧选中已增加的虚拟串口对,此时“Delete pair”按钮变为可用状态,点击则可删除。或点击“Reset bus”删除所有虚拟串口对。 使用虚拟串口对: 用户串口工具分别打开已经增加虚拟串口的两个串口,就可以互相收发数据。如下图所示:
10、 做神州工控先锋 创民族软件精华 - 8 - 在使用 MCGS调试驱动时,可将串口父设备参数中串口设置为虚拟串口对中其一个串口(如 COM2),而用 Comm.exe或 Sma rtCom.exe操作另一串口(如 COM4),以虚拟串口数据操作,实现主从或主动上送驱动的模拟测试。 做神州工控先锋 创民族软件精华 - 9 - 1.5. Comm串口调试工具 : 与串口调试助手相似的串口收发测试工具,其特点是可以设置为:接收到指定数据帧后,模拟设备回发数据帧,便于做设备的模拟测试: Comm设置及使用: 此软件使用与串口调试助手基本相近,现将几点不同及注意事项说明如下: 1). 操作过程 : 同串
11、口调试助手一样,也要是先打开串口,再进行数据收发,但有一点要注意,其默认不显示接收数据,只有接收善栏中“接收”按钮按下后,才会显示接收的数据,再点击“停止”可停止接收数据。 2). 模拟设备 : Comm 可以接收到指定数据帧后,模拟设备回发数据帧,其使用方法为:在右侧测试栏中,在“在收到下列字符串后”输入框中填入接收的指定数据帧;在其下面的“发送”输入框中填入模拟回发的数据帧;然后点击启动,此时即可实现模拟设备的功能。 总共可以实现两组指定数据帧的模拟回发数据帧功能。做神州工控先锋 创民族软件精华 - 10 - 2. 以太网测试工具: 以太网调试工具 :用来模拟上下位机收发数据的以太网工具,
12、占用以太网端口资源。此类工具很多,在此不一一概述。 以太网监听工具 :用来监听上下位机以太网相关操作,并截获收发数据的以太网工具。不占用以太网端口资源。典型的软件有:Sniffer.Pr o, Ultra Net Sniffer 等。 Ultra Net Sniffer 主界面 做神州工控先锋 创民族软件精华 - 11 - 3. Modbus 测试工具: Modbus Slave 调试工具 :用来模拟 Modbus 设备的工具,主要用来模拟 Modbus 从站设备,接收主站的命令包,回送数据包。常用模拟实际设备进行调试。典型工具如:Modbus Slave。 Modbus Master 调试工
13、具 :做为 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协议: RTU ASCII Modbus TCP 支持的MODBUS功能码: 01
14、: 读取线圈状态 02: 读取输入状态 03: 读取保持寄存器 04: 读取输入寄存器 05: 强置单线圈 06: 预置单寄存器 15: 强置多线圈 16: 预置多寄存器 22: 位操作寄存器 23: 读/写寄存器。 做神州工控先锋 创民族软件精华 - 12 - 3.1.1.Modbus Slave 使用 1)、安装注册: 此软件不需安装,解压缩附件中 Modbus Slave.rar,双击执行 mbslave.exe 即可,如果是第一次运行,会弹出如下注册提示: (图1) 注册对话框 此时,可以双击执行 keygen.exe,如下图: (图2) 注册码获取 程序中 Name、Email、Re
15、g Key 顺序对应上面三个注册项,其中前两项可由用户填写,或直接按其默认即可,第三项 Reg Key 根据前两项自动生成。将此三项填入表 1 所示对话框中按“OK”按钮即可完成注册。然后直接进入主窗口,如图 3 所示。 做神州工控先锋 创民族软件精华 - 13 - 2)、主窗口: 软件主窗口如图 3 所示: (图3)主窗口 此时处于“No connection”未连接状态,如果只测试“04 输出保持寄存器”,则可直接点击跳到第 3.步,直接进行连接即可。做神州工控先锋 创民族软件精华 - 14 - 3)、参数设置: 点击菜单“Setup”中“Slave Definition F2”进行参数设
16、置,会弹出如图 5 对话框。 (图4)设置菜单 (图5)参数设置 其中:A. Slave 为Modbus 从站地址,对应主画面中的 ID 值,默认为 1。 B. Function 为寄存器功能码的选择,共四种,分别对应关系如下: 序号 Function MCGS 地址举例 1 01 COIL STATUS 0 输出继电器 00001 2 02 INPUT STATUS 1 输入继电器 10001 3 03 HOLDING REGISTER 4 输出寄存器 40001 4 04 INPUT REGISTER 3 输入寄存器 30001 (表1) Modbus Slave与MCGS寄存器对应关系
17、注:Modbus Slave 软件中03,04与MCGS的标注有所不同,使用时请注意。 C. Address 为寄存器起始地址。默认从 1 开始。对应 MCGS 的寄存器地址。 D. Length 为寄存器连续个数。默认为 10个。对应 MCGS 的通道数量。 设置完成点 ,模拟窗口将显示定义的寄存器列表: 其中:ID,表示模拟的Modbus子设备的设备地址 红字部分,表示当前的错误状态 点击对应的寄存器,即可修改对应寄存器的值或者状态。 做神州工控先锋 创民族软件精华 - 15 - 4)、显示设置: 数据显示方式设置: 默认情况下,寄存器数据的显示方式为 Signed方式(16 进制无符号二
18、进制),数据范围为范围为-3276832767。如果用户要以其他数值方式显示,可以通过菜单“Display”进行选择设置,如下图所示: 。 地址格式设置: Modbus Slave 默认使用PLC 地址,“Displ ay”菜单中“PLC Addresses(Base 1)”为默认选中状态,默认寄存器的起始地址为 1开始,此点与 MCGS 的 Modbus 串口和TCP数据转发驱动是相同的。如果测试时需要设置起始地址为 0 开始,可选择“Protocol Addresses(Base 0)”。一般情况下使用默认 PLC 地址即可。 5)、连接: 点击菜单“Connection”中“Connec
19、t F3”进行连接,如下图 (图6)连接菜单 弹出连接对话框: 做神州工控先锋 创民族软件精华 - 16 - (图7)连接串口参数设置 其中:Port1,表示使用的串口(COM1),根据实际情况选择不同的串口或者TCP/IP进行连接 Mode,表示Modbus协议模式,使用串口时有效;使用TCP/IP时自动为TCP模式 Flow Control,表示流控制,串口模式时有效; Ignore Unit ID,表示TCP模式时忽略无效的组编号 用户可根据需要对串口参数进行设置,默认为:串口 1,波特率 9600,数据位 8 位,无校验位,1位停止位。确认设置后点击“OK”按钮即可。此时主窗口中红色的
20、“No connection”表示未连接状态的信息消失,表明从站处于正常连接状态。 6)、寄存器值改变: 在主窗口寄存器地址上双击鼠标,弹出修改对话框,如下图: (图8)寄存器变量修改 在输入框中输入值确认即可。范围为-3276832767。 其中:Auto increment 选项钩选上后,对应寄存器的值可以每 1 秒种增加 1。做神州工控先锋 创民族软件精华 - 17 - 7)、查看通讯数据帧: 点击“Display”菜单中的“C ommunication”,可以调出串口收发数据帧监视信息对话框,用来查看分析收发的数据帧。如下图所示: 其中:前6位为数据帧的序号。 Rx:表示接收数据帧。
21、Tx: 表示发送数据帧。 8)、断开连接: 点击“Disconnect F4”即可断开连接结束测试,此时主窗口中出现红色的“No connection”表示未连接状态。做神州工控先锋 创民族软件精华 - 18 - 3.2. Modbus Poll: Modbus Poll是Modbus主设备模拟工具,帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于监控、测试、调试Modbus通讯设备。 可以多个窗口中同时监控多个Modbus 子设备!与Modbus Slave的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22 和23,监视串口
22、数据。 支持以下Modbus协议: RTU ASCII Modbus TCP 寄存器和线圈的读写: 同时操作(读/写)127个寄存器、 同时操作(读/写)2000个输入/线圈 支持的MODBUS功能码: 01: 读取线圈状态 02: 读取输入状态 03: 读取保持寄存器 04: 读取输入寄存器 05: 强置单线圈 06: 预置单寄存器 15: 强置多线圈 16: 预置多寄存器 22: 位操作寄存器 23: 读/写寄存器。 做神州工控先锋 创民族软件精华 - 19 - 3.2.1.Modbus Poll 使用 1)、安装注册: 此软件不需安装,解压缩附件中 Modbus Poll.rar,双击执
23、行mbpoll.exe即可,如果是第一次运行,会弹出如下注册提示: (图1) 注册对话框 此时,可以双击执行 keygen.exe,如下图: (图2) 注册码获取 程序中 Name、Email、Reg Key 顺序对应上面三个注册项,其中前两项可由用户填写,或直接按其默认即可,第三项 Reg Key 根据前两项自动生成。将此三项填入表 1 所示对话框中按“OK”按钮即可完成注册。然后直接进入主窗口,如图 3 所示。 做神州工控先锋 创民族软件精华 - 20 - 2)、主窗口: 软件主窗口如图 3 所示: (图3)主窗口 此时处于“No connection”未连接状态,如果只测试“04 输出保
24、持寄存器”,则可直接点击跳到第 3.步,直接进行连接即可。做神州工控先锋 创民族软件精华 - 21 - 3)、参数设置: 点击菜单“Setup”中“Slave Definition F2”进行参数设置,会弹出如图 5 对话框。 (图4)设置菜单 (图5)参数设置 其中:A. Slave 为要访问的 Modbus 从站的地址,对应主画面中的 ID 值,默认为 1。 B. Function 为寄存器功能码的选择,共四种,分别对应关系如下: 序号 Function MCGS 地址举例 1 01 Read Coils 0 输出继电器 00001 2 02 Read Discrete Inputs 1
25、输入继电器 10001 3 03 Read Holding Registers 4 输出寄存器 40001 4 04 Read Input Registers 3 输入寄存器 30001 (表1) Modbus Slave与MCGS寄存器对应关系 注:Modbus Poll 软件中03,04与MCGS的标注有所不同,使用时请注意。 C. Address 为寄存器起始地址。默认从 1 开始。对应 MCGS 的寄存器地址。 D. Length 为寄存器连续个数。默认为 10个。对应 MCGS 的通道数量。 E. Scan Rate 为读取数据周期,单位毫秒,默认为 1000ms。与 MCGS 主站
26、最小采集周期意义基本相同。 F. Auto Read Enable 为是否连续读取选择,选中则连续读取。 G. Read Once 此按钮点击一次,执行一次读取。 设置完成点击 ,模拟窗口将显示定义的寄存器列表: 做神州工控先锋 创民族软件精华 - 22 - 4)、显示设置: 数据显示方式设置: 默认情况下,寄存器数据的显示方式为 Signed方式(16 进制无符号二进制),数据范围为范围为-3276832767。如果用户要以其他数值方式显示,可以通过菜单“Display”进行选择设置,如下图所示: 。 地址格式设置: Modbus Slave 默认使用PLC 地址,“Displ ay”菜单中
27、“PLC Addres ses(Base 1)”为默认选中状态,默认寄存器的起始地址为 1 开始,此点与 MCGS的 Modbus 串口和 TCP 数据转发驱动是相同的。如果测试时需要设置起始地址为0开始,可选择 “Protocol Addresses(Base 0)”。一般情况下使用默认 PLC 地址即可。做神州工控先锋 创民族软件精华 - 23 - 5)、连接: 点击菜单“Connection”中“Connect F3”进行连接,如下图 (图6)连接菜单 弹出连接对话框: (图7)连接串口参数设置 其中:Port1,表示使用的串口(COM1),根据实际情况选择不同的串口或者TCP/IP进行
28、连接 Mode,表示Modbus协议模式,使用串口时有效;使用TCP/IP时自动为TCP模式 Respones Timeout,表示读取超时时间,从站在超时时间内没有返回数据,则认为通讯失败 Delay Between Polls,每次扫描的最小间隔时间,默认为10ms Remote Server,表示TCP/IP模式时的终端从站设备的网络设置。 IP Address,表示TCP/IP模式时从站 IP地址。 Port,表示TCP模式时从站网络端口 用户可根据需要对参数进行设置,默认为:串口1,波特率9600,数据位8位,无校验位,1 位停止位。确认设置后点击“OK”按钮即可。此时主窗口将显示读
29、取寄存器的相关信息。 做神州工控先锋 创民族软件精华 - 24 - 其中:Tx = 4: 表示向主站发送数据帧次数,图中为4 次; Error = 0:表示通讯错误次数,图中为0次; ID = 1:表示模拟的Modbus 子设备的设备地址,图中地址为1; F = 03:表示所使用的Modbus功能码,图中为03功能码; SR = 1000ms:表示扫描周期。 红字部分,表示当前的错误状态,“No Connection”表示未连接状态。 6)、寄存器值改变: 在主窗口寄存器地址上双击鼠标,弹出修改对话框,如下图: (图8)寄存器变量修改 在 Value 输入框中输入值确认即可。范围为-32768
30、32767。 其中:Slave: 为要访问的Modbus从站的地址,对应主画面中的ID值,默认为1。 Address: 为当前操作的寄存器的地址。图中为对寄存器30002操作。 Use Function:为所使用的功能码,可以选择06或16 功能码进行写入;做神州工控先锋 创民族软件精华 - 25 - 7)、查看通讯数据帧: 点击“Display”菜单中的“C ommunication”,可以调出串口收发数据帧监视信息对话框,用来查看分析收发的数据帧。如下图所示: 其中:前6位为数据帧的序号。 Rx:表示接收数据帧。 Tx: 表示发送数据帧。 8)、断开连接: 点击“Disconnect F4
31、”即可断开连接结束测试,此时主窗口中出现红色的“No Connection”表示未连接状态。 做神州工控先锋 创民族软件精华 - 26 - 3.3.Modbus 测试注意事项: Modbus Poll 和 Mod bus Slave 做为主、从站测试工具,可以用于从站通讯及主站数据帧的检测和调试,使用时有几点需要注意: Modbus 注意事项: 1)、设备地址对应: 主站访问的从站地址要的从站实际地址对应,否则,从站即使接收到主站的命令帧,也会因为命令帧中的地址帧不是从站的地址而被从站丢弃而不响应。 2)、寄存器及地址对应: 主站访问的从站时,要保证主站要进行读写操作的寄存器地址,从站中必须保
32、证包含这些地址,例如,主站想采集 4 区保持寄存器的地址 1 和地址 2,那么从站中应该至少有这两个通道地址,否则无法正常通讯。另外,要注意 PLC 地址与协议地址的区别。PLC地址为协议地址加1。 3)、通道数据类型对应: 主从站寄存器通道的显示的数据类型要相同,否则会造成读写数据不正确的误解。 4)、非标准Modbus 协议设备: Modbus 协议已经成为业界通讯协议的标准,尤其是 ModbusRTU,应用十分广泛。但由于对 Modbus 协议的理解及实现上的细节差别,很多国内厂家的设备虽然支持 Modbus 协议,但在功能码支持、最大数据长度、校验及数据解码顺序等方面与标准 Modbu
33、s 协议实现均存在细节的差别。 对于部分设备出现读写数据值不对时,可以考虑使用 MCGS 提供的 Modbus驱动构件,并通过提供的解码顺序、校验方式和最大块长设置进行尝试。 5)、同MCGS配合使用: 当使用Modbus Poll与MCGS的Modbus串口数据转发和ModbusTCPIP数据转发从站驱动构件配合测试时,如果使用到 32 位整数或浮点数时,MCGS 数据转发从站驱动构件中要将 32位整数和浮点数的解码顺序设置为“2 - 3412”。 当使用 Modbus Slave 与MCGS 的Mo dbusRTU和 Modbu sTCP 主站驱动构件配合测试时,如果使用到 32位整数或浮点数时,也要将 MCGS 主站驱动构件中 32 位整数和浮点数的 解码顺序 设置为“2 - 3412”。