文章撰写不易,各位看官慢慢欣赏,看完记得给我点赞,要点强赞哦,先谢谢了!抱拳~
看过第一集的伙伴们应该对MODBUS的功能码有了大概的了解。只要遵循每个功能码的发送帧规格,那么就一定能跟支持MODBUS协议的设备通讯上。
发送帧规格我们了解了,那么我们到底还要了解哪些东西才能真正意义上进行通讯呢?
首先,我们要了解MODBUS硬件上的知识(线连接对了,才能通讯上),然后还要了解MODBUS通讯格式(就像对讲机,频道频率对上了,才能进行通话),最后就是运用PLC/上位机的通讯指令来完成最后的临门一脚。
好了,把思路大概理了一遍,那么我们具体看看是如何操作的。
第一:硬件知识
MODBUS协议主要是运行在RS485这条大马路上的,它是交通指挥员(RS232也可以支持MODBUS协议,但是传输距离没有RS485来的远,因此现在普遍都采用RS485接口来承载MODBUS协议)。RS485是由两条线组成,通过这两条线之间的电压差来传递信号。而MODBUS协议就是来管理这些信号的。因此,由于MODBUS协议是跑在RS485硬件接口上的,因此就决定了整个通讯方式是半双工通讯(同一时间内,要么发,要么收,不能同时收发,就像对讲机那样,等对方说OVER了,我们这边才能讲话),所以,在MODBUS通讯中,存在主从之分。
在MODBUS通讯中,可以一主多从,后面的从站进行手拉手的方式进行连接接线。但是如果距离一长,两线直接的信号就会衰减,因此需要增加终端电阻来增加信号强度。
下面就把三菱FX系列PLC的接线图展示出来:
首先是拓扑图:
它们的连接方式就是手拉手连接,或者称并行连接。
接着是具体的端子连接方式:
这里的从站都是三菱MODBUS485模块,实际应用中当然也可以是其他支持485通讯的仪器仪表等。
我们在实际工业现场,都会看到在仪器仪表或者PLC中,都能看到A,B端口,或485+,485-,这些端口就表示这些仪器仪表是支持485通讯的。
在下图三菱的连接方式中,它是4个端口,这是标准的RS422接口,当然了,这个RS422接口同样也适用于RS485,我们只需要像下图这样,将SDA和RDA短接后变成485+(或A),将SDB和RDB短接后变成485-(或B),这样就可以连接到其他设备上了。
与其他支持485通讯的设备的连接
最后是接地措施:有条件的请按照下面方法接地。这样能最大程度避免干扰的影响。
有时候采取单端接地,有时候采取双端接地,都要结合现场实际情况。
第二、通讯格式的讲解
因为硬件采用的是串行通讯接口,且属于半双工异步通讯,因此通讯格式就要遵循异步串行通讯的帧格式:波特率,数据位,奇偶校验位,停止位。
由于我们这里讲的MODBUS RTU模式,因此“数据位”固定为8位。
我们以FX3U-32MT+485BD板+485ADP-MB组合为例,如图所示:
FX3U只能扩展出2个通道。这里特别说明下,如果没有485BD板,那么此时的485ADP-MB就变成了通道1。
由于我们要验证功能码报文,所以拿串口调试助手当主站,plc当从站。而且由于485BD板不能当从站,因此我们要通过485ADP-MB来进行测试。
TIPS:
PLC其实是一个最好的从站设备,它有MODBUS所有的存储区特性。
那么言归正传,第一步就是对PLC的通讯格式进行设定,我们通过特殊寄存器来设定。下面就是两个通道的特殊寄存器:
下面是特殊继电器:
下面是通信格式的具体设置表格:
由于我们要拿通道2的485ADP-MB来进行测试,所以我们要用到以下特殊寄存器:
D8420:通信格式:我们按照如下通信格式进行设置:数据位=8,奇偶校验=偶校验,停止位=1,波特率=9600,RS485连接。那么按照通信格式设置表格它的二进制为0001 0000 1000 0111,转换为16进制值是H1087
D8421:协议:我们按照如下协议设置:MODBUS协议,MODBUS从站,RTU模式。那么它的16进制值为H11
D8434:从站本站号:设置为1。那么它的16进制值为H1
将上面三个的特殊寄存器设置完后,我们要用M8411特殊辅助寄存器来触发将它们写入到PLC中。它是在用到MODBUS通信时,用来写入通信设定的。如果是RS/RS2指令,就可以用M8002来写入,没有特殊要求。
到此,FX3U的485ADP-MB从站就设置完毕了,至于主站,我们后面会讲到,敬请期待。然后我们将程序下载进去后,一定要断电重启让设定生效!
第三集我会专门录制视频,将接线,通信设置以及每个功能码的收发帧给大家进行一一演示。
只有了解了功能码的收发报文,我们才能进行主站控制。才能解析返回回来的报文,从而提取有用的数据。
敬请期待
谢谢
联系客服