PDA

Просмотр полной версии : Самопроизвольный старт/стоп ПЛК



Филоненко Владислав
04.02.2008, 09:14
У некоторых пользователей ПЛК возникает следующая проблема - иногда самопроизвольно ПЛК останавливается.

В ходе экспериментов удалось выяснить, что к такому эффекту может привести превышение размера модулей в области ввода/вывода свыше лицензионного предела.

Если вставить много модулей, но к их переменным обращаться по указателю, то компилятор CoDeSys не сможет детектировать превышение размера памяти и при обращении к переменным, к-е лежат за лицензионным ограничением происходит запись в служебную область данных CoDeSys, а это, в свою очередь, может приводить к ЛЮБЫМ последствиям, в т.ч. к останову, зависанию, перезагрузке и некорректному поведению программы.

Поэтому прошу всех проверить свои программы на этот "хитрый" хак и либо сократить число модулей, либо приобрести ПЛК с неограниченной лицензией.

alexxxx
05.03.2008, 09:10
У меня ПЛК с неограниченной лицензией, и большой обьём переменных области ввода вывода. Переодически ПЛК вываливается в стоп. Заметил это происходит тогда когда пользоватиль начинает активно "жать на кнопки", при не вмешательстве пользователя ПЛК работает стабильно. В связи с этим у меня несколько вопросов:
- как отследить какой блок вызвал переход ПЛК в стоп, и причину.
- как заставить ПЛК самостоятельно стартануть!!!!!!!!!!!!!
- как определить точно обьём области ввода-вывода и где у него предел.

С ПЛК работаю по OPC - серверу, вывожу диаграму температуры и загрузки процессора ПЛК, температура в среднем 50 гр.С, загрузка но 30%.
Версия прошивки и таргета последние.

Филоненко Владислав
05.03.2008, 09:42
Что значит жать на кнопки?
Хотя лицензия неограниченная, в настройках таргета есть некий размер конфигурации по умолчанию (к-й можно увеличить в неограниченной версии), равный 0x1000 байт. Вы не могли за него выскочить? Если описанная в моём посте ситуация с указателями имеет место быть, проверьте реальный размер данных в конфигурации.
Для этого запустите среду разработки с ключём \debug.
У каждой переменной в конфигурации появится номер области (1 или 2) и смещение.
Если Вы превысили значение по умолчанию, увеличьте его.

alexxxx
05.03.2008, 15:19
Кнопки виртуальные в программе оператора,
на счёт размера в Target setting указано Input 16#1FFF, Output 16#1FFF, retain 16#1000.
Подскажите как должна выглядеть командная строка с ключём /debug?

Существенно уменьшил размер переменных обращаемых по OPC положительного результата нет.

И всё таки как на счёт автоматического старта? даст ли результат обьявления в конфигурации ПЛК функции Button

Филоненко Владислав
05.03.2008, 15:38
В ярлыке "F:\Program Files\3S Software\CoDeSys V2.3\Codesys.exe" "/debug"
В командной строке без ковычек.

Автоматический старт - по какому событию? Программа то не работает? Вообще отключить возможность остановки?
А модуль "Button" Вы не поставили?

alexxxx
05.03.2008, 15:57
модуль "Button" не поставил а, что надо?
состояние памяти (1/865), (2/120) (68/3712) на сколько я понял "1/" это входа "2/" выхода, а сколько это в байтах не понял.

Филоненко Владислав
05.03.2008, 18:16
Сколько в знаменателе, столько и байт. А почему в области выходов так мало байт? Вы пару нулей не забыли написать?
А что за 68/3712?

Про "Button" - есть подозрение, что иногда возникают проблемы с кнопкой Start/Stop (или наводки, или кнопки бракованые), включение модуля "Button" отключает кнопку от управления ПЛК и превращает её в обычный дискретный вход.
Попробуйте.

Также, у Вас в программе указатели используются? Если да, очень внимательно проверьте корректность их использования. Это может быть причиной останова.

alexxxx
06.03.2008, 07:01
68/3712 это значение последней переменной объявленной в главном цикле по умолчанию это "PLC_PRG", (2/120) это всё что объявлено в "VAR_GLOBAL".
На счёт кнопки "Старт/Стоп" если я её уберу, то подскажите способ вывода ПЛК из "Стопа" не используя программу CoDeSys.

На счёт помех есть такое подозрение (и это будет полезно узнать всем кто читает эту статью) ни в коем разе не устанавливать частотный преобразователь в один щит с ПЛК тем более, такой как дешёвый "ВЕСПЕР", я его убрал, и помехи исчезли видно не до конца. У моего ПЛК на выходе ключи которые управляют промежуточными реле мощностью в 1 Вт, в связи с этим вопрос установлены ли диоды на ключах для гашение обратной ЭДС?

Филоненко Владислав
06.03.2008, 09:14
Включить не получится. Но возможно включать и не придётся:)
Посмотрел схему, диода нет.

kimcomnet
18.03.2008, 15:26
Помогите! Как можно отключить кнопку Старт/стоп на ПЛК100R-M в CoDeSys и как сделать, что бы при отключении и повторного включении ПЛК автоматически запускался? Программа маленькая и написана на языке CFC.

Kirill
18.03.2008, 15:45
Помогите! Как можно отключить кнопку Старт/стоп на ПЛК100R-M в CoDeSys и как сделать, что бы при отключении и повторного включении ПЛК автоматически запускался? Программа маленькая и написана на языке CFC.

для отключения кнопки добавьте в plc configuration модуль button (через контекстное меню и пункт upend subelement),это переназначит функцию кнопки.

kimcomnet
18.03.2008, 16:55
А если такого модуля нет? Может это быть из-за тагетов или самой программы CoDeSys?

kimcomnet
18.03.2008, 17:05
Есть еще один такой вопрос: После записи программы в ПЛК100 К-М (и в ПЛК100Р-М, и в ПЛК 150) программа работает нормально. После отключения питания и повторного включения в ПЛК100 К-М включаются на некоторое время все входы и выходы (примерно на 0,5 секунд), чего нам не желательно. А после все работает нормально. Как устранить это включение до начала работы. Проект создавался на языке CFC

Филоненко Владислав
18.03.2008, 18:17
А если такого модуля нет? Может это быть из-за тагетов или самой программы CoDeSys?

Это значит, что ПЛК уже как год жаждет новой прошивки и таргета.


Есть еще один такой вопрос: После записи программы в ПЛК100 К-М (и в ПЛК100Р-М, и в ПЛК 150) программа работает нормально. После отключения питания и повторного включения в ПЛК100 К-М включаются на некоторое время все входы и выходы (примерно на 0,5 секунд), чего нам не желательно. А после все работает нормально. Как устранить это включение до начала работы. Проект создавался на языке CFC

У Вас безопасные состояния выходов как выставлены?

kimcomnet
19.03.2008, 09:07
А где и как выставлять безопастное состояние выходов? Дело в том, что курсы прошел недавно и я только начинаю разбираться в программировании, а начальство думает, что за два дня стал профессионалом. Так что не обессутьте за такие глупые вопросы.

SergeyNG
19.03.2008, 09:23
После отключения питания и повторного включения в ПЛК100 К-М включаются на некоторое время все входы и выходы (примерно на 0,5 секунд), чего нам не желательно. А после все работает нормально. Как устранить это включение до начала работы.
Мигает скорее всего просто индикация входов/выходов. Индикаторы находятся на отдельной платке и они не связаны напрямую со входами выходами. Проверить можно повесив, например, лампу =24В на выход и нажать Reset. Включаться не должна.

Филоненко Владислав
19.03.2008, 10:32
Мигает скорее всего просто индикация входов/выходов. Индикаторы находятся на отдельной платке и они не связаны напрямую со входами выходами. Проверить можно повесив, например, лампу =24В на выход и нажать Reset. Включаться не должна.

пропустил что "все входа и выхода". Это тест светодиодов при старте. Реальные выхода не включаются.

Про безопасное состояние - в параметрах дискретных и аналоговых выходов, "Safe Value" называется.

alexxxx
19.03.2008, 14:38
К стати на счёт самопроизвольного Старт/Стопа ПЛК, похоже всё таки была помеха из за обратной ЭДС пром.реле, решилась установкой диодов на катушки реле. И тем не мнение прейдётся довешивать ПЛК самопальным устройством которое бы выводило ПЛК из стопа при прекращении импульсов, с какого ни будь вывода ПЛК, так как Я не могу гарантировать что какая ни будь помеха все, же да не выведет ПЛК в "Стоп".
Просьба к программистам и схемотехникам пожалуйста устраните эту проблему, ПЛК Овен отличная вещь и не хотелось бы от него отказаться из за данной проблемы.

Не запланированная остановка ПЛК может привести к катастрофическим последствиям!

Филоненко Владислав
19.03.2008, 20:54
Модуль "Button"