📱 手机上看不到完整课程(数字人讲师需要电脑浏览器的 3D 支持)。下面是这节课的图文讲解 + 音频,内容完全一样,手机上也能完整学完。想体验完整课程,用电脑打开这一页即可。
仍然在手机上试试完整课程
为什么还要自由格式:仪表只认自己的协议
0:36设备不认 Modbus,只认自己那套字节
- 一半设备不认 Modbus现场很多仪表只走厂家协议
- 只认厂家自己那套字节一个字节一个字节往外发
- 四个字符:冒号 R T 回车冒号开始、R 读、T 温度、回车结束
- 查表得 3A 52 54 0DASCII 码值
四个字符装进 D0~D3:3A 52 54 0D
前面几课讲的都是 Modbus。可现场还有一半设备不认 Modbus,它们只说厂家自己那套字节协议。例如一台温控仪表,读温度要发四个字符:冒号、R、T、回车。冒号是数据开始,R 是读,T 是温度,回车表示这一帧结束。查 ASCII 表,这四个字符的码值是 3A、52、54、0D。Modbus 翻不出这四个字符,只能自己一个字节一个字节往外发。看这一屏:四条传送,把四个码值装进四格。
一条 SEND,把数据块推出去
0:29SEND:首地址、字节数、串口,三样
- 三样:首地址、字节数、串口本地数据从哪一格开始,发几个字节,走哪个口
- 从 D0 起发四个字节走串口二
- ★ 第三个数是字节数不是寄存器个数,最容易弄错
- 结果格出零就是发成了发送结果按串口分槽
从 D0 起发 4 字节,走串口 2
数据装好了,一条发送指令就把它推出去。SEND 后面跟三样东西:本地数据从哪一格开始、发多少个字节、走哪个串口。看这一屏:从 D0 开始发四个字节,走串口二。要特别留意第三个数不是寄存器个数,是字节数,这是最容易弄错的地方,下一段细讲。发完,结果寄存器按串口分槽记一笔,出零就表示这次发送成功了。
★ 字节数和寄存器个数,不是一回事
0:29一个寄存器两字节:字节数 ≠ 格子数
- 一个寄存器装两个字节四个字节两格、八个字节四格
- 十六位缓冲:先低后高高低字节都发,低字节在前
- ★ 八位缓冲只发低字节四个字节就要占四格
- 算错就是半截数据字节数一样,格子差一倍
8 个字节 = 4 格(每格 2 字节)
这里必须说清楚。一个寄存器装两个字节,所以四个字节就是两格,八个字节是四格。手册把这叫十六位缓冲,发送的时候先发低字节、再发高字节。还有一种是八位缓冲,只发寄存器低字节,四个字节就要占四格。看这一屏:八个字节从 D0 开始,四格一起走。两种模式下字节数一样,占的格子差一倍。算错了,发出去的就是半截数据。
收回来:RCV 之后灯亮
0:30RCV:收到哪一格、收几个字节、哪个口
- RCV 也是三样收到哪一格、收多少个字节、哪个串口
- 收完标志置 ON,一直亮要手动清
- 加三那一档,按串口分槽上一课讲过的接收完成位
- 数据回到 D10、D11字节数出四
收回来 D10/D11,灯亮、字节数出 4
发出去以后就得收。接收用 RCV,后面也是三样:收到的数据从哪一格开始放、收多少个字节、哪个串口。收完,接收完成标志置 ON,然后一直亮着,要你亲手清。这个标志上一课刚讲过,就是加三那一档,按串口分槽,收了几格数据也存在结果区。看这一屏:先发后收,数据回到 D10 和 D11,灯亮、字节数出四。
★ 照手册的例子:跟温控仪表说上话
0:34两格装四个字符:3A 52 54 0D
- 手册的现成例子温控仪表要四个字符
- 低字节放冒号、高字节放 R第二格放 T 和回车
- 因为先低后高摊开正好 3A 52 54 0D
- 一条 SEND 一条 RCV不认 Modbus 的仪表就是这么聊
两格装四个字符:3A 52 54 0D
手册里有个现成的例子。温控仪表要那四个字符,我们把它们装进两格:第一格低字节放冒号、高字节放 R,第二格低字节放 T、高字节放回车。为什么要这么摆?因为发送时先低字节后高字节,这么摆摊开正好是 3A、52、54、0D 四个字节。摆好以后一条 SEND 把四个字节发出去,一条 RCV 把仪表回的数值收回来,这就是跟一台不认 Modbus 的仪表打交道的全过程。
预告:网线也能通讯(以太网)
0:24串口讲完了,下一课上网线
- 串口这条线齐了认口、配参数、Modbus、自由格式
- 还有一半设备走网线网口是一种新的通讯口
- 怎么开一条连接打开、收发、关闭
- 下一课讲以太网网口通讯
下一课:网线也能通讯(以太网)
到这里,串口这条线上的活基本齐了:先认口、把参数配对,再用 Modbus 读写,设备不认 Modbus 就上自由格式,自己拼报文。可现场还有一半设备是走网线的。网口怎么配、怎么用一条指令把连接打开、发出去的报文又该长什么样,这些是下一课的内容。下一课我们就讲以太网。