Версия для печати

TIA: правила и рекомендации для создания программ

Дата: 2017-04-18

Добавлено: komatic

Тема: S7-1k



standard



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






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



оригинал Styleguide_Checklist (pdf, 0.5 Mb)
ссылка siemens.com











Просмотров: 2097

Комментарии к материалу

Добавлен: Draco Malfoy    Дата: 2017-06-01

не используются исходники (SCL,STL)

С какого перепугу интересно ?

Добавлен: komatic    Дата: 2017-06-03

имеется в виду содержимое папки external sources - после импорта из нее редактируются уже блоки внутри program blocks

Добавлен: question    Дата: 2017-07-11

Hi,
Is this website dead? I haven't seen any updates for quite a while

Добавить комментарий

Ваше имя:

Текст комментария (4000 max):

Введите сумму с картинки: