作者:马乐

1.主站发送报文结构

大家可以看到我之前写的文章中的程序都是没有什么具体功能的,都是两个站点之间互相传递数据,这些数据我们只是看看是否可以正常接收发送,数据本身是没有任何含义的。很明显在实际使用过程中我们是不会这样去用的,对于通讯来说主站发送的数据通常只有两个功能,一是读取从站寄存器中地址的状态也就是从从站读取数据,二是向从站写入数据。那么主站要怎么发送数据从站才能知道,主站是要读数据还是写数据呢?这个就要靠功能码来区分了,

图 1-1

图 1-1所示就是我自己定义的主站向从站发送读取从站数据请求的报文结构,说白了就是我自己定义的一个协议,大家可以叫它马乐协议(^_^)。下面我们一起来看看此报文中四段内容的具体含义。

地址:指的是要读取哪个从站的数据。

功能码:指的是主站要对从站做什么操作,我们这条报文格式是我自定义的读取从站数据的报文(向从站写入数据报文格式后续文章讨论)此处我把读取从站V区数据的功能码自定义为02,那么从站只要接收到报文的第二个字符是02从站就知道主站要读取自己的V区,其他区域大家可以自己定义。

起始地址:读取数据区域的起始地址。

读取数量:读取多少数据。

2.从站返回报文结

既然是主站向从站读取数据,那么从站接收到指令后肯定要把主站所需要的信息返回给主站,因此从站向主站返回数据也必然有一个报文格式,下面我们一起来看看,我自定义的马乐协议的从站返回给主站数据的报文结构。

图2‑1

地址:返回数据的从站的地址,让主站知道这是哪个从站返回来的数据。

功能码:就是主站发送给从站的那个功能码,从站再返回给主站。

返回字节数量:一共给主站返回多少个字节的数据,如果此处为6那么此字节后面是6个字节的数据。

返回数据1~n:从站返回给主站的数据,返回数据数量n是由主站读取数量所决定的。

以上我通过一个我自己定义的协议,向大家介绍了RS485通讯中主站是如何读取从站数据的过程,当然大家如果有兴趣自己也可以定义个张三协议、李四协议自己玩玩,下篇文章我就教大家如何将我上面的自定义协议,变成PLC的程序。

往期优秀文章回顾:

当电工许多年,你知道为啥标准信号就是4-20mA?

delphi tclientsocket接收不到返回数据_RS—485中教你主站发送报文结构、从站返回报文结构?系列11...相关推荐

  1. delphi tclientsocket接收不到返回数据_NB-IOT联网及模块UDP数据传输过程

    一.NB-IOT联网过程 二.NB模块UDP数据传输过程 1)接通电源/重新启动,模块正常启动. 2)AT+NBAND?检查当前的频带信息,确认是否支持模块模型. 3)在3)AT+NBAND=5通信模 ...

  2. ajax返回数据输出成表,javascript代码实例教程-ajax请求返回Json格式数据如何循环输出成table形式...

    小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过. 首先,Ajax请求数据,(用的是Jquery的Ajax) [javascript] $(function(){ ...

  3. 从Activity中返回数据

    从Activity中返回数据 一.简介 这里也就是使用intent方式返回数据. 二.具体步骤 在MainActivity通过一个button访问Activity01页面,然后将Activity01页 ...

  4. stm32串口自定义协议接收一串十六进制数据(将其中两个字节转化为十进制数据)+部分串口基础知识

    文章目录 一.基本储存单元 二.通信协议 (一)并行通信和串行通信 (二)三种工作方式 (三)收发数据同步或异步传输 (四)通信速率 三.串口通信协议 (一)RS232 (二)USB转串口(TTL标准 ...

  5. 接口返回html转换josn,接口返回数据Json格式处理

    有这样一个页面 , 用来显示用户的账户记录数据,并且需要显示每个月的 收入 支出合计 ,在分页的时候涉及到一些问题,需要对返回的Json格式做处理,处理起来比较麻烦,后端返回的Json数据格式形式如下 ...

  6. python接口测试返回数据为字典取值

    引言 接口测试通常需要校验返回数据跟预期结果是否一致,这个时候如果返回数据为字典,那么我们要拿到我们想要的key对应的values时,需巧妙的运用dict.keys().dict.values()和f ...

  7. SpringMVC拦截器HandlerInterceptor拦截后返回数据或视图View

    SpringBoot版本:2.1.6.RELEASE SpringMVC版本:5.1.8.RELEASE SpringMVC拦截器 比如说在SpringMVC Web环境下,需要实现一个权限拦截的功能 ...

  8. php接受go返回数据,Golang: 接收GET和POST参数(示例代码)

    GET 和 POST 是我们最常用的两种请求方式,今天结合前端 axios 请求库来讲一讲,如何在 golang 服务中,正确接收这两种请求的参数信息. 一.搭建一个简单的服务 首先,我们来创建一个最 ...

  9. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...

    酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章) 最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地址和 ...

最新文章

  1. IIS 7启用static JSON文件能POST方法
  2. ArcSDE 9.1 for Oracle10g on Solaris 10
  3. PHP源码设置超出隐藏,怎样隐藏文本的超出部分
  4. C语言长精度除法,高精度除法小数点位数
  5. 隐私设置错误您的连接不是私密连接_用小米手机的,赶紧将这些保护个人隐私的功能设置起来,安全好用...
  6. 命令及串口命令_嵌入式Linux系列第7篇:使用串口
  7. wifi弱口令检查(2)
  8. python messagebox弹窗退出_python 中messagebox使用 做中断调试不错
  9. 计算机 专升硕,2020新西兰专升硕计算机专业可选院校有哪些?新西兰专升硕途径详解!...
  10. HandlerMethodArgumentResolver 参数解析器
  11. React+Webpack+Antd+Babel 兼容低版本浏览器(下)
  12. cmos和ttl_TTL和CMOS电平别傻傻分不清
  13. css如何设置动画,css3如何设置动画?css设置简单动画的方法
  14. java反射机制的优点和缺点
  15. CF140C.New Year Snowmen(优先队列+map)
  16. vscode同时编辑多处文字 批量替换编辑内容
  17. HDU - 5761 Rower Bo (非常详细的解答,有轨迹图)
  18. python数据可视化库 动态的_Python数据可视化:Pandas库,要是一行代码就能完成...
  19. pandas 库简介
  20. 传世私服服务器列表不显示,关于传世私服的人物名字显示设置详解

热门文章

  1. 35岁前把下面十件事做好
  2. java如何添加同名的xml节点_jaxb怎么解析多个同名元素
  3. python画图如何调整图例位置_Python-如何将图例排除在情节之外
  4. java 字符串数组定义_「string数组」string 数组怎么定义 - seo实验室
  5. 2、IDEA以新窗口的形式打开多个项目
  6. TreeMap实现排序
  7. 后端:Java中如何更优雅的处理空值,看完你就懂了!
  8. Memcached的基础梳理
  9. deepin桌面为什么那么卡_deepin因NVIDIA显卡造成开机启动问题:卡在开机logo界面+进入桌面鼠标一直转圈...
  10. jquery扩张函数