Cesar
June 17, 2021, 8:59pm
1
I have upgraded the openHistorian from version 2.7 to 2.8 (and 2.8night).
I have connections with 2 devices:
1 SEL RTAC using DNP3
1 SEL 351S PMU
Both devices were running normally and receiving data before the upgrade.
I have installed the upgrade V2.8 and upgraded my previous database schema to the latest version.
All the configuration files are the same ( comm.xml, mapping.xml, etc)
After the update, both of the devices shows as offline in the openHistorian Manager → graph real time measurements. The devices are responding to ping command and I have tested the pmu with the connection tester.
Attached is the picture of the remote system console:
I have try to use the nightly version as well with no success.
Does anybody have any idea what could be the problem?
Try changing protocol to IEEE C37.118-2005, the 2011 protocol now attempts config frame 3 request by default.
Cesar
June 17, 2021, 9:13pm
3
Thanks Ritchie!
The PMU is online again after changing from IEEE C37.118-2011 to IEEE C37.118-2005.
Any idea what could be happening with the DNP3 connection?
I have used the command list in the Remote System Console, and I don’t see the RTAC_DNP3_SERVER listed:
ps: inputs ID 15, 16, 17 are not been used.
The DNP3 adapter changed with the current release to use the latest OpenDNP3 library.
You will need to run the DNP3ConfigGenerator.exe
from the install folder, this will extract the required openSSL DLL’s now needed by the latest version of the OpenDNP3 library, i.e., libcrypto-1_1-x64.dll
and libssl-1_1-x64.dll
.
Also, the config format for the device and mapping files has changed a bit for the OpenDNP3 library, see the following:
<?xml version="1.0" encoding="utf-8"?>
<MasterConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<client>
<address>127.0.0.1</address>
<port>20000</port>
<minRetryMs>5000</minRetryMs>
<maxRetryMs>60000</maxRetryMs>
<reconnectDelayMs>2000</reconnectDelayMs>
<level>15</level>
</client>
<master>
<master>
<timeSyncMode>None</timeSyncMode>
<disableUnsolOnStartup>true</disableUnsolOnStartup>
<unsolClassMask>
<Class0>false</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</unsolClassMask>
<startupIntegrityClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</startupIntegrityClassMask>
<integrityOnEventOverflowIIN>true</integrityOnEventOverflowIIN>
<eventScanOnEventsAvailableClassMask>
<Class0>false</Class0>
<Class1>false</Class1>
<Class2>false</Class2>
<Class3>false</Class3>
</eventScanOnEventsAvailableClassMask>
<controlQualifierMode>always_two_bytes</controlQualifierMode>
<TaskResponseTimeoutMilliseconds>5000</TaskResponseTimeoutMilliseconds>
<TaskRetryPeriodMilliseconds>5000</TaskRetryPeriodMilliseconds>
<TaskStartTimeoutMilliseconds>10000</TaskStartTimeoutMilliseconds>
</master>
<link>
<isMaster>true</isMaster>
<localAddr>1</localAddr>
<remoteAddr>1024</remoteAddr>
<ResponeTimeoutMilliseconds>1000</ResponeTimeoutMilliseconds>
<KeepAliveTimeoutMilliseconds>60000</KeepAliveTimeoutMilliseconds>
</link>
</master>
</MasterConfiguration>
<?xml version="1.0" encoding="Windows-1252"?>
<MeasurementMap xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<binaryMap>
<Mapping>
<tsfId>0</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</binaryMap>
<doubleBitBinaryMap>
<Mapping>
<tsfId>1</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</doubleBitBinaryMap>
<analogMap>
<Mapping>
<tsfId>2</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</analogMap>
<counterMap>
<Mapping>
<tsfId>3</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</counterMap>
<frozenCounterMap>
<Mapping>
<tsfId>4</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</frozenCounterMap>
<controlStatusMap>
<Mapping>
<tsfId>5</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</controlStatusMap>
<setpointStatusMap>
<Mapping>
<tsfId>6</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</setpointStatusMap>
</MeasurementMap>
Cesar
June 19, 2021, 1:20am
5
Hi Ritchie, thanks again for your reppy!
I have followed the instructions:
Executed the DNP3ConfigGenerator.exe
(both files appeared in the folder libcrypto-1_1-x64.dll
and libssl-1_1-x64.dll
)
Changed the format of the config
and mapping
file to the adapt to the new version of the library.
In the config file, the only think that I have changed was the IP address. The port, local address, and remote address are the same that I am using. The other configurations I kept as default.
In the mapping file, the only change was the first 2 lines I think.
After that, I have tried to restart the service and disable and enable the inputs, but the DNP3 communication does not receive the signals. See below the error I am getting now:
Any other thoughts?
Below you will find an example (IP obfuscated) that is working for me. Based on your “timeout waiting for response” messages", I would be tempted to say it’s firewall related. Perhaps you should make sure openHistorian.exe
is added as an exception to the local Windows firewall - could be the exception was there for the older version, but not the newer one.
Thanks,
Ritchie
<?xml version="1.0" encoding="utf-8"?>
<MasterConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<client>
<address>192.168.10.12</address>
<port>20000</port>
<minRetryMs>5000</minRetryMs>
<maxRetryMs>60000</maxRetryMs>
<reconnectDelayMs>2000</reconnectDelayMs>
<level>2</level>
</client>
<master>
<master>
<timeSyncMode>None</timeSyncMode>
<disableUnsolOnStartup>true</disableUnsolOnStartup>
<unsolClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</unsolClassMask>
<startupIntegrityClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</startupIntegrityClassMask>
<integrityOnEventOverflowIIN>true</integrityOnEventOverflowIIN>
<eventScanOnEventsAvailableClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</eventScanOnEventsAvailableClassMask>
<controlQualifierMode>always_two_bytes</controlQualifierMode>
<TaskResponseTimeoutMilliseconds>5000</TaskResponseTimeoutMilliseconds>
<TaskRetryPeriodMilliseconds>5000</TaskRetryPeriodMilliseconds>
<TaskStartTimeoutMilliseconds>10000</TaskStartTimeoutMilliseconds>
</master>
<link>
<isMaster>true</isMaster>
<localAddr>1</localAddr>
<remoteAddr>1</remoteAddr>
<ResponeTimeoutMilliseconds>1000</ResponeTimeoutMilliseconds>
<KeepAliveTimeoutMilliseconds>60000</KeepAliveTimeoutMilliseconds>
</link>
</master>
</MasterConfiguration>
<?xml version="1.0" encoding="Windows-1252"?>
<MeasurementMap xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<analogMap>
<Mapping info="Vll ab">
<tsfId>84</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
<Mapping info="Vll bc">
<tsfId>85</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>1</dnpIndex>
</Mapping>
<Mapping info="Vll ca">
<tsfId>86</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>2</dnpIndex>
</Mapping>
<Mapping info="I a">
<tsfId>87</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>3</dnpIndex>
</Mapping>
<Mapping info="I b">
<tsfId>88</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>4</dnpIndex>
</Mapping>
<Mapping info="I c">
<tsfId>89</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>5</dnpIndex>
</Mapping>
<Mapping info="kW tot">
<tsfId>90</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>6</dnpIndex>
</Mapping>
<Mapping info="kVAR tot">
<tsfId>91</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>7</dnpIndex>
</Mapping>
<Mapping info="Freq">
<tsfId>92</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>8</dnpIndex>
</Mapping>
</analogMap>
<!--
<binaryMap>
<Mapping>
<tsfId>0</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</binaryMap>
<doubleBitBinaryMap>
<Mapping>
<tsfId>1</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</doubleBitBinaryMap>
<counterMap>
<Mapping>
<tsfId>3</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</counterMap>
<frozenCounterMap>
<Mapping>
<tsfId>4</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</frozenCounterMap>
<controlStatusMap>
<Mapping>
<tsfId>5</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</controlStatusMap>
<setpointStatusMap>
<Mapping>
<tsfId>6</tsfId>
<tsfSource>PPA</tsfSource>
<dnpIndex>0</dnpIndex>
</Mapping>
</setpointStatusMap>
-->
</MeasurementMap>
Cesar
June 21, 2021, 9:47pm
7
Hi Ritchie,
I have tried to add the openHistorian.exe to the inbound and outbound list, and to disable the firewall. None of the options worked. The system was working before the update and after the update the pmu connection is working fine. It seems that is only affecting the DNP3 connection.
Here is the current configuration. I have reduced the number of points of the mapping.xml, once I have too many points. IP address is different as well.
<?xml version="1.0" encoding="utf-8"?>
<MasterConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<client>
<address>192.168.1.1</address>
<port>20000</port>
<minRetryMs>5000</minRetryMs>
<maxRetryMs>60000</maxRetryMs>
<reconnectDelayMs>2000</reconnectDelayMs>
<level>2</level>
</client>
<master>
<master>
<timeSyncMode>None</timeSyncMode>
<disableUnsolOnStartup>true</disableUnsolOnStartup>
<unsolClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</unsolClassMask>
<startupIntegrityClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</startupIntegrityClassMask>
<integrityOnEventOverflowIIN>true</integrityOnEventOverflowIIN>
<eventScanOnEventsAvailableClassMask>
<Class0>true</Class0>
<Class1>true</Class1>
<Class2>true</Class2>
<Class3>true</Class3>
</eventScanOnEventsAvailableClassMask>
<controlQualifierMode>always_two_bytes</controlQualifierMode>
<TaskResponseTimeoutMilliseconds>5000</TaskResponseTimeoutMilliseconds>
<TaskRetryPeriodMilliseconds>5000</TaskRetryPeriodMilliseconds>
<TaskStartTimeoutMilliseconds>10000</TaskStartTimeoutMilliseconds>
</master>
<link>
<isMaster>true</isMaster>
<localAddr>1</localAddr>
<remoteAddr>1024</remoteAddr>
<ResponeTimeoutMilliseconds>1000</ResponeTimeoutMilliseconds>
<KeepAliveTimeoutMilliseconds>60000</KeepAliveTimeoutMilliseconds>
</link>
</master>
</MasterConfiguration>
<?xml version="1.0" encoding="Windows-1252"?>
<MeasurementMap xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<analogMap>
<Mapping>
<tsfId>632</tsfId>
<tsfSource>RTAC</tsfSource>
<dnpIndex>382</dnpIndex>
</Mapping>
<Mapping>
<tsfId>633</tsfId>
<tsfSource>RTAC</tsfSource>
<dnpIndex>383</dnpIndex>
</Mapping>
<Mapping>
<tsfId>634</tsfId>
<tsfSource>RTAC</tsfSource>
<dnpIndex>384</dnpIndex>
</Mapping>
</analogMap>
</MeasurementMap>
CommsFilePath=comms.xml; MappingFilePath=mapping2.xml;port=20000; maxSendQueueSize=-1; server=192.168.1.1; islistener=false; transportprotocol=tcp
Input
:
Remote System Console
:
The connection with the RTAC is up, but I am still receiving 0 measurements. I have not changed anything related to the points IDs in the database ( not on purpose at least).
Any other ideas?
Is it possible that the mapped measurements do not exist after upgrade, or perhaps have have changed?
I would suspect measurements to be marked as PPA
as source if they are being archived.
Cesar
June 23, 2021, 8:10am
9
The time I have set up the openHistorian, I have created another instance called RTAC, once my signals were Modbus/DNP3 and not Phasors (PPA). Later I end up setting up all the points in the RTAC and not using the PPA instance.
I have checked the measurements and they are registered in the RTAC instance in the manager.
Is there a command to display more information or any log that i can check?