[EN] Release note PLC Checker v12.01
 

[EN] Release note PLC Checker v12.01

on

  • 1,080 views

This release note presents the new features that were added to the latest release of PLC Checker (v12.01). ...

This release note presents the new features that were added to the latest release of PLC Checker (v12.01).

Find us at http://www.automationsquare.com/
Contact us at commercial@automationsquare.com for more information.

Statistics

Views

Total Views
1,080
Views on SlideShare
1,080
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • We have released free online trial web application for PLC Checker. Just follow the link http://www.plcchecker.com/, select your PLC brand, and upload your PLC program. It is free. If you have any further question, please contact info@automationsquare.com.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

[EN] Release note PLC Checker v12.01 [EN] Release note PLC Checker v12.01 Document Transcript

  • SRelease Note of PLC Checker v12.01 AItris Automation SquareIFebruary 2012http://www.automationsquare.com
  • Release Note of PLC Checker v12.01 I AS2/10 February 2012
  • Contents1 Release Note of PLC Checker v12.01 5 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.1 FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2 Stability of the versions used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 New features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.1 Capitalization support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.2 Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 S 1.2.3 Treatment of structures’ members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.4 Internationalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.5 Homogenization of functionalities between Eclipse and the Unity-Pro plugin . . . . . . . 9 1.2.6 Complexities calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.7 A more precise dead code detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.8 Detection of the use of certain library functions . . . . . . . . . . . . . . . . . . . . . . . 9 A 1.2.9 Grafcet rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.10 Calculation of Copy/Paste ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3 Itris Automation Square coding standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 I 1.4 Behavior changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4.1 Read before being written . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4.2 Reference to a nonexistent filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3/10
  • Release Note of PLC Checker v12.01 I AS4/10 February 2012
  • Chapter 1Release Note of PLC Checker v12.011.1 IntroductionPLC Checker automatically analyzes a PLC program and verifies its compliance with coding rules in an exhaustive Sway. PLC Checker takes the form of an application hosted on IAS’ servers, under the Software as a Service model(SaaS). PLC Checker historically supports several families of PLCs: • Siemens Step 7 A • Rockwell Automation RsLogix 5000 • Schneider-Electric PL7 Pro I • Schneider-Electric Unity ProIn this release, the support of the following PLCs was added: • PLC Open • Codesys v3.2 • Siemens Step 5This release adds many features: • The verification of the capitalization of the elements of the program is possible (upper/lower case) • The power of regular expressions verification has been increased, to meet the need for validation of the consistency of naming program elements (variable, procedure) • PLC Checker is now able to closely analyze the read/write operations on structural members and functional blocks • The detection of dead code is improved: PLC Checker can now detect unreachable code due to IF FALSE statements • Internationalization has been improved: better interface and error messages in English • Finally, several rules that give information on programs’ complexity have been added to improve the detec- tion of complex codes 5/10
  • Release Note of PLC Checker v12.011.1.1 FAQ 1. How do I benefit from the new features? • Server side Nothing to do. Any new project created from now on on IAS’ servers will benefit from the new features. • Client side – If you are not using Eclipse version 3.7, you have to install it using this link (in PLC Checker User Guide, see chapter 3.1 Installation ) – If you already have Eclipse version 3.7, you may update it following the procedure of chapter 3.2 Software Update that you can find in PLC Checker User Guide – No new version of PLC Checker plug-in for Schneider Electric Unity Pro is required to benefit from these new features. S • Standard set of rules – The rules recommended by IAS are explained in this document. – The corresponding GQR files to be fed to PLC Checker are available on request: please contact support@automationsquare.com I A 2. How do I know which version of Eclipse I have? • Start Eclipse. • The version of Eclipse can be displayed on the screen at startup, for example, for version 3.1: Figure 1.1: Eclipse 3.1 • Otherwise, the version is also available once started, by opening the menu Help / About Eclipse Plat- form. The Eclipse version you have will be displayed:6/10 February 2012
  • Release Note of PLC Checker v12.01 Figure 1.2: Eclipse 3.7.1 3. How much does it cost? Nothing extra. All new features are included in the regular price of PLC Checker. We have not increased S our pricing when adding the new features. 4. I have a project with one of the new PLC supported. What do I do? You may already purchase these rights. Contact us for a quotation: commercial@automationsquare.com1.1.2 Stability of the versions used ABy default, the new version of PLC Checker will be used for programs created after the availability of this ver-sion. In other words, the programs created before the date of this release will continue to use the same versions of IPLC Checker as before.FAQ1 : How do I know which version of PLC Checker has been used during the latest analysis of my program? • Go to http://www.automationsquare.com/ • Click on the ”My Projects” tab, at the top right of the page. • Case 1) if you created the project yourself: – Click on the name of the project containing your program. The details of the project will appear, as well as the list of programs associated with this project. – Click on the name of your program. The page displays the different characteristics of the program. – On the ”Identity” tab, in the detailed characteristics, appears the number of the ”Glips program version” used in the latest analysis. • Case 2) if the project and the program were created and shared by another person: – Click on the ”Access to existing programs” button at the bottom of the page – Enter the 6-character code of the program, then click on ”Access to the program”. – Click on the link ”See” on the line of your program in the table of other people’s programs, on which you operate. See the very bottom of the page. – On the ”Identity” tab, in the detailed characteristics, appears the number ”Glips program version” used in the final analysis. 1 Frequently Asked QuestionsFebruary 2012 7/10
  • Release Note of PLC Checker v12.011.2 New features1.2.1 Capitalization supportIn this new release, PLC Checker can take into account the capitalization and verify that the case chosen whendeclaring the elements of the program corresponds to the specifications. This is achieved through the new filter[]. Example: The filter +(c.*) is not case sensitive and thus corresponds to variables such as ciNbEtiquette,ComFault . . .while the filter +[c.*] is case sensitive and does not correspond to ComFault but only to ciNbEtiquette.1.2.2 Regular ExpressionsThe analysis of regular expressions offers new features: • the reuse of the num-th group captured in a single expression: $num.For example+(site(1|2).valve$2.*) Sto verify that we have variables • site1.valve10, • site1.valve11 , A • site1.valve12, . . . Iand • site2.valve20, • site2.valve21, . . .and that we have neither • site1.valve2*nor • site2.valve1*,as $2 found after valve matches the contents of the second capture group (1 — 2) which is after site. • the quantification of elements: eltnum. To check for example that the valve number does contain 3 numbers between 0 and 9: +(valve[0-9]3)This feature will benefit rules files custom-made for our customers.1.2.3 Treatment of structures’ membersPLC Checker now enables to check if the structures are read/written partially (through some of its elements) orcompletely.Previously, when the same structure or function block was instanced more than once, it was not possible to use therules checking the uniqueness of a writing or the fact that all members were used. It is now possible. The verification engine for reading and writing counting rules has been modified. Moreover,dynamic attributes available in the variables can make more precise checks on the numbers of read and write at thelevel of structure members.8/10 February 2012
  • Release Note of PLC Checker v12.011.2.4 InternationalizationAn English language support is provided by the results files creator, on the Eclipse platform of PLC Checker.1.2.5 Homogenization of functionalities between Eclipse and the Unity-Pro pluginUsers of the Eclipse platform no longer have to use the Web interface to work on a new PLC Checker program.This creation can be done directly under Eclipse by creating a new project. Similarly, it is possible to assign a right during the creation operation, or when a verification operation isinitiated when no usage right has been affected before directly under Eclipse. This simplifies the use of the Eclipseplatform.1.2.6 Complexities calculationCyclomatic and essential complexities can be calculated on each programming units of an application. It is possibleto generate an error when thresholds are not respected, or to simply deliver information. Cyclomatic complexity measures the number of tests needed to validate all possible execution paths of a pro-gramming unit. Complexity is usually less than 15. To be efficient, this measure should be used primarily for theStructured Text language and the List language. S The essential complexity measures the number of exit points of a programming unit. To be easy to maintain, aprogramming unit should have an essential complexity of 1.1.2.7 A more precise dead code detectionPLC Checker now performs a static evaluation of the instructions’ conditions, so as to detect dead code instructionssuch as ’if false then . . . ’ or ’if cst1 > cst10 then . . . ’ with ’cst1: constant: = 1’ and ’cst10: constant: = 10’. A This allows to detect that a particular code was short-circuited during the development phases before commis-sioning. I1.2.8 Detection of the use of certain library functionsPLC Checker can now check the use or non-use of library functions.It is thus possible, for example, to verify the non-use of the AFI function (Always False Instruction) for RSLogix5000,or the non-use of obsolete library functions for UnityPro.1.2.9 Grafcet rulesPLC Checker had no specific rules in Grafcet language (State Flow Chart - SFC). It can now count the number ofsteps and branches of a graph.1.2.10 Calculation of Copy/Paste ratioPLC Checker measures the percentage of code resulting from copy/pasting. The greater that measure is, the lessthe code has been optimized. Reaching zero is practically impossible as a fully optimized code is only theory. However, this information gives an idea of code redundancy and maintainability problems that may arise ifchanges need to be made.1.3 Itris Automation Square coding standardThe IAS coding standard was updated based on new available features. Several rules and information were addedto obtain information on the complexity of a code or more specifically of a Grafcet. • i5 - Non-specific - Cyclomatic Number • i6 - Non-specific - Essential Complexity • i7 - Non-specific - Number of lines of codeFebruary 2012 9/10
  • Release Note of PLC Checker v12.01 • i8 - Non-specific - Number of steps of a Grafcet • i9 - Non-specific - Number of branches of a Grafcet • i10 - Non-specific - Rate of copy/pasteSimilarly, the EU2 rule checks not only the functions of SHL INT, but also the non-use of obsolete library functionsof Unity-Pro.1.4 Behavior changesBeware ! The verification behavior of PLC Checker can change from the old version.1.4.1 Read before being writtenOn the PL7-Pro and Siemens Step7 versions, particular equations did not rise errors when a variable was readbefore being written. For instance, this was the case for self-holding. Example: Sself_holding := self_holding OR condition;In previous versions, no violation read before being written was returned for this equation. In the new version,self holding is seen as read before being written for all PLCs supported by PLC Checker. A1.4.2 Reference to a nonexistent filter IOn all previous versions of PLC Checker, a reference to a nonexistent filter completely disabled the rule that referedto it - even if other correct filters were part of the rule. This behavior has been modified. A broken filter is now ignored. A rule containing a (several) broken filter(s)is now evaluated as if it did not contain that (those) filter(s). Thus, on an existing rules file, using the new version of PLC Cheker can significantly change the result whenthe rules file used includes references to non-existent filters. An error is raised for each reference to a filter that does not exist. Thus, if one has the following filter:treatment=+#INPUT-#RESERVand the filter RESERV does not exist, then it’s like havingtreatment=+#INPUTand an error is raised to the user indicating that the reference to RESERV filter could not be done. Of course, theresult may not match the expected result given the non-existence of the filter RESERV.10/10 February 2012