OpenHAB2访问MODBUS RTU从站设备

时间:2018-10-06 20:21:34

标签: modbus openhab

在Windows10上运行OpenHab2,我无法让OpenHAB2从串行端口请求保留寄存器数据。在该端口上未看到MODBUS请求。 我安装了NTP绑定(ntp时间)(可以工作),并尝试了Modbus绑定1.12.0,尽管它仅对OpenHAB1有效。

我的OpenHAB2配置是

.sitemap

    sitemap boiler label="My home" 
    {
        Frame label="Date" 
        {
          Text item=Date
          Text item=holding1501 label="Holding1501 out[%.1f °C]"
          Text item=holding1500 label="Holding1500 out[%.1f °C]"
        }
    }

.items

    DateTime Date  "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]"  { channel="ntp:ntp:local:dateTime" }
    Number holding1501 "Holding1501 [%.1f]" <temperature> {channel="modbus:data:localSerial:holding:holding1501:number"}
    Number holding1500 "Holding1500 [%.1f]" <temperature> {channel="modbus:data:localSerial:holding:holding1500:number"}

和.things

    Bridge modbus:serial:localSerial [port="COM6", id=10, baud=19200, stopBits="1", parity="even", dataBits=8, encoding="rtu"]
    {
        Bridge poller holding [ start=1500, length=1, refresh=1000, type="holding" ] 
        {
            Thing data holding1500 [ readStart="1500", readValueType="int16", writeStart="1500", writeValueType="int16", writeType="holding" ]
            Thing data holding15011 [ readStart="1501", readValueType="int16", writeStart="1501", writeValueType="int16", writeType="holding" ] 
        }
        Thing data holding1500 [ readStart="1500", readValueType="int16", writeStart="1500", writeValueType="int16", writeType="holding" ]
        Thing data holding15011 [ readStart="1501", readValueType="int16", writeStart="1501", writeValueType="int16", writeType="holding" ] 
    }

要使MODBUS进入OpenHAB2,我缺少什么。对一些教程或工作示例的引用将不胜感激。

1 个答案:

答案 0 :(得分:0)

最终找到了解决方案:OpenHAB 2.3.0在MODBUS v2.x上不起作用。使用OpenHAB2 2.4.0(快照)时,MODBUS RTU正常工作(使用com0com将OH2桥接到MOD_RSsim)。未能使MODBUS / TCP正常工作,似乎是IP端口连接问题)