PDA

Просмотр полной версии : Вопрос по ПЛК 110



myles
20.12.2011, 12:56
Здравствуйте. Только начинаю изучать Кодесис и вообще работу ПЛК. Такой вопрос. Как в ПЛК 110 можно реализовать проверку состояние кнопки "стоп"? Чтобы сначала при проверке кнопки, если она разомкнута, то появлялась возможность продолжать работу дальше нажатием кнопки "старт", а если она замкнута, то такой возможности не было.
И второй вопрос. Как реализовать работу датчиков в ПЛК? Чтобы при наличии сигнала от датчиков работа программы ПЛК была возможна, а при отсутствии сигналов - останавливалась?

Зуйков Александр
20.12.2011, 13:58
Если вы про кнопку, которая в ПЛК, то в конфигурации правой кнопкой и добавляете модуль Button. Дальше как с дискретным входом. Учтите, что кнопка без фиксации. Только не очень удачно по ней что-то запускать.
Cобственно выполнение программы ПЛК как целого по состоянию датчиков вы вряд ли реализуете. Просто создаёте программу (как самостоятельный блок типа PROGRAM) или функциональный блок, который вызывается только если выполнены заданные Вами условия. Можно ещё создать задачу (в Task Configuration) и задать режим запуска по условию (переменная типа Bool), но если управление задачами задействовано, тогда и PLC_PRG надо явно там же указать, как вызывать.
Какими будут условия вызова вашего программного блока, уже не важно, будет это дискретный или аналоговый вход (состояние/значение),регистр modbus или внутренние команды.
О каких датчиках речь идёт? О дискретных? Об аналоговых? Аналоговых в ПЛК110 не встроено. У Вас дополнительный модуль ввода есть?

swerder
20.12.2011, 14:03
Как в ПЛК 110 можно реализовать проверку состояние кнопки "стоп"?
если у вас кодесис 2.3, то в конфигурации плк добавляете модуль button - теперь эта кнопка - еще один битовый вход, можете привязать к нему переменную.

Как реализовать работу датчиков в ПЛК? Чтобы при наличии сигнала от датчиков работа программы ПЛК была возможна, а при отсутствии сигналов - останавливалась?


if есть_сигнал_с_датчика then
...
выполняем программу
...
else
не выполняем
end_if;