Просмотр полной версии : плк-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-файлы с ПЛК, а не с компьютера
Конкретнее можно, как достать и тд. Я что-то посмотрел - не нашел где логирование из ПЛК достать можно.
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) или задачах выполняются дольше, чем максимальное время цикла - однозначно сработает
Ситуация такая: Есть внешний мастер ModBus, он ведет опрос ПЛК по RS-232 с некоторой периодичностью. Если в CoDeSyS при этом сделать загрузку проекта в ПЛК, то с вероятностью 50 на 50 произойдет резет ПЛК с соответствующим звуком :(
Полностью с Вами согласен. У меня была такая проблема, сначала думал что косяк в ПЛК, но потом разобрался. С такой проблемой работать очень неприятно, у меня ошибка связи вылетает 2 раза подряд, пока связь не накроется, а потом нормально.:(
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot