1、1,ModBus通信协议及通信调试,2,目 录,一 Modbus协议,三 Modbus数据包的分析,四 简单Linux操作命令,九 常见问题分析讲解,Modbus协议,Modbus 协议是应用于电子控制器上的一种通用语言。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控 ModBus通信采用主从方式,在同一个网络中有一个主设备及最多达255台从设备,从设备的地址编码为1255。通常情况下,主设备只与1台从设备通信,但当主设备发出的地址码为0即采用广播方式时,可以将消息发送给所有的从设备 ModBus一次通信其发送和接收的数据包由若干帧组成,协议正是定义了这
2、些帧的意义,控制器只要按照协议解释其接收和发送的帧数据,就能与在同一网络中采用同样协议的控制器实现通信,Modbus协议,ModBus协议有两种通信模式: ASC II模式和RTU(远程终端单元)模式。ASC II模式是将一个字节分为两个ASC II字符发送,而RTU模式以十六进制传送数据,一个字节就是一帧, 因而数据传送的效率高于ASCII模式,大多数工业控制器采用RTU模式。目前我们接触过的采用ASC II模式的设备只有SHAFER的气液联动阀的电子控制单元。 在同一个网络中,无论主机还是从机,都必须采用相同的通信模式及相同的传输速率。如:9600,N,8,1,Modbus协议,ModBu
3、s协议有两种通信模式: ASC II模式和RTU(远程终端单元)模式。ASC II模式是将一个字节分为两个ASC II字符发送,而RTU模式以十六进制传送数据,一个字节就是一帧, 因而数据传送的效率高于ASCII模式,大多数工业控制器采用RTU模式。目前我们接触过的采用ASC II模式的设备只有SHAFER的气液联动阀的电子控制单元。 在同一个网络中,无论主机还是从机,都必须采用相同的通信模式及相同的传输速率。如:9600,N,8,1,Modbus协议- 询问应答,Modbus协议- 询问应答,The Query: The function code in the query tells th
4、e addressed slave device what kind of action to perform. The data bytes contain any additional information that the slave will need to perform the function. For example, function code 03 will query the slave to read holding registers and respond with their contents. The data field must contain the i
5、nformation telling the slave which register to start at and how many registers to read. The error check field provides a method for the slave to validate the integrity of the message contents.,Modbus协议- 询问应答,The Response: If the slave makes a normal response, the function code in the response is an
6、echo of the function code in the query. The data bytes contain the data collected by the slave, such as register values or status. If an error occurs, the function code is modified to indicate that the response is an error response, and the data bytes contain a code that describes the error. The err
7、or check field allows the master to confirm that the message contents are valid.,9,目 录,一 Modbus协议,三 Modbus数据包的分析,四 简单Linux操作命令,九 常见问题分析讲解,Modbus数据包的分析-功能码03,QUERY RESPONSESlave Address : 01 Slave Address: 01Function: 03 Function: 03Starting Address Hi : 00 Byte Count: 02Starting Address Lo: 01 Data
8、Hi: 00No. of Registers Hi: 00 Data Lo: 06No. of Registers Lo: 01 Error Check: 38 46Error Check: d5 ca,Modbus数据包的分析-功能码02,Q:01 02 00 C4 00 16 - - R:01 02 03 AC DB 35 - - QUERY RESPONSESlave Address : 01 Slave Address: 01Function: 02 Function: 02Starting Address Hi : 00 Byte Count: 03Starting Address
9、Lo: C4 Data (Inputs 1020410197) : ACNo. of Registers Hi: 00 Data (Inputs 1021210205) : DBNo. of Registers Lo: 16 Data (Inputs 1021810213): 35Error Check: - - Error Check: - -,Modbus数据包的分析-功能码02,Q:01 02 00 C4 00 16 - - R:01 02 03 AC DB 35 - - 十六进制 十进制 C4 196 十六进制 二进制 1020410197 AC 10101100 1021210205
10、DB 11011011 1021810213(1022010213) 35 00110101,13,目 录,一 Modbus协议,三 Modbus数据包的分析,四 简单Linux操作命令,九 常见问题分析讲解,简单的Linux操作命令-VI编辑器,VI指令主要用来编辑Linux操作系统中的文件,它包含两种模式:编辑模式、命令模式。从编辑模式到命令模式按ESC键即可。,简单的Linux操作命令-VI编辑器,在VI编辑器中相应指令如下: 编辑模式:a 在当前光标后插入字符i 在当前光标前插入字符o 在当前光标后插入一行x 删除当前字符dd 删除当前行r(R) 替代当前字符 命令模式:q! 不保存:
11、wq! 保存,简单的Linux操作命令-文件的传输FTP,FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。,简单的Linux操作命令-文件的传输FTP,FTP命令简介: 1、FTP 目的IP地址 FTP服务器的登陆 2、DIR/LS 显示文件信息 3、GET 文件名 (下载到当前目录) 下载文件 4、 PUT 文件名 上传文件 5、 BYE 退出 6、 HELP 帮助,简单的Linux操作命令-文件的传输FTP,FTP命令简介: 1、FTP 目的IP地址
12、 FTP服务器的登陆 2、DIR/LS 显示文件信息 3、GET 文件名 (下载到当前目录) 下载文件 4、 PUT 文件名 上传文件 5、 BYE 退出 6、 HELP 帮助,简单的Linux操作命令-文件的传输FTP,传输模式FTP的传输有两种方式:ASCII、二进制。 ASCII传输方式 假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是Linux,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何
13、非文本文件之前,用binary 命令告诉ftp逐字拷贝。,简单的Linux操作命令-文件的传输FTP,传输模式FTP的传输有两种方式:ASCII、二进制。 二进制传输模式在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。如在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。),21,目 录,一 Modbus协议,三 Modbus数据包的分析,四 简单Linux操作命令,九 常见问题分析讲解,常见问题分析讲解-常见问题,设备问题1、笔记本串口损坏。2、485-232转换器损坏。3、设备本身问题。4、水晶头问题 线路问题 1、现场设备到端子2、端子到MOXA串口 配置问题1、OASyS配置(CONNECTION/RTU)2、MOXA配置(rc.local文件),谢谢!,