
Gurux DLMS Conformance Test Tool
Purpose of Gurux DLMS Conformance Test Tool is that you can verify is your meter really DLMS compatible. There are a lot of new meter manufacturers who claims that their meters are supporting DLMS protocol. This has been a problem, because there is no tester for meter byers who wants to compare meters. Manufacturer can say that meters have passes DLMS Certificate tests. Using this tool you can verify is it true. In default It runs basic test that verifies is your supporting basic DLMS functionality. You can read more from this from DLMS Breen Book: 4.1.8.4 Mandatory contents of a COSEM logical device. It also reads all data from the meter and verifies that data structures are correct. Gurux Conformance Test Tool can't check is content of data correct. Tool can't know is value of active or reactive energy correct. As a result Gurux DLMS Conformance Test Tool will generate a report.Note! All data is read from the meter and this will take some time.
Content of the tests
List of test cases can be found here.Stating Conformance Test
First you need to add device(s) to GXDLMSDirector. After you have done this you can start Conformance Test. Make sure that Conformance Test is shown. You can show or hide Conformance Tests selecting "Conformance Tests" from "View" menu. Results of Conformance Test is show on bottom right of GXDLMSDirector. You can start new Conformance Test selecting "Run" from the pop-up window.Select "Trace" from "View" menu if you want more information from the progress of Gurux Conformance Test.
- Concurrent testing creates own thread for each meter. If this is not selected meters are read one at the time.
- Show Values shows read values on the report.
- Re-read association View updates association view from the meter before tests are run.
- Write testing will try to write read values back to the meter. Values are not saved. Note! Be careful with this.
- Exclude Basic test will skip basic test. You can use this if you want only run external tests.
- Delay can be used to set delay between tests.
- External tests is the folder where external tests are get.
- Invalid Password is used to test login using invalid password.
- DelayConnection is time in seconds used to wait between connections.
External tests
All tests are described as XML. This helps you to understand structure of DLMS messages and you can easily add own external tests for your needs. Easiest way to get started with your own tests is if you execute your test procedure with GXDLMSDirector (example read). Then paste send and received bytes to GuruxDLMSTranslator. Select "Messages" tab and paste bytes to Left size. Then press "To Messages". Copy xml to the file as save it to the file in "Tests" directory. This xml file is executed when tests are run.Note! "External tests" must point to that folder where you save your test and the file extension must be .xml or test is ignored.
Strucure is like this:
<?xml version="1.0" encoding="utf-8"?> <Messages> <GetRequest> <GetRequestNormal> <InvokeIdAndPriority Value="193" /> <AttributeDescriptor> <!--DATA--> <ClassId Value="1" /> <InstanceId Value="00002A0000FF" /> <AttributeId Value="2" /> </AttributeDescriptor> </GetRequestNormal> </GetRequest> <GetResponse> <GetResponseNormal> <InvokeIdAndPriority Value="193" /> <Result> <Data> <None Value="*" /> </Data> </Result> </GetResponseNormal> </GetResponse> </Messages>
In reply packet you can describe that content of data can be anything by giving * as a value. Like this:
<UInt8 Value="*" />
If data type is ignored set data type to none like this:
<None Value="*" />If you want that reply data is always type of Int16 and value is 10 you can describe it like this:
<Int16 Value="10" />
Round Trip Time

Running external tests from comman line
You can run external test from the command line and improve the quality of the meter.The command line parameters are:
- -t Run Conformance tests. Conformance tests are not run with external tests.
- -x Executed external test file or folder.
- -o Output test directory.
- -s External Settings file. If external test file is given, this is ignored.
- -c Is GXDLMSDirector closed after tests are executed. Options are:Never, Always, Success
- -h Shows the help
%userprofile%\Desktop\GXDLMSDirector.appref-ms "C:\YOUR_DEVICE_LIST_FILE.gxc -x EXECUTED_TEST.xml -c Always"