




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
dfsservicemodbus入门讲座(1) Modbus入门罗健忠xx-12- 141、基础知识数值与进制串口与以太网 2、Modbus基本概念什么是Modbus寄存器命令帧与应答帧设备地址功能码CRC校验 3、命令实例讲解0x03功能码0x10功能码其他功能码 4、常用工具ModscanAessPortCRC16自制工具 5、客户常见问题目录基础知识1.数值与进制2.串口与以太网基础知识数值与进制(定义)维基百科“进位制/位置计数法”是一种记数方式,故亦称“进位记数法/位值计数法”,可以用有限的数字符号代表所有的数值。 可使用数字符号的数目称为基数(en:radix)或底数,基数为n,即可称n进位制,简称n进制。 现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。 基础知识数值与进制(常用进制)常用进制十进制二进制八进制十六进制基础知识数值与进制(十六进制)十六进制维基百科十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:AF即1015)。 常见表示方法0xAA,%AA,$AA,&HAA,0AAH基础知识数值与进制(进制转换)十六进制与十进制的转换手算方法十进制转十六进制除16取余举例:100-0x64十六进制转十进制乘以16的n次方,n从0开始举例:0x12-18基础知识数值与进制(使用计算器)使用计算器基础知识串口与以太网串口1.四个主要参数2.RS232/RS422/RS4853.流量计算机和流量计上的串口以太网1.RJ45接口2.IP与端口3.TCP与UDP4.路由器与交换机5.光纤通信6.ping命令基础知识串口与以太网(串口主要参数)通过串口通信的两个仪器,以下四个参数均需要保持一致波特率:每秒传输多少个比特,常用值:9600,19200奇偶校验:一个数据里面1的个数是奇数还是偶数,常用值:无校验(N),奇校验(O),偶校验(E)数据位:一个数据中实际用于表示数值的有多少比特,常用值:8,7停止位:表示一个数据结束的等待时间,常用值:1,2常见说法:9600N81基础知识串口与以太网(RS232)完整的RS232通信需要9根线,但是实际使用中,为了方便,一般只接三根线,这三根线定义如下:RxD:接收端TxD:发送端GND:发送端和接收端公用的地线一般接线方法:TxDRxDRxDTxDGNDGND基础知识串口与以太网(RS422)由于RS232采用等分信号传输数据,抗干扰能力较差,一般可靠的通信距离,在9600波特率下,大概在几十到一百米之内,波特率越高,可传输的距离越短后来有定义了RS422规范,采用差分信号传输数据,总共需要四根线(RxD+,RxD-,TxD+,TxD-),使得抗干扰的能力得到提高.传输距离也得以增长但是RS422也存在缺点,就是导线过多,一方面接线麻烦,另一方面也增加了成本,所以RS422很块的被RS485所取代基础知识串口与以太网(RS485)RS485有两种工作模式,全双工和半双工,全双工方式基本与RS422兼容,也同样需要4根线,而我们常用的是半双工方式,只需要用两根线就可以通信.一般接线方法:485A485A485B485BGNDGND(可省略)RS485在不使用中继器,波特率为9600的时候,一般可以稳定通信1千米基础知识串口与以太网(流量计算机)FCL-1和FCL-2型流量计算机对外总共有四个串口,其中一个RS232,三个RS485,命名方法:RS232-1-串口一RS485-1-2-串口二RS485-2-3-串口三RS485-3-4-专用串口注意其中的4,这是一个流量计专用通讯串口,只能与流量计进行通讯,参数为19200N81不可修改,通信地址为1,同样不可修改.一般与流量计通信时就使用这个串口基础知识串口与以太网(流量计)四声道流量计对外有三个串口,其中一个RS232,一个RS232/RS485可选,一个RS485,命名方法RS232RS232/RS485-2RS485一般我们只需要使用一个RS485串口即可,通常情况下是使用2,因为这个口有光隔,不易损坏我们的流量计,而且也只有2的波特率和设备地址是可以修改的基础知识串口与以太网(以太网)RJ45接口RJ45就是我常说的网线水晶头,里面有8根线,要求网线两端的接线顺序一致,一般排列顺序(568B标准)为橙白,橙,绿白,蓝,蓝白,绿,棕白,棕,虽然这不是强制标准,但是一般做网线的时候,最好是遵守这个顺序,一方面是方便多人合作及后期维护,另一方面对抗干扰也有一定的作用.网线的通信距离也比较短,一般不超过100米.基础知识串口与以太网(IP与端口)IP用于标记一个网络内唯一的一个主机,每个主机可以拥有至多65535个端口,IP和端口从本质来说,就是一串数值,和我们的身份证号码类似,就是用来唯一确定一个目标.虽然只是几个数值,但他们是构成现在庞大网络的基石,与之有关的各种标准没有一千也有八百,当然,这些标准我们不需要去了解,只要知道一些常用的知识就可以了两个不同的主机进行以太网通信,最典型的方式就是两者虽然IP地址不同,但是处于同一个C类网段,也就是说,两者的IP地址前三段相同,第四段不同.不论是通过网线直连,还是通过交换机,都需要这么设置.如果是过了路由器,这个情况稍微复杂一些,这里暂不展开基础知识串口与以太网(IP设置)有一类主机,支持一种叫DHCP协议,可以自动为其他主机分配一个合适的IP,一般来说,最常见的就是路由器.只要具备动态获取IP功能的主机,就可以通过DHCP协议,向这类主机申请一个IP,这样可以保证在这个网络中,不会与其他主机发生冲突.在Windows里面,就是自动获取IP这个功能.与动态IP相对应,还有静态IP,也就是主机自己指定IP地址,这适用于那些没有路由器存在的网络环境,我们的产品应用的环境,基本上都不会有路由器,所以我们的产品均只支持静态IP,不支持动态IP在设置静态IP时,一般还需要指定子网掩码和网关.子网掩码一般设置为,网关一般指的是路由器的IP,但是我们应用的地方,没有路由器,所以这个可以不设置,建议一般设置为同一C类网段,第四段为1的IP.基础知识串口与以太网(端口)端口其实并不是物理存在的口,而是系统虚拟出来的,一般来说,系统都允许1-65535这些端口号,但是1-1024这些端口号会被系统保留下来为特定的应用服务,比如最常见的:21FTP协议22SSH协议80协议443SSL协议502Modbus/TCP协议所以在使用端口的时候,一般会避免使用1-1024这些端口.我们流量计算机的UDP通信端口默认是6000,TCP通信默认端口是8000,但是允许改为502,因为我们TCP端口是支持Modbus/TCP协议的,所以可以使用502端口基础知识串口与以太网(TCP/UDP)这是两种协议的名称,其具体实现和功能也是非常复杂的,我们同样不需要去了解,只要知道这两种协议的名字就可以了.我们的流量计算机和四声道流量计,都是同时支持这两种协议的,不过流量计算机支持的比较完整,流量计只是部分支持.基础知识串口与以太网(路由器/交换机)路由器和交换机都具备了将多台主机连接为一个网络的能力,在这个网络里面,所有的主机只要IP是同一个C类网段且不冲突,就可以进行通信。 路由器除了具有交换机的功能之外,还具有路由功能,简而言之,就是可以将这个网络(A)作为一个整体,与其他网络(B)相连,对于其他网络(B)来说,只会认为这个网络(A)是一个主机。 路由器最常用的就是家庭里面多台电脑共享一条宽带进行上网。 在一个复杂的网络中,会存在很多的交换机和路由器,对于我们产品的使用场合来说,一般也就是12个交换机,把我们的多台流量计和流量计算机连接起来基础知识串口与以太网(光纤通信)由于网线的传输距离很短,对于长距离的网络通信,一般都需要使用光纤进行中间的传输,然后在两端使用光电转换器转换成普通的RJ45接口。 一般的光电转换器至少带一个RJ45接口,如果是多台仪器要连接的话,需要外接一个交换机,也有一些比较高档的光电转换器,自己带了4个或者更多的RJ45接口,如果够用的话,就不需要再接交换机了。 光纤到我们的机柜中,应该是已经分离成一对一对的尾纤,然后插到光电转换器上对应的接口即可,我们可以将其理解为两根普通的导线,就是把很远距离的两个光电转换器连接起来,要注意的一个地方就是光纤是很脆弱的,不能折,只能绕。 基础知识串口与以太网(ping)在诊断网络问题的时候,ping这个命令是最基本,也是最常用的命令,所以必须掌握其使用方法和判断方法。 使用ping需要在命令行情况下使用,打开命令行窗口的方法,是在开始菜单选择“运行”,然后输入“cmd”,回车后就可以看到一个黑色的窗口(如下图),后面提到的命令,都是在光标后输入,然后按回车执行基础知识串口与以太网(ping的方法)ping命令用来检查当前主机和目标主机是否可以互相访问,如果是两台主机可以ping通,那么就可以通信,否则则不可以通信。 当然,这是在没有防火墙的情况下,如果系统里面开启的防火墙,那情况就会复杂很多,所以一般建议关闭Windows系统自带的防火墙后再ping一般我们都是知道对方的IP,假设为00,那么使用以下的命令ping00回车后可以看到ping的结果(结果的解读后面讲)这里有个小技巧,就是在执行过一个命令后,不要关闭这个黑窗口,然后可以按向上方向键,选择前面输入过的命令,后再按回车就可以运行来,不用每次都重新输命令基础知识串口与以太网(ping通的结果)ping通的结果一般显示下面的内容Pinging00with32bytes ofdata:Reply from00:bytes=32time=1ms TTL=64Reply from00:bytes=32time=1ms TTL=64Reply from00:bytes=32time=1ms TTL=64Reply from00:bytes=32time=1ms TTL=64Ping statisticsfor00:Packets:Sent=4,Received=4,Lost=0(0%loss),Approximate roundtrip timesin milli-seconds:Minimum=1ms,Maximum=1ms,Average=1ms这样的结果表示两个主机之间连接正常基础知识串口与以太网(ping不通的结果)ping不通的话,可能会有以下的提示Request TimedOut如果是四次测试均出现这个提示,可能是目标主机没有开机,或者IP不对,如果是部分出现,那说明主机是正常的,但是丢包率很高,需要检查连接是否可靠,也有另一种可能是同一个网段中IP冲突了Destination HostUnreachable出现这个提示,表示本机没有连接到网络,需要检查网线是否有问题Modbus基本概念1.什么是Modbus2.寄存器3.命令帧与应答帧4.设备地址5.功能码6.CRC校验Modbus基本概念什么是ModbusModbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。 事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。 Modbus比其他通信协议使用的更广泛的主要原因有1.公开发表并且无版税要求2.相对容易的工业网络部署3.对供应商来说,修改移动原生的位元或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,但是其中必须有且仅有一台主机(Master),其他都是从机(Slaver)Modbus基本概念寄存器寄存器是Modbus协议对所有数据类型的一个抽象,所有Modbus支持的数据类型,都放在若干个寄存器里面。 所有的寄存器统一编址,也就是说,每个寄存器有唯一的地址,然后Modbus规定了一组命令格式,来读写一个或者多个连续寄存器。 我们的产品中使用的寄存器,地址的范围从0000到9999(注均为十进制),另外在Modbus中,这类寄存器被称为保持寄存器,一般会在前面加一个4来表示,也就是说,我们用的地址在40000到49999的范围。 每种不同产品的寄存器定义列表是不同的,具体定义参见每个不同的说明文档。 Modbus基本概念命令帧与应答帧连续的,不可分割的,整体表达一个信息的一串字节,我们称之为一包数据,或者一个帧。 在Modbus中有两种通信模式,RTU和ASCII,我们仅支持RTU模式,主要是因为ASCII模式通信效率低,基本已经没人使用来。 在RTU模式中,数据帧之间采用最小间隔时间来区分,也就是说,发送方必须保证发送两帧数据之间必须间隔足够长的时间。 从Master发送到Slaver的帧我们称之为命令帧从Slaver发送到Master的帧我们称之为应答帧Modbus基本概念设备地址由于Modbus是一种总线通信模式,Master可以同时和多台Slaver通信,Master为了表明当前在与哪一台Slaver通信,必须要指定一个设备地址,这个地址允许的范围是1247,整个总线上设备地址不能重复,所以作为Slaver,必须要支持修改设备地址的功能。 在Slaver收到一个命令帧之后,首先就要检查这个命令帧里面的设备地址是不是发送给自己的,如果是的话再进行处理,否则必须忽略该命令帧,不能有任何回复和操作。 Modbus基本概念功能码为了区分不同的操作,Modbus协议定义来很多的功能码,而且详细定义来每个不同功能码的命令帧和应答帧格式,详细的内容如果有兴趣的话,可以查阅国标GB/T19582.1xx我们最常用到的功能码,一个是读取保持寄存器的0x03功能码,另一个是写保持寄存器的0x10功能码。 这两个功能码会在下一节中详细介绍,其他的功能码会简略介绍一下其功能。 Modbus基本概念CRC校验CRC校验是一种比较流行的数据校验方法,可以用来检验一包数据的完整性。 在Modbus中,所有的帧都必须加上CRC校验位,然后再发送,而接收端接收到该帧后,除了检查设备地址之外,必须验证校验位是否正确,如果正确,则继续处理,否则不回复任何数据,也不进行任何操作。 无论什么通信方式,均会存在被干扰的可能,CRC校验使得这种干扰能够被很快被发现,不会造成更大的影响。 命令实例讲解1.0x03功能码2.0x10功能码3.其他功能码命令实例讲解0x03功能码(命令帧)0x03功能码的作用是读保持寄存器,一个有效的命令帧如下:010300000002C40B(注下文中所有命令帧采用蓝色字,应答帧采用绿色字,用空格隔开的两个字符表示一个字节,均采用十六进制)分解如下01设备地址,指明要与设备地址为0x01的Slaver通信03功能码,读保持寄存器0000起始寄存器地址,表示从哪一个寄存器开始读取0002读取长度,表示要读取多少个寄存器C40B CRC校验,前面六个字节的校验码命令实例讲解0x03功能码(应答帧)针对上面的命令帧,一个有效的应答帧如下:010304000100022A32分解如下01设备地址,表明该应答帧设备地址为0x01的Slaver03功能码,与命令帧一致04字节数,表示后面跟随的数据长度00010002数据内容,也就是读取的两个寄存器里面的内容,这些字节如何解析,由寄存器数据类型来确定,这个必须在寄存器列表上写明,主从机采用同样的格式来编码和解码2A32CRC校验,前面七个字节的校验码命令实例讲解0x10功能码(命令帧)0x10功能码的作用是写保持寄存器,一个有效的命令帧如下:011000000002040102030452A0分解如下01设备地址,指明要与设备地址为0x01的Slaver通信10功能码,写保持寄存器0000起始寄存器地址,表示从哪一个寄存器开始写入0002写入长度,表示要写入多少个寄存器04字节数,后续有多少个字节的数据,必须等于写入长度xx20304实际写入的字节,具体解析需遵照寄存器定义52A0CRC校验,前面11个字节的校验码命令实例讲解0x10功能码(应答帧)针对上面的命令帧,一个有效的应答帧如下:01100000000241C8分解如下01设备地址,表明该应答帧设备地址为0x01的Slaver10功能码,与命令帧一致0000起始寄存器地址,与命令帧一致0002寄存器长度,与命令帧一致41C8CRC校验,前面六个字节的校验码命令实例讲解其他功能码除了0x03和0x10功能码之外,Modbus还规定了很多其他的功能码,比如0x01读线圈0x06写单个保持寄存器这些功能码我们都很少用到,只要知道还存在其他功能码以及如何识别功能码即可。 所有Modbus数据帧的前两个字节和后两个字节都是固定内容,第一个字节是设备地址,第二个字节是功能码,最后两个字节是前面所有字节的CRC校验码。 常用工具1.AessPort2.ModScan3.CRC16客户常见问题 1、我们流量计算机的串口设置我们的流量计算机前三个串口都是可以自由配置的,一般要和PLC或SCADA连接时,建议先设置波特率为9600,奇偶校验为无校验,串口功能为上位机通信,设备地址为1,浮点数顺序设置为交换。 这样的配置在工业现场中非常普遍。 当然,如果用户有特殊要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物流基础考试试题及答案
- 客车给水员知识考核试卷及答案
- 柠檬酸提取工转正考核试卷及答案
- 医师资格考试(实践技能)复习题库及答案(2025年淮南)
- 2025年公路工程试验检测师资格考试(公共基础)综合能力测试题及答案(鸡西)
- 墨锭制作工5S管理考核试卷及答案
- 辽宁丹东市2025年医学综合考试“年两试”中医执业医师考试(实践技能)模拟练习题及答案
- 剧装工岗位操作规程考核试卷及答案
- 井筒掘砌工服务标准化考核试卷及答案
- 经济师考试财政税收专业知识和实务(初级)试题及解答2025年附答案
- 《少年中国说(节选)》(第二课时) 教学课件
- 沥青路面施工方案61841
- 中国海洋大学《海洋生物资源与环境调查实习报告》
- 《中外美术史》课件1中外美术史.1(原始社会)
- 村民自治制度中存在的问题与对策
- 刺梨产品之养生有维系列简介共26页课件
- Q∕GDW 12152-2021 输变电工程建设施工安全风险管理规程
- 机械识图-公司培训PPT课件
- 公产房“承租权”能否继承
- 公司收购协议书范本
- 绿色建筑施工方案
评论
0/150
提交评论