Note: Within this document the word 'English' excludes automatic translations from other languages. English is to mean either written English from someone to whom this is their first language, or human-translated text by a technical translator from another language.
Symbols - All addresses used within the program must have symbols. The symbol will consist of the address and then the
'comment' will explain in English the usage of the address. e.g.
Symbol Address Comment
I 0.0 I 0.0 Start button
Language - Wherever possible the software needs to be translatable into LADDER representation. If untranslatable
Statement List must be used (for instance, for indirect addressing) then sections of code will be split into logical
separate networks and the individual networks' 'comment' boxes used to explain exactly, in English, what function that
particular section of code is doing.
Every function (FC) and function block (FB) must have a symbol, a function title and pertinent titles on every network, all in English.
If the role of a particular function is not immediately clear or could be misconstrued then the function comment box must
be used to explain in a clear, concise way, in English, the role of the function.
The programmer should aim to have less than 30 networks in any function or function block. Blocks that need more than 40
networks should be logically divided in order to create more blocks of less than 40 networks.
All unconditional calls should be contained within OB 1.
Cross-Area pointers should only be used when no other programming method and the address or range of addresses that the pointer(s) can address should be clearly documented in the 'comment' box at the top of the function.
Outputs or memory areas should only be written to once during a program. Conditional calls should not be used in order to
write to the same output or memory area at different points in the program.
Datablocks should be clearly documented with all address 'name' and 'comment' boxes all being completed in English.