Automated rule checking of projects

Neuron Power Engineer provides a tool for automated rule checking for a Neuron Power Engineer project or for some objects of a Neuron Power Engineer project. This tool is also known as model ruler checker or as a possibility to validate an application.

Good to know

(grey lightbulb) The tool is intended for usage by an experienced user of Neuron Power Engineer.

(grey lightbulb)A condition for the successful usage of the tool is the knowledge of the action to be executed as it would be executed in the graphical user interface of Neuron Power Engineer.

(grey lightbulb)The output of the tool is in English only.

In this article:

Preparation

  1. Make sure that Neuron Power Engineer is installed. Have the following information prepared: 

    • The path to the Neuron Power Engineer installation directory 

    • The path to a directory that will be used as the workspace
      In case the directory does not exist, the tool creates it. If the optional parameter -checkEmptyWorkspace is used (see the description of this parameter below), the directory must be empty. 

    • The path to the project that should be checked.

    • Optional: the name to the folder/object or resource/library that should be checked.

    • The path to the log configuration file (see below for more information)
      A sample configuration file is included in the installation of Neuron Power Engineer

  2. Make sure that the rules are accordingly configured in the properties of the project. Details: See "Changing the configuration of rules".

  3. Open a command line: e.g. cmd.exe under Windows and navigate to the Neuron Power Engineer installation directory.  

Invocation

NeuronPowerEngineerc --launcher.ini NeuronPowerEngineer.ini -application com.logicals.mrc.application -noSplash -projectPath <PROJECTPATH> -objectToValidate <OBJECT> -data <WORKSPACE> -outputPath <REPORTPATH> -outputFile <REPORTFILE> -checkEmptyWorkspace -vmargs -Dlog4j.configuration=file:<LOG-CONFIGURATION>

(warning) Invoking the tool under Linux is not officially supported. However, if you want to try invoking the tool under Linux nevertheless, replace the part NeuronPowerEngineerc --launcher.ini NeuronPowerEngineer.ini -application of the above-mentioned invocation by NeuronPowerEngineer -application. The remaining part of the invocation is identical to the above-mentioned invocation.

Description of parameters:

Parameter

Description

Example

<PROJECTPATH>

absolute path to the project
If the project already exists within the workspace (e.g. because there was a previous automated import of the project), it is also possible to specify the project name only.

If the tool is invoked for a project, the corresponding objects of the project are examined based on rules according to the configuration for the project.

C:\LC3Projects\MyProject

<OBJECT>

name of the folder/object within the project for which the validation should be executed, meaning a project-relative path
The default invocation (when this parameter is not specified) is that the corresponding objects of the project are validated.

It is possible to specify the following objects as parameter:

  • a folder of the project
    If the tool is invoked for a folder, the corresponding objects of the folder are examined based on rules according to the configuration for the project.

  • an individual object of the project, e.g. an PLC-object, a library configuration or an object containing a POU
    If the tool is invoked for an PLC-object, all objects that are used starting from the resource are examined based on rules according to the configuration for the resource. If the tool is invoked for a library configuration, the objects specified within the library configuration are examined based on the rules for the project and a pre-defined set of rules. If the tool is invoked for a POU (e.g. an ST-object), the POU is examined based on rules according to the configuration for the project.
    (info) When you specify an object, add the appropriate object extension (see the examples to the right).

for a folder: srcfor an PLC-object: local.iecplcfor an ST-object: program.iecst or plc\common\myblock.iecst
for a library configuration: myLib01.lc3lib

<WORKSPACE>

absolute path to a workspace to which the project should be imported
Please note:

  • The directory of the workspace must not be located within a directory that is a Neuron Power Engineer project.

  • The directory might have to be empty – depending on the optional parameter -checkEmptyWorkspace (see the description of this parameter below).

  • After the invocation, the workspace will contain a reference to the Neuron Power Engineer project. That means that the Neuron Power Engineer project is not copied into the workspace.
    This is the same behavior as within the graphical user interface of Neuron Power Engineer when you would use the command Import... and the import type Existing Projects into Workspace with the disabled option Copy projects into workspace.

  • If the reference to the Neuron Power Engineer project already exists in the specified workspace because of a previous import, the import will not be done again in order to improve the performance of the tool. 

C:\temp\LC3Workspace

<REPORTPATH>

absolute or relative path where the report file should be created
In case the directory does not exist, the tool creates it.
The default invocation (when this parameter is not specified) is that the report is generated as if the validation is triggered within the graphical user interface of Neuron Power Engineer.
Details: See "Results of examination in Validate view" and heading "Report for validation".

C:\temp\validation

<REPORTFILE>

file name of the generated report
In case the file already exists, the tool overwrites it.
The default invocation (when this parameter is not specified) is that the report is generated as if the validation is triggered within the graphical user interface of Neuron Power Engineer. It is possible to load such a report into the Validate view of Neuron Power Engineer.
Details on the report: See "Results of examination in Validate view" and heading "Report for validation".

report01.mrclog

<LOG-CONFIGURATION>

path to the log configuration file
All messages of the tool will be output to the device as specified in the log configuration file.

C:\LC3LogConfig\log4j.xml

  • The parameter -noSplash is optional. If it is not specified, the splashscreen of Neuron Power Engineer is displayed after the invocation. 

  • The parameter -checkEmptyWorkspace is also optional. Specify this parameter to check whether the specified workspace is empty. The Neuron Power Engineer project will only be imported, if the workspace is empty.The default invocation (when this parameter is not specified) is that the Neuron Power Engineer project is always imported into the workspace – regardless whether the workspace is empty or not. If the Neuron Power Engineer project already exists within the workspace, the Neuron Power Engineer project is imported anew. 

  • The parameter -Dlog4j.configuration is also optional. However, Neuron recommends to specify this parameter so that log events are output. 

Example 1 for invocation, validating the objects of a project with the check whether the workspace is empty
NeuronPowerEngineerc --launcher.ini NeuronPowerEngineer.ini -application com.logicals.mrc.application -noSplash -projectPath C:\LC3Projects\MyProject -data C:\temp\LC3Workspace -checkEmptyWorkspace -vmargs -Dlog4j.configuration=file:C:\LC3LogConfig\log4j.xml
Example 2 for invocation, validating the objects of a project just specifying the project name because the project has already been imported into the workspace
NeuronPowerEngineerc --launcher.ini NeuronPowerEngineer.ini -application com.logicals.mrc.application -noSplash -projectPath MyProject -data C:\temp\LC3Workspace -vmargs -Dlog4j.configuration=file:C:\LC3LogConfig\log4j.xml
Example 3 for invocation, just validating the objects within a specified project folder and redirecting the generated report
NeuronPowerEngineerc --launcher.ini NeuronPowerEngineer.ini -application com.logicals.mrc.application -noSplash -projectPath MyProject -objectToValidate src -outputPath C:\temp\validation -outputFile report01.mrclog -data C:\temp\LC3Workspace -vmargs -Dlog4j.configuration=file:C:\LC3LogConfig\log4j.xml

Log configuration file

This file is needed to configure the log4j logging mechanism. The file specifies how log events are output.

Sample log configuration file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="false" xmlns:log4j='http://jakarta.apache.org/log4j/'>
 
  <!-- This configuration logs to console. -->
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="target" value="System.out"/>
    <param name="immediateFlush" value="true"/>
    <param name="encoding" value="UTF-8"/>
    <param name="threshold" value="info"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p:  %m%n" />
    </layout>
  </appender>
 
  <!-- This configuration logs to a file, with more information than for the console. -->
  <appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="C:\\temp\\logfile.log" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{HH:mm:ss} %-5p [THREAD ID=%t] [Method:%M] %c{1}:%L - %m%n" />
    </layout>
  </appender>
  <root>
    <level value="INFO" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
  </root>
</log4j:configuration>

Result

A report is generated with the file extension .mrclog in the  project folder. Details on the report: See "Results of examination in Validate view" and heading "Report for validation".

Troubleshooting

The file that is specified in the log configuration file contains information about the rule check. If the rule check has not been successful, fix the problem according to the following table.

Return code

Message on STDOUT or STDERR

Cause

Solution

0

Check successful (0)

 

 

-1

Check failed (Parameter Error, -1): Name

An argument or parameter is missing.

Invoke the tool as specified above.

-2

Check failed (-2): Project not found

The specified project does not exist.

Specify an existing project. Or invoke the tool with the absolute path for the project.

-6

Check failed (-6): Workspace not empty

The workspace already contains data (e.g. one or more Neuron Power Engineer projects).

Use an empty workspace or remove all existing data from the current one.
Alternate: Invoke the tool without the parameter -checkEmptyWorkspace.

-7

Check failed (-7): The object "name" does not exist in the project "name".

The specified object does not exist.

Specify an existing object. Or invoke the tool without the parameter -objectToValidate.

-127

(Details: exception message)

An unexpected error has occurred.

Contact Neuron.