directly query a PLC in Modbus TCP with Open Historian

Hello, I would like to know if it’s possible to directly query a Modbus TCP PLC (read holding register code 03) with OpenHistorian.
Installation on Windows Server 2022
Thank you for your help
Sincerely,

Hello,
After much struggle, the PLC data acquisition is working.
I would like to thank you for your nonexistent help.

I still notice a problem with negative INT values.
Here is a screenshot of the animation table from my PLC and OpenHistorian.


An error occurred: Sorry, new users can only put one embedded media item in a post.

I also noticed a problem with the scale in the web server:
For example, for a voltage of 230.54V in OpenHistorian, the web server displays 2.3054V.

My apologies that no one responded to you sooner, we answer as best we can as we have time. In most cases, people can only respond to things they understand, so your question may have not been known to the community of people who respond to these questions.

You can use the openHistorian manager (UI app, not web) and navigate to Metadata > Measurements to find the measurement needing scaling, then apply a multipler.

Thanks,
Ritchie

Hello,
Thank you for your reply.
I added the value: Adder=-65536, but the problem arises when the value becomes positive again.
Is it possible to do:
IF data<0
THEN Adder:=-65536
ELSE
Adder:=0
END_IF
or another value depending on the use?

Monitoring/Graph Measurements: Doesn’t it display negative values? Is this a known issue?
I’ll have to investigate in Grafana for the users because openHistorian Web Manager doesn’t retrieve the correct values.
At the moment, I can’t read the data in Grafana.I have the tags but not the values (I’m looking for it…)
Thank you for your help.
Sincerely,
Philippe

You can’t do a conditional adder. You’d have to create a custom filter adapter. Or you can fix ModbusPoller, which doesn’t appear to support Int16.

I can convert an INT16 to a UINT16 in my PLC… I’m testing it

Can you help me connect Grafana to Hopen Historian? Because I can’t retrieve the data.
I created several instances in Manage Historian Instance to do different retentions.
I have the tags in the first one but no data (DATA_1_day).
I have nothing for the others.
Thank you.

-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\1 jour; DataChannel={port=38402; interface=::0}; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_1_jour; MaximumArchiveDays=1; WorkingDirectory=C:\Program Files\openHistorian\collecteur\1 jour
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\2 jour; DataChannel={port=38403; interface=::0}; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_2_jour; MaximumArchiveDays=2; WorkingDirectory=C:\Program Files\openHistorian\collecteur\2 jour
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\1 semaine; DataChannel={port=38404; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_1_semaine; MaximumArchiveDays=7; WorkingDirectory=C:\Program Files\openHistorian\collecteur\1 semaine
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\2 semaine; DataChannel={port=38405; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_2_semaine; MaximumArchiveDays=14; WorkingDirectory=C:\Program Files\openHistorian\collecteur\2 semaine
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\1 moi; DataChannel={port=38406; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_1_moi; MaximumArchiveDays=31; WorkingDirectory=C:\Program Files\openHistorian\collecteur\1 moi
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\2 moi; DataChannel={port=38407; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_2_moi; MaximumArchiveDays=62; WorkingDirectory=C:\Program Files\openHistorian\collecteur\2 moi
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\4 moi; DataChannel={port=38408; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_4_moi; MaximumArchiveDays=124; WorkingDirectory=C:\Program Files\openHistorian\collecteur\4 moi
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\6 moi; DataChannel={port=38409; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_6_moi; MaximumArchiveDays=62; WorkingDirectory=C:\Program Files\openHistorian\collecteur\6 moi
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\1 an; DataChannel={port=38410; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_1_an; MaximumArchiveDays=365; WorkingDirectory=C:\Program Files\openHistorian\collecteur\1 an
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\2 an; DataChannel={port=38411; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_2_an; MaximumArchiveDays=730; WorkingDirectory=C:\Program Files\openHistorian\collecteur\2 an
-ArchiveCurtailmentInterval=3600; ArchiveDirectories=D:\Historian\archive\no limit; DataChannel={port=38412; interface=::0}; DesiredRemainingSpace=1; DesiredRemainingSpace=1; DirectoryNamingMode=Year; InstanceName=Data_no_limit; WorkingDirectory=C:\Program Files\openHistorian\collecteur\no limit