PDA

Просмотр полной версии : плк-100-k-l



Василий Куц
05.05.2007, 20:41
Добрый день.
Есть маленькое пожелание по поводу ПЛК-100. Баг заключается в том, что если идет обмен по интерфейсу (запросы, ответы и тд) RS-232 или DeBug и происходит попытка перешить ПЛК, то в ответ получаем резет ПЛК-шки. Неприятно, правдо? :)

Малышев Олег
07.05.2007, 10:02
Несовсем понятно, о чем Вы? Прошивка ПЛК или программирование из Codesys?

незарегистрированный
07.05.2007, 10:38
почему-то у меня складывается такое мнение что версия плк100 к.л. вся в проблемах!!! судя по предыдущему сообщения, в котором тоже неочень отозвались о 100 и проблемы аналогичны. но мне интересно 100 были проблему с самого начала, после был ремонт... ну думал все, а оказалось все тоже самое.

Николаев Андрей
07.05.2007, 10:55
ну на самом деле он совсем и не проблемный.
были вопросы в самом начале производства, которые полностью устранены. в чем вообще то проблема?

Малышев Олег
07.05.2007, 11:03
Да, прибор сложный и позволяющей делать много разных операций. В нем можно сделать много всего интересного и , в том числе то что ни мы(разработчики системы) и ни разработчики среды( 3S Software) не разу не делали. В определенных случаях это работает штатно. В других случаях приводит к краху системы.
Кто ничего не делает, то не делает ошибок. При стандартном применении контроллер будет работать абсолютно нормально.

Василий Куц
07.05.2007, 16:01
Несовсем понятно, о чем Вы? Прошивка ПЛК или программирование из Codesys?

Ситуация такая: Есть внешний мастер ModBus, он ведет опрос ПЛК по RS-232 с некоторой периодичностью. Если в CoDeSyS при этом сделать загрузку проекта в ПЛК, то с вероятностью 50 на 50 произойдет резет ПЛК с соответствующим звуком :(

Филоненко Владислав
07.05.2007, 16:09
Просьба выслать log.txt и debug.txt до и после такой перезагрузки и ваш проект (можно только конфигурацию). Будем разбираться

Малышев Олег
07.05.2007, 16:10
А вы загружаете проект через Load All или через online changes?

Василий Куц
07.05.2007, 16:14
Я делал Log in, далее на вопрос о загрузке нового проекта нажимал да. Проект вышлю завтро с работы, Вам, Владислав на plc_prog

Малышев Олег
07.05.2007, 17:02
Предпочтительно делать Load All

Василий Куц
08.05.2007, 06:20
в архиве логи до и после, а так же экспорт конфигурации

Филоненко Владислав
08.05.2007, 08:18
Нужны log-файлы с ПЛК, а не с компьютера

Василий Куц
08.05.2007, 19:43
Нужны log-файлы с ПЛК, а не с компьютера

Конкретнее можно, как достать и тд. Я что-то посмотрел - не нашел где логирование из ПЛК достать можно.

МИХАИЛ
09.05.2007, 08:48
C:\WINDOWS\Gateway Files\log

Филоненко Владислав
10.05.2007, 09:14
ПЛК->log.txt
ПЛК->debug.txt

Малышев Олег
10.05.2007, 09:53
Как читать файл из ПЛК: Меню online->Read File

Василий Куц
17.05.2007, 13:39
К сожалению, повторить не получилось (возможно из-за обновления CoDeSys). Однако ;) обнаружился еще один глюк.

Создан ModBus Master. Подключено слейв устройство - регулятор (да в принципе не важно). Останавливаю ПЛК, пишу данные в register output слейв устройства. По моему разумению, поскольку ПЛК остановлен - данные передаваться не должны, но увы, значение пишется.

Мастер настроен в режиме by polling time.

Малышев Олег
17.05.2007, 14:16
Это не глюк. Все правильно.
Модули, которые есть в конфигурации читают, пишут переменные не зависимо от того загружена ли основная программа плк.
Вы можете из Codesys с остановленной программой пощелкать реле и посмотреть состояния аналоговых дискретных входов в любой точке останова и на не запущенной программе.

так что поставте - по команде, и будет вас счастье :)

Василий Куц
17.05.2007, 14:59
по команде так и не разобрался как работает.... говорили, что 2 командных адреса, но я почему-то нашел один.... если объясните - будет здорово!

Малышев Олег
17.05.2007, 15:10
Для переменных с командным каналом при работе в режиме «По
команде» (By Command) управление осуществляется следующим образом:
первая посылка значения 0x00FF в командный канал включает
функционирование этой переменной, повторная посылка значения 0x00FF
инициирует проведение опроса. Аналогично опрос инициируется для
переменных с командным каналом при работе в других режимах. При
посылке в командный канал значения 0x00FE переменная выключается из
цикла опроса мастера.

Эта информация доступна в документе PLC_Configuration_OWEN.pdf, который выложен на нашем сайте.

Василий Куц
17.05.2007, 20:56
Я вкурсе, что там написано, могу уже цитировать ;)

Что непонятно: в PLC конфигураторе тип переменной Word, Вы приводите dWord. Пытался играться - не получалось, перезапрос переменных идет только при старт/стоп ПЛК. В пошаговом режиме так же (насколько я помню) работало.

Олег, если можно, приведите кусок кода на ST для данного режима. Я подряд писал 2 раза - не работало.... Возможно задержки надо расставлять между посылами команд, но я так понимаю програмная реализация и так дает время на защелкивание значений и никаких NOP тут не надо....


Ну и, так сказать, поровозом спрошу. Какое значение Watch Dog таймера установлено в ПО? Существует ли реальная опастность сброса при большой подпрограме? Переход между POU, насколько я понимаю осуществляется со сбросом собаки?
Помогите разобраться. Раньше писал под все линейки 8-ми битников AVR, но тут принципы немного другие.

Малышев Олег
18.05.2007, 09:02
Я вкурсе, что там написано, могу уже цитировать ;)

Что непонятно: в PLC конфигураторе тип переменной Word, Вы приводите dWord. Пытался играться - не получалось, перезапрос переменных идет только при старт/стоп ПЛК. В пошаговом режиме так же (насколько я помню) работало.

Уточните, пожалуйста где DWORD? Если вы о 16#FF00 - значение вполне умещается в WORD. Если Вы в режиме стоп установили "вручную" команду запуска, модуль должен был начать опрос. Пожалуйста подробнее опишите Ваши действия.



Олег, если можно, приведите кусок кода на ST для данного режима. Я подряд писал 2 раза - не работало.... Возможно задержки надо расставлять между посылами команд, но я так понимаю програмная реализация и так дает время на защелкивание значений и никаких NOP тут не надо....


ну примерно так
var
myTP:TP; (* Таймер отсчета по переднему фронту IN*)
myR_TRIG:R_TRIG; (* Обнаружение начала события *)
end_var

myR_TRIG(CLK:=incoming_event);
myTP(IN:=incoming_event,PT:=#5s); (*Запуск по внешнему событию*)
if myTP.Q and myR_TRIG.Q then
command_Start_read:=16#00FF;
else
if not myTP.Q then
command_Start_read:=16#00FE;
end_if
end_if
incoming_event:=false;

Пояснения - цикл сканирования выполняется часто - порядка 1 мс. Для модуля Modbus Master этой 1 ms недостаточно что бы прочитать значения переменной на макс. скорости 115200. Время 5c - абстрактное, Вам нужно вычислить его исходя из Вашей скорости обмена, кол-ва переменных, количества перезапросов, таймаутов, и байт запрос-ответ на каждую переменную.



Ну и, так сказать, поровозом спрошу. Какое значение Watch Dog таймера установлено в ПО? Существует ли реальная опастность сброса при большой подпрограме? Переход между POU, насколько я понимаю осуществляется со сбросом собаки?
Помогите разобраться. Раньше писал под все линейки 8-ми битников AVR, но тут принципы немного другие.


Значение watchdoga Вы задаете сами в PLC Configuration->(Корень)->MaxCyclLength
Оценить время циклы вы можете добавив модуль статистика (в PLC Configuraton).

Если Ваши POU (в PLC_PRG) или задачах выполняются дольше, чем максимальное время цикла - однозначно сработает

Lexx911
23.05.2007, 07:50
Ситуация такая: Есть внешний мастер ModBus, он ведет опрос ПЛК по RS-232 с некоторой периодичностью. Если в CoDeSyS при этом сделать загрузку проекта в ПЛК, то с вероятностью 50 на 50 произойдет резет ПЛК с соответствующим звуком :(

Полностью с Вами согласен. У меня была такая проблема, сначала думал что косяк в ПЛК, но потом разобрался. С такой проблемой работать очень неприятно, у меня ошибка связи вылетает 2 раза подряд, пока связь не накроется, а потом нормально.:(