Тестирование лестничной логики - PullRequest
8 голосов
/ 16 сентября 2008

Мы все знаем различные способы тестирования ОО систем. Тем не менее, похоже, что я собираюсь сделать проект, в котором я буду иметь дело с лестничной логикой ПЛК (не спрашивайте: /), и мне было интересно, есть ли хороший способ проверки работоспособности системы.

Единственный способ, который я пока вижу, - это просто построить огромную таблицу со всеми известными состояниями системы и с какими выходными состояниями она генерирует. Это будет сделано для простых случаев «если вход A включен, включите выход B». Я не думаю, что это будет работать для более сложных конструкций.

Ответы [ 4 ]

4 голосов
/ 16 сентября 2008

Проверка «логических» систем на арене проектирования ИС известна как «Проверка проекта», то есть процесс обеспечения того, что система, которую вы проектируете в аппаратном обеспечении (RTL), реализует желаемую функциональность.

Лестничная логика может быть преобразована в один из современных HDL, как Verilog. трансформировать каждую лестницу

|---|R15|---+---|/R16|---------(R18)--------|
|           |
|---|R12|---+

с выражением типа

always @(*) R18 = !R16 && ( R15 | R12);

или вы можете использовать оператор присваивания

assign R18 = R16 && (R15 | R12); 

реле блокировки

assign R18 = (set condition) || R18 && !(break condition);

Затем воспользуйтесь бесплатным симулятором Verilog, таким как Icarus , для разработки тестового стенда и тестирования вашей системы. Убедитесь, что ваши тестовые сценарии дают хорошее покрытие кода вашей логикой! И если ваше программное обеспечение для лестничного редактирования предоставляет вам достойные возможности именования, используйте их, а не Rnn.

(Примечание: в конвенции Ladder Logic для ПЛК Rnn предназначен для внутренних реле, а Xnn является входом, а Ynn - выходом, что можно быстро найти в одном из онлайновых руководств.

Verilog будет более легким языком для разработки ваших тестов и стендов!

Может быть полезно запрограммировать некоторые задержки устройства.

Извините, я никогда не искал лестничную логику для / из verilog переводчиков .. но лестничная логика в мои дни только вводилась в компьютер для программирования ПЛК - большинство релейных систем, которые я использовал, были РЕАЛЬНЫМИ реле, подключенными к шкафам !!

Удачи. JBD

Существует несколько бесплатных редакторов релейной логики (с симульторами). вот тот, который работает на окнах предположительно:

http://cq.cx/ladder.pl

1 голос
/ 02 сентября 2009

Мы экспериментировали с инструментами покрытия тестов для контроллеров Rockwell Control Logix. Большинство инструментов охвата процедурным языковым тестом обеспечивают покрытие филиала или что-то подобное; поскольку релейная лестничная логика обычно не разветвляется, это не очень хорошо работает.

Мы создали прототип MC / DC (изменение / покрытие условия / принятия решения) для кода RLL для контроллеров Rockwell. Это говорит для каждого условия в цепочке, было ли это условие проверено как ИСТИНА , проверено как ЛОЖЬ, и что более важно, если там условие контролировало вывод решения в ступени (хорошо, по крайней мере, действие, контролируемое решением) в обоих истинных и ложных направлениях при некотором тесте.

Эта работа выполняется с использованием инструмента анализа и преобразования программ общего назначения, который называется DMS используется для оснащения кода RLL дополнительной логикой для сбора необходимых данных.

Вам все еще нужно кодировать модульные тесты. Самый простой способ сделать это - заставить другой ПЛК заменить замену механического оборудования, которым вы собираетесь управлять, и просто написать другую программу RLL для осуществления первой.

0 голосов
/ 29 сентября 2011

Иногда в небольших программах ПЛК тестовая программа (или подпрограмма, или файл релейной логики) пишется в проекте, который запускается только при эмуляции проекта. Файл имеет некоторую простую логику, которая говорит, что когда на выход подается напряжение, включите вход, связанный с обратной связью. Затем вы можете управлять своим ПЛК через любой интерфейс HMI и видеть, что код работает так, как ожидалось. Очень важно отключить или удалить тестовую программу при загрузке программного обеспечения на реальный сайт, поскольку в реальном мире она может делать очень странные вещи.

В более крупных проектах у каждого устройства есть режим симуляции, который делает что-то немного похожее. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

Это не что иное, как использование тестовых сред для языков ОО, но я действительно не видел какой-либо управляемой тестами разработки для ПЛК или даже большого количества автоматического тестирования.

0 голосов
/ 28 марта 2009

Существует программа под названием LogixPro, в которой есть симулятор ввода-вывода для релейной логики, вы можете попробовать это.

...