做网站的前途,个人可以做导航网站吗,凡科网代理登陆,中国软件企业十强什么是Modbus 1. Modbus如何工作 Modbus是通过设备之间的几根连线来传递数据#xff0c;最简单的设置就是主站和从站之间用一跟串口线相连。数据通过一串0或者1来传递#xff0c;也就是位。0为正电压#xff0c;1为负电压。位数据传递速度非常快#xff0c;常见的传输速度为…什么是Modbus 1. Modbus如何工作 Modbus是通过设备之间的几根连线来传递数据最简单的设置就是主站和从站之间用一跟串口线相连。数据通过一串0或者1来传递也就是位。0为正电压1为负电压。位数据传递速度非常快常见的传输速度为9600波特(即9600bits/s). 2. 标准Modbus怎么存储数据 信息存储在从站的四个不同的表中。两个表存储数字量称为线圈两个表存储模拟量称为寄存器。线圈和寄存器分别有一个只读另一个可读写。每个表可存储9999个值。线圈是一位的地址从0000到270E;寄存器是一个字的(16位2字节)地址也是从0000到270E. Coil/Register NumbersData AddressesTypeTable Name1-99990000 to 270ERead-WriteDiscrete Output Coils10001-199990000 to 270ERead-OnlyDiscrete Input Contacts30001-399990000 to 270ERead-OnlyAnalog Input Registers40001-499990000 to 270ERead-WriteAnalog Output Holding Registers线圈/寄存器编号可以看做是位置的名字它们不出现在实际发送的信息当中数据地址(Data Address)出现在实际发送的信息中。 举个例子第一个Holding Register的编号为40001数据地址为0000.这两个数字的区别在于偏移量。 3. 什么是从站ID 在网络中每一个从机分配一个唯一的设备地址从1到247.当主机请求数据时发送的信息的第一个字节就是从机地址这样从机接收到第一个字节后就知道是否忽略信息。 4. 什么是功能码 主机发送的第二个字节就是功能码。这个功能码告诉从机需要访问哪个表是向这个表中写数据还是读数据。 Fun CodeActionTable Name01(01 hex)ReadDiscrete Output Coils05(05 hex)Write singleDiscrete Output Coil15(0F hex)Write multipleDiscrete Output Coils02(02 hex)ReadDiscrete Input Contacts04(04 hex)ReadAnalog Input Registers03(03 hex)ReadAnalog Output Holding Registers06(06 hex)Write singleAnalog Output Holding Register16(10 hex)Write multipleAnalog Output Holding Registers5. 什么是CRC CRC即循环冗余校验码(Cyclic Redundancy check),是在每一个发送的信息后面加上的两字节用于检验发送和接受是否出错。信息中的每一个字节都用于计算CRC。接受设备同时计算CRC然后与发送方计算的CRC进行比较如果两者不同则产生错误。 6. Modbus发送指令和回应的格式 Modbus发送指令和回应的格式 Data AddressesReadWrite SingleWrite MultipleDiscrete Output Coils 0xxxxFC01FC05FC15Discrete Input Contacts 1xxxxFC02NANAAnalog Input Registers 3xxxxFC04NANAAnalog Output Holding Registers 4xxxxFC03FC06FC16注FC表示Function Code eg1. 数据请求 11 01 0013 0025 0E84 11: 从机地址 (0x11 17 ) 01: 功能码01(读线圈状态) 0013: 线圈首地址(0x001319,1偏移量#20线圈) 0025: 要读的线圈数 (0x25 37, 20~56 ) 0E84: CRC校验和 回应 11 01 05 CD6BB20E1B 45E6 11: 从机地址 (0x11 17 ) 01: 功能码01(读线圈状态) 05后面的字节数(37/85字节) CD线圈27 - 20 (1100 1101) 6B: 线圈35 - 28 (0110 1011) B2: 线圈43 - 36 (1011 0010) 0E: 线圈51 - 44 (0000 1110) 1B: 3空格和线圈56 - 52 (0001 1011) 45E6: CRC校验和 其他例子与此类似不再赘述。 参考资料simplyModbus 转载于:https://www.cnblogs.com/zhengkang/p/4891131.html