78 правил и рекомендаций для создания правильного кода в TIA от Siemens

Автор Сообщение
#1 / 24.08.2018 20:00
admin

R: правило
S: рекомендация
 

Базовые правила

  1. Блоки компилируются без ошибок
  2. Все требуемые PLC типы данных находятся в проекте/библиотеке

Спецификации и требования заказчика

3. R: нарушения правил спецификаций и требований задокументировано в программном коде и обсуждено

Настройки TIA portal

4. R: язык всегда неизменен в PLC программе и HMI (английский, немецкий...)
5. R: язык редактирования и справки установлен в English (United States)
6. S: язык пользовательского интерфейса в TIA установлен English (United States)
7. R: мнемоника языка программирования должен быть установлена в "International"
8. R: символы TAB не используются в исходных текстах. Выравнивание реализуется двумя пробелами

Идентификаторы

9. R: все идентификаторы составлены на английском
10. R: не используются одинаковые идентификаторы с разницей в регистрах
11. R: определение идентификаторов по правилам camelCasing (слова слитно с большой буквы, каждое кроме первого)
12. S: максимальная длина - 24 символа
13. R: специальные символы и пробелы не используются
14. R: идентификаторы должны быть смысловыми
15. S: корректное использование универсальных аббревиатур
16. S: только одна аббревиатура на один идентификатор

Программирование

17. S: только короткие функциональные имена для блоков
18. R: все идентификаторы блоков начинаются с большой буквы
19. R: экземпляры имеют префикс inst/Inst
20. S: включена опция автонумерации блоков
21. S: длина строки в редакторе максимум 80 символов
22. R: не используются исходники (SCL,STL)
23. S: SCL выбирается приоритетно
24. R: используются мультиэкземпляры, если есть возможность
25. R: DB хранятся в загрузочной памяти, только в исключительных случаях
26. R: локальные таги используются только внутри блока
27. R: недопустимо использование глобальных констант
28. R: важные тестовые таги не определяются как временные
29. R: все FC,FB имеют атрибут ‛Block can be used as know-how protected‛
30. S: код программы достаточно документирован при помощи блочных и строчных комментариев
31. S: используются только комментарии типа //
32. R: шаблон (заголовок блока) для описания блока используется для всех блоков
33. R: входные, выходные и входные/выходные таги (формальные параметры) не используют префикс
34. R: обмен данными между блоками выполняется только через интерфейс блоков
35. S: элементарные типы данных определены корректно, как In, Out, InOut (если значения записываются внутри или снаружи блока)
36. S: множество тагов пересылаются как PLC типы данных
37. R: не используются типы данных STRUCT 
38. S: структурированные таги пересылаются как InOut
39. S: выходные таги записываются только один раз

Декларация переменных

40. R: статические таги используются только локально
41. R: статические таги имеют префикс "stat"
42. R: временные переменные имеют префикс "temp"
43. R: все константы записываются БОЛЬШИМИ БУКВАМИ. Несколько слов имени разделяются подчеркиванием
44. R: все константы используются локально
45. S: константы используемые в обработках имеют ненулевое значение
46. S: имя массива всегда во множественном числе
47. S: индекс массива начинается с нуля и заканчивается константой
48. R: PLC типы данных имеют префикс "type"
49. R: все временные таги инициализируются программой, перед использованием
50. R: инициализация выполняется в обычном виде для каждого типа данных.
51. S: актуальные параметры TO инициализируются значением -1.0

Инструкции

52. S: пробел перед и после операнда 
53. S: выражения пишутся в скобках
54. S: для частичных условий используется новые строки
55. R: секции условий и секции инструкций разделяются переводом строки
56. S: условия в инструкциях корректно выделяются отступами
57. R: все CASE инструкции и имеют ветку ELSE
58. S: CASE инструкции используются вместо ELSIF веток
59. R: все инструкции корректно выделяются отступами
60. R: коды ошибок вызываемого блока обрабатываются
61. R: для всех параметров с стандартными значениями в соответствии PLCopen V2.0, используются стандартные идентификаторы
62. R: все блоки которые выполняются имеют выходные параметры busy и done
63. R: все блоки с разрешением имеют как минимум выходной параметр действительности

Обработка ошибок и диагностика 

64. R: ошибки корректно отображаются через выходы error и status

65. S: в формальных параметрах состояния, кодах возврата выходные значения принимают определенные числовые группы
66. S: в случае ошибок, блоки останавливаются и код ошибки для первой, остается неизменным, до подтверждения
67. S: выходной статус использует состояние и код ошибок инструкций
68. S: выходной statusID используется для идентификации источника ошибки
69. S: выходной statusID и смещение используется с вложенными блоками
70. S: используется диагностическая структура по умолчанию
71. S: структура диагностика сохраняемая

Таблицы, графики, измерения 

72. R: PascalCase запись (первые буквы слов большие) используются для: PLC таблицы тагов, таблицы мониторинга, графиков, измерений
73. S: библиотека переменных начинается с L и имеет максимальную длину 8 символов
74. R: все элементы в библиотеки имеют префикс имени библиотеки
75. R: FC, FB и PLC типы данных хранятся в библиотеке как типы
76. R: элементы библиотеки хранятся в следующей папке содержательной системы
77. R: версия библиотеки следует программному стилю
78. S: используются шаблоны HMI OS
__________________________________________________

Источник: http://plc4good.org.ua/view_post.php?id=313


Отредактировано: admin (29.08.2018 19:33, 5 лет назад)
Сообщения: 463