关注官方微信

EN

EN.

645仪表的多主机访问

发布时间:2019-09-03 作者:上海卓岚 浏览量:8156

645 97规约是电表使用的国标通讯协议,使用非常广泛。一般通过RS485总线读当前功率、当前电压、本月电量等数据。但是由于RS485总线原理的限制,不能有两台主机同时去读电表。但是在能源监控领域,经常需要有多个计算机、显示屏获取电表的数据。

普通的“透传”的RS485转TCP/IP的产品在这里无法使用,这里就介绍一下卓岚的ZLAN5143的多主机功能如何解决这个问题。

ZLAN5143的多主机功能

如图:ZLAN5143的多主机功能会调度RS485的总线,当主机1和主机2同时需要使用总线的时候ZLAN5143则会担任“裁判”的角色,禁止同时抢占,并合理调度总线的使用时间,从而起到“多主机”顺利同时访问的效果。多主机还可以让主机1查询的返回数据不会发送到主机2,引起数据干扰。

需要指出的是Modbus网关一般具有自动查询和存储寄存器内容的功能,从而解决多主机访问的冲突问题,但是此类Modbus网关对于非Modbus RTU的RS485协议(例如645协议)则无能为力。但是5143则可以同样可以适用于非Modbus RTU类型的多主机实现。

首先我们测试一下不启用多主机,而是普通“透传”方式下的情况:

我们使用两个SocketDlgTest工具连接上5143,不断同时发送645的协议指令68 50 00 00 00 00 00 68 01 02 46 C7 30 16,如图所示本来为:68 50 00 00 00 00 00 68 81 06 46 c7 53 35 34 33 a3 16的指令冲突后变为68 50 00 00 00 00 00 68 81 06 c6。也就是出现丢失和误码。另外只有一个SocketDlgTest发送时,在数据返回的时候两个SocketDlgTest窗口都收到数据,这样也不符合要求。应该是不发送数据的窗口不收到任何返回。

现在开启“多主机功能”,配置5143时保持“转化协议”为“无”,点击“更多高级选项…”,设置如下。

由于这里串口为1200bps设置超时为1000。返回“设备设置”后点击“修改设置”。此后再进行以上的实验,发现无论如何同时发送,都会得到正确的数据。并且不发送的SocketDlgTest窗口不会收到数据。真正实现了防冲突和独立收发通讯。另外结合ZLvricom的虚拟串口,可以在两个主机上使用原来的串口软件进行通讯。

总之,“多主机功能”为各类非Modbus RTU的RS485仪表的多主机访问提供了一种有效的方案。