📱 手机上看不到完整课程(数字人讲师需要电脑浏览器的 3D 支持)。下面是这节课的图文讲解 + 音频,内容完全一样,手机上也能完整学完。想体验完整课程,用电脑打开这一页即可。
仍然在手机上试试完整课程
三个标志位:在跑 / 在发 / 收到了
0:35三个标志位:执行中 / 发送中 / 接收完成
- 三个标志位,每十个一组加零执行中、加二发送中、加三接收完成
- 前两个一闪而过执行中与发送中都是脉冲,扫描里就灭了
- ★ 接收完成要亲手清置 ON 后一直亮,RCVST 才复位
- 不清,下一包进不来清干净了才收得下下一条
收到灯亮,按释放才灭(SM163)
通讯发出去,怎么知道成没成?信捷给了三个标志位,按串口排、每十个数一组。加零是 Modbus 正在执行,加二是自由格式正在发送,加三是自由格式接收完成。前两个是脉冲,指令一执行就置 ON、一完成马上置 OFF,一闪就过去了。第三个不一样,收到数据它置 ON,然后一直亮着,要你亲手清。看这一屏:先收一包数据,接收完成灯亮;再按一下释放,灯才灭。不清它,下一包就进不来。
★ 换了串口,标志位也换
0:31同一条指令,串口一换,标志位就换地方
- 手册自己就这么提醒以串口 2 为例,用别的口请看附录
- 指令一字没改,灯换了串口改了,要看的标志位就挪地方
- 串口 0 → SM143底址 140 加 0,再加 3
- 串口 3 → SM173底址 140 加 30,再加 3
串口0落SM143,串口3落SM173
标志位是按串口分的,这点最容易栽。手册自己都写着:以串口二为例,相应的通讯标志位是串口二的,要用别的串口请参考附录。意思就是,同一条指令,串口改了,你要看的那盏灯也换地方了。看这一屏:两条一模一样的接收指令,一条走串口零,一条走串口三。串口零的接收完成落在 SM143,串口三的落在 SM173,两盏灯各归各的槽。
结果寄存器:0 就是成了
0:30灯看有无,数看结果:0 就是正确
- 灯看有无,数看结果结果寄存器跟标志位一一对应
- 零就是没错加零 = Modbus 执行结果,0 = 正确
- 读回 756,SD160 = 0数据回来了,结果码也是零
- 判断通没通就看它程序里比一下是不是零
D20 = 756,SD160 = 0 就是成了
灯只能告诉你有没有,具体什么结果要看寄存器。每个串口都有一组结果寄存器,跟标志位一一对应,加零那一格就是 Modbus 指令的执行结果。这里的规矩很简单:零就是正确,没错。看这一屏,从一号设备读三个寄存器回来,读数条上 D20 出来七百五十六;再看结果寄存器,SD160 是零。这一趟就是成了。以后程序里判断通没通,就看它是不是零。
★ 对面没接线怎么办:101 和异常从站号
0:31对面没接线:101 超时,还说清是哪一台
- 最常遇到的:对面没接上线没接、设备没上电,都算
- 接收超时给 101读不到就是读不到,别当成读到零
- ★ 还说清是哪一台异常从站号那一格直接出站号
- 另两种:182 和 402站号 > 254 报 182;个数给多了报 402
站号6没接线:SD160跳101,SD165出6
最常遇到的故障,是对面那台设备根本没接上。这种情况下接收会超时,结果寄存器给一百零一,另一格还会告诉你是哪一号设备没理你。看这一屏,第一条读一号设备,数据回来了;第二条改读六号,六号不在线上,数据没搬回来,结果寄存器跳一百零一,异常从站号出六。另外两种错也要认:站号超过二百五十四报一百八十二,个数要多了报四百零二。
收到了几个字节:SD144
0:31这一包收进来几个字节:SD144
- 一包收进来几个字节自由格式必看的第三个量
- 按字节算,不含首尾符起始符、终止符都不算
- 发 4 个字节 → 那格出 4两个寄存器正好四个字节
- 知道长度才切得开程序靠它判断一包到哪儿为止
发 1111 出去、收回来,字节数出 4
自由格式那头,还有个数是必须知道的:这一包到底收进来几个字节。手册讲得很清楚,这个数按字节算,不包含起始符和终止符,它就放在接收完成标志后面那一格。看这一屏,先把 D50 里的 1111 发出去,四个字节,正好两个寄存器;再收回来,接收字节数那格出四。知道收了几个字节,程序才知道这一包数据到哪儿为止,下一包才好接着切。
预告:不会 Modbus 的设备怎么聊
0:22不会 Modbus 的设备,下一课用自由格式
- Modbus 这条线走通了认口、对地址、看标志位,齐了
- 还有设备不认 Modbus只肯按厂家自己的格式收发
- 这就得用自由格式自己拼报文、自己管收发
- 下一课讲怎么跟它说不会说 Modbus 的设备怎么聊
不会 Modbus 的设备,下一课用自由格式聊
到这里,Modbus 这条线基本走通了:认了口、对了地址、会看标志位和结果码。可现场还有一类设备,它不支持 Modbus,只肯按厂家自己的格式收发一串数。这时候就得用自由格式,自己拼报文、自己管收发。下一课我们就讲这个:不会讲 Modbus 的设备,怎么跟它说上话。