Logic Machine Forum
Vigilohm JSON Modbus file - Printable Version

+- Logic Machine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10)
+--- Thread: Vigilohm JSON Modbus file (/showthread.php?tid=2556)



Vigilohm JSON Modbus file - SigmaTec - 31.03.2020

Hi all,

Is there anyone who could share a JSON file for LM, allowing to read/write the Modbus registers of a Vigiohm FL12H from Schneider Electric? 

Thank you in advance for your help and above all, take care of yourself.


RE: Vigilohm JSON Modbus file - Daniel - 31.03.2020

Are you sure the name is correct? Google didn't found anything.


RE: Vigilohm JSON Modbus file - SigmaTec - 31.03.2020

Hi Daniel,

it's Vigilohm IFL12H, an insulation fault locator, made by Schneider Electric


RE: Vigilohm JSON Modbus file - SigmaTec - 01.04.2020

Hi Daniel,

I can give to you the IFL12H Modbus registers table if necessary...

Have a good day.


RE: Vigilohm JSON Modbus file - Daniel - 01.04.2020

We can help you to start but you will have to finish it.


RE: Vigilohm JSON Modbus file - SigmaTec - 01.04.2020

Perfect Daniel, it will be a good help to understand !

Here are Modbus registers definitions :
http://www.sigma-tec.fr/LM-Daniel/tables%20modbus%20IFL12H.pdf

If you could give me at least one JSON structure for each registry format, that would be fine. I think I'll get there next.

Thank you very much in advance.
Take care of yourself.


RE: Vigilohm JSON Modbus file - Daniel - 01.04.2020

Can you get it in English?


RE: Vigilohm JSON Modbus file - SigmaTec - 01.04.2020

Yes Daniel, excuse me please...

Here are Modbus registers english definitions :
http://www.sigma-tec.fr/LM-Daniel/tables%20modbus%20IFL12H%20-%20en.pdf


RE: Vigilohm JSON Modbus file - Daniel - 01.04.2020

Can you just try to use RTU read test and read register 100 like this
   

If this won't work try register 101.


RE: Vigilohm JSON Modbus file - SigmaTec - 01.04.2020

Ok Daniel.

read result is 17032 for adress 100
read result is 32768 for adress 101


RE: Vigilohm JSON Modbus file - Daniel - 01.04.2020

Ok perfect we need to shift registers by -1

Try starting with this
For bits you have to add each bit as separate line and add bitmask
Code:
bit 0 = 0x1
bit 1 = 0x2
bit 2 = 0x4
bit 3 = 0x8
bit 4 = 0x10
bit 5 = 0x20
bit 6 = 0x40
bit 7 = 0x80
bit 8 = 0x100
bit 9 = 0x200
bit A = 0x400
bit B = 0x800
bit C = 0x1000
bit D = 0x2000
bit E = 0x4000
bit F = 0x8000



RE: Vigilohm JSON Modbus file - SigmaTec - 01.04.2020

It works perfectly ! I think I understood the principle.
I completed the json (see linked file), a lot of registers work fine, but...

1. Can you please validate the sections in yellow?

3. I don't get correct results for the 3 "date&time" sections in red (end of json): why?

3. How to process the UTF8 (ex. 160 ... 179) and the UF8 (ex. 180 ... 199) from the tables ---. Pdf file?

All the best from France.
Thank you again for your precious help.

http://www.sigma-tec.fr/LM-Daniel/ST-IFL12H_updated.pdf


RE: Vigilohm JSON Modbus file - admin - 02.04.2020

2. Profile type field should be register instead of inputregister
3. String values are not supported by modbus mapper. It can be read via a script, but do you really need these values?


RE: Vigilohm JSON Modbus file - SigmaTec - 02.04.2020

Hi Daniel,

2. I tried yesterday with both formats: same result.
3. Yes, I need theses values to work with the exact product internal date&time for my process
Have you got an Lua script example for this ?

Thank's in advance.


RE: Vigilohm JSON Modbus file - Daniel - 02.04.2020

Hi
2. Looks OK, I would contact SE and ask them for function they use to read this value.
3. You already have product identification in register 100 only in numeric format. Product identifier 17032 = IFL12H

If you really need script for this then try this.
Code:
mbproxy = require('mbproxy')
mb = mbproxy.new()
mb:setslave(1)

function readstring(mb, address, length)
  local data = { mb:readregisters(address, length) }
  local bytes = {}

  for _, reg in ipairs(data) do
    if type(reg) == 'number' then
      -- high 8 bits
      local b1 = bit.band(bit.rshift(reg, 8), 0xFF)
      if b1 > 0 then
        bytes[ #bytes + 1 ] = b1
      end

      -- low 8 bits
      local b2 = bit.band(reg, 0xFF)
      if b2 > 0 then
        bytes[ #bytes + 1 ] = b2
      end
    end
  end

  -- convert table of byte values to string
  return string.char(unpack(bytes))
end

result = readstring(mb, 160, 9)
log(result)



RE: Vigilohm JSON Modbus file - SigmaTec - 02.04.2020

It works very fine ! Thank you very much Daniel.
Best regards from France.