Uploaded image for project: 'Apache PLC4X'
  1. Apache PLC4X
  2. PLC4X-156

The unitId (device id/slave id) is hardcoded to 0 which is the broadcast id in modbus

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • None
    • 0.6.0
    • Driver-Modbus

    Description

      Trying to use the modbus driver, it is always trying to read and write from the slave 0 in the modbus slave/server. This identifier is the one used for broadcasting reads and writes to all the slaves in the modbus network. In modbus TCP this identifier is not needed, but it is needed to support legacy devices.

      And testing with with some modbus serves like:

      https://pypi.org/project/pyModSlave

      and in the second case, if you try to read a register:

      2019-11-27 08:29:29,837 ERROR modbus.handle_request Thread-1 invalid request: Function 3 can not be broadcasted

      This unitId should be a param but if it must be hardcoded, changing it to 1 is a fix. But in some cases, you could need a

      specific id to connect to a device. For example, for the XY-MD02 sensor connected via serial to a Modbus TCP client, in order to read the values from the sensor you need to provide the right device id (in this case is also 1, but it could change).

      The unitId is defined in:

      https://github.com/apache/plc4x/blob/develop/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocol.java#L92

      I have tested in 0.4.0 release that changing the unitId to 1 fixes the problem with modbus servers. I have attached the file with this minor modification.

      I can send a PR if you find the fix useful.

      Thanks!

       

       

      Attachments

        1. Plc4XModbusProtocol.java
          30 kB
          Alvaro del Castillo

        Activity

          People

            cdutz Christofer Dutz
            acs Alvaro del Castillo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: